Google Chrome

Posted on at


Google Chrome icon (2011).svg

Google Chrome is a freeware web browser[11] 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.[12][13][14] It was first released as a beta version for Microsoft Windows on September 2, 2008, and as a stable public release on December 11, 2008.

As of January 2015, StatCounter estimates that Google Chrome has a 51% worldwide usage share of web browsers as a desktop browser.[15] It is also the most popular browser for smartphones. 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.[16][17] 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."[18]

Rumours 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.[19]

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.[20] Copies intended for Europe were shipped early and German blogger Philipp Lenssen of Google Blogoscoped[21] made a scanned copy of the 38-page comic available on his website after receiving it on September 1, 2008.[22] Google subsequently made the comic available on Google Books[23] and mentioned it on their official blog along with an explanation for the early release.[24] The product was named “Chrome” because Google wanted to minimize the chrome of the browser.[25]

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.[26]

On the same day, a CNET news item[27] 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.[28] 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.[11]

Chrome quickly gained about 1% usage share.[24][29][30][31] 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.[32]

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.[33] The first official Chrome OS X and Linux developer previews[34] were announced on June 4, 2009 with a blog post[35] 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.[36][37] Google Chrome 5.0, announced on May 25, 2010, was the first stable release to support all three platforms.[38]

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

Development[edit]

Chrome was assembled from 25 different code libraries from Google and third parties such as Mozilla's Netscape Portable RuntimeNetwork Security Services,NPAPISkia Graphics EngineSQLite, and a number of other open-source projects.[40] 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 applicationssuch 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.[41]

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.[23]

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

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.[43] Despite this, on November 6, 2012, Google released a version of Chrome on Windows which added hardware-accelerated H.264 video decoding.[44] In October 2013, Ciscoannounced that it was open-sourcing its H.264 codecs and will cover all fees required.[45]

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

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.[41]

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 bar and search bar into the omnibox.[48] Chrome also has a reputation for strong browser performance.[49][50]

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.[51]

As of May 2011, Chrome has very good support for JavaScript/ECMAScript according to Ecma International's ECMAScript standards conformance Test 262[52] (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.[53]

On the HTML5 web standards test, Chrome 41 scores 518 out of 555 points, placing it ahead of the five most popular desktop browsers.[54][55] Chrome 41 on Android scores 510 out of 555 points.[56][57][58]

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".[23]

Chrome uses a process-allocation model to sandbox tabs.[59] 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 (userand sandbox) and the sandbox can only respond to communication requests initiated by the user.[60] On Linux sandboxing uses the seccomp mode.[61][62]

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".[63][64] As of Feb 2014, the Windows version asks the user to enter the Windows account password before showing saved passwords.[65]

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 for WebRTC.[66]

Security vulnerabilities[edit]

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

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.[68]

Chrome was compromised twice at the 2012 CanSecWest Pwnium.[68][69][70] 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."[71] Fixes for these vulnerabilities were deployed within 10 hours of the submission.[72][73]

Malware blocking[edit]

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

Plugins[edit]

  • Chrome supports plug-ins with the Netscape Plugin Application Programming Interface (NPAPI),[75] 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.[75] 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.[76] Java applet support is available in Chrome with Java 6 update 12 and above.[77] Support for Java under OS X was provided by a Java Update released on May 18, 2010.[78]
  • On August 12, 2009, Google introduced a replacement for NPAPI that is more portable and more secure[79] called Pepper Plugin API (PPAPI).[80] 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%),[81] and eventually came to OS X at version 23.[82]
  • 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.[83] 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).[84]
  • 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 can be enabled through the chrome://flags menu, until the release of version 45 in September 2015, which will have NPAPI support removed entirely.[85]

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.[86]Incognito mode is similar to the private browsing feature in other web browsers.

User tracking[edit]

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

Some of the tracking mechanisms can be optionally enabled and disabled through the installation interface[88] and through the browser's options dialog.[89] Unofficial builds, such as SRWare Iron and CoolNovo (previously known as ChromePlus), seek to remove these features from the browser altogether.[90] The RLZ feature is not included in the Chromium browser either.[91]

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.[92]

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.[93]

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

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

On installation

No
RLZ identifier[96] 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.[95] Google provides the source code to decode this string.[91]
  • On Google search query
  • On first launch and first use of address bar[95]
Partial
[note 2][95]
clientID[89] Unique identifier along with user preferences, logs of usage metrics and crashes. Unknown Yes[97]
default disabled
Omnibox predictions[89] 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][98]
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.[99]

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.[23]

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.[100] They unanimously reported that Chrome performed much faster than all competitors against which it had been tested, including Safari (for Windows), Firefox 3.0Internet Explorer 7Opera, and Internet Explorer 8.[101][102][103][104][105][106] 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.[107]

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.[108][109][110] 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.[111]

Two weeks after Chrome's launch in 2008, the WebKit team announced a new JavaScript engine, SquirrelFish Extreme,[112] citing a 36% speed improvement over Chrome's V8 engine.[113][114][115]

Like most major web browsers, Chrome uses DNS prefetching to speed up website lookups,[116] as do other browsers like Firefox,[117] Safari,[118] Internet Explorer (called DNS Pre-resolution),[119] and in Opera as a UserScript (not built-in).[120]

Like most major web browsers, Chrome utilizes the faster SPDY protocol instead of HTTP[121][122] when communicating with servers that support it, such as Google services, Facebook, Twitter, and other websites.

Stability[edit]

 
Screenshot of Chrome browser crash

A multi-process architecture is implemented in Chrome[123] where, by default, a separate process is allocated to each site instance and plugin. This procedure is termed process isolation,[124] and it prevents tasks from interfering with each other, raising security and stability. An attacker successfully gaining access to one application gains access to no others,[125] and failure in one instance results in a Sad Tab screen of death, similar to the well-known Sad Mac, but only one 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 instance and no longer needs further memory allocations.[23] This architecture was adopted in Safari[126] and Firefox.[127]

Chrome includes a process management utility called Task Manager which lets users see what sites and plugins are using the most memorydownloading the most bytes and overusing the CPU and provides the ability to terminate them.[23]Chrome Version 23 ensures its users an improved battery life for the systems supporting Chrome's GPU accelerated video decoding.



About the author

bitlanders890

Am a student

Subscribe 0
160