Google Chrome Frame: the Technical Details

Google Chrome FrameGoogle Chrome Frame is the first realistic solution that addresses the problem of Internet Explorer 6.0. It allows businesses users to retain IE for legacy systems but provide enhanced features in new applications (more about that later).

I’ve been testing Chrome Frame for the past few days and I’m impressed.

Chrome Frame Installation

Installing Chrome Frame is as easy as installing Flash, the PDF viewer, or any other IE plugin. The full 10MB application is downloaded and installed within a few minutes. The process is quick, painless, and does not require a browser restart.

Chrome Frame is available for IE6, IE7 and IE8. I’m not convinced many IE8 users will need it; speed and rendering problems are rarer in that browser. However, the plugin will allow developers to use HTML5, CSS3, canvas and SVG features that would have been technically impossible before.

Under the Hood

Chrome Frame installs as a Browser Helper Object; a Windows DLL that extends IE functionality. BHOs are a standard method used to add toolbars and other plugins so Google is using Microsoft’s own documented platform. If Microsoft wanted to kill Chrome Frame, it would be technically difficult to achieve without affecting other plugins.

BHOs are also exploited by malware and virus developers. Microsoft fixed this issue in XP SP2 by sandboxing BHO code and introducing the Add-on Manager which allows users to disable unscrupulous code. Chrome Frame therefore requires IE6 on XP SP2 as a minimum.

IE Integration

Chrome Frame shares many of IE’s browser features, such as bookmarks, history, cookies and passwords. This is essential for end users; it will retain their login credentials no matter which rendering engine is used.

Unfortunately, other plugins could cause confusion. Although Flash may be installed in IE, you will also need to install the plugin within Chrome. This may not be a huge problem; Flash-heavy web sites are unlikely to benefit significantly by switching to Chrome. However, I would suggest Google investigate the detection and automatic installation of popular plugins.

Speed and Stability

Confusingly, ComputerWorld are reporting that IE8 runs 10 times faster with Chrome Frame. What they really mean is the Chrome Webkit engine is 10 times faster than IE’s Trident engine when compared in the SunSpider JavaScript benchmark suite. SunSpider is not a real-world test of page rendering speed and nor does Chrome Frame effect IE’s default speed.

However, Chrome-rendered pages are noticeably faster and it allows you to run IE-incompatible code such as the excellent JSNES JavaScript NES emulator.

Chrome Frame is still in beta and there are issues. For example, I experienced rendering problems in GMail, although it’s fine in both IE6 and the Chrome browser.

Chrome Frame for Developers

IE will switch to Chrome Frame rendering if the following meta tag is added to the HTML head:

<meta http-equiv="X-UA-Compatible" content="chrome=1">

In addition, pages can be tested in Chrome Frame by adding “cf:” to the start of a fully-qualified URL, e.g.

cf:http://www.sitepoint.com/

The Webkit Developer Tools are included so it’s possible to right-click a Chrome-rendered page and select “Inspect Element”. It would be great if the same tool could be used in IE’s view, but perhaps that’s asking a little too much!

Accessibility, Progressive Enhancement and Chrome Sniffing

I’m about to make a statement that will upset some developers. Please sit down. Ready? Sure? Here goes…

Chrome Frame does not allow you to drop IE6 support!

Many users will continue to use IE6 without Chrome Frame. Many companies will block the plugin. Users with IE-specific assistive technologies may not be able to use Chrome Frame.

So what’s the point?

Chrome Frame allows you to implement progressive enhancement techniques that support older browsers but improve the user experience in modern browsers. For example, your application might produce a table of figures. That table remains viewable in IE6 but Chrome Frame users would also see a colorful canvas-generated chart.

Chrome Frame adds “chromeframe” to the IE User Agent string when it’s installed e.g.

Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; chromeframe)

You can therefore use server-side code to detect Chrome’s presence, add the HTML meta tag, include enhancements, or display a link to the plugin download page. Google also provide JavaScript Chrome Frame detection code.

Will Users Adopt Chrome Frame?

Chrome Frame is still undergoing development and there are technical issues to iron out so I could not recommend it at this stage. However, the future is promising. Corporations and private users may be unable or unwilling to upgrade their browsers, but installing an unobtrusive plugin is significantly easier.

Related reading:

Free book: Jump Start HTML5 Basics

