diff --git a/b2g/app/nsBrowserApp.cpp b/b2g/app/nsBrowserApp.cpp index b7fcea85f5d9..e7fcc431a5e4 100644 --- a/b2g/app/nsBrowserApp.cpp +++ b/b2g/app/nsBrowserApp.cpp @@ -34,7 +34,7 @@ #endif #ifdef MOZ_WIDGET_GONK -#include "GonkDisplay.h" +#include "BootAnimation.h" #endif #include "BinaryPath.h" @@ -148,8 +148,8 @@ static int do_main(int argc, char* argv[]) } #ifdef MOZ_WIDGET_GONK - /* Called to start the boot animation */ - (void) mozilla::GetGonkDisplay(); + /* Start boot animation */ + mozilla::StartBootAnimation(); #endif if (appini) { diff --git a/b2g/components/AboutServiceWorkers.jsm b/b2g/components/AboutServiceWorkers.jsm index 220d8c69cac7..ff55e7fcbaea 100644 --- a/b2g/components/AboutServiceWorkers.jsm +++ b/b2g/components/AboutServiceWorkers.jsm @@ -130,7 +130,16 @@ this.AboutServiceWorkers = { self.sendError(message.id, "MissingScope"); return; } - gServiceWorkerManager.softUpdate(message.scope); + + if (!message.principal || + !message.principal.originAttributes) { + // XXX This will always error until bug 1171915 is fixed. + self.sendError(message.id, "MissingOriginAttributes"); + return; + } + + gServiceWorkerManager.propagateSoftUpdate({}, + message.scope); self.sendResult(message.id, true); break; @@ -166,9 +175,9 @@ this.AboutServiceWorkers = { Ci.nsIServiceWorkerUnregisterCallback ]) }; - gServiceWorkerManager.unregister(principal, - serviceWorkerUnregisterCallback, - message.scope); + gServiceWorkerManager.propagateUnregister(principal, + serviceWorkerUnregisterCallback, + message.scope); break; } } diff --git a/b2g/components/test/unit/test_aboutserviceworkers.js b/b2g/components/test/unit/test_aboutserviceworkers.js index c6fbe4462760..56273f1ce27d 100644 --- a/b2g/components/test/unit/test_aboutserviceworkers.js +++ b/b2g/components/test/unit/test_aboutserviceworkers.js @@ -128,12 +128,15 @@ add_test(function test_swm() { "SWM.getAllRegistrations exists"); do_check_true(typeof gServiceWorkerManager.getAllRegistrations == "function", "SWM.getAllRegistrations is a function"); - do_check_true(gServiceWorkerManager.softUpdate, "SWM.softUpdate exists"); - do_check_true(typeof gServiceWorkerManager.softUpdate == "function", - "SWM.softUpdate is a function"); - do_check_true(gServiceWorkerManager.unregister, "SWM.unregister exists"); - do_check_true(typeof gServiceWorkerManager.unregister == "function", - "SWM.unregister exists"); + do_check_true(gServiceWorkerManager.propagateSoftUpdate, + "SWM.propagateSoftUpdate exists"); + do_check_true(typeof gServiceWorkerManager.propagateSoftUpdate == "function", + + "SWM.propagateSoftUpdate is a function"); + do_check_true(gServiceWorkerManager.propagateUnregister, + "SWM.propagateUnregister exists"); + do_check_true(typeof gServiceWorkerManager.propagateUnregister == "function", + "SWM.propagateUnregister exists"); run_next_test(); }); diff --git a/browser/app/profile/firefox.js b/browser/app/profile/firefox.js index 5f957ff66bd3..1d81509b584e 100644 --- a/browser/app/profile/firefox.js +++ b/browser/app/profile/firefox.js @@ -270,7 +270,7 @@ pref("general.autoScroll", true); // At startup, check if we're the default browser and prompt user if not. pref("browser.shell.checkDefaultBrowser", true); pref("browser.shell.shortcutFavicons",true); -pref("browser.shell.isSetAsDefaultBrowser", false); +pref("browser.shell.mostRecentDateSetAsDefault", ""); // 0 = blank, 1 = home (browser.startup.homepage), 2 = last visited page, 3 = resume previous browser session // The behavior of option 3 is detailed at: http://wiki.mozilla.org/Session_Restore @@ -1462,6 +1462,7 @@ pref("devtools.performance.ui.flatten-tree-recursion", true); pref("devtools.performance.ui.show-platform-data", false); pref("devtools.performance.ui.show-idle-blocks", true); pref("devtools.performance.ui.enable-memory", false); +pref("devtools.performance.ui.enable-allocations", false); pref("devtools.performance.ui.enable-framerate", true); pref("devtools.performance.ui.show-jit-optimizations", false); @@ -1487,6 +1488,15 @@ pref("devtools.netmonitor.panes-network-details-height", 450); pref("devtools.netmonitor.statistics", true); pref("devtools.netmonitor.filters", "[\"all\"]"); +// The default Network monitor HAR export setting +pref("devtools.netmonitor.har.defaultLogDir", ""); +pref("devtools.netmonitor.har.defaultFileName", "archive"); +pref("devtools.netmonitor.har.jsonp", false); +pref("devtools.netmonitor.har.jsonpCallback", ""); +pref("devtools.netmonitor.har.includeResponseBodies", true); +pref("devtools.netmonitor.har.compress", false); +pref("devtools.netmonitor.har.forceExport", false); + // Enable the Tilt inspector pref("devtools.tilt.enabled", true); pref("devtools.tilt.intro_transition", true); diff --git a/browser/base/content/aboutNetError.xhtml b/browser/base/content/aboutNetError.xhtml index c061e8cdcdb2..5bac3a79e73e 100644 --- a/browser/base/content/aboutNetError.xhtml +++ b/browser/base/content/aboutNetError.xhtml @@ -112,6 +112,12 @@ .addEventListener('click', function togglePanelVisibility() { var panel = document.getElementById('certificateErrorReportingPanel'); toggleDisplay(panel); + + if (panel.style.display == "block") { + // send event to trigger telemetry ping + var event = new CustomEvent("AboutNetErrorUIExpanded", {bubbles:true}); + document.dispatchEvent(event); + } }); } diff --git a/browser/base/content/browser-doctype.inc b/browser/base/content/browser-doctype.inc index cc1fb950f452..ad08f4b03464 100644 --- a/browser/base/content/browser-doctype.inc +++ b/browser/base/content/browser-doctype.inc @@ -3,8 +3,6 @@ %brandDTD; %browserDTD; - -%browserPocketDTD; %baseMenuDTD; diff --git a/browser/base/content/browser-fullScreen.js b/browser/base/content/browser-fullScreen.js index acbf87902ace..1dce6cba7bf1 100644 --- a/browser/base/content/browser-fullScreen.js +++ b/browser/base/content/browser-fullScreen.js @@ -7,14 +7,17 @@ var FullScreen = { _XULNS: "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul", _MESSAGES: [ - "DOMFullscreen:Entered", + "DOMFullscreen:Request", "DOMFullscreen:NewOrigin", - "DOMFullscreen:Exited" + "DOMFullscreen:Exited", ], init: function() { // called when we go into full screen, even if initiated by a web page script window.addEventListener("fullscreen", this, true); + window.addEventListener("MozDOMFullscreen:Entered", this, + /* useCapture */ true, + /* wantsUntrusted */ false); window.addEventListener("MozDOMFullscreen:Exited", this, /* useCapture */ true, /* wantsUntrusted */ false); @@ -33,13 +36,9 @@ var FullScreen = { this.cleanup(); }, - toggle: function (event) { + toggle: function () { 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; - // Toggle the View:FullScreen command, which controls elements like the // fullscreen menuitem, and menubars. let fullscreenCommand = document.getElementById("View:FullScreen"); @@ -106,12 +105,41 @@ var FullScreen = { } break; case "fullscreen": - this.toggle(event); + this.toggle(); break; case "transitionend": if (event.propertyName == "opacity") this.cancelWarning(); break; + case "MozDOMFullscreen:Entered": { + // The original target is the element which requested the DOM + // fullscreen. If we were entering DOM fullscreen for a remote + // browser, this element would be that browser element, which + // was the parameter of `remoteFrameFullscreenChanged` call. + // If the fullscreen request was initiated from an in-process + // browser, we need to get its corresponding browser element. + let originalTarget = event.originalTarget; + let browser; + if (this._isBrowser(originalTarget)) { + browser = originalTarget; + } else { + let topWin = originalTarget.ownerDocument.defaultView.top; + browser = gBrowser.getBrowserForContentWindow(topWin); + if (!browser) { + document.mozCancelFullScreen(); + break; + } + } + this.enterDomFullscreen(browser); + // If it is a remote browser, send a message to ask the content + // to enter fullscreen state. We don't need to do so if it is an + // in-process browser, since all related document should have + // entered fullscreen state at this point. + if (this._isRemoteBrowser(browser)) { + browser.messageManager.sendAsyncMessage("DOMFullscreen:Entered"); + } + break; + } case "MozDOMFullscreen:Exited": this.cleanupDomFullscreen(); break; @@ -121,16 +149,8 @@ var FullScreen = { receiveMessage: function(aMessage) { let browser = aMessage.target; switch (aMessage.name) { - case "DOMFullscreen:Entered": { - // If we're a multiprocess browser, then the request to enter - // fullscreen did not bubble up to the root browser document - - // it stopped at the root of the content document. That means - // we have to kick off the switch to fullscreen here at the - // operating system level in the parent process ourselves. - if (this._isRemoteBrowser(browser)) { - this._windowUtils.remoteFrameFullscreenChanged(browser); - } - this.enterDomFullscreen(browser); + case "DOMFullscreen:Request": { + this._windowUtils.remoteFrameFullscreenChanged(browser); break; } case "DOMFullscreen:NewOrigin": { @@ -192,7 +212,7 @@ var FullScreen = { }, cleanup: function () { - if (window.fullScreen) { + if (!window.fullScreen) { MousePosTracker.removeListener(this); document.removeEventListener("keypress", this._keyToggleCallback, false); document.removeEventListener("popupshown", this._setPopupOpen, false); @@ -220,6 +240,13 @@ var FullScreen = { .broadcastAsyncMessage("DOMFullscreen:CleanUp"); }, + _isBrowser: function (aNode) { + if (aNode.tagName != "xul:browser") { + return false; + } + let systemPrincipal = Services.scriptSecurityManager.getSystemPrincipal(); + return aNode.nodePrincipal == systemPrincipal; + }, _isRemoteBrowser: function (aBrowser) { return gMultiProcessBrowser && aBrowser.getAttribute("remote") == "true"; }, diff --git a/browser/base/content/browser-menubar.inc b/browser/base/content/browser-menubar.inc index 883761c5c3cf..0dccfb835d82 100644 --- a/browser/base/content/browser-menubar.inc +++ b/browser/base/content/browser-menubar.inc @@ -543,7 +543,8 @@ observes="devtoolsMenuBroadcaster_BrowserToolbox" accesskey="&browserToolboxMenu.accesskey;"/> + observes="devtoolsMenuBroadcaster_BrowserContentToolbox" + accesskey="&browserContentToolboxMenu.accesskey;" /> diff --git a/browser/base/content/browser-places.js b/browser/base/content/browser-places.js index a8ae76c91a49..d219f9a81fc1 100644 --- a/browser/base/content/browser-places.js +++ b/browser/base/content/browser-places.js @@ -1563,25 +1563,6 @@ let BookmarkingUI = { updatePocketItemVisibility: function BUI_updatePocketItemVisibility(prefix) { let hidden = !CustomizableUI.getPlacementOfWidget("pocket-button"); - if (!hidden) { - let locale = Cc["@mozilla.org/chrome/chrome-registry;1"]. - getService(Ci.nsIXULChromeRegistry). - getSelectedLocale("browser"); - if (locale != "en-US") { - if (locale == "ja-JP-mac") - locale = "ja"; - let url = "chrome://browser/content/browser-pocket-" + locale + ".properties"; - let bundle = Services.strings.createBundle(url); - let item = document.getElementById(prefix + "pocket"); - try { - item.setAttribute("label", bundle.GetStringFromName("pocketMenuitem.label")); - } catch (err) { - // GetStringFromName throws when the bundle doesn't exist. In that - // case, the item will retain the browser-pocket.dtd en-US string that - // it has in the markup. - } - } - } document.getElementById(prefix + "pocket").hidden = hidden; document.getElementById(prefix + "pocketSeparator").hidden = hidden; }, diff --git a/browser/base/content/browser-pocket-de.properties b/browser/base/content/browser-pocket-de.properties deleted file mode 100644 index 77f3917b7575..000000000000 --- a/browser/base/content/browser-pocket-de.properties +++ /dev/null @@ -1,16 +0,0 @@ -# This Source Code Form is subject to the terms of the Mozilla Public -# License, v. 2.0. If a copy of the MPL was not distributed with this -# file, You can obtain one at http://mozilla.org/MPL/2.0/. - -# This is a temporary file, later versions of Firefox will use -# browser.properties in the usual L10N location. - -pocket-button.label = Pocket -pocket-button.tooltiptext = Bei Pocket speichern - -# From browser-pocket.dtd -saveToPocketCmd.label = Seite bei Pocket speichern -saveToPocketCmd.accesskey = k -saveLinkToPocketCmd.label = Link bei Pocket speichern -saveLinkToPocketCmd.accesskey = o -pocketMenuitem.label = Pocket-Liste anzeigen diff --git a/browser/base/content/browser-pocket-es-ES.properties b/browser/base/content/browser-pocket-es-ES.properties deleted file mode 100644 index 419e1cbbfed3..000000000000 --- a/browser/base/content/browser-pocket-es-ES.properties +++ /dev/null @@ -1,16 +0,0 @@ -# This Source Code Form is subject to the terms of the Mozilla Public -# License, v. 2.0. If a copy of the MPL was not distributed with this -# file, You can obtain one at http://mozilla.org/MPL/2.0/. - -# This is a temporary file, later versions of Firefox will use -# browser.properties in the usual L10N location. - -pocket-button.label = Pocket -pocket-button.tooltiptext = Guardar en Pocket - -# From browser-pocket.dtd -saveToPocketCmd.label = Guardar página en Pocket -saveToPocketCmd.accesskey = k -saveLinkToPocketCmd.label = Guardar enlace en Pocket -saveLinkToPocketCmd.accesskey = k -pocketMenuitem.label = Ver lista de Pocket diff --git a/browser/base/content/browser-pocket-ja.properties b/browser/base/content/browser-pocket-ja.properties deleted file mode 100644 index 94c85ee6114f..000000000000 --- a/browser/base/content/browser-pocket-ja.properties +++ /dev/null @@ -1,16 +0,0 @@ -# This Source Code Form is subject to the terms of the Mozilla Public -# License, v. 2.0. If a copy of the MPL was not distributed with this -# file, You can obtain one at http://mozilla.org/MPL/2.0/. - -# This is a temporary file, later versions of Firefox will use -# browser.properties in the usual L10N location. - -pocket-button.label = Pocket -pocket-button.tooltiptext = Pocket に保存 - -# From browser-pocket.dtd -saveToPocketCmd.label = Pocket にページを保存 -saveToPocketCmd.accesskey = k -saveLinkToPocketCmd.label = Pocket にリンクを保存 -saveLinkToPocketCmd.accesskey = o -pocketMenuitem.label = Pocket のマイリストを表示 diff --git a/browser/base/content/browser-pocket-ru.properties b/browser/base/content/browser-pocket-ru.properties deleted file mode 100644 index 840e6de8c6fe..000000000000 --- a/browser/base/content/browser-pocket-ru.properties +++ /dev/null @@ -1,16 +0,0 @@ -# This Source Code Form is subject to the terms of the Mozilla Public -# License, v. 2.0. If a copy of the MPL was not distributed with this -# file, You can obtain one at http://mozilla.org/MPL/2.0/. - -# This is a temporary file, later versions of Firefox will use -# browser.properties in the usual L10N location. - -pocket-button.label = Pocket -pocket-button.tooltiptext = Сохранить в Pocket - -# From browser-pocket.dtd -saveToPocketCmd.label = Сохранить страницу в Pocket -saveToPocketCmd.accesskey = х -saveLinkToPocketCmd.label = Сохранить ссылку в Pocket -saveLinkToPocketCmd.accesskey = а -pocketMenuitem.label = Показать список Pocket diff --git a/browser/base/content/browser-pocket.dtd b/browser/base/content/browser-pocket.dtd deleted file mode 100644 index 460866f777ba..000000000000 --- a/browser/base/content/browser-pocket.dtd +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - diff --git a/browser/base/content/browser.css b/browser/base/content/browser.css index 079f1bf56173..7e9bd61cb862 100644 --- a/browser/base/content/browser.css +++ b/browser/base/content/browser.css @@ -1291,3 +1291,7 @@ toolbarpaletteitem[place="palette"][hidden] { .popup-notification-footer[popupid="bad-content"][trackingblockdisabled] { display: block; } + +#login-fill-doorhanger:not([inDetailView]) > #login-fill-clickcapturer { + pointer-events: none; +} diff --git a/browser/base/content/browser.js b/browser/base/content/browser.js index 7628d98f2e97..e920328c2c27 100644 --- a/browser/base/content/browser.js +++ b/browser/base/content/browser.js @@ -220,9 +220,6 @@ XPCOMUtils.defineLazyModuleGetter(this, "SitePermissions", XPCOMUtils.defineLazyModuleGetter(this, "SessionStore", "resource:///modules/sessionstore/SessionStore.jsm"); -XPCOMUtils.defineLazyModuleGetter(this, "TabState", - "resource:///modules/sessionstore/TabState.jsm"); - XPCOMUtils.defineLazyModuleGetter(this, "fxAccounts", "resource://gre/modules/FxAccounts.jsm"); @@ -921,22 +918,7 @@ function _loadURIWithFlags(browser, uri, params) { // process function LoadInOtherProcess(browser, loadOptions, historyIndex = -1) { let tab = gBrowser.getTabForBrowser(browser); - // Flush the tab state before getting it - TabState.flush(browser); - let tabState = JSON.parse(SessionStore.getTabState(tab)); - - if (historyIndex < 0) { - tabState.userTypedValue = null; - // Tell session history the new page to load - SessionStore._restoreTabAndLoad(tab, JSON.stringify(tabState), loadOptions); - } - else { - // Update the history state to point to the requested index - tabState.index = historyIndex + 1; - // SessionStore takes care of setting the browser remoteness before restoring - // history into it. - SessionStore.setTabState(tab, JSON.stringify(tabState)); - } + SessionStore.navigateAndRestore(tab, loadOptions, historyIndex); } // Called when a docshell has attempted to load a page in an incorrect process. @@ -2692,6 +2674,12 @@ let gMenuButtonUpdateBadge = { } }; +// Values for telemtery bins: see TLS_ERROR_REPORT_UI in Histograms.json +const TLS_ERROR_REPORT_TELEMETRY_AUTO_CHECKED = 2; +const TLS_ERROR_REPORT_TELEMETRY_AUTO_UNCHECKED = 3; +const TLS_ERROR_REPORT_TELEMETRY_MANUAL_SEND = 4; +const TLS_ERROR_REPORT_TELEMETRY_AUTO_SEND = 5; + /** * Handle command events bubbling up from error page content * or from about:newtab or from remote error pages that invoke @@ -2705,6 +2693,7 @@ let BrowserOnClick = { mm.addMessageListener("Browser:EnableOnlineMode", this); mm.addMessageListener("Browser:SendSSLErrorReport", this); mm.addMessageListener("Browser:SetSSLErrorReportAuto", this); + mm.addMessageListener("Browser:SSLErrorReportTelemetry", this); }, uninit: function () { @@ -2714,6 +2703,7 @@ let BrowserOnClick = { mm.removeMessageListener("Browser:EnableOnlineMode", this); mm.removeMessageListener("Browser:SendSSLErrorReport", this); mm.removeMessageListener("Browser:SetSSLErrorReportAuto", this); + mm.removeMessageListener("Browser:SSLErrorReportTelemetry", this); }, handleEvent: function (event) { @@ -2760,6 +2750,16 @@ let BrowserOnClick = { break; case "Browser:SetSSLErrorReportAuto": Services.prefs.setBoolPref("security.ssl.errorReporting.automatic", msg.json.automatic); + let bin = TLS_ERROR_REPORT_TELEMETRY_AUTO_UNCHECKED; + if (msg.json.automatic) { + bin = TLS_ERROR_REPORT_TELEMETRY_AUTO_CHECKED; + } + Services.telemetry.getHistogramById("TLS_ERROR_REPORT_UI").add(bin); + break; + case "Browser:SSLErrorReportTelemetry": + let reportStatus = msg.data.reportStatus; + Services.telemetry.getHistogramById("TLS_ERROR_REPORT_UI") + .add(reportStatus); break; } }, @@ -2781,6 +2781,12 @@ let BrowserOnClick = { return; } + let bin = TLS_ERROR_REPORT_TELEMETRY_MANUAL_SEND; + if (Services.prefs.getBoolPref("security.ssl.errorReporting.automatic")) { + bin = TLS_ERROR_REPORT_TELEMETRY_AUTO_SEND; + } + Services.telemetry.getHistogramById("TLS_ERROR_REPORT_UI").add(bin); + let serhelper = Cc["@mozilla.org/network/serialization-helper;1"] .getService(Ci.nsISerializationHelper); let transportSecurityInfo = serhelper.deserializeObject(securityInfo); @@ -6579,23 +6585,6 @@ var gIdentityHandler = { _mode : "unknownIdentity", // smart getters - get _encryptionLabel () { - delete this._encryptionLabel; - this._encryptionLabel = {}; - this._encryptionLabel[this.IDENTITY_MODE_DOMAIN_VERIFIED] = - gNavigatorBundle.getString("identity.encrypted2"); - this._encryptionLabel[this.IDENTITY_MODE_IDENTIFIED] = - gNavigatorBundle.getString("identity.encrypted2"); - this._encryptionLabel[this.IDENTITY_MODE_UNKNOWN] = - gNavigatorBundle.getString("identity.unencrypted"); - this._encryptionLabel[this.IDENTITY_MODE_MIXED_DISPLAY_LOADED] = - gNavigatorBundle.getString("identity.broken_loaded"); - this._encryptionLabel[this.IDENTITY_MODE_MIXED_ACTIVE_LOADED] = - gNavigatorBundle.getString("identity.mixed_active_loaded2"); - this._encryptionLabel[this.IDENTITY_MODE_MIXED_DISPLAY_LOADED_ACTIVE_BLOCKED] = - gNavigatorBundle.getString("identity.broken_loaded"); - return this._encryptionLabel; - }, get _identityPopup () { delete this._identityPopup; return this._identityPopup = document.getElementById("identity-popup"); @@ -6609,11 +6598,6 @@ var gIdentityHandler = { return this._identityPopupContentBox = document.getElementById("identity-popup-content-box"); }, - get _identityPopupChromeLabel () { - delete this._identityPopupChromeLabel; - return this._identityPopupChromeLabel = - document.getElementById("identity-popup-chromeLabel"); - }, get _identityPopupContentHost () { delete this._identityPopupContentHost; return this._identityPopupContentHost = @@ -6634,11 +6618,6 @@ var gIdentityHandler = { return this._identityPopupContentVerif = document.getElementById("identity-popup-content-verifier"); }, - get _identityPopupEncLabel () { - delete this._identityPopupEncLabel; - return this._identityPopupEncLabel = - document.getElementById("identity-popup-encryption-label"); - }, get _identityIconLabel () { delete this._identityIconLabel; return this._identityIconLabel = document.getElementById("identity-icon-label"); @@ -6956,25 +6935,32 @@ var gIdentityHandler = { this._identityPopup.className = newMode; this._identityPopupContentBox.className = newMode; - // Set the static strings up front - this._identityPopupEncLabel.textContent = this._encryptionLabel[newMode]; - // Initialize the optional strings to empty values let supplemental = ""; let verifier = ""; let host = ""; let owner = ""; + if (newMode == this.IDENTITY_MODE_CHROMEUI) { + let brandBundle = document.getElementById("bundle_brand"); + host = brandBundle.getString("brandFullName"); + } else { + try { + host = this.getEffectiveHost(); + } catch (e) { + // Some URIs might have no hosts. + host = this._lastUri.specIgnoringRef; + } + } + switch (newMode) { case this.IDENTITY_MODE_DOMAIN_VERIFIED: - host = this.getEffectiveHost(); verifier = this._identityBox.tooltipText; break; case this.IDENTITY_MODE_IDENTIFIED: { // If it's identified, then we can populate the dialog with credentials let iData = this.getIdentityData(); - host = this.getEffectiveHost(); - owner = iData.subjectOrg; + host = owner = iData.subjectOrg; verifier = this._identityBox.tooltipText; // Build an appropriate supplemental block out of whatever location data we have @@ -6987,17 +6973,21 @@ var gIdentityHandler = { supplemental += iData.state; else if (iData.country) // Country only supplemental += iData.country; - break; } - case this.IDENTITY_MODE_CHROMEUI: { - let brandBundle = document.getElementById("bundle_brand"); - let brandShortName = brandBundle.getString("brandShortName"); - this._identityPopupChromeLabel.textContent = gNavigatorBundle.getFormattedString("identity.chrome", - [brandShortName]); - break; } + break; + } + case this.IDENTITY_MODE_MIXED_DISPLAY_LOADED: + case this.IDENTITY_MODE_MIXED_DISPLAY_LOADED_ACTIVE_BLOCKED: + supplemental = gNavigatorBundle.getString("identity.broken_loaded"); + break; + case this.IDENTITY_MODE_MIXED_ACTIVE_LOADED: + supplemental = gNavigatorBundle.getString("identity.mixed_active_loaded2"); + break; } - // Push the appropriate strings out to the UI - this._identityPopupContentHost.textContent = host; + // Push the appropriate strings out to the UI. Need to use |value| for the + // host as it's a