Google Chrome

Chromium is the open source project behind Google Chrome. The Google-authored portion of it is released under the BSD license, with other parts being subject to a variety of different permissive open-source licenses, including the MIT License, the LGPL, the Ms-PL and a MPL/GPL/LGPL tri-license. It implements the same feature set as Chrome, but has a slightly different logo.

http://

http://

The release announcement was originally scheduled for September 3, 2008, and a comic by Scott McCloud was to be sent to journalists and bloggers explaining the features of and motivations for the new browser. Copies intended for Europe were shipped early and German blogger Philipp Lenssen of Google Blogoscoped made a scanned copy of the 38-page comic available on his website after receiving it on September 1, 2008. Google subsequently made the comic available on Google Books and their site and mentioned it on its official blog along with an explanation for the early release.

http://

The browser was first publicly released for Microsoft Windows (XP and later only) on September 2, 2008 in 43 languages, officially a beta version. Chrome quickly gained about 1% market share. Mac OS X and Linux versions are under development. In the end of 2008, a message saying that a "test shell" is available to build on Linux was placed in the Chromium project's developer wiki. Some have tried this shell, which apparently lacked many features, but appeared to function quite well in rendering web sites (including JavaScript). In March 2009, the test shell was replaced by a pre-alpha version of the Chromium browser, which looked similar to the Windows release, but was still very far from complete. On January 9, 2009, CNET reported that Google planned to release versions for Mac OS X and Linux by the first half of the year.

On September 2, 2008, a CNET news item drew attention to a passage in the terms of service for the initial beta release, which seemed to to Google a license to all content transferred via the Chrome browser. The passage in question was inherited from the general Google terms of service. On the same day, Google responded to this criticism by stating that the language used was borrowed from other products, and removed the passage in question from the Terms of Service. Google noted that this change would "apply retroactively to all users who have downloaded Google Chrome." There were subsequent concern and confusion about whether and what information the program communicates back to Google. The company stated that usage metrics are only sent when users opt in by checking the option "help make Google Chrome better by automatically sending usage statistics and crash reports to Google" when the browser is installed.

The first release of Google Chrome passed the Acid1 test but on Acid2 a very small artifact appears. It also passed 79 out of the 100 subtests of the Acid3, higher than both Internet Explorer 7, which scored 14, and Firefox 3, which scored 71, but lower than Opera, which scored 83. When compared with contemporary development builds of Firefox, Internet Explorer, Opera, and Safari, Chrome scored lower than Firefox 3.1 Beta 1 (85), Opera (100), and Safari 4 (Developer Preview) (100), but still higher than Internet Explorer (21). However, the current stable version (2.0) scores 100 out of 100 while still failing the link test.

By December 2008, Chrome had a share of 1.09% of the web browser market.. As of June 1 2009, market share of Google Chrome has grown to 1.80% in worldwide browser usage according to Usage Share from the source Net Applications.

http://

http://
 * On September 15, 2008, CodeWeavers released an unofficial bundle of a Wine derivative and Chromium Developer Build 21 for Linux and Mac OS X, which they dubbed CrossOver Chromium.
 * SRWare Iron is a release of Chromium software that explicitly disables the collection and transmission of usage information.
 * It is possible to download and view a pre-release 'snapshot' trunk build of the Mac version of Chrome, (known in development as 'Chromium'), from the Chromium development website. Although this is not the public release, but more of a dog food basic browser for developers, it does allow one to see how far development has progressed and what the browser might eventually look like. Users should be warned that although this is the most advanced development version, it is still only in alpha and may be very unstable. The Mac development status page also has information related to the development of the product. As of June 2009, the Chromium trunk version was tested as being faster than Safari 4.0 Beta, Firefox 3.5 Nightly and Opera 10.0 Beta on the SunSpider benchmark on Mac OS X.
 * A similar pre-release snapshot of the Linux version is also available.

Primary design goals were improvements in security, speed, and stability compared to existing browsers. There also were extensive changes in the user interface. Chrome was assembled from 26 different code libraries from Google and others from third parties such as Netscape.

http://

Chrome periodically downloads updates of two blacklists (one for phishing and one for malware), and warns users when they attempt to visit a harmful site. This service is also made available for use by others via a free public API called "Google Safe Browsing API". Google notifies the owners of listed sites who may not be aware of the presence of the harmful software.

Chrome will typically allocate each tab to fit into its own process to "prevent malware from installing itself" or "using what happens in one tab to affect what happens in another", however the actual process allocation model is more complex. Following the principle of least privilege, each process is stripped of its rights and can compute, but can not write files or read from sensitive areas (e.g. documents, desktop)—this is similar to the "Protected Mode" that is used by Internet Explorer 7 on Windows Vista. The Sandbox Team is said to have "taken this existing process boundary and made it into a jail"; for example, malicious software running in one tab is unable to sniff credit card numbers, interact with the mouse, or tell Windows to "run an executable on start-up" and it will be terminated when the tab is closed. This enforces a simple computer security model whereby there are two levels of multilevel security (user and sandbox) and the sandbox can only respond to communication requests initiated by the user.

