From 9893d96b3e751b2379c115e72ae3524947e309fa Mon Sep 17 00:00:00 2001 From: Mark Donnelly Date: Wed, 3 Dec 2014 15:52:49 -0500 Subject: [PATCH] Passing messages between the add-on and the content script --- firefox/chrome/content/navigator.gssEap.js | 5 ++--- firefox/data/navigator.gss.js | 6 ++++++ firefox/lib/main.js | 22 +++++++++++++++++++++- 3 files changed, 29 insertions(+), 4 deletions(-) diff --git a/firefox/chrome/content/navigator.gssEap.js b/firefox/chrome/content/navigator.gssEap.js index dec4f1d..93f7496 100644 --- a/firefox/chrome/content/navigator.gssEap.js +++ b/firefox/chrome/content/navigator.gssEap.js @@ -1,4 +1,3 @@ -console.log('Loading nav.gss.js - #1'); /* * Copyright (c) 2014, JANET(UK) * All rights reserved. @@ -33,7 +32,7 @@ console.log('Loading nav.gss.js - #1'); * */ -console.log('Loading navigator.gss.js - #1'); +console.log('Loading navigator.gssEap.js - #1'); navigator.generateNonce = function() { // TODO: Make sure that we don't have a collision! @@ -309,4 +308,4 @@ var GSSEap = (function () })(); -navigator.gss_eap = GSSEap; +navigator.gssEap = GSSEap; diff --git a/firefox/data/navigator.gss.js b/firefox/data/navigator.gss.js index 5342e3e..7f3b4df 100644 --- a/firefox/data/navigator.gss.js +++ b/firefox/data/navigator.gss.js @@ -9,4 +9,10 @@ function addScript(url) { addScript('chrome://gssweb/content/nav.gss.js'); +self.port.on('alert', function(message) { + console.log("Content script received message: " + message); + self.port.emit("gss_request", "Message back from the content script"); +}); + + diff --git a/firefox/lib/main.js b/firefox/lib/main.js index 68dc999..4fa60b0 100644 --- a/firefox/lib/main.js +++ b/firefox/lib/main.js @@ -41,7 +41,7 @@ reply = call_gss("{\"method\":\"gss_import_name\",\"arguments\":{\"input_name\": console.log(" ... Reply: " + reply.readString()); - +var self = require("sdk/self"); var data = require("sdk/self").data; var pageMod = require("sdk/page-mod"); @@ -50,3 +50,23 @@ pageMod.PageMod({ contentScriptFile: [data.url("navigator.gss.js")], contentScriptWhen: "ready" }); + +tabs.on("ready", function(tab) { + worker = tab.attach({ contentScriptFile: data.url("navigator.gss.js") }); + worker.port.on("gss_request", function(message) { + console.log("main.js received message: " + message); + }); + worker.port.emit("alert", "Message from the add-on"); +}); + + +/*var gssweb = { + myListener: function(evt) { + alert("Received from web page: " + + evt.target.getAttribute("attribute1") + "/" + + evt.target.getAttribute("attribute2")); + } +}*/ +//document.addEventListener("GsswebEvent", function(e) { gssweb.myListener(e); }, false, true); +// The last value is a Mozilla-specific value to indicate untrusted content is allowed to trigger the event. + -- 2.1.4