The story behind Google Chrome

Ben Goodger and Google Chrome

Google released its second web browser yesterday afternoon, adding additional headroom for web applications stretching the limits of what it’s possible to accomplish within a web browser. The Google Chrome team assembled domain experts in various fields over the past six years, both through direct hires and acquisitions, to create a new browser and its critical components from scratch. GMail and Google Maps pushed the Web to its limits, taking advantage of browser technologies invented in Redmond but left dormant for far too long. Contributing to Firefox’s core, writing browser extensions, and championing HTML could only take the $150 billion company so far: they needed to own the full browser to push their Web efforts forward at full speed.

  1. Growing Frustrations
  2. Acquisition Boost
  3. A New Browser from Scratch
  4. Rev your JavaScript Engines
  5. Meet the Team
  6. Summary

Growing Frustrations

Brian Rakowski joined Google in July 2002 as the company’s first associate product manager. His first assignment? Launch GMail with features and responsiveness to rival desktop mail clients. Gmail tapped into relatively dormant browser features such as XMLHttpRequest, sockets, prefetch, and more to create a web applications stretching the limits of what was possible inside web browsers of 2004. Today’s Gmail continues to run into a browser’s limits, setting minimum requirements of Internet Explorer 7+ and Firefox 2+. Google web apps teams such as Maps and Mail continually bump their heads against the latest capabilities of web browsers and in some cases invent their own runtimes.

Ian Hickson first learned the inner workings of web browsers while an intern at Netscape. After working on Opera for a few years and creating tests for Firefox Ian joined Google to continue his work on new browser features. HTML5 and browser compliance “acid” tests are significant attempts by Ian and others to redefine Web browsers through specs, test, and implementations but until now Google could only offer development help and browser extensions such as Gears to accelerate browser capabilities.

Google extended what it could not immediately add to the browser core. Gears for new application functionality on multiple browsers. Browser Sync to synchronize browser settings and data across multiple computers. Safe Browsing to create more web trust. Teams from each of these extensions are now working on Google Chrome.

Acquisition Boost

Google released its first official Web browser on August 18, 2008 with the beta release of the Android mobile operating system. Google acquired Android in August 2005 to establish a foot-hold on the fastest growing computer (and Web) market: mobile handsets. Android highlights Google’s web properties through its WebKit-based browser and dependent applications. Google acquired Ottawa-based Reqwireless and its mobile web browser in the summer of 2005 to team up with the Android team on its web interface. Web views are an integral part of Android and Google Chrome shares much of Android’s code, including its graphics engine.

Google Chrome and Android both take advantage of the Skia vector graphics library developed by a small company in North Carolina Google acquired in 2005. The Skia team formerly worked on Openwave’s popular mobile browser’s graphics engine. Google Chrome browser includes Skia graphics engine ports for Windows, Mac, and Linux.

Google acquired application security company GreenBorder in May 2007. GreenBorder technology automatically sandboxes web code and network traffic by creating a bridge between applications. The GreenBorder technology isolated Internet Explorer or Firefox instances into a “sandbox” inside virtual machine instances. These sandboxes form the code isolation layers of Google Chrome, protecting other tabs and the parent operating system from the code executing on each web page.

A New Browser from Scratch

Ben Goodger, Google Chrome’s tech lead, is best known for assembling the Firefox web browser out of Mozilla’s SeaMonkey application suite. Manticore, Camino, and later Firefox were all attempts in 2001 to rethink the Web browser for the modern age. Browsing took center stage away from a communications suite, user interfaces reimagined for Web efficiency, and (some) legacy cruft tossed to the side. Google hired Ben in 2005 to strengthen its own browser contributions and eventually fully rearchitect a web browser for the modern Web.

Google hired top Firefox developers in 2005 and 2006 such as Darin Fisher, Pam Greene, and Brian Ryner. In Spring 2006 the team began work on a new browser prototype built on top of WebKit designed for broadband-connected, always-on, web applications such as Gmail or Google Maps. Could the browser experts give web apps some breathing room?

Modern computers feature multi-core multi-gigahertz CPUs, gigabytes of memory, megabits of bandwidth, and bulky hard drives. Our web browsers should separate browser tabs into their own processes, multi-thread all communications with the operating system, boost cache sizes, and not be afraid to command more bandwidth when available. Internet Explorer 8, Firefox 3.1, and Apple Safari are taking fresh approaches to web browsers for modern machines but Google Chrome has the advantage of a fresh start to achieve some features not currently possible in other browser architectures.