Typically, plugins such as Adobe Flash Player are not standardized and as such, cannot be sandboxed as tabs can be. These often need to run at, or above, the security level of the browser itself. To reduce exposure to attack, plugins are run in separate processes that communicate with the renderer, itself operating at "very low privileges" in dedicated per-tab processes. Plugins will need to be modified to operate within this software architecture while following the principle of least privilege. Chrome supports the Netscape Plugin Application Programming Interface (NPAPI), but does not support the embedding of ActiveX controls. Also, Chrome does not have an extension system such as Mozilla's XPInstall architecture.Java applets support is available in Chrome as part of Java 6 update 11.

A private browsing feature called Incognito mode is provided that prevents the browser from storing any history information or cookies from the websites visited. This feature has been referred to as a porn mode similar to the private browsing feature available in Apple's Safari, Mozilla Firefox 3.1(Beta) and Internet Explorer 8.

A denial-of-service vulnerability was found that allowed a malicious web page to crash the whole web browser. Google Chrome developers confirmed the flaw, and it was fixed in the 0.2.149.29 release.

http://

The JavaScript virtual machine was considered a sufficiently important project to be split off (as was Adobe/Mozilla's Tamarin) and handled by a separate team in Denmark coordinated by Lars Bak at Aarhus. According to Google, existing implementations were designed "for small programs, where the performance and interactivity of the system weren't that important," but web applications such as Gmail "are using the web browser to the fullest when it comes to DOM manipulations and Javascript." The resulting V8 JavaScript engine has features such as hidden class transitions, dynamic code generation, and precise garbage collection. Tests by Google on 9/2/2008 showed that V8 was about twice as fast as Firefox 3.0 and the WebKit nightlies (of which Safari is a lightly modified version). Ten days later, SquirrelFish Extreme was announced by the WebKit team, making the performance difference between WebKit and Chromium a dead heat again.

Several websites performed benchmark tests using the SunSpider JavaScript Benchmark tool as well as Google's own set of computationally intense benchmarks, which includes ray tracing and constraint solving. They unanimously reported that Chrome performed much faster than all competitors against which it had been tested, including Safari, Firefox 3.0, Internet Explorer 7, and Internet Explorer 8. While Opera had not been compared to Chrome in those comparisons, in previous tests, it had been shown to be slightly slower than Firefox 3.0, which in turn, was slower than Chrome. Another blog post by Mozilla developer Brendan Eich compared Chrome's V8 engine to his own TraceMonkey Javascript engine which was introduced in Firefox 3.1alpha, stating that some tests were faster in one engine and some were faster in the other, with Firefox 3.1a faster overall.John Resig, Mozilla's JavaScript evangelist, further commented on the performance of different browsers on Google's own suite, finding Chrome "decimating" other browsers, but he questions whether Google's suite is representative of real programs. He stated that Firefox 3.0 performed poorly on recursion intensive benchmarks, such as those of Google, because the Mozilla team had not implemented recursion-tracing yet.

Chrome also uses DNS prefetching to speed up website lookups.. This feature is available in Internet Explorer and Firefox as an extension, and is built-in and enabled by default in Firefox 3.5.

http://

The Gears team was considering a multithreaded browser (noting that a problem with existing web browser implementations was that they are inherently single-threaded) and Chrome implemented this concept with a multi-process architecture, similar to Loosely Coupled Internet Explorer (LCIE) recently implemented by Internet Explorer 8. By default, a separate process is allocated to each site instance and plugin, a process referred to as process isolation. This prevents tasks from interfering with each other, which is good for security and stability; an attacker successfully gaining access to one application does not gain access to all, and failure in one application results in a Sad Tab screen of death, similar to the well-known Sad Mac, except only one single tab crashes instead of the whole application. This strategy exacts a fixed per-process cost up front, but results in less memory bloat overall as fragmentation is confined to each process and no longer results in further memory allocations.

Chrome features a process management utility called the Task Manager which allows the user to "see what sites are using the most memory, downloading the most bytes and abusing [their] CPU" (as well as the plugins which run in separate processes) and terminate them. Some users have reported a conflict with Internet Explorer, often resulting in the blue screen error on Windows.

http://

The main user interface includes back, forward, refresh, bookmark, go, and cancel options. A home button can be turned on through options, which takes the user to the nine website previews seen on a new tab or the configured home page. The options are similar to Safari, while the location of the settings is similar to versions of Internet Explorer starting with version 7. The design of the window is based on Windows Vista.

When the window is not maximized, the tab bar appears directly under the title bar. When maximized, the title bar disappears, and instead, the tab bar is shown at the very top of the window. Like other browsers, it has a full-screen mode that hides the operating system's interface completely, in which case the Windows task bar, notification area, and Start button still take space at all times unless they have been configured to hide at all times.

Chrome includes Gears, which adds features for web developers typically relating to the building of web applications (including offline support).

Chrome replaces the browser home page which is displayed when a new tab is created with a New Tab Page. This shows thumbnails of the nine most visited web sites along with the sites most often searched, recent bookmarks, and recently closed tabs, same as Internet Explorer and Firefox with the Google Toolbar 5 installed.

The Omnibox is the URL box at the top of each tab, which combines the functionalities of both URL box and search box. It includes autocomplete functionality, but only will autocomplete URLs that were manually entered (rather than all links), search suggestions, top pages (previously visited), popular pages (unvisited), and text search over history. Search engines also can be captured by the browser when used via the native user interface by pressing Tab.

Popup windows "are scoped to the tab they came from" and will not appear outside the tab unless the user explicitly drags them out.

Chrome uses the WebKit rendering engine to display web pages, on advice from the Android team. Like most browsers, Chrome was extensively tested internally before release with unit testing, "automated user interface testing of scripted user actions" and fuzz testing, as well as WebKit's layout tests (99% of which Chrome is claimed to have passed). New browser builds are automatically tested against tens of thousands of commonly accessed websites inside of the Google index within 20-30 minutes.

Tabs are the primary component of Chrome's user interface and as such, have been moved to the top of the window rather than below the controls. This subtle change contrasts with many existing tabbed browsers which are based on windows and contain tabs. Tabs (including their state) can be transferred seamlessly between window containers by dragging. Each tab has its own set of controls, including the Omnibox.

Chrome allows users to make local desktop shortcuts that open web applications in the browser. The browser, when opened in this way, contains none of the regular interface except for the title bar, so as not to "interrupt anything the user is trying to do." This allows web applications to run alongside local software (similar to Mozilla Prism and Fluid).

By default, the status bar is hidden whenever it is not being used. However, it appears at the bottom left corner whenever a page is loading and when a hyperlink is hovered over.

For web developers, Chrome features an element inspector similar to the one in Firebug.

As part of Google's April Fools Day jokes, a special build of Chrome was released on April 1st, 2009 with the additional feature of being able to render pages in anaglyph 3D.

Additionally, for installation, Chrome requires the Google Updater, which periodically connects to Google. However, a standalone version is available from Google that does not require it.

Some of the tracking mechanisms can be optionally enabled and disabled through the installation interface and through the browser's options dialog. A Freeware program called UnChrome has been made to erase the clientID off the hard drive. Unofficial builds, such as SRWare Iron, seek to remove these features from the browser altogether.

http://

As of April 2009, Google Chrome does not support third party extensions.

As of version 3499, Google Chrome has rudimentary Greasemonkey support. This feature is off by default, and may be turned on by launching the application with a specific command-line argument.On May 27, 2009, Google posted more detals about third party extensions support on the Chromium blog.

http://

On January 8, 2009 Google introduced a new release channels system with three distinct release channels: Stable channel, Beta channel, and Developer preview channel (called the "Dev" channel). Before this change there were only two channels, the Beta channel and the Developer preview channel. All previous Developer channel users were moved to Beta channel. The reason given by Google is that the Developer channel builds are less stable and polished than those that Developer channel users were getting during Google Chrome's Beta period. The stable channel will be updated with features and fixes once they have been thoroughly tested in the Beta channel, and the Beta channel will be updated roughly monthly with stable and complete features from the Developer channel. The Developer channel is where ideas get tested (and sometimes fail) and can be very unstable at times.

http://

The Daily Telegraph's Matthew Moore summarizes the verdict of early reviewers: "Google Chrome is attractive, fast and has some impressive new features, but may not—yet—be a threat to its Microsoft rival."

Microsoft reportedly "played down the threat from Chrome" and "predicted that most people will embrace Internet Explorer 8." Opera Software said that "Chrome will strengthen the Web as the biggest application platform in the world." Mozilla said that Chrome's introduction into the web browser market comes as "no real surprise", that "Chrome is not aimed at competing with Firefox", and furthermore that it should not affect Google's financing of Firefox.On September 9, 2008, when Chrome still had been in beta, the German Federal Office for Information Security (BSI) issued a statement about their first examination of Chrome, expressing a concern over the prominent download links on Google's German web page, because "beta versions should not be employed for general use applications" and browser manufacturers should provide appropriate instructions regarding the use of pre-released software. They did, however, praise the browser's technical contribution to improving security on the web.

Concern about Chrome's optional usage collection and tracking have been noted in several publications.

http://

On September 11, 2008, a few days after the release of Chrome's source code, Scott Hanselman noticed a comment in Chrome's code saying "You can find this information by disassembling Vista's SP1 kernel32.dll with your favorite disassembler."Ars Technica published an article asking, "Did Google reverse-engineer Windows?" Google later denied disassembling Vista and referred to previous public discussion of the undocumented APIs that Google used.