Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(7543)

Unified Diff: chrome/browser/ssl/ssl_error_classification.cc

Issue 1365733005: Split captive portal metrics out of SSLErrorClassification (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Compiler error fix possibly for realsies Created 5 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/ssl/ssl_error_classification.cc
diff --git a/chrome/browser/ssl/ssl_error_classification.cc b/chrome/browser/ssl/ssl_error_classification.cc
index ce43de58f01540d1d76c3a8cf4cddfe05df21f28..a93427463247d6d02fded77901c96f64d56d1866 100644
--- a/chrome/browser/ssl/ssl_error_classification.cc
+++ b/chrome/browser/ssl/ssl_error_classification.cc
@@ -7,27 +7,17 @@
#include "chrome/browser/ssl/ssl_error_classification.h"
#include "base/build_time.h"
-#include "base/metrics/histogram.h"
+#include "base/metrics/histogram_macros.h"
#include "base/strings/string_split.h"
#include "base/strings/utf_string_conversions.h"
#include "base/time/time.h"
-#include "chrome/browser/browser_process.h"
-#include "chrome/browser/chrome_notification_types.h"
-#include "chrome/browser/profiles/profile.h"
#include "components/ssl_errors/error_info.h"
-#include "content/public/browser/notification_service.h"
-#include "content/public/browser/web_contents.h"
#include "net/base/net_util.h"
#include "net/base/registry_controlled_domains/registry_controlled_domain.h"
#include "net/cert/x509_cert_types.h"
#include "net/cert/x509_certificate.h"
#include "url/gurl.h"
-#if defined(ENABLE_CAPTIVE_PORTAL_DETECTION)
-#include "chrome/browser/captive_portal/captive_portal_service.h"
-#include "chrome/browser/captive_portal/captive_portal_service_factory.h"
-#endif
-
#if defined(OS_WIN)
#include "base/win/win_util.h"
#include "base/win/windows_version.h"
@@ -51,27 +41,13 @@ enum SSLInterstitialCause {
LIKELY_MULTI_TENANT_HOSTING,
LOCALHOST,
PRIVATE_URL,
- AUTHORITY_ERROR_CAPTIVE_PORTAL,
+ AUTHORITY_ERROR_CAPTIVE_PORTAL, // Deprecated in M47.
SELF_SIGNED,
EXPIRED_RECENTLY,
LIKELY_SAME_DOMAIN,
UNUSED_INTERSTITIAL_CAUSE_ENTRY,
};
-// Events for UMA. Do not reorder or change!
-enum SSLInterstitialCauseCaptivePortal {
- CAPTIVE_PORTAL_ALL,
- CAPTIVE_PORTAL_DETECTION_ENABLED,
- CAPTIVE_PORTAL_DETECTION_ENABLED_OVERRIDABLE,
- CAPTIVE_PORTAL_PROBE_COMPLETED,
- CAPTIVE_PORTAL_PROBE_COMPLETED_OVERRIDABLE,
- CAPTIVE_PORTAL_NO_RESPONSE,
- CAPTIVE_PORTAL_NO_RESPONSE_OVERRIDABLE,
- CAPTIVE_PORTAL_DETECTED,
- CAPTIVE_PORTAL_DETECTED_OVERRIDABLE,
- UNUSED_CAPTIVE_PORTAL_EVENT,
-};
-
void RecordSSLInterstitialCause(bool overridable, SSLInterstitialCause event) {
if (overridable) {
UMA_HISTOGRAM_ENUMERATION("interstitial.ssl.cause.overridable", event,
@@ -82,14 +58,6 @@ void RecordSSLInterstitialCause(bool overridable, SSLInterstitialCause event) {
}
}
-#if defined(ENABLE_CAPTIVE_PORTAL_DETECTION)
-void RecordCaptivePortalEventStats(SSLInterstitialCauseCaptivePortal event) {
- UMA_HISTOGRAM_ENUMERATION("interstitial.ssl.captive_portal",
- event,
- UNUSED_CAPTIVE_PORTAL_EVENT);
-}
-#endif
-
int GetLevensteinDistance(const std::string& str1,
const std::string& str2) {
if (str1 == str2)
@@ -121,62 +89,17 @@ base::Time g_testing_build_time;
} // namespace
-SSLErrorClassification::SSLErrorClassification(
- content::WebContents* web_contents,
- const base::Time& current_time,
- const GURL& url,
- int cert_error,
- const net::X509Certificate& cert)
- : web_contents_(web_contents),
- current_time_(current_time),
- request_url_(url),
- cert_error_(cert_error),
- cert_(cert),
- captive_portal_detection_enabled_(false),
- captive_portal_probe_completed_(false),
- captive_portal_no_response_(false),
- captive_portal_detected_(false) {
-#if defined(ENABLE_CAPTIVE_PORTAL_DETECTION)
- Profile* profile = Profile::FromBrowserContext(
- web_contents_->GetBrowserContext());
- captive_portal_detection_enabled_ =
- CaptivePortalServiceFactory::GetForProfile(profile)->enabled();
- registrar_.Add(this,
- chrome::NOTIFICATION_CAPTIVE_PORTAL_CHECK_RESULT,
- content::Source<Profile>(profile));
-#endif
-}
+SSLErrorClassification::SSLErrorClassification(const base::Time& current_time,
+ const GURL& url,
+ int cert_error,
+ const net::X509Certificate& cert)
+ : current_time_(current_time),
+ request_url_(url),
+ cert_error_(cert_error),
+ cert_(cert) {}
SSLErrorClassification::~SSLErrorClassification() { }
-void SSLErrorClassification::RecordCaptivePortalUMAStatistics(
- bool overridable) const {
-#if defined(ENABLE_CAPTIVE_PORTAL_DETECTION)
- RecordCaptivePortalEventStats(CAPTIVE_PORTAL_ALL);
- if (captive_portal_detection_enabled_)
- RecordCaptivePortalEventStats(
- overridable ?
- CAPTIVE_PORTAL_DETECTION_ENABLED_OVERRIDABLE :
- CAPTIVE_PORTAL_DETECTION_ENABLED);
- if (captive_portal_probe_completed_)
- RecordCaptivePortalEventStats(
- overridable ?
- CAPTIVE_PORTAL_PROBE_COMPLETED_OVERRIDABLE :
- CAPTIVE_PORTAL_PROBE_COMPLETED);
- // Log only one of portal detected and no response results.
- if (captive_portal_detected_)
- RecordCaptivePortalEventStats(
- overridable ?
- CAPTIVE_PORTAL_DETECTED_OVERRIDABLE :
- CAPTIVE_PORTAL_DETECTED);
- else if (captive_portal_no_response_)
- RecordCaptivePortalEventStats(
- overridable ?
- CAPTIVE_PORTAL_NO_RESPONSE_OVERRIDABLE :
- CAPTIVE_PORTAL_NO_RESPONSE);
-#endif
-}
-
void SSLErrorClassification::RecordUMAStatistics(
bool overridable) const {
ssl_errors::ErrorInfo::ErrorType type =
@@ -225,8 +148,6 @@ void SSLErrorClassification::RecordUMAStatistics(
RecordSSLInterstitialCause(overridable, LOCALHOST);
if (IsHostnameNonUniqueOrDotless(hostname))
RecordSSLInterstitialCause(overridable, PRIVATE_URL);
- if (captive_portal_probe_completed_ && captive_portal_detected_)
- RecordSSLInterstitialCause(overridable, AUTHORITY_ERROR_CAPTIVE_PORTAL);
if (net::X509Certificate::IsSelfSigned(cert_.os_cert_handle()))
RecordSSLInterstitialCause(overridable, SELF_SIGNED);
break;
@@ -521,34 +442,3 @@ bool SSLErrorClassification::IsHostnameNonUniqueOrDotless(
return net::IsHostnameNonUnique(hostname) ||
hostname.find('.') == std::string::npos;
}
-
-void SSLErrorClassification::Observe(
- int type,
- const content::NotificationSource& source,
- const content::NotificationDetails& details) {
-#if defined(ENABLE_CAPTIVE_PORTAL_DETECTION)
- // When detection is disabled, captive portal service always sends
- // RESULT_INTERNET_CONNECTED. Ignore any probe results in that case.
- if (!captive_portal_detection_enabled_)
- return;
- if (type == chrome::NOTIFICATION_CAPTIVE_PORTAL_CHECK_RESULT) {
- captive_portal_probe_completed_ = true;
- CaptivePortalService::Results* results =
- content::Details<CaptivePortalService::Results>(details).ptr();
- // If a captive portal was detected at any point when the interstitial was
- // displayed, assume that the interstitial was caused by a captive portal.
- // Example scenario:
- // 1- Interstitial displayed and captive portal detected, setting the flag.
- // 2- Captive portal detection automatically opens portal login page.
- // 3- User logs in on the portal login page.
- // A notification will be received here for RESULT_INTERNET_CONNECTED. Make
- // sure we don't clear the captive protal flag, since the interstitial was
- // potentially caused by the captive portal.
- captive_portal_detected_ = captive_portal_detected_ ||
- (results->result == captive_portal::RESULT_BEHIND_CAPTIVE_PORTAL);
- // Also keep track of non-HTTP portals and error cases.
- captive_portal_no_response_ = captive_portal_no_response_ ||
- (results->result == captive_portal::RESULT_NO_RESPONSE);
- }
-#endif
-}
« no previous file with comments | « chrome/browser/ssl/ssl_error_classification.h ('k') | chrome/browser/ssl/ssl_error_classification_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698