OLD | NEW |
---|---|
1 <h1>Other Deployment Options</h1> | 1 <h1>Alternative Extension Distribution Options</h1> |
2 | 2 |
3 <p> | 3 <p> |
4 Usually, users install their own extensions. | 4 All Chrome extensions must be distributed either directly from the Chrome Web St ore, |
5 using | |
6 <a href="https://developer.chrome.com/webstore/inline_installation">inline insta llation</a>, | |
not at google - send to devlin
2015/05/13 18:23:27
For all of these links, you might as well link to
mkearney1
2015/05/13 18:36:36
Done.
| |
7 or using the mechanisms described below. | |
8 Failure to comply with one of these distribution methods constitutes | |
9 a violation of the | |
10 <a href="https://developer.chrome.com/extensions/single_purpose">Chrome extensio n policy</a> | |
11 and may result in the extension | |
12 and/or the software distributing it to be flagged as | |
13 <a href="https://www.google.com/about/company/unwanted-software-policy.html">unw anted software</a>. | |
14 </p> | |
15 | |
16 <p> | |
17 Usually, users install their own extensions from the Chrome Web Store | |
18 or some other site via | |
19 <a href="https://developer.chrome.com/webstore/inline_installation">inline insta llation</a>. | |
5 But sometimes you might want an extension | 20 But sometimes you might want an extension |
6 to be installed automatically. | 21 to be installed via other means. |
7 Here are two typical cases: | 22 Here are two typical cases: |
8 </p> | 23 </p> |
9 | 24 |
10 <ul> | 25 <ul> |
11 <li> | 26 <li> |
12 An extension is associated with some other software, | 27 An extension is associated with some other software, |
13 and the extension should be installed | 28 and the extension should be installed |
14 whenever the user installs that other software. | 29 whenever the user installs that other software. |
15 The extension could also be uninstalled | |
16 when the user removes that other software. | |
17 </li> | 30 </li> |
18 <li> | 31 <li> |
19 A network admin wants to install the same extensions | 32 A network admin wants to install the same extensions |
20 throughout the company. | 33 throughout their organization. |
21 </li> | 34 </li> |
22 </ul> | 35 </ul> |
23 | 36 |
24 <p> | 37 <p> |
25 An extension that's installed automatically is known as an | 38 An extension that's installed neither from the Chrome West Store |
39 nor as an inline installation is known as an | |
26 <em>external extension</em>. | 40 <em>external extension</em>. |
27 Google Chrome supports two ways of | 41 For developers who want to distribute an extension as part |
28 installing external extensions: | 42 of the installation process for other software, |
43 or for network admins that want to distribute an extension | |
44 throughout their organization, | |
45 Google Chrome supports the following extension installation methods: | |
29 </p> | 46 </p> |
30 | 47 |
31 <ul> | 48 <ul> |
32 <li> Using a preferences JSON file (Mac OS X and Linux only)</li> | 49 <li> Using a preferences JSON file (for Mac OS X and Linux only)</li> |
33 <li> Using the Windows registry (Windows only) </li> | 50 <li> Using the Windows registry (for Windows only) </li> |
34 </ul> | 51 </ul> |
35 | 52 |
36 <p> | 53 <p> |
37 Both ways support installing an extension hosted at an | 54 Both ways support installing an extension hosted at an |
38 <code>update_URL</code>. | 55 <code>update_URL</code>. |
39 In the Windows registry, | 56 On Windows and Mac, |
40 the <code>update_URL</code> must point to the Chrome Web Store | 57 the <code>update_URL</code> must point to the Chrome Web Store |
41 where the extension is hosted. | 58 where the extension must be hosted. |
42 </p> | 59 </p> |
43 | 60 |
44 <p> | 61 <p> |
45 In the preferences file, | 62 The preferences file on Linux can point |
46 it can point to your own server where you are hosting the extension | 63 to your own server where you are hosting the extension |
47 (see <a href="autoupdate#update_url">autoupdating</a>). | 64 (see <a href="autoupdate#update_url">autoupdating</a>). |
48 The preferences JSON file also supports installing | 65 The preferences JSON file also supports installing |
49 an extension from a <code>.crx</code> extension | 66 an extension from a <code>.crx</code> extension |
50 file on the user's computer | 67 file on the user's Linux computer |
51 (see <a href="hosting">hosting</a>). | 68 (see <a href="hosting">hosting</a>). |
52 </p> | 69 </p> |
53 | 70 |
54 | 71 |
55 <p class="note"> | 72 <p class="note"> |
56 <b>Install extensions from your website:</b> | 73 <b>Install extensions from your website:</b> |
57 The safest option for your users is to publish your extension | 74 Among these methods, |
75 the safest option for your users is to publish your extension | |
58 in the Chrome Web Store. | 76 in the Chrome Web Store. |
59 Instead of hosting your own extension, | 77 Instead of hosting your own extension, |
60 publish it in the store, and link to the store install using | 78 publish it in the store, and provide an |
61 <a href="https://developers.google.com/chrome/web-store/docs/inline_installation ">inline installation</a>. | 79 <a href="https://developers.google.com/chrome/web-store/docs/inline_installation ">inline installation</a> link from your website. |
62 </p> | 80 </p> |
63 | 81 |
64 <h2 id="prereqs">Before you begin</h2> | 82 <h2 id="prereqs">Before you begin</h2> |
65 | 83 |
66 <p> | 84 <p> |
67 First, <a href="/webstore/publish">publish</a> | 85 First, <a href="/webstore/publish">publish</a> |
68 the extension in the Chrome Web Store, | 86 the extension in the Chrome Web Store, |
69 or package a <a href="packaging"><code>.crx</code> file</a> | 87 or package a <a href="packaging"><code>.crx</code> file</a> |
70 and make sure that it installs successfully. | 88 and make sure that it installs successfully. |
71 </p> | 89 </p> |
72 | 90 |
73 | 91 |
74 <p class="warning"> | 92 <p class="warning"> |
75 <b>Windows installs must come from Chrome Web Store:</b><br> | 93 <b>Windows and Mac installs must come from Chrome Web Store:</b><br> |
76 As of Chrome 33, | 94 As of Chrome 33, |
77 no external installs are allowed from a path to a local <code>.crx</code> | 95 no external installs are allowed from a path to a local <code>.crx</code> on Win dows |
78 (see <a href="http://blog.chromium.org/2013/11/protecting-windows-users-from-mal icious.html">Protecting Windows users from malicious extensions</a>). | 96 (see <a href="http://blog.chromium.org/2013/11/protecting-windows-users-from-mal icious.html">Protecting Windows users from malicious extensions</a>). |
97 As of Chrome 44, | |
98 no external installs are allowed from a path to a local .crx on Mac | |
99 (see <a href="http://blog.chromium.org/2015/05/continuing-to-protect-chrome-user s-from.html">Continuing to protect Chrome users from malicious extensions</a>). | |
79 </p> | 100 </p> |
80 | 101 |
81 <p> | 102 <p> |
82 If installing from an | 103 If installing from an |
83 <a href="autoupdate#update_url">update URL</a>, ensure that the extension | 104 <a href="autoupdate#update_url">update URL</a>, ensure that the extension |
84 is properly <a href="hosting">hosted</a>. | 105 is properly <a href="hosting">hosted</a>. |
85 </p> | 106 </p> |
86 | 107 |
87 <p> | 108 <p> |
88 Before you edit the preferences file or the registry, | 109 Before you edit the preferences file or the registry, |
(...skipping 19 matching lines...) Expand all Loading... | |
108 | 129 |
109 <br> | 130 <br> |
110 | 131 |
111 <p class="note"> | 132 <p class="note"> |
112 <b>Mac OS X and Linux only:</b> | 133 <b>Mac OS X and Linux only:</b> |
113 Do not use the preferences file for Windows. | 134 Do not use the preferences file for Windows. |
114 Use <a href="#registry">Windows registry</a> instead. | 135 Use <a href="#registry">Windows registry</a> instead. |
115 </p> | 136 </p> |
116 | 137 |
117 <ol> | 138 <ol> |
118 <li>If you are installing from a file, make the <code>.crx</code> extension | 139 <li>If you are installing from a file on Linux, make the <code>.crx</code> exten sion |
119 file available to the machine you want to install the extension on. | 140 file available to the machine you want to install the extension on. |
120 (Copy it to a local directory or to a network share for example, | 141 (Copy it to a local directory or to a network share for example, |
121 <code>\\server\share\extension.crx</code> | 142 <code>\\server\share\extension.crx</code> |
122 or <code>/home/share/extension.crx</code>.) | 143 or <code>/home/share/extension.crx</code>.) |
123 </li> | 144 </li> |
124 | 145 |
125 <li>Create a file with the following name in one of the folders listed below: | 146 <li>Create a file with the following name in one of the folders listed below: |
126 <code>aaaaaaaaaabbbbbbbbbbcccccccccc.json</code> where the file name (without the extension) | 147 <code>aaaaaaaaaabbbbbbbbbbcccccccccc.json</code> where the file name (without the extension) |
127 corresponds to your extension's ID. | 148 corresponds to your extension's ID. |
128 The location depends on the operating system. | 149 The location depends on the operating system. |
(...skipping 12 matching lines...) Expand all Loading... | |
141 <dd> <code>/opt/google/chrome/extensions/</code> <br> | 162 <dd> <code>/opt/google/chrome/extensions/</code> <br> |
142 </dd> | 163 </dd> |
143 <dd> <code>/usr/share/google-chrome/extensions/</code> <br> | 164 <dd> <code>/usr/share/google-chrome/extensions/</code> <br> |
144 <b>Note:</b> Use <code>chmod</code> if necessary | 165 <b>Note:</b> Use <code>chmod</code> if necessary |
145 to make sure that the <code>aaaaaaaaaabbbbbbbbbbcccccccccc.json</code> files | 166 to make sure that the <code>aaaaaaaaaabbbbbbbbbbcccccccccc.json</code> files |
146 are world-readable. | 167 are world-readable. |
147 </dd> | 168 </dd> |
148 </dl> | 169 </dl> |
149 </li> | 170 </li> |
150 | 171 |
151 <li>If you are installing from a file, specify the extension's location and vers ion with fields | 172 <li>Linux only: If you are installing from a file, specify the extension's locat ion and version with fields |
152 named "external_crx" and "external_version" in the file created above. | 173 named "external_crx" and "external_version" in the file created above. |
153 <p> | 174 <ul> |
154 Example: | 175 <li>Example:</li> |
176 <li> | |
155 <pre> | 177 <pre> |
156 { | 178 { |
157 "external_crx": "/home/share/extension.crx", | 179 "external_crx": "/home/share/extension.crx", |
158 "external_version": "1.0" | 180 "external_version": "1.0" |
159 } | 181 } |
160 </pre> | 182 </pre> |
161 </p> | 183 </li> |
162 <p class="note"> | 184 <li> |
163 <b>Note:</b> | 185 <b>Note:</b> |
164 You need to escape | 186 You need to escape |
165 each <code>\</code> character in the location. | 187 each <code>\</code> character in the location. |
166 For example, | 188 For example, |
167 <code>\\server\share\extension.crx</code> would be | 189 <code>\\server\share\extension.crx</code> would be |
168 <code>"\\\\server\\share\\extension.crx"</code>. | 190 <code>"\\\\server\\share\\extension.crx"</code>. |
169 </p> | 191 </li> |
170 <p> | 192 </ul> |
171 <p> | 193 </li> |
172 If you are installing from an update URL, specify the extension's update URL | 194 |
173 with field name "external_update_url". | 195 <li>If you are installing from an update URL, specify the extension's update URL |
174 </p> | 196 with field name "external_update_url".</li> |
175 Example: | 197 |
176 <pre>{ | 198 <li> |
177 "external_update_url": "http://myhost.com/mytestextension/updates.xml" | 199 Example of installation from local .crx file (Linux only): |
178 }</pre> | 200 <ol> |
179 <p> | 201 <li> |
202 <pre> | |
203 { | |
204 "external_update_url": "http://myhost.com/mytestextension/updates.xml" | |
205 } | |
206 </pre> | |
207 </li> | |
208 </ol> | |
209 </li> | |
210 | |
211 <li> | |
212 Example of installation from the Chrome Webstore (Mac and Linux): | |
213 <ol> | |
214 <li> | |
215 <pre> | |
216 { | |
217 "external_update_url": "https://clients2.google.com/service/update2/crx" | |
218 } | |
219 </pre> | |
220 </li> | |
221 </ol> | |
222 </li> | |
223 | |
224 <li> | |
180 If you would like to install extension only for some browser locales, | 225 If you would like to install extension only for some browser locales, |
181 you can list supported locales in field name "supported_locale". Locale may | 226 you can list supported locales in field name "supported_locale". Locale may |
182 specify parent locale like "en", in this case the extension will be | 227 specify parent locale like "en", in this case the extension will be |
183 installed for all English locales like "en-US", "en-GB", etc. | 228 installed for all English locales like "en-US", "en-GB", etc. |
184 If another browser locale is selected that is not supported by the extension, | 229 If another browser locale is selected that is not supported by the extension, |
185 the external extensions will be uninstalled. If "supported_locales" list | 230 the external extensions will be uninstalled. If "supported_locales" list |
186 is missing, the extension will be installed for any locale. | 231 is missing, the extension will be installed for any locale. |
187 </p> | 232 <ul> |
188 Example: | 233 <li>Example:</li> |
189 <pre>{ | 234 <li> |
190 "external_update_url": "http://myhost.com/mytestextension/updates.xml", | 235 <pre> |
191 "supported_locales": [ "en", "fr", "de" ] | 236 { |
192 }</pre> | 237 "external_update_url": "https://clients2.google.com/service/update2/crx", |
238 "supported_locales": [ "en", "fr", "de" ] | |
239 } | |
240 </pre> | |
241 </li> | |
242 </ul> | |
193 </li> | 243 </li> |
194 <li>Save the JSON file.</li> | 244 <li>Save the JSON file.</li> |
195 <li>Launch Google Chrome and go to <b>chrome://extensions</b>; | 245 <li>Launch Google Chrome and go to <b>chrome://extensions</b>; |
196 you should see the extension listed. </li> | 246 you should see the extension listed. </li> |
197 </ol> | 247 </ol> |
198 | 248 |
199 <p class="note"> | 249 <p class="note"> |
200 <b>Note:</b> | 250 <b>Note:</b> |
201 Previous versions of Google Chrome used an | 251 Previous versions of Google Chrome used an |
202 <code>external_extensions.json</code> file to specify which extensions to | 252 <code>external_extensions.json</code> file to specify which extensions to |
(...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
337 external extension is blacklisted. </p> | 387 external extension is blacklisted. </p> |
338 | 388 |
339 <p><b>How do I get off the blacklist?</b> </p> | 389 <p><b>How do I get off the blacklist?</b> </p> |
340 <p>If the user uninstalls your extension, you should respect that | 390 <p>If the user uninstalls your extension, you should respect that |
341 decision. However, if you (the developer) accidentally uninstalled | 391 decision. However, if you (the developer) accidentally uninstalled |
342 your extension through the UI, | 392 your extension through the UI, |
343 you can remove the blacklist tag | 393 you can remove the blacklist tag |
344 by installing the extension normally | 394 by installing the extension normally |
345 through the UI, and then uninstalling it. </p> | 395 through the UI, and then uninstalling it. </p> |
346 | 396 |
OLD | NEW |