Bug 470051 - Disable "New Tab" and "Open Location" commands in popups. r=gavin

This commit is contained in:
Dão Gottwald 2010-04-22 09:24:39 +02:00
Родитель 4b038fd156
Коммит ab2ee0e80a
3 изменённых файлов: 66 добавлений и 4 удалений

Просмотреть файл

@ -1052,11 +1052,15 @@ function BrowserStartup() {
document.documentElement.setAttribute("height", defaultHeight);
}
if (gURLBar &&
document.documentElement.getAttribute("chromehidden").indexOf("toolbar") != -1) {
if (!window.toolbar.visible) {
// adjust browser UI for popups
if (gURLBar) {
gURLBar.setAttribute("readonly", "true");
gURLBar.setAttribute("enablehistory", "false");
}
goSetCommandEnabled("Browser:OpenLocation", false);
goSetCommandEnabled("cmd_newNavigatorTab", false);
}
CombinedStopReload.init();

Просмотреть файл

@ -130,6 +130,7 @@ _BROWSER_FILES = \
browser_page_style_menu.js \
browser_plainTextLinks.js \
browser_pluginnotification.js \
browser_popupUI.js \
browser_relatedTabs.js \
browser_sanitize-passwordDisabledHosts.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();
}