Features such as tab-isolation and task monitoring are difficult tasks to add inside an existing browser architecture of shared run-times and window models (as John Resig mentioned). Internet Explorer 8’s Loosely Coupled IE partially abstracts browser tab instances and the industry is generally headed in this direction.

Web application-specific resource monitoring should motivate more websites to reduce their browser bloat now that they’ve been identified. Individual users can also compare web application resource usage directly with their desktop counterparts.

Rev your JavaScript Engines

Lars Bak and his team in Århus, Denmark have spent many years writing virtual machines: the run-times that translate programming code into machine code. Lars wrote Sun’s Java VM, HotSpot, and later slimmed down the VM for J2ME (CLDC HI project Monty). A few years ago Lars and his team in Denmark began work on a new interpreted JavaScript engine optimized for x86 and ARM architectures.

The V8 engine is specifically tuned for recursive JavaScript tasks, optimizing commonly used components of your application. V8 is multi-threaded, opening up new parallel processing on multiple computing cores. V8 guesses how you might use your JavaScript code, and backtracks over any faulty assumptions. It’s just one of the new engines we’ll see inside our web browsers by the end of 2008.

Google Chrome could have used the same JavaScript interpreter as its WebKit rendering engine (JavaScriptCore, SquirrelFish) but the team had an opportunity, and the funding, to rewrite an interpreter from scratch for desktop and mobile runtimes.

The V8 engine enables new feature sets for Google’s web applications such as Gmail and Google Maps. Web application developers avoid adding features that visibly slow down browsers or cause processing pauses in your application experience. New speed in new areas adds functionality to existing apps. Google programmers should create more efficient code, tested against multiple interpreters, and optimized for modern computers as a result of V8. Even if Google Chrome gains no significant browser market share I still expect it will be the best single-site browser for Google web applications.

Google Chrome adds additional JavaScript functionality through Gears. Gears is bundled with every Chrome install, adding new features to the web browser faster than previous plugins. The Gears libraries include support for new local cache structures, local databases, location data, background tasks, and file handling. Chrome boosts the available Gears footprint for web developers, including Google’s own apps such as Google Reader and Google Docs (and my blog). The current Gears code included in Chrome replicates V8 and sqlite code already present in the browser, a bolt-on that will hopefully be integrated in the near future.

Chrome, V8, and Gears will be a new testing ground for Google’s HTML5 efforts, winning a new seat at the table as an implementor with upstream standards groups such as W3C.

Meet the Team

Questions with the Google Chrome leads

I am tracking at least 20 people involved in the Google Chrome project across Google. I’m sure Chromium commit logs will reveal even more (update: more complete list here), but below is a quick summary of Chrome staff.

Brian Rakowski, Lead Product Manager
Brian was Google’s first associate product manager in 2002, assigned to Gmail. He later worked on the Google Browser Sync Firefox plugin.
Ben Goodger, Software Engineer
Ben is the former Firefox 1.0 project lead. He also authored the Firefox extensions system. He joined Google as 2005.
Mike Pinkerton, Technical Lead
Mike is one of the Google team members responsible for bringing Chrome to the Mac. Mike worked at Netscape and later on the Gecko-powered AOL client before co-founding the Camino project. Mike joined Google in September 2005 and continues to lead Camino development.
Darin Fisher, Software Engineer
Darin was a frequent contributor to the Firefox codebase. He specialized in network libraries, cookies and permissions, and the Netscape Portable Runtime. Darin joined Google in 2005.
Lars Bak, Software Engineer, V8
Lars was the core developer on Java HotSpot VM and Monty VM in J2ME for Sun. He co-founded object-oriented VM companies for embedded devices before joining Google. Lars worked on V8 from a farm in Århus, Denmark before moving the team to university offices.
Kasper Lund, Software Engineer, V8
Kasper shares a long history with Lars Bak working on virtual machines.
Brian Ryner, Software Engineer
Brian is a former contributor to Firefox where he added mousewheel support, tweaked the Gecko rendering engine core, password management, and Linux installers.
Pam Greene, Software Engineer
Pam is a long time Firefox contributor. She added OpenSearch to the browser and contributed to full-text search in Places/AwesomeBar.
Ian Fette, Product Manager
Ian is a former Firefox contributor who worked on anti-phishing, anti-malware, spelling correction, and the Safe Browsing API.
Arnaud Weber, Software Engineer
Arnaud is a former Director of Research and Development at Netscape and Borland before joining Google to work on a “secret project” in September 2006.
Brett Wilson, Software Engineer
Brett formerly worked on the Google Toolbar. He contributed to Firefox history and bookmarks functionality.
Mike Belshe, Software Engineer
Mike helped write an Outlook add-on called Chrome for Lookout Software before being acquired by Microsoft. Mike also formerly worked at Netscape and Good Technology.
Huan Ren, Software Engineer
Huan works on network flow control, negotiating browser interactions with network resources. Huan formerly worked at Microsoft.
Erik Kay, Software Engineer
Erik formerly worked on the AvantGo browser, Qurb anti-spam software for Outlook and Outlook Express.
Glen Murphy, Software Engineer
Glen specializes in user interface design. He previously worked on user interface. Firefox extensions. Google Browser Sync, Google Blog Search
Evan Martin, Software Engineer
Evan writes automated testing tools for Chrome and the Web.
John Abd-El-Malek, Software Engineer
John is part of the Windows specialist team at Google bringing Google Desktop, Google Talk , and Breakpad onto Windows XP and Windows Vista.
Amanda Walker, Software Engineer
Amanda is one of the people responsible for Chrome’s upcoming Mac version.
Mark Mentovai, Software Engineer
Mark was heavily involved in moving Firefox for Mac to its current Intel-based architecture. He has worked on the Breakpad project and many levels of Chrome’s code.
Carlos Pizano, Software Engineer
Carlos formerly worked on GreenBorder and continues to work on Chrome sandboxing.
Mark Larson, Program Manager
Mark is also formerly of GreenBorder and its sandboxing specialties.
Aaron Boodman, Software Engineer, Gears
Aaron improves user experience with JavaScript. He’s best known for his work on Gmail, Greasemonkey, and Gears.

