Category Archives: Browser

Chrome – Google’s first step towards Web OS?

Chrome is designed as a Multi Process Architecture keeping in mind the increasing complexity of the web applications. It has several advantages instead of running the whole browser as a single process with several threads.

Today’s browsers try to act smart much like a little operating system. Indeed it runs several (heavy?)applications inside the browser like in Firefox we have FTP, Torrent, IRC, etc.

Browser must attempt to keep each web apps with JavaScript, Flash, Silverlight, Java etc independent of each other so that if one has a bug and crashes it must not close the browser itself. Chrome is designed to spawn multiple instances of Chrome.exe for each tab or site exactly for this reason.

windows-task-manger-chrome

Chrome uses the open source WebKit rendering engine, which is also used by Apple’s Safari web browser.

Since it runs multiple processes Google Chrome can have its own Task Manager. You can access the Google Chrome Task Manager with SHIFT+ESC or a right click on the browser’s title bar.  This Task Manager lets you track resource usage for each web app and plug-in, rather than for the entire browser.  You can kill any web apps or plug-ins that has crashed, without having to restart the entire browser.

google-chrome-task-manager

Chrome spawns 3 entirely different architectural processes to manage the browsing.

  1. Browser Process: Similar to underlying OS it co-ordinates and takes care of interaction with all peripheral devices as well as file interactions. It directs Renderer and Plu-ins to behave in the designed way. It doesn’t do any rendering.
  2. Renderer Process: As the name suggests. Many renderer process are created to manage each web app. And the most interesting point is that each renderer runs in a separate sandbox with no access to OS files. If any suspicious activity is noticed in a renderer browser kills that PID.
  3. Plugin Process : Manages the plugins like Flash, Adobe Reader etc.

For each website you visit a new process (renderer) is created. This means an additional chrome.exe in your Windows Task Manager. All this chrome.exe is aggregated and categorized in the Google Chrome Task Manager.

If you open a site from another site’s JavaScript only one renderer will be spawned. Also only one renderer per one domain since inter communication between the different apps of the same domain cannot happen if different PIDs are used. For example if you are signed in yahoo mail, you have to re-sign in for accessing yahoo answers.

In short,

google-chrome-exe-process-details

Strategy

1.    By using different processes for each site a robust application can be run in each Tab.

2.    This implies Google can go ahead and create apps with more functions making things breezier.

So, it’s the beginning of the Web OS as the future will be fully loaded with more on web side.

Is Google the early Bird?
Continue reading