зеркало из https://github.com/mozilla/gecko-dev.git
Bug 470051 - Disable "New Tab" and "Open Location" commands in popups. r=gavin
This commit is contained in:
Родитель
4b038fd156
Коммит
ab2ee0e80a
|
@ -1052,11 +1052,15 @@ function BrowserStartup() {
|
||||||
document.documentElement.setAttribute("height", defaultHeight);
|
document.documentElement.setAttribute("height", defaultHeight);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (gURLBar &&
|
if (!window.toolbar.visible) {
|
||||||
document.documentElement.getAttribute("chromehidden").indexOf("toolbar") != -1) {
|
// adjust browser UI for popups
|
||||||
|
if (gURLBar) {
|
||||||
gURLBar.setAttribute("readonly", "true");
|
gURLBar.setAttribute("readonly", "true");
|
||||||
gURLBar.setAttribute("enablehistory", "false");
|
gURLBar.setAttribute("enablehistory", "false");
|
||||||
}
|
}
|
||||||
|
goSetCommandEnabled("Browser:OpenLocation", false);
|
||||||
|
goSetCommandEnabled("cmd_newNavigatorTab", false);
|
||||||
|
}
|
||||||
|
|
||||||
CombinedStopReload.init();
|
CombinedStopReload.init();
|
||||||
|
|
||||||
|
|
|
@ -130,6 +130,7 @@ _BROWSER_FILES = \
|
||||||
browser_page_style_menu.js \
|
browser_page_style_menu.js \
|
||||||
browser_plainTextLinks.js \
|
browser_plainTextLinks.js \
|
||||||
browser_pluginnotification.js \
|
browser_pluginnotification.js \
|
||||||
|
browser_popupUI.js \
|
||||||
browser_relatedTabs.js \
|
browser_relatedTabs.js \
|
||||||
browser_sanitize-passwordDisabledHosts.js \
|
browser_sanitize-passwordDisabledHosts.js \
|
||||||
browser_sanitize-sitepermissions.js \
|
browser_sanitize-sitepermissions.js \
|
||||||
|
|
|
@ -0,0 +1,57 @@
|
||||||
|
function test() {
|
||||||
|
waitForExplicitFinish();
|
||||||
|
gPrefService.setBoolPref("dom.disable_open_during_load", false);
|
||||||
|
|
||||||
|
var browser = gBrowser.selectedBrowser;
|
||||||
|
browser.addEventListener("load", function () {
|
||||||
|
browser.removeEventListener("load", arguments.callee, true);
|
||||||
|
|
||||||
|
if (gPrefService.prefHasUserValue("dom.disable_open_during_load"))
|
||||||
|
gPrefService.clearUserPref("dom.disable_open_during_load");
|
||||||
|
|
||||||
|
findPopup();
|
||||||
|
}, true);
|
||||||
|
|
||||||
|
content.location =
|
||||||
|
"data:text/html,<html><script>popup=open('about:blank','','width=300,height=200')</script>";
|
||||||
|
}
|
||||||
|
|
||||||
|
function findPopup() {
|
||||||
|
var enumerator = Services.wm.getEnumerator("navigator:browser");
|
||||||
|
|
||||||
|
while (enumerator.hasMoreElements()) {
|
||||||
|
let win = enumerator.getNext();
|
||||||
|
if (win.content == content.wrappedJSObject.popup) {
|
||||||
|
testPopupUI(win);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
throw "couldn't find the popup";
|
||||||
|
}
|
||||||
|
|
||||||
|
function testPopupUI(win) {
|
||||||
|
var doc = win.document;
|
||||||
|
|
||||||
|
ok(win.gURLBar, "location bar exists in the popup");
|
||||||
|
isnot(win.gURLBar.clientWidth, 0, "location bar is visible in the popup");
|
||||||
|
ok(win.gURLBar.readOnly, "location bar is read-only in the popup");
|
||||||
|
is(doc.getElementById("Browser:OpenLocation").getAttribute("disabled"), "true",
|
||||||
|
"'open location' command is disabled in the popup");
|
||||||
|
|
||||||
|
let historyButton = doc.getAnonymousElementByAttribute(win.gURLBar, "anonid",
|
||||||
|
"historydropmarker");
|
||||||
|
is(historyButton.clientWidth, 0, "history dropdown button is hidden in the popup");
|
||||||
|
|
||||||
|
EventUtils.synthesizeKey("t", { accelKey: true }, win);
|
||||||
|
is(win.gBrowser.browsers.length, 1, "Accel+T doesn't open a new tab in the popup");
|
||||||
|
|
||||||
|
EventUtils.synthesizeKey("w", { accelKey: true }, win);
|
||||||
|
ok(win.closed, "Accel+W closes the popup");
|
||||||
|
|
||||||
|
if (!win.closed)
|
||||||
|
win.close();
|
||||||
|
gBrowser.addTab();
|
||||||
|
gBrowser.removeCurrentTab();
|
||||||
|
finish();
|
||||||
|
}
|
Загрузка…
Ссылка в новой задаче