Google Chrome

Posted on at


This article is about the web browser. For the operating system, see Chrome OS.
Google Chrome
Google Chrome Material Icon-450x450.png
Developer(s) Google Inc.
Initial release September 2, 2008; 7 years ago
Stable release
Windows, OS X, Linux

46.0.2490.80 (October 22, 2015; 14 days ago[1]) [±]

Android

46.0.2490.76 (October 14, 2015; 22 days ago[2][3]) [±]

iOS
46.0.2490.73 (October 22, 2015; 14 days ago[4]) [±]
Preview release
Beta (Windows, OS X, Linux)

47.0.2526.49(November 4, 2015; 1 day ago[5]) [±]

Beta (Android)

47.0.2526.35 (October 28, 2015; 8 days ago[6][7]) [±]

Dev (Windows, OS X, Linux)

48.0.2552.0 (November 3, 2015; 2 days ago[8]) [±]

Dev (Android)
48.0.2553.4 (November 3, 2015; 2 days ago[9]) [±]
Development status Active
Written in C++[10]
Operating system Android (4.0 and later)
iOS (7.0 and later)[11]
Linux (+GCC v4.6 & +GTK v2.24)
OS X (10.6 and later)
Windows (XP SP2 and later)
Engines Blink (WebKit on iOS),V8
Platform x86x6432-bit ARM (ARMv7)
Available in 53 languages
Type Web browsermobile web browser
License Freeware under Google Chrome Terms of Service[12][note 1]
Website www.google.com/chrome

Google Chrome is a freeware web browser[12] developed by Google. It used the WebKit layout engine until version 27 and, with the exception of its iOS releases, from version 28 and beyond uses the WebKit fork Blink.[13][14][15] It was first released as a beta versionfor Microsoft Windows on September 2, 2008, and as a stable public release on December 11, 2008.

As of November 2015, StatCounter estimates that Google Chrome has a 58% worldwide usage share of web browsers as a desktop browser.[16] It is also the most popular browser for smartphones, and combined across all platforms at about 45%. Its success has led to Google expanding the 'Chrome' brand name on various other products such as the Chromecast.

Google releases the majority of Chrome's source code as an open-source project Chromium.[17][18] A notable component that is not open source is their version of the built-in Adobe Flash Player, called Pepper Flash Player.

 

History[edit]

Google CEO Eric Schmidt opposed the development of an independent web browser for six years. He stated that "at the time, Google was a small company," and he did not want to go through "bruising browser wars." After co-founders Sergey Brin and Larry Page hired several Mozilla Firefox developers and built a demonstration of Chrome, Schmidt admitted that "It was so good that it essentially forced me to change my mind."[19]

Rumors of Google building a web browser first appeared in September 2004. Online journals and U.S. newspapers stated at the time that Google was hiring former Microsoft web developers among others. It also came shortly after the final 1.0 release of Mozilla Firefox, which was surging in popularity and taking market share from Internet Explorer which was suffering from major security problems.[20]

Announcement[edit]

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 within the new browser.[21] Copies intended for Europe were shipped early and German blogger Philipp Lenssen of Google Blogoscoped[22] made a scanned copy of the 38-page comic available on his website after receiving it on September 1, 2008.[23] Google subsequently made the comic available on Google Books[24] and mentioned it on their official blog along with an explanation for the early release.[25] The product was allegedly named "Chrome" because Google wanted to minimize the chrome of the browser,[26] though this meaning was added somewhat post-hoc, the 'codename' before release apparently chosen from a connotation of speed (and most simply as a derivative of 'Chromium').[27]

Public release[edit]

 
An early version of Chromium for Linux, explaining the difference between Chrome and Chromium

The browser was first publicly released for Microsoft Windows (XP and later versions) on September 2, 2008 in 43 languages, officially a beta version.[28]

On the same day, a CNET news item[29] drew attention to a passage in the Terms of Service statement for the initial beta release, which seemed to grant to Google a license to all content transferred via the Chrome browser. This passage was inherited from the general Google terms of service.[30] Google responded to this criticism immediately by stating that the language used was borrowed from other products, and removed this passage from the Terms of Service.[12]

