author | Dietrich Ayala <dietrich@mozilla.com> |
Thu, 16 Sep 2010 13:09:27 +0700 | |
changeset 54132 | bb2db707bfcb36dd0f5d910484f5202564991807 |
parent 54131 | 5c46911a337226af5fec0fadb08cc3d978d66427 |
child 54133 | e45446b74099f551a19b859ca547ef0a2ce5180e |
push id | 15776 |
push user | dietrich@mozilla.com |
push date | Thu, 16 Sep 2010 06:10:20 +0000 |
treeherder | mozilla-central@bb2db707bfcb [default view] [failures only] |
perfherder | [talos] [build metrics] [platform microbench] (compared to previous push) |
reviewers | mano, blocking-beta7 |
bugs | 574688 |
milestone | 2.0b7pre |
first release with | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
last release without | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
--- a/browser/app/profile/firefox.js +++ b/browser/app/profile/firefox.js @@ -410,25 +410,22 @@ pref("javascript.options.showInConsole", pref("general.warnOnAboutConfig", false); #endif #ifdef WINCE // Set the threshold higher to avoid some slow script warnings 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 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 +// 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 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 pref("dom.disable_window_flip", true); // popups.policy 1=allow,2=reject pref("privacy.popups.policy", 1); pref("privacy.popups.usecustom", true); @@ -991,18 +988,16 @@ pref("services.sync.prefs.sync.browser.t pref("services.sync.prefs.sync.browser.tabs.warnOnOpen", true); pref("services.sync.prefs.sync.browser.urlbar.autocomplete.enabled", true); pref("services.sync.prefs.sync.browser.urlbar.autoFill", true); pref("services.sync.prefs.sync.browser.urlbar.default.behavior", true); 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); pref("services.sync.prefs.sync.general.autoScroll", true); pref("services.sync.prefs.sync.general.smoothScroll", true); pref("services.sync.prefs.sync.intl.accept_languages", true); pref("services.sync.prefs.sync.javascript.enabled", true); pref("services.sync.prefs.sync.layout.spellcheckDefault", true);
--- a/browser/base/content/browser-menubar.inc +++ b/browser/base/content/browser-menubar.inc @@ -224,26 +224,16 @@ accesskey="&viewTabsOnTop.accesskey;"/> <menuseparator/> <menuitem id="menu_customizeToolbars" label="&viewCustomizeToolbar.label;" accesskey="&viewCustomizeToolbar.accesskey;" 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;"> <menupopup id="viewSidebarMenu"> <menuitem id="menu_bookmarksSidebar" key="viewBookmarksSidebarKb" observes="viewBookmarksSidebar" accesskey="&bookmarksButton.accesskey;"/>
--- a/browser/base/content/browser-places.js +++ b/browser/base/content/browser-places.js @@ -630,18 +630,19 @@ HistoryMenu.prototype = { if (/^https?:/.test(iconURL)) iconURL = "moz-anno:favicon:" + iconURL; m.setAttribute("image", iconURL); } m.setAttribute("class", "menuitem-iconic bookmark-item menuitem-with-favicon"); m.setAttribute("value", i); m.setAttribute("oncommand", "undoCloseTab(" + i + ");"); - // Set the targetURI attribute so it will be shown in tooltip and statusbar. - // SessionStore uses one-based indexes, so we need to normalize them. + // 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. let tabData = undoItems[i].state; let activeIndex = (tabData.index || tabData.entries.length) - 1; if (activeIndex >= 0 && tabData.entries[activeIndex]) m.setAttribute("targetURI", tabData.entries[activeIndex].url); m.addEventListener("click", this._undoCloseMiddleClick, false); if (i == 0) m.setAttribute("key", "key_undoCloseTab"); @@ -711,17 +712,17 @@ HistoryMenu.prototype = { // don't initiate a connection just to fetch a favicon (see bug 467828) if (/^https?:/.test(iconURL)) iconURL = "moz-anno:favicon:" + iconURL; m.setAttribute("image", iconURL); } 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 and statusbar. + // Set the targetURI attribute so it will be shown in tooltip. // 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]) m.setAttribute("targetURI", selectedTab.entries[activeIndex].url); if (i == 0) m.setAttribute("key", "key_undoCloseWindow"); undoPopup.appendChild(m); @@ -1159,19 +1160,17 @@ let BookmarksMenuButton = { return; this._popupNeedsUpdating = false; let viewToolbar = document.getElementById("BMB_viewBookmarksToolbar"); if (!this._popupInitialized) { // First popupshowing event, initialize immutable attributes. this._popupInitialized = true; // Update View bookmarks toolbar checkbox menuitem. - viewToolbar.setAttribute("toolbarindex", - Array.indexOf(gNavToolbox.childNodes, - this.personalToolbar)); + viewToolbar.setAttribute("toolbarId", this.personalToolbar.id); // Need to set the label on Unsorted Bookmarks menu. let unsortedBookmarksElt = document.getElementById("BMB_unsortedBookmarksFolderMenu"); unsortedBookmarksElt.label = PlacesUtils.getString("UnsortedBookmarksFolderTitle"); }
--- a/browser/base/content/browser-sets.inc +++ b/browser/base/content/browser-sets.inc @@ -64,17 +64,16 @@ <command id="Browser:SendLink" oncommand="MailIntegration.sendLinkForWindow(window.content);"/> <command id="cmd_pageSetup" oncommand="PrintUtils.showPageSetup();"/> <command id="cmd_print" oncommand="PrintUtils.print();"/> <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()"/> <commandset id="editMenuCommands"/> <command id="View:PageSource" oncommand="BrowserViewSourceOfDocument(content.document);" observes="isImage"/>
--- a/browser/base/content/browser-syncui.js +++ b/browser/base/content/browser-syncui.js @@ -135,17 +135,17 @@ let gSyncUI = { menuitem.setAttribute("class", "alltabs-item"); menuitem.setAttribute("oncommand", "BrowserOpenSyncTabs();"); let sep = document.createElement("menuseparator"); sep.setAttribute("id", "sync-tabs-sep"); // 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. This also makes sure the statusbar updates with the URL. + // binding. menuitem.tab = { "linkedBrowser": { "currentURI": { "spec": label } } }; sep.tab = { "linkedBrowser": { "currentURI": { "spec": " " } } }; popup.insertBefore(sep, popup.firstChild); popup.insertBefore(menuitem, sep); },
--- a/browser/base/content/browser.css +++ b/browser/base/content/browser.css @@ -312,32 +312,20 @@ window[sizemode="maximized"] #content .n /* Hide extension toolbars that neglected to set the proper class */ window[chromehidden~="location"][chromehidden~="toolbar"] toolbar:not(.chromeclass-menubar), window[chromehidden~="toolbar"] toolbar:not(.toolbar-primary):not(.chromeclass-menubar) { display: none; } #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 , #identity-popup-content-box.unknownIdentity > #identity-popup-content-host , #identity-popup-content-box.unknownIdentity > #identity-popup-content-owner , #identity-popup-content-box.verifiedIdentity > #identity-popup-connectedToLabel2 , #identity-popup-content-box.verifiedDomain > #identity-popup-connectedToLabel2 { display: none;
--- a/browser/base/content/browser.js +++ b/browser/base/content/browser.js @@ -368,34 +368,24 @@ function findChildShell(aDocument, aDocS docShell = findChildShell(aDocument, docShell, aSoughtURI); if (docShell) return docShell; } return null; } const gPopupBlockerObserver = { - _reportButton: null, onUpdatePageReport: function (aEvent) { if (aEvent.originalTarget != gBrowser.selectedBrowser) return; - if (!this._reportButton) - this._reportButton = document.getElementById("page-report-button"); - - if (!gBrowser.pageReport) { - // Hide the popup blocker statusbar button - this._reportButton.hidden = true; - + if (!gBrowser.pageReport) 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 // it. if (!gBrowser.pageReport.reported) { if (gPrefService.getBoolPref("privacy.popups.showBrowserMessage")) { var brandBundle = document.getElementById("bundle_brand"); var brandShortName = brandBundle.getString("brandShortName"); @@ -543,20 +533,17 @@ const gPopupBlockerObserver = { if (foundUsablePopupURI) blockedPopupsSeparator.removeAttribute("hidden"); else blockedPopupsSeparator.setAttribute("hidden", true); var blockedPopupDontShowMessage = document.getElementById("blockedPopupDontShowMessage"); var showMessage = gPrefService.getBoolPref("privacy.popups.showBrowserMessage"); blockedPopupDontShowMessage.setAttribute("checked", !showMessage); - if (aEvent.target.localName == "popup") - blockedPopupDontShowMessage.setAttribute("label", gNavigatorBundle.getString("popupWarningDontShowFromMessage")); - else - blockedPopupDontShowMessage.setAttribute("label", gNavigatorBundle.getString("popupWarningDontShowFromStatusbar")); + blockedPopupDontShowMessage.setAttribute("label", gNavigatorBundle.getString("popupWarningDontShowFromMessage")); }, showBlockedPopup: function (aEvent) { var target = aEvent.target; var popupWindowURI = target.getAttribute("popupWindowURI"); var features = target.getAttribute("popupWindowFeatures"); var name = target.getAttribute("popupWindowName"); @@ -593,26 +580,29 @@ const gPopupBlockerObserver = { } else window.openDialog("chrome://browser/content/preferences/permissions.xul", "_blank", "resizable,dialog=no,centerscreen", params); }, dontShowMessage: function () { +#if 0 + // Disabled until bug 594294 is fixed. var showMessage = gPrefService.getBoolPref("privacy.popups.showBrowserMessage"); var firstTime = gPrefService.getBoolPref("privacy.popups.firstTime"); // If the info message is showing at the top of the window, and the user has never // hidden the message before, show an info box telling the user where the info // will be displayed. if (showMessage && firstTime) this._displayPageReportFirstTime(); gPrefService.setBoolPref("privacy.popups.showBrowserMessage", !showMessage); +#endif gBrowser.getNotificationBox().removeCurrentNotification(); }, _displayPageReportFirstTime: function () { window.openDialog("chrome://browser/content/pageReportFirstTime.xul", "_blank", "dependent"); @@ -1531,19 +1521,16 @@ function delayedStartup(isLoadingBlank, // auto-resume downloads begin (such as after crashing or quitting with // active downloads) and speeds up the first-load of the download manager UI. // If the user manually opens the download manager before the timeout, the // downloads will start right away, and getting the service again won't hurt. setTimeout(function() { 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", tempScope); tempScope.DownloadTaskbarProgress.onBrowserWindowLoad(window); } }, 10000); @@ -1643,17 +1630,16 @@ function BrowserShutdown() try { gPrefService.removeObserver(gHomeButton.prefDomain, gHomeButton); } catch (ex) { Components.utils.reportError(ex); } BrowserOffline.uninit(); OfflineApps.uninit(); - DownloadMonitorPanel.uninit(); gPrivateBrowsingUI.uninit(); IndexedDBPromptHelper.uninit(); var enumerator = Services.wm.getEnumerator(null); enumerator.getNext(); if (!enumerator.hasMoreElements()) { document.persist("sidebar-box", "sidebarcommand"); document.persist("sidebar-box", "width"); @@ -1676,17 +1662,17 @@ function BrowserShutdown() // nonBrowserWindowStartup(), nonBrowserWindowDelayedStartup(), and // nonBrowserWindowShutdown() are used for non-browser windows in // macBrowserOverlay function nonBrowserWindowStartup() { // Disable inappropriate commands / submenus var disabledItems = ['Browser:SavePage', 'Browser:SendLink', 'cmd_pageSetup', 'cmd_print', 'cmd_find', 'cmd_findAgain', - 'viewToolbarsMenu', 'cmd_toggleTaskbar', 'viewSidebarMenuMenu', 'Browser:Reload', + 'viewToolbarsMenu', 'viewSidebarMenuMenu', 'Browser:Reload', 'viewFullZoomMenu', 'pageStyleMenu', 'charsetMenu', 'View:PageSource', 'View:FullScreen', 'viewHistorySidebar', 'Browser:AddBookmarkAs', 'View:PageInfo', 'Tasks:InspectPage']; var element; for (var id in disabledItems) { element = document.getElementById(disabledItems[id]); if (element) @@ -2792,30 +2778,30 @@ var PrintPreviewListener = { this._chromeState.sidebarOpen = !sidebar.hidden; this._sidebarCommand = sidebar.getAttribute("sidebarcommand"); var notificationBox = gBrowser.getNotificationBox(); this._chromeState.notificationsOpen = !notificationBox.notificationsHidden; notificationBox.notificationsHidden = true; document.getElementById("sidebar").setAttribute("src", "about:blank"); - var statusbar = document.getElementById("status-bar"); - this._chromeState.statusbarOpen = !statusbar.hidden; - statusbar.hidden = true; + var addonBar = document.getElementById("addon-bar"); + this._chromeState.addonBarOpen = !addonBar.collapsed; + addonBar.collapsed = true; this._chromeState.findOpen = gFindBarInitialized && !gFindBar.hidden; if (gFindBarInitialized) gFindBar.close(); }, _showChrome: function () { if (this._chromeState.notificationsOpen) gBrowser.getNotificationBox().notificationsHidden = false; - if (this._chromeState.statusbarOpen) - document.getElementById("status-bar").hidden = false; + if (this._chromeState.addonBarOpen) + document.getElementById("addon-bar").collapsed = false; if (this._chromeState.findOpen) gFindBar.open(); } } function getMarkupDocumentViewer() { @@ -2932,18 +2918,17 @@ var browserDragAndDrop = { canDropLink: function (aEvent) Services.droppedLinkHandler.canDropLink(aEvent, true), dragOver: function (aEvent, statusString) { if (this.canDropLink(aEvent)) { aEvent.preventDefault(); if (statusString) { - var statusTextFld = document.getElementById("statusbar-display"); - statusTextFld.label = gNavigatorBundle.getString(statusString); + XULBrowserWindow.setStatusText(gNavigatorBundle.getString(statusString)); } } }, drop: function (aEvent, aName) Services.droppedLinkHandler.dropLink(aEvent, aName) }; var homeButtonObserver = { @@ -2954,18 +2939,17 @@ var homeButtonObserver = { onDragOver: function (aEvent) { browserDragAndDrop.dragOver(aEvent, "droponhomebutton"); aEvent.dropEffect = "link"; }, onDragLeave: function (aEvent) { - var statusTextFld = document.getElementById("statusbar-display"); - statusTextFld.label = ""; + XULWindowBrowser.setStatusText(""); } } function openHomeDialog(aURL) { var promptTitle = gNavigatorBundle.getString("droponhometitle"); var promptMsg = gNavigatorBundle.getString("droponhomemsg"); var pressedVal = Services.prompt.confirmEx(window, promptTitle, promptMsg, @@ -2998,31 +2982,29 @@ var bookmarksButtonObserver = { onDragOver: function (aEvent) { browserDragAndDrop.dragOver(aEvent, "droponbookmarksbutton"); aEvent.dropEffect = "link"; }, onDragLeave: function (aEvent) { - var statusTextFld = document.getElementById("statusbar-display"); - statusTextFld.label = ""; + XULWindowBrowser.setStatusText(""); } } var newTabButtonObserver = { onDragOver: function (aEvent) { browserDragAndDrop.dragOver(aEvent, "droponnewtabbutton"); }, onDragLeave: function (aEvent) { - var statusTextFld = document.getElementById("statusbar-display"); - statusTextFld.label = ""; + XULWindowBrowser.setStatusText(""); }, onDrop: function (aEvent) { let url = browserDragAndDrop.drop(aEvent, { }); var postData = {}; url = getShortcutOrURI(url, postData); if (url) { @@ -3034,47 +3016,44 @@ var newTabButtonObserver = { var newWindowButtonObserver = { onDragOver: function (aEvent) { browserDragAndDrop.dragOver(aEvent, "droponnewwindowbutton"); }, onDragLeave: function (aEvent) { - var statusTextFld = document.getElementById("statusbar-display"); - statusTextFld.label = ""; + XULWindowBrowser.setStatusText(""); }, onDrop: function (aEvent) { let url = browserDragAndDrop.drop(aEvent, { }); var postData = {}; url = getShortcutOrURI(url, postData); if (url) { // allow third-party services to fixup this URL openNewWindowWith(url, null, postData.value, true); } } } var DownloadsButtonDNDObserver = { onDragOver: function (aEvent) { - var statusTextFld = document.getElementById("statusbar-display"); - statusTextFld.label = gNavigatorBundle.getString("dropondownloadsbutton"); + XULWindowBrowser.setStatusText(gNavigatorBundle.getString("dropondownloadsbutton")); var types = aEvent.dataTransfer.types; if (types.contains("text/x-moz-url") || types.contains("text/uri-list") || types.contains("text/plain")) aEvent.preventDefault(); }, onDragLeave: function (aEvent) { - var statusTextFld = document.getElementById("statusbar-display"); - statusTextFld.label = ""; + XULWindowBrowser.setStatusText(""); }, onDrop: function (aEvent) { let name = { }; let url = browserDragAndDrop.drop(aEvent, name); if (url) saveURL(url, name, null, true, true); @@ -3683,19 +3662,18 @@ var FullScreen = { _XULNS: "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul", toggle: function (event) { var enterFS = window.fullScreen; // We get the fullscreen event _before_ the window transitions into or out of FS mode. if (event && event.type == "fullscreen") enterFS = !enterFS; - // show/hide all menubars, toolbars, and statusbars (except the full screen toolbar) + // show/hide all menubars, toolbars (except the full screen toolbar) this.showXULChrome("toolbar", !enterFS); - this.showXULChrome("statusbar", !enterFS); document.getElementById("View:FullScreen").setAttribute("checked", enterFS); if (enterFS) { // Add a tiny toolbar to receive mouseover and dragenter events, and provide affordance. // This will help simulate the "collapse" metaphor while also requiring less code and // events than raw listening of mouse coords. let fullScrToggler = document.getElementById("fullscr-toggler"); if (!fullScrToggler) { @@ -4031,24 +4009,16 @@ var XULBrowserWindow = { get stopCommand () { delete this.stopCommand; return this.stopCommand = document.getElementById("Browser:Stop"); }, get reloadCommand () { 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"); }, get _uriFixup () { delete this._uriFixup; return this._uriFixup = Cc["@mozilla.org/docshell/urifixup;1"] .getService(Ci.nsIURIFixup); @@ -4065,55 +4035,39 @@ var XULBrowserWindow = { }, destroy: function () { // XXXjag to avoid leaks :-/, see bug 60729 delete this.throbberElement; 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) { // Encode bidirectional formatting characters. // (RFC 3987 sections 3.2 and 4.1 paragraph 6) link = link.replace(/[\u200e\u200f\u202a\u202b\u202c\u202d\u202e]/g, encodeURIComponent); 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 }, onProgressChange: function (aWebProgress, aRequest, aCurSelfProgress, aMaxSelfProgress, aCurTotalProgress, aMaxTotalProgress) { @@ -4356,32 +4310,31 @@ var XULBrowserWindow = { // See bug 358202, when tabs are switched during a drag operation, // timers don't fire on windows (bug 203573) if (aRequest) setTimeout(function () { XULBrowserWindow.asyncUpdateUI(); }, 0); else this.asyncUpdateUI(); }, - asyncUpdateUI: function () { + asyncUpdateUI: function XWB_asyncUpdateUI() { FeedHandler.updateFeeds(); BrowserSearch.updateSearchButton(); }, - onStatusChange: function (aWebProgress, aRequest, aStatus, aMessage) { + onStatusChange: function XWB_onStatusChange(aWebProgress, aRequest, aStatus, aMessage) { this.status = aMessage; - this.updateStatusField(); }, // Properties used to cache security state used to update the UI _state: null, _tooltipText: null, _hostChanged: false, // onLocationChange will flip this bit - onSecurityChange: function (aWebProgress, aRequest, aState) { + onSecurityChange: function XWB_onSecurityChange(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 && this._tooltipText == gBrowser.securityUI.tooltipText && !this._hostChanged) { #ifdef DEBUG try { var contentHost = gBrowser.contentWindow.location.host; @@ -4428,31 +4381,25 @@ var XULBrowserWindow = { level = "low"; break; case wpl.STATE_IS_BROKEN: level = "broken"; break; } 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) var location = gBrowser.contentWindow.location; var locationObj = {}; try { locationObj.host = location.host; locationObj.hostname = location.hostname; @@ -4461,17 +4408,17 @@ var XULBrowserWindow = { // Can sometimes throw if the URL being visited has no host/hostname, // e.g. about:blank. The _state for these pages means we won't need these // properties anyways, though. } gIdentityHandler.checkIdentity(this._state, locationObj); }, // simulate all change notifications after switching tabs - onUpdateCurrentBrowser: function (aStateFlags, aStatus, aMessage, aTotalProgress) { + onUpdateCurrentBrowser: function XWB_onUpdateCurrentBrowser(aStateFlags, aStatus, aMessage, aTotalProgress) { if (FullZoom.updateBackgroundTabs) FullZoom.onLocationChange(gBrowser.currentURI, true); var nsIWebProgressListener = Components.interfaces.nsIWebProgressListener; var loadingDone = aStateFlags & nsIWebProgressListener.STATE_STOP; // use a pseudo-object instead of a (potentially nonexistent) channel for getting // a correct error message - and make sure that the UI is always either in // loading (STATE_START) or done (STATE_STOP) mode this.onStateChange( @@ -4482,31 +4429,31 @@ var XULBrowserWindow = { ); // status message and progress value are undefined if we're done with loading if (loadingDone) return; this.onStatusChange(gBrowser.webProgress, null, 0, aMessage); this.onProgressChange(gBrowser.webProgress, 0, 0, aTotalProgress, 1); }, - startDocumentLoad: function (aRequest) { + startDocumentLoad: function XWB_startDocumentLoad(aRequest) { // clear out feed data gBrowser.selectedBrowser.feeds = null; // clear out search-engine data gBrowser.selectedBrowser.engines = null; var uri = aRequest.QueryInterface(Ci.nsIChannel).URI; try { Services.obs.notifyObservers(content, "StartDocumentLoad", uri.spec); } catch (e) { } }, - endDocumentLoad: function (aRequest, aStatus) { + endDocumentLoad: function XWB_endDocumentLoad(aRequest, aStatus) { var urlStr = aRequest.QueryInterface(Ci.nsIChannel).originalURI.spec; var notification = Components.isSuccessCode(aStatus) ? "EndDocumentLoad" : "FailDocumentLoad"; try { Services.obs.notifyObservers(content, notification, urlStr); } catch (e) { } } @@ -4768,55 +4715,57 @@ function onViewToolbarsPopupShowing(aEve if (popup != aEvent.currentTarget) return; var i; // Empty the menu for (i = popup.childNodes.length-1; i >= 0; --i) { var deadItem = popup.childNodes[i]; - if (deadItem.hasAttribute("toolbarindex")) + if (deadItem.hasAttribute("toolbarId")) popup.removeChild(deadItem); } var firstMenuItem = aInsertPoint || popup.firstChild; - for (i = 0; i < gNavToolbox.childNodes.length; ++i) { - var toolbar = gNavToolbox.childNodes[i]; + let toolbarNodes = [document.getElementById("addon-bar")]; + for (i = 0; i < gNavToolbox.childNodes.length; ++i) + toolbarNodes.push(gNavToolbox.childNodes[i]); + toolbarNodes.forEach(function(toolbar) { var toolbarName = toolbar.getAttribute("toolbarname"); if (toolbarName) { let menuItem = document.createElement("menuitem"); let hidingAttribute = toolbar.getAttribute("type") == "menubar" ? "autohide" : "collapsed"; - menuItem.setAttribute("toolbarindex", i); + menuItem.setAttribute("id", "toggle_" + toolbar.id); + menuItem.setAttribute("toolbarId", toolbar.id); menuItem.setAttribute("type", "checkbox"); menuItem.setAttribute("label", toolbarName); menuItem.setAttribute("checked", toolbar.getAttribute(hidingAttribute) != "true"); if (popup.id != "appmenu_customizeMenu") menuItem.setAttribute("accesskey", toolbar.getAttribute("accesskey")); popup.insertBefore(menuItem, firstMenuItem); menuItem.addEventListener("command", onViewToolbarCommand, false); } - toolbar = toolbar.nextSibling; - } + }, this); } function onViewToolbarCommand(aEvent) { - var index = aEvent.originalTarget.getAttribute("toolbarindex"); - var toolbar = gNavToolbox.childNodes[index]; - var visible = aEvent.originalTarget.getAttribute("checked") == "true"; - setToolbarVisibility(toolbar, visible); -} - -function setToolbarVisibility(toolbar, visible) { + var toolbarId = aEvent.originalTarget.getAttribute("toolbarId"); + var toolbar = document.getElementById(toolbarId); + var isVisible = aEvent.originalTarget.getAttribute("checked") == "true"; + setToolbarVisibility(toolbar, isVisible); +} + +function setToolbarVisibility(toolbar, isVisible) { var hidingAttribute = toolbar.getAttribute("type") == "menubar" ? "autohide" : "collapsed"; - toolbar.setAttribute(hidingAttribute, !visible); + toolbar.setAttribute(hidingAttribute, !isVisible); document.persist(toolbar.id, hidingAttribute); PlacesToolbarHelper.init(); BookmarksMenuButton.updatePosition(); #ifdef MENUBAR_CAN_AUTOHIDE updateAppButtonDisplay(); #endif @@ -7675,20 +7624,16 @@ let gPrivateBrowsingUI = { docElement.setAttribute("title", docElement.getAttribute("title_privatebrowsing")); docElement.setAttribute("titlemodifier", docElement.getAttribute("titlemodifier_privatebrowsing")); docElement.setAttribute("browsingmode", "private"); gBrowser.updateTitlebar(); } - setTimeout(function () { - DownloadMonitorPanel.updateStatus(); - }, 0); - if (!aOnWindowOpen && this._disableUIOnToggle) document.getElementById("Tools:PrivateBrowsing") .setAttribute("disabled", "true"); }, onExitPrivateBrowsing: function PBUI_onExitPrivateBrowsing() { if (BrowserSearch.searchBar) { let searchBox = BrowserSearch.searchBar.textbox; @@ -7737,20 +7682,16 @@ let gPrivateBrowsingUI = { document.getElementById("appmenu_privateBrowsing") .removeAttribute("disabled"); #endif document.getElementById("Tools:PrivateBrowsing") .removeAttribute("disabled"); gLastOpenDirectory.reset(); - setTimeout(function () { - DownloadMonitorPanel.updateStatus(); - }, 0); - if (this._disableUIOnToggle) document.getElementById("Tools:PrivateBrowsing") .setAttribute("disabled", "true"); }, _setPBMenuTitle: function PBUI__setPBMenuTitle(aMode) { let pbMenuItem = document.getElementById("privateBrowsingItem"); pbMenuItem.setAttribute("label", pbMenuItem.getAttribute(aMode + "label"));
--- a/browser/base/content/browser.xul +++ b/browser/base/content/browser.xul @@ -716,29 +716,25 @@ <menuitem id="appmenu_customize" label="&preferencesCmd.label;" class="split-menuitem-item" flex="1" oncommand="openPreferences();"/> <menu class="split-menuitem-menu" label="&preferencesCmd.label;"> <menupopup id="appmenu_customizeMenu" - onpopupshowing="onViewToolbarsPopupShowing(event, document.getElementById('appmenu_toggleStatusbar'));"> + onpopupshowing="onViewToolbarsPopupShowing(event, document.getElementById('appmenu_preferences').nextSibling.nextSibling);"> <menuitem id="appmenu_preferences" #ifdef XP_UNIX label="&preferencesCmdUnix.label;" #else label="&preferencesCmd.label;" #endif oncommand="openPreferences();"/> <menuseparator/> - <menuitem id="appmenu_toggleStatusbar" - type="checkbox" - command="cmd_toggleTaskbar" - observes="toggle_taskbar"/> <menuseparator/> <menuitem id="appmenu_toggleTabsOnTop" label="&viewTabsOnTop.label;" type="checkbox" command="cmd_ToggleTabsOnTop"/> <menuitem id="appmenu_toolbarLayout" label="&appMenuToolbarLayout.label;" command="cmd_CustomizeToolbars"/> @@ -1277,50 +1273,20 @@ tabcontainer="tabbrowser-tabs" contentcontextmenu="contentAreaContextMenu" autocompletepopup="PopupAutoComplete" onclick="return contentAreaClick(event, false);"/> </vbox> </hbox> <vbox id="browser-bottombox" layer="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> + <toolbar id="addon-bar" toolbarname="&addonBarCmd.label;" collapsed="true" + class="toolbar-primary chromeclass-toolbar" + context="toolbar-context-menu" toolboxid="navigator-toolbox" + customizable="true"/> </vbox> #ifndef XP_UNIX <svg:svg height="0"> <svg:mask id="winstripe-keyhole-forward-mask" maskContentUnits="objectBoundingBox"> <svg:rect x="0" y="0" width="1" height="1" fill="white"/> <svg:circle cx="-0.46" cy="0.5" r="0.63"/> </svg:mask> <svg:mask id="winstripe-keyhole-forward-mask-hover" maskContentUnits="objectBoundingBox">
--- a/browser/base/content/pageReportFirstTime.xul +++ b/browser/base/content/pageReportFirstTime.xul @@ -51,26 +51,23 @@ title="&caption.label;" onload="setTimeout(function() { window.sizeToContent(); }, 100);" style="width: 40em;" buttons="accept" persist="screenX screenY" screenX="24" screenY="24"> <description> - &startDescription.label; + &startDescriptionText.label; </description> <separator class="thin"/> <hbox pack="center"> - <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> + <!-- insert example here! (bug 594294) --> </hbox> <separator class="thin"/> <description> &endDescription.label; </description>
--- a/browser/base/content/tabbrowser.xml +++ b/browser/base/content/tabbrowser.xml @@ -336,17 +336,17 @@ <body> <![CDATA[ return ({ mTabBrowser: this, mTab: aTab, mBrowser: aBrowser, mBlank: aStartsBlank, - // cache flags for correct status bar update after tab switching + // cache flags for correct status UI update after tab switching mStateFlags: 0, mStatus: 0, mMessage: "", mTotalProgress: 0, // count of open requests (should always be 0 or 1) mRequestCount: 0,
--- a/browser/base/content/test/Makefile.in +++ b/browser/base/content/test/Makefile.in @@ -90,16 +90,17 @@ endif # back to the clear recent history dialog (santize.xul), if it ever is (bug # 480169) # browser_drag.js is disabled, as it needs to be updated for the new behavior from bug 320638. _BROWSER_FILES = \ browser_typeAheadFind.js \ browser_NetworkPrioritizer.js \ + browser_addon_bar.js \ browser_allTabsPanel.js \ browser_alltabslistener.js \ browser_bug304198.js \ browser_bug321000.js \ title_test.svg \ browser_bug329212.js \ browser_bug356571.js \ browser_bug380960.js \
new file mode 100644 --- /dev/null +++ b/browser/base/content/test/browser_addon_bar.js @@ -0,0 +1,78 @@ +/* ***** 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(); +}
--- a/browser/base/content/test/browser_pageInfo.js +++ b/browser/base/content/test/browser_pageInfo.js @@ -1,41 +1,26 @@ function test() { waitForExplicitFinish(); - var pageInfo, atTest = 0; + var pageInfo; gBrowser.selectedTab = gBrowser.addTab(); gBrowser.selectedBrowser.addEventListener("load", function () { gBrowser.selectedBrowser.removeEventListener("load", arguments.callee, true); pageInfo = BrowserPageInfo(); Services.obs.addObserver(observer, "page-info-dialog-loaded", false); }, true); content.location = "https://example.com/browser/browser/base/content/test/feed_tab.html"; function observer(win, topic, data) { if (topic != "page-info-dialog-loaded") return; - 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; - } + handlePageInfo(); } function $(aId) { return pageInfo.document.getElementById(aId) }; function handlePageInfo() { var feedTab = $("feedTab"); var feedListbox = $("feedListbox"); @@ -48,41 +33,13 @@ function test() { for (var i = 0; i < feedRowsNum; i++) { let feedItem = feedListbox.getItemAtIndex(i); ok(feedItem.getAttribute("name") == (i+1), "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(); } }
--- a/browser/base/content/utilityOverlay.js +++ b/browser/base/content/utilityOverlay.js @@ -45,32 +45,16 @@ var TAB_DROP_TYPE = "application/x-moz-t var gBidiUI = false; 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"); } function openTopWin( url ) { openUILink(url, {})
--- a/browser/components/places/content/bookmarksPanel.xul +++ b/browser/components/places/content/bookmarksPanel.xul @@ -45,17 +45,17 @@ <?xul-overlay href="chrome://browser/content/places/placesOverlay.xul"?> <!DOCTYPE page SYSTEM "chrome://browser/locale/places/places.dtd"> <page id="bookmarksPanel" 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.clearURLFromStatusBar();"> + onunload="SidebarUtils.setMouseoverURL('');"> <script type="application/javascript" src="chrome://browser/content/bookmarks/sidebarUtils.js"/> <script type="application/javascript" src="chrome://browser/content/bookmarks/bookmarksPanel.js"/> <commandset id="placesCommands"/> <commandset id="editMenuCommands"/> @@ -74,16 +74,16 @@ <tree id="bookmarks-view" class="sidebar-placesTree" type="places" flex="1" hidecolumnpicker="true" context="placesContext" onkeypress="SidebarUtils.handleTreeKeyPress(event);" onclick="SidebarUtils.handleTreeClick(this, event, true);" onmousemove="SidebarUtils.handleTreeMouseMove(event);" - onmouseout="SidebarUtils.clearURLFromStatusBar();"> + onmouseout="SidebarUtils.setMouseoverURL('');"> <treecols> <treecol id="title" flex="1" primary="true" hideheader="true"/> </treecols> <treechildren id="bookmarks-view-children" view="bookmarks-view" class="sidebar-placesTreechildren" flex="1" tooltip="bhTooltip"/> </tree> </page>
--- a/browser/components/places/content/history-panel.xul +++ b/browser/components/places/content/history-panel.xul @@ -53,17 +53,17 @@ ]> <!-- we need to keep id="history-panel" for upgrade and switching between versions of the browser --> <page id="history-panel" orient="vertical" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" onload="HistorySidebarInit();" - onunload="SidebarUtils.clearURLFromStatusBar();"> + onunload="SidebarUtils.setMouseoverURL('');"> <script type="application/javascript" src="chrome://browser/content/bookmarks/sidebarUtils.js"/> <script type="application/javascript" src="chrome://browser/content/places/history-panel.js"/> <commandset id="editMenuCommands"/> <commandset id="placesCommands"/> @@ -117,15 +117,15 @@ class="sidebar-placesTree" flex="1" type="places" context="placesContext" hidecolumnpicker="true" onkeypress="SidebarUtils.handleTreeKeyPress(event);" onclick="SidebarUtils.handleTreeClick(this, event, true);" onmousemove="SidebarUtils.handleTreeMouseMove(event);" - onmouseout="SidebarUtils.clearURLFromStatusBar();"> + onmouseout="SidebarUtils.setMouseoverURL('');"> <treecols> <treecol id="title" flex="1" primary="true" hideheader="true"/> </treecols> <treechildren class="sidebar-placesTreechildren" flex="1" tooltip="bhTooltip"/> </tree> </page>
--- a/browser/components/places/content/sidebarUtils.js +++ b/browser/components/places/content/sidebarUtils.js @@ -112,26 +112,25 @@ var SidebarUtils = { return; var tree = aEvent.target.parentNode; var tbo = tree.treeBoxObject; var row = { }, col = { }, obj = { }; 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 URL from the - // status bar in these cases. + // 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. if (row.value != -1) { - var cell = tree.view.nodeForTreeIndex(row.value); - if (PlacesUtils.nodeIsURI(cell)) - window.top.XULBrowserWindow.setOverLink(cell.uri, null); + var node = tree.view.nodeForTreeIndex(row.value); + if (PlacesUtils.nodeIsURI(node)) + this.setMouseoverURL(node.uri); else - this.clearURLFromStatusBar(); + this.setMouseoverURL(""); } else - this.clearURLFromStatusBar(); + this.setMouseoverURL(""); }, - clearURLFromStatusBar: function SU_clearURLFromStatusBar() { - window.top.XULBrowserWindow.setOverLink("", null); + setMouseoverURL: function SU_setMouseoverURL(aURL) { + window.top.XULBrowserWindow.setOverLink(aURL, null); } };
--- a/browser/components/preferences/advanced-scripts.xul +++ b/browser/components/preferences/advanced-scripts.xul @@ -52,20 +52,16 @@ <prefpane id="AdvancedJSDialogPane" helpTopic="prefs-advanced-javascript"> <preferences> <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"/> <stringbundle id="preferencesBundle" src="chrome://browser/locale/preferences/preferences.properties"/> <description value="&allowScripts.label;"/> @@ -73,17 +69,11 @@ accesskey="&moveResizeWindows.accesskey;" preference="dom.disable_window_move_resize"/> <checkbox id="raiseLowerWindows" label="&raiseLowerWindows.label;" accesskey="&raiseLowerWindows.accesskey;" preference="dom.disable_window_flip"/> <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>
--- a/browser/components/privatebrowsing/test/browser/Makefile.in +++ b/browser/components/privatebrowsing/test/browser/Makefile.in @@ -44,17 +44,16 @@ relativesrcdir = browser/components/pri include $(DEPTH)/config/autoconf.mk include $(topsrcdir)/config/rules.mk _BROWSER_TEST_FILES = \ browser_console_clear.js \ 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 \ browser_privatebrowsing_geoprompt.js \ browser_privatebrowsing_geoprompt_page.html \ browser_privatebrowsing_import.js \ browser_privatebrowsing_newwindow_stopcmd.js \ browser_privatebrowsing_opendir.js \ @@ -79,16 +78,19 @@ include $(topsrcdir)/config/rules.mk browser_privatebrowsing_zoomrestore.js \ ctxmenu.html \ ctxmenu-image.png \ popup.html \ staller.sjs \ 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 += \ browser_privatebrowsing_beforeunload_enter.js \ browser_privatebrowsing_beforeunload_exit.js \ browser_privatebrowsing_cookieacceptdialog.js \ $(NULL) endif
--- a/browser/components/privatebrowsing/test/browser/browser_privatebrowsing_popupblocker.js +++ b/browser/components/privatebrowsing/test/browser/browser_privatebrowsing_popupblocker.js @@ -49,43 +49,43 @@ function test() { const TEST_URI = "http://mochi.test:8888/browser/browser/components/privatebrowsing/test/browser/popup.html"; waitForExplicitFinish(); function testPopupBlockerMenuItem(expectedDisabled, callback) { 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) is(document.getElementById("blockedPopupAllowSite").getAttribute("disabled"), "true", "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() { - checkMenuItem(function() { - gBrowser.removeTab(tab); - callback(); - }); - notification.querySelector("button").doCommand(); + gBrowser.removeTab(tab); + callback(); }); - EventUtils.synthesizeMouse(document.getElementById("page-report-button"), 1, 1, {}); + notification.querySelector("button").doCommand(); }); }, false); let tab = gBrowser.addTab(TEST_URI); gBrowser.selectedTab = tab; } testPopupBlockerMenuItem(false, function() {
--- a/browser/locales/en-US/chrome/browser/browser.dtd +++ b/browser/locales/en-US/chrome/browser/browser.dtd @@ -65,18 +65,18 @@ can reach it easily. --> <!ENTITY menubarCmd.label "Menu Bar"> <!ENTITY menubarCmd.accesskey "M"> <!ENTITY navbarCmd.label "Navigation Toolbar"> <!ENTITY navbarCmd.accesskey "N"> <!ENTITY personalbarCmd.label "Bookmarks Toolbar"> <!ENTITY personalbarCmd.accesskey "B"> <!ENTITY bookmarksToolbarItem.label "Bookmarks Toolbar Items"> -<!ENTITY taskbarCmd.label "Status Bar"> -<!ENTITY taskbarCmd.accesskey "B"> +<!ENTITY addonBarCmd.label "Add-on Bar"> +<!ENTITY addonBarCmd.accesskey "B"> <!ENTITY pageSourceCmd.label "Page Source"> <!ENTITY pageSourceCmd.accesskey "o"> <!ENTITY pageSourceCmd.commandkey "u"> <!ENTITY pageInfoCmd.label "Page Info"> <!ENTITY pageInfoCmd.accesskey "I"> <!ENTITY pageInfoCmd.commandkey "i"> <!ENTITY fullScreenCmd.label "Full Screen">
--- a/browser/locales/en-US/chrome/browser/browser.properties +++ b/browser/locales/en-US/chrome/browser/browser.properties @@ -83,17 +83,16 @@ popupWarning=%S prevented this site from popupWarningMultiple=%S prevented this site from opening %S pop-up windows. popupWarningButton=Options popupWarningButton.accesskey=O popupWarningButtonUnix=Preferences 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 missingpluginsMessage.title=Additional plugins are required to display all the media on this page. missingpluginsMessage.button.label=Install Missing Plugins… missingpluginsMessage.button.accesskey=I outdatedpluginsMessage.title=Some plugins used by this page are out of date. outdatedpluginsMessage.updateButton.label=Update Plugins…
--- a/browser/locales/en-US/chrome/browser/pageReportFirstTime.dtd +++ b/browser/locales/en-US/chrome/browser/pageReportFirstTime.dtd @@ -1,7 +1,7 @@ -<!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 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 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."> <!ENTITY caption.label "About Pop-up Blocking"> <!ENTITY done.label "Done">
--- a/browser/locales/en-US/chrome/browser/preferences/advanced-scripts.dtd +++ b/browser/locales/en-US/chrome/browser/preferences/advanced-scripts.dtd @@ -41,12 +41,8 @@ <!ENTITY allowScripts.label "Allow scripts to:"> <!ENTITY moveResizeWindows.label "Move or resize existing windows"> <!ENTITY moveResizeWindows.accesskey "M"> <!ENTITY raiseLowerWindows.label "Raise or lower windows"> <!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">
--- a/browser/locales/en-US/feedback/main.dtd +++ b/browser/locales/en-US/feedback/main.dtd @@ -1,10 +1,9 @@ <!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"> <!ENTITY testpilot.settings.notifyWhen.label "Notify me when…"> <!ENTITY testpilot.settings.readyToSubmit.label "A study is ready to submit"> <!ENTITY testpilot.settings.newStudy.label "There's a new study"> <!ENTITY testpilot.settings.hasNewResults.label "A study has new results"> <!ENTITY testpilot.settings.alwaysSubmitData.label "Automatically submit my data (don't ask me)">
--- a/browser/themes/gnomestripe/browser/browser.css +++ b/browser/themes/gnomestripe/browser/browser.css @@ -1396,38 +1396,16 @@ richlistitem[type~="action"][actiontype= min-width: 27em; } /* Content area */ #sidebar { 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; min-height: 16px; margin: 0 3px; } #navigator-throbber[busy="true"] { @@ -1716,21 +1694,16 @@ toolbarbutton.chevron > .toolbarbutton-m toolbarbutton.chevron > .toolbarbutton-icon { margin: 0; } 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); } /* ::::: Keyboard UI Panel ::::: */
--- a/browser/themes/pinstripe/browser/browser.css +++ b/browser/themes/pinstripe/browser/browser.css @@ -872,25 +872,16 @@ toolbar[mode="icons"] #zoom-in-button { -moz-margin-end: 3px; } #PopupAutoCompleteRichResult { direction: ltr !important; 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 { padding: 0 0 0 1px; margin: 0; } .urlbar-origin-label:-moz-locale-dir(rtl) { @@ -1483,35 +1474,16 @@ sidebarheader { #sidebar-throbber[loading="true"] { list-style-image: url("chrome://global/skin/icons/loading_16.png"); } 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 { -moz-appearance: none; min-width: 0; min-height: 0; -moz-padding-start: 4px !important; list-style-image: url("chrome://browser/skin/feed-icons.png");
--- a/browser/themes/pinstripe/browser/jar.mn +++ b/browser/themes/pinstripe/browser/jar.mn @@ -46,18 +46,16 @@ browser.jar: skin/classic/browser/searchbar-dropmarker.png skin/classic/browser/searchbar.css skin/classic/browser/Search.png skin/classic/browser/Search-addengines.png skin/classic/browser/section_collapsed.png 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 skin/classic/browser/urlbar-favicon-glow.png skin/classic/browser/feeds/subscribe.css (feeds/subscribe.css) skin/classic/browser/feeds/subscribe-ui.css (feeds/subscribe-ui.css) skin/classic/browser/feeds/feedIcon.png (feeds/feedIcon.png) skin/classic/browser/feeds/feedIcon16.png (feeds/feedIcon16.png)
--- a/browser/themes/winstripe/browser/browser.css +++ b/browser/themes/winstripe/browser/browser.css @@ -102,20 +102,16 @@ #personal-bookmarks { min-height: 24px; } #print-preview-toolbar:not(:-moz-lwtheme) { -moz-appearance: toolbox; } -statusbarpanel#statusbar-display { - -moz-padding-start: 0; -} - /* ::::: app menu button ::::: */ #appmenu-button { -moz-appearance: none; background: -moz-linear-gradient(rgb(247,182,82), rgb(215,98,10) 95%); background-clip: padding-box; border-radius: 0 0 4px 4px; border: 1px solid rgba(83,42,6,.9); @@ -1445,34 +1441,16 @@ richlistitem[type~="action"][actiontype= #sidebar { background-color: Window; } #sidebar-title { -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 { width: 16px; min-height: 16px; margin: 0 3px; } @@ -1857,21 +1835,16 @@ toolbar[mode="text"] toolbarbutton.chevr -moz-image-region: rect(0px 32px 16px 16px); } #feed-button[open="true"], #feed-button:hover:active { -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); } toolbarbutton.bookmark-item[dragover="true"][open="true"] { -moz-appearance: none; background: Highlight !important;
--- a/testing/mozmill/tests/firefox/testPopups/testPopupsAllowed.js +++ b/testing/mozmill/tests/firefox/testPopups/testPopupsAllowed.js @@ -77,21 +77,16 @@ var testPopUpAllowed = function() controller.waitForPageLoad(); // A notification bar always exists in the DOM so check the visibility of the X button var button = tabBrowser.getTabPanelElement(tabBrowser.selectedIndex, '/{"value":"popup-blocked"}/anon({"type":"warning"})' + '/{"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}); } /** * Call-back handler for preferences dialog *
--- a/testing/mozmill/tests/firefox/testPopups/testPopupsBlocked.js +++ b/testing/mozmill/tests/firefox/testPopups/testPopupsBlocked.js @@ -79,21 +79,16 @@ var testPopUpBlocked = function() // Check for the close button in the notification bar // A notification bar always exists in the DOM so check the visibility of the X button var button = tabBrowser.getTabPanelElement(tabBrowser.selectedIndex, '/{"value":"popup-blocked"}/anon({"type":"warning"})' + '/{"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}); } /** * Call-back handler for preferences dialog *
deleted file mode 100644 --- a/testing/mozmill/tests/firefox/testSecurity/testSecurityInfoViaPadlock.js +++ /dev/null @@ -1,95 +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 Mozmill Test Code. - * - * The Initial Developer of the Original Code is Mozilla Corporation. - * Portions created by the Initial Developer are Copyright (C) 2009 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * Anthony Hughes <ashughes@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 ***** */ - -const gDelay = 0; -const gTimeout = 5000; - -var setupModule = function(module) -{ - module.controller = mozmill.getBrowserController(); -} - -/** - * Test clicking the padlock in the statusbar opens the Page Info dialog - * to the Security tab - */ -var testSecurityInfoViaPadlock = function() -{ - // Go to a secure website - controller.open("https://www.verisign.com/"); - controller.waitForPageLoad(); - - // Get the information from the certificate for comparison - var secUI = controller.window.getBrowser().mCurrentBrowser.securityUI; - var cert = secUI.QueryInterface(Ci.nsISSLStatusProvider).SSLStatus.serverCert; - - // Click the padlock icon - controller.click(new elementslib.ID(controller.window.document, "security-button")); - - // Check the Page Info - Security Tab - controller.sleep(500); - var window = mozmill.wm.getMostRecentWindow('Browser:page-info'); - var pageInfoController = new mozmill.controller.MozMillController(window); - - // Check that the Security tab is selected by default - var securityTab = new elementslib.ID(pageInfoController.window.document, "securityTab"); - pageInfoController.assertProperty(securityTab, "selected", "true"); - - // Check the Web Site label against the Cert CName - var webIDDomainLabel = new elementslib.ID(pageInfoController.window.document, "security-identity-domain-value"); - pageInfoController.waitForEval("subject.domainLabel.indexOf(subject.CName) != -1", gTimeout, 100, - {domainLabel: webIDDomainLabel.getNode().value, CName: cert.commonName}); - - - // Check the Owner label against the Cert Owner - var webIDOwnerLabel = new elementslib.ID(pageInfoController.window.document, "security-identity-owner-value"); - pageInfoController.assertValue(webIDOwnerLabel, cert.organization); - - // Check the Verifier label against the Cert Issuer - var webIDVerifierLabel = new elementslib.ID(pageInfoController.window.document, "security-identity-verifier-value"); - pageInfoController.assertValue(webIDVerifierLabel, cert.issuerOrganization); - - // Press ESC to close the Page Info dialog - pageInfoController.keypress(null, 'VK_ESCAPE', {}); - - // Wait a bit to make sure the page info window has been closed - controller.sleep(200); -} - -/** - * Map test functions to litmus tests - */ -// testSecurityInfoViaPadlock.meta = {litmusids : [8205]};
--- a/testing/mozmill/tests/firefox/testSecurity/testSecurityNotification.js +++ b/testing/mozmill/tests/firefox/testSecurity/testSecurityNotification.js @@ -57,35 +57,27 @@ var testSecNotification = function() { var query = new elementslib.ID(controller.tabs.activeTab, "query"); controller.assertNode(query); // Verify Mozilla label 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"); // Go to an unsecure (HTTP) site controller.open("http://www.mozilla.org/"); controller.waitForPageLoad(); 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"); // Go to a website which does not have a valid cert controller.open("https://mozilla.org/"); controller.waitForPageLoad(1000); // Verify the link in Technical Details is correct
deleted file mode 100644 --- a/testing/mozmill/tests/firefox/testSecurity/testStatusBarSSLDisplay.js +++ /dev/null @@ -1,69 +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 Mozmill Test Code. - * - * The Initial Developer of the Original Code is Mozilla Corporation. - * Portions created by the Initial Developer are Copyright (C) 2010 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * Anthony Hughes <anthony.s.hughes@gmail.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 ***** */ - -var setupModule = function(module) -{ - module.controller = mozmill.getBrowserController(); -} - -/** - * Test what displays in the status bar for an SSL secured domain - */ -var testSSLDomainLabelInStatusBar = function() -{ - // Go to a secure website - controller.open("https://addons.mozilla.org"); - controller.waitForPageLoad(); - - // Check for the Padlock icon in the status bar - var padlockIcon = new elementslib.ID(controller.window.document, - "security-button"); - controller.assertNode(padlockIcon); - - // Check the domain name does NOT display in the status bar - var lookupPath = '/id("main-window")' + - '/id("browser-bottombox")' + - '/id("status-bar")' + - '/id("security-button")' + - '/anon({"class":"statusbarpanel-text"})'; - var domainText = new elementslib.Lookup(controller.window.document, lookupPath); - controller.assertNodeNotExist(domainText); -} - -/** - * Map test functions to litmus tests - */ -// testSSLDomainLabelInStatusBar.meta = {litmusids : [9328]};