Bug 1398974: Part 6 - Add content script messaging to webext talos add-on. r?mixedpuppy,jmaher draft
authorKris Maglione <maglione.k@gmail.com>
Mon, 11 Sep 2017 18:24:54 -0700
changeset 662832 2a824389bc9102da9f3f88309951ffd253552695
parent 662831 202cc84ce1b742279d9d45b416c9b88a399b3329
child 730978 7372e945f0e833534a628e444a9350ce600dd627
push id79198
push usermaglione.k@gmail.com
push dateTue, 12 Sep 2017 04:40:43 +0000
reviewersmixedpuppy, jmaher
bugs1398974
milestone57.0a1
Bug 1398974: Part 6 - Add content script messaging to webext talos add-on. r?mixedpuppy,jmaher MozReview-Commit-ID: Edn7BnZoHvK
testing/talos/talos/webextensions/dummy/background.js
testing/talos/talos/webextensions/dummy/content.js
--- a/testing/talos/talos/webextensions/dummy/background.js
+++ b/testing/talos/talos/webextensions/dummy/background.js
@@ -32,27 +32,36 @@ browser.webRequest.onHeadersReceived.add
   ["blocking", "responseHeaders"]);
 
 browser.webRequest.onErrorOccurred.addListener(
   details => {
   },
   {urls: ["https://*/*", "http://*/*"]});
 
 
+browser.runtime.onMessage.addListener(msg => {
+  return Promise.resolve({code: "10-4", msg});
+});
+
+
 browser.tabs.onUpdated.addListener((tabId, changed, tab) => {
   if (changed.url) {
     browser.pageAction.show(tabId);
   }
   if (changed.title) {
     browser.pageAction.setTitle({tabId, title: `title: ${tab.title}`});
     browser.pageAction.setIcon({tabId, path: {16: "/icon.png"}});
 
     browser.browserAction.setTitle({tabId, title: `title: ${tab.title}`});
     browser.browserAction.setIcon({path: {16: "/icon.png"}});
   }
+
+  browser.tabs.sendMessage(tabId, {changed, tab}).catch(() => {
+    // Ignore tabs that don't have a listener yet.
+  });
 });
 
 browser.tabs.onActivated.addListener(({tabId, windowId}) => {
   browser.pageAction.show(tabId);
 });
 
 browser.tabs.onCreated.addListener(tab => {
   browser.pageAction.show(tab.id);
--- a/testing/talos/talos/webextensions/dummy/content.js
+++ b/testing/talos/talos/webextensions/dummy/content.js
@@ -1,3 +1,12 @@
 "use strict";
 
-// Empty content script
+/* eslint-env webextensions */
+
+browser.runtime.sendMessage({
+  msg: "Hello from content script",
+  url: location.href,
+});
+
+browser.runtime.onMessage.addListener(msg => {
+  return Promise.resolve({code: "10-4", msg});
+});