You are on page 1of 42

Behind the Open Source Browser Project

TODAY, MOST OF WHAT


WE USE THE WEB FOR ON A
DAY-TO-DAY BASIS AREN'T
JUST WEB PAGES, THEY'RE
APPLICATIONS.

Brian Rakowski,
Product Manager

PEOPLE ARE ALL


WATCHING AND THESE THINGS
UPLOADING VIDEOS, THAT DIDN'T EXIST
CHATTING WITH EACH WHEN THE FIRST
OTHER, PLAYING BROWSERS WERE
WEB-BASED CREATED.
GAMES-

Pam Greene, Software Engineer


WHEN
WE STARTED
THIS PROJECT, THE
GEARS GUYS WERE FOR EXAMPLE, ONCE YOU HAVE
SAYING THAT OME OF THE JAVASCRIPT EXECUTING, IT'S GOING
PROBLEMS WITH TO KEEP GOING, AND THE BROWSER
BROWSERS IS THAT CAN'T DO ANYTHING ELSE UNTIL
THEY'RE INHERENTLY JAVASCRIPT RETURNS CONTROL TO
SINGLE-THREADED. THE BROWSER.

HTML

C(/ JAVASCRIPT

PLU6INS

HTML
PROCESS %J PROCESS

AMD IF THERE'S A BROWSER BUG IN

THE REMDERER (AND OUR


EXPERIENCE IS THAT IT'S ALMOST
IMPOSSIBLE TO ELIMINATE ALL BUGS),
WE STILL ONLY LOSE THE ONE TAB.

WHEN ONE TAB GOES DOWN YOU A MULTI-PROCESS


GET A 'SAD TAB' BUT IT DOESN'T BUT OVER TIME, IT
DESIGN MEANS USING A BIT WILL ALSO MEAN
CRASH THE WHOLE BROWSER.
MORE MEMORY UP FRONT. EACH LESS MEMORy
PROCESS HAS A FIXED BLOAT.
ADDITIONAL COST.

IN A TRADITIONAL BROWSER, WHEN YOU HAVE TOO MANY WHEN YOU BRING IN ANOTHER
YOU ONLY HAVE ONE PROCESS TABS OPEN, YOU CAN CLOSE TAB, YOU USETHE MEMORY
AND ONE ADDRESS SPACE SOME TO FREE UP MEMORY. THAT WAS PREVIOUSLY USED.
THAT YOU KEEP LOADING WEB
PAGES INTO.

ODD
DDD
D D =
BUT AS TIME GOES ON,
FRAGMENTATION RESULTS —
LITTLE BITS OF MEMORY
STILL GET USED EVEN WHEN
A TAB GETS CLOSED.

ODD DDD
DDD DD
iODO DDD
Mike Belshe,
Software Engineer

AND THIS PROBLEM GROWS ALL DAY, AS


THE LIFETIME OF THE BROWSER EXTENDS.

TRY CLOSING SOME TABS.

DDD
ODD
D BUT WHEN A TAB IS CLOSED IN GOOGLE
CHROME, YOU'RE ENDING THE WHOLE PROCESS

D
DD ^ ^ ^ http://wwwTnemoryhog.ne1
— AND
ALL THAT
MEMORY

D GETS
RECLAIMED.

mmmm
OPEN A NEW TAB
NOW, AND YOU'RE
Wmw
I II" |
lllltl
SO AS YOU BROWSE, WE'RE CREATING AND
DESTROYING PROCESSES ALL THE TIME. IF THERE'S A
llll'Hli',
STARTING FROM Wii'liH ! 1

CRAZY MEMORy LEAK. IT WON'T AFFECT YOU FOR THAT LONG


SCRATCH. BECAUSE YOU'LL PROBABLy CLOSE THE TAB AT SOME
POINT AND GET THAT MEMORy BACK.

— SO NOW WE CAN THROW AWAY THE


AND WE'RE TAKING IT ONE OLD RENDERING ENGINE, THE OLD DATA
STEP FURTHER. SUPPOSE yOU STRUCTURES, THE OLD PROCESS.
NAVIGATE FROM DOMAIN A TO
DOMAIN B. THERE'S NO NEED FOR
ANy RELATIONSHIP BETWEEN
THE TWO SITES —

SO, EVEN WITHIN A


TAB, WE CAN BE
COLLECTING AND
TOSSING OUT THE
GARBAGE,
RECYCLING THE h ft ft rv r\

WHOLE PROCESS.
yOU CAN EVEN SEE
AND JUST LIKE
PLUG-INS WITHIN THE TAB
with your os, you
THEY APPEAR IN CHROME
CAM LOOK UNDER
MANAGER AS SEPARATE
THE HOOD WITH
PROCESSES.
GOOGLE CHROME'S
TASK MANAGER TO SEE
WHAT SITES ARE USING
THE MOST MEMORY,
DOWNLOADING THE I
Memory |
CPU |
Network 0
MOST BYTES, AND 74.000K 0 0
ABUSING YOUR i Mall 0 0
CPU.
n 14.768K 0 0
u
0 0

WHY IS THIS SO, WHEN THINGS START FREAKING OUT,


APPLICATION YOU'LL FINALLY HAVE SOME INSIGHT INTO
DOWNLOADING
THE ENTIRE
WHO'S MISBEHAVING AND WHY ~
INTERNET?

PLACING
BLAME
WHERE BLAME
BELON&S.

Memory I
CPU Network
mivore 74,000K 0 0

nes from Mail 0 0

ogle.com 14.768K 0 0

ly 2008 0 0

s - All items 17.200K 1 0

adsheets 0

8
10J2I
GOOGLE
FORTUNATELY,
CHROME 15 A
MASSIVE,
Ml HERE AT
GOOGLE, WE
COMPLICATED
HAVE AN EQUALLY
PRODUCT THAT WILL
MASSIVE
NEED TO LOAD
INFRASTRUCTURE
SILLIOM5 OF
FOR CRAWLING
DIFFERENT WEB
PAGES, SO
WEB PAGES.
TESTING- IS

CRITICAL.

Huan Ren,
Software Engineer

WITHIN 20-30 MINUTES OF EACH NEW BROWSER BUILD, WE CAN


TEST IT ON TENS OF THOUSANDS OF DIFFERENT WEB PAGES.

33 V-' t

EACH WEEK, "CHROME BOT" TESTS MILLIONS


OF PAGES, GIVING OUR DEVELOPERS EARLY
RESULTS THEY'D OTHERWISE HAVE TO WAIT
UNTIL EXTERNAL BETA FOR.

THE KEY IS CATCHING AND CATCHING THEM EARLY


PROBLEMS AS EARLY AS HELPS ENGINEERS WRITE
POSSIBLE. ITLESS IS BETTER CODE. THEY SAY,
EXPENSIVE AND EASIER "OH, THIS MISTAKE IS PART
TO FIX THEM RIGHT AWAY. OF A PATTERN" AND THE
AFTER A FEW DAYS IT IS NEXT TIME, THEY'RE LESS
HARDER TO TRACK THEM LIKELY TO MAKE IT.
DOWN.

CI?

>0

Erik Kay, Software Engineer


>
ONE BILLION

OF COURSE, THERE ARE Web Images


BILLIONS, MAYBE TRILLIONS OF
WEBPAGES OUT THERE. IF EACH BUILD We already rank pages
IS TESTED AGAINST A MILLION SITES,
based on which pages
WHICH MILLION DO WE USE? the average user is most
likely to visit.
www.alreadyrank.com - Similar Pages

At the very least , we'll


make sure we won't be
broken on the kinds of
sites people use on a
day-to-day basis.
www.attheveryleast.com - Similar Pages

THERE ARE SEVERAL WAYS WE TEST


EACH CHECK-IN. FROM UNIT TESTS OF
INDIVIDUAL PIECES OF CODE —

Pam
Greene,
Software
Engineer

10
IN LAYOUT TESTING, WEBKIT FOUND THAT WHEN WE
PRODUCING A SCHEMATIC OF WHAT THE BROWSER STARTED WE WERE
THINKS IT'S DISPLAYING IS A MORE PRECISE WAY TO PASSING 23% OF WEBKIT'S
COMPARE LAYOUTS THAN TAKING SCREENSHOTS AND LAYOUT TESTS. MOVING
CREATING A CRYPTOGRAPHIC HASH. FROM THERE TO ?<?% HAS
BEEN A FUN CHALLENGE AND
AN INTERESTING EXAMPLE
OF TEST-DRIVEN
DESIGN.

7^

THERE ARE WE CAN'T


LIMITS TO WHAT TEST WEBSITES
WE CAN DO WITH THAT REQUIRE A
AUTOMATED PASSWORD, FOR
TESTING. EXAMPLE.
Name Password

AND IT'S NOT THE SAME AS A


HUMAN BEING WALKING AROUND IT'S HARD I DON'T CARE IF
AND MISUSING THINGS. WE ARE TO COVER 100%, THERE'S ONE FEWER
USING THE BROWSER IN THE WAY BUT THAT'S WHAT COOL FEATURE. I JUST
WE'VE DESIGNED IT TO BE USED. WE'RE TRYING WANT THIS PRODUCT TO
TO DO. BE ROCK SOLID.
+ e <r Speed: WebKit and V8 [>
BUT NOW,
YOU HAVE WEB APPLICATIONS LIKE
GMAIL THAT ARE USING THE WEB
BROWSER TO ITS FULLEST WHEN IT COMES
TO DOM MANIPULATIONS AND
JAVASCRIPT —

3. Pzt

JAVASCRIPT ITSELF IS CLASSLESS. BUT IN V8, AS EXECUTION GOES ON,


YOU CAN CREATE A NEW OBJECT, OBJECTS THAT END UP WITH THE SAME
DyNAMICALLy ADD PROPERTIES TO PROPERTIES WILL SHARE THE SAME HIDDEN
IT AND GO ON. CLASS AND WE CAN START APPLYING
DYNAMIC OPTIMIZATIONS BASED ON THAT.

V8
-O-o-O

WHEN OTHER JAVASCRIPT ENGINES RUN, THEY


LOOK AT THE JAVASCRIPT SOURCE CODE AND
GENERATE AN INTERNAL REPRESENTATION OF IT
THEY CAN INTERPRET.
BUT, WHEM YOU HAVE SO INSTEAD, V8 LOOKS AT THE JAVASCRIPT
TO DO INTERPRETATION, SOURCE CODE AND GENERATES MACHINE
YOU HAVE TO LOOK AT CODE THAT CAN RUN DIRECTLY ON THE CPU
THE STRUCTURE OF YOUR THAT'S RUNNING THE BROWSER.
INTERNAL REPRESENTATION
OVER AND OVER
AGAIN.

- WHEN YOU INTERPRET ONCE AND COMPILE MACHINE CODE, THEN


THAT CODE IS YOUR REPRESENTATION OF THE JAVASCRIPT SOURCE
CODE AND IT DOESN'T NEED TO BE INTERPRETED, IT JUST RUNS.

1 J. 0 1 0 1 OOO 1 0 1 OOO 1 0 1 0 1 OOl O lO 1 OOOOl 0 1 0 1 OOOOl Ol 0 1 c

JAVASCRIPT AND OTHER MODERN


OBJECT-ORIENTED PROGRAMMING
LANGUAGES HAVE AUTOMATIC
MEMORY MANAG-EMENT.

IF YOU DON'T HAVE A REFERENCE TO AN


BUT
OBJECT ANYMORE, ITS MEMORY CAN BE IN EXISTING
RECLAIMED BY THE SYSTEM. THAT'S JAVASCRIPT
GARBAGE COLLECTION, AND ITS A FAIRLY VIRTUAL MACHINES,
TRIVIAL PROCESS. THEY USE
CONSERVATIVE
GARBAGE
COLLECTION —

O o 0 o

15
— yOU START SEARCHING THROUGH THE EXECUTION STACK
TO SEE WHICH WORDS LOOK LIKE POINTERS.

BUT THE ONES THAT SORT OF LOOK LIKE POINTERS COULD


ALSO BE INTEGERS THAT JUST HAPPEN TO HAVE THE SAME
ADDRESS AS AN OBJECT IN THE OBJECT HEAP.

MEANING QUICK GARBAGE COLLECTION


AND, BECAUSE WE KNOW PRECISELY ROUND-TRIPS THAT ARE CLOSE TO A FEW
WHERE ALL THE POINTERS ARE, WE MILLISECONDS, COMPARED TO PROCESSING
CAN ALSO IMPLEMENT INCREMENTAL ALL IOOMB OF DATA WHICH COULD CAUSE
GARBAGE COLLECTION. SECOND-LONG PAUSES.

O
o
O o o o

16
THIS MEANS MUCH
BETTER INTERACTIVE
PERFORMANCE OF WEB
APPLICATIONS, LIKE
SMOOTHER DRAG AND
DROPS.

GOOGLE

— OR, IF THERE'S
ANOTHER PROJECT THAT WE HOPE V8'S PERFORMANCE
JAVASCRIPT CAN APPLY WILL SET A NEW BAR, AND THAT
TO, DEVELOPERS CAN THE OTHER DEVELOPMENT TEAMS
TAKE V8 BY ITSELF. WILL CONTINUE TO IMPROVE IN
THIS SPACE.

Wf

V
V\
II
BECAUSE IF YOU LOOK AT ANy OTHER
SYSTEM THAT'S BECOME FASTER OVER TIME,
WHAT HAPPENS IS THAT YOU 6ET BIGGER,
BETTER, MORE INVENTIVE APPS.

z7
Part Three

> Search and the User Experience 0

WE COULD DETACH THE

18
AND BECAUSE THE TABS ARE THE MOST IMPORTANT
PART OF THE UI, EACH TAB HAS ITS OWN CONTROLS.

J v.

ho*" sttfff works

n-

THE OMNIBOX HANDLES FAR VOU HAVE FULL TEXT SEARCH


MORE THAN JUST URLS. ALSO
IT over youR HisTORy. if you FOUND
OFFERS A GOOD SITE FOR DIGITAL CAMERAS
SUGGESTIONS yESTERDAy, yOU DON'T HAVE TO
FOR SEARCHES, BOOKMARK THAT PAGE
TOP PAGES
01 cars YOOVE VISITED
Search Google for cars BEFORE, PAGES
www.cars.com YOU HAVEN'T JUST TYPE
www.cars.com/go/search/s' VISITED BUT 'DIGITAL CAMERA'
Cars - Pixar DVD and Blu AND QUICKLy GET
Consumer Reports: 2008
ARE POPULAR
AND MORE... BACK TO IT.

Search imbd.com f«

See 8 recent pages in history contS

C ft digital camera
Search Google for digital came
www.digitalcamera.com
Glen Murphy,
Software Engineer Canon EOS Rebel i£Si Black C
http://www.pcmag.cdU^articles/0
Nikon Digital SLR _T

19
WHEN THE TEAM SUGGESTED BUT, THEY SAID, NO, INLINE COMPLETIONS
AUTOCOMPLETION IN LINE, I NO, IT'LL BE FINE, WILL NEVER FLICKER,
SAID I HATED IT WHEN TRUST US — AND NEVER FLASH. IT'S
BROWSERS STICK ALL THIS THEY WENT ON AND PERFECTLY,
CRAP INTO A LOCATION SAR MADE IT SOMETHING AESTHETICALLY
AS I'M TYPING. IT'S NEVER REALLY COMPELLING... NON-DISTRACTING.
WHAT WANT.
I

cars
Search Google for ci
www.cars.com
www.cars.com/go/se
Cars - Pixar DVD an
Consumer Reports:

Search in

See 8 rec

PLUS, IT'LL ONLY AUTOCOMPLETE TO SOMETHING YOU'VE EXPLICITLY TYPED BEFORE.

cnn.com/2008/politics/07/27/campaign. wrap/index, html ?iref=mpstoryv


OPEM A MEW TAB IN
MOST BROWSERS TODAY
AMD YOU'LL GET YOUR
HOMEPAGE.

SOME USERS
HAVE A BLANK
PAGE BECAUSE
IT OPENS
QUICKLY.

WE'RE GOING TO SHOW A PAGE


THAT IS DESIGNED TO BE FAST,
BUT ALSO HELPS YOU COMPLETE
THAT ACTION.

21
IT'S THE PA6ES YOU WERE GOING TO TYPE INTO THE URL BOX ANYWAY.
GOOGLE CHROME USES YOUR BEHAVIOR IN THE OMNIBOX TO FEED INTO THAT PAGE.

Most visited Searches


Evan Martin, Software Engineer Gmail History
|

Gaail |
Amazon

Mirriam-Webster
[

Recently bookmarked
New York Times

—£3-

Wells Fargo
m
B Q Q '79

Glen Murphy, Software Engineer


Recently closed tabs

= DD

VOU MIGHT OPEN IT AND BE, LIKE, WHAT'S ALL MY STUFF DOING HERE? BUT
AFTER A WHILE, YOU SEE THIS PAGE AND IT'S JUST YOU, IT'S yOUR BROWSER.

GOOGLE CHROME HAS A PRIVACY


MODE. VOU CAN CREATE AN
'INCOGNITO'WINDOW AND NOTHING
THAT OCCURS IN THAT WINDOW IS
EVER LOGGED ON YOUR COMPUTER.

22
BACK. THEN, IT
MALWARE AND PHISHING WAS ABOUT
ARE A HUGE PROBLEM FOR USERS RENDERING
AFFECTING TRUST AMD THE PAGE AND
COMFIDEMCE IN THE WEB. GETTING THE
COOL THINGS
WORKING.
THERE WAS
WHEM WE NO MONETARY
STARTED THIS
INCENTIVE TO
PROJECT, IT WAS A VERY
PUT MALWARE
DIFFERENT LANDSCAPE
ON USERS'
FROM WHEN THE OTHER
MACHINES.
BROWSERS STARTED.

NOW, MALWARE
IS VERY

FINANCIALLY
DRIVEN. IT'S
ALL ABOUT
STEALING
PASSWORDS
AND MOVING
MONEY
AROUND.

IN THINKING ABOUT SECURITY, WE BEGAN WITH


THE ASSUMPTION THAT YOUR BROWSER WOULD
GET COMPROMISED.

VOU
WILL EVENTUALLY
ENCOUNTER
MALWARE.

"Half-Empty"
John Abd-EI-Malek,
Software Engineer
Ian Fette,
Product Manager Carlos Pizano,
Software Engineer

25
WITH SANDBOXING-. OUR goal is to prevent malware from
INSTALLING ITSELF ON YOUR COMPUTER OR USING WHAT HAPPENS IN
ONE TAB TO AFFECT WHAT HAPPENS IN ANOTHER.

CHROME PROCESS

THEY CAN
COMPUTE BUT
THEY CAN'T WRITE
FILES TO yOUR
HARD DRIVE OR
READ FILES FROM
SENSITIVE AREAS
LIKE yOUR
DOCUMENTS OR
DESKTOP.

OR AS — WE'VE TAKEN - AND MADE IT


THE SANDBOX TEAM THIS EXISTING PROCESS
— INTO A JAIL.
PUT IT BOUNDARy

ESS

26
THE PERIMETER OF THE VISTA USES A MODIFIED VERSION
SANDBOX IS LAR&ELy BASED OM
OF THE BIBA SECURITY MODEL WHICH
PERMISSIONS. HAS THREE LEVELS.

Mark Larson,
Program Manager

27
READING
IS
THIS LEVELIS FOR THIS LEVEL IS FOR
BACKUP SYSTEMS, EVERYTHING THE USER
ALLOWED
FROM
t
PROGRAMS THAT RUMS NORMALLY.
UPDATE, ETC. NOTEPAD, SOLITAIRE,
LOW
TO
CALCULATOR...
HIG-H --

— BUT
WRITING-
IS
ALLOWED
ONLY
FROM
HIGH
TO
LOW.

TYPICALLY, APPLICATIONS
RECEIVING AND PROCESSING
DATA FROM THE INTERNET
ARE SPLIT INTO THE TWO
LOWER LEVELS.

28
ZH TERMS OF PERMISSIONS
ON THE SYSTEM, GOOGLE
CHROME'S RENDERER MAY RUN AT
VERY LOW PRIVILEGES, BUT THERE
ARE PLU&INS THAT RUN AT THE
SAME LEVEL OR EVEN HIGHER
THAN THE BROWSER.
CHROME PROCESS PROCESS

j —

AND
MEANWHILE,
WE HAVE A
HUGE SURFACE
AREA REDUCTION
IN VULNERABILITY,
FROM ALL
THIS --

30
i i :

THEM THEY SEMD USERS TO A NEARLY EXACT COPY OF THEIR


BANK'S WEBSITE AMD START STEALING THEIR INFORMATION.

3^
I http://www.(bank's name). com I http://www.(bank's name). login. com

View Your Accounts View Your Accounts


Go to: |
Account Summary |
j] Go to: |
Account Summary |j]

Username: Username:

THE HARD PART


— THOUGH A IS FINDING THEM
FEW LAST UP CLOSE TO TIME
TO 7 DAYS OR ZERO.
MORE.
Tick:

Tick: /£r —
XX X
XXXX

Tick :

T.ck:
Tick!

32
if youGO TO A
WEBSITE THAT
MATCHES THE LIST,
yOU'LL GET A
WARNING.

WE'VE MADE THIS


SERVICE FREELy
AVAILABLE. WE'RE HAPPy
TO GIVE IT AWAy. IT'S A
PUBLIC API.

WHEN WE
DISCOVER
MALICIOUS
CONTENT, WE
NOTIFY THE OWNER
OF A WEBSITE, WHO
USUALLy WASN'T
INTENDING TO BE
MALICIOUS, AND
THEY CAN TAKE THIS
INFORMATION AND
CLEAN UP THEIR
SITE.

33
Gears, Standards and Open Source

3H
THERE ARE A LOT OF LIMITATIONS TO THE KIMDS OF APPLICATIONS THAT YOU CAN BUILD TODAY
WITH WEB BROWSERS, AND THE SUBSET OF THINGS YOU CAN DO IS DIFFERENT FOR EACH BROWSER.
IF ONE BROWSER HAS A COOL FEATURE, THAT DOESN'T HELP —
THEY DOM'T HAVE
TO PAY US. THEY
DOM'T HAVE TO ASK
OUR PERMISSION!.
THEY DOM'T HAVE
TO SHARE PATCHES OR
REPORT BU6S*

*THOUGH, IF THEY LIKE, WE HAVE


SYSTEMS IM PLACE FOR THAT.

THAT'S WHY
SURE, WE WE'RE OPEM
COULD ship a
SOURCIMG THE
PROPRIETARY WHOLE THIMG. WE
BROWSER AMD
HOLD IT IM.
NEED THE IMTERMET
TO BE A FAIR,
SMART, SAFE
PLACE.

37
fiooomoioioi
L01010001010010\
L01010111001000]
WE ARE ABOUT
>10100101101101( ~ TO KEEP
.10010001010110; EVOLVING WITH
BUILDING GOOGLE imnr
CHROME, IT'S THE WEB AND
IMPORTANT TO HELP CONTINUING TO
ALL BROWSERS BUILD A SOLID
BECOME MORE FOUNDATION for
POWERFUL ~ MODERN WEB
APPLICATIONS.

USER WEBKIT
0

W' PROCESS

J— J \-

38
Words
The Google Chrome Team

Comics Adaptation
Scott McCloud
Go gle
www.google.com/chrome

© Copyright 2008. All rights reserved. Google and the Google logo are trademarks of Google Inc. All other
company and product names may be trademarks of the respective companies with which they are associated.

This work is licensed under the Creative Commons Attribution-Noncommercial-No Derivative Works 2.5
License. To view a copy of this license, visit http://creativecommons.Org/licenses/by-nc-nd/2.5/legalcode

You might also like