Summary

Google Chrome original logo Google’s business depends on the speed and availability of Web access to search, advertising, and applications. Chrome is Google’s second attempt to better control the front-door to its content with full applications optimized for its heavy apps. Google Chrome builds on top of the work of Android by adding individual applications to already popular operating systems. Google has flirted with the idea of its own web browser for many years but has only recently released working implementations of its own full browser applications.

Android, Chrome, and Gears will continue to grow in unison and extend individual pieces into established operating systems. Google is building a new suite of application extraction layers that should have strong leverage across Windows, Mac, and Linux to directly control the company’s destiny on these platforms.

It’s an exciting time for new browser technologies as Internet Explorer, Firefox, and WebKit each compete over standards implementations and performance. Officially adding Google Chrome to the browser space only strengthens Google’s position strengthening the future web and delivers strong single site browsing experiences for their core web applications.

17 comments

Commentary on "The story behind Google Chrome":

  1. Scott on wrote:

    Great write-up of the story and people!

  2. Peter Mularien on wrote:

    Great write-up, I will be sharing with interested colleagues. It’s interesting that you mention the GreenBorder acquisition here – I think a lot of folks were unsure what Google was planning to do with that technology.

  3. Nathan Fiedler on wrote:

    I’m amazed that they’ve been working on this for the last three years and managed to keep it a secret. It’s exciting projects like this that make Google such an attractive company to work for. I just hope they change the EULA a little bit so I don’t feel violated by using it. Thanks for the analysis and digging into the background. Very interesting.

  4. Nikos Anagnostou on wrote:

    By far the best post on Chrome I have read so far. Congrats!

  5. benp on wrote:

    Why’s Ian Hickson mentioned if he’s not in the team?Is he involved in Chrome at all?

    • Niall Kennedy on wrote:

      benp,
      Ian’s resume mentions “developing technologies and writing specifications for internal products” and if I was a Googler I would have sought him out early in the process.Ian is involved in the general story of Google’s browser involvement and exploring capabilities. His ongoing role in Chrome is unknown.

  6. aaron on wrote:

    The updated team link goes to a 404

  7. Jorge Bucaran on wrote:

    I agree, best post so far on Chrome! 3 thumbs up!

  8. flod on wrote:

    Ben Goodger, Google Chrome’s tech lead, is best known for assembling the Firefox web browser out of Mozilla’s SeaMonkey application suite.

    Maybe you meant “Mozilla Suite”, not SeaMonkey (born in 2005 from the Suite’s ashes, while Firefox 1.0 was released in november 2004) ;-)

  9. Anil on wrote:

    Absolutely exceptional post, Niall. As is usually the case, you cover an important industry announcement with more background and research than 99% of the trade press. I appreciate all the work!

  10. Cris on wrote:

    These are mostly engineers. Are there no graphic designers or UI/X people on the team?(not that engineers can’t do design/UI but it seems likely there is more than just the above helping)

  11. Adam Bryson on wrote:

    I think you hit the nail on the head with this observation: “the team had an opportunity, and the funding, to rewrite an interpreter from scratch for desktop and mobile runtimes.”

    Excellent post.