Chrome Frame CFInstall script
Google Chrome Frame is no longer supported and retired as of February 25, 2014. For guidance on what you need to know as a developer or IT administrator, please read our developer FAQs for Chrome Frame.
This page describes the latest version of the Chrome Frame CFInstall script that allows easy prompting for Chrome Frame installation within your own site.
This version supports a new streamlined and improved API, though it is expected to be backwards compatible with previous versions of the API as well.
This version of the CFInstall script is designed to optimize the user's installation experience and get them onto your site, with Chrome Frame installed, as fast as possible.
To use this install flow, simply:
- Provide the user with a prompt to install Chrome Frame, whether it is optional or required for your site to function.
- If the user chooses to install Chrome Frame, invoke CFInstall.require(). You may pass optional success and failure callbacks, in that order.
CFInstall.require will check the user's browser for compatibility and, if Chrome Frame is supported, launch a modal dialog with the Chrome Frame EULA and installation flow. The appropriate callback will be invoked upon installation success, failure, or cancellation.
By default, the current page will be reloaded after installation completes, with the Chrome Frame plugin active. Naturally, your site must be sending the Chrome Frame header or meta tag in order to be activated in Chrome Frame.
See http://src.chromium.org/viewvc/chrome/trunk/src/chrome_frame/cfinstall/examples/simple.html for an example of this integration.
The default look & feel of the installation flow dialog can be replaced quite easily to match the look of your site. See http://src.chromium.org/viewvc/chrome/trunk/src/chrome_frame/cfinstall/examples/jquery.html for an example using the JQuery library.
You can access the CFInstall script directly off of Google's servers or host it yourself. If you choose to host it yourself, please note that the script consists of both the small initial script (the "stub") and a second, larger script (the "implementation") that is only downloaded if the install flow is launched. If you move the script elsewhere, you must either specify the implementation location or recompile the stub with your intended hosting path (see below).
The implementation is located at http://google.com/tools/dlpage/res/chromeframe/script/cf-xd-install-impl.js . If you wish to access it from elsewhere, you must make the following call before CFInstall.require:
Note that the path supplied may be absolute or scheme, host, or path relative (i.e. 'http://host/path/to/...', '//host/path/to/...', '/path/to', '../../path/to'). It will be resolved relative to the HTML document in which the script is executed.
CFInstall uses the Closure Library and is optimized using the Closure Compiler. The source code for CFInstall is included in the Chromium source repository and may be checked out using the following command:
svn co http://src.chromium.org/chrome/trunk/src/chrome_frame/cfinstall/
Once you have checked out the code, you may simply run build.sh to download the required dependencies and build the optimized scripts (see the 'out' directory). The Closure Compiler requires Python and Java in order to run. If you are unable to execute build.sh (due to a lack of a shell interpreter, for example), you should find it pretty straightforward to manually invoke the compiler using the script as an example.
The build.sh script accepts two options for customizing the optimized output:
Usage: ./build.sh [-l //host.com/path/to/scripts/dir/] [-p] [-d] -l <URL> The path under which the generated scripts will be deployed. -d Disable obfuscating optimizations.