, , , , , , ,

Google’s new open source web browser takes some novel approaches that may well see their way into other browsers depending upon the success of Chrome. There are a lot of features but here I discuss two of them. These two features are surely going to have a major impact on the browsing experience and on the future growth of rich internet applications.

Improved tabbed browsing
Tabbed browsing as a concept is not new but Google’s implementation is. Previously browsers that employed tabbed browsing handled each tab in a different thread. Through this approach made use of a limited memory foot print, a crash in a single tab resulted in the crash of the whole browser process. Also on prolonged use, memory leaks did appear when tabbed browsing was employed. Google Chrome handles tabs by launching them as separate processes that have their own memory space and copy of global data structures. This is more on the lines of how an operating system achieves process isolation. The advantage is that even if one tab crashes, it has no affect on the other tabs since they are isolated processes. This approach also makes the browser a lot safer since programs running on different tabs cannot communicate due to the separate processes in which they are running. However the overhead would be an initially higher memory footprint. But I guess this is a small price to pay for increased stability and security. Another nice feature that Google has put in tabbed browsing is to discard all previously held process data for a tab once the URL of the tab changes to a different domain. So if you change from one domain to the other inside a tab, Chrome can discard the previous process data, rendering engine and even the old process itself. So in case the previous domain was leaking memory, the leak would not malign the new domain.

When browsing several websites in multiple tabs, none of the web browsers of today offer us a way of seeing which tab is hogging the most resources. Google Chrome does. It provides a feature called Chrome Task Manager that can be used to find out the rogue sites and also eliminate them.

Plug-ins that are being used by a website in a certain tab will appear inside that tab and will not affect the browser as a whole. Even pop-up windows are also scoped to a tab. There is no way a pop-up windows can be thrown out of the tab. They are confined within the scope of the tab and the user has the capability of dragging them out to a new window.

JavaScript Changes
Google Chrome sports a completely new JavaScript engine that Google calls the V8 JavaScript virtual machine. Its supposed to be a high performance engine that would make AJAX applications more responsive and faster. Unlike in other JavaScript engines, in V8, dynamically created objects that have the same properties share the same class on which optimizations can be applied. Other JavaScript engines on encountering JavaScript source code generate an internal representation of the same that the engine can interpret. V8 uses something called dynamic code generation for this. When V8 encounters JavaScript source code it generates machine code that can run directly on the CPU that is running the browser. This makes for faster and more responsive JavaScript applications. V8 also implements precise and incremental garbage collection techniques that makes more optimum use of memory when executing JavaScript. Even though Chrome uses the V8 engine, the core part of the engine is independent of the web browser and can be used by other developers too.

On the JavaScript front, Mozilla is reportedly using the TraceMonkey engine that has supposedly given performance boosts of up to 83%. With V8, it looks like JavaScript applications may get that extra support and make a magnificent come back.

Apart from the above mentioned features, Chrome has loads more. It’s probably best to download the browser when it is available for download and experience it yourself.