Google Chrome Frame Developer Updates

Tuesday, February 09, 2010

Labels:

Since Google Chrome Frame was released in September we've published regular updates to improve stability and integration with Internet Explorer. Today's update continues this work but also contains two key changes that developers should be aware of.

First, until now Google Chrome Frame has used the <meta> tag for invocation.
<meta equiv="X-UA-Compatible" content="chrome=1">
Unfortunately, doing this had a few potential problems, including some challenges for sites which couldn't place the <meta> tag early enough to trigger Google Chrome Frame reliably.

As of today, Google Chrome Frame additionally allows sites to serve an HTTP header for invocation. Use of the <meta> tag is still supported, but sites can take advantage of the new trigger by specifying an equivalent HTTP header:
X-UA-Compatible: chrome=1
This has the following benefits:
  • Sites that detect Google Chrome Frame can serve content with standard MIME types (including application/xhtml+xml), which Microsoft Internet Explorer does not natively support.
  • The HTTP header will always be detected, no matter how many other headers are served.
  • The HTTP header passes the W3C validator (which the <meta> tag syntax did not).
  • HTTP headers can be centrally configured in your web sever for blanket rollout of Google Chrome Frame support. For example, to enable GCF site-wide for browsers that support it, in Apache (with mod_headers and mod_setenvif enabled) specify a header directive like:
<IfModule mod_setenvif.c>
    <IfModule mod_headers.c>
        BrowserMatch chromeframe gcf
        Header append X-UA-Compatible "chrome=1" env=gcf
    </IfModule>
</IfModule>
Secondly, today's release also renames the "cf:" protocol to "gcf:" and disables "gcf:" by default. You can enable it on your local system for testing by adding a REG_DWORD value named EnableGCFProtocol with a value of 1 to the following registry key: HKCU\Software\Google\ChromeFrame.

This change will help avoid misuse of this development-mode feature and will reduce the number of spurious compatibility issues reported.

Your copy of Google Chrome Frame should be automatically upgraded with these changes. To learn more, ask questions, or get involved, visit our site or join the Google Chrome Frame discussion group.

13 comments:

nino Nur'madi said...

klik 2X_ILOVE_YOU

nino Nur'madi said...

klik 2X

Mathias Bynens said...

Why not simply enable Chrome Frame by default on all sites?

Jonathan said...

This post has been removed by the author.

Jonathan said...

Other than sending an extra header, I don't see why you wouldn't simply use:

<IfModule mod_headers.c>
    Header set X-UA-Compatible "chrome=1"
</IfModule>

mario said...

In PHP:
if(strpos($_SERVER['HTTP_USER_AGENT'], 'chromeframe'))
{
header('X-UA-Compatible: chrome=1');
}

David Hammond said...

The meta method validates just fine; you just didn't provide accurate sample markup in this blog post. Rather than an "equiv" attribute, as you wrote here, the original blog post introducing Google Chrome Frame said to use an "http-equiv" attribute, which is perfectly valid.

If you meant that the original markup example didn't work because it didn't have an XHTML-style tag end, I assume you could simply add the "/" and it would be fine.

At any rate, the HTTP alternative does make sense, except for the fact that you don't seem to be following the current specification for the X-UA-Compatible header. According to the Microsoft's final specification, "chrome=1" should cause the browser to render the page as Chrome version 1 would. To tell a browser to display the page using the most current Chrome engine, the value should be "chrome=edge". I don't know if Chrome supports the "edge" value yet.

Scott Gale said...

I love the idea of Chrome Frame, but I just don't see how you get around the admin user dilemma. Hopefully IT managers will help out, but if they haven't upgraded IE already, why would they now? I wrote about this here: http://ow.ly/17hZH

Joshua Issac said...

Dislike unnecessary step added for using cf:. It is useful when browsing in IE no add-ons mode (for better speed) and adding cf: at the start of the URL when you need an add-on (e.g. Flash for YouTube).

Dlinked said...

I love google Chrome!!!
Good Job you guys!
I always view http://www.Dlinked.com in chrome!

Rob said...

Hey, sorry for the off topic, my package manager just hit me up for 32 updates from the google chrome repo (http://dl.google.com/linux/deb/), near all of which are for software I don't have installed (qt4 security updates, lsb updates, rpm, postfix etc.), anyone else seeing this?

For now I've just removed the repo, buts its kinda annoying...

Darktalker said...

only one question, with this mechanic, how to dear with offline mode ? I mean when using Google Gears or HTML5 Offline Mode ? in this case, how to trigger google chrome frame ?

gfgd said...

please use plain english in Chrome.Like NO instead of Nope, noobs