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