Google Chrome Considered Harmful

It appears that Google scored a PR success with their Chrome browser. In short, the promise is a web experience where web pages are allowed to behave more like desktop applications. This is done by boosting the abilities of common web pages in terms of performance, while also allowing ‘plugins’ to enrich the user experience of certain other pages. As it seems, the announcement shot at the heads of people who’ve been holding their breath for the fabled Google Operating System. However in the following text I will demonstrate that Chrome [based on what we are allowed to know] puts strain on the Designer and Developer communities, is not innovative (save for one feature), and copies ideas liberally from Google’s worst enemy.

In order to explain the product, Google has appointed Blogoscoped to create a cartoon story that explains the product. I really feel that the explanations given in it do a disservice to the public, by making them want things that they don’t fully understand. I also feel that if they did, they wouldn’t want them anyway.

My greatest problem with the cartoon strip is that while it’s supposed to explain how Chrome works, it really explains how all major browsers work, implying that these features were invented for Chrome alone.

So I’d like to count pages with you dear reader and comment on what I read.

This is the first fallacy, and it’s being introduced early because it’s fundamental to the rhetoric that follows. Web pages, are fundamentally still html (presentation markup) and javascript (behavioral logic). Javascript especially, while being quite capable, is still several orders of magnitude slower than code running in the OS. Therefore it almost always is used to process the presentation of the application, while the actual processing is done at a web server.

Next up, a figure wonders if it would be great to have a new browser. Apparently, it could be great. On the other hand designers, that will have yet another browser to test their pages against, wouldn’t be delighted. Neither would plugin developers such as Adobe, Sun and Microsoft that would have yet another environment to support for their Flash, Java and Media Player + Silverlight plugins.

Next up an engineer is suggesting that it would be great if every browser page was isolated in a different process. This would mean greater memory consumption, but on the far end better stability and so on. Further along, they suggest that this requires more headstart memory but leads to less memory use further along. This is exactly how tabs work in Internet Explorer 8. Each tab is isolated in a process, it can’t even communicate with other tabs and so on. Furthermore, when a tab crashes, it alone is eradicated, the memory is freed and the tab is rebooted. By chance, Google’s Chrome does the same.

This however flat out leads to greater memory consumption. There is no way that the end overhead is smaller, except if a browser’s javascript engine or a plugin attached to the process is leaking memory. Google is willfully misguiding readers when stating this. There is no way that this would lead to less ‘bloat’. IE8 also uses a lot more memory than IE7 precisely because of this.

As mentioned, Google banks on the idea that browser tabs are leaking memory. Thankfully there is an easy fix for this. Either use IE8, or when loading a demanding web page, do so in a new browser window, which operates on a separate process.

Next up a process manager is suggested. This is indeed a useful idea, and a beneficial one. It remains to be seen if users want their browsers to be as complex an experience as managing their desktop. A big part of the success of the web lies in the idea that there is less management to be done. Google’s idea here is that pages will be very demanding in terms of processing either because the html + javascript combination is so inefficient that it can’t even handle the presentation layer of an application, or because they plan to move more business logic to the user end.

Then the authors suggest that there is extensive automated testing done to ensure that Chrome works with a great deal of web pages. This implies two things: either they want to ensure that it doesn’t crash, or that the browser may introduce rendering or javascript incompatibilities. So Google is deliberately putting it’s weight behind a project that will put even more stress to Designers who are debugging their CSS and Developers that produce popular javascript libraries such as JQuery, Dojo and so on.

The next page explains clearly that Google has indeed modified the webkit renderer and therefore is indeed a new platform that will have to be tested against.

And as expected a new javascript engine to be tested against was also introduced. The idea of using a virtual machine to serve javascript is also used by Microsoft in the Silverlight containers, pushing to massive performance gains. The difference is that Microsoft isn’t pushing this in the browser itself, making it a target for testing in traditional web pages.

As more details get revealed, we are told that the fact that the script engine is fully virtualized and that it uses more memory to keep tabs on how the rest of the memory is used is a good thing. While it is true that this will lead to a more acceptable experience in demanding applications, it’s putting a significant overhead on simpler ones that do basic things.

And then the real intentions are revealed. This is all meant to enable real heavy pages, not benefit the vast majority of use cases. It would be great if we knew the overall percent difference in memory usage on the pages that are tested for rendering conformance.

