OLD | NEW |
1 <div id="pageData-name" class="pageData">External Extensions</div> | 1 <div id="pageData-name" class="pageData">External Extensions</div> |
2 <div id="pageData-showTOC" class="pageData">true</div> | 2 <div id="pageData-showTOC" class="pageData">true</div> |
3 | 3 |
4 <p> | 4 <p> |
5 Google Chrome implements a mechanism | 5 Google Chrome implements a mechanism |
6 to detect when an external extension | 6 to detect when an external extension |
7 needs to be installed. | 7 needs to be installed. |
8 Typically, this could be leveraged | 8 Typically, this could be leveraged |
9 by 3rd party vendors | 9 by 3rd party vendors |
10 to install an extension whenever | 10 to install an extension whenever |
11 the user installs their software. | 11 the user installs their software. |
12 Another use case includes network admins, | 12 Another use case includes network admins, |
13 who want to install the same extensions | 13 who want to install the same extensions |
14 throughout their company. | 14 throughout their company. |
15 | 15 |
16 <p> | 16 <p> |
17 Google Chrome supports two ways of | 17 Google Chrome supports two ways of |
18 installing external extensions: | 18 installing external extensions: |
19 using a preferences JSON file, | 19 using a preferences JSON file, |
20 or using the Windows registry | 20 or using the Windows registry |
21 (Windows only). | 21 (Windows only). |
22 | 22 |
23 <p> | 23 <p> |
24 <b>Important:</b> Before you begin, | 24 <b>Important:</b> Before you begin, |
25 make sure you have <a href="packaging.html">packaged | 25 make sure you have a <a href="packaging.html">packaged |
26 crx file</a> that installs successfully, | 26 crx file</a> that installs successfully, |
27 and make a note of both the version | 27 and make a note of both the version |
28 of the extension and its id (see chrome://extensions/). | 28 of the extension and its id (see chrome://extensions/). |
29 For the rest of this text, we'll assume you | 29 For the rest of this text, we'll assume |
30 the extension version is | 30 the extension version is |
31 <code>1.0</code> and its id is <code>aaaaaaaaaabbbbbbbbbbcccccccccc</code>. | 31 <code>1.0</code> and its id is <code>aaaaaaaaaabbbbbbbbbbcccccccccc</code>. |
32 | 32 |
33 <h2 id="preferences">Using the Preferences File</h2> | 33 <h2 id="preferences">Using the Preferences File</h2> |
34 | 34 |
35 <ol> | 35 <ol> |
36 <li>Make the .crx extension file available | 36 <li>Make the .crx extension file available |
37 to the machine you want to install the extension | 37 to the machine you want to install the extension |
38 on (copy it to a local directory | 38 on (copy it to a local directory |
39 or to a network share, ie. <code>\\server\share\extension.crx</code>). | 39 or to a network share, ie. <code>\\server\share\extension.crx</code>). |
40 <li>Locate the external_extensions.json file under the Chrome | 40 <li>Locate the external_extensions.json file under the Chrome |
41 installation directory and add the following key inside | 41 installation directory and add the following key inside |
42 the curly brackets (note the extra escaping for the slashes, | 42 the curly brackets (note the extra escaping for the slashes, |
43 which is also required when specifying local directories): | 43 which is also required when specifying local directories): |
44 <pre>{ | 44 <pre>{ |
45 "aaaaaaaaaabbbbbbbbbbcccccccccc": { | 45 "aaaaaaaaaabbbbbbbbbbcccccccccc": { |
46 "external_crx": "\\\\server\\share\\extension.crx", | 46 "external_crx": "\\\\server\\share\\extension.crx", |
47 "external_version": "1.0" | 47 "external_version": "1.0" |
48 } | 48 } |
49 }</pre> | 49 }</pre> |
(...skipping 15 matching lines...) Expand all Loading... |
65 32 bit Windows: <code>HKEY_LOCAL_MACHINE\Software\Google\Chrome\Extensions</code
><br> | 65 32 bit Windows: <code>HKEY_LOCAL_MACHINE\Software\Google\Chrome\Extensions</code
><br> |
66 64 bit Windows: <code>HKEY_LOCAL_MACHINE\Software\Wow6432Node\Google\Chrome\Exte
nsions</code> | 66 64 bit Windows: <code>HKEY_LOCAL_MACHINE\Software\Wow6432Node\Google\Chrome\Exte
nsions</code> |
67 <li>Create a new key (folder) | 67 <li>Create a new key (folder) |
68 under the Extensions key with the | 68 under the Extensions key with the |
69 same name as the id of your extension (<code>aaaaaaaaaabbbbbbbbbbcccccccccc</cod
e>). | 69 same name as the id of your extension (<code>aaaaaaaaaabbbbbbbbbbcccccccccc</cod
e>). |
70 <li>Create two string values (<code>REG_SZ</code>):<br> | 70 <li>Create two string values (<code>REG_SZ</code>):<br> |
71 path: <code>\\server\share\extension.crx</code><br> | 71 path: <code>\\server\share\extension.crx</code><br> |
72 version: <code>1.0</code> | 72 version: <code>1.0</code> |
73 <li>Launch the browser and go to | 73 <li>Launch the browser and go to |
74 chrome://extensions and you should | 74 chrome://extensions and you should |
75 see the extension listed. | 75 see the extension listed. |
76 </ol> | 76 </ol> |
77 | 77 |
78 <h2 id="updating">Updating and Uninstalling</h2> | 78 <h2 id="updating">Updating and Uninstalling</h2> |
79 | 79 |
80 <p>Google Chrome scans the metadata entries | 80 <p>Google Chrome scans the metadata entries |
81 in the preferences and registry | 81 in the preferences and registry |
82 each time the browser starts, and makes | 82 each time the browser starts, and makes |
83 any necessary changes to the installed | 83 any necessary changes to the installed |
84 external extensions. | 84 external extensions. |
85 | 85 |
86 <p>To update your extension to a new version, | 86 <p>To update your extension to a new version, |
87 update the file, and then update the version | 87 update the file, and then update the version |
88 in the preferences or registry. | 88 in the preferences or registry. |
89 | 89 |
90 <p>To uninstall your extension | 90 <p>To uninstall your extension |
91 (eg if your software is uninstalled), | 91 (eg if your software is uninstalled), |
92 remove the metadata from the preferences file | 92 remove the metadata from the preferences file |
93 or registry. | 93 or registry. |
94 | 94 |
95 <h2 id="faq">FAQ</h2> | 95 <h2 id="faq">FAQ</h2> |
96 | 96 |
97 <p><b>Can I specify a URL as a path to the external extension?</b> | 97 <p><b>Can I specify a URL as a path to the external extension?</b> |
98 <p>Not at this time. | 98 <p>Not at this time. |
99 Chrome only supports absolute/relative local paths | 99 Chrome only supports absolute/relative local paths |
100 and UNC paths. | 100 and UNC paths. |
101 Relative paths are relative | 101 Relative paths are relative |
102 to the Extensions directory | 102 to the Extensions directory |
103 (where the external_extensions.json file is located). | 103 (where the external_extensions.json file is located). |
104 <br> | 104 <br> |
105 <br> | 105 <br> |
106 | 106 |
107 <p><b>What are some common mistakes when installing with the preferences file?</
b> | 107 <p><b>What are some common mistakes when installing with the preferences file?</
b> |
108 <ul> | 108 <ul> |
109 <li>Not specifying the same id/version | 109 <li>Not specifying the same id/version |
110 as the one listed in the .crx | 110 as the one listed in the .crx |
111 <li>external_extension.json is not in the right location | 111 <li>external_extension.json is not in the right location |
112 <li>Syntax error in json file | 112 <li>Syntax error in json file |
113 (forgetting to separate entries with comma or | 113 (forgetting to separate entries with comma or |
114 leaving a trailing comma somewhere) | 114 leaving a trailing comma somewhere) |
115 <li>Extra curly brackets around the top level dictionary | 115 <li>Extra curly brackets around the top level dictionary |
116 <li>JSON file entry points to the wrong path | 116 <li>JSON file entry points to the wrong path |
117 to the .crx (or path specified but no filename) | 117 to the .crx (or path specified but no filename) |
| 118 <li>Backslashes in UNC path not escaped (eg <code>\\server\share\file</code> (in
correct), instead of <code>\\\\server\\share\\extension</code> (correct) |
118 <li>Permissions problems on a network share | 119 <li>Permissions problems on a network share |
119 </ul> | 120 </ul> |
120 | 121 |
121 <br> | 122 <br> |
122 | 123 |
123 <p><b>What are some common mistakes when installing with the registry?</b> | 124 <p><b>What are some common mistakes when installing with the registry?</b> |
124 <ul> | 125 <ul> |
125 <li>Not specifying the same id/version as the one listed in the .crx | 126 <li>Not specifying the same id/version as the one listed in the .crx |
126 <li>Key created in the wrong location in the registry | 127 <li>Key created in the wrong location in the registry |
127 <li>Registry entry points to the wrong path to the .crx (or path specified but n
o filename) | 128 <li>Registry entry points to the wrong path to the .crx (or path specified but n
o filename) |
128 <li>Backslashes in UNC path not escaped (eg <code>\\server\share\file</code> (in
correct), instead of <code>\\\\server\\share\\extension</code> (correct) | |
129 <li>Permissions problems on a network share | 129 <li>Permissions problems on a network share |
130 </ul> | 130 </ul> |
131 | 131 |
132 <br> | 132 <br> |
133 | 133 |
134 <p><b>What if the user uninstalls the extension?</b> | 134 <p><b>What if the user uninstalls the extension?</b> |
135 <p>If the user uninstalls the extension through the UI, it will no | 135 <p>If the user uninstalls the extension through the UI, it will no |
136 longer be installed or updated on each startup. In other words, the | 136 longer be installed or updated on each startup. In other words, the |
137 external extension is blacklisted. | 137 external extension is blacklisted. |
138 | 138 |
139 <br><br> | 139 <br><br> |
140 | 140 |
141 | 141 |
142 <p><b>How do I get off the blacklist?</b> | 142 <p><b>How do I get off the blacklist?</b> |
143 <p>If the user uninstalls your extension, you should respect that | 143 <p>If the user uninstalls your extension, you should respect that |
144 decision. However, if you (the developer) accidentally uninstalled | 144 decision. However, if you (the developer) accidentally uninstalled |
145 your extension through the UI, | 145 your extension through the UI, |
146 you can remove the blacklist tag | 146 you can remove the blacklist tag |
147 by installing the extension normally | 147 by installing the extension normally |
148 through the UI, then uninstalling it. | 148 through the UI, and then uninstalling it. |
OLD | NEW |