diff options
author | kathyw@chromium.org <kathyw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-06-07 22:05:31 +0000 |
---|---|---|
committer | kathyw@chromium.org <kathyw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-06-07 22:05:31 +0000 |
commit | 6e10b72ac081588661dd667ec8e156149c24b96d (patch) | |
tree | e993fe07364d3183c80bc3b4a8c44268731ab8af /chrome | |
parent | d032b379df14896af9cadd17b2d4ade3e9af4714 (diff) | |
download | chromium_src-6e10b72ac081588661dd667ec8e156149c24b96d.zip chromium_src-6e10b72ac081588661dd667ec8e156149c24b96d.tar.gz chromium_src-6e10b72ac081588661dd667ec8e156149c24b96d.tar.bz2 |
Clarify the hosting situation, hiding doc that's not needed
by people who use the gallery, and making sure that people
know about the gallery.
TEST=none
BUG=none
Review URL: http://codereview.chromium.org/2655006
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@49100 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome')
52 files changed, 733 insertions, 367 deletions
diff --git a/chrome/common/extensions/docs/api_index.html b/chrome/common/extensions/docs/api_index.html index a8403fb..3c43bcc 100644 --- a/chrome/common/extensions/docs/api_index.html +++ b/chrome/common/extensions/docs/api_index.html @@ -163,9 +163,8 @@ </li> <li>Finishing <ul> - <li><a href="autoupdate.html">Autoupdating</a></li> - <li><a href="packaging.html">Packaging</a></li> - <li><a href="external_extensions.html">External Extensions</a></li> + <li><a href="hosting.html">Hosting</a></li> + <li><a href="external_extensions.html">Other Deployment Options</a></li> </ul> </li> </ul> diff --git a/chrome/common/extensions/docs/api_other.html b/chrome/common/extensions/docs/api_other.html index 1f886c8..11eabee 100644 --- a/chrome/common/extensions/docs/api_other.html +++ b/chrome/common/extensions/docs/api_other.html @@ -163,9 +163,8 @@ </li> <li>Finishing <ul> - <li><a href="autoupdate.html">Autoupdating</a></li> - <li><a href="packaging.html">Packaging</a></li> - <li><a href="external_extensions.html">External Extensions</a></li> + <li><a href="hosting.html">Hosting</a></li> + <li><a href="external_extensions.html">Other Deployment Options</a></li> </ul> </li> </ul> diff --git a/chrome/common/extensions/docs/autoupdate.html b/chrome/common/extensions/docs/autoupdate.html index 2c2bbc3..b82ce9b 100644 --- a/chrome/common/extensions/docs/autoupdate.html +++ b/chrome/common/extensions/docs/autoupdate.html @@ -163,9 +163,8 @@ </li> <li>Finishing <ul> - <li class="leftNavSelected">Autoupdating</li> - <li><a href="packaging.html">Packaging</a></li> - <li><a href="external_extensions.html">External Extensions</a></li> + <li><a href="hosting.html">Hosting</a></li> + <li><a href="external_extensions.html">Other Deployment Options</a></li> </ul> </li> </ul> @@ -292,9 +291,11 @@ <p>We want extensions to be autoupdated for some of the same reasons as Google Chrome itself: to incorporate bug and security fixes, add new features or performance enhancements, and improve user interfaces.</p> -<p>For extensions packaged and distributed via the <a href="https://chrome.google.com/extensions">gallery</a>, developers will be able to use a web interface to release updated versions of their extensions and do not need to concern themselves with the rest of this document.</p> +<p>If you distribute your extension using the <a href="https://chrome.google.com/extensions">gallery</a>, you can <em>ignore this page</em>. You can use a web interface to release updated versions of your extension.</p> -<p>Those who choose to host extensions themselves instead of using the gallery will probably want to use autoupdate for their extensions as described below. You might want to make sure you are familiar with <a href="packaging.html">Packaging</a> first.</p> +<p>If you want to host your extension somewhere other than the gallery, keep reading. +You should also read <a href="hosting.html">Hosting</a> and +<a href="packaging.html">Packaging</a>.</p> <a name="H2-0"></a><h2>Overview</h2> diff --git a/chrome/common/extensions/docs/background_pages.html b/chrome/common/extensions/docs/background_pages.html index a09c4e5..6675a46 100644 --- a/chrome/common/extensions/docs/background_pages.html +++ b/chrome/common/extensions/docs/background_pages.html @@ -163,9 +163,8 @@ </li> <li>Finishing <ul> - <li><a href="autoupdate.html">Autoupdating</a></li> - <li><a href="packaging.html">Packaging</a></li> - <li><a href="external_extensions.html">External Extensions</a></li> + <li><a href="hosting.html">Hosting</a></li> + <li><a href="external_extensions.html">Other Deployment Options</a></li> </ul> </li> </ul> diff --git a/chrome/common/extensions/docs/bookmarks.html b/chrome/common/extensions/docs/bookmarks.html index 301950a..3310576 100644 --- a/chrome/common/extensions/docs/bookmarks.html +++ b/chrome/common/extensions/docs/bookmarks.html @@ -163,9 +163,8 @@ </li> <li>Finishing <ul> - <li><a href="autoupdate.html">Autoupdating</a></li> - <li><a href="packaging.html">Packaging</a></li> - <li><a href="external_extensions.html">External Extensions</a></li> + <li><a href="hosting.html">Hosting</a></li> + <li><a href="external_extensions.html">Other Deployment Options</a></li> </ul> </li> </ul> diff --git a/chrome/common/extensions/docs/browserAction.html b/chrome/common/extensions/docs/browserAction.html index 70df830..44f50a5 100644 --- a/chrome/common/extensions/docs/browserAction.html +++ b/chrome/common/extensions/docs/browserAction.html @@ -163,9 +163,8 @@ </li> <li>Finishing <ul> - <li><a href="autoupdate.html">Autoupdating</a></li> - <li><a href="packaging.html">Packaging</a></li> - <li><a href="external_extensions.html">External Extensions</a></li> + <li><a href="hosting.html">Hosting</a></li> + <li><a href="external_extensions.html">Other Deployment Options</a></li> </ul> </li> </ul> diff --git a/chrome/common/extensions/docs/content_scripts.html b/chrome/common/extensions/docs/content_scripts.html index 345f749..8dff878 100644 --- a/chrome/common/extensions/docs/content_scripts.html +++ b/chrome/common/extensions/docs/content_scripts.html @@ -163,9 +163,8 @@ </li> <li>Finishing <ul> - <li><a href="autoupdate.html">Autoupdating</a></li> - <li><a href="packaging.html">Packaging</a></li> - <li><a href="external_extensions.html">External Extensions</a></li> + <li><a href="hosting.html">Hosting</a></li> + <li><a href="external_extensions.html">Other Deployment Options</a></li> </ul> </li> </ul> diff --git a/chrome/common/extensions/docs/devguide.html b/chrome/common/extensions/docs/devguide.html index 14ba41f..1e30048 100644 --- a/chrome/common/extensions/docs/devguide.html +++ b/chrome/common/extensions/docs/devguide.html @@ -163,9 +163,8 @@ </li> <li>Finishing <ul> - <li><a href="autoupdate.html">Autoupdating</a></li> - <li><a href="packaging.html">Packaging</a></li> - <li><a href="external_extensions.html">External Extensions</a></li> + <li><a href="hosting.html">Hosting</a></li> + <li><a href="external_extensions.html">Other Deployment Options</a></li> </ul> </li> </ul> @@ -363,16 +362,16 @@ and <a href="overview.html">Overview</a>. <td> Update extensions automatically </td> </tr> <tr> - <td> <a href="external_extensions.html">External Extensions</a> </td> - <td> Install extensions automatically </td> + <td> <a href="hosting.html">Hosting</a> </td> + <td> Host extensions in the Extensions gallery or on your own servers </td> </tr> <tr> - <td> <a href="hosting.html">Hosting</a> </td> - <td> Host extensions on your own servers </td> + <td> <a href="external_extensions.html">Other Deployment Options</a> </td> + <td> Distribute extensions on your network or with other software </td> </tr> <tr> <td> <a href="packaging.html">Packaging</a> </td> - <td> Create a .crx file so you can distribute your extension </td> + <td> Create a <code>.crx</code> file so you can distribute your extension </td> </tr> </tbody></table> diff --git a/chrome/common/extensions/docs/docs.html b/chrome/common/extensions/docs/docs.html index 928b69a..03555ff 100644 --- a/chrome/common/extensions/docs/docs.html +++ b/chrome/common/extensions/docs/docs.html @@ -163,9 +163,8 @@ </li> <li>Finishing <ul> - <li><a href="autoupdate.html">Autoupdating</a></li> - <li><a href="packaging.html">Packaging</a></li> - <li><a href="external_extensions.html">External Extensions</a></li> + <li><a href="hosting.html">Hosting</a></li> + <li><a href="external_extensions.html">Other Deployment Options</a></li> </ul> </li> </ul> diff --git a/chrome/common/extensions/docs/events.html b/chrome/common/extensions/docs/events.html index 0ed6045..68fbe33 100644 --- a/chrome/common/extensions/docs/events.html +++ b/chrome/common/extensions/docs/events.html @@ -163,9 +163,8 @@ </li> <li>Finishing <ul> - <li><a href="autoupdate.html">Autoupdating</a></li> - <li><a href="packaging.html">Packaging</a></li> - <li><a href="external_extensions.html">External Extensions</a></li> + <li><a href="hosting.html">Hosting</a></li> + <li><a href="external_extensions.html">Other Deployment Options</a></li> </ul> </li> </ul> diff --git a/chrome/common/extensions/docs/experimental.clipboard.html b/chrome/common/extensions/docs/experimental.clipboard.html index b8db753..983a6a2 100644 --- a/chrome/common/extensions/docs/experimental.clipboard.html +++ b/chrome/common/extensions/docs/experimental.clipboard.html @@ -163,9 +163,8 @@ </li> <li>Finishing <ul> - <li><a href="autoupdate.html">Autoupdating</a></li> - <li><a href="packaging.html">Packaging</a></li> - <li><a href="external_extensions.html">External Extensions</a></li> + <li><a href="hosting.html">Hosting</a></li> + <li><a href="external_extensions.html">Other Deployment Options</a></li> </ul> </li> </ul> diff --git a/chrome/common/extensions/docs/experimental.contextMenu.html b/chrome/common/extensions/docs/experimental.contextMenu.html index 3726504..4e603cc 100644 --- a/chrome/common/extensions/docs/experimental.contextMenu.html +++ b/chrome/common/extensions/docs/experimental.contextMenu.html @@ -163,9 +163,8 @@ </li> <li>Finishing <ul> - <li><a href="autoupdate.html">Autoupdating</a></li> - <li><a href="packaging.html">Packaging</a></li> - <li><a href="external_extensions.html">External Extensions</a></li> + <li><a href="hosting.html">Hosting</a></li> + <li><a href="external_extensions.html">Other Deployment Options</a></li> </ul> </li> </ul> diff --git a/chrome/common/extensions/docs/experimental.cookies.html b/chrome/common/extensions/docs/experimental.cookies.html index ef99ca3..b012b06 100644 --- a/chrome/common/extensions/docs/experimental.cookies.html +++ b/chrome/common/extensions/docs/experimental.cookies.html @@ -163,9 +163,8 @@ </li> <li>Finishing <ul> - <li><a href="autoupdate.html">Autoupdating</a></li> - <li><a href="packaging.html">Packaging</a></li> - <li><a href="external_extensions.html">External Extensions</a></li> + <li><a href="hosting.html">Hosting</a></li> + <li><a href="external_extensions.html">Other Deployment Options</a></li> </ul> </li> </ul> diff --git a/chrome/common/extensions/docs/experimental.html b/chrome/common/extensions/docs/experimental.html index 3de024a..5b7ae07 100644 --- a/chrome/common/extensions/docs/experimental.html +++ b/chrome/common/extensions/docs/experimental.html @@ -163,9 +163,8 @@ </li> <li>Finishing <ul> - <li><a href="autoupdate.html">Autoupdating</a></li> - <li><a href="packaging.html">Packaging</a></li> - <li><a href="external_extensions.html">External Extensions</a></li> + <li><a href="hosting.html">Hosting</a></li> + <li><a href="external_extensions.html">Other Deployment Options</a></li> </ul> </li> </ul> diff --git a/chrome/common/extensions/docs/experimental.infobars.html b/chrome/common/extensions/docs/experimental.infobars.html index c2b679a..ef46559 100644 --- a/chrome/common/extensions/docs/experimental.infobars.html +++ b/chrome/common/extensions/docs/experimental.infobars.html @@ -163,9 +163,8 @@ </li> <li>Finishing <ul> - <li><a href="autoupdate.html">Autoupdating</a></li> - <li><a href="packaging.html">Packaging</a></li> - <li><a href="external_extensions.html">External Extensions</a></li> + <li><a href="hosting.html">Hosting</a></li> + <li><a href="external_extensions.html">Other Deployment Options</a></li> </ul> </li> </ul> diff --git a/chrome/common/extensions/docs/experimental.omnibox.html b/chrome/common/extensions/docs/experimental.omnibox.html index 1ef4270..5a52e54 100644 --- a/chrome/common/extensions/docs/experimental.omnibox.html +++ b/chrome/common/extensions/docs/experimental.omnibox.html @@ -163,9 +163,8 @@ </li> <li>Finishing <ul> - <li><a href="autoupdate.html">Autoupdating</a></li> - <li><a href="packaging.html">Packaging</a></li> - <li><a href="external_extensions.html">External Extensions</a></li> + <li><a href="hosting.html">Hosting</a></li> + <li><a href="external_extensions.html">Other Deployment Options</a></li> </ul> </li> </ul> diff --git a/chrome/common/extensions/docs/experimental.processes.html b/chrome/common/extensions/docs/experimental.processes.html index 1c0b9df..0a0565e 100644 --- a/chrome/common/extensions/docs/experimental.processes.html +++ b/chrome/common/extensions/docs/experimental.processes.html @@ -163,9 +163,8 @@ </li> <li>Finishing <ul> - <li><a href="autoupdate.html">Autoupdating</a></li> - <li><a href="packaging.html">Packaging</a></li> - <li><a href="external_extensions.html">External Extensions</a></li> + <li><a href="hosting.html">Hosting</a></li> + <li><a href="external_extensions.html">Other Deployment Options</a></li> </ul> </li> </ul> diff --git a/chrome/common/extensions/docs/extension.html b/chrome/common/extensions/docs/extension.html index 0ab9203..7a5dc58 100644 --- a/chrome/common/extensions/docs/extension.html +++ b/chrome/common/extensions/docs/extension.html @@ -163,9 +163,8 @@ </li> <li>Finishing <ul> - <li><a href="autoupdate.html">Autoupdating</a></li> - <li><a href="packaging.html">Packaging</a></li> - <li><a href="external_extensions.html">External Extensions</a></li> + <li><a href="hosting.html">Hosting</a></li> + <li><a href="external_extensions.html">Other Deployment Options</a></li> </ul> </li> </ul> diff --git a/chrome/common/extensions/docs/external_extensions.html b/chrome/common/extensions/docs/external_extensions.html index 01d339a..4eca1b0 100644 --- a/chrome/common/extensions/docs/external_extensions.html +++ b/chrome/common/extensions/docs/external_extensions.html @@ -15,7 +15,7 @@ </script> <script type="text/javascript" src="js/api_page_generator.js"></script> <script type="text/javascript" src="js/bootstrap.js"></script> - <title>External Extensions - Google Chrome Extensions - Google Code</title></head><body> <div id="gc-container" class="labs"> + <title>Other Deployment Options - Google Chrome Extensions - Google Code</title></head><body> <div id="gc-container" class="labs"> <div id="devModeWarning"> You are viewing extension docs in chrome via the 'file:' scheme: are you expecting to see local changes when you refresh? You'll need run chrome with --allow-file-access-from-files. </div> @@ -163,9 +163,8 @@ </li> <li>Finishing <ul> - <li><a href="autoupdate.html">Autoupdating</a></li> - <li><a href="packaging.html">Packaging</a></li> - <li class="leftNavSelected">External Extensions</li> + <li><a href="hosting.html">Hosting</a></li> + <li class="leftNavSelected">Other Deployment Options</li> </ul> </li> </ul> @@ -196,28 +195,35 @@ <div class="g-unit" id="gc-pagecontent"> <div id="pageTitle"> - <h1 class="page_title">External Extensions</h1> + <h1 class="page_title">Other Deployment Options</h1> </div> <!-- TABLE OF CONTENTS --> <div id="toc"> <h2>Contents</h2> <ol> <li> - <a href="#preferences">Using the Preferences File</a> + <a href="#prereqs">Before you begin</a> <ol> <li style="display: none; "> <a>h3Name</a> </li> </ol> </li><li> - <a href="#registry">Using the Windows Registry</a> + <a href="#preferences">Using a preferences file</a> <ol> <li style="display: none; "> <a>h3Name</a> </li> </ol> </li><li> - <a href="#updating">Updating and Uninstalling</a> + <a href="#registry">Using the Windows registry</a> + <ol> + <li style="display: none; "> + <a>h3Name</a> + </li> + </ol> + </li><li> + <a href="#updating">Updating and uninstalling</a> <ol> <li style="display: none; "> <a>h3Name</a> @@ -273,155 +279,258 @@ <!-- /TABLE OF CONTENTS --> <!-- STATIC CONTENT PLACEHOLDER --> - <div id="static"><div id="pageData-name" class="pageData">External Extensions</div> + <div id="static"><div id="pageData-name" class="pageData">Other Deployment Options</div> <div id="pageData-showTOC" class="pageData">true</div> <p> -Google Chrome implements a mechanism -to detect when an external extension -needs to be installed. -Typically, this could be leveraged -by 3rd party vendors -to install an extension whenever -the user installs their software. -Another use case includes network admins, -who want to install the same extensions -throughout their company. - -</p><p> +Usually, users install their own extensions. +But sometimes you might want an extension +to be installed automatically. +Here are two typical cases: +</p> + +<ul> + <li> + An extension is associated with some other software, + and the extension should be installed + whenever the user installs that other software. + The extension could also be uninstalled + when the user removes that other software. + </li> + <li> + A network admin wants to install the same extensions + throughout the company. + </li> +</ul> + +<p> +An extension that's installed automatically is known as an +<em>external extension</em>. Google Chrome supports two ways of installing external extensions: -using a preferences JSON file, -or using the Windows registry -(Windows only). - -</p><p> -<b>Important:</b> Before you begin, -make sure you have a <a href="packaging.html">packaged -crx file</a> that installs successfully, -and make a note of both the version -of the extension and its id (see chrome://extensions/). -For the rest of this text, we'll assume -the extension version is -<code>1.0</code> and its id is <code>aaaaaaaaaabbbbbbbbbbcccccccccc</code>. - -</p><h2 id="preferences">Using the Preferences File</h2> +</p> + +<ul> + <li> Using a preferences JSON file </li> + <li> Using the Windows registry (Windows only) </li> +</ul> + +<h2 id="prereqs">Before you begin</h2> + +<p> +First, package a +<a href="packaging.html"><code>.crx</code> file</a> +and make sure that it installs successfully. +</p> + +<p> +Then, before you edit the preferences file or the registry, +make a note of the following: +</p> + +<ul> + <li> The intended <b>location</b> of the extension's <code>.crx</code> file </li> + <li> The extension's <b>version</b> + (from the manifest file or the <b>chrome://extensions</b> page) </li> + <li> The extension's <b>ID</b> + (from the <b>chrome://extensions</b> page + when you've loaded the packed extension) </li> +</ul> + +<p> +The following examples assume the location is +<code>\\server\share\extension.crx</code> +or <code>/home/share/extension.crx</code>, +the version is <code>1.0</code>, +and the ID is <code>aaaaaaaaaabbbbbbbbbbcccccccccc</code>. +</p> + +<h2 id="preferences">Using a preferences file</h2> + +<p class="note"> +<b>Windows note:</b> +Until <a href="http://crbug.com/41902">bug 41902</a> is fixed, +you might want to use the <a href="#registry">Windows registry</a> +instead of the preferences file. + +</p> <ol> -<li>Make the .crx extension file available +<li>Make the <code>.crx</code> extension file available to the machine you want to install the extension -on (copy it to a local directory -or to a network share, ie. <code>\\server\share\extension.crx</code>). -</li><li>Locate the external_extensions.json file under the Chrome -installation directory and add the following key inside -the curly brackets (note the extra escaping for the slashes, -which is also required when specifying local directories): +on. (Copy it to a local directory +or to a network share — for example, <code>\\server\share\extension.crx</code> +or <code>/home/share/extension.crx</code>.) +</li> +<li>Locate the <code>external_extensions.json</code> file + under the Google Chrome installation directory. + If the file doesn't exist, create it. + The location depends on the operating system. + <dl> + <dt> Windows: </dt> + <dd> <code><em>chrome_root</em>\Application\<em>chrome_version</em>\Extensions\</code> + <br> + Example: <code>c:\Users\Me\AppData\Local\Google\Chrome\Application\6.0.422.0\Extensions\</code> + </dd> + <dt> Mac OS X: </dt> + <dd> <code>/Applications/Google Chrome.app/Contents/Extensions/</code> </dd> + <dt> Linux: </dt> + <dd> <code>/opt/google/chrome/extensions/</code> <br> + <b>Note:</b> Use <code>chmod</code> if necessary + to make sure that <code>extensions/external_extensions.json</code> + is world-readable. + </dd> + </dl> +</li> +<li> Add an entry to <code>external_extensions.json</code> + for your extension's ID, + specifying the extension's location and version + with fields named "external_crx" and "external_version". + Example: <pre>{ "aaaaaaaaaabbbbbbbbbbcccccccccc": { - "external_crx": "\\\\server\\share\\extension.crx", + "external_crx": "/home/share/extension.crx", "external_version": "1.0" } }</pre> -</li><li>Save the json file. -</li><li>Launch Chrome and go to chrome://extensions -and you should see the extension listed. -</li></ol> +<p class="note"> +<b>Note:</b> +You need to escape +each <code>\</code> character in the location. +For example, +<code>\\server\share\extension.crx</code> would be +<code>"\\\\server\\share\\extension.crx"</code>. +</p> +</li> -<h2 id="registry">Using the Windows Registry</h2> +<li>Save the JSON file. </li> +<li>Launch Google Chrome and go to <b>chrome://extensions</b>; +you should see the extension listed. </li> +</ol> + +<h2 id="registry">Using the Windows registry</h2> <ol> -<li>Make the .crx extension file available -to the machine you want to install the extension on -(copy it to a local directory or to a network share, -ie. <code>\\server\share\extension.crx</code>). -</li><li>Find (or create the following key) in the -registry:<br> -32 bit Windows: <code>HKEY_LOCAL_MACHINE\Software\Google\Chrome\Extensions</code><br> -64 bit Windows: <code>HKEY_LOCAL_MACHINE\Software\Wow6432Node\Google\Chrome\Extensions</code> -</li><li>Create a new key (folder) -under the Extensions key with the -same name as the id of your extension (<code>aaaaaaaaaabbbbbbbbbbcccccccccc</code>). -</li><li>Create two string values (<code>REG_SZ</code>):<br> -path: <code>\\server\share\extension.crx</code><br> -version: <code>1.0</code> -</li><li>Launch the browser and go to -chrome://extensions and you should -see the extension listed. -</li></ol> - -<h2 id="updating">Updating and Uninstalling</h2> +<li>Make the <code>.crx</code> extension file available +to the machine you want to install the extension on. +(Copy it to a local directory or to a network share — +for example, <code>\\server\share\extension.crx</code>.) +</li><li>Find or create the following key in the +registry: +<ul> + <li> 32-bit Windows: <code>HKEY_LOCAL_MACHINE\Software\Google\Chrome\Extensions</code> </li> + <li> 64-bit Windows: <code>HKEY_LOCAL_MACHINE\Software\Wow6432Node\Google\Chrome\Extensions</code> </li> +</ul> +</li> + +<li>Create a new key (folder) +under the <b>Extensions</b> key with the +same name as the ID of your extension +(for example, <code>aaaaaaaaaabbbbbbbbbbcccccccccc</code>). +</li><li>Create two string values (<code>REG_SZ</code>) named "path" and "version", + and set them to the extension's location and version. + For example: +<ul> + <li>path: <code>\\server\share\extension.crx</code> </li> + <li>version: <code>1.0</code> </li> +</ul> +</li> +<li>Launch the browser and go to +<b>chrome://extensions</b>; you should +see the extension listed. </li> +</ol> + +<h2 id="updating">Updating and uninstalling</h2> <p>Google Chrome scans the metadata entries in the preferences and registry each time the browser starts, and makes any necessary changes to the installed -external extensions. +external extensions. </p> -</p><p>To update your extension to a new version, +<p>To update your extension to a new version, update the file, and then update the version -in the preferences or registry. +in the preferences or registry. </p> -</p><p>To uninstall your extension -(eg if your software is uninstalled), +<p>To uninstall your extension +(for example, if your software is uninstalled), remove the metadata from the preferences file -or registry. +or registry. </p> + +<h2 id="faq">FAQ</h2> + +<p> +This section answers common questions about external extensions. +</p> -</p><h2 id="faq">FAQ</h2> +<br> -<p><b>Can I specify a URL as a path to the external extension?</b> -</p><p>Not at this time. -Chrome only supports absolute/relative local paths +<p><b>Can I specify a URL as a path to the external extension?</b> </p> +<p>Not at this time. +Google Chrome supports only absolute or relative local paths and UNC paths. Relative paths are relative -to the Extensions directory -(where the external_extensions.json file is located). -<br> +to the <code>Extensions</code> directory +(where the <code>external_extensions.json</code> file is located). +</p> + <br> -</p><p><b>What are some common mistakes when installing with the preferences file?</b> -</p><ul> -<li>Not specifying the same id/version -as the one listed in the .crx -</li><li>external_extension.json is not in the right location -</li><li>Syntax error in json file -(forgetting to separate entries with comma or -leaving a trailing comma somewhere) -</li><li>Extra curly brackets around the top level dictionary -</li><li>JSON file entry points to the wrong path -to the .crx (or path specified but no filename) -</li><li>Backslashes in UNC path not escaped (eg <code>\\server\share\file</code> (incorrect), instead of <code>\\\\server\\share\\extension</code> (correct) -</li><li>Permissions problems on a network share -</li></ul> +<p><b>What are some common mistakes +when installing with the preferences file?</b> </p> +<ul> + <li> + Not specifying the same id/version + as the one listed in the <code>.crx</code> </li> + <li> + <code>external_extension.json</code> is in the wrong location </li> + <li> + Syntax error in JSON file + (forgetting to separate entries with comma or + leaving a trailing comma somewhere) </li> + <li> + Extra curly brackets around the top level dictionary </li> + <li> + JSON file entry points to the wrong path + to the <code>.crx</code> (or path specified but no filename) </li> + <li> + Backslashes in UNC path not escaped + (for example, <code>\\server\share\file</code> is wrong; + it should be <code>\\\\server\\share\\extension</code>) </li> + <li> + Permissions problems on a network share </li> +</ul> <br> <p><b>What are some common mistakes when installing with the registry?</b> </p><ul> -<li>Not specifying the same id/version as the one listed in the .crx -</li><li>Key created in the wrong location in the registry -</li><li>Registry entry points to the wrong path to the .crx (or path specified but no filename) -</li><li>Permissions problems on a network share -</li></ul> + <li>Not specifying the same id/version + as the one listed in the <code>.crx</code> </li> + <li>Key created in the wrong location in the registry </li> + <li>Registry entry points to the wrong path to the <code>.crx</code> file + (or path specified but no filename) </li> + <li>Permissions problems on a network share </li> +</ul> <br> <p><b>What if the user uninstalls the extension?</b> </p><p>If the user uninstalls the extension through the UI, it will no longer be installed or updated on each startup. In other words, the -external extension is blacklisted. - -<br><br> +external extension is blacklisted. </p> +<br> -</p><p><b>How do I get off the blacklist?</b> +<p><b>How do I get off the blacklist?</b> </p><p>If the user uninstalls your extension, you should respect that decision. However, if you (the developer) accidentally uninstalled your extension through the UI, you can remove the blacklist tag by installing the extension normally -through the UI, and then uninstalling it. -</p></div> +through the UI, and then uninstalling it. </p> +</div> <!-- API PAGE --> <div class="apiPage" style="display: none; "> diff --git a/chrome/common/extensions/docs/faq.html b/chrome/common/extensions/docs/faq.html index c24bae3..8e67e81 100644 --- a/chrome/common/extensions/docs/faq.html +++ b/chrome/common/extensions/docs/faq.html @@ -163,9 +163,8 @@ </li> <li>Finishing <ul> - <li><a href="autoupdate.html">Autoupdating</a></li> - <li><a href="packaging.html">Packaging</a></li> - <li><a href="external_extensions.html">External Extensions</a></li> + <li><a href="hosting.html">Hosting</a></li> + <li><a href="external_extensions.html">Other Deployment Options</a></li> </ul> </li> </ul> diff --git a/chrome/common/extensions/docs/getstarted.html b/chrome/common/extensions/docs/getstarted.html index 452b919..eda5146 100644 --- a/chrome/common/extensions/docs/getstarted.html +++ b/chrome/common/extensions/docs/getstarted.html @@ -163,9 +163,8 @@ </li> <li>Finishing <ul> - <li><a href="autoupdate.html">Autoupdating</a></li> - <li><a href="packaging.html">Packaging</a></li> - <li><a href="external_extensions.html">External Extensions</a></li> + <li><a href="hosting.html">Hosting</a></li> + <li><a href="external_extensions.html">Other Deployment Options</a></li> </ul> </li> </ul> @@ -402,18 +401,31 @@ it won't work! </p> <!-- [PENDING: Summarize what we did, what it means, what else we would've done if this were a real extension (e.g. package/zip it), and where to find more information.] --> <p> -Here are some suggestions for what to do next: +Here are some suggestions for what to read next: </p> <ul> <li> - Read the <a href="overview.html">Overview</a> + The <a href="overview.html">Overview</a>, + which has important conceptual and practical information </li> <li> - Learn how to debug extensions by following the - <a href="tut_debugging.html">debugging tutorial</a> + The + <a href="tut_debugging.html">debugging tutorial</a>, + which starts where this tutorial leaves off </li> <li> + The <a href="hosting.html">hosting</a> page, + which tells you about the gallery + and other options for distributing your extension + </li> +</ul> + +<p> +If you don't feel like reading, try these: +</p> +<ul> + <li> Keep up to date with the latest news: <a href="http://groups.google.com/a/chromium.org/group/chromium-extensions/subscribe">subscribe to chromium-extensions</a> </li> diff --git a/chrome/common/extensions/docs/history.html b/chrome/common/extensions/docs/history.html index dededac..78aaafa 100644 --- a/chrome/common/extensions/docs/history.html +++ b/chrome/common/extensions/docs/history.html @@ -163,9 +163,8 @@ </li> <li>Finishing <ul> - <li><a href="autoupdate.html">Autoupdating</a></li> - <li><a href="packaging.html">Packaging</a></li> - <li><a href="external_extensions.html">External Extensions</a></li> + <li><a href="hosting.html">Hosting</a></li> + <li><a href="external_extensions.html">Other Deployment Options</a></li> </ul> </li> </ul> diff --git a/chrome/common/extensions/docs/hosting.html b/chrome/common/extensions/docs/hosting.html index b127b09..cfc5c01 100644 --- a/chrome/common/extensions/docs/hosting.html +++ b/chrome/common/extensions/docs/hosting.html @@ -163,9 +163,8 @@ </li> <li>Finishing <ul> - <li><a href="autoupdate.html">Autoupdating</a></li> - <li><a href="packaging.html">Packaging</a></li> - <li><a href="external_extensions.html">External Extensions</a></li> + <li class="leftNavSelected">Hosting</li> + <li><a href="external_extensions.html">Other Deployment Options</a></li> </ul> </li> </ul> @@ -199,18 +198,25 @@ <h1 class="page_title">Hosting</h1> </div> <!-- TABLE OF CONTENTS --> - <div id="toc" style="display: none; "> + <div id="toc"> <h2>Contents</h2> <ol> <li> - <a>h2Name</a> + <a href="#gallery">Publishing to the Extensions gallery</a> <ol> - <li> + <li style="display: none; "> + <a>h3Name</a> + </li> + </ol> + </li><li> + <a href="#server">Hosting on your own server</a> + <ol> + <li style="display: none; "> <a>h3Name</a> </li> </ol> </li> - <li> + <li style="display: none; "> <a href="#apiReference">API reference</a> <ol> <li> @@ -253,18 +259,96 @@ <!-- STATIC CONTENT PLACEHOLDER --> <div id="static"><div id="pageData-name" class="pageData">Hosting</div> +<div id="pageData-showTOC" class="pageData">true</div> + +<p> +Google provides a free hosting service: the +<a href="http://chrome.google.com/extensions">Extensions gallery</a>. +Another option is hosting your extension on other servers, +instead of or in addition to using Google's gallery. +This page gives tips for using the gallery, +as well as details on how to host extensions on your own server. +</p> + +<h2 id="gallery">Publishing to the Extensions gallery</h2> + +<p> +Publishing to the gallery is easy, +but your extension might be more popular +if you take a little time to prepare: +</p> + +<ul> + <li> Visit the + <a href="http://chrome.google.com/extensions">gallery</a> + and look at similar extensions' pages. + Your extension's page should look at least as good as theirs. </li> + <li> Consider creating a support site for your extension, + maybe a <a href="http://groups.google.com">Google Group</a>. + If your extension's page has a link to your support site, + people will be less likely to + complain in the user comments. </li> + <li> Consider creating a custom Gmail account + for this extension or for all of your extensions. + Only one account can upload, publish, and update your extension. </li> + <li> Create some great text (titles and descriptions) + and images (maybe even video) for your extension. + See the + <a href="http://www.google.com/support/chrome/bin/answer.py?answer=113909">gallery help</a> + for details on screenshot and text requirements. </li> +</ul> <p> -If your extension is hosted in Google's -<a href="https://chrome.google.com/extensions">gallery</a>, -<em>ignore this page</em>. -You don't need to worry about HTTP headers -because the gallery handles them for you. +To upload your extension, +just zip up your extension's directory, +go to the +<a href="https://chrome.google.com/extensions/developer/dashboard">Developer Dashboard</a>, +and add your extension. +This creates a page for your extension, +viewable only by you. +Now you can edit your extension's page — +uploading images, specifying text, and so on. +</p> + +<p> +Once you verify that your extension's page looks good +and all links are valid, +publish your extension. +</p> + +<p> +When you want to update your extension, +use the dashboard to upload and publish the new version. +Your users will automatically get the new version +over the next few hours. +</p> + + +<h2 id="server">Hosting on your own server</h2> + +<p> +By convention, extensions are served — +whether by the gallery or by a custom server — +as <code>.crx</code> files. +When you upload an extension to the gallery, +the gallery creates the <code>.crx</code> file for you. +If you aren't using the gallery, +you need to create the <code>.crx</code> file yourself, +as described in <a href="packaging.html">Packaging</a>. +</p> + +<p class="note"> +<b>Note:</b> +If you do your own hosting, +don't forget to set up +<a href="autoupdate.html">autoupdate</a>, +so you can be sure that +your extension's users have the latest version. </p> <p> -If you intend to use another server, -make sure it serves appropriate HTTP headers, +A server that hosts extensions +must use appropriate HTTP headers, so that users can install your extension by clicking a link to it. </p> diff --git a/chrome/common/extensions/docs/i18n-messages.html b/chrome/common/extensions/docs/i18n-messages.html index 2219853..1ae9f93 100644 --- a/chrome/common/extensions/docs/i18n-messages.html +++ b/chrome/common/extensions/docs/i18n-messages.html @@ -163,9 +163,8 @@ </li> <li>Finishing <ul> - <li><a href="autoupdate.html">Autoupdating</a></li> - <li><a href="packaging.html">Packaging</a></li> - <li><a href="external_extensions.html">External Extensions</a></li> + <li><a href="hosting.html">Hosting</a></li> + <li><a href="external_extensions.html">Other Deployment Options</a></li> </ul> </li> </ul> diff --git a/chrome/common/extensions/docs/i18n.html b/chrome/common/extensions/docs/i18n.html index f697dc4..7f29d0f 100644 --- a/chrome/common/extensions/docs/i18n.html +++ b/chrome/common/extensions/docs/i18n.html @@ -163,9 +163,8 @@ </li> <li>Finishing <ul> - <li><a href="autoupdate.html">Autoupdating</a></li> - <li><a href="packaging.html">Packaging</a></li> - <li><a href="external_extensions.html">External Extensions</a></li> + <li><a href="hosting.html">Hosting</a></li> + <li><a href="external_extensions.html">Other Deployment Options</a></li> </ul> </li> </ul> diff --git a/chrome/common/extensions/docs/index.html b/chrome/common/extensions/docs/index.html index 77761b8..0d342e1 100644 --- a/chrome/common/extensions/docs/index.html +++ b/chrome/common/extensions/docs/index.html @@ -163,9 +163,8 @@ </li> <li>Finishing <ul> - <li><a href="autoupdate.html">Autoupdating</a></li> - <li><a href="packaging.html">Packaging</a></li> - <li><a href="external_extensions.html">External Extensions</a></li> + <li><a href="hosting.html">Hosting</a></li> + <li><a href="external_extensions.html">Other Deployment Options</a></li> </ul> </li> </ul> diff --git a/chrome/common/extensions/docs/manifest.html b/chrome/common/extensions/docs/manifest.html index 47d9acf..d86ab9f 100644 --- a/chrome/common/extensions/docs/manifest.html +++ b/chrome/common/extensions/docs/manifest.html @@ -163,9 +163,8 @@ </li> <li>Finishing <ul> - <li><a href="autoupdate.html">Autoupdating</a></li> - <li><a href="packaging.html">Packaging</a></li> - <li><a href="external_extensions.html">External Extensions</a></li> + <li><a href="hosting.html">Hosting</a></li> + <li><a href="external_extensions.html">Other Deployment Options</a></li> </ul> </li> </ul> diff --git a/chrome/common/extensions/docs/match_patterns.html b/chrome/common/extensions/docs/match_patterns.html index 46874341..d5468f6 100644 --- a/chrome/common/extensions/docs/match_patterns.html +++ b/chrome/common/extensions/docs/match_patterns.html @@ -163,9 +163,8 @@ </li> <li>Finishing <ul> - <li><a href="autoupdate.html">Autoupdating</a></li> - <li><a href="packaging.html">Packaging</a></li> - <li><a href="external_extensions.html">External Extensions</a></li> + <li><a href="hosting.html">Hosting</a></li> + <li><a href="external_extensions.html">Other Deployment Options</a></li> </ul> </li> </ul> diff --git a/chrome/common/extensions/docs/messaging.html b/chrome/common/extensions/docs/messaging.html index 8a458d3..d3a041a 100644 --- a/chrome/common/extensions/docs/messaging.html +++ b/chrome/common/extensions/docs/messaging.html @@ -163,9 +163,8 @@ </li> <li>Finishing <ul> - <li><a href="autoupdate.html">Autoupdating</a></li> - <li><a href="packaging.html">Packaging</a></li> - <li><a href="external_extensions.html">External Extensions</a></li> + <li><a href="hosting.html">Hosting</a></li> + <li><a href="external_extensions.html">Other Deployment Options</a></li> </ul> </li> </ul> diff --git a/chrome/common/extensions/docs/notifications.html b/chrome/common/extensions/docs/notifications.html index fc9803f..aabb6d3 100644 --- a/chrome/common/extensions/docs/notifications.html +++ b/chrome/common/extensions/docs/notifications.html @@ -163,9 +163,8 @@ </li> <li>Finishing <ul> - <li><a href="autoupdate.html">Autoupdating</a></li> - <li><a href="packaging.html">Packaging</a></li> - <li><a href="external_extensions.html">External Extensions</a></li> + <li><a href="hosting.html">Hosting</a></li> + <li><a href="external_extensions.html">Other Deployment Options</a></li> </ul> </li> </ul> diff --git a/chrome/common/extensions/docs/npapi.html b/chrome/common/extensions/docs/npapi.html index 0c24ed6..b92eee5 100644 --- a/chrome/common/extensions/docs/npapi.html +++ b/chrome/common/extensions/docs/npapi.html @@ -163,9 +163,8 @@ </li> <li>Finishing <ul> - <li><a href="autoupdate.html">Autoupdating</a></li> - <li><a href="packaging.html">Packaging</a></li> - <li><a href="external_extensions.html">External Extensions</a></li> + <li><a href="hosting.html">Hosting</a></li> + <li><a href="external_extensions.html">Other Deployment Options</a></li> </ul> </li> </ul> diff --git a/chrome/common/extensions/docs/options.html b/chrome/common/extensions/docs/options.html index 4234fca..2b87127 100644 --- a/chrome/common/extensions/docs/options.html +++ b/chrome/common/extensions/docs/options.html @@ -163,9 +163,8 @@ </li> <li>Finishing <ul> - <li><a href="autoupdate.html">Autoupdating</a></li> - <li><a href="packaging.html">Packaging</a></li> - <li><a href="external_extensions.html">External Extensions</a></li> + <li><a href="hosting.html">Hosting</a></li> + <li><a href="external_extensions.html">Other Deployment Options</a></li> </ul> </li> </ul> diff --git a/chrome/common/extensions/docs/override.html b/chrome/common/extensions/docs/override.html index 8cba24d..898d400 100644 --- a/chrome/common/extensions/docs/override.html +++ b/chrome/common/extensions/docs/override.html @@ -163,9 +163,8 @@ </li> <li>Finishing <ul> - <li><a href="autoupdate.html">Autoupdating</a></li> - <li><a href="packaging.html">Packaging</a></li> - <li><a href="external_extensions.html">External Extensions</a></li> + <li><a href="hosting.html">Hosting</a></li> + <li><a href="external_extensions.html">Other Deployment Options</a></li> </ul> </li> </ul> diff --git a/chrome/common/extensions/docs/overview.html b/chrome/common/extensions/docs/overview.html index 9dc28a1..9fb7d8d 100644 --- a/chrome/common/extensions/docs/overview.html +++ b/chrome/common/extensions/docs/overview.html @@ -163,9 +163,8 @@ </li> <li>Finishing <ul> - <li><a href="autoupdate.html">Autoupdating</a></li> - <li><a href="packaging.html">Packaging</a></li> - <li><a href="external_extensions.html">External Extensions</a></li> + <li><a href="hosting.html">Hosting</a></li> + <li><a href="external_extensions.html">Other Deployment Options</a></li> </ul> </li> </ul> @@ -365,8 +364,11 @@ While you're working on your extension, you put all these files into a single folder. When you distribute your extension, the contents of the folder are packaged into a special ZIP file -that has a <code>.crx</code> suffix, -as described in <a href="packaging.html">Packaging</a>. +that has a <code>.crx</code> suffix. +If you put your extension in the gallery, +the gallery creates the <code>.crx</code> file for you. +For details on distributing extensions, +see <a href="hosting.html">Hosting</a>. </p> diff --git a/chrome/common/extensions/docs/packaging.html b/chrome/common/extensions/docs/packaging.html index 132c236..171ed7b 100644 --- a/chrome/common/extensions/docs/packaging.html +++ b/chrome/common/extensions/docs/packaging.html @@ -163,9 +163,8 @@ </li> <li>Finishing <ul> - <li><a href="autoupdate.html">Autoupdating</a></li> - <li class="leftNavSelected">Packaging</li> - <li><a href="external_extensions.html">External Extensions</a></li> + <li><a href="hosting.html">Hosting</a></li> + <li><a href="external_extensions.html">Other Deployment Options</a></li> </ul> </li> </ul> diff --git a/chrome/common/extensions/docs/pageAction.html b/chrome/common/extensions/docs/pageAction.html index 9334d75..a015cbb 100644 --- a/chrome/common/extensions/docs/pageAction.html +++ b/chrome/common/extensions/docs/pageAction.html @@ -163,9 +163,8 @@ </li> <li>Finishing <ul> - <li><a href="autoupdate.html">Autoupdating</a></li> - <li><a href="packaging.html">Packaging</a></li> - <li><a href="external_extensions.html">External Extensions</a></li> + <li><a href="hosting.html">Hosting</a></li> + <li><a href="external_extensions.html">Other Deployment Options</a></li> </ul> </li> </ul> diff --git a/chrome/common/extensions/docs/samples.html b/chrome/common/extensions/docs/samples.html index 5c0a32d..ab09a17 100644 --- a/chrome/common/extensions/docs/samples.html +++ b/chrome/common/extensions/docs/samples.html @@ -163,9 +163,8 @@ </li> <li>Finishing <ul> - <li><a href="autoupdate.html">Autoupdating</a></li> - <li><a href="packaging.html">Packaging</a></li> - <li><a href="external_extensions.html">External Extensions</a></li> + <li><a href="hosting.html">Hosting</a></li> + <li><a href="external_extensions.html">Other Deployment Options</a></li> </ul> </li> </ul> diff --git a/chrome/common/extensions/docs/static/autoupdate.html b/chrome/common/extensions/docs/static/autoupdate.html index 4b5ad22..4c8f28f 100644 --- a/chrome/common/extensions/docs/static/autoupdate.html +++ b/chrome/common/extensions/docs/static/autoupdate.html @@ -3,9 +3,11 @@ <p>We want extensions to be autoupdated for some of the same reasons as Google Chrome itself: to incorporate bug and security fixes, add new features or performance enhancements, and improve user interfaces.</p> -<p>For extensions packaged and distributed via the <a href="https://chrome.google.com/extensions">gallery</a>, developers will be able to use a web interface to release updated versions of their extensions and do not need to concern themselves with the rest of this document.</p> +<p>If you distribute your extension using the <a href="https://chrome.google.com/extensions">gallery</a>, you can <em>ignore this page</em>. You can use a web interface to release updated versions of your extension.</p> -<p>Those who choose to host extensions themselves instead of using the gallery will probably want to use autoupdate for their extensions as described below. You might want to make sure you are familiar with <a href="packaging.html">Packaging</a> first.</p> +<p>If you want to host your extension somewhere other than the gallery, keep reading. +You should also read <a href="hosting.html">Hosting</a> and +<a href="packaging.html">Packaging</a>.</p> <h2>Overview</h2> diff --git a/chrome/common/extensions/docs/static/devguide.html b/chrome/common/extensions/docs/static/devguide.html index 2a2d092..63ac400 100644 --- a/chrome/common/extensions/docs/static/devguide.html +++ b/chrome/common/extensions/docs/static/devguide.html @@ -109,16 +109,16 @@ and <a href="overview.html">Overview</a>. <td> Update extensions automatically </td> </tr> <tr> - <td> <a href="external_extensions.html">External Extensions</a> </td> - <td> Install extensions automatically </td> + <td> <a href="hosting.html">Hosting</a> </td> + <td> Host extensions in the Extensions gallery or on your own servers </td> </tr> <tr> - <td> <a href="hosting.html">Hosting</a> </td> - <td> Host extensions on your own servers </td> + <td> <a href="external_extensions.html">Other Deployment Options</a> </td> + <td> Distribute extensions on your network or with other software </td> </tr> <tr> <td> <a href="packaging.html">Packaging</a> </td> - <td> Create a .crx file so you can distribute your extension </td> + <td> Create a <code>.crx</code> file so you can distribute your extension </td> </tr> </table> diff --git a/chrome/common/extensions/docs/static/external_extensions.html b/chrome/common/extensions/docs/static/external_extensions.html index 37dddb5..9f1eb5e 100644 --- a/chrome/common/extensions/docs/static/external_extensions.html +++ b/chrome/common/extensions/docs/static/external_extensions.html @@ -1,132 +1,236 @@ -<div id="pageData-name" class="pageData">External Extensions</div> +<div id="pageData-name" class="pageData">Other Deployment Options</div> <div id="pageData-showTOC" class="pageData">true</div> <p> -Google Chrome implements a mechanism -to detect when an external extension -needs to be installed. -Typically, this could be leveraged -by 3rd party vendors -to install an extension whenever -the user installs their software. -Another use case includes network admins, -who want to install the same extensions -throughout their company. +Usually, users install their own extensions. +But sometimes you might want an extension +to be installed automatically. +Here are two typical cases: +</p> + +<ul> + <li> + An extension is associated with some other software, + and the extension should be installed + whenever the user installs that other software. + The extension could also be uninstalled + when the user removes that other software. + </li> + <li> + A network admin wants to install the same extensions + throughout the company. + </li> +</ul> <p> +An extension that's installed automatically is known as an +<em>external extension</em>. Google Chrome supports two ways of installing external extensions: -using a preferences JSON file, -or using the Windows registry -(Windows only). +</p> + +<ul> + <li> Using a preferences JSON file </li> + <li> Using the Windows registry (Windows only) </li> +</ul> + +<h2 id="prereqs">Before you begin</h2> + +<p> +First, package a +<a href="packaging.html"><code>.crx</code> file</a> +and make sure that it installs successfully. +</p> + +<p> +Then, before you edit the preferences file or the registry, +make a note of the following: +</p> + +<ul> + <li> The intended <b>location</b> of the extension's <code>.crx</code> file </li> + <li> The extension's <b>version</b> + (from the manifest file or the <b>chrome://extensions</b> page) </li> + <li> The extension's <b>ID</b> + (from the <b>chrome://extensions</b> page + when you've loaded the packed extension) </li> +</ul> <p> -<b>Important:</b> Before you begin, -make sure you have a <a href="packaging.html">packaged -crx file</a> that installs successfully, -and make a note of both the version -of the extension and its id (see chrome://extensions/). -For the rest of this text, we'll assume -the extension version is -<code>1.0</code> and its id is <code>aaaaaaaaaabbbbbbbbbbcccccccccc</code>. +The following examples assume the location is +<code>\\server\share\extension.crx</code> +or <code>/home/share/extension.crx</code>, +the version is <code>1.0</code>, +and the ID is <code>aaaaaaaaaabbbbbbbbbbcccccccccc</code>. +</p> + +<h2 id="preferences">Using a preferences file</h2> + +<p class="note"> +<b>Windows note:</b> +Until <a href="http://crbug.com/41902">bug 41902</a> is fixed, +you might want to use the <a href="#registry">Windows registry</a> +instead of the preferences file. -<h2 id="preferences">Using the Preferences File</h2> +</p> <ol> -<li>Make the .crx extension file available +<li>Make the <code>.crx</code> extension file available to the machine you want to install the extension -on (copy it to a local directory -or to a network share, ie. <code>\\server\share\extension.crx</code>). -<li>Locate the external_extensions.json file under the Chrome -installation directory and add the following key inside -the curly brackets (note the extra escaping for the slashes, -which is also required when specifying local directories): +on. (Copy it to a local directory +or to a network share — for example, <code>\\server\share\extension.crx</code> +or <code>/home/share/extension.crx</code>.) +</li> +<li>Locate the <code>external_extensions.json</code> file + under the Google Chrome installation directory. + If the file doesn't exist, create it. + The location depends on the operating system. + <dl> + <dt> Windows: </dt> + <dd> <code><em>chrome_root</em>\Application\<em>chrome_version</em>\Extensions\</code> + <br /> + Example: <code>c:\Users\Me\AppData\Local\Google\Chrome\Application\6.0.422.0\Extensions\</code> + </dd> + <dt> Mac OS X: </dt> + <dd> <code>/Applications/Google Chrome.app/Contents/Extensions/</code> </dd> + <dt> Linux: </dt> + <dd> <code>/opt/google/chrome/extensions/</code> <br> + <b>Note:</b> Use <code>chmod</code> if necessary + to make sure that <code>extensions/external_extensions.json</code> + is world-readable. + </dd> + </dl> +</li> +<li> Add an entry to <code>external_extensions.json</code> + for your extension's ID, + specifying the extension's location and version + with fields named "external_crx" and "external_version". + Example: <pre>{ "aaaaaaaaaabbbbbbbbbbcccccccccc": { - "external_crx": "\\\\server\\share\\extension.crx", + "external_crx": "/home/share/extension.crx", "external_version": "1.0" } }</pre> -<li>Save the json file. -<li>Launch Chrome and go to chrome://extensions -and you should see the extension listed. -</ol> +<p class="note"> +<b>Note:</b> +You need to escape +each <code>\</code> character in the location. +For example, +<code>\\server\share\extension.crx</code> would be +<code>"\\\\server\\share\\extension.crx"</code>. +</p> +</li> + +<li>Save the JSON file. </li> +<li>Launch Google Chrome and go to <b>chrome://extensions</b>; +you should see the extension listed. </li> +</ol> -<h2 id="registry">Using the Windows Registry</h2> +<h2 id="registry">Using the Windows registry</h2> <ol> -<li>Make the .crx extension file available -to the machine you want to install the extension on -(copy it to a local directory or to a network share, -ie. <code>\\server\share\extension.crx</code>). -<li>Find (or create the following key) in the -registry:<br> -32 bit Windows: <code>HKEY_LOCAL_MACHINE\Software\Google\Chrome\Extensions</code><br> -64 bit Windows: <code>HKEY_LOCAL_MACHINE\Software\Wow6432Node\Google\Chrome\Extensions</code> +<li>Make the <code>.crx</code> extension file available +to the machine you want to install the extension on. +(Copy it to a local directory or to a network share — +for example, <code>\\server\share\extension.crx</code>.) +<li>Find or create the following key in the +registry: +<ul> + <li> 32-bit Windows: <code>HKEY_LOCAL_MACHINE\Software\Google\Chrome\Extensions</code> </li> + <li> 64-bit Windows: <code>HKEY_LOCAL_MACHINE\Software\Wow6432Node\Google\Chrome\Extensions</code> </li> +</ul> +</li> + <li>Create a new key (folder) -under the Extensions key with the -same name as the id of your extension (<code>aaaaaaaaaabbbbbbbbbbcccccccccc</code>). -<li>Create two string values (<code>REG_SZ</code>):<br> -path: <code>\\server\share\extension.crx</code><br> -version: <code>1.0</code> +under the <b>Extensions</b> key with the +same name as the ID of your extension +(for example, <code>aaaaaaaaaabbbbbbbbbbcccccccccc</code>). +<li>Create two string values (<code>REG_SZ</code>) named "path" and "version", + and set them to the extension's location and version. + For example: +<ul> + <li>path: <code>\\server\share\extension.crx</code> </li> + <li>version: <code>1.0</code> </li> +</ul> +</li> <li>Launch the browser and go to -chrome://extensions and you should -see the extension listed. +<b>chrome://extensions</b>; you should +see the extension listed. </li> </ol> -<h2 id="updating">Updating and Uninstalling</h2> +<h2 id="updating">Updating and uninstalling</h2> <p>Google Chrome scans the metadata entries in the preferences and registry each time the browser starts, and makes any necessary changes to the installed -external extensions. +external extensions. </p> <p>To update your extension to a new version, update the file, and then update the version -in the preferences or registry. +in the preferences or registry. </p> <p>To uninstall your extension -(eg if your software is uninstalled), +(for example, if your software is uninstalled), remove the metadata from the preferences file -or registry. +or registry. </p> <h2 id="faq">FAQ</h2> -<p><b>Can I specify a URL as a path to the external extension?</b> +<p> +This section answers common questions about external extensions. +</p> + +<br> + +<p><b>Can I specify a URL as a path to the external extension?</b> </p> <p>Not at this time. -Chrome only supports absolute/relative local paths +Google Chrome supports only absolute or relative local paths and UNC paths. Relative paths are relative -to the Extensions directory -(where the external_extensions.json file is located). -<br> +to the <code>Extensions</code> directory +(where the <code>external_extensions.json</code> file is located). +</p> + <br> -<p><b>What are some common mistakes when installing with the preferences file?</b> +<p><b>What are some common mistakes +when installing with the preferences file?</b> </p> <ul> -<li>Not specifying the same id/version -as the one listed in the .crx -<li>external_extension.json is not in the right location -<li>Syntax error in json file -(forgetting to separate entries with comma or -leaving a trailing comma somewhere) -<li>Extra curly brackets around the top level dictionary -<li>JSON file entry points to the wrong path -to the .crx (or path specified but no filename) -<li>Backslashes in UNC path not escaped (eg <code>\\server\share\file</code> (incorrect), instead of <code>\\\\server\\share\\extension</code> (correct) -<li>Permissions problems on a network share + <li> + Not specifying the same id/version + as the one listed in the <code>.crx</code> </li> + <li> + <code>external_extension.json</code> is in the wrong location </li> + <li> + Syntax error in JSON file + (forgetting to separate entries with comma or + leaving a trailing comma somewhere) </li> + <li> + Extra curly brackets around the top level dictionary </li> + <li> + JSON file entry points to the wrong path + to the <code>.crx</code> (or path specified but no filename) </li> + <li> + Backslashes in UNC path not escaped + (for example, <code>\\server\share\file</code> is wrong; + it should be <code>\\\\server\\share\\extension</code>) </li> + <li> + Permissions problems on a network share </li> </ul> <br> <p><b>What are some common mistakes when installing with the registry?</b> <ul> -<li>Not specifying the same id/version as the one listed in the .crx -<li>Key created in the wrong location in the registry -<li>Registry entry points to the wrong path to the .crx (or path specified but no filename) -<li>Permissions problems on a network share + <li>Not specifying the same id/version + as the one listed in the <code>.crx</code> </li> + <li>Key created in the wrong location in the registry </li> + <li>Registry entry points to the wrong path to the <code>.crx</code> file + (or path specified but no filename) </li> + <li>Permissions problems on a network share </li> </ul> <br> @@ -134,10 +238,9 @@ to the .crx (or path specified but no filename) <p><b>What if the user uninstalls the extension?</b> <p>If the user uninstalls the extension through the UI, it will no longer be installed or updated on each startup. In other words, the -external extension is blacklisted. - -<br><br> +external extension is blacklisted. </p> +<br> <p><b>How do I get off the blacklist?</b> <p>If the user uninstalls your extension, you should respect that @@ -145,4 +248,4 @@ decision. However, if you (the developer) accidentally uninstalled your extension through the UI, you can remove the blacklist tag by installing the extension normally -through the UI, and then uninstalling it. +through the UI, and then uninstalling it. </p> diff --git a/chrome/common/extensions/docs/static/getstarted.html b/chrome/common/extensions/docs/static/getstarted.html index e9668b1..f0aa1131 100644 --- a/chrome/common/extensions/docs/static/getstarted.html +++ b/chrome/common/extensions/docs/static/getstarted.html @@ -147,18 +147,31 @@ it won't work! </p> <!-- [PENDING: Summarize what we did, what it means, what else we would've done if this were a real extension (e.g. package/zip it), and where to find more information.] --> <p> -Here are some suggestions for what to do next: +Here are some suggestions for what to read next: </p> <ul> <li> - Read the <a href="overview.html">Overview</a> + The <a href="overview.html">Overview</a>, + which has important conceptual and practical information </li> <li> - Learn how to debug extensions by following the - <a href="tut_debugging.html">debugging tutorial</a> + The + <a href="tut_debugging.html">debugging tutorial</a>, + which starts where this tutorial leaves off </li> <li> + The <a href="hosting.html">hosting</a> page, + which tells you about the gallery + and other options for distributing your extension + </li> +</ul> + +<p> +If you don't feel like reading, try these: +</p> +<ul> + <li> Keep up to date with the latest news: <a href="http://groups.google.com/a/chromium.org/group/chromium-extensions/subscribe">subscribe to chromium-extensions</a> </li> diff --git a/chrome/common/extensions/docs/static/hosting.html b/chrome/common/extensions/docs/static/hosting.html index 2ea8df1..b12c8c9 100644 --- a/chrome/common/extensions/docs/static/hosting.html +++ b/chrome/common/extensions/docs/static/hosting.html @@ -1,16 +1,94 @@ <div id="pageData-name" class="pageData">Hosting</div> +<div id="pageData-showTOC" class="pageData">true</div> <p> -If your extension is hosted in Google's -<a href="https://chrome.google.com/extensions">gallery</a>, -<em>ignore this page</em>. -You don't need to worry about HTTP headers -because the gallery handles them for you. +Google provides a free hosting service: the +<a href="http://chrome.google.com/extensions">Extensions gallery</a>. +Another option is hosting your extension on other servers, +instead of or in addition to using Google's gallery. +This page gives tips for using the gallery, +as well as details on how to host extensions on your own server. +</p> + +<h2 id="gallery">Publishing to the Extensions gallery</h2> + +<p> +Publishing to the gallery is easy, +but your extension might be more popular +if you take a little time to prepare: +</p> + +<ul> + <li> Visit the + <a href="http://chrome.google.com/extensions">gallery</a> + and look at similar extensions' pages. + Your extension's page should look at least as good as theirs. </li> + <li> Consider creating a support site for your extension, + maybe a <a href="http://groups.google.com">Google Group</a>. + If your extension's page has a link to your support site, + people will be less likely to + complain in the user comments. </li> + <li> Consider creating a custom Gmail account + for this extension or for all of your extensions. + Only one account can upload, publish, and update your extension. </li> + <li> Create some great text (titles and descriptions) + and images (maybe even video) for your extension. + See the + <a href="http://www.google.com/support/chrome/bin/answer.py?answer=113909">gallery help</a> + for details on screenshot and text requirements. </li> +</ul> + +<p> +To upload your extension, +just zip up your extension's directory, +go to the +<a href="https://chrome.google.com/extensions/developer/dashboard">Developer Dashboard</a>, +and add your extension. +This creates a page for your extension, +viewable only by you. +Now you can edit your extension's page — +uploading images, specifying text, and so on. +</p> + +<p> +Once you verify that your extension's page looks good +and all links are valid, +publish your extension. +</p> + +<p> +When you want to update your extension, +use the dashboard to upload and publish the new version. +Your users will automatically get the new version +over the next few hours. +</p> + + +<h2 id="server">Hosting on your own server</h2> + +<p> +By convention, extensions are served — +whether by the gallery or by a custom server — +as <code>.crx</code> files. +When you upload an extension to the gallery, +the gallery creates the <code>.crx</code> file for you. +If you aren't using the gallery, +you need to create the <code>.crx</code> file yourself, +as described in <a href="packaging.html">Packaging</a>. +</p> + +<p class="note"> +<b>Note:</b> +If you do your own hosting, +don't forget to set up +<a href="autoupdate.html">autoupdate</a>, +so you can be sure that +your extension's users have the latest version. </p> <p> -If you intend to use another server, -make sure it serves appropriate HTTP headers, +A server that hosts extensions +must use appropriate HTTP headers, so that users can install your extension by clicking a link to it. </p> diff --git a/chrome/common/extensions/docs/static/overview.html b/chrome/common/extensions/docs/static/overview.html index ff7d231..6b0a1df 100644 --- a/chrome/common/extensions/docs/static/overview.html +++ b/chrome/common/extensions/docs/static/overview.html @@ -72,8 +72,11 @@ While you're working on your extension, you put all these files into a single folder. When you distribute your extension, the contents of the folder are packaged into a special ZIP file -that has a <code>.crx</code> suffix, -as described in <a href="packaging.html">Packaging</a>. +that has a <code>.crx</code> suffix. +If you put your extension in the gallery, +the gallery creates the <code>.crx</code> file for you. +For details on distributing extensions, +see <a href="hosting.html">Hosting</a>. </p> diff --git a/chrome/common/extensions/docs/tabs.html b/chrome/common/extensions/docs/tabs.html index 25e5f2e..7de5c5c 100644 --- a/chrome/common/extensions/docs/tabs.html +++ b/chrome/common/extensions/docs/tabs.html @@ -163,9 +163,8 @@ </li> <li>Finishing <ul> - <li><a href="autoupdate.html">Autoupdating</a></li> - <li><a href="packaging.html">Packaging</a></li> - <li><a href="external_extensions.html">External Extensions</a></li> + <li><a href="hosting.html">Hosting</a></li> + <li><a href="external_extensions.html">Other Deployment Options</a></li> </ul> </li> </ul> diff --git a/chrome/common/extensions/docs/template/api_template.html b/chrome/common/extensions/docs/template/api_template.html index 46fba50..21e0dd6 100644 --- a/chrome/common/extensions/docs/template/api_template.html +++ b/chrome/common/extensions/docs/template/api_template.html @@ -150,9 +150,8 @@ </li> <li>Finishing <ul> - <li><a href="autoupdate.html">Autoupdating</a></li> - <li><a href="packaging.html">Packaging</a></li> - <li><a href="external_extensions.html">External Extensions</a></li> + <li><a href="hosting.html">Hosting</a></li> + <li><a href="external_extensions.html">Other Deployment Options</a></li> </ul> </li> </ul> diff --git a/chrome/common/extensions/docs/themes.html b/chrome/common/extensions/docs/themes.html index 6a2e670..36c1868 100644 --- a/chrome/common/extensions/docs/themes.html +++ b/chrome/common/extensions/docs/themes.html @@ -163,9 +163,8 @@ </li> <li>Finishing <ul> - <li><a href="autoupdate.html">Autoupdating</a></li> - <li><a href="packaging.html">Packaging</a></li> - <li><a href="external_extensions.html">External Extensions</a></li> + <li><a href="hosting.html">Hosting</a></li> + <li><a href="external_extensions.html">Other Deployment Options</a></li> </ul> </li> </ul> diff --git a/chrome/common/extensions/docs/tut_analytics.html b/chrome/common/extensions/docs/tut_analytics.html index 7ef49de..65c2d69 100644 --- a/chrome/common/extensions/docs/tut_analytics.html +++ b/chrome/common/extensions/docs/tut_analytics.html @@ -163,9 +163,8 @@ </li> <li>Finishing <ul> - <li><a href="autoupdate.html">Autoupdating</a></li> - <li><a href="packaging.html">Packaging</a></li> - <li><a href="external_extensions.html">External Extensions</a></li> + <li><a href="hosting.html">Hosting</a></li> + <li><a href="external_extensions.html">Other Deployment Options</a></li> </ul> </li> </ul> diff --git a/chrome/common/extensions/docs/tut_debugging.html b/chrome/common/extensions/docs/tut_debugging.html index b8e5126..67ba958 100644 --- a/chrome/common/extensions/docs/tut_debugging.html +++ b/chrome/common/extensions/docs/tut_debugging.html @@ -163,9 +163,8 @@ </li> <li>Finishing <ul> - <li><a href="autoupdate.html">Autoupdating</a></li> - <li><a href="packaging.html">Packaging</a></li> - <li><a href="external_extensions.html">External Extensions</a></li> + <li><a href="hosting.html">Hosting</a></li> + <li><a href="external_extensions.html">Other Deployment Options</a></li> </ul> </li> </ul> diff --git a/chrome/common/extensions/docs/tut_oauth.html b/chrome/common/extensions/docs/tut_oauth.html index 555c8cb..fb80069 100644 --- a/chrome/common/extensions/docs/tut_oauth.html +++ b/chrome/common/extensions/docs/tut_oauth.html @@ -163,9 +163,8 @@ </li> <li>Finishing <ul> - <li><a href="autoupdate.html">Autoupdating</a></li> - <li><a href="packaging.html">Packaging</a></li> - <li><a href="external_extensions.html">External Extensions</a></li> + <li><a href="hosting.html">Hosting</a></li> + <li><a href="external_extensions.html">Other Deployment Options</a></li> </ul> </li> </ul> diff --git a/chrome/common/extensions/docs/tutorials.html b/chrome/common/extensions/docs/tutorials.html index 9402be1..e02f7ec 100644 --- a/chrome/common/extensions/docs/tutorials.html +++ b/chrome/common/extensions/docs/tutorials.html @@ -163,9 +163,8 @@ </li> <li>Finishing <ul> - <li><a href="autoupdate.html">Autoupdating</a></li> - <li><a href="packaging.html">Packaging</a></li> - <li><a href="external_extensions.html">External Extensions</a></li> + <li><a href="hosting.html">Hosting</a></li> + <li><a href="external_extensions.html">Other Deployment Options</a></li> </ul> </li> </ul> diff --git a/chrome/common/extensions/docs/windows.html b/chrome/common/extensions/docs/windows.html index 94a0fec..2c9c11d 100644 --- a/chrome/common/extensions/docs/windows.html +++ b/chrome/common/extensions/docs/windows.html @@ -163,9 +163,8 @@ </li> <li>Finishing <ul> - <li><a href="autoupdate.html">Autoupdating</a></li> - <li><a href="packaging.html">Packaging</a></li> - <li><a href="external_extensions.html">External Extensions</a></li> + <li><a href="hosting.html">Hosting</a></li> + <li><a href="external_extensions.html">Other Deployment Options</a></li> </ul> </li> </ul> diff --git a/chrome/common/extensions/docs/xhr.html b/chrome/common/extensions/docs/xhr.html index 385fc04..4e30784 100644 --- a/chrome/common/extensions/docs/xhr.html +++ b/chrome/common/extensions/docs/xhr.html @@ -163,9 +163,8 @@ </li> <li>Finishing <ul> - <li><a href="autoupdate.html">Autoupdating</a></li> - <li><a href="packaging.html">Packaging</a></li> - <li><a href="external_extensions.html">External Extensions</a></li> + <li><a href="hosting.html">Hosting</a></li> + <li><a href="external_extensions.html">Other Deployment Options</a></li> </ul> </li> </ul> |