A site devoted to discussing techniques that promote quality and ethical practices in software development.

Sunday, March 1, 2009

A first encounter with Google Chrome

For some time now, the media and blog-spheres are full of praises for Chrome and hence I have decided to dip my toe into the Chrome (version 1.0.154.48) to see what it is like.

1.   Chrome is not a unsual Windows program in that it does not require Administrative rights to install. It is more akin to a .Net ClickOnce deployed solution in which the solution is installed in the user's profile area. So if you, like me, has several accounts in an XP box, you need to install it with each account.
2. I was really interested in the much hyped feature of one tab page per process technique which protects the Chrome process (the one visible to the user) from being torn down by a crash when processing one page. Armed with Spy++ and Process Explorer, I began my exploration. What I can tell is:
  • Yes, there is indeed one process (Chrome.exe) per tab page. Actually more than one process per page. 
  • But all visual Windows belong to one process, the parent process of Chrome. 
  • On the supporting processes, they seem to also host some dummy windows whose functions yet to be identified. They seem to be hidden windows of 0x0 size. 
After all, I have never heard of a way to marshal a window across processes. This makes sense, albeit a very blunt way of doing thing, of using process isolation to do all the polling, threading and interaction with remote internet sites and then rendering the data in one process.

This technique is nothing new and is a common idiom to provide the most robust defence against crashes.

One nice touch of Chrome is its support for Tablet PC without Add-in that is required in Firefox. Opera does not even support Tablet PC. Then again, does Chrome have add-in?

Chrome starts much much much quicker than Firefox and this, together with the support of Tablet PC out-of-the-box, Chrome may have won my approval for a switch.

No comments:

Blog Archive