Chrome quickly gained about 1% usage share.[25][31][32][33] After the initial surge, usage share dropped until it hit a low of 0.69% in October 2008. It then started rising again and by December 2008, Chrome again passed the 1% threshold.[34]

In early January 2009, CNET reported that Google planned to release versions of Chrome for OS X and Linux in the first half of the year.[35] The first official Chrome OS X and Linux developer previews[36] were announced on June 4, 2009 with a blog post[37] saying they were missing many features and were intended for early feedback rather than general use.

In December 2009, Google released beta versions of Chrome for OS X and Linux.[38][39] Google Chrome 5.0, announced on May 25, 2010, was the first stable release to support all three platforms.[40]

Chrome was one of the twelve browsers offered to European Economic Area users of Microsoft Windows in 2010.[41]

Development[edit]

Chrome was assembled from 25 different code libraries from Google and third parties such as Mozilla's Netscape Portable RuntimeNetwork Security ServicesNPAPI (dropped as of version 45),[42] Skia Graphics EngineSQLite, and a number of other open-source projects.[43] The V8 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", and therefore would significantly benefit from a JavaScript engine that could work faster.

Chrome uses the Blink rendering engine to display web pages. Based on WebKit, Blink only uses WebKit's "WebCore" components while substituting all other components, such as its own multi-process architecture in place of WebKit's native implementation.[44]

Chrome is internally tested with unit testing, "automated user interface testing of scripted user actions", fuzz testing, as well as WebKit's layout tests (99% of which Chrome is claimed to have passed), and against commonly accessed websites inside the Google index within 20–30 minutes.[24]

Google created Gears for Chrome, which added features for web developers typically relating to the building of web applications, including offline support.[24] Google phased out Gears as the same functionality became available in the HTML5 standards.[45]

On January 11, 2011, the Chrome product manager, Mike Jazayeri, announced that Chrome would remove H.264 video codec support for its HTML5 player, citing the desire to bring Google Chrome more in line with the currently available open codecs available in the Chromium project, which Chrome is based on.[46] Despite this, on November 6, 2012, Google released a version of Chrome on Windows which added hardware-accelerated H.264 video decoding.[47] In October 2013, Cisco announced that it was open-sourcing its H.264 codecs and will cover all fees required.[48]

On February 7, 2012, Google launched Google Chrome Beta for Android 4.0 devices.[49] On many new devices with Android 4.1 and later preinstalled, Chrome is the default browser.[50]

On April 3, 2013, Google announced that it would fork the WebCore component of WebKit to form its own layout engine known as Blink. The aim of Blink will be to give Chrome's developers more freedom in implementing its own changes to the engine, and to allow its codebase to be trimmed of code that is unnecessary or unimplemented by Chrome.[44]

Release history[edit]

Features[edit]

Google Chrome features a minimalistic user interface, with its user-interface principles later being implemented into other browsers. For example, the merging of the address barand search bar into the omnibox.[51] Chrome also has a reputation for strong browser performance.[52][53]

Bookmarks and settings synchronization[edit]

Chrome allows users to synchronize their bookmarks, history, and settings across all devices with the browser installed by sending and receiving data through a chosen Google Account, which in turn updates all signed-in instances of Chrome. This can be authenticated either through Google credentials, or a sync passphrase.

Web standards support[edit]

 
The results of the Acid3 test on Google Chrome 4.0

The first release of Google Chrome passed both the Acid1 and Acid2 tests. Beginning with version 4.0, Chrome has passed all aspects of the Acid3 test.[54]

As of May 2011, Chrome has very good support for JavaScript/ECMAScript according to Ecma International's ECMAScript standards conformance Test 262[55] (version ES5.1 of 2012-05-18). This test reports as the final score the number of tests a browser failed; hence lower scores are better. In this test, Chrome version 37 scored 10 failed/11578 passed. For comparison, Firefox 19 scored 193 failed/11752 passed and Internet Explorer 9 has a score of 600+ failed, while Internet Explorer 10 has a score of 7 failed.

