summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--application/basilisk/base/content/browser-addons.js13
-rw-r--r--application/basilisk/base/content/browser-syncui.js21
-rw-r--r--application/basilisk/base/content/browser.js42
-rw-r--r--application/basilisk/fonts/TwemojiMozilla.ttfbin1057104 -> 1158828 bytes
-rw-r--r--application/basilisk/modules/PermissionUI.jsm23
-rw-r--r--application/palemoon/base/content/browser-syncui.js17
-rw-r--r--application/palemoon/config/version.txt2
-rw-r--r--application/palemoon/fonts/TwemojiMozilla.ttfbin1075912 -> 1158828 bytes
-rw-r--r--config/milestone.txt2
-rw-r--r--devtools/shared/css/lexer.js21
-rw-r--r--devtools/shared/tests/unit/test_csslexer.js3
-rw-r--r--layout/reftests/css-parsing/invalid-url-handling.xhtml22
-rw-r--r--layout/style/nsCSSScanner.cpp22
-rw-r--r--layout/style/test/test_csslexer.js3
-rw-r--r--mobile/android/chrome/content/browser.js28
-rw-r--r--security/manager/pki/resources/content/exceptionDialog.js20
-rw-r--r--security/manager/ssl/moz.build1
-rw-r--r--security/manager/ssl/nsISecurityUITelemetry.idl150
-rw-r--r--services/sync/locales/en-US/sync.properties1
-rw-r--r--toolkit/components/viewsource/content/viewSource-content.js3
-rw-r--r--toolkit/modules/UpdateUtils.jsm2
-rw-r--r--toolkit/mozapps/extensions/amWebInstallListener.js4
-rw-r--r--toolkit/mozapps/extensions/content/xpinstallConfirm.js4
23 files changed, 86 insertions, 318 deletions
diff --git a/application/basilisk/base/content/browser-addons.js b/application/basilisk/base/content/browser-addons.js
index 1d881536a..733114ba9 100644
--- a/application/basilisk/base/content/browser-addons.js
+++ b/application/basilisk/base/content/browser-addons.js
@@ -145,10 +145,6 @@ const gXPInstallObserver = {
for (let install of installInfo.installs)
install.install();
installInfo = null;
-
- Services.telemetry
- .getHistogramById("SECURITY_UI")
- .add(Ci.nsISecurityUITelemetry.WARNING_CONFIRM_ADDON_INSTALL_CLICK_THROUGH);
};
break;
}
@@ -208,10 +204,6 @@ const gXPInstallObserver = {
options);
removeNotificationOnEnd(popup, installInfo.installs);
-
- Services.telemetry
- .getHistogramById("SECURITY_UI")
- .add(Ci.nsISecurityUITelemetry.WARNING_CONFIRM_ADDON_INSTALL);
},
observe: function (aSubject, aTopic, aData)
@@ -262,8 +254,6 @@ const gXPInstallObserver = {
messageString = gNavigatorBundle.getFormattedString("xpinstallPromptMessage",
[brandShortName]);
- let secHistogram = Components.classes["@mozilla.org/base/telemetry;1"].getService(Ci.nsITelemetry).getHistogramById("SECURITY_UI");
- secHistogram.add(Ci.nsISecurityUITelemetry.WARNING_ADDON_ASKING_PREVENTED);
let popup = PopupNotifications.show(browser, notificationID,
messageString, anchorID,
null, null, options);
@@ -273,17 +263,14 @@ const gXPInstallObserver = {
messageString = gNavigatorBundle.getFormattedString("xpinstallPromptMessage",
[brandShortName]);
- let secHistogram = Components.classes["@mozilla.org/base/telemetry;1"].getService(Ci.nsITelemetry).getHistogramById("SECURITY_UI");
action = {
label: gNavigatorBundle.getString("xpinstallPromptAllowButton"),
accessKey: gNavigatorBundle.getString("xpinstallPromptAllowButton.accesskey"),
callback: function() {
- secHistogram.add(Ci.nsISecurityUITelemetry.WARNING_ADDON_ASKING_PREVENTED_CLICK_THROUGH);
installInfo.install();
}
};
- secHistogram.add(Ci.nsISecurityUITelemetry.WARNING_ADDON_ASKING_PREVENTED);
let popup = PopupNotifications.show(browser, notificationID,
messageString, anchorID,
action, null, options);
diff --git a/application/basilisk/base/content/browser-syncui.js b/application/basilisk/base/content/browser-syncui.js
index d0f46247a..f57472658 100644
--- a/application/basilisk/base/content/browser-syncui.js
+++ b/application/basilisk/base/content/browser-syncui.js
@@ -93,17 +93,25 @@ var gSyncUI = {
document.getElementById("sync-setup-state").hidden = !needsSetup;
document.getElementById("sync-syncnow-state").hidden = needsSetup;
- if (!gBrowser)
+ if (!gBrowser) {
return;
+ }
let button = document.getElementById("sync-button");
- if (!button)
+ if (!button) {
return;
+ }
button.removeAttribute("status");
+
this._updateLastSyncTime();
- if (needsSetup)
+
+ if (needsSetup) {
button.removeAttribute("tooltiptext");
+ button.setAttribute("label", this._stringBundle.GetStringFromName("setupsync.label"));
+ } else {
+ button.setAttribute("label", this._stringBundle.GetStringFromName("syncnow.label"));
+ }
},
@@ -117,6 +125,7 @@ var gSyncUI = {
return;
button.setAttribute("status", "active");
+ button.setAttribute("label", this._stringBundle.GetStringFromName("syncing2.label"));
},
onSyncDelay: function SUI_onSyncDelay() {
@@ -281,11 +290,7 @@ var gSyncUI = {
if (!syncButton)
return;
- let lastSync;
- try {
- lastSync = Services.prefs.getCharPref("services.sync.lastSync");
- }
- catch (e) { };
+ let lastSync = Services.prefs.getCharPref("services.sync.lastSync", "");
if (!lastSync || this._needsSetup()) {
syncButton.removeAttribute("tooltiptext");
return;
diff --git a/application/basilisk/base/content/browser.js b/application/basilisk/base/content/browser.js
index 926a369dd..1dee19a1d 100644
--- a/application/basilisk/base/content/browser.js
+++ b/application/basilisk/base/content/browser.js
@@ -2808,15 +2808,10 @@ var BrowserOnClick = {
},
onCertError: function (browser, elementId, isTopFrame, location, securityInfoAsString) {
- let secHistogram = Services.telemetry.getHistogramById("SECURITY_UI");
let securityInfo;
switch (elementId) {
case "exceptionDialogButton":
- if (isTopFrame) {
- secHistogram.add(Ci.nsISecurityUITelemetry.WARNING_BAD_CERT_TOP_CLICK_ADD_EXCEPTION);
- }
-
securityInfo = getSecurityInfo(securityInfoAsString);
let sslStatus = securityInfo.QueryInterface(Ci.nsISSLStatusProvider)
.SSLStatus;
@@ -2844,64 +2839,27 @@ var BrowserOnClick = {
break;
case "returnButton":
- if (isTopFrame) {
- secHistogram.add(Ci.nsISecurityUITelemetry.WARNING_BAD_CERT_TOP_GET_ME_OUT_OF_HERE);
- }
goBackFromErrorPage();
break;
-
- case "advancedButton":
- if (isTopFrame) {
- secHistogram.add(Ci.nsISecurityUITelemetry.WARNING_BAD_CERT_TOP_UNDERSTAND_RISKS);
- }
-
- break;
}
},
onAboutBlocked: function (elementId, reason, isTopFrame, location) {
// Depending on what page we are displaying here (malware/phishing/unwanted)
// use the right strings and links for each.
- let bucketName = "";
- let sendTelemetry = false;
- if (reason === 'malware') {
- sendTelemetry = true;
- bucketName = "WARNING_MALWARE_PAGE_";
- } else if (reason === 'phishing') {
- sendTelemetry = true;
- bucketName = "WARNING_PHISHING_PAGE_";
- } else if (reason === 'unwanted') {
- sendTelemetry = true;
- bucketName = "WARNING_UNWANTED_PAGE_";
- }
- let secHistogram = Services.telemetry.getHistogramById("SECURITY_UI");
- let nsISecTel = Ci.nsISecurityUITelemetry;
- bucketName += isTopFrame ? "TOP_" : "FRAME_";
switch (elementId) {
case "getMeOutButton":
- if (sendTelemetry) {
- secHistogram.add(nsISecTel[bucketName + "GET_ME_OUT_OF_HERE"]);
- }
getMeOutOfHere();
break;
case "reportButton":
// This is the "Why is this site blocked" button. We redirect
// to the generic page describing phishing/malware protection.
-
- // We log even if malware/phishing/unwanted info URL couldn't be found:
- // the measurement is for how many users clicked the WHY BLOCKED button
- if (sendTelemetry) {
- secHistogram.add(nsISecTel[bucketName + "WHY_BLOCKED"]);
- }
openHelpLink("phishing-malware", false, "current");
break;
case "ignoreWarningButton":
if (gPrefService.getBoolPref("browser.safebrowsing.allowOverride")) {
- if (sendTelemetry) {
- secHistogram.add(nsISecTel[bucketName + "IGNORE_WARNING"]);
- }
this.ignoreWarningButton(reason);
}
break;
diff --git a/application/basilisk/fonts/TwemojiMozilla.ttf b/application/basilisk/fonts/TwemojiMozilla.ttf
index 1933891d9..c47cbbf11 100644
--- a/application/basilisk/fonts/TwemojiMozilla.ttf
+++ b/application/basilisk/fonts/TwemojiMozilla.ttf
Binary files differ
diff --git a/application/basilisk/modules/PermissionUI.jsm b/application/basilisk/modules/PermissionUI.jsm
index 5fa0f9f06..5c8b94421 100644
--- a/application/basilisk/modules/PermissionUI.jsm
+++ b/application/basilisk/modules/PermissionUI.jsm
@@ -437,26 +437,12 @@ GeolocationPermissionPrompt.prototype = {
},
get promptActions() {
- // We collect Telemetry data on Geolocation prompts and how users
- // respond to them. The probe keys are a bit verbose, so let's alias them.
- const SHARE_LOCATION =
- Ci.nsISecurityUITelemetry.WARNING_GEOLOCATION_REQUEST_SHARE_LOCATION;
- const ALWAYS_SHARE =
- Ci.nsISecurityUITelemetry.WARNING_GEOLOCATION_REQUEST_ALWAYS_SHARE;
- const NEVER_SHARE =
- Ci.nsISecurityUITelemetry.WARNING_GEOLOCATION_REQUEST_NEVER_SHARE;
-
- let secHistogram = Services.telemetry.getHistogramById("SECURITY_UI");
-
let actions = [{
label: gBrowserBundle.GetStringFromName("geolocation.shareLocation"),
accessKey:
gBrowserBundle.GetStringFromName("geolocation.shareLocation.accesskey"),
action: null,
expireType: null,
- callback: function() {
- secHistogram.add(SHARE_LOCATION);
- },
}];
if (!this.principal.URI.schemeIs("file")) {
@@ -467,9 +453,6 @@ GeolocationPermissionPrompt.prototype = {
gBrowserBundle.GetStringFromName("geolocation.alwaysShareLocation.accesskey"),
action: Ci.nsIPermissionManager.ALLOW_ACTION,
expireType: null,
- callback: function() {
- secHistogram.add(ALWAYS_SHARE);
- },
});
// Never share location action.
@@ -479,9 +462,6 @@ GeolocationPermissionPrompt.prototype = {
gBrowserBundle.GetStringFromName("geolocation.neverShareLocation.accesskey"),
action: Ci.nsIPermissionManager.DENY_ACTION,
expireType: null,
- callback: function() {
- secHistogram.add(NEVER_SHARE);
- },
});
}
@@ -489,9 +469,6 @@ GeolocationPermissionPrompt.prototype = {
},
onBeforeShow() {
- let secHistogram = Services.telemetry.getHistogramById("SECURITY_UI");
- const SHOW_REQUEST = Ci.nsISecurityUITelemetry.WARNING_GEOLOCATION_REQUEST;
- secHistogram.add(SHOW_REQUEST);
},
};
diff --git a/application/palemoon/base/content/browser-syncui.js b/application/palemoon/base/content/browser-syncui.js
index 6fad03cdd..86f6f48f1 100644
--- a/application/palemoon/base/content/browser-syncui.js
+++ b/application/palemoon/base/content/browser-syncui.js
@@ -93,17 +93,25 @@ var gSyncUI = {
document.getElementById("sync-setup-state").hidden = !needsSetup;
document.getElementById("sync-syncnow-state").hidden = needsSetup;
- if (!gBrowser)
+ if (!gBrowser) {
return;
+ }
let button = document.getElementById("sync-button");
- if (!button)
+ if (!button) {
return;
+ }
button.removeAttribute("status");
+
this._updateLastSyncTime();
- if (needsSetup)
+
+ if (needsSetup) {
button.removeAttribute("tooltiptext");
+ button.setAttribute("label", this._stringBundle.GetStringFromName("setupsync.label"));
+ } else {
+ button.setAttribute("label", this._stringBundle.GetStringFromName("syncnow.label"));
+ }
},
@@ -117,6 +125,7 @@ var gSyncUI = {
return;
button.setAttribute("status", "active");
+ button.setAttribute("label", this._stringBundle.GetStringFromName("syncing2.label"));
},
onSyncDelay: function SUI_onSyncDelay() {
@@ -282,7 +291,7 @@ var gSyncUI = {
if (!syncButton)
return;
- let lastSync = Services.prefs.getCharPref("services.sync.lastSync");
+ let lastSync = Services.prefs.getCharPref("services.sync.lastSync", "");
if (!lastSync || this._needsSetup()) {
syncButton.removeAttribute("tooltiptext");
return;
diff --git a/application/palemoon/config/version.txt b/application/palemoon/config/version.txt
index dc6d77132..b5df67405 100644
--- a/application/palemoon/config/version.txt
+++ b/application/palemoon/config/version.txt
@@ -1 +1 @@
-28.5.0a1 \ No newline at end of file
+28.5.0a2 \ No newline at end of file
diff --git a/application/palemoon/fonts/TwemojiMozilla.ttf b/application/palemoon/fonts/TwemojiMozilla.ttf
index 8139089f1..c47cbbf11 100644
--- a/application/palemoon/fonts/TwemojiMozilla.ttf
+++ b/application/palemoon/fonts/TwemojiMozilla.ttf
Binary files differ
diff --git a/config/milestone.txt b/config/milestone.txt
index f525cbbb4..7aab8cfcb 100644
--- a/config/milestone.txt
+++ b/config/milestone.txt
@@ -10,4 +10,4 @@
# hardcoded milestones in the tree from these two files.
#--------------------------------------------------------
-4.1.10
+4.2.0
diff --git a/devtools/shared/css/lexer.js b/devtools/shared/css/lexer.js
index 9013b63ea..192fa95b3 100644
--- a/devtools/shared/css/lexer.js
+++ b/devtools/shared/css/lexer.js
@@ -1067,6 +1067,7 @@ Scanner.prototype = {
// aToken.mIdent may be "url" at this point; clear that out
aToken.mIdent.length = 0;
+ let hasString = false;
let ch = this.Peek();
// Do we have a string?
if (ch == QUOTATION_MARK || ch == APOSTROPHE) {
@@ -1075,6 +1076,7 @@ Scanner.prototype = {
aToken.mType = eCSSToken_Bad_URL;
return;
}
+ hasString = true;
} else {
// Otherwise, this is the start of a non-quoted url (which may be empty).
aToken.mSymbol = 0;
@@ -1093,6 +1095,25 @@ Scanner.prototype = {
}
} else {
aToken.mType = eCSSToken_Bad_URL;
+ if (!hasString) {
+ // Consume until before the next right parenthesis, which follows
+ // how <bad-url-token> is consumed in CSS Syntax 3 spec.
+ // Note that, we only do this when "url(" is not followed by a
+ // string, because in the spec, "url(" followed by a string is
+ // handled as a url function rather than a <url-token>, so the
+ // rest of content before ")" should be consumed in balance,
+ // which will be done by the parser.
+ // The closing ")" is not consumed here. It is left to the parser
+ // so that the parser can handle both cases.
+ do {
+ if (IsVertSpace(ch)) {
+ this.AdvanceLine();
+ } else {
+ this.Advance();
+ }
+ ch = this.Peek();
+ } while (ch >= 0 && ch != RIGHT_PARENTHESIS);
+ }
}
},
diff --git a/devtools/shared/tests/unit/test_csslexer.js b/devtools/shared/tests/unit/test_csslexer.js
index 35855640b..b2dfdf5aa 100644
--- a/devtools/shared/tests/unit/test_csslexer.js
+++ b/devtools/shared/tests/unit/test_csslexer.js
@@ -128,8 +128,7 @@ var LEX_TESTS = [
["url:http://example.com"]],
// In CSS Level 3, this is an ordinary URL, not a BAD_URL.
["url(http://example.com", ["url:http://example.com"]],
- // See bug 1153981 to understand why this gets a SYMBOL token.
- ["url(http://example.com @", ["bad_url:http://example.com", "symbol:@"]],
+ ["url(http://example.com @", ["bad_url:http://example.com"]],
["quo\\ting", ["ident:quoting"]],
["'bad string\n", ["bad_string:bad string", "whitespace"]],
["~=", ["includes"]],
diff --git a/layout/reftests/css-parsing/invalid-url-handling.xhtml b/layout/reftests/css-parsing/invalid-url-handling.xhtml
index da1709b01..e6b85a81c 100644
--- a/layout/reftests/css-parsing/invalid-url-handling.xhtml
+++ b/layout/reftests/css-parsing/invalid-url-handling.xhtml
@@ -22,17 +22,16 @@
#two { background-color: green; }
</style>
<style type="text/css">
- /* not a URI token; the unterminated string ends at end of line, so
- the brace never matches */
- #three { background-color: green; }
+ /* not a URI token; bad-url token is consumed until the first closing ) */
#foo { background: url(foo"bar) }
- #three { background-color: red; }
+ #three { background-color: green; }
</style>
<style type="text/css">
- /* not a URI token; the unterminated string ends at end of line */
+ /* not a URI token; bad-url token is consumed until the first closing ) */
+ #four { background-color: green; }
#foo { background: url(foo"bar) }
) }
- #four { background-color: green; }
+ #four { background-color: red; }
</style>
<style type="text/css">
/* not a URI token; the unterminated string ends at end of line, so
@@ -68,18 +67,19 @@
#eleven { background: url([) green; }
</style>
<style type="text/css">
- /* not a URI token; brace matching should work only after invalid URI token */
- #twelve { background: url(}{""{)}); background-color: green; }
+ /* not a URI token; bad-url token is consumed until the first closing )
+ so the brace immediately after it closes the declaration block */
+ #twelve { background-color: green; }
+ #twelve { background: url(}{""{)}); background-color: red; }
</style>
<style type="text/css">
/* invalid URI token absorbs the [ */
#thirteen { background: url([""); background-color: green; }
</style>
<style type="text/css">
- /* not a URI token; the opening ( is never matched */
- #fourteen { background-color: green; }
+ /* not a URI token; bad-url token is consumed until the first closing ) */
#foo { background: url(() }
- #fourteen { background-color: red; }
+ #fourteen { background-color: green; }
</style>
<!-- The next three tests test that invalid URI tokens absorb [ and { -->
<style type="text/css">
diff --git a/layout/style/nsCSSScanner.cpp b/layout/style/nsCSSScanner.cpp
index 771c8936b..2110be78c 100644
--- a/layout/style/nsCSSScanner.cpp
+++ b/layout/style/nsCSSScanner.cpp
@@ -1164,6 +1164,7 @@ nsCSSScanner::NextURL(nsCSSToken& aToken)
// aToken.mIdent may be "url" at this point; clear that out
aToken.mIdent.Truncate();
+ bool hasString = false;
int32_t ch = Peek();
// Do we have a string?
if (ch == '"' || ch == '\'') {
@@ -1173,7 +1174,7 @@ nsCSSScanner::NextURL(nsCSSToken& aToken)
return;
}
MOZ_ASSERT(aToken.mType == eCSSToken_String, "unexpected token type");
-
+ hasString = true;
} else {
// Otherwise, this is the start of a non-quoted url (which may be empty).
aToken.mSymbol = char16_t(0);
@@ -1193,6 +1194,25 @@ nsCSSScanner::NextURL(nsCSSToken& aToken)
} else {
mSeenBadToken = true;
aToken.mType = eCSSToken_Bad_URL;
+ if (!hasString) {
+ // Consume until before the next right parenthesis, which follows
+ // how <bad-url-token> is consumed in CSS Syntax 3 spec.
+ // Note that, we only do this when "url(" is not followed by a
+ // string, because in the spec, "url(" followed by a string is
+ // handled as a url function rather than a <url-token>, so the
+ // rest of content before ")" should be consumed in balance,
+ // which will be done by the parser.
+ // The closing ")" is not consumed here. It is left to the parser
+ // so that the parser can handle both cases.
+ do {
+ if (IsVertSpace(ch)) {
+ AdvanceLine();
+ } else {
+ Advance();
+ }
+ ch = Peek();
+ } while (ch >= 0 && ch != ')');
+ }
}
}
diff --git a/layout/style/test/test_csslexer.js b/layout/style/test/test_csslexer.js
index a71c02d8f..4ba3b9c5c 100644
--- a/layout/style/test/test_csslexer.js
+++ b/layout/style/test/test_csslexer.js
@@ -55,8 +55,7 @@ var LEX_TESTS = [
["url:http://example.com"]],
// In CSS Level 3, this is an ordinary URL, not a BAD_URL.
["url(http://example.com", ["url:http://example.com"]],
- // See bug 1153981 to understand why this gets a SYMBOL token.
- ["url(http://example.com @", ["bad_url:http://example.com", "symbol:@"]],
+ ["url(http://example.com @", ["bad_url:http://example.com"]],
["quo\\ting", ["ident:quoting"]],
["'bad string\n", ["bad_string:bad string", "whitespace"]],
["~=", ["includes"]],
diff --git a/mobile/android/chrome/content/browser.js b/mobile/android/chrome/content/browser.js
index 93eb2addc..535f7e607 100644
--- a/mobile/android/chrome/content/browser.js
+++ b/mobile/android/chrome/content/browser.js
@@ -4704,46 +4704,18 @@ var ErrorPageEventHandler = {
// The event came from a button on a malware/phishing block page
// First check whether it's malware, phishing or unwanted, so that we
// can use the right strings/links
- let bucketName = "";
- let sendTelemetry = false;
- if (errorDoc.documentURI.includes("e=malwareBlocked")) {
- sendTelemetry = true;
- bucketName = "WARNING_MALWARE_PAGE_";
- } else if (errorDoc.documentURI.includes("e=deceptiveBlocked")) {
- sendTelemetry = true;
- bucketName = "WARNING_PHISHING_PAGE_";
- } else if (errorDoc.documentURI.includes("e=unwantedBlocked")) {
- sendTelemetry = true;
- bucketName = "WARNING_UNWANTED_PAGE_";
- }
- let nsISecTel = Ci.nsISecurityUITelemetry;
let isIframe = (errorDoc.defaultView.parent === errorDoc.defaultView);
- bucketName += isIframe ? "TOP_" : "FRAME_";
-
let formatter = Cc["@mozilla.org/toolkit/URLFormatterService;1"].getService(Ci.nsIURLFormatter);
if (target == errorDoc.getElementById("getMeOutButton")) {
- if (sendTelemetry) {
- Telemetry.addData("SECURITY_UI", nsISecTel[bucketName + "GET_ME_OUT_OF_HERE"]);
- }
errorDoc.location = "about:home";
} else if (target == errorDoc.getElementById("reportButton")) {
- // We log even if malware/phishing info URL couldn't be found:
- // the measurement is for how many users clicked the WHY BLOCKED button
- if (sendTelemetry) {
- Telemetry.addData("SECURITY_UI", nsISecTel[bucketName + "WHY_BLOCKED"]);
- }
-
// This is the "Why is this site blocked" button. We redirect
// to the generic page describing phishing/malware protection.
let url = Services.urlFormatter.formatURLPref("app.support.baseURL");
BrowserApp.selectedBrowser.loadURI(url + "phishing-malware");
} else if (target == errorDoc.getElementById("ignoreWarningButton") &&
Services.prefs.getBoolPref("browser.safebrowsing.allowOverride")) {
- if (sendTelemetry) {
- Telemetry.addData("SECURITY_UI", nsISecTel[bucketName + "IGNORE_WARNING"]);
- }
-
// Allow users to override and continue through to the site,
let webNav = BrowserApp.selectedBrowser.docShell.QueryInterface(Ci.nsIWebNavigation);
let location = BrowserApp.selectedBrowser.contentWindow.location;
diff --git a/security/manager/pki/resources/content/exceptionDialog.js b/security/manager/pki/resources/content/exceptionDialog.js
index 0ca24a614..c106cdbf5 100644
--- a/security/manager/pki/resources/content/exceptionDialog.js
+++ b/security/manager/pki/resources/content/exceptionDialog.js
@@ -12,8 +12,6 @@ var gCert;
var gChecking;
var gBroken;
var gNeedReset;
-var gSecHistogram;
-var gNsISecTel;
Components.utils.import("resource://gre/modules/PrivateBrowsingUtils.jsm");
@@ -49,10 +47,6 @@ function initExceptionDialog() {
gDialog = document.documentElement;
gBundleBrand = document.getElementById("brand_bundle");
gPKIBundle = document.getElementById("pippki_bundle");
- gSecHistogram = Components.classes["@mozilla.org/base/telemetry;1"].
- getService(Components.interfaces.nsITelemetry).
- getHistogramById("SECURITY_UI");
- gNsISecTel = Components.interfaces.nsISecurityUITelemetry;
var brandName = gBundleBrand.getString("brandShortName");
setText("warningText", gPKIBundle.getFormattedString("addExceptionBrandedWarning2", [brandName]));
@@ -190,7 +184,6 @@ function updateCertStatus() {
var shortDesc3, longDesc3;
var use2 = false;
var use3 = false;
- let bucketId = gNsISecTel.WARNING_BAD_CERT_TOP_ADD_EXCEPTION_BASE;
if (gCert) {
if (gBroken) {
var mms = "addExceptionDomainMismatchShort";
@@ -201,13 +194,11 @@ function updateCertStatus() {
var utl = "addExceptionUnverifiedOrBadSignatureLong2";
var use1 = false;
if (gSSLStatus.isDomainMismatch) {
- bucketId += gNsISecTel.WARNING_BAD_CERT_TOP_ADD_EXCEPTION_FLAG_DOMAIN;
use1 = true;
shortDesc = mms;
longDesc = mml;
}
if (gSSLStatus.isNotValidAtThisTime) {
- bucketId += gNsISecTel.WARNING_BAD_CERT_TOP_ADD_EXCEPTION_FLAG_TIME;
if (!use1) {
use1 = true;
shortDesc = exs;
@@ -220,7 +211,6 @@ function updateCertStatus() {
}
}
if (gSSLStatus.isUntrusted) {
- bucketId += gNsISecTel.WARNING_BAD_CERT_TOP_ADD_EXCEPTION_FLAG_UNTRUSTED;
if (!use1) {
use1 = true;
shortDesc = uts;
@@ -235,7 +225,6 @@ function updateCertStatus() {
longDesc3 = utl;
}
}
- gSecHistogram.add(bucketId);
// In these cases, we do want to enable the "Add Exception" button
gDialog.getButton("extra1").disabled = false;
@@ -307,7 +296,6 @@ function updateCertStatus() {
* Handle user request to display certificate details
*/
function viewCertButtonClick() {
- gSecHistogram.add(gNsISecTel.WARNING_BAD_CERT_TOP_CLICK_VIEW_CERT);
if (gCert) {
viewCertHelper(this, gCert);
}
@@ -324,27 +312,19 @@ function addException() {
var overrideService = Components.classes["@mozilla.org/security/certoverride;1"]
.getService(Components.interfaces.nsICertOverrideService);
var flags = 0;
- let confirmBucketId = gNsISecTel.WARNING_BAD_CERT_TOP_CONFIRM_ADD_EXCEPTION_BASE;
if (gSSLStatus.isUntrusted) {
flags |= overrideService.ERROR_UNTRUSTED;
- confirmBucketId += gNsISecTel.WARNING_BAD_CERT_TOP_CONFIRM_ADD_EXCEPTION_FLAG_UNTRUSTED;
}
if (gSSLStatus.isDomainMismatch) {
flags |= overrideService.ERROR_MISMATCH;
- confirmBucketId += gNsISecTel.WARNING_BAD_CERT_TOP_CONFIRM_ADD_EXCEPTION_FLAG_DOMAIN;
}
if (gSSLStatus.isNotValidAtThisTime) {
flags |= overrideService.ERROR_TIME;
- confirmBucketId += gNsISecTel.WARNING_BAD_CERT_TOP_CONFIRM_ADD_EXCEPTION_FLAG_TIME;
}
var permanentCheckbox = document.getElementById("permanent");
var shouldStorePermanently = permanentCheckbox.checked && !inPrivateBrowsingMode();
- if (!permanentCheckbox.checked) {
- gSecHistogram.add(gNsISecTel.WARNING_BAD_CERT_TOP_DONT_REMEMBER_EXCEPTION);
- }
- gSecHistogram.add(confirmBucketId);
var uri = getURI();
overrideService.rememberValidityOverride(
uri.asciiHost, uri.port,
diff --git a/security/manager/ssl/moz.build b/security/manager/ssl/moz.build
index 8c8d25dcc..94d766a0b 100644
--- a/security/manager/ssl/moz.build
+++ b/security/manager/ssl/moz.build
@@ -32,7 +32,6 @@ XPIDL_SOURCES += [
'nsIPKCS11Slot.idl',
'nsIProtectedAuthThread.idl',
'nsISecretDecoderRing.idl',
- 'nsISecurityUITelemetry.idl',
'nsISiteSecurityService.idl',
'nsISSLStatus.idl',
'nsISSLStatusProvider.idl',
diff --git a/security/manager/ssl/nsISecurityUITelemetry.idl b/security/manager/ssl/nsISecurityUITelemetry.idl
deleted file mode 100644
index 05d3473ad..000000000
--- a/security/manager/ssl/nsISecurityUITelemetry.idl
+++ /dev/null
@@ -1,150 +0,0 @@
-/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
- *
- * 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/. */
-
-#include "nsISupports.idl"
-
-[scriptable, uuid(5d1acf82-223a-46fb-a8f3-a1b16e2ceb04)]
-
-interface nsISecurityUITelemetry : nsISupports {
-
-/*
- * Addon installation warnings
- */
-
-// Firefox prevented this site from asking you to install addon
-const uint32_t WARNING_ADDON_ASKING_PREVENTED = 1;
-// User clicks through and allows site to ask to install addons
-const uint32_t WARNING_ADDON_ASKING_PREVENTED_CLICK_THROUGH = 2;
-// Are you sure you want to install this addon? Only install addons you trust
-const uint32_t WARNING_CONFIRM_ADDON_INSTALL = 3;
-// User clicked she is sure after waiting 3secs
-const uint32_t WARNING_CONFIRM_ADDON_INSTALL_CLICK_THROUGH = 4;
-
-
-/*
- * modal dialogs/warnings
- */
-
-// removed WARNING_ENTERING_SECURE_SITE = 5;
-// removed WARNING_ENTERING_WEAK_SITE = 6;
-// removed WARNING_LEAVING_SECURE_SITE = 7;
-// removed WARNING_MIXED_CONTENT = 8;
-
-// For confirmation dialogs, the clickthrough constant needs to be 1
-// more than the dialog constant so that
-// WARNING_CONFIRM_<X> + 1 == WARNING_CONFIRM_<X>_CLICK_THROUGH
-const uint32_t WARNING_CONFIRM_POST_TO_INSECURE_FROM_SECURE = 9;
-const uint32_t WARNING_CONFIRM_POST_TO_INSECURE_FROM_SECURE_CLICK_THROUGH = 10;
-// removed WARNING_CONFIRM_POST_TO_INSECURE_FROM_INSECURE = 11;
-// removed WARNING_CONFIRM_POST_TO_INSECURE_FROM_INSECURE_CLICK_THROUGH = 12;
-
-/*
- * Phishing / Malware page warnings
- * deprecated: we use the _TOP and _FRAME versions below
- */
-
-const uint32_t WARNING_MALWARE_PAGE = 13;
-const uint32_t WARNING_MALWARE_PAGE_WHY_BLOCKED = 14;
-const uint32_t WARNING_MALWARE_PAGE_GET_ME_OUT_OF_HERE = 15;
-const uint32_t WARNING_MALWARE_PAGE_IGNORE_WARNING = 16;
-
-const uint32_t WARNING_PHISHING_PAGE = 17;
-const uint32_t WARNING_PHISHING_PAGE_WHY_BLOCKED = 18;
-const uint32_t WARNING_PHISHING_PAGE_GET_ME_OUT_OF_HERE = 19;
-const uint32_t WARNING_PHISHING_PAGE_IGNORE_WARNING = 20;
-
-/*
- * SSL Error dialogs
- * deprecated: we use the _TOP versions below
- */
-
-const uint32_t WARNING_BAD_CERT = 21;
-const uint32_t WARNING_BAD_CERT_STS = 22;
-const uint32_t WARNING_BAD_CERT_CLICK_ADD_EXCEPTION = 23;
-const uint32_t WARNING_BAD_CERT_CLICK_VIEW_CERT = 24;
-const uint32_t WARNING_BAD_CERT_DONT_REMEMBER_EXCEPTION = 25;
-const uint32_t WARNING_BAD_CERT_GET_ME_OUT_OF_HERE = 27;
-const uint32_t WARNING_BAD_CERT_UNDERSTAND_RISKS = 28;
-const uint32_t WARNING_BAD_CERT_TECHINICAL_DETAILS = 29;
-
-/*
- * Note that if we add more possibilities in the warning dialogs,
- * it is a new experiment and we shouldn't reuse these buckets.
- */
-const uint32_t WARNING_BAD_CERT_ADD_EXCEPTION_BASE = 30;
-const uint32_t WARNING_BAD_CERT_ADD_EXCEPTION_FLAG_UNTRUSTED = 1;
-const uint32_t WARNING_BAD_CERT_ADD_EXCEPTION_FLAG_DOMAIN = 2;
-const uint32_t WARNING_BAD_CERT_ADD_EXCEPTION_FLAG_TIME = 4;
-
-const uint32_t WARNING_BAD_CERT_CONFIRM_ADD_EXCEPTION_BASE = 38;
-const uint32_t WARNING_BAD_CERT_CONFIRM_ADD_EXCEPTION_FLAG_UNTRUSTED = 1;
-const uint32_t WARNING_BAD_CERT_CONFIRM_ADD_EXCEPTION_FLAG_DOMAIN = 2;
-const uint32_t WARNING_BAD_CERT_CONFIRM_ADD_EXCEPTION_FLAG_TIME = 4;
-// This uses up buckets till 45
-
-/*
- * Geolocation Popup Telemetry
- */
-
-const uint32_t WARNING_GEOLOCATION_REQUEST = 46;
-const uint32_t WARNING_GEOLOCATION_REQUEST_SHARE_LOCATION = 47;
-const uint32_t WARNING_GEOLOCATION_REQUEST_ALWAYS_SHARE = 48;
-const uint32_t WARNING_GEOLOCATION_REQUEST_NEVER_SHARE = 49;
-// It would be nice to measure the two cases of user clicking
-// "not now", and user closing the popup. This is currently not implemented.
-
-const uint32_t WARNING_MALWARE_PAGE_TOP = 52;
-const uint32_t WARNING_MALWARE_PAGE_TOP_WHY_BLOCKED = 53;
-const uint32_t WARNING_MALWARE_PAGE_TOP_GET_ME_OUT_OF_HERE = 54;
-const uint32_t WARNING_MALWARE_PAGE_TOP_IGNORE_WARNING = 55;
-
-const uint32_t WARNING_PHISHING_PAGE_TOP = 56;
-const uint32_t WARNING_PHISHING_PAGE_TOP_WHY_BLOCKED = 57;
-const uint32_t WARNING_PHISHING_PAGE_TOP_GET_ME_OUT_OF_HERE = 58;
-const uint32_t WARNING_PHISHING_PAGE_TOP_IGNORE_WARNING = 59;
-
-const uint32_t WARNING_MALWARE_PAGE_FRAME = 60;
-const uint32_t WARNING_MALWARE_PAGE_FRAME_WHY_BLOCKED = 61;
-const uint32_t WARNING_MALWARE_PAGE_FRAME_GET_ME_OUT_OF_HERE = 62;
-const uint32_t WARNING_MALWARE_PAGE_FRAME_IGNORE_WARNING = 63;
-
-const uint32_t WARNING_PHISHING_PAGE_FRAME = 64;
-const uint32_t WARNING_PHISHING_PAGE_FRAME_WHY_BLOCKED = 65;
-const uint32_t WARNING_PHISHING_PAGE_FRAME_GET_ME_OUT_OF_HERE = 66;
-const uint32_t WARNING_PHISHING_PAGE_FRAME_IGNORE_WARNING = 67;
-
-const uint32_t WARNING_BAD_CERT_TOP = 68;
-const uint32_t WARNING_BAD_CERT_TOP_STS = 69;
-const uint32_t WARNING_BAD_CERT_TOP_CLICK_ADD_EXCEPTION = 70;
-const uint32_t WARNING_BAD_CERT_TOP_CLICK_VIEW_CERT = 71;
-const uint32_t WARNING_BAD_CERT_TOP_DONT_REMEMBER_EXCEPTION = 72;
-const uint32_t WARNING_BAD_CERT_TOP_GET_ME_OUT_OF_HERE = 73;
-const uint32_t WARNING_BAD_CERT_TOP_UNDERSTAND_RISKS = 74;
-// removed WARNING_BAD_CERT_TOP_TECHNICAL_DETAILS = 75;
-
-const uint32_t WARNING_BAD_CERT_TOP_ADD_EXCEPTION_BASE = 76;
-const uint32_t WARNING_BAD_CERT_TOP_ADD_EXCEPTION_FLAG_UNTRUSTED = 1;
-const uint32_t WARNING_BAD_CERT_TOP_ADD_EXCEPTION_FLAG_DOMAIN = 2;
-const uint32_t WARNING_BAD_CERT_TOP_ADD_EXCEPTION_FLAG_TIME = 4;
-
-const uint32_t WARNING_BAD_CERT_TOP_CONFIRM_ADD_EXCEPTION_BASE = 84;
-const uint32_t WARNING_BAD_CERT_TOP_CONFIRM_ADD_EXCEPTION_FLAG_UNTRUSTED = 1;
-const uint32_t WARNING_BAD_CERT_TOP_CONFIRM_ADD_EXCEPTION_FLAG_DOMAIN = 2;
-const uint32_t WARNING_BAD_CERT_TOP_CONFIRM_ADD_EXCEPTION_FLAG_TIME = 4;
-
-// Another Safe Browsing list (like malware & phishing above)
-const uint32_t WARNING_UNWANTED_PAGE_TOP = 92;
-const uint32_t WARNING_UNWANTED_PAGE_TOP_WHY_BLOCKED = 93;
-const uint32_t WARNING_UNWANTED_PAGE_TOP_GET_ME_OUT_OF_HERE = 94;
-const uint32_t WARNING_UNWANTED_PAGE_TOP_IGNORE_WARNING = 95;
-const uint32_t WARNING_UNWANTED_PAGE_FRAME = 96;
-const uint32_t WARNING_UNWANTED_PAGE_FRAME_WHY_BLOCKED = 97;
-const uint32_t WARNING_UNWANTED_PAGE_FRAME_GET_ME_OUT_OF_HERE = 98;
-const uint32_t WARNING_UNWANTED_PAGE_FRAME_IGNORE_WARNING = 99;
-
-// This uses up buckets till 99 (including)
-// We only have buckets up to 100.
-};
diff --git a/services/sync/locales/en-US/sync.properties b/services/sync/locales/en-US/sync.properties
index 93369dd37..af40e125a 100644
--- a/services/sync/locales/en-US/sync.properties
+++ b/services/sync/locales/en-US/sync.properties
@@ -52,3 +52,4 @@ sync.eol.learnMore.accesskey = L
syncnow.label = Sync Now
syncing2.label = Syncing…
+setupsync.label = Set Up Sync
diff --git a/toolkit/components/viewsource/content/viewSource-content.js b/toolkit/components/viewsource/content/viewSource-content.js
index 70d23eaa4..bad90febf 100644
--- a/toolkit/components/viewsource/content/viewSource-content.js
+++ b/toolkit/components/viewsource/content/viewSource-content.js
@@ -128,8 +128,7 @@ var ViewSourceContent = {
let objects = msg.objects;
switch (msg.name) {
case "ViewSource:LoadSource":
- this.viewSource(data.URL, data.outerWindowID, data.lineNumber,
- data.shouldWrap);
+ this.viewSource(data.URL, data.outerWindowID, data.lineNumber);
break;
case "ViewSource:LoadSourceOriginal":
this.viewSourceOriginal(data.URL, objects.pageDescriptor, data.lineNumber,
diff --git a/toolkit/modules/UpdateUtils.jsm b/toolkit/modules/UpdateUtils.jsm
index fed7c7637..4e796a2da 100644
--- a/toolkit/modules/UpdateUtils.jsm
+++ b/toolkit/modules/UpdateUtils.jsm
@@ -31,9 +31,9 @@ this.UpdateUtils = {
* Whether or not to include the partner bits. Default: true.
*/
getUpdateChannel(aIncludePartners = true) {
+ let defaults = Services.prefs.getDefaultBranch(null);
let channel = defaults.getCharPref("app.update.channel",
AppConstants.MOZ_UPDATE_CHANNEL);
- let defaults = Services.prefs.getDefaultBranch(null);
if (aIncludePartners) {
try {
diff --git a/toolkit/mozapps/extensions/amWebInstallListener.js b/toolkit/mozapps/extensions/amWebInstallListener.js
index 088f56640..9b9c53f44 100644
--- a/toolkit/mozapps/extensions/amWebInstallListener.js
+++ b/toolkit/mozapps/extensions/amWebInstallListener.js
@@ -172,10 +172,6 @@ Installer.prototype = {
args.wrappedJSObject = args;
try {
- Cc["@mozilla.org/base/telemetry;1"].
- getService(Ci.nsITelemetry).
- getHistogramById("SECURITY_UI").
- add(Ci.nsISecurityUITelemetry.WARNING_CONFIRM_ADDON_INSTALL);
let parentWindow = null;
if (this.browser) {
parentWindow = this.browser.ownerDocument.defaultView;
diff --git a/toolkit/mozapps/extensions/content/xpinstallConfirm.js b/toolkit/mozapps/extensions/content/xpinstallConfirm.js
index 5660cdaaf..29be5f5e9 100644
--- a/toolkit/mozapps/extensions/content/xpinstallConfirm.js
+++ b/toolkit/mozapps/extensions/content/xpinstallConfirm.js
@@ -179,10 +179,6 @@ XPInstallConfirm.init = function()
XPInstallConfirm.onOK = function()
{
- Components.classes["@mozilla.org/base/telemetry;1"].
- getService(Components.interfaces.nsITelemetry).
- getHistogramById("SECURITY_UI").
- add(Components.interfaces.nsISecurityUITelemetry.WARNING_CONFIRM_ADDON_INSTALL_CLICK_THROUGH);
// Perform the install or cancel after the window has unloaded
XPInstallConfirm._installOK = true;
return true;