Grab a free copy of one our latest ebooks! Packed with hints and tips on HTML5's most powerful new features.

  • http://fvsch.com Florent V.

    I suspect there will be at least one big web application pushing for Chrome Frame for all current versions of IE (including IE8): Google Wave.

    You write that Chrome Frame does not allow us to drop IE6 support. While it’s A Good Thing to remind readers of the necessity for most projects to support widely-used old browsers, actually anyone responsible for a project is allowed to drop IE6 support, or even IE7 or IE8 support. Sure, the reach of your website or web app is greatly diminished even with just IE6 support. If it’s just about saving on debugging time and it’s not a personal or hobby site, it’s probably a bad idea to drop IE6 support (and a decision that could get you fired, and rightly so). But if it’s about enabling something new that you can’t possibly support in less capable browsers, then it’s starting to make sense.

  • http://www.optimalworks.net/ Craig Buckler

    @Florent V
    Absolutely. If you’re developing your own site, you can support whatever you like whether that reduces your reach or not.

    However, the majority of developers work for clients. I’d hope no one uses Chrome Frame as an excuse to drop support for older browsers. Government agencies and large online stores would not allow it anyway. Chrome Frame can enhance the user experience; it should not become a prerequisite.

  • http://fvsch.com Florent V.

    Government agencies and large online stores would not allow it anyway.

    And rightly so.

    Chrome Frame can enhance the user experience

    True. That’s one interesting use.

    it should not become a prerequisite.

    Depends on your project, really. Yes, 99,9% of current websites shouldn’t, but for some project it might be a good thing. (I wonder if the Chrome Frame project was prompted by the development of Google Wave.)

    I’m thinking of a project i’ve seen demoed a few weeks ago. I can’t disclose the details but they’ve built an app with a webkit engine at its core. They’re also building a Web access for that app, that will run in modern browsers only. If they supported IE6 and maybe even IE7, the development costs would skyrocket (i suspect more than 20%), and more importantly they would have to restrict what they can do. This is an innovative project, that kind of restrictions could mean a bigger reach… and an unconvincing product. They can afford a lesser reach, but not an unconvincing product.

    With Chrome Frame available, they may choose to target some HTML5 features too. Or maybe they’ll support IE8 natively, and offer Chrome Frame as a compatibility option for IE6 and IE7 users.

    This is one web app project (that doubles with a desktop app that uses the same web technologies, a rendering engine and a bit of additional chrome) i had in mind. Google Wave is an other. We’re bound to see a few innovative web apps pop-up in the next few years, and many of those may require Chrome Frame for users of old IE versions.

  • http://www.sitepoint.com AlexW

    Good stuff, Craig. Interesting.

    @Florent V. As undoubtably cool as Wave is, I think it’s other Google properties that *could* really give Frame the traction it needs.

    Youtube already pushes Chrome if you visit it in any other browser. If they targeted IE6 users and offered them the opportunity to download a free plugin to stream their Youtube vids, say, 25% faster (or whatever), many would say ‘Hell yeah!’.

    Or make their GMail experience smoother, or their Google Analytics experience more responsive, they might be able to make some significant inroads quite quickly.

    What other company on the planet has virtual daily contact with almost EVERY IE6 user on the planet? They can touch corporates, they can touch Joe Sixpack, they can touch Grandma McCoy. Hey, they could use Adsense inventory to reach IE6 users if they wanted to.

    Get’s you thinking…

  • SQLDenis

    If you are working in a shop where the standard is IE6 and you don’t have admin rights you still won’t be able to install this…most people who run IE6 are running IE6 because of this…they can’t install another browser or anything else…..so this won’t kill IE6 anytime soon

  • http://fvsch.com Florent V.

    @SQLDenis, you should read Craig’s previous article on (possible) Google Chrome Frame adoption.

  • http://www.talking-poker.com BrianOConnell

    @Florent V – unless I am mistaken google are not letting us host the installer on our own networks but forcing the user to install from their site you have 2 blocks – users access to google’s installer page and users rights to actually install it anyway so I think SQLDenis’ point still stands unless I’ve missed something.

  • http://fvsch.com Florent V.

    @BrianOConnell: the thing you missed is that other article by Craig Buckler that specifically deals with Chrome Frame adoption by companies that use IE6 (or even IE7) and block installation of software by users.

    Craig’s point is that Chrome Frame might be an interesting solution for IT managers who have to keep the company’s staff on IE6 because of serious compatibility issues with mission-critical intranet apps… but would still want to upgrade to more capable browsers. So some businesses might want to deploy Chrome Frame, the same way they already do for Flash Player and other plugins.

    Will it be successful? I think that depends on web developers too. The more sites (especially web apps) that start using non-IE technology and require Chrome Frame for IE6(-7) compatibility, the more incentive there will be for IT departments to consider that solution.

  • argosmedia

    The cf: prefix doesn’t seem to work (anymore?), and causes 404′s.

  • http://www.optimalworks.net/ Craig Buckler

    @argosmedia
    Are you trying the cf: prefix in a browser with Chrome Frame installed? It works for me.

  • argosmedia

    No, just regular WinXP IE7/Opera/firefox/Safari… None of them work. Can it be location related? I live in the Netherlands.

  • http://www.optimalworks.net/ Craig Buckler

    That’s your problem — the cf: prefix will only work in a browser (IE) where Chrome Frame is installed.

  • argosmedia

    Aaah… I see. I misunderstood the concept :-)

  • Bala

    google chrome crashed in my system a few days ago…system is with XP-SP3.

    i am NOT able to reinstall google chrome – and when I install chrome, after installation it opens in Internet Explorer with the following contents:

    http://%22c/Documents%20and%20Settings/*username*/Local%20Settings/Application%20Data/Google/Chrome/Application/chrome.exe%22

    Google browswer is NOT coming at all.

    Can someone throw some light on this issue?

  • Anonymous

    The issue – something else is holding one of the files of google chrome open – like a menuing system. Magic Formation made this happen – only could install after I shut it off for the installation.

  • Bala

    Thanks for the response. However, I am not able to understand it fully to solve the problem, if there exists a solution. Can you please give a precise direction?

  • http://slashdot.org/~Londonescorts/ PhillDoc

    Great blog as for me. It would be great to read more concerning this topic.