In 2011, on the official CSS 2.1 test suite by standardization organization W3C, WebKit, the Chrome rendering engine, passes 89.75% (89.38% out of 99.59% covered) CSS 2.1 tests.[56]

On the HTML5 web standards test, Chrome 41 scores 518 out of 555 points, placing it ahead of the five most popular desktop browsers.[57][58] Chrome 41 on Android scores 510 out of 555 points.[59][60][61] Chrome 44 scores 526, only 29 point less than the maximum score.[62]

Security[edit]

See also: Browser security

Chrome periodically retrieves updates of two blacklists (one for phishing and one for malware), and warns users when they attempt to visit a site flagged as potentially harmful. This service is also made available for use by others via a free public API called "Google Safe Browsing API".[24]

Chrome uses a process-allocation model to sandbox tabs.[63] Using the principle of least privilege, each tab process cannot interact with critical memory functions (e.g. OS memory, user files) or other tab processes — similar to Microsoft's "Protected Mode" used by Internet Explorer 9 or greater. The Sandbox Team is said to have "taken this existing process boundary and made it into a jail." This enforces a computer security model whereby there are two levels of multilevel security (user and sandbox) and thesandbox can only respond to communication requests initiated by the user.[64] On Linux sandboxing uses the seccomp mode.[65][66]

Since 2008, Chrome has been faulted for not including a master password to prevent casual access to a user's passwords. Chrome developers have indicated that a master password does not provide real security against determined hackers and have refused to implement one. Bugs filed on this issue have been marked "WontFix".[67][68] As of February 2014, the Windows version asks the user to enter the Windows account password before showing saved passwords.[69]

In January 2015, TorrentFreak reported that using Chrome when connected to the internet using a VPN can be a serious security issue due to the browser's support forWebRTC.[70]

Security vulnerabilities[edit]

No security vulnerabilities in Chrome were exploited in the three years of Pwn2Own from 2009–2011.[71]

At Pwn2Own 2012, Chrome was defeated by a French team who used zero day exploits in the version of Flash shipped with Chrome to take complete control of a fully patched 64-bit Windows 7 PC using a booby-trapped website that overcame Chrome's sandboxing.[72]

Chrome was compromised twice at the 2012 CanSecWest Pwnium.[72][73][74] Google's official response to the exploits was delivered by Jason Kersey, who congratulated the researchers, noting "We also believe that both submissions are works of art and deserve wider sharing and recognition."[75] Fixes for these vulnerabilities were deployed within 10 hours of the submission.[76][77]

Malware blocking[edit]

Google introduced download scanning protection in Chrome 17.[78]

Plugins[edit]

  • Chrome supported, up to version 45, plug-ins with the Netscape Plugin Application Programming Interface (NPAPI),[79] so that plug-ins (for example Adobe Flash Player) run as unrestricted separate processes outside the browser and cannot be sandboxed as tabs are. ActiveX is not supported.[79] Since 2010 Adobe Flash has been integral to Chrome and does not need be installed separately. Flash is kept up to date as part of Chrome's own updates.[80] Java applet support is available in Chrome with Java 6 update 12 and above.[81] Support for Java under OS X was provided by a Java Update released on May 18, 2010.[82]
  • On August 12, 2009, Google introduced a replacement for NPAPI that is more portable and more secure[83] called Pepper Plugin API (PPAPI).[84] The default bundled PPAPI Flash Player (or Pepper-based Flash Player) was available on Chrome OS first, then replaced the NPAPI Flash Player on Linux from Chrome version 20, on Windows from version 21 (which also reduced Flash crashes by 20%),[85] and eventually came to OS X at version 23.[86]
  • On September 23, 2013, Google announced that it will be deprecating and then removing NPAPI support. NPAPI support was removed from Linux in Chrome release 35.[87]NPAPI plugins like Java can no longer work in Chrome (but there are workarounds for Flash by using PPAPI Flash Player on Linux including for Chromium).[88]
  • On April 14, 2015, Google released Chrome v42, disabling the NPAPI by default. This makes plugins that do not have a PPAPI plugin counterpart incompatible with Chrome, such as JavaSilverlight and Unity. However, NPAPI support could be enabled through the chrome://flags menu, until the release of version 45 in September 2015, that removed NPAPI support entirely.[89]

