Bug 1488055 fix loading ext-browser-content script in sidebar when browser_style=false, r=rpl
Differential Revision: https://phabricator.services.mozilla.com/D5196
This commit is contained in:
@@ -2394,7 +2394,9 @@ function loadURI(uri, referrer, postData, allowThirdPartyFixup, referrerPolicy,
|
||||
forceAboutBlankViewerInCurrent,
|
||||
allowInheritPrincipal,
|
||||
});
|
||||
} catch (e) {}
|
||||
} catch (e) {
|
||||
Cu.reportError(e);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -38,7 +38,6 @@ function getBrowser(sidebar) {
|
||||
browser.setAttribute("tooltip", "aHTMLTooltip");
|
||||
browser.setAttribute("autocompletepopup", "PopupAutoComplete");
|
||||
browser.setAttribute("selectmenulist", "ContentSelectDropdown");
|
||||
browser.setAttribute("onclick", "window.parent.contentAreaClick(event, true);");
|
||||
|
||||
// Ensure that the browser is going to run in the same process of the other
|
||||
// extension pages from the same addon.
|
||||
@@ -67,20 +66,21 @@ function getBrowser(sidebar) {
|
||||
browser.messageManager.loadFrameScript("chrome://browser/content/content.js", false, true);
|
||||
ExtensionParent.apiManager.emit("extension-browser-inserted", browser);
|
||||
|
||||
if (sidebar.browserStyle) {
|
||||
browser.messageManager.loadFrameScript(
|
||||
"chrome://extensions/content/ext-browser-content.js", false, true);
|
||||
|
||||
browser.messageManager.sendAsyncMessage("Extension:InitBrowser", {
|
||||
stylesheets: ExtensionParent.extensionStylesheets,
|
||||
});
|
||||
}
|
||||
let options = sidebar.browserStyle !== false ? {stylesheets: ExtensionParent.extensionStylesheets} : {};
|
||||
browser.messageManager.sendAsyncMessage("Extension:InitBrowser", options);
|
||||
return browser;
|
||||
});
|
||||
}
|
||||
|
||||
// Stub tabbrowser implementation for use by the tab-modal alert code.
|
||||
var gBrowser = {
|
||||
get selectedBrowser() {
|
||||
return document.getElementById("webext-panels-browser");
|
||||
},
|
||||
|
||||
getTabForBrowser(browser) {
|
||||
return null;
|
||||
},
|
||||
|
||||
@@ -163,6 +163,7 @@ skip-if = (debug && os == 'linux') # Bug 1377641
|
||||
[browser_ext_settings_overrides_default_search.js]
|
||||
[browser_ext_sidebarAction.js]
|
||||
[browser_ext_sidebarAction_browser_style.js]
|
||||
[browser_ext_sidebarAction_click.js]
|
||||
[browser_ext_sidebarAction_context.js]
|
||||
[browser_ext_sidebarAction_contextMenu.js]
|
||||
[browser_ext_sidebarAction_runtime.js]
|
||||
|
||||
@@ -0,0 +1,51 @@
|
||||
/* -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- */
|
||||
/* vim: set sts=2 sw=2 et tw=80: */
|
||||
"use strict";
|
||||
|
||||
add_task(async function test_sidebar_click_isAppTab_behavior() {
|
||||
function sidebarScript() {
|
||||
browser.tabs.onUpdated.addListener(function onUpdated(tabId, changeInfo, tab) {
|
||||
if (changeInfo.status == "complete" && tab.url == "http://mochi.test:8888/") {
|
||||
browser.tabs.remove(tab.id);
|
||||
browser.test.notifyPass("sidebar-click");
|
||||
}
|
||||
});
|
||||
window.addEventListener("load", () => {
|
||||
browser.test.sendMessage("sidebar-ready");
|
||||
}, {once: true});
|
||||
}
|
||||
|
||||
let extension = ExtensionTestUtils.loadExtension({
|
||||
manifest: {
|
||||
"sidebar_action": {
|
||||
"default_panel": "panel.html",
|
||||
"browser_style": false,
|
||||
},
|
||||
"permissions": ["tabs"],
|
||||
},
|
||||
useAddonManager: "temporary",
|
||||
|
||||
files: {
|
||||
"panel.html": `
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
</head>
|
||||
<script src="panel.js" type="text/javascript"></script>
|
||||
<a id="testlink" href="http://mochi.test:8888">Bugzilla</a>
|
||||
</html>`,
|
||||
"panel.js": sidebarScript,
|
||||
},
|
||||
});
|
||||
|
||||
await extension.startup();
|
||||
await extension.awaitMessage("sidebar-ready");
|
||||
|
||||
// This test fails if docShell.isAppTab has not been set to true.
|
||||
let content = SidebarUI.browser.contentWindow;
|
||||
await BrowserTestUtils.synthesizeMouseAtCenter("#testlink", {}, content.gBrowser.selectedBrowser);
|
||||
await extension.awaitFinish("sidebar-click");
|
||||
|
||||
await extension.unload();
|
||||
});
|
||||
Reference in New Issue
Block a user