Google’s 39 page on-line guide to the design issues and architecture of Google Chrome is a perfect teaching resource for IT students and would particularly make a good foundation for a research project. It covers a diverse range of issues and challenges including browser stability, Javascript, application programming interfaces (API), WEBKIT, phishing and lots more. The document is divided into six sections i.e. ‘Behind the Open Souce Browser Project’, ‘Stability, Testing & the Multi-Process Architecture’, ‘Speed: WEBKIT & V8’, ‘Search & the User Experience’, ‘Security, Sandboxing & Safe Browsing’ and ‘Gears, Standards & Open Source’. We’ll break those down for you below to help you search for the IT area you’re interested in.
It’s in a digital comic book style which makes for easy and informative reading with plenty of humour thrown in for good measure. As with all Google products it is comprehensive but brief and to the point. As a software learning guide it is only suitable for older teenagers as the concepts and language used is quite advanced but it’s a great resource for future programmers.
Introduction to the Chrome Open-Source Browser Project
The introduction to this digital guide describes the modern day challenges for web browser design such as having to handle video content and web-based games that weren’t around when the internet was in its infancy. Also the importance of speed and stability is mentioned along with the growing need for enhanced security. All of these ideas and many others then need to be packaged into something that is clean, simple and efficient. Chrome has certainly proved that ‘less is more’ by not loading the browser with too many features … they’ve also made it open-source so others can adopt and adapt.
Stability, Testing and the Multi-Process Architecture
Discusses the problems with single-threaded browsers and how, as an example, if Javascript is executing it can take control of a browser until Javascript returns control. Initial ideas around multi-threaded browsers evolved into multiple processes where each process has its own memory and its very own copy of global data structures. This also creates separate Javascript threads. One main advantage is that a bug in one Chrome tab does not crash the entire browser …. just that individual tab. Also there are no issues with fragmentation within the memory because each tab has its own work area which means that during the browsing process the user is creating and destroying processes continually so the OS does not need to continually expand Chrome’s address space. Chrome’s task manager is explained and how it allows the user to see which sites are using the most resources. Page 9 discusses testing and how Google can test a new browser build across tens of thousands of websites within just half an hour. Catching problems early is key. Different types of testing are mentioned including automated UI testing of scripted user actions, fuzz testing and layout testing.
WEBKIT is introduced as their open-source rendering engine for Chrome. The importance of a Javascript virtual machine is discussed and how it needed to differ from previous virtual machines which were not necessarily designed for interactivity or performance. Google consequently started from scratch and looked at options to optimise speed such as hidden class transitions and dynamic code generation. The benefits of ‘precise garbage collection’ are described such as knowing where all of the pointers are on the stack so that objects can be migrated to another place and the pointer rewired. This leads on to ‘incremental garbage collection’ which means that Chrome garbage can be cleaned up in quick, small chunks rather than in large lumps which could cause a computer to pause.
Search and the User Experience
Introduction to the ‘omnibox’ which exists courtesy of Google Chrome’s unique tab architecture which allows tabs to be detached from each other and consequently have their own controls and their own URL box. This omnibox also provides other services such as offering suggestions and remembering pages you’ve visited. Autocomplete in Google Chrome has been designed intelligently to provide a compelling and useful service … not something that is an annoyance to users. The home page also displays nine of your most visited websites for quick and convenient access. The Google Chrome incognito window is mentioned and how you can still access your bookmarks but no browser history is saved and cookies are deleted when the tab is closed. Pop-up management is explained.
Security, Sandboxing and Safe Browsing
The current issues with phishing and malware are covered. The main approach to dealing with these issues in Google Chrome is the assumption that everybody’s browser will eventually become compromised. Sandboxing is explained and how it prevents malware from installing itself on your machine or letting one tab affect another by essentially securing each tab and taking away its rights. Sandbox perimeters can be altered based on permissions such as ‘very trusted’, ‘somewhat trusted’ and ‘not trusted at all’ … with reading being permitted from low to high but writing being restricted from high to low. Plugins are explained and their relationship to permissions which is problematic. Plugins are not to public standards so can’t yet be sandboxed but plug-in makers themselves can help by running them with low privileges. Google Chrome plug-ins removed from rendering process so that remainder of page can be sandboxed even if the plug-in cannot be sandboxed. Challenges of tackling phishing are described and the importance of catching each attack as soon as possible. Google maintains a list of websites which are associated with phishing and malware so they can constantly monitor and prevent users from visiting them.
Gears, Standards and Open Source
Introduction to Google Chrome’s Gears and how they add an extension to the browser that improves capabilities. Gears provides important benefits for developers. It tries to improve the functionality of all browsers. Advantages of native apps over web apps. Advantages of open standards to aid all browsers because developers can take what they need. Why Google make their Google Chrome browser open source for the benefit of the whole internet. Final shout out to Mozilla and WEBKIT.