| 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 255 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 266 chrome.tabs.getSelected(null, function(tab) { | 266 chrome.tabs.getSelected(null, function(tab) { |
| 267 chrome.tabs.sendRequest(tab.id, {greeting: "hello"}, function(response) { | 267 chrome.tabs.sendRequest(tab.id, {greeting: "hello"}, function(response) { |
| 268 console.log(response.farewell); | 268 console.log(response.farewell); |
| 269 }); | 269 }); |
| 270 }); | 270 }); |
| 271 </pre> | 271 </pre> |
| 272 <p> | 272 <p> |
| 273 On the receiving end, you need to set up an | 273 On the receiving end, you need to set up an |
| 274 <a href="extension.html#event-onRequest">chrome.extension.onRequest</a> | 274 <a href="extension.html#event-onRequest">chrome.extension.onRequest</a> |
| 275 event listener to handle the message. This looks the same from a content | 275 event listener to handle the message. This looks the same from a content |
| 276 script or extension page. The request will remain open until you call | 276 script or extension page. |
| 277 sendResponse, so it is good practice to call sendResponse with an empty | |
| 278 object to allow the request to be cleaned up. | |
| 279 </p><pre>chrome.extension.onRequest.addListener( | 277 </p><pre>chrome.extension.onRequest.addListener( |
| 280 function(request, sender, sendResponse) { | 278 function(request, sender, sendResponse) { |
| 281 console.log(sender.tab ? | 279 console.log(sender.tab ? |
| 282 "from a content script:" + sender.tab.url : | 280 "from a content script:" + sender.tab.url : |
| 283 "from the extension"); | 281 "from the extension"); |
| 284 if (request.greeting == "hello") | 282 if (request.greeting == "hello") |
| 285 sendResponse({farewell: "goodbye"}); | 283 sendResponse({farewell: "goodbye"}); |
| 286 else | |
| 287 sendResponse({}); // snub them. | |
| 288 }); | 284 }); |
| 289 </pre> | 285 </pre> |
| 290 <p class="note"> | 286 <p class="note"> |
| 291 <b>Note:</b> If multiple pages are listening for onRequest events, only the | 287 <b>Note:</b> If multiple pages are listening for onRequest events, only the |
| 292 first to call sendResponse() for a particular event will succeed in sending the | 288 first to call sendResponse() for a particular event will succeed in sending the |
| 293 response. All other responses to that event will be ignored. | 289 response. All other responses to that event will be ignored. |
| 294 </p> | 290 </p> |
| 295 <h2 id="connect">Long-lived connections</h2> | 291 <h2 id="connect">Long-lived connections</h2> |
| 296 <p> | 292 <p> |
| 297 Sometimes it's useful to have a conversation that lasts longer than a single | 293 Sometimes it's useful to have a conversation that lasts longer than a single |
| (...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 372 Listening for incoming requests and connections is similar to the internal | 368 Listening for incoming requests and connections is similar to the internal |
| 373 case, except you use the | 369 case, except you use the |
| 374 <a href="extension.html#event-onRequestExternal">chrome.extension.onRequestExter
nal</a> | 370 <a href="extension.html#event-onRequestExternal">chrome.extension.onRequestExter
nal</a> |
| 375 or | 371 or |
| 376 <a href="extension.html#event-onConnectExternal">chrome.extension.onConnectExter
nal</a> | 372 <a href="extension.html#event-onConnectExternal">chrome.extension.onConnectExter
nal</a> |
| 377 methods. Here's an example of each: | 373 methods. Here's an example of each: |
| 378 </p><pre>// For simple requests: | 374 </p><pre>// For simple requests: |
| 379 chrome.extension.onRequestExternal.addListener( | 375 chrome.extension.onRequestExternal.addListener( |
| 380 function(request, sender, sendResponse) { | 376 function(request, sender, sendResponse) { |
| 381 if (sender.id == blacklistedExtension) | 377 if (sender.id == blacklistedExtension) |
| 382 sendResponse({}); // don't allow this extension access | 378 return; // don't allow this extension access |
| 383 else if (request.getTargetData) | 379 else if (request.getTargetData) |
| 384 sendResponse({targetData: targetData}); | 380 sendResponse({targetData: targetData}); |
| 385 else if (request.activateLasers) { | 381 else if (request.activateLasers) { |
| 386 var success = activateLasers(); | 382 var success = activateLasers(); |
| 387 sendResponse({activateLasers: success}); | 383 sendResponse({activateLasers: success}); |
| 388 } | 384 } |
| 389 }); | 385 }); |
| 390 // For long-lived connections: | 386 // For long-lived connections: |
| 391 chrome.extension.onConnectExternal.addListener(function(port) { | 387 chrome.extension.onConnectExternal.addListener(function(port) { |
| 392 port.onMessage.addListener(function(msg) { | 388 port.onMessage.addListener(function(msg) { |
| (...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 492 _uff=0; | 488 _uff=0; |
| 493 urchinTracker(); | 489 urchinTracker(); |
| 494 } | 490 } |
| 495 catch(e) {/* urchinTracker not available. */} | 491 catch(e) {/* urchinTracker not available. */} |
| 496 </script> | 492 </script> |
| 497 <!-- end analytics --> | 493 <!-- end analytics --> |
| 498 </div> | 494 </div> |
| 499 </div> <!-- /gc-footer --> | 495 </div> <!-- /gc-footer --> |
| 500 </div> <!-- /gc-container --> | 496 </div> <!-- /gc-container --> |
| 501 </body></html> | 497 </body></html> |
| OLD | NEW |