Privacy[edit]

Privacy mode[edit]

The private browsing feature called Incognito mode prevents the browser from permanently storing any history information or cookies from the websites visited.[90] Incognito mode is similar to the private browsing feature in other web browsers. In contrast to what a user might expect from using a mode called "incognito", it only prevents saving history and it doesn't prevent saving in all windows: "You can switch between an incognito window and any regular windows you have open. You'll only be in incognito mode when you're using the incognito window"[91]

User tracking[edit]

Chrome sends details about its users to Google through both optional and non-optional user tracking mechanisms.[92]

Some of the tracking mechanisms can be optionally enabled and disabled through the installation interface[93] and through the browser's options dialog.[94] Unofficial builds, such as SRWare Iron, seek to remove these features from the browser altogether.[95] The RLZ feature is not included in the Chromium browser either.[96]

In March 2010, Google devised a new method to collect installation statistics: the unique ID token included with Chrome is now only used for the first connection that Google Update makes to its server.[97]

The optional suggestion service included in Google Chrome has been criticized because it provides the information typed into the Omnibox to the search provider before the user even hits return. This allows the search engine to provide URL suggestions, but also provides them with web usage information tied to an IP address.[98]

The optional feature to use a web service to help resolve spelling errors has privacy implications.[99]

Tracking methods
Method[95] Information sent When Optional?
Installation Randomly generated token included in installer. Used to measure success rate of Google Chrome once at installation.[100]

On installation

No
RLZ identifier[101] Encoded string, according to Google, contains non-identifying information about where Chrome was downloaded from and its installation week, and is used to measure promotional campaigns.[100] Google provides the source code to decode this string.[96]
  • On Google search query
  • On first launch and first use of address bar[100]
Partial
[note 2][100]
clientID[94] Unique identifier along with user preferences, logs of usage metrics and crashes. Unknown Yes[102]
default disabled
Omnibox predictions[94] Text typed into the address bar. While typing Yes
default enabled
Page not found Text typed into the address bar. Upon receiving "Server not found" response Yes
default enabled
Google Update(Windows) Information about how often Chrome is used, details about the OS and Chrome version. Periodically Partial
[note 3][103]
Google Software Update (OS X)

Do Not Track[edit]

In February 2012, Google announced that Chrome would support Do Not Track by the end of 2012 and the protocol was implemented on version 23, however, Do Not Track is turned off by default in Chrome.[104]

Speed[edit]

The JavaScript virtual machine used by Chrome, the V8 JavaScript engine, has features such as dynamic code generationhidden class transitions, and precise garbage collection.[24]

In 2008, several websites performed benchmark tests using the SunSpider JavaScript Benchmark tool as well as Google's own set of computationally intense benchmarks, which include ray tracing and constraint solving.[105] They unanimously reported that Chrome performed much faster than all competitors against which it had been tested, includingSafari (for Windows), Firefox 3.0Internet Explorer 7Opera, and Internet Explorer 8.[106][107][108][109][110][111] However, on October 11, 2010 independent tests of JavaScript performance, Chrome has been scoring just behind Opera's Presto engine since it was updated in version 10.5.[112]

On September 3, 2008, Mozilla responded by stating that their own TraceMonkey JavaScript engine (then in beta), was faster than Chrome's V8 engine in some tests.[113][114][115]John Resig, Mozilla's JavaScript evangelist, further commented on the performance of different browsers on Google's own suite, commenting on Chrome's "decimating" of the other browsers, but he questioned whether Google's suite was 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.[116]

Two weeks after Chrome's launch in 2008, the WebKit team announced a new JavaScript engine, SquirrelFish Extreme,[117] citing a 36% speed improvement over Chrome's V8 engine.[118][119][120]

Like most major web browsers, Chrome uses DNS prefetching to speed up website lookups,[121] as do other browsers like Firefox,[122] Safari,[123] Internet Explorer (called DNS Pre-resolution),[124] and in 


About the author

160