From 5f8de423f190bbb79a62f804151bc24824fa32d8 Mon Sep 17 00:00:00 2001 From: "Matt A. Tobin" Date: Fri, 2 Feb 2018 04:16:08 -0500 Subject: Add m-esr52 at 52.6.0 --- .../test/addons/unsafe-content-script/main.js | 68 ++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 addon-sdk/source/test/addons/unsafe-content-script/main.js (limited to 'addon-sdk/source/test/addons/unsafe-content-script/main.js') diff --git a/addon-sdk/source/test/addons/unsafe-content-script/main.js b/addon-sdk/source/test/addons/unsafe-content-script/main.js new file mode 100644 index 000000000..b06810117 --- /dev/null +++ b/addon-sdk/source/test/addons/unsafe-content-script/main.js @@ -0,0 +1,68 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +"use strict"; + +const { create: makeFrame } = require("sdk/frame/utils"); +const { window } = require("sdk/addon/window"); +const { Loader } = require('sdk/test/loader'); + +exports.testMembranelessMode = function(assert, done) { + const loader = Loader(module); + const Worker = loader.require("sdk/content/worker").Worker; + + let url = "data:text/html;charset=utf-8," + encodeURIComponent( + '' + ); + + let element = makeFrame(window.document, { + nodeName: "iframe", + type: "content", + allowJavascript: true, + allowPlugins: true, + allowAuth: true, + uri: url + }); + + element.addEventListener("DOMContentLoaded", onDOMReady, false); + + function onDOMReady() { + let worker = Worker({ + window: element.contentWindow, + contentScript: + 'new ' + function () { + var assert = function assert(v, msg) { + self.port.emit("assert", { assertion: v, msg: msg }); + } + var done = function done() { + self.port.emit("done"); + } + window.wrappedJSObject.fuu = { bar: 42 }; + window.wrappedJSObject.assert = assert; + window.wrappedJSObject.runTest(); + done(); + } + }); + + worker.port.on("done", () => { + // cleanup + element.parentNode.removeChild(element); + worker.destroy(); + loader.unload(); + + done(); + }); + + worker.port.on("assert", function (data) { + assert.ok(data.assertion, data.msg); + }); + + } +}; + +require("sdk/test/runner").runTestsFromModule(module); -- cgit v1.2.3