Google Chrome: the Making of a Cross-Platform Browser

Google's Evan Martin and Mads Ager discuss the challenges behind making a browser work well on Linux, Mac OS and Windows.

This article on the development of the Google Chrome cross-platform
browser started off like any other interview. I interacted with
Google by e-mail and phone and started pulling together the responses to
my questions. It turned out that the “official” responses were much
shorter than I was used to. “Why are these guys so shy?”, I thought.
In interviews, I typically have to whittle down my respondents' answers
because they love telling their story—in glorious detail!

The Google Chrome Development Team (Photo Credit:
Jeromy Henry)

So, I went back to Google to see what was up. “Free your developers to
speak!”, I exclaimed. “We want to know the gritty insiders' take on Google
Chrome development!” My contact there told me that interviews are
challenging because a direct quote is like going “on record” and needs
to be vetted by several layers of management (and maybe attorneys?).
And, when you're the big fish in the pond, you have to be careful what
you say. I am not used to such caution, and I certainly don't like it,
but I indeed understand it.

After this and subsequent discussions, I realized we had a pretty complete
picture of what Google Chrome is all about. The only hitch is that
one part of the material came from direct interviews and another part
came from more informal discussions and e-mail messages. Thus, we agreed that
while I could talk freely about Google Chrome, only authorized material
could be quoted. What follows, then, is a summary of my discussions with
Google, followed by an interview with Google Chrome developers Evan Martin
and Mads Ager. Martin is a Senior Google Software Engineer and Linux
enthusiast working on all platforms of Google Chrome. Before working
on Chrome, Martin worked on Google's search-result ranking. Mads Ager is
Tech Lead for the V8 JavaScript engine project and and its integration in
the Google Chrome browser; he is based in the Aarhus, Denmark, office.

As we go to press, Google just announced its Chrome operating system. Chrome
OS will be based mainly on Web applications and will add an interesting
dimension to the “Google World”, as it will be possible to run
a completely Google-based desktop environment. Although the Chrome OS will
be a separate OS, it will run Linux under the hood. We're not surprised.
Keep reading LJ both here and on-line for more
information on the Chrome OS and what it means for Linux users.

Google's Strategy with Chrome

In some of my earliest conversations with Google, we talked about the
company's motivations for building Chrome. After developing a range
of rich and complex Web apps, the company saw that it was time to
build a browser from scratch that could better handle “today's
Web”.
From the beginning, they focused on a browser that innovated in four key
areas, namely speed, simplicity, security and stability. Early on, the
Google Chrome team realized that the linchpin for innovating in these
key aspects, as well as to handling the new Web apps, would be a much
more efficient handling of JavaScript. Thus, the V8 JavaScript engine,
explained further below, was conceived and became central to the Google
Chrome Project.

Google hopes that innovations like V8 will change the feel of the
desktop, making the Web apps we're using more and more feel like
native ones. Besides the internal code needed to achieve efficient
JavaScript processing, Google Chrome hopes to maximize this native feel by
keeping the UI minimal, including an "app mode" that lets one create
a desktop icon that links to a URL with merely a tiny UI around the edges.

From a development standpoint, Google noted the difficulty in making
this user experience acceptable on platforms with very different
capabilities and conventions. Rather than just doing a brute-force port,
the Google Chrome team has focused on often taking a step back from
the code and looking at the larger picture of what a certain part of
the code accomplishes for the user and then translated that into more
abstract benefits for the respective Linux, Mac OS or Windows user.
On some platforms, native capability exists in whole or in part for
core functionality, such as sandboxed processes, but not on others.
This fact has required a wide range of refactoring or writing new code
depending on existing functionality found on the respective platform.

One example of making Google Chrome good on the Mac platform
is what the company did with WebKit. The team first had to come to
terms with what it meant to use WebKit for Chrome and determine what
it could provide. Interestingly, Google says that in the examples of
Chrome or Safari, only about half the code is WebKit. In addition,
WebKit was never really designed to be run in a separate process from
the rest of the browser UI. In order to accomplish this, Google had to
write much of its own drawing and event handling “plumbing” rather
than simply dropping a WebView into a window in Interface Builder.
However, the developers have been able to draw on much of the work that
was done for the Windows version to solve this problem.

Of course, Google Chrome's entire development process is much more
efficient and potent given its open-source nature. More important than
trying to “win the browser war” in the traditional
sense—that is, get people
to use Google Chrome as their primary browser—the company feels
its open-source efforts with Chrome already have stimulated and seeded a
great deal of innovation and made other browsers better than they would
have been in Google Chrome's absence. In fact, Google takes at least
some credit for speed improvements and security enhancements that have
taken place in other browsers during the past year, which is advantageous
for everyone.

Given that Google Chrome is open source, we were curious to know how
involved outside developers have been to its development. Although my
contacts were unable to give me specific numbers, I was told that
outside participation is very high, especially in terms of bug reports from
users of the early developer builds of the browser. Google also works
very closely with the WebKit team, so changes made by WebKit developers
at Apple or others in the WebKit community are integrated into Google
Chrome as well.

Comments

Comment viewing options

it took me a while to find these links, but i've been downloading the latest builds of chromium and running them. they are rather stable but do have some quirks about them. i wouldn't switch to this as your default browser just yet.

As Linux continues to play an ever increasing role in corporate data centers and institutions, ensuring the integrity and protection of these systems must be a priority. With 60% of the world's websites and an increasing share of organization's mission-critical workloads running on Linux, failing to stop malware and other advanced threats on Linux can increasingly impact an organization's reputation and bottom line.

Most companies incorporate backup procedures for critical data, which can be restored quickly if a loss occurs. However, fewer companies are prepared for catastrophic system failures, in which they lose all data, the entire operating system, applications, settings, patches and more, reducing their system(s) to “bare metal.” After all, before data can be restored to a system, there must be a system to restore it to.

In this one hour webinar, learn how to enhance your existing backup strategies for better disaster recovery preparedness using Storix System Backup Administrator (SBAdmin), a highly flexible bare-metal recovery solution for UNIX and Linux systems.