Chromium Code Reviews| Index: chrome/common/extensions/docs/static/event_pages.html |
| diff --git a/chrome/common/extensions/docs/static/event_pages.html b/chrome/common/extensions/docs/static/event_pages.html |
| index 723f99ebd368e675f154534ba37ddf62257ed280..0a91656fcbc661cf23694e19872702bcd83ed196 100644 |
| --- a/chrome/common/extensions/docs/static/event_pages.html |
| +++ b/chrome/common/extensions/docs/static/event_pages.html |
| @@ -65,3 +65,50 @@ event is dispatched. The event page has a few more seconds to handle this |
| event before it is forcibly unloaded. Note that once the event is dispatched, |
| new activity will not keep the event page open. |
| </p> |
| + |
| +<h2 id="transition">Convert background page to event page</h2> |
| +<p> |
| +Follow this checklist to convert your extension's |
| +(persistent) background page to an event page. |
| + |
| +<ol> |
| + <li>Add <code>"persistent": false</code> to your manifest as shown above. |
| + |
| + <li>Register to receive any events your extension is interested in |
| + each time the event page is loaded. The event page will be loaded once |
| + for each new version of your extension. After that it will only be |
| + loaded to deliver events. |
|
Aaron Boodman
2012/07/23 23:07:29
.append(" you have registered for") ?
Matt Perry
2012/07/24 00:11:02
Done.
|
| + |
| + <li>If you need to do some initialization when your extension is |
| + installed or upgraded, listen to the |
| + <code><a href="runtime.html#event-onInstalled">chrome.runtime.onInstalled</a></code> |
| + event. |
| + |
| + <li>Listen to the |
| + <code><a href="runtime.html#event-onSuspend">chrome.runtime.onSuspend</a></code> |
| + event if you need to do last second cleanup before your event page |
| + is shut down. However, we recommend persisting periodically instead. |
| + That way if your extension crashes without receiving |
| + <code>onSuspend</code>, no data will typically be lost. |
| + |
| + <li>If you need to keep runtime state in memory throughout a browser |
|
Aaron Boodman
2012/07/23 23:07:29
Makes more sense if this point goes before the pre
Matt Perry
2012/07/24 00:11:02
Done.
|
| + session, use the <a href="storage.html">storage API</a> or |
| + IndexedDB. Since the event page does not stay loaded for long, you |
| + can no longer rely on global variables for runtime state. |
| + |
| + <li>If your extension uses <code>window.setTimeout()</code> or |
| + <code>window.setInterval()</code>, switch to using the |
| + <a href="alarms.html">alarms API</a> instead. DOM-based timers won't |
| + be honored if the event page shuts down. |
| + |
| + <li>If your extension uses, |
| + <code><a href="extension.html#method-getBackgroundPage">chrome.extension.getBackgroundPage()</a></code>, |
| + switch to |
| + <code><a href="runtime.html#method-getBackgroundPage">chrome.runtime.getBackgroundPage()</a></code> |
| + instead. |
|
Aaron Boodman
2012/07/23 23:07:29
.append(" The newer method is asynchronous so that
Matt Perry
2012/07/24 00:11:02
Done.
|
| + |
| + <li>If you're using <a href="messaging.html">message passing</a>, be sure |
| + to close unused message ports. The event page will not shut down until all |
| + message ports are closed. |
| +</ol> |
| +</p> |