Google Chrome
Developer(s) | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Initial release |
| ||||||||||
Stable release(s) [±] | |||||||||||
Microsoft Windows, Linux and Mac OS X Version 74.0.3729.169 (May 21, 2019 ) [±][1] | |||||||||||
Written in | C, C++, Assembly, HTML, Java (Android app only), JavaScript, Python[2][3][4] | ||||||||||
Engines | Blink (WebKit on iOS), V8 JavaScript engine | ||||||||||
Operating system |
| ||||||||||
Platform | IA-32, x86-64, ARMv7, ARMv8-A | ||||||||||
Included with |
| ||||||||||
Available in | 47 languages[7] | ||||||||||
Type | Web browser, mobile browser | ||||||||||
License | Proprietary freeware, based on open source components[8][note 1] | ||||||||||
Website | www |
Google Chrome is a freeware web browser made by Google. It builds on parts from other open source software, including WebKit and Mozilla Firefox.[9] The name comes from the graphical user interface frame, or "chrome", of web browsers. The open source project behind Google Chrome is known as Chromium.[10]
The first version was a beta for Microsoft Windows was released on September 2, 2008.[11] macOS and Linux versions were released in December 2009.[12][13]
Announcement
[change | change source]The release announcement was going to be made on September 3, 2008, and a comic by Scott McCloud was to be sent to journalists and bloggers explaining the features of and reasons for the new browser.[14] Copies that were for Europe were shipped early and German blogger Philipp Lenssen of Google Blogoscoped[15] made a scanned copy of the 38-page comic available on his website after receiving it on September 1, 2008.[16] Google then made the comic available on Google Books and their website[17] and referenced it on its official blog along with an explanation for the early release.[9] As of September 2, 2008, Google has a link to Google Chrome on their main page.[18]
Design
[change | change source]Security
[change | change source]- Blacklists
- Chrome downloads updates of two blacklists (one for phishing and one for malware) and warns users when they try 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". In the process of maintaining these blacklists, Google also notifies the owners of listed sites who may not be aware of the presence of the harmful software.[16]
- Sandboxing
- Each tab in Chrome is sandboxed to "prevent malware from installing itself" or "using what happens in one tab to affect what happens in another". Following the principle of least privilege, each process is stripped of its rights and can compute but can't write files or read from sensitive areas (e.g. documents, desktop), this is similar to "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 the start-up" and 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.[16]
- Plugins
- Plugins such as Adobe Flash Player are typically not standardised and as such cannot be sandboxed like tabs. 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.
- Incognito
- Chrome includes an Incognito mode (similar to Safari's Private Browsing and Internet Explorer 8's InPrivate) which "lets you browse the web in complete privacy because it doesn’t record any of your activity" and discards cookies. When enabled for a window "nothing that occurs in that window is ever logged on your computer."[9]
Speed
[change | change source]- JavaScript
- The JavaScript virtual machine was considered a sufficiently important project to be split off (like Adobe/Mozilla's Tamarin) and handled by a dedicated team in Denmark. Existing implementations were designed "for small programs, where the performance and interactivity of the system weren't that important" but web applications like Gmail "are using the web browser to the fullest when it comes to DOM manipulations and JavaScript". The resulting V8 JavaScript engine was designed for speed and introduces new features with that in mind such as hidden class transitions, dynamic code generation, and precise garbage collection.[16] Tests by Google show that V8 is about twice as fast as Firefox 3 and the Safari 4 beta.[19]
User interface
[change | change source]The main user interface includes back, forward, refresh, bookmark, go and cancel options similar to Safari browser, while the settings location looks like Internet Explorer 7/8. The minimize, maximize and close window buttons are based on Windows Vista.
- Gears
- Chrome includes Gears which adds developer features that may or may not become web standards, typically relating to the building of web applications (including offline support).[16]
- New Tab Page
- 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 eight most visited websites along with the sites most often searched, recent bookmarks, and recently closed tabs.[20] This concept appeared first with Opera's Speed Dial.[16]
- Omnibox
- The Omnibox is the URL box at the top of each tab, based on the one in Opera. It includes autocomplete functionality but will only 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 can also be captured by the browser when used via the native user interface by pressing Tab.[16]
- Pop-ups
- Pop-up windows "are scoped to the tab they came from" and will not appear outside the tab unless the user explicitly drags them out. It is not clear whether they also run in their own process.[16]
- Rendering engine
- At first, Chrome used the WebKit browser engine on advice from the Android. Since version 28, Chrome has used its own fork, or a version of WebKit called Blink. This is to allow Google to change Blink to suit Chrome's needs explicitly by removing things that Chrome doesn't need.[21] The IOS version of Chrome still uses Blink due to IOS' requirements.
- Tabs
- Tabs are the primary component of Chrome's user interface and as such has been moved to the top of the window rather than below the controls (similar to Opera). This subtle change is in contrast to many existing tabbed browsers which are based on windows containing tabs. Tabs (including their state) can be seamlessly transferred between window containers by dragging. Each tab has its own set of controls, including the Omnibox URL box.[16]
- Standards
- The first release of Google Chrome Beta (Build 1583) did not pass the Acid3 test; it scored 77/100 and does not render the image correctly. It passed the Acid2 test initially, but failed upon resizing. From version 4 onward, Google Chrome has passed the Acid1, 2, and 3 tests.[22]
- Webapps
- Webapps can be launched in their own streamlined window without the Omnibox URL box and browser toolbar. This limits the browser chrome so as not to "interrupt anything the user is trying to do", allowing web applications to run alongside local software (similar to Mozilla Prism, Adobe AIR and Fluid).[16]
Notes
[change | change source]- ↑ Chrome's WebKit & Blink layout engines and its V8 JavaScript engine are each free and open-source software, while its other components are each either open-source or proprietary. However, section 9 of Google Chrome's Terms of Service designates the whole package as proprietary freeware.
References
[change | change source]- ↑ Govind, Krishna (May 21, 2019). "Stable Channel Update for Desktop". Chrome Releases. Blogger. Retrieved May 31, 2019.
- ↑ "Chromium (Google Chrome)". Ohloh.net. Archived from the original on April 21, 2012. Retrieved February 8, 2012.
- ↑ "Chromium coding style". Google Open Source. Retrieved March 29, 2017.
- ↑ Lextrait, Vincent (January 2010). "The Programming Languages Beacon, v10.0". Archived from the original on May 30, 2012. Retrieved March 14, 2010.
- ↑ "Chrome Enterprise and Education release notes". Google Groups. October 25, 2022. Retrieved October 27, 2022.
- ↑ "Google Chrome (iOS)". May 16, 2023.
- ↑ "Supported languages". Google Play Console Help. Retrieved December 18, 2015.
- ↑ "Google Chrome and Chrome OS Additional Terms of Service". www.google.com.
- ↑ 9.0 9.1 9.2 Scott McCloud (September 1, 2008). "Google Chrome By the Google Chrome team, comics adaptation by Scott McCloud". Retrieved September 1, 2008.
- ↑ http://code.google.com/chromium/
- ↑ "It was when not if... Google Chrome". September 2008. Archived from the original on December 8, 2016. Retrieved September 2, 2008.
- ↑ Mark Larson (December 8, 2009). "Beta Update: Linux, Mac, and Windows". Google. Retrieved July 11, 2012.
- ↑ "Google Chrome for the holidays: Mac, Linux and extensions in beta". Googleblog.blogspot.com. Retrieved July 11, 2012.
- ↑ Scott McCloud (September 1, 2008). "Surprise!". Google Blogoscoped. Retrieved September 1, 2008.
- ↑ Philipp Lenssen (September 1, 2008). "Google Chrome, Google's Browser Project". Retrieved September 1, 2008.
- ↑ 16.00 16.01 16.02 16.03 16.04 16.05 16.06 16.07 16.08 16.09 Philipp Lenssen (September 1, 2008). "Google on Google Chrome - comic book". Google Blogoscoped. Retrieved September 1, 2008.
- ↑ "Google Chrome". September 1, 2008. Retrieved September 2, 2008.
- ↑ "Google Chrome". September 2, 2008. Retrieved September 2, 2008.
- ↑ Limi, Alexander (September 2, 2008). "Chrome: Benchmarks and more". Archived from the original on April 24, 2010. Retrieved September 2, 2008.
- ↑ Philipp Lenssen. "Google Chrome Screenshots". Google Blogoscoped. Retrieved September 2, 2008.
- ↑ "Blink: Chrome's New Rendering Engine - SitePoint". www.sitepoint.com. Retrieved January 1, 2021.
- ↑ Anthony Laforge (January 25, 2010). "Stable Channel Update". Google. Retrieved May 25, 2010.