summaryrefslogtreecommitdiffstats
path: root/chrome/common
diff options
context:
space:
mode:
authoraa@chromium.org <aa@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-01-09 19:12:16 +0000
committeraa@chromium.org <aa@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-01-09 19:12:16 +0000
commit7eab942976f202aa6d4e89c57ec23406cab34741 (patch)
treeedd58671dd6901764f1730daba2e5db5507e68a5 /chrome/common
parent48e7f7fc8e47daa20875ed123936dea12f59b6b6 (diff)
downloadchromium_src-7eab942976f202aa6d4e89c57ec23406cab34741.zip
chromium_src-7eab942976f202aa6d4e89c57ec23406cab34741.tar.gz
chromium_src-7eab942976f202aa6d4e89c57ec23406cab34741.tar.bz2
Add a page to the docs about external extensions.
This was stolen from Finnur's internal wave mostly. TBR=finnur@chromium.org,kathyw@chromium.org git-svn-id: svn://svn.chromium.org/chrome/trunk/src@35877 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/common')
-rw-r--r--chrome/common/extensions/docs/api_index.html1
-rw-r--r--chrome/common/extensions/docs/api_other.html1
-rw-r--r--chrome/common/extensions/docs/autoupdate.html1
-rw-r--r--chrome/common/extensions/docs/background_pages.html1
-rw-r--r--chrome/common/extensions/docs/bookmarks.html1
-rw-r--r--chrome/common/extensions/docs/browserAction.html1
-rw-r--r--chrome/common/extensions/docs/content_scripts.html1
-rw-r--r--chrome/common/extensions/docs/devguide.html1
-rw-r--r--chrome/common/extensions/docs/devtools.html1
-rw-r--r--chrome/common/extensions/docs/docs.html1
-rw-r--r--chrome/common/extensions/docs/events.html1
-rw-r--r--chrome/common/extensions/docs/extension.html1
-rw-r--r--chrome/common/extensions/docs/external_extensions.html603
-rw-r--r--chrome/common/extensions/docs/faq.html1
-rw-r--r--chrome/common/extensions/docs/getstarted.html1
-rw-r--r--chrome/common/extensions/docs/hosting.html1
-rw-r--r--chrome/common/extensions/docs/i18n.html1
-rw-r--r--chrome/common/extensions/docs/index.html1
-rw-r--r--chrome/common/extensions/docs/manifest.html1
-rw-r--r--chrome/common/extensions/docs/match_patterns.html1
-rw-r--r--chrome/common/extensions/docs/messaging.html1
-rw-r--r--chrome/common/extensions/docs/npapi.html1
-rw-r--r--chrome/common/extensions/docs/options.html1
-rw-r--r--chrome/common/extensions/docs/override.html1
-rw-r--r--chrome/common/extensions/docs/overview.html1
-rw-r--r--chrome/common/extensions/docs/packaging.html1
-rw-r--r--chrome/common/extensions/docs/pageAction.html1
-rw-r--r--chrome/common/extensions/docs/samples.html1
-rw-r--r--chrome/common/extensions/docs/static/external_extensions.html148
-rw-r--r--chrome/common/extensions/docs/tabs.html1
-rw-r--r--chrome/common/extensions/docs/template/api_template.html1
-rw-r--r--chrome/common/extensions/docs/test.html1
-rw-r--r--chrome/common/extensions/docs/themes.html1
-rw-r--r--chrome/common/extensions/docs/tut_debugging.html1
-rw-r--r--chrome/common/extensions/docs/tutorials.html1
-rw-r--r--chrome/common/extensions/docs/windows.html1
-rw-r--r--chrome/common/extensions/docs/xhr.html1
37 files changed, 786 insertions, 0 deletions
diff --git a/chrome/common/extensions/docs/api_index.html b/chrome/common/extensions/docs/api_index.html
index 05c8fdc..8364ce9 100644
--- a/chrome/common/extensions/docs/api_index.html
+++ b/chrome/common/extensions/docs/api_index.html
@@ -160,6 +160,7 @@
<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>
</ul>
</li>
</ul>
diff --git a/chrome/common/extensions/docs/api_other.html b/chrome/common/extensions/docs/api_other.html
index fde127c..badeaab 100644
--- a/chrome/common/extensions/docs/api_other.html
+++ b/chrome/common/extensions/docs/api_other.html
@@ -160,6 +160,7 @@
<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>
</ul>
</li>
</ul>
diff --git a/chrome/common/extensions/docs/autoupdate.html b/chrome/common/extensions/docs/autoupdate.html
index c1ced53..a0fcf30 100644
--- a/chrome/common/extensions/docs/autoupdate.html
+++ b/chrome/common/extensions/docs/autoupdate.html
@@ -160,6 +160,7 @@
<ul>
<li class="leftNavSelected">Autoupdating</li>
<li><a href="packaging.html">Packaging</a></li>
+ <li><a href="external_extensions.html">External Extensions</a></li>
</ul>
</li>
</ul>
diff --git a/chrome/common/extensions/docs/background_pages.html b/chrome/common/extensions/docs/background_pages.html
index 41f124f..acab0db 100644
--- a/chrome/common/extensions/docs/background_pages.html
+++ b/chrome/common/extensions/docs/background_pages.html
@@ -160,6 +160,7 @@
<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>
</ul>
</li>
</ul>
diff --git a/chrome/common/extensions/docs/bookmarks.html b/chrome/common/extensions/docs/bookmarks.html
index c8aeac0..40ba05e 100644
--- a/chrome/common/extensions/docs/bookmarks.html
+++ b/chrome/common/extensions/docs/bookmarks.html
@@ -160,6 +160,7 @@
<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>
</ul>
</li>
</ul>
diff --git a/chrome/common/extensions/docs/browserAction.html b/chrome/common/extensions/docs/browserAction.html
index b8bf382..7fe2b8a 100644
--- a/chrome/common/extensions/docs/browserAction.html
+++ b/chrome/common/extensions/docs/browserAction.html
@@ -160,6 +160,7 @@
<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>
</ul>
</li>
</ul>
diff --git a/chrome/common/extensions/docs/content_scripts.html b/chrome/common/extensions/docs/content_scripts.html
index a6d7702..9130bec 100644
--- a/chrome/common/extensions/docs/content_scripts.html
+++ b/chrome/common/extensions/docs/content_scripts.html
@@ -160,6 +160,7 @@
<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>
</ul>
</li>
</ul>
diff --git a/chrome/common/extensions/docs/devguide.html b/chrome/common/extensions/docs/devguide.html
index b83adb2..bcd8af9 100644
--- a/chrome/common/extensions/docs/devguide.html
+++ b/chrome/common/extensions/docs/devguide.html
@@ -160,6 +160,7 @@
<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>
</ul>
</li>
</ul>
diff --git a/chrome/common/extensions/docs/devtools.html b/chrome/common/extensions/docs/devtools.html
index 4da82e5..80761749 100644
--- a/chrome/common/extensions/docs/devtools.html
+++ b/chrome/common/extensions/docs/devtools.html
@@ -160,6 +160,7 @@
<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>
</ul>
</li>
</ul>
diff --git a/chrome/common/extensions/docs/docs.html b/chrome/common/extensions/docs/docs.html
index 875c843..cfb0794 100644
--- a/chrome/common/extensions/docs/docs.html
+++ b/chrome/common/extensions/docs/docs.html
@@ -160,6 +160,7 @@
<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>
</ul>
</li>
</ul>
diff --git a/chrome/common/extensions/docs/events.html b/chrome/common/extensions/docs/events.html
index c635622..c822e7a 100644
--- a/chrome/common/extensions/docs/events.html
+++ b/chrome/common/extensions/docs/events.html
@@ -160,6 +160,7 @@
<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>
</ul>
</li>
</ul>
diff --git a/chrome/common/extensions/docs/extension.html b/chrome/common/extensions/docs/extension.html
index 58028a4..280a330 100644
--- a/chrome/common/extensions/docs/extension.html
+++ b/chrome/common/extensions/docs/extension.html
@@ -160,6 +160,7 @@
<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>
</ul>
</li>
</ul>
diff --git a/chrome/common/extensions/docs/external_extensions.html b/chrome/common/extensions/docs/external_extensions.html
new file mode 100644
index 0000000..0e8c67b
--- /dev/null
+++ b/chrome/common/extensions/docs/external_extensions.html
@@ -0,0 +1,603 @@
+<!DOCTYPE html><!-- This page is a placeholder for generated extensions api doc. Note:
+ 1) The <head> information in this page is significant, should be uniform
+ across api docs and should be edited only with knowledge of the
+ templating mechanism.
+ 3) All <body>.innerHTML is genereated as an rendering step. If viewed in a
+ browser, it will be re-generated from the template, json schema and
+ authored overview content.
+ 4) The <body>.innerHTML is also generated by an offline step so that this
+ page may easily be indexed by search engines.
+--><html xmlns="http://www.w3.org/1999/xhtml"><head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <link href="css/ApiRefStyles.css" rel="stylesheet" type="text/css">
+ <link href="css/print.css" rel="stylesheet" type="text/css" media="print">
+ <script type="text/javascript" src="../../../third_party/jstemplate/jstemplate_compiled.js">
+ </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">
+ <!-- SUBTEMPLATES: DO NOT MOVE FROM THIS LOCATION -->
+ <!-- In particular, sub-templates that recurse, must be used by allowing
+ jstemplate to make a copy of the template in this section which
+ are not operated on by way of the jsskip="true" -->
+ <div style="display:none">
+
+ <!-- VALUE -->
+ <div id="valueTemplate">
+ <dt>
+ <var>paramName</var>
+ <em>
+
+ <!-- TYPE -->
+ <div style="display:inline">
+ (
+ <span class="optional">optional</span>
+ <span id="typeTemplate">
+ <span>
+ <a> Type</a>
+ </span>
+ <span>
+ <span>
+ array of <span><span></span></span>
+ </span>
+ <span>paramType</span>
+ </span>
+ </span>
+ )
+ </div>
+
+ </em>
+ </dt>
+ <dd class="todo">
+ Undocumented.
+ </dd>
+ <dd>
+ Description of this parameter from the json schema.
+ </dd>
+
+ <!-- OBJECT PROPERTIES -->
+ <dd>
+ <dl>
+ <div>
+ <div>
+ </div>
+ </div>
+ </dl>
+ </dd>
+ </div> <!-- /VALUE -->
+
+ </div> <!-- /SUBTEMPLATES -->
+
+ <a id="top"></a>
+ <div id="skipto">
+ <a href="#gc-pagecontent">Skip to page content</a>
+ <a href="#gc-toc">Skip to main navigation</a>
+ </div>
+ <!-- API HEADER -->
+ <table id="header" width="100%" cellspacing="0" border="0">
+ <tbody><tr>
+ <td valign="middle"><a href="http://code.google.com/"><img src="images/code_labs_logo.gif" height="43" width="161" alt="Google Code Labs" style="border:0; margin:0;"></a></td>
+ <td valign="middle" width="100%" style="padding-left:0.6em;">
+ <form action="http://www.google.com/cse" id="cse" style="margin-top:0.5em">
+ <div id="gsc-search-box">
+ <input type="hidden" name="cx" value="002967670403910741006:61_cvzfqtno">
+ <input type="hidden" name="ie" value="UTF-8">
+ <input type="text" name="q" value="" size="55">
+ <input class="gsc-search-button" type="submit" name="sa" value="Search">
+ <br>
+ <span class="greytext">e.g. "page action" or "tabs"</span>
+ </div>
+ </form>
+
+ <script type="text/javascript" src="http://www.google.com/jsapi"></script>
+ <script type="text/javascript">google.load("elements", "1", {packages: "transliteration"});</script>
+ <script type="text/javascript" src="http://www.google.com/coop/cse/t13n?form=cse&amp;t13n_langs=en"></script>
+ <script type="text/javascript" src="http://www.google.com/coop/cse/brand?form=cse&amp;lang=en"></script>
+ </td>
+ </tr>
+ </tbody></table>
+
+ <div id="codesiteContent" class="">
+
+ <a id="gc-topnav-anchor"></a>
+ <div id="gc-topnav">
+ <h1>Google Chrome Extensions (<a href="http://code.google.com/labs/">Labs</a>)</h1>
+ <ul id="home" class="gc-topnav-tabs">
+ <li id="home_link">
+ <a href="index.html" title="Google Chrome Extensions home page">Home</a>
+ </li>
+ <li id="docs_link">
+ <a href="docs.html" title="Official Google Chrome Extensions documentation">Docs</a>
+ </li>
+ <li id="faq_link">
+ <a href="faq.html" title="Answers to frequently asked questions about Google Chrome Extensions">FAQ</a>
+ </li>
+ <li id="samples_link">
+ <a href="samples.html" title="Sample extensions (with source code)">Samples</a>
+ </li>
+ <li id="group_link">
+ <a href="http://groups.google.com/group/chromium-extensions" title="Google Chrome Extensions developer forum">Group</a>
+ </li>
+ </ul>
+ </div> <!-- end gc-topnav -->
+
+ <div class="g-section g-tpl-170">
+ <!-- SIDENAV -->
+ <div class="g-unit g-first" id="gc-toc">
+ <ul>
+ <li><a href="getstarted.html">Getting Started</a></li>
+ <li><a href="overview.html">Overview</a></li>
+ <li><h2><a href="devguide.html">Developer's Guide</a></h2>
+ <ul>
+ <li>Browser UI
+ <ul>
+ <li><a href="browserAction.html">Browser Actions</a></li>
+ <li><a href="options.html">Options Pages</a></li>
+ <li><a href="override.html">Override Pages</a></li>
+ <li><a href="pageAction.html">Page Actions</a></li>
+ <li><a href="themes.html">Themes</a></li>
+ </ul>
+ </li>
+ <li>Browser Interaction
+ <ul>
+ <li><a href="bookmarks.html">Bookmarks</a></li>
+ <li><a href="events.html">Events</a></li>
+ <li><a href="tabs.html">Tabs</a></li>
+ <li><a href="windows.html">Windows</a></li>
+ </ul>
+ </li>
+ <li>Implementation
+ <ul>
+ <li><a href="background_pages.html">Background Pages</a></li>
+ <li><a href="content_scripts.html">Content Scripts</a></li>
+ <li><a href="xhr.html">Cross-Origin XHR</a></li>
+ <li><a href="messaging.html">Message Passing</a></li>
+ <li><a href="npapi.html">NPAPI Plugins</a></li>
+ </ul>
+ </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>
+ </ul>
+ </li>
+ </ul>
+ </li>
+ <li><h2><a href="tutorials.html">Tutorials</a></h2>
+ <ul>
+ <li><a href="tut_debugging.html">Debugging</a></li>
+ </ul>
+ </li>
+ <li><h2>Reference</h2>
+ <ul>
+ <li>Formats
+ <ul>
+ <li><a href="manifest.html">Manifest Files</a></li>
+ <li><a href="match_patterns.html">Match Patterns</a></li>
+ <!-- <li>Packages (.crx)</li> -->
+ </ul>
+ </li>
+ <li><a href="api_index.html">chrome.* APIs</a></li>
+ <li><a href="api_other.html">Other APIs</a></li>
+ </ul>
+ </li>
+ <li><h2><a href="samples.html">Samples</a></h2></li>
+ </ul>
+ </div>
+
+ <div class="g-unit" id="gc-pagecontent">
+ <div id="pageTitle">
+ <h1 class="page_title">External Extensions</h1>
+ </div>
+ <!-- TABLE OF CONTENTS -->
+ <div id="toc">
+ <h2>Contents</h2>
+ <ol>
+ <li>
+ <a href="#preferences">Using the Preferences File</a>
+ <ol>
+ <li style="display: none; ">
+ <a>h3Name</a>
+ </li>
+ </ol>
+ </li><li>
+ <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>
+ </li>
+ </ol>
+ </li><li>
+ <a href="#faq">FAQ</a>
+ <ol>
+ <li style="display: none; ">
+ <a>h3Name</a>
+ </li>
+ </ol>
+ </li>
+ <li style="display: none; ">
+ <a href="#apiReference">API reference</a>
+ <ol>
+ <li>
+ <a href="#properties">Properties</a>
+ <ol>
+ <li>
+ <a href="#property-anchor">propertyName</a>
+ </li>
+ </ol>
+ </li>
+ <li>
+ <a href="#methods">Methods</a>
+ <ol>
+ <li>
+ <a href="#method-anchor">methodName</a>
+ </li>
+ </ol>
+ </li>
+ <li>
+ <a href="#events">Events</a>
+ <ol>
+ <li>
+ <a href="#event-anchor">eventName</a>
+ </li>
+ </ol>
+ </li>
+ <li>
+ <a href="#types">Types</a>
+ <ol>
+ <li>
+ <a href="#id-anchor">id</a>
+ </li>
+ </ol>
+ </li>
+ </ol>
+ </li>
+ </ol>
+ </div>
+ <!-- /TABLE OF CONTENTS -->
+
+ <!-- STATIC CONTENT PLACEHOLDER -->
+ <div id="static"><div id="pageData-name" class="pageData">External Extensions</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>
+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 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 you
+the extension version is
+<code>1.0</code> and its id is <code>aaaaaaaaaabbbbbbbbbbcccccccccc</code>.
+
+</p><h2 id="preferences">Using the Preferences File</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>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):
+<pre>{
+ "aaaaaaaaaabbbbbbbbbbcccccccccc": {
+ "external_crx": "\\\\server\\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>
+
+
+<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>
+
+<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.
+
+</p><p>To update your extension to a new version,
+update the file, and then update the version
+in the preferences or registry.
+
+</p><p>To uninstall your extension
+(eg if your software is uninstalled),
+remove the metadata from the preferences file
+or registry.
+
+</p><h2 id="faq">FAQ</h2>
+
+<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
+and UNC paths.
+Relative paths are relative
+to the Extensions directory
+(where the external_extensions.json file is located).
+<br>
+<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>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>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>
+
+<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>
+
+
+</p><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, then uninstalling it.
+</p></div>
+
+ <!-- API PAGE -->
+ <div class="apiPage" style="display: none; ">
+ <a name="apiReference"></a>
+ <h2>API reference: chrome.apiname </h2>
+
+ <!-- PROPERTIES -->
+ <div class="apiGroup">
+ <a name="properties"></a>
+ <h3 id="properties">Properties</h3>
+
+ <div>
+ <a></a>
+ <h4>getLastError</h4>
+ <div class="summary">
+ <!-- Note: intentionally longer 80 columns -->
+ <span>chrome.extension</span><span>lastError</span>
+ </div>
+ <div>
+ </div>
+ </div>
+
+ </div> <!-- /apiGroup -->
+
+ <!-- METHODS -->
+ <div class="apiGroup" id="methods">
+ <a name="methods"></a>
+ <h3>Methods</h3>
+
+ <!-- iterates over all functions -->
+ <div class="apiItem">
+ <a></a> <!-- method-anchor -->
+ <h4>method name</h4>
+
+ <div class="summary"><span>void</span>
+ <!-- Note: intentionally longer 80 columns -->
+ <span>chrome.module.methodName</span>(<span><span>, </span><span></span>
+ <var><span></span></var></span>)</div>
+
+ <div class="description">
+ <p class="todo">Undocumented.</p>
+ <p>
+ A description from the json schema def of the function goes here.
+ </p>
+
+ <!-- PARAMETERS -->
+ <h4>Parameters</h4>
+ <dl>
+ <div>
+ <div>
+ </div>
+ </div>
+ </dl>
+
+ <!-- RETURNS -->
+ <h4>Returns</h4>
+ <dl>
+ <div>
+ <div>
+ </div>
+ </div>
+ </dl>
+
+ <!-- CALLBACK -->
+ <div>
+ <div>
+ <h4>Callback function</h4>
+ <p>
+ The callback <em>parameter</em> should specify a function
+ that looks like this:
+ </p>
+ <p>
+ If you specify the <em>callback</em> parameter, it should
+ specify a function that looks like this:
+ </p>
+
+ <!-- Note: intentionally longer 80 columns -->
+ <pre>function(<span>Type param1, Type param2</span>) <span class="subdued">{...}</span>);</pre>
+ <dl>
+ <div>
+ <div>
+ </div>
+ </div>
+ </dl>
+ </div>
+ </div>
+
+ </div> <!-- /description -->
+
+ </div> <!-- /apiItem -->
+
+ </div> <!-- /apiGroup -->
+
+ <!-- EVENTS -->
+ <div class="apiGroup">
+ <a name="events"></a>
+ <h3 id="events">Events</h3>
+
+ <!-- iterates over all events -->
+ <div class="apiItem">
+ <a></a>
+ <h4>event name</h4>
+
+ <div class="summary">
+ <!-- Note: intentionally longer 80 columns -->
+ <span class="subdued">chrome.bookmarks</span><span>onEvent</span><span class="subdued">.addListener</span>(function(<span>Type param1, Type param2</span>) <span class="subdued">{...}</span>);
+ </div>
+
+ <div class="description">
+ <p class="todo">Undocumented.</p>
+ <p>
+ A description from the json schema def of the event goes here.
+ </p>
+
+ <!-- PARAMETERS -->
+ <h4>Parameters</h4>
+ <dl>
+ <div>
+ <div>
+ </div>
+ </div>
+ </dl>
+
+ </div> <!-- /decription -->
+
+ </div> <!-- /apiItem -->
+
+ </div> <!-- /apiGroup -->
+
+ <!-- TYPES -->
+ <div class="apiGroup">
+ <a name="types.sort(sortByName)"></a>
+ <h3 id="types">Types</h3>
+
+ <!-- iterates over all types -->
+ <div class="apiItem">
+ <a></a>
+ <h4>type name</h4>
+
+ <div>
+ </div>
+
+ </div> <!-- /apiItem -->
+
+ </div> <!-- /apiGroup -->
+
+ </div> <!-- /apiPage -->
+ </div> <!-- /gc-pagecontent -->
+ </div> <!-- /g-section -->
+ </div> <!-- /codesiteContent -->
+ <div id="gc-footer" --="">
+ <div class="text">
+ <p>
+ Except as otherwise <a href="http://code.google.com/policies.html#restrictions">noted</a>,
+ the content of this page is licensed under the <a rel="license" href="http://creativecommons.org/licenses/by/3.0/">Creative Commons
+ Attribution 3.0 License</a>, and code samples are licensed under the
+ <a rel="license" href="http://code.google.com/google_bsd_license.html">BSD License</a>.
+ </p>
+ <p>
+ ©2009 Google
+ </p>
+
+<!-- begin analytics -->
+<script src="http://www.google-analytics.com/urchin.js" type="text/javascript"></script>
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript"></script>
+
+<script type="text/javascript">
+ // chrome doc tracking
+ try {
+ var engdocs = _gat._getTracker("YT-10763712-2");
+ engdocs._trackPageview();
+ } catch(err) {}
+
+ // code.google.com site-wide tracking
+ try {
+ _uacct="UA-18071-1";
+ _uanchor=1;
+ _uff=0;
+ urchinTracker();
+ }
+ catch(e) {/* urchinTracker not available. */}
+</script>
+<!-- end analytics -->
+ </div>
+ </div> <!-- /gc-footer -->
+ </div> <!-- /gc-container -->
+</body></html>
diff --git a/chrome/common/extensions/docs/faq.html b/chrome/common/extensions/docs/faq.html
index 9869c27..0de2285 100644
--- a/chrome/common/extensions/docs/faq.html
+++ b/chrome/common/extensions/docs/faq.html
@@ -160,6 +160,7 @@
<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>
</ul>
</li>
</ul>
diff --git a/chrome/common/extensions/docs/getstarted.html b/chrome/common/extensions/docs/getstarted.html
index 859d68c..fc81517 100644
--- a/chrome/common/extensions/docs/getstarted.html
+++ b/chrome/common/extensions/docs/getstarted.html
@@ -160,6 +160,7 @@
<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>
</ul>
</li>
</ul>
diff --git a/chrome/common/extensions/docs/hosting.html b/chrome/common/extensions/docs/hosting.html
index 77424ea..708b114 100644
--- a/chrome/common/extensions/docs/hosting.html
+++ b/chrome/common/extensions/docs/hosting.html
@@ -160,6 +160,7 @@
<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>
</ul>
</li>
</ul>
diff --git a/chrome/common/extensions/docs/i18n.html b/chrome/common/extensions/docs/i18n.html
index 5dd3d30..6e88715 100644
--- a/chrome/common/extensions/docs/i18n.html
+++ b/chrome/common/extensions/docs/i18n.html
@@ -160,6 +160,7 @@
<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>
</ul>
</li>
</ul>
diff --git a/chrome/common/extensions/docs/index.html b/chrome/common/extensions/docs/index.html
index 3469c2a..d0a1259 100644
--- a/chrome/common/extensions/docs/index.html
+++ b/chrome/common/extensions/docs/index.html
@@ -160,6 +160,7 @@
<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>
</ul>
</li>
</ul>
diff --git a/chrome/common/extensions/docs/manifest.html b/chrome/common/extensions/docs/manifest.html
index dbb0c60..660ac56 100644
--- a/chrome/common/extensions/docs/manifest.html
+++ b/chrome/common/extensions/docs/manifest.html
@@ -160,6 +160,7 @@
<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>
</ul>
</li>
</ul>
diff --git a/chrome/common/extensions/docs/match_patterns.html b/chrome/common/extensions/docs/match_patterns.html
index b7407ab..004b8e4 100644
--- a/chrome/common/extensions/docs/match_patterns.html
+++ b/chrome/common/extensions/docs/match_patterns.html
@@ -160,6 +160,7 @@
<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>
</ul>
</li>
</ul>
diff --git a/chrome/common/extensions/docs/messaging.html b/chrome/common/extensions/docs/messaging.html
index e594276..51b69ca 100644
--- a/chrome/common/extensions/docs/messaging.html
+++ b/chrome/common/extensions/docs/messaging.html
@@ -160,6 +160,7 @@
<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>
</ul>
</li>
</ul>
diff --git a/chrome/common/extensions/docs/npapi.html b/chrome/common/extensions/docs/npapi.html
index 6715561..3bfee9c 100644
--- a/chrome/common/extensions/docs/npapi.html
+++ b/chrome/common/extensions/docs/npapi.html
@@ -160,6 +160,7 @@
<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>
</ul>
</li>
</ul>
diff --git a/chrome/common/extensions/docs/options.html b/chrome/common/extensions/docs/options.html
index 8dbc995..f7ce277 100644
--- a/chrome/common/extensions/docs/options.html
+++ b/chrome/common/extensions/docs/options.html
@@ -160,6 +160,7 @@
<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>
</ul>
</li>
</ul>
diff --git a/chrome/common/extensions/docs/override.html b/chrome/common/extensions/docs/override.html
index b75891e..bed82dc 100644
--- a/chrome/common/extensions/docs/override.html
+++ b/chrome/common/extensions/docs/override.html
@@ -160,6 +160,7 @@
<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>
</ul>
</li>
</ul>
diff --git a/chrome/common/extensions/docs/overview.html b/chrome/common/extensions/docs/overview.html
index 613e607..fbdbbfe 100644
--- a/chrome/common/extensions/docs/overview.html
+++ b/chrome/common/extensions/docs/overview.html
@@ -160,6 +160,7 @@
<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>
</ul>
</li>
</ul>
diff --git a/chrome/common/extensions/docs/packaging.html b/chrome/common/extensions/docs/packaging.html
index bb56417..ec987ab 100644
--- a/chrome/common/extensions/docs/packaging.html
+++ b/chrome/common/extensions/docs/packaging.html
@@ -160,6 +160,7 @@
<ul>
<li><a href="autoupdate.html">Autoupdating</a></li>
<li class="leftNavSelected">Packaging</li>
+ <li><a href="external_extensions.html">External Extensions</a></li>
</ul>
</li>
</ul>
diff --git a/chrome/common/extensions/docs/pageAction.html b/chrome/common/extensions/docs/pageAction.html
index 471cc5e..15b693c 100644
--- a/chrome/common/extensions/docs/pageAction.html
+++ b/chrome/common/extensions/docs/pageAction.html
@@ -160,6 +160,7 @@
<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>
</ul>
</li>
</ul>
diff --git a/chrome/common/extensions/docs/samples.html b/chrome/common/extensions/docs/samples.html
index 1a8484f..07c4bbf 100644
--- a/chrome/common/extensions/docs/samples.html
+++ b/chrome/common/extensions/docs/samples.html
@@ -160,6 +160,7 @@
<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>
</ul>
</li>
</ul>
diff --git a/chrome/common/extensions/docs/static/external_extensions.html b/chrome/common/extensions/docs/static/external_extensions.html
new file mode 100644
index 0000000..217e603
--- /dev/null
+++ b/chrome/common/extensions/docs/static/external_extensions.html
@@ -0,0 +1,148 @@
+<div id="pageData-name" class="pageData">External Extensions</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>
+Google Chrome supports two ways of
+installing external extensions:
+using a preferences JSON file,
+or using the Windows registry
+(Windows only).
+
+<p>
+<b>Important:</b> Before you begin,
+make sure you have <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 you
+the extension version is
+<code>1.0</code> and its id is <code>aaaaaaaaaabbbbbbbbbbcccccccccc</code>.
+
+<h2 id="preferences">Using the Preferences File</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>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):
+<pre>{
+ "aaaaaaaaaabbbbbbbbbbcccccccccc": {
+ "external_crx": "\\\\server\\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>
+
+
+<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>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>
+<li>Launch the browser and go to
+chrome://extensions and you should
+see the extension listed.
+</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.
+
+<p>To update your extension to a new version,
+update the file, and then update the version
+in the preferences or registry.
+
+<p>To uninstall your extension
+(eg if your software is uninstalled),
+remove the metadata from the preferences file
+or registry.
+
+<h2 id="faq">FAQ</h2>
+
+<p><b>Can I specify a URL as a path to the external extension?</b>
+<p>Not at this time.
+Chrome only supports absolute/relative local paths
+and UNC paths.
+Relative paths are relative
+to the Extensions directory
+(where the external_extensions.json file is located).
+<br>
+<br>
+
+<p><b>What are some common mistakes when installing with the preferences file?</b>
+<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>Permissions problems on a network share
+</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>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
+</ul>
+
+<br>
+
+<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>
+
+
+<p><b>How do I get off the blacklist?</b>
+<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, then uninstalling it.
diff --git a/chrome/common/extensions/docs/tabs.html b/chrome/common/extensions/docs/tabs.html
index 0c06b95..31dd304 100644
--- a/chrome/common/extensions/docs/tabs.html
+++ b/chrome/common/extensions/docs/tabs.html
@@ -160,6 +160,7 @@
<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>
</ul>
</li>
</ul>
diff --git a/chrome/common/extensions/docs/template/api_template.html b/chrome/common/extensions/docs/template/api_template.html
index df999ab..89453d7 100644
--- a/chrome/common/extensions/docs/template/api_template.html
+++ b/chrome/common/extensions/docs/template/api_template.html
@@ -147,6 +147,7 @@
<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>
</ul>
</li>
</ul>
diff --git a/chrome/common/extensions/docs/test.html b/chrome/common/extensions/docs/test.html
index 09e3bc4..5b49843 100644
--- a/chrome/common/extensions/docs/test.html
+++ b/chrome/common/extensions/docs/test.html
@@ -160,6 +160,7 @@
<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>
</ul>
</li>
</ul>
diff --git a/chrome/common/extensions/docs/themes.html b/chrome/common/extensions/docs/themes.html
index efaa176..42e5512 100644
--- a/chrome/common/extensions/docs/themes.html
+++ b/chrome/common/extensions/docs/themes.html
@@ -160,6 +160,7 @@
<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>
</ul>
</li>
</ul>
diff --git a/chrome/common/extensions/docs/tut_debugging.html b/chrome/common/extensions/docs/tut_debugging.html
index a8ff45a..efcfc92 100644
--- a/chrome/common/extensions/docs/tut_debugging.html
+++ b/chrome/common/extensions/docs/tut_debugging.html
@@ -160,6 +160,7 @@
<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>
</ul>
</li>
</ul>
diff --git a/chrome/common/extensions/docs/tutorials.html b/chrome/common/extensions/docs/tutorials.html
index 834eea5..a9cc396 100644
--- a/chrome/common/extensions/docs/tutorials.html
+++ b/chrome/common/extensions/docs/tutorials.html
@@ -160,6 +160,7 @@
<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>
</ul>
</li>
</ul>
diff --git a/chrome/common/extensions/docs/windows.html b/chrome/common/extensions/docs/windows.html
index 9e084e4..5dacf90 100644
--- a/chrome/common/extensions/docs/windows.html
+++ b/chrome/common/extensions/docs/windows.html
@@ -160,6 +160,7 @@
<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>
</ul>
</li>
</ul>
diff --git a/chrome/common/extensions/docs/xhr.html b/chrome/common/extensions/docs/xhr.html
index 67bca05..24fcc3f 100644
--- a/chrome/common/extensions/docs/xhr.html
+++ b/chrome/common/extensions/docs/xhr.html
@@ -160,6 +160,7 @@
<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>
</ul>
</li>
</ul>