Bug 767676 - Implement Security UI Telemetry. r=honzab,bsmith,felipc,dtownsend

This commit is contained in:
Devdatta Akhawe
2012-08-02 18:51:17 -07:00
parent a4b56b193e
commit dc71ddb079
11 changed files with 219 additions and 18 deletions

View File

@@ -192,6 +192,9 @@
#include "mozilla/StartupTimeline.h"
#include "nsIFrameMessageManager.h"
#include "mozilla/Telemetry.h"
#include "nsISecurityUITelemetry.h"
static NS_DEFINE_CID(kDOMScriptObjectFactoryCID,
NS_DOM_SCRIPT_OBJECT_FACTORY_CID);
static NS_DEFINE_CID(kAppShellCID, NS_APPSHELL_CID);
@@ -4040,8 +4043,16 @@ nsDocShell::DisplayLoadError(nsresult aError, nsIURI *aURI,
rv = stss->IsStsURI(aURI, &isStsHost);
NS_ENSURE_SUCCESS(rv, rv);
if (isStsHost)
PRUint32 bucketId;
if (isStsHost) {
cssClass.AssignLiteral("badStsCert");
//measuring STS separately allows us to measure click through
//rates easily
bucketId = nsISecurityUITelemetry::WARNING_BAD_CERT_STS;
} else {
bucketId = nsISecurityUITelemetry::WARNING_BAD_CERT;
}
if (Preferences::GetBool(
"browser.xul.error_pages.expert_bad_cert", false)) {
@@ -4054,6 +4065,10 @@ nsDocShell::DisplayLoadError(nsresult aError, nsIURI *aURI,
"security.alternate_certificate_error_page");
if (alternateErrorPage)
errorPage.Assign(alternateErrorPage);
if (errorPage.EqualsIgnoreCase("certerror"))
mozilla::Telemetry::Accumulate(mozilla::Telemetry::SECURITY_UI, bucketId);
} else {
error.AssignLiteral("nssFailure2");
}
@@ -4071,10 +4086,19 @@ nsDocShell::DisplayLoadError(nsresult aError, nsIURI *aURI,
if (alternateErrorPage)
errorPage.Assign(alternateErrorPage);
if (NS_ERROR_PHISHING_URI == aError)
PRUint32 bucketId;
if (NS_ERROR_PHISHING_URI == aError) {
error.AssignLiteral("phishingBlocked");
else
bucketId = nsISecurityUITelemetry::WARNING_PHISHING_PAGE;
} else {
error.AssignLiteral("malwareBlocked");
bucketId = nsISecurityUITelemetry::WARNING_MALWARE_PAGE;
}
if (errorPage.EqualsIgnoreCase("blocked"))
mozilla::Telemetry::Accumulate(mozilla::Telemetry::SECURITY_UI,
bucketId);
cssClass.AssignLiteral("blacklist");
}
else {