Bug 1199056 - Give the WebExtension's panels the same attributes as the other toolbar button's panels. ui-r=maritz, f=kmag, r=MarcoZ, r=billm, r=gijs

This commit is contained in:
Blake Winton 2015-10-20 11:18:11 -04:00
parent f472a0d06d
commit c271c90af3

View File

@ -128,7 +128,7 @@ global.openPanel = (node, popupURL, extension) => {
panel.setAttribute("id", makeWidgetId(extension.id) + "-panel");
panel.setAttribute("class", "browser-extension-panel");
panel.setAttribute("type", "arrow");
panel.setAttribute("flip", "slide");
panel.setAttribute("role", "group");
let anchor;
if (node.localName == "toolbarbutton") {
@ -143,18 +143,23 @@ global.openPanel = (node, popupURL, extension) => {
anchor = node;
}
let context;
panel.addEventListener("popuphidden", () => {
context.unload();
panel.remove();
});
const XUL_NS = "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul";
let browser = document.createElementNS(XUL_NS, "browser");
browser.setAttribute("type", "content");
browser.setAttribute("disableglobalhistory", "true");
panel.appendChild(browser);
let titleChangedListener = () => {
panel.setAttribute("aria-label", browser.contentTitle);
}
let context;
panel.addEventListener("popuphidden", () => {
browser.removeEventListener("DOMTitleChanged", titleChangedListener, true);
context.unload();
panel.remove();
});
let loadListener = () => {
panel.removeEventListener("load", loadListener);
@ -192,6 +197,8 @@ global.openPanel = (node, popupURL, extension) => {
panel.openPopup(anchor, "bottomcenter topright", 0, 0, false, false);
};
browser.addEventListener("load", contentLoadListener, true);
browser.addEventListener("DOMTitleChanged", titleChangedListener, true);
};
panel.addEventListener("load", loadListener);