| Index: chrome/browser/ssl/ssl_blocking_page.cc
|
| diff --git a/chrome/browser/ssl/ssl_blocking_page.cc b/chrome/browser/ssl/ssl_blocking_page.cc
|
| index 5b45b3564b8caa5db5272740e053e82c4856108c..af20ed5066e0a4ddb37445f1f16681d3011b7e9e 100644
|
| --- a/chrome/browser/ssl/ssl_blocking_page.cc
|
| +++ b/chrome/browser/ssl/ssl_blocking_page.cc
|
| @@ -29,6 +29,7 @@
|
| #include "grit/browser_resources.h"
|
| #include "grit/generated_resources.h"
|
| #include "net/base/net_errors.h"
|
| +#include "net/base/net_util.h"
|
| #include "ui/base/l10n/l10n_util.h"
|
| #include "ui/base/resource/resource_bundle.h"
|
| #include "ui/webui/jstemplate_builder.h"
|
| @@ -82,6 +83,8 @@ enum SSLBlockingPageEvent {
|
| DONT_PROCEED_AUTHORITY,
|
| MORE,
|
| SHOW_UNDERSTAND,
|
| + SHOW_INTERNAL_HOSTNAME,
|
| + PROCEED_INTERNAL_HOSTNAME,
|
| UNUSED_BLOCKING_PAGE_EVENT,
|
| };
|
|
|
| @@ -95,6 +98,7 @@ void RecordSSLBlockingPageTimeStats(
|
| bool proceed,
|
| int cert_error,
|
| bool overridable,
|
| + bool internal,
|
| const base::TimeTicks& start_time,
|
| const base::TimeTicks& end_time) {
|
| UMA_HISTOGRAM_ENUMERATION("interstitial.ssl_error_type",
|
| @@ -110,6 +114,8 @@ void RecordSSLBlockingPageTimeStats(
|
| if (proceed) {
|
| RecordSSLBlockingPageEventStats(PROCEED_OVERRIDABLE);
|
| HISTOGRAM_INTERSTITIAL_LARGE_TIME("interstitial.ssl_accept_time", delta);
|
| + if (internal)
|
| + RecordSSLBlockingPageEventStats(PROCEED_INTERNAL_HOSTNAME);
|
| } else if (!proceed) {
|
| RecordSSLBlockingPageEventStats(DONT_PROCEED_OVERRIDABLE);
|
| HISTOGRAM_INTERSTITIAL_LARGE_TIME("interstitial.ssl_reject_time", delta);
|
| @@ -180,12 +186,19 @@ SSLBlockingPage::SSLBlockingPage(
|
| ssl_info_(ssl_info),
|
| request_url_(request_url),
|
| overridable_(overridable),
|
| - strict_enforcement_(strict_enforcement) {
|
| + strict_enforcement_(strict_enforcement),
|
| + internal_(false) {
|
| trialCondition_ = base::FieldTrialList::FindFullName(kStudyName);
|
|
|
| + if (net::IsHostnameNonUnique(request_url_.HostNoBrackets()))
|
| + internal_ = true;
|
| +
|
| RecordSSLBlockingPageEventStats(SHOW_ALL);
|
| - if (overridable_ && !strict_enforcement_)
|
| + if (overridable_ && !strict_enforcement_) {
|
| RecordSSLBlockingPageEventStats(SHOW_OVERRIDABLE);
|
| + if (internal_)
|
| + RecordSSLBlockingPageEventStats(SHOW_INTERNAL_HOSTNAME);
|
| + }
|
|
|
| interstitial_page_ = InterstitialPage::Create(
|
| web_contents_, true, request_url, this);
|
| @@ -195,10 +208,12 @@ SSLBlockingPage::SSLBlockingPage(
|
|
|
| SSLBlockingPage::~SSLBlockingPage() {
|
| if (!callback_.is_null()) {
|
| - RecordSSLBlockingPageTimeStats(
|
| - false, cert_error_,
|
| - overridable_ && !strict_enforcement_, display_start_time_,
|
| - base::TimeTicks::Now());
|
| + RecordSSLBlockingPageTimeStats(false,
|
| + cert_error_,
|
| + overridable_ && !strict_enforcement_,
|
| + internal_,
|
| + display_start_time_,
|
| + base::TimeTicks::Now());
|
| // The page is closed without the user having chosen what to do, default to
|
| // deny.
|
| NotifyDenyCertificate();
|
| @@ -321,19 +336,23 @@ void SSLBlockingPage::OverrideRendererPrefs(
|
| }
|
|
|
| void SSLBlockingPage::OnProceed() {
|
| - RecordSSLBlockingPageTimeStats(true, cert_error_,
|
| - overridable_ && !strict_enforcement_, display_start_time_,
|
| - base::TimeTicks::Now());
|
| -
|
| + RecordSSLBlockingPageTimeStats(true,
|
| + cert_error_,
|
| + overridable_ && !strict_enforcement_,
|
| + internal_,
|
| + display_start_time_,
|
| + base::TimeTicks::Now());
|
| // Accepting the certificate resumes the loading of the page.
|
| NotifyAllowCertificate();
|
| }
|
|
|
| void SSLBlockingPage::OnDontProceed() {
|
| - RecordSSLBlockingPageTimeStats(false, cert_error_,
|
| - overridable_ && !strict_enforcement_, display_start_time_,
|
| - base::TimeTicks::Now());
|
| -
|
| + RecordSSLBlockingPageTimeStats(false,
|
| + cert_error_,
|
| + overridable_ && !strict_enforcement_,
|
| + internal_,
|
| + display_start_time_,
|
| + base::TimeTicks::Now());
|
| NotifyDenyCertificate();
|
| }
|
|
|
|
|