зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1543940 - menu.popup() should take a document argument instead of toolbox r=ochameau
Depends on D27693 Menu::popup and popupAtZoom are expecting a toolbox argument as last argument. However, half of the callsites do not have access to the toolbox and just pass a { doc } object. This is misleading when trying to work on menu.js because you cannot rely on toolbox APIs. Differential Revision: https://phabricator.services.mozilla.com/D28036 --HG-- extra : moz-landing-system : lando
This commit is contained in:
Родитель
d66a731d54
Коммит
039d3e7c13
|
@ -203,7 +203,7 @@ class AccessibilityRow extends Component {
|
|||
}));
|
||||
}
|
||||
|
||||
menu.popup(e.screenX, e.screenY, gToolbox);
|
||||
menu.popup(e.screenX, e.screenY, gToolbox.doc);
|
||||
|
||||
if (gTelemetry) {
|
||||
gTelemetry.scalarAdd(TELEMETRY_ACCESSIBLE_CONTEXT_MENU_OPENED, 1);
|
||||
|
|
|
@ -59,11 +59,11 @@ Menu.prototype.insert = function(pos, menuItem) {
|
|||
*
|
||||
* @param {int} x
|
||||
* @param {int} y
|
||||
* @param Toolbox toolbox
|
||||
* @param {Document} doc
|
||||
*/
|
||||
Menu.prototype.popupWithZoom = function(x, y, toolbox) {
|
||||
const zoom = getCurrentZoom(toolbox.doc);
|
||||
this.popup(x * zoom, y * zoom, toolbox);
|
||||
Menu.prototype.popupWithZoom = function(x, y, doc) {
|
||||
const zoom = getCurrentZoom(doc);
|
||||
this.popup(x * zoom, y * zoom, doc);
|
||||
};
|
||||
|
||||
/**
|
||||
|
@ -75,12 +75,10 @@ Menu.prototype.popupWithZoom = function(x, y, toolbox) {
|
|||
*
|
||||
* @param {int} screenX
|
||||
* @param {int} screenY
|
||||
* @param Toolbox toolbox (non standard)
|
||||
* Needed so we in which window to inject XUL
|
||||
* @param {Document} doc
|
||||
* The document that should own the context menu.
|
||||
*/
|
||||
Menu.prototype.popup = function(screenX, screenY, toolbox) {
|
||||
const doc = toolbox.doc;
|
||||
|
||||
Menu.prototype.popup = function(screenX, screenY, doc) {
|
||||
let popupset = doc.querySelector("popupset");
|
||||
if (!popupset) {
|
||||
popupset = doc.createXULElement("popupset");
|
||||
|
|
|
@ -80,7 +80,7 @@ async function testMenuPopup(toolbox) {
|
|||
visible: false,
|
||||
}));
|
||||
|
||||
menu.popup(0, 0, toolbox);
|
||||
menu.popup(0, 0, toolbox.doc);
|
||||
|
||||
ok(toolbox.doc.querySelector("#menu-popup"), "A popup is in the DOM");
|
||||
|
||||
|
@ -143,7 +143,7 @@ async function testSubmenu(toolbox) {
|
|||
disabled: true,
|
||||
}));
|
||||
|
||||
menu.popup(0, 0, toolbox);
|
||||
menu.popup(0, 0, toolbox.doc);
|
||||
ok(toolbox.doc.querySelector("#menu-popup"), "A popup is in the DOM");
|
||||
is(toolbox.doc.querySelectorAll("#menu-popup > menuitem").length, 0,
|
||||
"No menuitem children");
|
||||
|
|
|
@ -3253,7 +3253,7 @@ Toolbox.prototype = {
|
|||
menu.once("open", () => this.emit("menu-open"));
|
||||
menu.once("close", () => this.emit("menu-close"));
|
||||
|
||||
menu.popup(x, y, { doc: this.doc });
|
||||
menu.popup(x, y, this.doc);
|
||||
},
|
||||
|
||||
/**
|
||||
|
|
|
@ -87,7 +87,7 @@ class ChangesContextMenu {
|
|||
});
|
||||
menu.append(menuitemSelectAll);
|
||||
|
||||
menu.popup(screenX, screenY, this.inspector.toolbox);
|
||||
menu.popup(screenX, screenY, this.inspector.toolbox.doc);
|
||||
return menu;
|
||||
}
|
||||
|
||||
|
|
|
@ -752,7 +752,7 @@ class MarkupContextMenu {
|
|||
menu.append(menuitem);
|
||||
}
|
||||
|
||||
menu.popup(screenX, screenY, this.toolbox);
|
||||
menu.popup(screenX, screenY, this.toolbox.doc);
|
||||
return menu;
|
||||
}
|
||||
|
||||
|
|
|
@ -238,7 +238,7 @@ StyleInspectorMenu.prototype = {
|
|||
});
|
||||
menu.append(menuitemSources);
|
||||
|
||||
menu.popup(screenX, screenY, this.inspector._toolbox);
|
||||
menu.popup(screenX, screenY, this.inspector.toolbox.doc);
|
||||
return menu;
|
||||
},
|
||||
|
||||
|
|
|
@ -71,7 +71,7 @@ function showMenu(items, options) {
|
|||
doc = window.parent.document;
|
||||
}
|
||||
|
||||
menu.popup(screenX, screenY, { doc });
|
||||
menu.popup(screenX, screenY, doc);
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
|
|
|
@ -300,7 +300,7 @@ class Tabbar extends Component {
|
|||
const screenX = target.ownerDocument.defaultView.mozInnerScreenX;
|
||||
const screenY = target.ownerDocument.defaultView.mozInnerScreenY;
|
||||
menu.popupWithZoom(rect.left + screenX, rect.bottom + screenY,
|
||||
{ doc: this.props.menuDocument });
|
||||
this.props.menuDocument);
|
||||
|
||||
return menu;
|
||||
}
|
||||
|
|
|
@ -201,7 +201,7 @@ StyleEditorUI.prototype = {
|
|||
this._optionsButton.removeAttribute("open");
|
||||
});
|
||||
|
||||
this._optionsMenu.popup(screenX, screenY, this._toolbox);
|
||||
this._optionsMenu.popup(screenX, screenY, this._toolbox.doc);
|
||||
},
|
||||
|
||||
/**
|
||||
|
|
|
@ -256,7 +256,7 @@ class WebConsoleWrapper {
|
|||
|
||||
// Emit the "menu-open" event for testing.
|
||||
menu.once("open", () => this.emit("menu-open"));
|
||||
menu.popup(screenX, screenY, { doc: this.hud.chromeWindow.document });
|
||||
menu.popup(screenX, screenY, this.hud.chromeWindow.document);
|
||||
|
||||
return menu;
|
||||
};
|
||||
|
@ -266,7 +266,7 @@ class WebConsoleWrapper {
|
|||
const menu = createEditContextMenu(window, "webconsole-menu");
|
||||
// Emit the "menu-open" event for testing.
|
||||
menu.once("open", () => this.emit("menu-open"));
|
||||
menu.popup(screenX, screenY, { doc: this.hud.chromeWindow.document });
|
||||
menu.popup(screenX, screenY, this.hud.chromeWindow.document);
|
||||
|
||||
return menu;
|
||||
};
|
||||
|
|
Загрузка…
Ссылка в новой задаче