mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 997561 - Uplift Add-on SDK to Firefox (CLOSED TREE) r=me
This commit is contained in:
parent
c3a93c2128
commit
4abbe6385a
@ -65,8 +65,12 @@ exports.install = function install(xpiPath) {
|
||||
|
||||
// Order AddonManager to install the addon
|
||||
AddonManager.getInstallForFile(file, function(install) {
|
||||
install.addListener(listener);
|
||||
install.install();
|
||||
if (install.error != null) {
|
||||
install.addListener(listener);
|
||||
install.install();
|
||||
} else {
|
||||
reject(install.error);
|
||||
}
|
||||
});
|
||||
|
||||
return promise;
|
||||
|
@ -286,17 +286,6 @@ const ContentWorker = Object.freeze({
|
||||
value: self
|
||||
});
|
||||
|
||||
// Deprecated use of on/postMessage from globals
|
||||
exports.postMessage = function deprecatedPostMessage() {
|
||||
console.error("DEPRECATED: The global `postMessage()` function in " +
|
||||
"content scripts is deprecated in favor of the " +
|
||||
"`self.postMessage()` function, which works the same. " +
|
||||
"Replace calls to `postMessage()` with calls to " +
|
||||
"`self.postMessage()`." +
|
||||
"For more info on `self.on`, see " +
|
||||
"<https://addons.mozilla.org/en-US/developers/docs/sdk/latest/dev-guide/addon-development/web-content.html>.");
|
||||
return self.postMessage.apply(null, arguments);
|
||||
};
|
||||
exports.on = function deprecatedOn() {
|
||||
console.error("DEPRECATED: The global `on()` function in content " +
|
||||
"scripts is deprecated in favor of the `self.on()` " +
|
||||
|
@ -46,9 +46,11 @@ function onDocumentReady2Translate(event) {
|
||||
|
||||
try {
|
||||
// Finally display document when we finished replacing all text content
|
||||
let winUtils = document.defaultView.QueryInterface(Ci.nsIInterfaceRequestor)
|
||||
.getInterface(Ci.nsIDOMWindowUtils);
|
||||
winUtils.removeSheet(hideSheetUri, winUtils.USER_SHEET);
|
||||
if (document.defaultView) {
|
||||
let winUtils = document.defaultView.QueryInterface(Ci.nsIInterfaceRequestor)
|
||||
.getInterface(Ci.nsIDOMWindowUtils);
|
||||
winUtils.removeSheet(hideSheetUri, winUtils.USER_SHEET);
|
||||
}
|
||||
}
|
||||
catch(e) {
|
||||
console.exception(e);
|
||||
|
@ -223,7 +223,6 @@ exports.show = show
|
||||
function setupPanelFrame(frame) {
|
||||
frame.setAttribute("flex", 1);
|
||||
frame.setAttribute("transparent", "transparent");
|
||||
frame.setAttribute("showcaret", true);
|
||||
frame.setAttribute("autocompleteenabled", true);
|
||||
if (platform === "darwin") {
|
||||
frame.style.borderRadius = "6px";
|
||||
|
@ -191,9 +191,6 @@ exports["test postMessage"] = createProxyTest(html, function (helper, assert) {
|
||||
|
||||
helper.createWorker(
|
||||
'new ' + function ContentScriptScope() {
|
||||
assert(postMessage === postMessage,
|
||||
"verify that we doesn't generate multiple functions for the same method");
|
||||
|
||||
var json = JSON.stringify({foo : "bar\n \"escaped\"."});
|
||||
|
||||
document.getElementById("iframe").contentWindow.postMessage(json, "*");
|
||||
|
@ -26,7 +26,13 @@ const DEPRECATE_PREF = "devtools.errorconsole.deprecation_warnings";
|
||||
|
||||
const DEFAULT_CONTENT_URL = "data:text/html;charset=utf-8,foo";
|
||||
|
||||
function makeWindow(contentURL) {
|
||||
const WINDOW_SCRIPT_URL = "data:text/html;charset=utf-8," +
|
||||
"<script>window.addEventListener('message', function (e) {" +
|
||||
" if (e.data === 'from -> content-script')" +
|
||||
" window.postMessage('from -> window', '*');" +
|
||||
"});</script>";
|
||||
|
||||
function makeWindow() {
|
||||
let content =
|
||||
"<?xml version=\"1.0\"?>" +
|
||||
"<window " +
|
||||
@ -782,50 +788,6 @@ exports["test:check worker API with page history"] = WorkerTest(
|
||||
}
|
||||
);
|
||||
|
||||
exports["test:global postMessage"] = WorkerTest(
|
||||
DEFAULT_CONTENT_URL,
|
||||
function(assert, browser, done) {
|
||||
let { loader } = LoaderWithHookedConsole(module, onMessage);
|
||||
setPref(DEPRECATE_PREF, true);
|
||||
|
||||
// Intercept all console method calls
|
||||
let seenMessages = 0;
|
||||
function onMessage(type, message) {
|
||||
seenMessages++;
|
||||
assert.equal(type, "error", "Should be an error");
|
||||
assert.equal(message, "DEPRECATED: The global `postMessage()` function in " +
|
||||
"content scripts is deprecated in favor of the " +
|
||||
"`self.postMessage()` function, which works the same. " +
|
||||
"Replace calls to `postMessage()` with calls to " +
|
||||
"`self.postMessage()`." +
|
||||
"For more info on `self.on`, see " +
|
||||
"<https://addons.mozilla.org/en-US/developers/docs/sdk/latest/dev-guide/addon-development/web-content.html>.",
|
||||
"Should have seen the deprecation message")
|
||||
}
|
||||
|
||||
assert.notEqual(browser.contentWindow.location.href, "about:blank",
|
||||
"window is now on the right document");
|
||||
|
||||
let window = browser.contentWindow
|
||||
let worker = loader.require("sdk/content/worker").Worker({
|
||||
window: window,
|
||||
contentScript: "new " + function WorkerScope() {
|
||||
postMessage("success");
|
||||
},
|
||||
contentScriptWhen: "ready",
|
||||
onMessage: function(msg) {
|
||||
assert.equal("success", msg, "Should have seen the right postMessage call");
|
||||
assert.equal(1, seenMessages, "Should have seen the deprecation message");
|
||||
done();
|
||||
}
|
||||
});
|
||||
|
||||
assert.equal(worker.url, window.location.href,
|
||||
"worker.url works");
|
||||
worker.postMessage("hi!");
|
||||
}
|
||||
);
|
||||
|
||||
exports['test:conentScriptFile as URL instance'] = WorkerTest(
|
||||
DEFAULT_CONTENT_URL,
|
||||
function(assert, browser, done) {
|
||||
@ -889,8 +851,8 @@ exports["test:onDetach in contentScript on destroy"] = WorkerTest(
|
||||
})
|
||||
},
|
||||
});
|
||||
browser.contentWindow.addEventListener('hashchange', _ => {
|
||||
assert.equal(browser.contentWindow.location.hash, '#detach!',
|
||||
browser.contentWindow.addEventListener('hashchange', _ => {
|
||||
assert.equal(browser.contentWindow.location.hash, '#detach!',
|
||||
"location.href is as expected");
|
||||
done();
|
||||
})
|
||||
@ -910,8 +872,8 @@ exports["test:onDetach in contentScript on unload"] = WorkerTest(
|
||||
})
|
||||
},
|
||||
});
|
||||
browser.contentWindow.addEventListener('hashchange', _ => {
|
||||
assert.equal(browser.contentWindow.location.hash, '#detach!shutdown',
|
||||
browser.contentWindow.addEventListener('hashchange', _ => {
|
||||
assert.equal(browser.contentWindow.location.hash, '#detach!shutdown',
|
||||
"location.href is as expected");
|
||||
done();
|
||||
})
|
||||
@ -954,4 +916,25 @@ exports["test:console method log functions properly"] = WorkerTest(
|
||||
}
|
||||
);
|
||||
|
||||
exports["test:global postMessage"] = WorkerTest(
|
||||
WINDOW_SCRIPT_URL,
|
||||
function(assert, browser, done) {
|
||||
let contentScript = "window.addEventListener('message', function (e) {" +
|
||||
" if (e.data === 'from -> window')" +
|
||||
" self.port.emit('response', e.data, e.origin);" +
|
||||
"});" +
|
||||
"postMessage('from -> content-script', '*');";
|
||||
let { loader } = LoaderWithHookedConsole(module);
|
||||
let worker = loader.require("sdk/content/worker").Worker({
|
||||
window: browser.contentWindow,
|
||||
contentScriptWhen: "ready",
|
||||
contentScript: contentScript
|
||||
});
|
||||
|
||||
worker.port.on("response", (data, origin) => {
|
||||
assert.equal(data, "from -> window", "Communication from content-script to window completed");
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
require("test").run(exports);
|
||||
|
@ -1,12 +1,10 @@
|
||||
/* 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 { Loader } = require('sdk/test/loader');
|
||||
const Pages = require("sdk/page-worker");
|
||||
const Page = Pages.Page;
|
||||
const { Page } = require("sdk/page-worker");
|
||||
const { URL } = require("sdk/url");
|
||||
const fixtures = require("./fixtures");
|
||||
const testURI = fixtures.url("test.html");
|
||||
@ -93,17 +91,17 @@ exports.testPageProperties = function(assert) {
|
||||
|
||||
exports.testConstructorAndDestructor = function(assert, done) {
|
||||
let loader = Loader(module);
|
||||
let Pages = loader.require("sdk/page-worker");
|
||||
let { Page } = loader.require("sdk/page-worker");
|
||||
let global = loader.sandbox("sdk/page-worker");
|
||||
|
||||
let pagesReady = 0;
|
||||
|
||||
let page1 = Pages.Page({
|
||||
let page1 = Page({
|
||||
contentScript: "self.postMessage('')",
|
||||
contentScriptWhen: "end",
|
||||
onMessage: pageReady
|
||||
});
|
||||
let page2 = Pages.Page({
|
||||
let page2 = Page({
|
||||
contentScript: "self.postMessage('')",
|
||||
contentScriptWhen: "end",
|
||||
onMessage: pageReady
|
||||
@ -128,9 +126,9 @@ exports.testConstructorAndDestructor = function(assert, done) {
|
||||
|
||||
exports.testAutoDestructor = function(assert, done) {
|
||||
let loader = Loader(module);
|
||||
let Pages = loader.require("sdk/page-worker");
|
||||
let { Page } = loader.require("sdk/page-worker");
|
||||
|
||||
let page = Pages.Page({
|
||||
let page = Page({
|
||||
contentScript: "self.postMessage('')",
|
||||
contentScriptWhen: "end",
|
||||
onMessage: function() {
|
||||
@ -316,12 +314,12 @@ exports.testPingPong = function(assert, done) {
|
||||
exports.testRedirect = function (assert, done) {
|
||||
let page = Page({
|
||||
contentURL: 'data:text/html;charset=utf-8,first-page',
|
||||
contentScript: '(function () {' +
|
||||
contentScriptWhen: "end",
|
||||
contentScript: '' +
|
||||
'if (/first-page/.test(document.location.href)) ' +
|
||||
' document.location.href = "data:text/html;charset=utf-8,redirect";' +
|
||||
'else ' +
|
||||
' self.port.emit("redirect", document.location.href);' +
|
||||
'})();'
|
||||
' self.port.emit("redirect", document.location.href);'
|
||||
});
|
||||
|
||||
page.port.on('redirect', function (url) {
|
||||
|
Loading…
Reference in New Issue
Block a user