mirror of
https://github.com/mozilla/gecko-dev.git
synced 2025-02-05 22:05:40 +00:00
Backout of bug 574688 due to test failure, a=backout.
This commit is contained in:
parent
a3d5af6e95
commit
036e742d29
@ -415,12 +415,15 @@ pref("general.warnOnAboutConfig", false);
|
||||
pref("dom.max_script_run_time", 20);
|
||||
#endif
|
||||
|
||||
// Make the status bar reliably present and unaffected by pages
|
||||
pref("dom.disable_window_open_feature.status", true);
|
||||
// This is the pref to control the location bar, change this to true to
|
||||
// force this - this makes the origin of popup windows more obvious to avoid
|
||||
// spoofing. We would rather not do it by default because it affects UE for web
|
||||
// applications, but without it there isn't a really good way to prevent chrome
|
||||
// spoofing, see bug 337344
|
||||
// force this instead of or in addition to the status bar - this makes
|
||||
// the origin of popup windows more obvious to avoid spoofing. We would
|
||||
// rather not do it by default because it affects UE for web applications, but
|
||||
// without it there isn't a really good way to prevent chrome spoofing, see bug 337344
|
||||
pref("dom.disable_window_open_feature.location", true);
|
||||
pref("dom.disable_window_status_change", true);
|
||||
// allow JS to move and resize existing windows
|
||||
pref("dom.disable_window_move_resize", false);
|
||||
// prevent JS from monkeying with window focus, etc
|
||||
@ -993,6 +996,8 @@ pref("services.sync.prefs.sync.browser.urlbar.maxRichResults", true);
|
||||
pref("services.sync.prefs.sync.dom.disable_open_during_load", true);
|
||||
pref("services.sync.prefs.sync.dom.disable_window_flip", true);
|
||||
pref("services.sync.prefs.sync.dom.disable_window_move_resize", true);
|
||||
pref("services.sync.prefs.sync.dom.disable_window_open_feature.status", true);
|
||||
pref("services.sync.prefs.sync.dom.disable_window_status_change", true);
|
||||
pref("services.sync.prefs.sync.dom.event.contextmenu.enabled", true);
|
||||
pref("services.sync.prefs.sync.extensions.personas.current", true);
|
||||
pref("services.sync.prefs.sync.extensions.update.enabled", true);
|
||||
|
@ -229,6 +229,16 @@
|
||||
command="cmd_CustomizeToolbars"/>
|
||||
</menupopup>
|
||||
</menu>
|
||||
<menuitem id="toggle_taskbar"
|
||||
label="&taskbarCmd.label;"
|
||||
accesskey="&taskbarCmd.accesskey;"
|
||||
type="checkbox"
|
||||
command="cmd_toggleTaskbar"
|
||||
#ifndef WINCE
|
||||
checked="true" />
|
||||
#else
|
||||
checked="false" />
|
||||
#endif
|
||||
<menu id="viewSidebarMenuMenu"
|
||||
label="&viewSidebarMenu.label;"
|
||||
accesskey="&viewSidebarMenu.accesskey;">
|
||||
|
@ -635,9 +635,8 @@ HistoryMenu.prototype = {
|
||||
m.setAttribute("value", i);
|
||||
m.setAttribute("oncommand", "undoCloseTab(" + i + ");");
|
||||
|
||||
// Set the targetURI attribute so it will be shown in tooltip and trigger
|
||||
// onLinkHovered. SessionStore uses one-based indexes, so we need to
|
||||
// normalize them.
|
||||
// Set the targetURI attribute so it will be shown in tooltip and statusbar.
|
||||
// SessionStore uses one-based indexes, so we need to normalize them.
|
||||
let tabData = undoItems[i].state;
|
||||
let activeIndex = (tabData.index || tabData.entries.length) - 1;
|
||||
if (activeIndex >= 0 && tabData.entries[activeIndex])
|
||||
@ -717,7 +716,7 @@ HistoryMenu.prototype = {
|
||||
m.setAttribute("class", "menuitem-iconic bookmark-item menuitem-with-favicon");
|
||||
m.setAttribute("oncommand", "undoCloseWindow(" + i + ");");
|
||||
|
||||
// Set the targetURI attribute so it will be shown in tooltip.
|
||||
// Set the targetURI attribute so it will be shown in tooltip and statusbar.
|
||||
// SessionStore uses one-based indexes, so we need to normalize them.
|
||||
let activeIndex = (selectedTab.index || selectedTab.entries.length) - 1;
|
||||
if (activeIndex >= 0 && selectedTab.entries[activeIndex])
|
||||
@ -1165,7 +1164,9 @@ let BookmarksMenuButton = {
|
||||
// First popupshowing event, initialize immutable attributes.
|
||||
this._popupInitialized = true;
|
||||
// Update View bookmarks toolbar checkbox menuitem.
|
||||
viewToolbar.setAttribute("toolbarId", this.personalToolbar.id);
|
||||
viewToolbar.setAttribute("toolbarindex",
|
||||
Array.indexOf(gNavToolbox.childNodes,
|
||||
this.personalToolbar));
|
||||
|
||||
// Need to set the label on Unsorted Bookmarks menu.
|
||||
let unsortedBookmarksElt =
|
||||
|
@ -69,6 +69,7 @@
|
||||
<command id="cmd_printPreview" oncommand="PrintUtils.printPreview(PrintPreviewListener);"/>
|
||||
<command id="cmd_close" oncommand="BrowserCloseTabOrWindow()"/>
|
||||
<command id="cmd_closeWindow" oncommand="BrowserTryToCloseWindow()"/>
|
||||
<command id="cmd_toggleTaskbar" oncommand="goToggleToolbar('status-bar','toggle_taskbar');"/>
|
||||
<command id="cmd_ToggleTabsOnTop" oncommand="TabsOnTop.toggle()"/>
|
||||
<command id="cmd_CustomizeToolbars" oncommand="BrowserCustomizeToolbar()"/>
|
||||
<command id="cmd_quitApplication" oncommand="goQuitApplication()"/>
|
||||
|
@ -140,7 +140,7 @@ let gSyncUI = {
|
||||
|
||||
// Fake the tab object on the menu entries, so that we don't have to worry
|
||||
// about removing them ourselves. They will just get cleaned up by popup
|
||||
// binding.
|
||||
// binding. This also makes sure the statusbar updates with the URL.
|
||||
menuitem.tab = { "linkedBrowser": { "currentURI": { "spec": label } } };
|
||||
sep.tab = { "linkedBrowser": { "currentURI": { "spec": " " } } };
|
||||
|
||||
|
@ -317,10 +317,22 @@ window[chromehidden~="toolbar"] toolbar:not(.toolbar-primary):not(.chromeclass-m
|
||||
}
|
||||
|
||||
#navigator-toolbox ,
|
||||
#status-bar ,
|
||||
#mainPopupSet {
|
||||
min-width: 1px;
|
||||
}
|
||||
|
||||
/* Sync statusbar UI */
|
||||
%ifdef MOZ_SERVICES_SYNC
|
||||
#sync-notifications-box {
|
||||
-moz-binding: url("chrome://browser/content/syncNotification.xml#notificationbox");
|
||||
}
|
||||
|
||||
#sync-notifications-box notification {
|
||||
-moz-binding: url("chrome://browser/content/syncNotification.xml#notification");
|
||||
}
|
||||
%endif
|
||||
|
||||
/* Identity UI */
|
||||
#identity-popup-content-box.unknownIdentity > #identity-popup-connectedToLabel ,
|
||||
#identity-popup-content-box.unknownIdentity > #identity-popup-runByLabel ,
|
||||
|
@ -373,14 +373,24 @@ function findChildShell(aDocument, aDocShell, aSoughtURI) {
|
||||
}
|
||||
|
||||
const gPopupBlockerObserver = {
|
||||
_reportButton: null,
|
||||
|
||||
onUpdatePageReport: function (aEvent)
|
||||
{
|
||||
if (aEvent.originalTarget != gBrowser.selectedBrowser)
|
||||
return;
|
||||
|
||||
if (!gBrowser.pageReport)
|
||||
if (!this._reportButton)
|
||||
this._reportButton = document.getElementById("page-report-button");
|
||||
|
||||
if (!gBrowser.pageReport) {
|
||||
// Hide the popup blocker statusbar button
|
||||
this._reportButton.hidden = true;
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
this._reportButton.hidden = false;
|
||||
|
||||
// Only show the notification again if we've not already shown it. Since
|
||||
// notifications are per-browser, we don't need to worry about re-adding
|
||||
@ -538,7 +548,10 @@ const gPopupBlockerObserver = {
|
||||
var blockedPopupDontShowMessage = document.getElementById("blockedPopupDontShowMessage");
|
||||
var showMessage = gPrefService.getBoolPref("privacy.popups.showBrowserMessage");
|
||||
blockedPopupDontShowMessage.setAttribute("checked", !showMessage);
|
||||
blockedPopupDontShowMessage.setAttribute("label", gNavigatorBundle.getString("popupWarningDontShowFromMessage"));
|
||||
if (aEvent.target.localName == "popup")
|
||||
blockedPopupDontShowMessage.setAttribute("label", gNavigatorBundle.getString("popupWarningDontShowFromMessage"));
|
||||
else
|
||||
blockedPopupDontShowMessage.setAttribute("label", gNavigatorBundle.getString("popupWarningDontShowFromStatusbar"));
|
||||
},
|
||||
|
||||
showBlockedPopup: function (aEvent)
|
||||
@ -585,8 +598,6 @@ const gPopupBlockerObserver = {
|
||||
|
||||
dontShowMessage: function ()
|
||||
{
|
||||
#if 0
|
||||
// Disabled until bug 594294 is fixed.
|
||||
var showMessage = gPrefService.getBoolPref("privacy.popups.showBrowserMessage");
|
||||
var firstTime = gPrefService.getBoolPref("privacy.popups.firstTime");
|
||||
|
||||
@ -597,7 +608,6 @@ const gPopupBlockerObserver = {
|
||||
this._displayPageReportFirstTime();
|
||||
|
||||
gPrefService.setBoolPref("privacy.popups.showBrowserMessage", !showMessage);
|
||||
#endif
|
||||
|
||||
gBrowser.getNotificationBox().removeCurrentNotification();
|
||||
},
|
||||
@ -1526,6 +1536,9 @@ function delayedStartup(isLoadingBlank, mustLoadSidebar) {
|
||||
gDownloadMgr = Cc["@mozilla.org/download-manager;1"].
|
||||
getService(Ci.nsIDownloadManager);
|
||||
|
||||
// Initialize the downloads monitor panel listener
|
||||
DownloadMonitorPanel.init();
|
||||
|
||||
if (Win7Features) {
|
||||
let tempScope = {};
|
||||
Cu.import("resource://gre/modules/DownloadTaskbarProgress.jsm",
|
||||
@ -1635,6 +1648,7 @@ function BrowserShutdown()
|
||||
|
||||
BrowserOffline.uninit();
|
||||
OfflineApps.uninit();
|
||||
DownloadMonitorPanel.uninit();
|
||||
gPrivateBrowsingUI.uninit();
|
||||
IndexedDBPromptHelper.uninit();
|
||||
|
||||
@ -1667,7 +1681,7 @@ function nonBrowserWindowStartup()
|
||||
// Disable inappropriate commands / submenus
|
||||
var disabledItems = ['Browser:SavePage',
|
||||
'Browser:SendLink', 'cmd_pageSetup', 'cmd_print', 'cmd_find', 'cmd_findAgain',
|
||||
'viewToolbarsMenu', 'viewSidebarMenuMenu', 'Browser:Reload',
|
||||
'viewToolbarsMenu', 'cmd_toggleTaskbar', 'viewSidebarMenuMenu', 'Browser:Reload',
|
||||
'viewFullZoomMenu', 'pageStyleMenu', 'charsetMenu', 'View:PageSource', 'View:FullScreen',
|
||||
'viewHistorySidebar', 'Browser:AddBookmarkAs', 'View:PageInfo', 'Tasks:InspectPage'];
|
||||
var element;
|
||||
@ -2783,9 +2797,9 @@ var PrintPreviewListener = {
|
||||
notificationBox.notificationsHidden = true;
|
||||
|
||||
document.getElementById("sidebar").setAttribute("src", "about:blank");
|
||||
var addonBar = document.getElementById("addon-bar");
|
||||
this._chromeState.addonBarOpen = !addonBar.collapsed;
|
||||
addonBar.collapsed = true;
|
||||
var statusbar = document.getElementById("status-bar");
|
||||
this._chromeState.statusbarOpen = !statusbar.hidden;
|
||||
statusbar.hidden = true;
|
||||
|
||||
this._chromeState.findOpen = gFindBarInitialized && !gFindBar.hidden;
|
||||
if (gFindBarInitialized)
|
||||
@ -2795,8 +2809,8 @@ var PrintPreviewListener = {
|
||||
if (this._chromeState.notificationsOpen)
|
||||
gBrowser.getNotificationBox().notificationsHidden = false;
|
||||
|
||||
if (this._chromeState.addonBarOpen)
|
||||
document.getElementById("addon-bar").collapsed = false;
|
||||
if (this._chromeState.statusbarOpen)
|
||||
document.getElementById("status-bar").hidden = false;
|
||||
|
||||
if (this._chromeState.findOpen)
|
||||
gFindBar.open();
|
||||
@ -2923,7 +2937,8 @@ var browserDragAndDrop = {
|
||||
aEvent.preventDefault();
|
||||
|
||||
if (statusString) {
|
||||
XULBrowserWindow.setStatusText(gNavigatorBundle.getString(statusString));
|
||||
var statusTextFld = document.getElementById("statusbar-display");
|
||||
statusTextFld.label = gNavigatorBundle.getString(statusString);
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -2944,7 +2959,8 @@ var homeButtonObserver = {
|
||||
},
|
||||
onDragLeave: function (aEvent)
|
||||
{
|
||||
XULWindowBrowser.setStatusText("");
|
||||
var statusTextFld = document.getElementById("statusbar-display");
|
||||
statusTextFld.label = "";
|
||||
}
|
||||
}
|
||||
|
||||
@ -2987,7 +3003,8 @@ var bookmarksButtonObserver = {
|
||||
|
||||
onDragLeave: function (aEvent)
|
||||
{
|
||||
XULWindowBrowser.setStatusText("");
|
||||
var statusTextFld = document.getElementById("statusbar-display");
|
||||
statusTextFld.label = "";
|
||||
}
|
||||
}
|
||||
|
||||
@ -2999,7 +3016,8 @@ var newTabButtonObserver = {
|
||||
|
||||
onDragLeave: function (aEvent)
|
||||
{
|
||||
XULWindowBrowser.setStatusText("");
|
||||
var statusTextFld = document.getElementById("statusbar-display");
|
||||
statusTextFld.label = "";
|
||||
},
|
||||
|
||||
onDrop: function (aEvent)
|
||||
@ -3021,7 +3039,8 @@ var newWindowButtonObserver = {
|
||||
},
|
||||
onDragLeave: function (aEvent)
|
||||
{
|
||||
XULWindowBrowser.setStatusText("");
|
||||
var statusTextFld = document.getElementById("statusbar-display");
|
||||
statusTextFld.label = "";
|
||||
},
|
||||
onDrop: function (aEvent)
|
||||
{
|
||||
@ -3038,7 +3057,8 @@ var newWindowButtonObserver = {
|
||||
var DownloadsButtonDNDObserver = {
|
||||
onDragOver: function (aEvent)
|
||||
{
|
||||
XULWindowBrowser.setStatusText(gNavigatorBundle.getString("dropondownloadsbutton"));
|
||||
var statusTextFld = document.getElementById("statusbar-display");
|
||||
statusTextFld.label = gNavigatorBundle.getString("dropondownloadsbutton");
|
||||
var types = aEvent.dataTransfer.types;
|
||||
if (types.contains("text/x-moz-url") ||
|
||||
types.contains("text/uri-list") ||
|
||||
@ -3048,7 +3068,8 @@ var DownloadsButtonDNDObserver = {
|
||||
|
||||
onDragLeave: function (aEvent)
|
||||
{
|
||||
XULWindowBrowser.setStatusText("");
|
||||
var statusTextFld = document.getElementById("statusbar-display");
|
||||
statusTextFld.label = "";
|
||||
},
|
||||
|
||||
onDrop: function (aEvent)
|
||||
@ -3667,8 +3688,9 @@ var FullScreen = {
|
||||
if (event && event.type == "fullscreen")
|
||||
enterFS = !enterFS;
|
||||
|
||||
// show/hide all menubars, toolbars (except the full screen toolbar)
|
||||
// show/hide all menubars, toolbars, and statusbars (except the full screen toolbar)
|
||||
this.showXULChrome("toolbar", !enterFS);
|
||||
this.showXULChrome("statusbar", !enterFS);
|
||||
document.getElementById("View:FullScreen").setAttribute("checked", enterFS);
|
||||
|
||||
if (enterFS) {
|
||||
@ -4014,6 +4036,14 @@ var XULBrowserWindow = {
|
||||
delete this.reloadCommand;
|
||||
return this.reloadCommand = document.getElementById("Browser:Reload");
|
||||
},
|
||||
get statusTextField () {
|
||||
delete this.statusTextField;
|
||||
return this.statusTextField = document.getElementById("statusbar-display");
|
||||
},
|
||||
get securityButton () {
|
||||
delete this.securityButton;
|
||||
return this.securityButton = document.getElementById("security-button");
|
||||
},
|
||||
get isImage () {
|
||||
delete this.isImage;
|
||||
return this.isImage = document.getElementById("isImage");
|
||||
@ -4040,19 +4070,24 @@ var XULBrowserWindow = {
|
||||
delete this.statusMeter;
|
||||
delete this.stopCommand;
|
||||
delete this.reloadCommand;
|
||||
delete this.statusTextField;
|
||||
delete this.securityButton;
|
||||
delete this.statusText;
|
||||
},
|
||||
|
||||
setJSStatus: function (status) {
|
||||
this.jsStatus = status;
|
||||
this.updateStatusField();
|
||||
},
|
||||
|
||||
setJSDefaultStatus: function (status) {
|
||||
this.jsDefaultStatus = status;
|
||||
this.updateStatusField();
|
||||
},
|
||||
|
||||
setDefaultStatus: function (status) {
|
||||
this.defaultStatus = status;
|
||||
this.updateStatusField();
|
||||
},
|
||||
|
||||
setOverLink: function (link) {
|
||||
@ -4063,6 +4098,17 @@ var XULBrowserWindow = {
|
||||
gURLBar.setOverLink(link);
|
||||
},
|
||||
|
||||
updateStatusField: function () {
|
||||
var text = this.status || this.jsStatus || this.jsDefaultStatus || this.defaultStatus;
|
||||
|
||||
// check the current value so we don't trigger an attribute change
|
||||
// and cause needless (slow!) UI updates
|
||||
if (this.statusText != text) {
|
||||
this.statusTextField.label = text;
|
||||
this.statusText = text;
|
||||
}
|
||||
},
|
||||
|
||||
onLinkIconAvailable: function (aIconURL) {
|
||||
if (gProxyFavIcon && gBrowser.userTypedValue === null)
|
||||
PageProxySetIcon(aIconURL); // update the favicon in the URL bar
|
||||
@ -4315,13 +4361,14 @@ var XULBrowserWindow = {
|
||||
this.asyncUpdateUI();
|
||||
},
|
||||
|
||||
asyncUpdateUI: function XWB_asyncUpdateUI() {
|
||||
asyncUpdateUI: function () {
|
||||
FeedHandler.updateFeeds();
|
||||
BrowserSearch.updateSearchButton();
|
||||
},
|
||||
|
||||
onStatusChange: function XWB_onStatusChange(aWebProgress, aRequest, aStatus, aMessage) {
|
||||
onStatusChange: function (aWebProgress, aRequest, aStatus, aMessage) {
|
||||
this.status = aMessage;
|
||||
this.updateStatusField();
|
||||
},
|
||||
|
||||
// Properties used to cache security state used to update the UI
|
||||
@ -4329,7 +4376,7 @@ var XULBrowserWindow = {
|
||||
_tooltipText: null,
|
||||
_hostChanged: false, // onLocationChange will flip this bit
|
||||
|
||||
onSecurityChange: function XWB_onSecurityChange(aWebProgress, aRequest, aState) {
|
||||
onSecurityChange: function (aWebProgress, aRequest, aState) {
|
||||
// Don't need to do anything if the data we use to update the UI hasn't
|
||||
// changed
|
||||
if (this._state == aState &&
|
||||
@ -4386,15 +4433,21 @@ var XULBrowserWindow = {
|
||||
}
|
||||
|
||||
if (level) {
|
||||
this.securityButton.setAttribute("level", level);
|
||||
this.securityButton.hidden = false;
|
||||
// We don't style the Location Bar based on the the 'level' attribute
|
||||
// anymore, but still set it for third-party themes.
|
||||
if (gURLBar)
|
||||
gURLBar.setAttribute("level", level);
|
||||
} else {
|
||||
this.securityButton.hidden = true;
|
||||
this.securityButton.removeAttribute("level");
|
||||
if (gURLBar)
|
||||
gURLBar.removeAttribute("level");
|
||||
}
|
||||
|
||||
this.securityButton.setAttribute("tooltiptext", this._tooltipText);
|
||||
|
||||
// Don't pass in the actual location object, since it can cause us to
|
||||
// hold on to the window object too long. Just pass in the fields we
|
||||
// care about. (bug 424829)
|
||||
@ -4413,7 +4466,7 @@ var XULBrowserWindow = {
|
||||
},
|
||||
|
||||
// simulate all change notifications after switching tabs
|
||||
onUpdateCurrentBrowser: function XWB_onUpdateCurrentBrowser(aStateFlags, aStatus, aMessage, aTotalProgress) {
|
||||
onUpdateCurrentBrowser: function (aStateFlags, aStatus, aMessage, aTotalProgress) {
|
||||
if (FullZoom.updateBackgroundTabs)
|
||||
FullZoom.onLocationChange(gBrowser.currentURI, true);
|
||||
var nsIWebProgressListener = Components.interfaces.nsIWebProgressListener;
|
||||
@ -4434,7 +4487,7 @@ var XULBrowserWindow = {
|
||||
this.onProgressChange(gBrowser.webProgress, 0, 0, aTotalProgress, 1);
|
||||
},
|
||||
|
||||
startDocumentLoad: function XWB_startDocumentLoad(aRequest) {
|
||||
startDocumentLoad: function (aRequest) {
|
||||
// clear out feed data
|
||||
gBrowser.selectedBrowser.feeds = null;
|
||||
|
||||
@ -4448,7 +4501,7 @@ var XULBrowserWindow = {
|
||||
}
|
||||
},
|
||||
|
||||
endDocumentLoad: function XWB_endDocumentLoad(aRequest, aStatus) {
|
||||
endDocumentLoad: function (aRequest, aStatus) {
|
||||
var urlStr = aRequest.QueryInterface(Ci.nsIChannel).originalURI.spec;
|
||||
|
||||
var notification = Components.isSuccessCode(aStatus) ? "EndDocumentLoad" : "FailDocumentLoad";
|
||||
@ -4720,23 +4773,20 @@ function onViewToolbarsPopupShowing(aEvent, aInsertPoint) {
|
||||
// Empty the menu
|
||||
for (i = popup.childNodes.length-1; i >= 0; --i) {
|
||||
var deadItem = popup.childNodes[i];
|
||||
if (deadItem.hasAttribute("toolbarId"))
|
||||
if (deadItem.hasAttribute("toolbarindex"))
|
||||
popup.removeChild(deadItem);
|
||||
}
|
||||
|
||||
var firstMenuItem = aInsertPoint || popup.firstChild;
|
||||
|
||||
let toolbarNodes = [document.getElementById("addon-bar")];
|
||||
for (i = 0; i < gNavToolbox.childNodes.length; ++i)
|
||||
toolbarNodes.push(gNavToolbox.childNodes[i]);
|
||||
toolbarNodes.forEach(function(toolbar) {
|
||||
for (i = 0; i < gNavToolbox.childNodes.length; ++i) {
|
||||
var toolbar = gNavToolbox.childNodes[i];
|
||||
var toolbarName = toolbar.getAttribute("toolbarname");
|
||||
if (toolbarName) {
|
||||
let menuItem = document.createElement("menuitem");
|
||||
let hidingAttribute = toolbar.getAttribute("type") == "menubar" ?
|
||||
"autohide" : "collapsed";
|
||||
menuItem.setAttribute("id", "toggle_" + toolbar.id);
|
||||
menuItem.setAttribute("toolbarId", toolbar.id);
|
||||
menuItem.setAttribute("toolbarindex", i);
|
||||
menuItem.setAttribute("type", "checkbox");
|
||||
menuItem.setAttribute("label", toolbarName);
|
||||
menuItem.setAttribute("checked", toolbar.getAttribute(hidingAttribute) != "true");
|
||||
@ -4746,21 +4796,22 @@ function onViewToolbarsPopupShowing(aEvent, aInsertPoint) {
|
||||
|
||||
menuItem.addEventListener("command", onViewToolbarCommand, false);
|
||||
}
|
||||
}, this);
|
||||
toolbar = toolbar.nextSibling;
|
||||
}
|
||||
}
|
||||
|
||||
function onViewToolbarCommand(aEvent) {
|
||||
var toolbarId = aEvent.originalTarget.getAttribute("toolbarId");
|
||||
var toolbar = document.getElementById(toolbarId);
|
||||
var isVisible = aEvent.originalTarget.getAttribute("checked") == "true";
|
||||
setToolbarVisibility(toolbar, isVisible);
|
||||
var index = aEvent.originalTarget.getAttribute("toolbarindex");
|
||||
var toolbar = gNavToolbox.childNodes[index];
|
||||
var visible = aEvent.originalTarget.getAttribute("checked") == "true";
|
||||
setToolbarVisibility(toolbar, visible);
|
||||
}
|
||||
|
||||
function setToolbarVisibility(toolbar, isVisible) {
|
||||
function setToolbarVisibility(toolbar, visible) {
|
||||
var hidingAttribute = toolbar.getAttribute("type") == "menubar" ?
|
||||
"autohide" : "collapsed";
|
||||
|
||||
toolbar.setAttribute(hidingAttribute, !isVisible);
|
||||
toolbar.setAttribute(hidingAttribute, !visible);
|
||||
document.persist(toolbar.id, hidingAttribute);
|
||||
|
||||
PlacesToolbarHelper.init();
|
||||
@ -7629,6 +7680,10 @@ let gPrivateBrowsingUI = {
|
||||
gBrowser.updateTitlebar();
|
||||
}
|
||||
|
||||
setTimeout(function () {
|
||||
DownloadMonitorPanel.updateStatus();
|
||||
}, 0);
|
||||
|
||||
if (!aOnWindowOpen && this._disableUIOnToggle)
|
||||
document.getElementById("Tools:PrivateBrowsing")
|
||||
.setAttribute("disabled", "true");
|
||||
@ -7687,6 +7742,10 @@ let gPrivateBrowsingUI = {
|
||||
|
||||
gLastOpenDirectory.reset();
|
||||
|
||||
setTimeout(function () {
|
||||
DownloadMonitorPanel.updateStatus();
|
||||
}, 0);
|
||||
|
||||
if (this._disableUIOnToggle)
|
||||
document.getElementById("Tools:PrivateBrowsing")
|
||||
.setAttribute("disabled", "true");
|
||||
|
@ -721,7 +721,7 @@
|
||||
<menu class="split-menuitem-menu"
|
||||
label="&preferencesCmd.label;">
|
||||
<menupopup id="appmenu_customizeMenu"
|
||||
onpopupshowing="onViewToolbarsPopupShowing(event, document.getElementById('appmenu_preferences').nextSibling.nextSibling);">
|
||||
onpopupshowing="onViewToolbarsPopupShowing(event, document.getElementById('appmenu_toggleStatusbar'));">
|
||||
<menuitem id="appmenu_preferences"
|
||||
#ifdef XP_UNIX
|
||||
label="&preferencesCmdUnix.label;"
|
||||
@ -730,6 +730,10 @@
|
||||
#endif
|
||||
oncommand="openPreferences();"/>
|
||||
<menuseparator/>
|
||||
<menuitem id="appmenu_toggleStatusbar"
|
||||
type="checkbox"
|
||||
command="cmd_toggleTaskbar"
|
||||
observes="toggle_taskbar"/>
|
||||
<menuseparator/>
|
||||
<menuitem id="appmenu_toggleTabsOnTop"
|
||||
label="&viewTabsOnTop.label;"
|
||||
@ -1278,10 +1282,40 @@
|
||||
</hbox>
|
||||
|
||||
<vbox id="browser-bottombox" layer="true">
|
||||
<toolbar id="addon-bar" toolbarname="&addonBarCmd.label;" collapsed="true"
|
||||
class="toolbar-primary chromeclass-toolbar"
|
||||
context="toolbar-context-menu" toolboxid="navigator-toolbox"
|
||||
customizable="true"/>
|
||||
<statusbar class="chromeclass-status" id="status-bar"
|
||||
#ifdef WINCE
|
||||
hidden="true"
|
||||
#endif
|
||||
>
|
||||
<statusbarpanel id="statusbar-display" label="" flex="1"/>
|
||||
<statusbarpanel id="download-monitor" class="statusbarpanel-iconic-text"
|
||||
tooltiptext="&downloadMonitor2.tooltip;" hidden="true"
|
||||
command="Tools:Downloads"/>
|
||||
<statusbarpanel id="security-button" class="statusbarpanel-iconic"
|
||||
hidden="true"
|
||||
onclick="if (event.button == 0 && event.detail == 1) displaySecurityInfo();"/>
|
||||
#ifdef MOZ_SERVICES_SYNC
|
||||
<statusbarpanel id="sync-notifications-button"
|
||||
class="statusbarpanel-iconic-text"
|
||||
hidden="true"
|
||||
popup="sync-notifications-panel">
|
||||
</statusbarpanel>
|
||||
<panel id="sync-notifications-panel" position="before_end">
|
||||
<notificationbox id="sync-notifications-box"/>
|
||||
</panel>
|
||||
#endif
|
||||
<statusbarpanel id="page-report-button" type="menu"
|
||||
class="statusbarpanel-menu-iconic"
|
||||
hidden="true"
|
||||
tooltiptext="&pageReportIcon.tooltip;">
|
||||
<menupopup onpopupshowing="gPopupBlockerObserver.fillPopupList(event);">
|
||||
<menuitem observes="blockedPopupAllowSite"/>
|
||||
<menuitem observes="blockedPopupEditSettings"/>
|
||||
<menuitem observes="blockedPopupDontShowMessage"/>
|
||||
<menuseparator observes="blockedPopupsSeparator"/>
|
||||
</menupopup>
|
||||
</statusbarpanel>
|
||||
</statusbar>
|
||||
</vbox>
|
||||
#ifndef XP_UNIX
|
||||
<svg:svg height="0">
|
||||
|
@ -56,13 +56,16 @@
|
||||
screenX="24" screenY="24">
|
||||
|
||||
<description>
|
||||
&startDescriptionText.label;
|
||||
&startDescription.label;
|
||||
</description>
|
||||
|
||||
<separator class="thin"/>
|
||||
|
||||
<hbox pack="center">
|
||||
<!-- insert example here! (bug 594294) -->
|
||||
<statusbar style="width:20em">
|
||||
<statusbarpanel flex="1" pack="left"><description>&done.label;</description></statusbarpanel>
|
||||
<statusbarpanel class="statusbarpanel-iconic" style="min-height:18px" id="page-report-button"/>
|
||||
</statusbar>
|
||||
</hbox>
|
||||
|
||||
<separator class="thin"/>
|
||||
|
@ -341,7 +341,7 @@
|
||||
mBrowser: aBrowser,
|
||||
mBlank: aStartsBlank,
|
||||
|
||||
// cache flags for correct status UI update after tab switching
|
||||
// cache flags for correct status bar update after tab switching
|
||||
mStateFlags: 0,
|
||||
mStatus: 0,
|
||||
mMessage: "",
|
||||
|
@ -95,7 +95,6 @@ endif
|
||||
_BROWSER_FILES = \
|
||||
browser_typeAheadFind.js \
|
||||
browser_NetworkPrioritizer.js \
|
||||
browser_addon_bar.js \
|
||||
browser_allTabsPanel.js \
|
||||
browser_alltabslistener.js \
|
||||
browser_bug304198.js \
|
||||
|
@ -1,78 +0,0 @@
|
||||
/* ***** BEGIN LICENSE BLOCK *****
|
||||
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public License Version
|
||||
* 1.1 (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
* for the specific language governing rights and limitations under the
|
||||
* License.
|
||||
*
|
||||
* The Original Code is browser add-on bar test code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is the Mozilla Foundation.
|
||||
* Portions created by the Initial Developer are Copyright (C) 2010
|
||||
* the Initial Developer. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
* Dietrich Ayala <dietrich@mozilla.com>
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the terms of
|
||||
* either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
* in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
* of those above. If you wish to allow use of your version of this file only
|
||||
* under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
* use your version of this file under the terms of the MPL, indicate your
|
||||
* decision by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this file under
|
||||
* the terms of any one of the MPL, the GPL or the LGPL.
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** */
|
||||
|
||||
function test() {
|
||||
waitForExplicitFinish();
|
||||
|
||||
let addonbar = document.getElementById("addon-bar");
|
||||
ok(addonbar.collapsed, "addon bar is collapsed by default");
|
||||
|
||||
let topMenu, toolbarMenu;
|
||||
|
||||
function onTopMenuShown(event) {
|
||||
event.currentTarget.removeEventListener("popupshown", arguments.callee, false);
|
||||
// open the customize or toolbars menu
|
||||
let toolbarMenu = document.getElementById("appmenu_customizeMenu") ||
|
||||
document.getElementById("viewToolbarsMenu").firstElementChild;
|
||||
toolbarMenu.addEventListener("popupshown", onToolbarMenuShown, false);
|
||||
toolbarMenu.openPopup();
|
||||
}
|
||||
|
||||
function onToolbarMenuShown(event) {
|
||||
event.currentTarget.removeEventListener("popupshown", arguments.callee, false);
|
||||
|
||||
// test the menu item's default state
|
||||
let menuitem = document.getElementById("toggle_addon-bar");
|
||||
ok(menuitem, "found the menu item");
|
||||
is(menuitem.getAttribute("checked"), "false", "menuitem is not checked by default");
|
||||
|
||||
// click on the menu item
|
||||
// TODO: there's got to be a way to check+command in one shot
|
||||
menuitem.setAttribute("checked", "true");
|
||||
menuitem.click();
|
||||
|
||||
// now the addon bar should be visible and the menu checked
|
||||
is(addonbar.getAttribute("collapsed"), "false", "addon bar is visible after executing the command");
|
||||
is(menuitem.getAttribute("checked"), "true", "menuitem is checked after executing the command");
|
||||
finish();
|
||||
}
|
||||
|
||||
// open the appmenu or view menu
|
||||
topMenu = document.getElementById("appmenu-popup") ||
|
||||
document.getElementById("menu_viewPopup");
|
||||
topMenu.addEventListener("popupshown", onTopMenuShown, false);
|
||||
topMenu.openPopup();
|
||||
}
|
@ -1,7 +1,7 @@
|
||||
function test() {
|
||||
waitForExplicitFinish();
|
||||
|
||||
var pageInfo;
|
||||
var pageInfo, atTest = 0;
|
||||
gBrowser.selectedTab = gBrowser.addTab();
|
||||
gBrowser.selectedBrowser.addEventListener("load", function () {
|
||||
gBrowser.selectedBrowser.removeEventListener("load", arguments.callee, true);
|
||||
@ -15,7 +15,22 @@ function test() {
|
||||
if (topic != "page-info-dialog-loaded")
|
||||
return;
|
||||
|
||||
handlePageInfo();
|
||||
switch (atTest) {
|
||||
case 0:
|
||||
atTest++;
|
||||
handlePageInfo();
|
||||
break;
|
||||
case 1:
|
||||
atTest++;
|
||||
pageInfo = win;
|
||||
testLockClick();
|
||||
break;
|
||||
case 2:
|
||||
atTest++;
|
||||
Services.obs.removeObserver(observer, "page-info-dialog-loaded");
|
||||
testLockDoubleClick();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
function $(aId) { return pageInfo.document.getElementById(aId) };
|
||||
@ -38,7 +53,35 @@ function test() {
|
||||
"Name given: " + feedItem.getAttribute("name") + ", should be " + (i+1));
|
||||
}
|
||||
|
||||
pageInfo.addEventListener("unload", function() {
|
||||
pageInfo.removeEventListener("unload", arguments.callee, false);
|
||||
var lockIcon = document.getElementById("security-button");
|
||||
EventUtils.synthesizeMouse(lockIcon, 0, 0, {clickCount: 1});
|
||||
}, false);
|
||||
pageInfo.close();
|
||||
}
|
||||
|
||||
function testLockClick() {
|
||||
var deck = $("mainDeck");
|
||||
is(deck.selectedPanel.id, "securityPanel", "The security tab should open when the lock icon is clicked");
|
||||
pageInfo.addEventListener("unload", function() {
|
||||
pageInfo.removeEventListener("unload", arguments.callee, false);
|
||||
var lockIcon = document.getElementById("security-button");
|
||||
EventUtils.synthesizeMouse(lockIcon, 0, 0, {clickCount: 1});
|
||||
EventUtils.synthesizeMouse(lockIcon, 0, 0, {clickCount: 2});
|
||||
}, false);
|
||||
pageInfo.close();
|
||||
}
|
||||
|
||||
function testLockDoubleClick() {
|
||||
var pageInfoDialogs = Services.wm.getEnumerator("Browser:page-info");
|
||||
var i = 0;
|
||||
while (pageInfoDialogs.hasMoreElements()) {
|
||||
i++;
|
||||
pageInfo = pageInfoDialogs.getNext();
|
||||
pageInfo.close();
|
||||
}
|
||||
is(i, 1, "When the lock is clicked twice there should be only one page info dialog");
|
||||
gBrowser.removeCurrentTab();
|
||||
finish();
|
||||
}
|
||||
|
@ -50,6 +50,22 @@ function getBrowserURL()
|
||||
return "chrome://browser/content/browser.xul";
|
||||
}
|
||||
|
||||
function goToggleToolbar( id, elementID )
|
||||
{
|
||||
var toolbar = document.getElementById(id);
|
||||
var element = document.getElementById(elementID);
|
||||
if (toolbar)
|
||||
{
|
||||
var isHidden = toolbar.hidden;
|
||||
toolbar.hidden = !isHidden;
|
||||
document.persist(id, 'hidden');
|
||||
if (element) {
|
||||
element.setAttribute("checked", isHidden ? "true" : "false");
|
||||
document.persist(elementID, 'checked');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function getTopWin()
|
||||
{
|
||||
return Services.wm.getMostRecentWindow("navigator:browser");
|
||||
|
@ -50,7 +50,7 @@
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
||||
onload="init();"
|
||||
onunload="SidebarUtils.setMouseoverURL('');">
|
||||
onunload="SidebarUtils.clearURLFromStatusBar();">
|
||||
|
||||
<script type="application/javascript"
|
||||
src="chrome://browser/content/bookmarks/sidebarUtils.js"/>
|
||||
@ -79,7 +79,7 @@
|
||||
onkeypress="SidebarUtils.handleTreeKeyPress(event);"
|
||||
onclick="SidebarUtils.handleTreeClick(this, event, true);"
|
||||
onmousemove="SidebarUtils.handleTreeMouseMove(event);"
|
||||
onmouseout="SidebarUtils.setMouseoverURL('');">
|
||||
onmouseout="SidebarUtils.clearURLFromStatusBar();">
|
||||
<treecols>
|
||||
<treecol id="title" flex="1" primary="true" hideheader="true"/>
|
||||
</treecols>
|
||||
|
@ -58,7 +58,7 @@
|
||||
<page id="history-panel" orient="vertical"
|
||||
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
||||
onload="HistorySidebarInit();"
|
||||
onunload="SidebarUtils.setMouseoverURL('');">
|
||||
onunload="SidebarUtils.clearURLFromStatusBar();">
|
||||
|
||||
<script type="application/javascript"
|
||||
src="chrome://browser/content/bookmarks/sidebarUtils.js"/>
|
||||
@ -122,7 +122,7 @@
|
||||
onkeypress="SidebarUtils.handleTreeKeyPress(event);"
|
||||
onclick="SidebarUtils.handleTreeClick(this, event, true);"
|
||||
onmousemove="SidebarUtils.handleTreeMouseMove(event);"
|
||||
onmouseout="SidebarUtils.setMouseoverURL('');">
|
||||
onmouseout="SidebarUtils.clearURLFromStatusBar();">
|
||||
<treecols>
|
||||
<treecol id="title" flex="1" primary="true" hideheader="true"/>
|
||||
</treecols>
|
||||
|
@ -117,20 +117,21 @@ var SidebarUtils = {
|
||||
tbo.getCellAt(aEvent.clientX, aEvent.clientY, row, col, obj);
|
||||
|
||||
// row.value is -1 when the mouse is hovering an empty area within the tree.
|
||||
// To avoid showing a URL from a previously hovered node for a currently
|
||||
// hovered non-url node, we must clear the moused-over URL in these cases.
|
||||
// To avoid showing a URL from a previously hovered node,
|
||||
// for a currently hovered non-url node, we must clear the URL from the
|
||||
// status bar in these cases.
|
||||
if (row.value != -1) {
|
||||
var node = tree.view.nodeForTreeIndex(row.value);
|
||||
if (PlacesUtils.nodeIsURI(node))
|
||||
this.setMouseoverURL(node.uri);
|
||||
var cell = tree.view.nodeForTreeIndex(row.value);
|
||||
if (PlacesUtils.nodeIsURI(cell))
|
||||
window.top.XULBrowserWindow.setOverLink(cell.uri, null);
|
||||
else
|
||||
this.setMouseoverURL("");
|
||||
this.clearURLFromStatusBar();
|
||||
}
|
||||
else
|
||||
this.setMouseoverURL("");
|
||||
this.clearURLFromStatusBar();
|
||||
},
|
||||
|
||||
setMouseoverURL: function SU_setMouseoverURL(aURL) {
|
||||
window.top.XULBrowserWindow.setOverLink(aURL, null);
|
||||
clearURLFromStatusBar: function SU_clearURLFromStatusBar() {
|
||||
window.top.XULBrowserWindow.setOverLink("", null);
|
||||
}
|
||||
};
|
||||
|
@ -57,6 +57,10 @@
|
||||
<preference id="dom.event.contextmenu.enabled" name="dom.event.contextmenu.enabled" type="bool"/>
|
||||
<preference id="dom.disable_window_move_resize" name="dom.disable_window_move_resize" type="bool" inverted="true"/>
|
||||
<preference id="dom.disable_window_flip" name="dom.disable_window_flip" type="bool" inverted="true"/>
|
||||
<preference id="dom.disable_window_open_feature.status" inverted="true"
|
||||
name="dom.disable_window_open_feature.status" type="bool"/>
|
||||
<preference id="dom.disable_window_status_change" inverted="true"
|
||||
name="dom.disable_window_status_change" type="bool"/>
|
||||
</preferences>
|
||||
|
||||
<script type="application/javascript" src="chrome://browser/content/preferences/advanced-scripts.js"/>
|
||||
@ -74,6 +78,12 @@
|
||||
<checkbox id="disableContextMenus" label="&disableContextMenus.label;"
|
||||
accesskey="&disableContextMenus.accesskey;"
|
||||
preference="dom.event.contextmenu.enabled"/>
|
||||
<checkbox id="hideStatusBar" label="&hideStatusBar.label;"
|
||||
accesskey="&hideStatusBar.accesskey;"
|
||||
preference="dom.disable_window_open_feature.status"/>
|
||||
<checkbox id="changeStatusBar" label="&changeStatusBar.label;"
|
||||
accesskey="&changeStatusBar.accesskey;"
|
||||
preference="dom.disable_window_status_change"/>
|
||||
|
||||
</prefpane>
|
||||
</prefwindow>
|
||||
|
@ -49,6 +49,7 @@ _BROWSER_TEST_FILES = \
|
||||
browser_privatebrowsing_certexceptionsui.js \
|
||||
browser_privatebrowsing_commandline_toggle.js \
|
||||
browser_privatebrowsing_crh.js \
|
||||
browser_privatebrowsing_downloadmonitor.js \
|
||||
browser_privatebrowsing_fastswitch.js \
|
||||
browser_privatebrowsing_findbar.js \
|
||||
browser_privatebrowsing_forgetthissite.js \
|
||||
@ -83,9 +84,6 @@ _BROWSER_TEST_FILES = \
|
||||
title.sjs \
|
||||
$(NULL)
|
||||
|
||||
# Disabled until bug 564934 is fixed:
|
||||
# browser_privatebrowsing_downloadmonitor.js \
|
||||
|
||||
# Turn off private browsing tests that perma-timeout on Linux.
|
||||
ifneq (Linux,$(OS_ARCH))
|
||||
_BROWSER_TEST_FILES += \
|
||||
|
@ -54,14 +54,14 @@ function test() {
|
||||
gBrowser.addEventListener("DOMUpdatePageReport", function() {
|
||||
gBrowser.removeEventListener("DOMUpdatePageReport", arguments.callee, false);
|
||||
executeSoon(function() {
|
||||
let pageReportButton = document.getElementById("page-report-button");
|
||||
let notification = gBrowser.getNotificationBox().getNotificationWithValue("popup-blocked");
|
||||
|
||||
ok(!pageReportButton.hidden, "The page report button should not be hidden");
|
||||
ok(notification, "The notification box should be displayed");
|
||||
|
||||
function checkMenuItem(callback) {
|
||||
dump("CMI: in\n");
|
||||
document.addEventListener("popupshown", function(event) {
|
||||
dump("CMI: popupshown\n");
|
||||
document.removeEventListener("popupshown", arguments.callee, false);
|
||||
|
||||
if (expectedDisabled)
|
||||
@ -69,18 +69,18 @@ function test() {
|
||||
"The allow popups menu item should be disabled");
|
||||
|
||||
event.originalTarget.hidePopup();
|
||||
dump("CMI: calling back\n");
|
||||
callback();
|
||||
dump("CMI: called back\n");
|
||||
}, false);
|
||||
dump("CMI: out\n");
|
||||
}
|
||||
|
||||
checkMenuItem(function() {
|
||||
gBrowser.removeTab(tab);
|
||||
callback();
|
||||
checkMenuItem(function() {
|
||||
gBrowser.removeTab(tab);
|
||||
callback();
|
||||
});
|
||||
notification.querySelector("button").doCommand();
|
||||
});
|
||||
notification.querySelector("button").doCommand();
|
||||
EventUtils.synthesizeMouse(document.getElementById("page-report-button"), 1, 1, {});
|
||||
});
|
||||
}, false);
|
||||
|
||||
|
@ -70,8 +70,8 @@ can reach it easily. -->
|
||||
<!ENTITY personalbarCmd.label "Bookmarks Toolbar">
|
||||
<!ENTITY personalbarCmd.accesskey "B">
|
||||
<!ENTITY bookmarksToolbarItem.label "Bookmarks Toolbar Items">
|
||||
<!ENTITY addonBarCmd.label "Add-on Bar">
|
||||
<!ENTITY addonBarCmd.accesskey "B">
|
||||
<!ENTITY taskbarCmd.label "Status Bar">
|
||||
<!ENTITY taskbarCmd.accesskey "B">
|
||||
|
||||
<!ENTITY pageSourceCmd.label "Page Source">
|
||||
<!ENTITY pageSourceCmd.accesskey "o">
|
||||
|
@ -88,6 +88,7 @@ popupWarningButtonUnix.accesskey=P
|
||||
popupAllow=Allow pop-ups for %S
|
||||
popupBlock=Block pop-ups for %S
|
||||
popupWarningDontShowFromMessage=Don't show this message when pop-ups are blocked
|
||||
popupWarningDontShowFromStatusbar=Don't show info message when pop-ups are blocked
|
||||
popupShowPopupPrefix=Show '%S'
|
||||
|
||||
# missing plugin installer
|
||||
|
@ -1,4 +1,4 @@
|
||||
<!ENTITY startDescriptionText.label "A web site has attempted to open a pop-up window without your permission. &brandShortName; has automatically closed the pop-up window.">
|
||||
<!ENTITY startDescription.label "A web site has attempted to open a pop-up window without your permission. &brandShortName; has automatically closed the pop-up window. Whenever &brandShortName; blocks these pop-ups, you will see an icon on the status bar.">
|
||||
|
||||
<!ENTITY endDescription.label "You can click on this icon to see which sites &brandShortName; blocked and to allow those sites to open pop-ups if they are required for the site to function correctly.">
|
||||
|
||||
|
@ -46,3 +46,7 @@
|
||||
<!ENTITY raiseLowerWindows.accesskey "R">
|
||||
<!ENTITY disableContextMenus.label "Disable or replace context menus">
|
||||
<!ENTITY disableContextMenus.accesskey "D">
|
||||
<!ENTITY hideStatusBar.label "Hide the status bar">
|
||||
<!ENTITY hideStatusBar.accesskey "H">
|
||||
<!ENTITY changeStatusBar.label "Change status bar text">
|
||||
<!ENTITY changeStatusBar.accesskey "C">
|
||||
|
@ -1,4 +1,5 @@
|
||||
<!ENTITY testpilot.brand.label "Test Pilot">
|
||||
<!-- browser window: menu and status bar -->
|
||||
<!ENTITY testpilot.settings.label "Settings">
|
||||
<!ENTITY testpilot.settings.dataSubmission.label "Data Submission">
|
||||
<!ENTITY testpilot.settings.notifications.label "Notifications">
|
||||
|
@ -1401,6 +1401,28 @@ richlistitem[type~="action"][actiontype="switchtab"] > .ac-url-box > .ac-action-
|
||||
background-color: Window;
|
||||
}
|
||||
|
||||
#status-bar {
|
||||
border-top: none;
|
||||
}
|
||||
|
||||
statusbarpanel#statusbar-display {
|
||||
-moz-padding-start: 0;
|
||||
}
|
||||
|
||||
#security-button[level="high"],
|
||||
#security-button[level="low"] {
|
||||
list-style-image: url("chrome://browser/skin/Secure.png");
|
||||
}
|
||||
|
||||
#security-button[level="broken"] {
|
||||
list-style-image: url("chrome://browser/skin/Security-broken.png");
|
||||
}
|
||||
|
||||
#page-report-button {
|
||||
list-style-image: url("chrome://browser/skin/Info.png");
|
||||
width: 20px;
|
||||
}
|
||||
|
||||
/* Throbber */
|
||||
#navigator-throbber {
|
||||
width: 16px;
|
||||
@ -1699,6 +1721,11 @@ toolbar[mode="text"] toolbarbutton.chevron > .toolbarbutton-icon {
|
||||
display: -moz-box; /* display chevron icon in text mode */
|
||||
}
|
||||
|
||||
/* Popup blocking dialog */
|
||||
#pageReportFirstTime statusbarpanel.statusbar-resizerpanel {
|
||||
visibility: collapse;
|
||||
}
|
||||
|
||||
#download-monitor {
|
||||
list-style-image: url("chrome://browser/skin/Toolbar-small.png");
|
||||
-moz-image-region: rect(0px 16px 16px 0px);
|
||||
|
@ -877,6 +877,15 @@ toolbar[mode="icons"] #zoom-in-button {
|
||||
margin-top: 2px;
|
||||
}
|
||||
|
||||
statusbarpanel#statusbar-display {
|
||||
-moz-padding-start: 0;
|
||||
}
|
||||
|
||||
.statusbarpanel-text {
|
||||
margin-top: 2px;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
/* over-link in location bar */
|
||||
|
||||
.urlbar-origin-label {
|
||||
@ -1479,6 +1488,25 @@ sidebarheader > .tabs-closebutton > .toolbarbutton-text {
|
||||
display: none;
|
||||
}
|
||||
|
||||
|
||||
/* ----- SECURITY DISPLAY ----- */
|
||||
|
||||
#security-button[level="high"] ,
|
||||
#security-button[level="low"] {
|
||||
list-style-image: url("chrome://browser/skin/Secure-statusbar.png");
|
||||
}
|
||||
|
||||
#security-button[level="broken"] {
|
||||
list-style-image: url("chrome://browser/skin/Secure-statusbar-broken.png");
|
||||
}
|
||||
|
||||
/* ----- PAGE REPORT DISPLAY ----- */
|
||||
|
||||
#page-report-button {
|
||||
list-style-image: url("chrome://browser/skin/Popup-blocked.png");
|
||||
padding: 0px 3px 0px 3px;
|
||||
}
|
||||
|
||||
/* ----- FEED CONTENT DISPLAY ---- */
|
||||
|
||||
#feed-button {
|
||||
|
@ -51,6 +51,8 @@ browser.jar:
|
||||
skin/classic/browser/section_collapsed-rtl.png
|
||||
skin/classic/browser/section_expanded.png
|
||||
skin/classic/browser/Secure-Glyph-White.png
|
||||
skin/classic/browser/Secure-statusbar.png
|
||||
skin/classic/browser/Secure-statusbar-broken.png
|
||||
skin/classic/browser/Secure-background.gif
|
||||
skin/classic/browser/Toolbar.png
|
||||
skin/classic/browser/toolbarbutton-dropmarker.png
|
||||
|
@ -107,6 +107,10 @@
|
||||
-moz-appearance: toolbox;
|
||||
}
|
||||
|
||||
statusbarpanel#statusbar-display {
|
||||
-moz-padding-start: 0;
|
||||
}
|
||||
|
||||
/* ::::: app menu button ::::: */
|
||||
|
||||
#appmenu-button {
|
||||
@ -1446,6 +1450,24 @@ richlistitem[type~="action"][actiontype="switchtab"] > .ac-url-box > .ac-action-
|
||||
-moz-padding-start: 0px;
|
||||
}
|
||||
|
||||
#status-bar {
|
||||
border-top: none;
|
||||
}
|
||||
|
||||
#security-button[level="high"],
|
||||
#security-button[level="low"] {
|
||||
list-style-image: url("chrome://browser/skin/Secure.png");
|
||||
}
|
||||
|
||||
#security-button[level="broken"] {
|
||||
list-style-image: url("chrome://browser/skin/Security-broken.png");
|
||||
}
|
||||
|
||||
#page-report-button {
|
||||
width: 20px;
|
||||
list-style-image: url("chrome://browser/skin/Info.png");
|
||||
}
|
||||
|
||||
/* ::::: throbber ::::: */
|
||||
|
||||
#navigator-throbber {
|
||||
@ -1840,6 +1862,11 @@ toolbar[mode="text"] toolbarbutton.chevron > .toolbarbutton-icon {
|
||||
-moz-image-region: rect(0px 48px 16px 32px);
|
||||
}
|
||||
|
||||
/* ::::: About Popup Blocking dialog ::::: */
|
||||
#pageReportFirstTime statusbarpanel.statusbar-resizerpanel {
|
||||
visibility: collapse;
|
||||
}
|
||||
|
||||
/* Bookmarks toolbar */
|
||||
#PlacesToolbarDropIndicator {
|
||||
list-style-image: url(chrome://browser/skin/places/toolbarDropMarker.png);
|
||||
|
@ -82,6 +82,11 @@ var testPopUpAllowed = function()
|
||||
'/{"class":"messageCloseButton tabbable"}');
|
||||
controller.assertNodeNotExist(button);
|
||||
|
||||
// Check for the status bar icon
|
||||
var cssInfo = controller.window.getComputedStyle(controller.window.document.getElementById("page-report-button"), "");
|
||||
controller.assertJS("subject.isReportButtonVisible == false",
|
||||
{isReportButtonVisible: cssInfo.getPropertyValue('display') != 'none'});
|
||||
|
||||
// Check that the window count has changed
|
||||
controller.assertJS("subject.preWindowCount != subject.postWindowCount",
|
||||
{preWindowCount: windowCount, postWindowCount: mozmill.utils.getWindows().length});
|
||||
|
@ -84,6 +84,11 @@ var testPopUpBlocked = function()
|
||||
'/{"class":"messageCloseButton tabbable"}');
|
||||
controller.waitForElement(button, gTimeout);
|
||||
|
||||
// Check for the status bar icon
|
||||
var cssInfo = controller.window.getComputedStyle(controller.window.document.getElementById("page-report-button"), "");
|
||||
controller.assertJS("subject.isReportButtonVisible == true",
|
||||
{isReportButtonVisible: cssInfo.getPropertyValue('display') == '-moz-box'});
|
||||
|
||||
// Check that the window count has not changed
|
||||
controller.assertJS("subject.preWindowCount == subject.postWindowCount",
|
||||
{preWindowCount: windowCount, postWindowCount: mozmill.utils.getWindows().length});
|
||||
|
@ -62,6 +62,11 @@ var testSecNotification = function() {
|
||||
var identLabel = new elementslib.ID(controller.window.document, "identity-icon-label");
|
||||
controller.assertValue(identLabel, 'Mozilla Corporation (US)');
|
||||
|
||||
// The security button should be visible in the status bar
|
||||
var securityButton = controller.window.document.getElementById("security-button");
|
||||
var cssSecButton = controller.window.getComputedStyle(securityButton, "");
|
||||
controller.assertJS("subject.getPropertyValue('list-style-image') != 'none'", cssSecButton);
|
||||
|
||||
// Identity box should have a green background
|
||||
var identityBox = new elementslib.ID(controller.window.document, "identity-box");
|
||||
controller.assertProperty(identityBox, "className", "verifiedIdentity");
|
||||
@ -73,6 +78,9 @@ var testSecNotification = function() {
|
||||
var projects = new elementslib.Link(controller.tabs.activeTab, "Our Projects");
|
||||
controller.assertNode(projects);
|
||||
|
||||
// Security button should not be visible
|
||||
controller.assertJS("subject.getPropertyValue('list-style-image') == 'none'", cssSecButton);
|
||||
|
||||
// Identity box should have a gray background
|
||||
controller.assertProperty(identityBox, "className", "unknownIdentity");
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user