Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(73)

Side by Side Diff: chrome/common/extensions/docs/packaging.html

Issue 10455004: Making sure self-hosting and packaging docs are clear about keeping private key secure (Closed) Base URL: http://src.chromium.org/svn/trunk/src/
Patch Set: Created 8 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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 114 matching lines...) Expand 10 before | Expand all | Expand 10 after
125 <li><a href="history.html">History</a></li> 125 <li><a href="history.html">History</a></li>
126 <li><a href="management.html">Management</a></li> 126 <li><a href="management.html">Management</a></li>
127 <li><a href="tabs.html">Tabs</a></li> 127 <li><a href="tabs.html">Tabs</a></li>
128 <li><a href="windows.html">Windows</a></li> 128 <li><a href="windows.html">Windows</a></li>
129 </ul> 129 </ul>
130 </li> 130 </li>
131 <li>Implementation 131 <li>Implementation
132 <ul> 132 <ul>
133 <li><a href="a11y.html">Accessibility</a></li> 133 <li><a href="a11y.html">Accessibility</a></li>
134 <li><a href="background_pages.html">Background Pages</a></li> 134 <li><a href="background_pages.html">Background Pages</a></li>
135 <li><a href="transient_background_pages.html">Event Pages</a>< /li>
135 <li><a href="content_scripts.html">Content Scripts</a></li> 136 <li><a href="content_scripts.html">Content Scripts</a></li>
136 <li><a href="xhr.html">Cross-Origin XHR</a></li> 137 <li><a href="xhr.html">Cross-Origin XHR</a></li>
137 <li><a href="i18n.html">Internationalization</a></li> 138 <li><a href="i18n.html">Internationalization</a></li>
138 <li><a href="messaging.html">Message Passing</a></li> 139 <li><a href="messaging.html">Message Passing</a></li>
139 <li><a href="permissions.html">Optional Permissions</a></li> 140 <li><a href="permissions.html">Optional Permissions</a></li>
140 <li><a href="npapi.html">NPAPI Plugins</a></li> 141 <li><a href="npapi.html">NPAPI Plugins</a></li>
141 </ul> 142 </ul>
142 </li> 143 </li>
143 <li>Finishing 144 <li>Finishing
144 <ul> 145 <ul>
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
212 <ol> 213 <ol>
213 </ol> 214 </ol>
214 </li> 215 </li>
215 </ol> 216 </ol>
216 </div> 217 </div>
217 <!-- /TABLE OF CONTENTS --> 218 <!-- /TABLE OF CONTENTS -->
218 <!-- Standard content lead-in for experimental API pages --> 219 <!-- Standard content lead-in for experimental API pages -->
219 <!-- STATIC CONTENT PLACEHOLDER --> 220 <!-- STATIC CONTENT PLACEHOLDER -->
220 <div id="static"><div id="pageData-name" class="pageData">Packaging</div > 221 <div id="static"><div id="pageData-name" class="pageData">Packaging</div >
221 <div id="pageData-showTOC" class="pageData">true</div> 222 <div id="pageData-showTOC" class="pageData">true</div>
223 <p class="note">
224 <b>For Advanced Developers Only:</b>
225 Do not follow the instructions on this page
226 unless you understand the security implications
227 of packaging and hosting files on your own server.
228 If you host on the Chrome Web Store,
229 you do not need to worry
230 about packaging or self-hosting.
231 </p>
222 <p> 232 <p>
223 This page describes how to package your extension. 233 This page describes how to package your extension.
224 As the <a href="overview.html">Overview</a> explains, 234 As the <a href="overview.html">Overview</a> explains,
225 extensions are packaged as signed ZIP files 235 extensions are packaged as signed ZIP files
226 with the file extension "crx"—for example, 236 with the file extension "crx"—for example,
227 <code>myextension.crx</code>. 237 <code>myextension.crx</code>.
228 </p> 238 </p>
229 <p> 239 <p>
230 <b>Note:</b> 240 You do not need to package your own extension.
231 You might not need to package your extension.
232 If you publish your extension using the 241 If you publish your extension using the
233 <a href="https://chrome.google.com/webstore/developer/dashboard">Chrome Develope r Dashboard</a>, 242 <a href="https://chrome.google.com/webstore/developer/dashboard">Chrome Develope r Dashboard</a>,
234 then the only reason to create your own <code>.crx</code> file 243 then the only reason to create your own <code>.crx</code> file
235 would be to distribute a non-public version—for example, 244 would be to distribute a non-public version—for example,
236 to alpha testers. 245 to alpha testers.
237 You can find information on publishing extensions and apps in the 246 You can find information on publishing extensions and apps in the
238 Chrome Web Store getting started tutorial, starting at 247 Chrome Web Store getting started tutorial, starting at
239 <a href="http://code.google.com/chrome/webstore/docs/get_started_simple.html#ste p5">Step 5: Zip up your app</a>. 248 <a href="http://code.google.com/chrome/webstore/docs/get_started_simple.html#ste p5">Step 5: Zip up your app</a>.
240 </p> 249 </p>
241 <p> 250 <p>
242 When you package an extension, 251 When you package an extension,
243 the extension is assigned a unique key pair. 252 the extension is assigned a unique key pair.
244 The extension's ID is based on a hash of the public key. 253 The extension's ID is based on a hash of the public key.
245 The private key is kept private 254 The private key is used to sign each version of the extension
246 and used to sign each version of the extension. 255 and must be secured from public access.
256 Do not store the private key in your packaged files.
247 </p> 257 </p>
248 <a name="H2-0"></a><h2>Creating a package</h2> 258 <a name="H2-0"></a><h2>Creating a package</h2>
249 <p>To package an extension:</p> 259 <p>To package an extension:</p>
250 <ol> 260 <ol>
251 <li> 261 <li>
252 Bring up the Extensions management page 262 Bring up the Extensions management page
253 by going to this URL: 263 by going to this URL:
254 <blockquote> 264 <blockquote>
255 <b>chrome://extensions</b> 265 <b>chrome://extensions</b>
256 </blockquote> 266 </blockquote>
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
323 <li> 333 <li>
324 Click <b>OK</b>. 334 Click <b>OK</b>.
325 </li> 335 </li>
326 </ol> 336 </ol>
327 <p>If the updated extension is successfully packaged, you'll see a dialog like t his:</p> 337 <p>If the updated extension is successfully packaged, you'll see a dialog like t his:</p>
328 <img src="images/update-success.gif" width="298" height="160"> 338 <img src="images/update-success.gif" width="298" height="160">
329 <h2 id="upload"> Uploading a previously packaged extension to the Chrome Web Sto re</h2> 339 <h2 id="upload"> Uploading a previously packaged extension to the Chrome Web Sto re</h2>
330 <p> 340 <p>
331 You can use the Chrome Developer Dashboard 341 You can use the Chrome Developer Dashboard
332 to upload an extension that you've previously packaged yourself. 342 to upload an extension that you've previously packaged yourself.
333 However, unless you take special steps, 343 However, a new extension ID will be created
334 the extension's ID in the Chrome Web Store 344 in the Chrome Web Store.
335 will be different from its ID in the package you created. 345 You must ensure that only one extension ID is used.
336 This different ID might be a problem if you've 346 If you've already distributed your extension package,
337 distributed your extension package, 347 replace the newly created extension ID
338 because it allows users to install multiple versions of your extension, 348 with your existing extension ID.
339 each with its own local data. 349 Otherwise, users can install multiple versions
350 of your extension, each with its own local data.
351 If you haven't distributed your extension package,
352 you can use the new extension ID,
353 taking care to remove any references to the old one.
340 </p> 354 </p>
341 <p> 355 <p>
342 If you want to keep the extension ID the same, 356 To replace the newly created extension ID
343 follow these steps: 357 with your existing extension ID:
344 </p> 358 </p>
345 <ol> 359 <ol>
346 <li> Rename the private key that was generated 360 <li> Rename the private key that was generated
347 when you created the <code>.crx</code> file to <code>key.pem</code>. </li> 361 when you created the <code>.crx</code> file to <code>key.pem</code>. </li>
348 <li> Put <code>key.pem</code> in the top directory 362 <li> Put <code>key.pem</code> in the top directory
349 of your extension. </li> 363 of your extension. </li>
350 <li> Compress that directory into a ZIP file. </li> 364 <li> Compress that directory into a ZIP file. </li>
351 <li> Upload the ZIP file using the 365 <li> Upload the ZIP file using the
352 <a href="https://chrome.google.com/webstore/developer/dashboard">Chrome Deve loper Dashboard</a>. </li> 366 <a href="https://chrome.google.com/webstore/developer/dashboard">Chrome Deve loper Dashboard</a>. </li>
353 </ol> 367 </ol>
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
405 _uff=0; 419 _uff=0;
406 urchinTracker(); 420 urchinTracker();
407 } 421 }
408 catch(e) {/* urchinTracker not available. */} 422 catch(e) {/* urchinTracker not available. */}
409 </script> 423 </script>
410 <!-- end analytics --> 424 <!-- end analytics -->
411 </div> 425 </div>
412 </div> <!-- /gc-footer --> 426 </div> <!-- /gc-footer -->
413 </div> <!-- /gc-container --> 427 </div> <!-- /gc-container -->
414 </body></html> 428 </body></html>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698