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 152 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
163 <ul> | 163 <ul> |
164 <li>Browser UI | 164 <li>Browser UI |
165 <ul> | 165 <ul> |
166 <li><a href="browserAction.html">Browser Actions</a></li> | 166 <li><a href="browserAction.html">Browser Actions</a></li> |
167 <li><a href="contextMenus.html">Context Menus</a></li> | 167 <li><a href="contextMenus.html">Context Menus</a></li> |
168 <li><a href="notifications.html">Desktop Notifications</a></li
> | 168 <li><a href="notifications.html">Desktop Notifications</a></li
> |
169 <li><a href="omnibox.html">Omnibox</a></li> | 169 <li><a href="omnibox.html">Omnibox</a></li> |
170 <li><a href="options.html">Options Pages</a></li> | 170 <li><a href="options.html">Options Pages</a></li> |
171 <li><a href="override.html">Override Pages</a></li> | 171 <li><a href="override.html">Override Pages</a></li> |
172 <li><a href="pageAction.html">Page Actions</a></li> | 172 <li><a href="pageAction.html">Page Actions</a></li> |
173 <li><a href="themes.html">Themes</a></li> | |
174 </ul> | 173 </ul> |
175 </li> | 174 </li> |
176 <li>Browser Interaction | 175 <li>Browser Interaction |
177 <ul> | 176 <ul> |
178 <li><a href="bookmarks.html">Bookmarks</a></li> | 177 <li><a href="bookmarks.html">Bookmarks</a></li> |
179 <li><a href="cookies.html">Cookies</a></li> | 178 <li><a href="cookies.html">Cookies</a></li> |
180 <li><a href="events.html">Events</a></li> | 179 <li><a href="events.html">Events</a></li> |
181 <li><a href="history.html">History</a></li> | 180 <li><a href="history.html">History</a></li> |
182 <li><a href="management.html">Management</a></li> | 181 <li><a href="management.html">Management</a></li> |
183 <li><a href="tabs.html">Tabs</a></li> | 182 <li><a href="tabs.html">Tabs</a></li> |
(...skipping 13 matching lines...) Expand all Loading... |
197 </ul> | 196 </ul> |
198 </li> | 197 </li> |
199 <li>Finishing | 198 <li>Finishing |
200 <ul> | 199 <ul> |
201 <li class="leftNavSelected">Hosting</li> | 200 <li class="leftNavSelected">Hosting</li> |
202 <li><a href="external_extensions.html">Other Deployment Option
s</a></li> | 201 <li><a href="external_extensions.html">Other Deployment Option
s</a></li> |
203 </ul> | 202 </ul> |
204 </li> | 203 </li> |
205 </ul> | 204 </ul> |
206 </li> | 205 </li> |
| 206 <li><h2><a href="apps.html">Packaged Apps</a></h2></li> |
207 <li><h2><a href="tutorials.html">Tutorials</a></h2> | 207 <li><h2><a href="tutorials.html">Tutorials</a></h2> |
208 <ul> | 208 <ul> |
209 <li><a href="tut_debugging.html">Debugging</a></li> | 209 <li><a href="tut_debugging.html">Debugging</a></li> |
210 <li><a href="tut_analytics.html">Google Analytics</a></li> | 210 <li><a href="tut_analytics.html">Google Analytics</a></li> |
211 <li><a href="tut_oauth.html">OAuth</a></li> | 211 <li><a href="tut_oauth.html">OAuth</a></li> |
212 </ul> | 212 </ul> |
213 </li> | 213 </li> |
214 <li><h2>Reference</h2> | 214 <li><h2>Reference</h2> |
215 <ul> | 215 <ul> |
216 <li>Formats | 216 <li>Formats |
217 <ul> | 217 <ul> |
218 <li><a href="manifest.html">Manifest Files</a></li> | 218 <li><a href="manifest.html">Manifest Files</a></li> |
219 <li><a href="match_patterns.html">Match Patterns</a></li> | 219 <li><a href="match_patterns.html">Match Patterns</a></li> |
220 <!-- <li>Packages (.crx)</li> --> | |
221 </ul> | 220 </ul> |
222 </li> | 221 </li> |
| 222 <li><a href="permission_warnings.html">Permission Warnings</a></li
> |
223 <li><a href="api_index.html">chrome.* APIs</a></li> | 223 <li><a href="api_index.html">chrome.* APIs</a></li> |
224 <li><a href="api_other.html">Other APIs</a></li> | 224 <li><a href="api_other.html">Other APIs</a></li> |
225 </ul> | 225 </ul> |
226 </li> | 226 </li> |
227 <li><h2><a href="samples.html">Samples</a></h2></li> | 227 <li><h2><a href="samples.html">Samples</a></h2></li> |
228 <div class="line"> </div> | 228 <div class="line"> </div> |
229 <li><h2>More</h2> | 229 <li><h2>More</h2> |
230 <ul> | 230 <ul> |
231 <li><a href="http://code.google.com/chrome/webstore/docs/index.htm
l">Chrome Web Store</a></li> | 231 <li><a href="http://code.google.com/chrome/webstore/docs/index.htm
l">Chrome Web Store</a></li> |
232 <li><a href="http://code.google.com/chrome/apps/docs/developers_gu
ide.html">Installable Web Apps</a></li> | 232 <li><a href="http://code.google.com/chrome/apps/docs/developers_gu
ide.html">Hosted Apps</a></li> |
233 <li><a href="themes.html">Themes</a></li> | 233 <li><a href="themes.html">Themes</a></li> |
234 </ul> | 234 </ul> |
235 </li> | 235 </li> |
236 </ul> | 236 </ul> |
237 </div> | 237 </div> |
238 <script> | 238 <script> |
239 initToggles(); | 239 initToggles(); |
240 </script> | 240 </script> |
241 | 241 |
242 <div class="g-unit" id="gc-pagecontent"> | 242 <div class="g-unit" id="gc-pagecontent"> |
243 <div id="pageTitle"> | 243 <div id="pageTitle"> |
244 <h1 class="page_title">Hosting</h1> | 244 <h1 class="page_title">Hosting</h1> |
245 </div> | 245 </div> |
246 <!-- TABLE OF CONTENTS --> | 246 <!-- TABLE OF CONTENTS --> |
247 <div id="toc"> | 247 <div id="toc" style="display: none; "> |
248 <h2>Contents</h2> | 248 <h2>Contents</h2> |
249 <ol> | 249 <ol> |
250 <li> | 250 <li> |
251 <a href="#gallery">Publishing to the Extensions Gallery</a> | 251 <a>h2Name</a> |
252 <ol> | 252 <ol> |
253 <li style="display: none; "> | 253 <li> |
254 <a>h3Name</a> | |
255 </li> | |
256 </ol> | |
257 </li><li> | |
258 <a href="#server">Hosting on your own server</a> | |
259 <ol> | |
260 <li style="display: none; "> | |
261 <a>h3Name</a> | 254 <a>h3Name</a> |
262 </li> | 255 </li> |
263 </ol> | 256 </ol> |
264 </li> | 257 </li> |
265 <li style="display: none; "> | 258 <li> |
266 <a href="#apiReference">API reference</a> | 259 <a href="#apiReference">API reference</a> |
267 <ol> | 260 <ol> |
268 <li> | 261 <li> |
269 <a href="#properties">Properties</a> | 262 <a href="#properties">Properties</a> |
270 <ol> | 263 <ol> |
271 <li> | 264 <li> |
272 <a href="#property-anchor">propertyName</a> | 265 <a href="#property-anchor">propertyName</a> |
273 </li> | 266 </li> |
274 </ol> | 267 </ol> |
275 </li> | 268 </li> |
(...skipping 27 matching lines...) Expand all Loading... |
303 </div> | 296 </div> |
304 <!-- /TABLE OF CONTENTS --> | 297 <!-- /TABLE OF CONTENTS --> |
305 | 298 |
306 <!-- Standard content lead-in for experimental API pages --> | 299 <!-- Standard content lead-in for experimental API pages --> |
307 <p id="classSummary" style="display: none; "> | 300 <p id="classSummary" style="display: none; "> |
308 For information on how to use experimental APIs, see the <a href="expe
rimental.html">chrome.experimental.* APIs</a> page. | 301 For information on how to use experimental APIs, see the <a href="expe
rimental.html">chrome.experimental.* APIs</a> page. |
309 </p> | 302 </p> |
310 | 303 |
311 <!-- STATIC CONTENT PLACEHOLDER --> | 304 <!-- STATIC CONTENT PLACEHOLDER --> |
312 <div id="static"><div id="pageData-name" class="pageData">Hosting</div> | 305 <div id="static"><div id="pageData-name" class="pageData">Hosting</div> |
313 <div id="pageData-showTOC" class="pageData">true</div> | |
314 | 306 |
315 <p> | 307 <p> |
316 Until the | 308 This page tells you how to host <code>.crx</code> files |
317 <a href="http://code.google.com/chrome/webstore/">Chrome Web Store</a> | 309 on your own server. |
318 is available to the public, | 310 If you distribute your extension, app, or theme solely through the |
319 you can host your extension | 311 <a href="http://chrome.google.com/webstore">Chrome Web Store</a>, |
320 using the <a href="https://chrome.google.com/extensions">Extensions Gallery</a>. | 312 you don't need this page. |
321 Once the store is public, | 313 Instead, consult the store help and |
322 the gallery's contents will be merged into the store. | 314 <a href="http://code.google.com/chrome/webstore/index.html">developer documentat
ion</a>. |
323 Another option | 315 <!-- PENDING: add a link to the help --> |
324 is hosting your extension on other servers. | 316 </p> |
| 317 |
| 318 <p class="note"> |
| 319 <strong>Note:</strong> |
| 320 If you've already published extensions to the |
| 321 <a href="https://chrome.google.com/extensions">Extensions Gallery</a>, |
| 322 they will be merged into the store. |
325 </p> | 323 </p> |
326 | 324 |
327 <p> | 325 <p> |
328 This page gives tips for using the gallery, | 326 By convention, extensions, |
329 as well as details on how to host extensions on your own server. | 327 installable web apps, and themes are served—whether |
330 </p> | 328 by the Chrome Web Store or by a custom server—as |
331 | 329 <code>.crx</code> files. |
332 <h2 id="gallery">Publishing to the Extensions Gallery</h2> | 330 When you upload a ZIP file with the |
333 | 331 <a href="https://chrome.google.com/webstore/developer/dashboard">Chrome Develope
r Dashboard</a>, |
334 <p> | 332 the dashboard creates the <code>.crx</code> file for you. |
335 To publish extensions, | |
336 you first need to pay a one-time | |
337 <a href="http://blog.chromium.org/2010/08/security-improvements-and-registration
.html">$5 developer registration fee</a>. | |
338 </p> | |
339 | |
340 <p class="note"> | |
341 <b>Note:</b> | |
342 If you used the Chrome Developer Dashboard before | |
343 the first developer preview release of the Chrome Web Store — | |
344 to publish an extension, for example — | |
345 you don't need to pay the fee. | |
346 </p> | 333 </p> |
347 | 334 |
348 <p> | 335 <p> |
349 Publishing to the gallery is easy, | 336 If you aren't publishing using the dashboard, |
350 but your extension might be more popular | 337 you need to create the <code>.crx</code> file yourself, |
351 if you take a little time to prepare: | 338 as described in <a href="packaging.html">Packaging</a>. |
352 </p> | 339 You can also specify |
353 | 340 <a href="autoupdate.html">autoupdate</a> information to ensure that |
354 <ul> | 341 your users will have the latest copy of the <code>.crx</code> file. |
355 <li> Visit the | |
356 <a href="https://chrome.google.com/extensions">gallery</a> | |
357 and look at similar extensions' pages. | |
358 Your extension's page should look at least as good as theirs. </li> | |
359 <li> Consider creating a support site for your extension, | |
360 maybe a <a href="http://groups.google.com">Google Group</a>. | |
361 If your extension's page has a link to your support site, | |
362 people will be less likely to | |
363 complain in the user comments. </li> | |
364 <li> Consider creating a custom Gmail account | |
365 for this extension or for all of your extensions. | |
366 Only one account can upload, publish, and update your extension. </li> | |
367 <li> Create some great text (titles and descriptions) | |
368 and images (maybe even video) for your extension. | |
369 See the | |
370 <a href="http://www.google.com/support/chrome/bin/answer.py?answer=113909">g
allery help</a> | |
371 for details on screenshot and text requirements. </li> | |
372 </ul> | |
373 | |
374 <p> | |
375 To upload your extension, | |
376 just zip up your extension's directory, | |
377 go to the | |
378 <a href="https://chrome.google.com/extensions/developer/dashboard">Developer Das
hboard</a>, | |
379 and add your extension. | |
380 This creates a page for your extension, | |
381 viewable only by you. | |
382 Now you can edit your extension's page — | |
383 uploading images, specifying text, and so on. | |
384 </p> | 342 </p> |
385 | 343 |
386 <p> | 344 <p> |
387 Once you verify that your extension's page looks good | 345 A server that hosts <code>.crx</code> files |
388 and all links are valid, | |
389 publish your extension. | |
390 </p> | |
391 | |
392 <p> | |
393 When you want to update your extension, | |
394 use the dashboard to upload and publish the new version. | |
395 Your users will automatically get the new version | |
396 over the next few hours. | |
397 </p> | |
398 | |
399 | |
400 <h2 id="server">Hosting on your own server</h2> | |
401 | |
402 <p> | |
403 By convention, extensions are served — | |
404 whether by the gallery or by a custom server — | |
405 as <code>.crx</code> files. | |
406 When you upload an extension to the gallery, | |
407 the gallery creates the <code>.crx</code> file for you. | |
408 If you aren't using the gallery, | |
409 you need to create the <code>.crx</code> file yourself, | |
410 as described in <a href="packaging.html">Packaging</a>. | |
411 </p> | |
412 | |
413 <p class="note"> | |
414 <b>Note:</b> | |
415 If you do your own hosting, | |
416 don't forget to set up | |
417 <a href="autoupdate.html">autoupdate</a>, | |
418 so you can be sure that | |
419 your extension's users have the latest version. | |
420 </p> | |
421 | |
422 <p> | |
423 A server that hosts extensions | |
424 must use appropriate HTTP headers, | 346 must use appropriate HTTP headers, |
425 so that users can install your extension | 347 so that users can install the file |
426 by clicking a link to it. | 348 by clicking a link to it. |
427 </p> | 349 </p> |
428 | 350 |
429 <p> | 351 <p> |
430 Google Chrome considers a file to be an extension | 352 Google Chrome considers a file to be installable |
431 if <b>either</b> of the following is true: | 353 if <b>either</b> of the following is true: |
432 </p> | 354 </p> |
433 | 355 |
434 <ul> | 356 <ul> |
435 <li> | 357 <li> |
436 The file has the content type | 358 The file has the content type |
437 <code>application/x-chrome-extension</code> | 359 <code>application/x-chrome-extension</code> |
438 </li> | 360 </li> |
439 <li> | 361 <li> |
440 The file suffix is <code>.crx</code> | 362 The file suffix is <code>.crx</code> |
(...skipping 13 matching lines...) Expand all Loading... |
454 <li> "unknown/unknown" </li> | 376 <li> "unknown/unknown" </li> |
455 <li> "application/unknown" </li> | 377 <li> "application/unknown" </li> |
456 <li> "*/*" </li> | 378 <li> "*/*" </li> |
457 </ul> | 379 </ul> |
458 </li> | 380 </li> |
459 </ul> | 381 </ul> |
460 </li> | 382 </li> |
461 </ul> | 383 </ul> |
462 | 384 |
463 <p> | 385 <p> |
464 The most common reason for failing to recognize an extension | 386 The most common reason for failing to recognize an installable file |
465 is that the server sends the header | 387 is that the server sends the header |
466 <code>X-Content-Type-Options: no sniff</code>. | 388 <code>X-Content-Type-Options: no sniff</code>. |
467 The second most common reason | 389 The second most common reason |
468 is that the server sends an unknown content type — | 390 is that the server sends an unknown content type—one |
469 one that isn't in the previous list. | 391 that isn't in the previous list. |
470 To fix an HTTP header issue, | 392 To fix an HTTP header issue, |
471 either change the configuration of the server | 393 either change the configuration of the server |
472 or try hosting the extension at another server. | 394 or try hosting the <code>.crx</code> file at another server. |
473 </p> | 395 </p> |
474 </div> | 396 </div> |
475 | 397 |
476 <!-- API PAGE --> | 398 <!-- API PAGE --> |
477 <div class="apiPage" style="display: none; "> | 399 <div class="apiPage" style="display: none; "> |
478 <a name="apiReference"></a> | 400 <a name="apiReference"></a> |
479 <h2>API reference: chrome.apiname </h2> | 401 <h2>API reference: chrome.apiname </h2> |
480 | 402 |
481 <!-- PROPERTIES --> | 403 <!-- PROPERTIES --> |
482 <div class="apiGroup"> | 404 <div class="apiGroup"> |
(...skipping 176 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
659 _uff=0; | 581 _uff=0; |
660 urchinTracker(); | 582 urchinTracker(); |
661 } | 583 } |
662 catch(e) {/* urchinTracker not available. */} | 584 catch(e) {/* urchinTracker not available. */} |
663 </script> | 585 </script> |
664 <!-- end analytics --> | 586 <!-- end analytics --> |
665 </div> | 587 </div> |
666 </div> <!-- /gc-footer --> | 588 </div> <!-- /gc-footer --> |
667 </div> <!-- /gc-container --> | 589 </div> <!-- /gc-container --> |
668 </body></html> | 590 </body></html> |
OLD | NEW |