The story behind Google Chrome
2008-09-04 13:14:40
Google 05年已经开始了Chrome的开发
The story behind Google Chrome
Google released its second web browser yesterday afternoon, addingadditional headroom for web applications stretching the limits of whatit's possible to accomplish within a web browser. The Google Chrometeam assembled domain experts in various fields over the past sixyears, both through direct hires and acquisitions, to create a newbrowser and its critical components from scratch. GMail and Google Mapspushed the Web to its limits, taking advantage of browser technologiesinvented in Redmond but left dormant for far too long. Contributing toFirefox's core, writing browser extensions, and championing HTMLcould only take the $150 billion company so far: they needed to own thefull browser to push their Web efforts forward at full speed.
Growing Frustrations
Brian Rakowski joined Google in July 2002 as the company's firstassociate product manager. His first assignment? Launch GMail withfeatures and responsiveness to rival desktop mail clients. Gmail tappedinto relatively dormant browser features such as XMLHttpRequest,sockets, prefetch, and more to create a web applications stretching thelimits of what was possible inside web browsers of 2004. Today's Gmailcontinues to run into a browser's limits, setting minimum requirements of Internet Explorer 7+ and Firefox 2+. Google web appsteams such as Maps and Mail continually bump their heads against thelatest capabilities of web browsers and in some cases invent their ownruntimes.
Ian Hickson firstlearned the inner workings of web browsers while an intern at Netscape.After working on Opera for a few years and creating tests for FirefoxIan 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 offerdevelopment help and browser extensions such as Gears to acceleratebrowser 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 thefastest growing computer (and Web) market: mobile handsets. Androidhighlights Google's web properties through its WebKit-based browser and dependent applications. Google acquired Ottawa-based Reqwirelessand its mobile web browser in the summer of 2005 to team up with theAndroid team on its web interface. Web views are an integral part ofAndroid and Google Chrome shares much of Android's code, including itsgraphics engine.
Google Chrome and Android both take advantage of the Skia vectorgraphics 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 GreenBorderin May 2007. GreenBorder technology automatically sandboxes web codeand network traffic by creating a bridge between applications. TheGreenBorder technology isolated Internet Explorer or Firefox instancesinto a "sandbox" inside virtual machine instances. These sandboxes formthe code isolation layers of Google Chrome, protecting other tabs andthe 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, userinterfaces reimagined for Web efficiency, and (some) legacy crufttossed to the side. Google hired Ben in 2005 to strengthen its ownbrowser contributions and eventually fully rearchitect a web browserfor the modern Web.
Google hired top Firefox developers in 2005 and 2006 such as DarinFisher, Pam Greene, and Brian Ryner. In Spring 2006 the team began workon a new browser prototype built on top of WebKit designed forbroadband-connected, always-on, web applications such as Gmail orGoogle Maps. Could the browser experts give web apps some breathingroom?
Modern computers feature multi-core multi-gigahertz CPUs,gigabytes of memory, megabits of bandwidth, and bulky hard drives. Ourweb browsers should separate browser tabs into their own processes,multi-thread all communications with the operating system, boost cachesizes, and not be afraid to command more bandwidth when available.Internet Explorer 8, Firefox 3.1, and Apple Safari are taking freshapproaches to web browsers for modern machines but Google Chrome hasthe advantage of a fresh start to achieve some features not currentlypossible in other browser architectures.
Features such as tab-isolation and task monitoring are difficulttasks to add inside an existing browser architecture of sharedrun-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 morewebsites to reduce their browser bloat now that they've beenidentified. Individual users can also compare web application resourceusage directly with their desktop counterparts.
Rev your Engines
Lars Bak and his team in Århus, Denmark have spent many yearswriting virtual machines: the run-times that translate programming codeinto 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 newinterpreted engine optimized for x86 and ARM architectures.
The V8 engineis specifically tuned for recursive tasks, optimizingcommonly used components of your application. V8 is multi-threaded,opening up new parallel processing on multiple computing cores. V8guesses how you might use your code, and backtracks over anyfaulty assumptions. It's just one of the new engines we'll see insideour web browsers by the end of 2008.
Google Chrome could have used the same 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 applicationssuch as Gmail and Google Maps. Web application developers avoid addingfeatures that visibly slow down browsers or cause processing pauses inyour application experience. New speed in new areas adds functionalityto existing apps. Google programmers should create moreefficient code, tested against multiple interpreters, and optimized formodern computers as a result of V8. Even if Google Chrome gains nosignificant browser market share I still expect it will be the bestsingle-site browser for Google web applications.
Google Chrome adds additional functionality through Gears.Gears is bundled with every Chrome install, adding new features to theweb browser faster than previous plugins. The Gears libraries includesupport for new local cache structures, local databases, location data,background tasks, and file handling. Chrome boosts the available Gearsfootprint for web developers, including Google's own appssuch as Google Reader and Google Docs (and my blog). The current Gearscode included in Chrome replicates V8 and sqlite code already presentin the browser, a bolt-on that will hopefully be integrated in the nearfuture.
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
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, 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 bringingChrome to the Mac. Mike worked at Netscape before co-founding theCamino project. He formerly worked at Apple computer on the WebKitteam. Mike joined Google in September 2005 and continues to lead Caminodevelopment.
- 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 J2MEfor Sun. He co-founded object-oriented VM companies for embeddeddevices 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 mousewheelsupport, 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 thebrowser 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 Netscapeand Borland before joining Google to work on a "secret project" inSeptember 2006.
- Brett Wilson, Software Engineer
- Brett formerly worked on the Google Toolbar. He contributed to Firefox history and bookmarks functionality.
- Mike Beishe, Software Engineer
- 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 onuser interface. Firefox extensions. Google Browser Sync, Google BlogSearch
- 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 currentIntel-based architecture. He has worked on the Breakpad project andmany 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 . He's best known for his work on Gmail, Greasemonkey, and Gears.
Summary
Google's business depends on the speed and availability of Web accessto search, advertising, and applications. Chrome is Google's secondattempt to better control the front-door to its content with fullapplications optimized for its heavy apps. Google Chromebuilds on top of the work of Android by adding individual applicationsto already popular operating systems. Google has flirted with the ideaof its own web browser for many years but has only recently releasedworking implementations of its own full browser applications.
Android, Chrome, and Gears will continue to grow in unison andextend individual pieces into established operating systems. Google isbuilding a new suite of application extraction layers that should havestrong leverage across Windows, Mac, and Linux to directly control thecompany's destiny on these platforms.
It's an exiting time for new browser technologies as InternetExplorer, Firefox, and WebKit each compete over standardsimplementations and performance. Officially adding Google Chrome to thebrowser space only strengthens Google's position strengthening thefuture web and delivers strong single site browsing experiences fortheir core web applications.