From Wikipedia, the free encyclopedia
Google Chrome is an open source web browser developed by Google. Google Chrome builds on components
from other open source software, including WebKit and Mozilla, and is aimed at improving
stability, speed and security with a simple and efficient
user
interface.[1]
The beta for the Windows version is due to be released on
September 2,
2008. Google will host a
press conference that day at 18:00 UTC (11:00 am PDT). Mac OS X and Linux versions are under development and
will follow the Windows version.[2][3][4]
The name is derived from the graphical user interface
frame, or "chrome", of web browsers.
[edit]
Announcement
The official announcement was scheduled for September 3,
2008 and was to be sent to
journalists and bloggers with a Creative Commons
Attribution Noncommercial No Derivative Works 2.5
licensed comic by Scott McCloud explaining the features
of and motivations for the new browser.[5] Copies intended for
Europe were shipped
early and German
blogger Philipp Lenssen of Google Blogoscoped[6] made a scanned copy of
the 38-page comic available on his website after receiving it
on September
1, 2008.[7] Google has since made the
comic available on Google Books and their
site[8] and referenced it on its official
blog along with an explanation for the early
release.[1]
[
edit] Design
[edit]
Security
[edit]
Blacklists
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". 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.[7]
[edit]
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 (eg
documents, desktop). 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 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.[7]
[edit]
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. Plugins will
need to be modified to operate within this software
architecture while following the principle of least
privilege.[7]
[edit]
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."[1]
[
edit] Speed
[edit]
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.[7]
[edit]
Stability
[edit]
Multiprocessing
The Gears team were 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 multiprocessing architecture. A
separate process is allocated to each task (eg tabs, plugins),
as is the case with modern operating
systems. This prevents tasks from interfering with each
other which is good for both security and stability; an attacker
successfully gaining access to one application does not give
them access to all and failure in one application results in a
Sad Tab screen of
death not unlike the well-known Sad Mac. 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.
[edit]
Task Manager
Chrome features a process
management utility called the Task Manager which will
allow 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.[7]
[edit]
User interface
[
edit] 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).[7]
[edit]
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 nine most visited web sites along with the sites
most often searched, recent bookmarks and recently closed
tabs.[9] This concept appeared first with
Opera's Speed
Dial.[7]
[edit]
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.[7]
[
edit] Popups
Popup 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.[7]
[edit]
Rendering engine
Chrome uses the WebKit
rendering engine on advice from the Android team. The
WebKit engine is simple, memory efficient, useful on embedded
devices and easy to learn for new developers.[7]
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
(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.[7]
[edit]
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[7] and Fluid [1]).
[edit]
Testing
The browser was tested internally before release by unit testing,
"automated user interface testing of scripted user actions" and
fuzz testing.
New browser builds are automatically tested against tens of
thousands of commonly accessed sites within 20-30
minutes.[7]
[edit]
References
[edit]
External links