This is a very bold claim, and incidentally it’s how the Opera browser works. This makes sense initially, however it means a few things:

  • You have to traverse more pixels each time you switch to a page.

  • The only reason why you wouldn’t want the traditional model where buttons effect the active tab is that you want web pages to be able to change the UI to better adapt the user experience. However if you’ve ever been rickrolled, you know you don’t want the web site to have that much control on your experience.

  • Looking at it carefully. The tabs are essentially a taskbar like in Windows. If you add a start menu to the left, you have the Windows Shell, pure and simple.

The omnibox concept exists already in Firefox and IE8 alike. The comic strip suggests that it’s more developed, but the drawing doesn’t reveal anything like that.

Again, similar features exist in Opera and IE8. Opera in fact is identical to this behavior.

Which is exactly how things work in Safari and IE8.

The browser also uses your history to feed the front page. This leaves a gap however. There are many decent sites that are not work safe. Essentially this leaves users either risking their image towards others or loosing convenience by browsing in Incognito mode.

To address the security problems that will inevitably arise (as is correctly pointed out), the concept of sandboxing is introduced. This too is not innovative. Privilege isolation is part of all major browsers, and most of all, part of the ones shipped inside Windows and OSX since the browsers are actually used for many processes intrinsic to these OSes.

This could not be more true. It is however also misleading. This is clearly aimed at Flash’s architecture where the main Flash process which runs with almost driver-like privileges serves all the instances of the plugin. This however is done to reduce memory consumption. Instead of replicating all the t0 overhead, Adobe’s engineers chose to reuse the memory at hand. With all it’s drawbacks, the decision is clearly the correct one.

Protecting users from phishing sites is done using the same black list that Mozilla already uses. The same kind of service also existed in IE7 and Opera.

Overall, I’d also like to point out that the entire comic has a clear marketing flair to it, targeted at making users want something they aren’t sure they would. The little technical accuracy in it is also designed to arm the hands of less savvy tech writers with an existing bias for Google’s ventures. Throughout the strip, Google employees appear as whitecoats or apprentice magicians, pushing quotes that don’t stand to scrutiny. There is also a great deal of self appraise and flattery. There is a bit of goodwill, where the characters recognize that they have adopted ideas from others, but these pieces are always downplayed and secondary.

