OLD | NEW |
1 <!DOCTYPE html><!-- This page is a placeholder for generated extensions api doc.
Note: | 1 <!DOCTYPE html><!-- This page is a placeholder for generated extensions api doc.
Note: |
2 1) The <head> information in this page is significant, should be uniform | 2 1) The <head> information in this page is significant, should be uniform |
3 across api docs and should be edited only with knowledge of the | 3 across api docs and should be edited only with knowledge of the |
4 templating mechanism. | 4 templating mechanism. |
5 3) All <body>.innerHTML is genereated as an rendering step. If viewed in a | 5 3) All <body>.innerHTML is genereated as an rendering step. If viewed in a |
6 browser, it will be re-generated from the template, json schema and | 6 browser, it will be re-generated from the template, json schema and |
7 authored overview content. | 7 authored overview content. |
8 4) The <body>.innerHTML is also generated by an offline step so that this | 8 4) The <body>.innerHTML is also generated by an offline step so that this |
9 page may easily be indexed by search engines. | 9 page may easily be indexed by search engines. |
10 --><html xmlns="http://www.w3.org/1999/xhtml"><head> | 10 --><html xmlns="http://www.w3.org/1999/xhtml"><head> |
(...skipping 133 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
144 <li><a href="events.html">Events</a></li> | 144 <li><a href="events.html">Events</a></li> |
145 <li><a href="tabs.html">Tabs</a></li> | 145 <li><a href="tabs.html">Tabs</a></li> |
146 <li><a href="windows.html">Windows</a></li> | 146 <li><a href="windows.html">Windows</a></li> |
147 </ul> | 147 </ul> |
148 </li> | 148 </li> |
149 <li>Implementation | 149 <li>Implementation |
150 <ul> | 150 <ul> |
151 <li><a href="background_pages.html">Background Pages</a></li> | 151 <li><a href="background_pages.html">Background Pages</a></li> |
152 <li><a href="content_scripts.html">Content Scripts</a></li> | 152 <li><a href="content_scripts.html">Content Scripts</a></li> |
153 <li><a href="xhr.html">Cross-Origin XHR</a></li> | 153 <li><a href="xhr.html">Cross-Origin XHR</a></li> |
| 154 <li><a href="i18n.html">Internationalization</a></li> |
154 <li><a href="messaging.html">Message Passing</a></li> | 155 <li><a href="messaging.html">Message Passing</a></li> |
155 <li><a href="npapi.html">NPAPI Plugins</a></li> | 156 <li><a href="npapi.html">NPAPI Plugins</a></li> |
156 </ul> | 157 </ul> |
157 </li> | 158 </li> |
158 <li>Finishing | 159 <li>Finishing |
159 <ul> | 160 <ul> |
160 <li><a href="autoupdate.html">Autoupdating</a></li> | 161 <li><a href="autoupdate.html">Autoupdating</a></li> |
161 <li><a href="packaging.html">Packaging</a></li> | 162 <li><a href="packaging.html">Packaging</a></li> |
162 <li class="leftNavSelected">External Extensions</li> | 163 <li class="leftNavSelected">External Extensions</li> |
163 </ul> | 164 </ul> |
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
271 <p> | 272 <p> |
272 Google Chrome implements a mechanism | 273 Google Chrome implements a mechanism |
273 to detect when an external extension | 274 to detect when an external extension |
274 needs to be installed. | 275 needs to be installed. |
275 Typically, this could be leveraged | 276 Typically, this could be leveraged |
276 by 3rd party vendors | 277 by 3rd party vendors |
277 to install an extension whenever | 278 to install an extension whenever |
278 the user installs their software. | 279 the user installs their software. |
279 Another use case includes network admins, | 280 Another use case includes network admins, |
280 who want to install the same extensions | 281 who want to install the same extensions |
281 throughout their company. | 282 throughout their company. |
282 | 283 |
283 </p><p> | 284 </p><p> |
284 Google Chrome supports two ways of | 285 Google Chrome supports two ways of |
285 installing external extensions: | 286 installing external extensions: |
286 using a preferences JSON file, | 287 using a preferences JSON file, |
287 or using the Windows registry | 288 or using the Windows registry |
288 (Windows only). | 289 (Windows only). |
289 | 290 |
290 </p><p> | 291 </p><p> |
291 <b>Important:</b> Before you begin, | 292 <b>Important:</b> Before you begin, |
292 make sure you have <a href="packaging.html">packaged | 293 make sure you have a <a href="packaging.html">packaged |
293 crx file</a> that installs successfully, | 294 crx file</a> that installs successfully, |
294 and make a note of both the version | 295 and make a note of both the version |
295 of the extension and its id (see chrome://extensions/). | 296 of the extension and its id (see chrome://extensions/). |
296 For the rest of this text, we'll assume you | 297 For the rest of this text, we'll assume |
297 the extension version is | 298 the extension version is |
298 <code>1.0</code> and its id is <code>aaaaaaaaaabbbbbbbbbbcccccccccc</code>. | 299 <code>1.0</code> and its id is <code>aaaaaaaaaabbbbbbbbbbcccccccccc</code>. |
299 | 300 |
300 </p><h2 id="preferences">Using the Preferences File</h2> | 301 </p><h2 id="preferences">Using the Preferences File</h2> |
301 | 302 |
302 <ol> | 303 <ol> |
303 <li>Make the .crx extension file available | 304 <li>Make the .crx extension file available |
304 to the machine you want to install the extension | 305 to the machine you want to install the extension |
305 on (copy it to a local directory | 306 on (copy it to a local directory |
306 or to a network share, ie. <code>\\server\share\extension.crx</code>). | 307 or to a network share, ie. <code>\\server\share\extension.crx</code>). |
307 </li><li>Locate the external_extensions.json file under the Chrome | 308 </li><li>Locate the external_extensions.json file under the Chrome |
308 installation directory and add the following key inside | 309 installation directory and add the following key inside |
309 the curly brackets (note the extra escaping for the slashes, | 310 the curly brackets (note the extra escaping for the slashes, |
310 which is also required when specifying local directories): | 311 which is also required when specifying local directories): |
311 <pre>{ | 312 <pre>{ |
312 "aaaaaaaaaabbbbbbbbbbcccccccccc": { | 313 "aaaaaaaaaabbbbbbbbbbcccccccccc": { |
313 "external_crx": "\\\\server\\share\\extension.crx", | 314 "external_crx": "\\\\server\\share\\extension.crx", |
314 "external_version": "1.0" | 315 "external_version": "1.0" |
315 } | 316 } |
316 }</pre> | 317 }</pre> |
(...skipping 15 matching lines...) Expand all Loading... |
332 32 bit Windows: <code>HKEY_LOCAL_MACHINE\Software\Google\Chrome\Extensions</code
><br> | 333 32 bit Windows: <code>HKEY_LOCAL_MACHINE\Software\Google\Chrome\Extensions</code
><br> |
333 64 bit Windows: <code>HKEY_LOCAL_MACHINE\Software\Wow6432Node\Google\Chrome\Exte
nsions</code> | 334 64 bit Windows: <code>HKEY_LOCAL_MACHINE\Software\Wow6432Node\Google\Chrome\Exte
nsions</code> |
334 </li><li>Create a new key (folder) | 335 </li><li>Create a new key (folder) |
335 under the Extensions key with the | 336 under the Extensions key with the |
336 same name as the id of your extension (<code>aaaaaaaaaabbbbbbbbbbcccccccccc</cod
e>). | 337 same name as the id of your extension (<code>aaaaaaaaaabbbbbbbbbbcccccccccc</cod
e>). |
337 </li><li>Create two string values (<code>REG_SZ</code>):<br> | 338 </li><li>Create two string values (<code>REG_SZ</code>):<br> |
338 path: <code>\\server\share\extension.crx</code><br> | 339 path: <code>\\server\share\extension.crx</code><br> |
339 version: <code>1.0</code> | 340 version: <code>1.0</code> |
340 </li><li>Launch the browser and go to | 341 </li><li>Launch the browser and go to |
341 chrome://extensions and you should | 342 chrome://extensions and you should |
342 see the extension listed. | 343 see the extension listed. |
343 </li></ol> | 344 </li></ol> |
344 | 345 |
345 <h2 id="updating">Updating and Uninstalling</h2> | 346 <h2 id="updating">Updating and Uninstalling</h2> |
346 | 347 |
347 <p>Google Chrome scans the metadata entries | 348 <p>Google Chrome scans the metadata entries |
348 in the preferences and registry | 349 in the preferences and registry |
349 each time the browser starts, and makes | 350 each time the browser starts, and makes |
350 any necessary changes to the installed | 351 any necessary changes to the installed |
351 external extensions. | 352 external extensions. |
352 | 353 |
353 </p><p>To update your extension to a new version, | 354 </p><p>To update your extension to a new version, |
354 update the file, and then update the version | 355 update the file, and then update the version |
355 in the preferences or registry. | 356 in the preferences or registry. |
356 | 357 |
357 </p><p>To uninstall your extension | 358 </p><p>To uninstall your extension |
358 (eg if your software is uninstalled), | 359 (eg if your software is uninstalled), |
359 remove the metadata from the preferences file | 360 remove the metadata from the preferences file |
360 or registry. | 361 or registry. |
361 | 362 |
362 </p><h2 id="faq">FAQ</h2> | 363 </p><h2 id="faq">FAQ</h2> |
363 | 364 |
364 <p><b>Can I specify a URL as a path to the external extension?</b> | 365 <p><b>Can I specify a URL as a path to the external extension?</b> |
365 </p><p>Not at this time. | 366 </p><p>Not at this time. |
366 Chrome only supports absolute/relative local paths | 367 Chrome only supports absolute/relative local paths |
367 and UNC paths. | 368 and UNC paths. |
368 Relative paths are relative | 369 Relative paths are relative |
369 to the Extensions directory | 370 to the Extensions directory |
370 (where the external_extensions.json file is located). | 371 (where the external_extensions.json file is located). |
371 <br> | 372 <br> |
372 <br> | 373 <br> |
373 | 374 |
374 </p><p><b>What are some common mistakes when installing with the preferences fil
e?</b> | 375 </p><p><b>What are some common mistakes when installing with the preferences fil
e?</b> |
375 </p><ul> | 376 </p><ul> |
376 <li>Not specifying the same id/version | 377 <li>Not specifying the same id/version |
377 as the one listed in the .crx | 378 as the one listed in the .crx |
378 </li><li>external_extension.json is not in the right location | 379 </li><li>external_extension.json is not in the right location |
379 </li><li>Syntax error in json file | 380 </li><li>Syntax error in json file |
380 (forgetting to separate entries with comma or | 381 (forgetting to separate entries with comma or |
381 leaving a trailing comma somewhere) | 382 leaving a trailing comma somewhere) |
382 </li><li>Extra curly brackets around the top level dictionary | 383 </li><li>Extra curly brackets around the top level dictionary |
383 </li><li>JSON file entry points to the wrong path | 384 </li><li>JSON file entry points to the wrong path |
384 to the .crx (or path specified but no filename) | 385 to the .crx (or path specified but no filename) |
| 386 </li><li>Backslashes in UNC path not escaped (eg <code>\\server\share\file</code
> (incorrect), instead of <code>\\\\server\\share\\extension</code> (correct) |
385 </li><li>Permissions problems on a network share | 387 </li><li>Permissions problems on a network share |
386 </li></ul> | 388 </li></ul> |
387 | 389 |
388 <br> | 390 <br> |
389 | 391 |
390 <p><b>What are some common mistakes when installing with the registry?</b> | 392 <p><b>What are some common mistakes when installing with the registry?</b> |
391 </p><ul> | 393 </p><ul> |
392 <li>Not specifying the same id/version as the one listed in the .crx | 394 <li>Not specifying the same id/version as the one listed in the .crx |
393 </li><li>Key created in the wrong location in the registry | 395 </li><li>Key created in the wrong location in the registry |
394 </li><li>Registry entry points to the wrong path to the .crx (or path specified
but no filename) | 396 </li><li>Registry entry points to the wrong path to the .crx (or path specified
but no filename) |
395 </li><li>Backslashes in UNC path not escaped (eg <code>\\server\share\file</code
> (incorrect), instead of <code>\\\\server\\share\\extension</code> (correct) | |
396 </li><li>Permissions problems on a network share | 397 </li><li>Permissions problems on a network share |
397 </li></ul> | 398 </li></ul> |
398 | 399 |
399 <br> | 400 <br> |
400 | 401 |
401 <p><b>What if the user uninstalls the extension?</b> | 402 <p><b>What if the user uninstalls the extension?</b> |
402 </p><p>If the user uninstalls the extension through the UI, it will no | 403 </p><p>If the user uninstalls the extension through the UI, it will no |
403 longer be installed or updated on each startup. In other words, the | 404 longer be installed or updated on each startup. In other words, the |
404 external extension is blacklisted. | 405 external extension is blacklisted. |
405 | 406 |
406 <br><br> | 407 <br><br> |
407 | 408 |
408 | 409 |
409 </p><p><b>How do I get off the blacklist?</b> | 410 </p><p><b>How do I get off the blacklist?</b> |
410 </p><p>If the user uninstalls your extension, you should respect that | 411 </p><p>If the user uninstalls your extension, you should respect that |
411 decision. However, if you (the developer) accidentally uninstalled | 412 decision. However, if you (the developer) accidentally uninstalled |
412 your extension through the UI, | 413 your extension through the UI, |
413 you can remove the blacklist tag | 414 you can remove the blacklist tag |
414 by installing the extension normally | 415 by installing the extension normally |
415 through the UI, then uninstalling it. | 416 through the UI, and then uninstalling it. |
416 </p></div> | 417 </p></div> |
417 | 418 |
418 <!-- API PAGE --> | 419 <!-- API PAGE --> |
419 <div class="apiPage" style="display: none; "> | 420 <div class="apiPage" style="display: none; "> |
420 <a name="apiReference"></a> | 421 <a name="apiReference"></a> |
421 <h2>API reference: chrome.apiname </h2> | 422 <h2>API reference: chrome.apiname </h2> |
422 | 423 |
423 <!-- PROPERTIES --> | 424 <!-- PROPERTIES --> |
424 <div class="apiGroup"> | 425 <div class="apiGroup"> |
425 <a name="properties"></a> | 426 <a name="properties"></a> |
(...skipping 168 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
594 _uff=0; | 595 _uff=0; |
595 urchinTracker(); | 596 urchinTracker(); |
596 } | 597 } |
597 catch(e) {/* urchinTracker not available. */} | 598 catch(e) {/* urchinTracker not available. */} |
598 </script> | 599 </script> |
599 <!-- end analytics --> | 600 <!-- end analytics --> |
600 </div> | 601 </div> |
601 </div> <!-- /gc-footer --> | 602 </div> <!-- /gc-footer --> |
602 </div> <!-- /gc-container --> | 603 </div> <!-- /gc-container --> |
603 </body></html> | 604 </body></html> |
OLD | NEW |