If you would like to see your thoughts or experiences with technology published, please consider writing an article for OSNews.


  1. lawlernet 2008-09-03 3:47 pm EST
    • ljgshkg 2008-09-03 3:54 pm EST
      • Morty 2008-09-03 5:26 pm EST
    • kragil 2008-09-03 4:14 pm EST
      • lawlernet 2008-09-03 4:32 pm EST
        • Dirge 2008-09-03 6:41 pm EST
          • Thom Holwerda 2008-09-03 6:47 pm EST
      • devurandom 2008-09-03 4:32 pm EST
      • Kroc 2008-09-03 4:36 pm EST
        • kragil 2008-09-03 4:50 pm EST
      • modmans2ndcoming 2008-09-03 8:39 pm EST
    • helf 2008-09-03 10:07 pm EST
  2. diegocg 2008-09-03 3:49 pm EST
    • KCorax 2008-09-03 4:38 pm EST
      • Kroc 2008-09-03 4:41 pm EST
      • andrewg 2008-09-03 8:00 pm EST
      • andrewg 2008-09-03 8:20 pm EST
    • modmans2ndcoming 2008-09-03 8:56 pm EST
      • TLZ_ 2008-09-03 9:42 pm EST
        • modmans2ndcoming 2008-09-07 12:40 am EST
  3. obsethryl 2008-09-03 3:51 pm EST
  4. Steniko 2008-09-03 3:52 pm EST
    • ralph 2008-09-03 4:38 pm EST
    • KCorax 2008-09-03 4:40 pm EST
      • ralph 2008-09-03 5:20 pm EST
    • AndyM103 2008-09-03 5:55 pm EST
  5. poundsmack 2008-09-03 3:54 pm EST
    • devurandom 2008-09-03 4:30 pm EST
      • poundsmack 2008-09-03 4:40 pm EST
  6. Kroc 2008-09-03 4:03 pm EST
  7. morglum666 2008-09-03 4:05 pm EST
    • modmans2ndcoming 2008-09-03 9:02 pm EST
  8. moleskine 2008-09-03 4:08 pm EST
  9. Eugenia Loli 2008-09-03 4:09 pm EST
    • Vanders 2008-09-03 5:48 pm EST
    • seishino 2008-09-07 9:56 pm EST
  10. miro 2008-09-03 4:13 pm EST
    • Kroc 2008-09-03 4:30 pm EST
      • modmans2ndcoming 2008-09-03 9:08 pm EST
  11. membrain 2008-09-03 4:17 pm EST
  12. asupcb 2008-09-03 4:26 pm EST
    • modmans2ndcoming 2008-09-03 9:11 pm EST
  13. Guppetto 2008-09-03 4:33 pm EST
    • Soulbender 2008-09-03 7:09 pm EST
    • abraxas 2008-09-03 8:33 pm EST
  14. ralph 2008-09-03 4:33 pm EST
  15. TheBadger 2008-09-03 4:40 pm EST
    • fretinator 2008-09-03 4:51 pm EST
  16. jtyrrell 2008-09-03 4:40 pm EST
    • KCorax 2008-09-03 4:50 pm EST
      • jtyrrell 2008-09-03 6:15 pm EST
  17. voidspace 2008-09-03 4:40 pm EST
    • KCorax 2008-09-03 4:46 pm EST
      • Kroc 2008-09-03 4:56 pm EST
        • KCorax 2008-09-03 5:04 pm EST
      • JonathanBThompson 2008-09-03 6:25 pm EST
  18. Mark0 2008-09-03 4:56 pm EST
  19. cakoose 2008-09-03 4:59 pm EST
  20. Thom Holwerda 2008-09-03 5:01 pm EST
    • Kroc 2008-09-03 5:06 pm EST
    • sbergman27 2008-09-03 5:53 pm EST
  21. cheffobg 2008-09-03 5:06 pm EST
  22. vtolkov 2008-09-03 5:08 pm EST
  23. WereCatf 2008-09-03 5:23 pm EST
  24. strim 2008-09-03 5:37 pm EST
  25. tuomas 2008-09-03 5:56 pm EST
  26. chilli 2008-09-03 5:59 pm EST
    • fretinator 2008-09-03 6:12 pm EST
    • Adam Scheinberg 2008-09-03 6:36 pm EST
      • lawlernet 2008-09-03 7:29 pm EST
      • zorglub 2008-09-03 8:20 pm EST
  27. Mark0 2008-09-03 5:59 pm EST
  28. Havin_it 2008-09-03 6:28 pm EST
    • MollyC 2008-09-03 7:00 pm EST
      • Havin_it 2008-09-03 8:33 pm EST
        • intangible 2008-09-03 9:59 pm EST
  29. macUser 2008-09-03 6:36 pm EST
  30. zimbatm 2008-09-03 6:44 pm EST
  31. deathshadow 2008-09-03 6:53 pm EST
  32. Soulbender 2008-09-03 7:01 pm EST
    • rickrock 2008-09-05 10:24 am EST
  33. PotajiTo 2008-09-03 7:09 pm EST
  34. BiPolar 2008-09-03 7:13 pm EST
  35. ciplogic 2008-09-03 7:41 pm EST
    • Kroc 2008-09-03 8:46 pm EST
  36. jsight 2008-09-03 7:42 pm EST
  37. Tuishimi 2008-09-03 8:01 pm EST
  38. qroon 2008-09-03 8:13 pm EST
  39. galvanash 2008-09-03 8:41 pm EST
  40. Ikshaar 2008-09-03 8:53 pm EST
  41. rdean400 2008-09-03 9:53 pm EST
  42. zaine_ridling 2008-09-03 11:45 pm EST
  43. daedalus8 2008-09-04 12:31 am EST
  44. MysterMask 2008-09-04 5:56 am EST
  45. k.g.stoyanov 2008-09-04 6:56 am EST
    • WereCatf 2008-09-04 12:28 pm EST
  46. badtz 2008-09-04 8:35 am EST
    • apoclypse 2008-09-04 2:07 pm EST
  47. chris_dk 2008-09-04 3:48 pm EST
  48. carton 2008-09-04 6:45 pm EST
  49. jrronimo 2008-09-04 8:22 pm EST
  50. pinochet 2008-09-05 12:10 am EST
  51. Darkelve 2008-09-05 5:47 am EST
  52. diegoviola 2008-09-05 5:52 am EST
    • rickrock 2008-09-05 10:22 am EST
  53. rickrock 2008-09-05 10:15 am EST