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 1b9e8d1b163baf9ea4100699483cb10d33902ec9..b00b39459cc5fe3932655b54197bd86b1911b86e 100644 |
--- a/chrome/browser/ssl/ssl_blocking_page.cc |
+++ b/chrome/browser/ssl/ssl_blocking_page.cc |
@@ -57,6 +57,41 @@ using content::NavigationEntry; |
namespace { |
+// Constants for the M37 Finch trial. |
+const char kInterstitialTrialName[] = "SSLInterstitialVersion"; |
+const char kCondV1[] = "V1"; |
+const char kCondV1LayoutV2Text[] = "V1LayoutV2Text"; |
+const char kCondV2[] = "V2"; // Also the default. |
+const char kCondV2Guard[] = "V2WithGuard"; |
+const char kCondV2Yellow[] = "V2Yellow"; |
+ |
+const char* GetTrialCondition() { |
+ CommandLine* cli = CommandLine::ForCurrentProcess(); |
+ if (cli->HasSwitch(switches::kSSLInterstitialV1)) |
+ return kCondV1; |
+ if (cli->HasSwitch(switches::kSSLInterstitialV2)) |
+ return kCondV2; |
+ if (cli->HasSwitch(switches::kSSLInterstitialV1WithV2Text)) |
+ return kCondV1LayoutV2Text; |
+ if (cli->HasSwitch(switches::kSSLInterstitialV2Guard)) |
+ return kCondV2Guard; |
+ if (cli->HasSwitch(switches::kSSLInterstitialV2Yellow)) |
+ return kCondV2Yellow; |
+ |
+ std::string name(base::FieldTrialList::FindFullName(kInterstitialTrialName)); |
+ if (name == kCondV1) |
+ return kCondV1; |
+ if (name == kCondV2) |
+ return kCondV2; |
+ if (name == kCondV1LayoutV2Text) |
+ return kCondV1LayoutV2Text; |
+ if (name == kCondV2Guard) |
+ return kCondV2Guard; |
+ if (name == kCondV2Yellow) |
+ return kCondV2Yellow; |
+ return kCondV2; |
+} |
+ |
// Events for UMA. Do not reorder or change! |
enum SSLBlockingPageEvent { |
SHOW_ALL, |
@@ -200,7 +235,8 @@ SSLBlockingPage::SSLBlockingPage( |
captive_portal_detection_enabled_(false), |
captive_portal_probe_completed_(false), |
captive_portal_no_response_(false), |
- captive_portal_detected_(false) { |
+ captive_portal_detected_(false), |
+ trial_condition_(GetTrialCondition()) { |
Profile* profile = Profile::FromBrowserContext( |
web_contents->GetBrowserContext()); |
// For UMA stats. |
@@ -255,11 +291,8 @@ SSLBlockingPage::~SSLBlockingPage() { |
} |
std::string SSLBlockingPage::GetHTMLContents() { |
- if (CommandLine::ForCurrentProcess()->HasSwitch( |
- switches::kSSLInterstitialVersionV1) || |
- base::FieldTrialList::FindFullName("SSLInterstitialVersion") == "V1") { |
+ if (trial_condition_ == kCondV1 || trial_condition_ == kCondV1LayoutV2Text) |
return GetHTMLContentsV1(); |
- } |
return GetHTMLContentsV2(); |
} |
@@ -273,25 +306,51 @@ std::string SSLBlockingPage::GetHTMLContentsV1() { |
SSLErrorInfo::NetErrorToErrorType(cert_error_), |
ssl_info_.cert.get(), |
request_url_); |
- |
resource_id = IDR_SSL_ROAD_BLOCK_HTML; |
- strings.SetString("headLine", error_info.title()); |
- strings.SetString("description", error_info.details()); |
- strings.SetString("moreInfoTitle", |
- l10n_util::GetStringUTF16(IDS_CERT_ERROR_EXTRA_INFO_TITLE)); |
- SetExtraInfo(&strings, error_info.extra_information()); |
- |
- strings.SetString( |
- "exit", l10n_util::GetStringUTF16(IDS_SSL_OVERRIDABLE_PAGE_EXIT)); |
- strings.SetString( |
- "title", l10n_util::GetStringUTF16(IDS_SSL_OVERRIDABLE_PAGE_TITLE)); |
- strings.SetString( |
- "proceed", l10n_util::GetStringUTF16(IDS_SSL_OVERRIDABLE_PAGE_PROCEED)); |
- strings.SetString( |
- "reasonForNotProceeding", l10n_util::GetStringUTF16( |
- IDS_SSL_OVERRIDABLE_PAGE_SHOULD_NOT_PROCEED)); |
- strings.SetString("errorType", "overridable"); |
strings.SetString("textdirection", base::i18n::IsRTL() ? "rtl" : "ltr"); |
+ strings.SetString("errorType", "overridable"); |
+ if (trial_condition_ == kCondV1LayoutV2Text) { |
+ base::string16 url(ASCIIToUTF16(request_url_.host())); |
+ strings.SetString( |
+ "headLine", l10n_util::GetStringUTF16(IDS_SSL_V2_HEADING)); |
+ strings.SetString( |
+ "description", |
+ l10n_util::GetStringFUTF16(IDS_SSL_V2_PRIMARY_PARAGRAPH, url)); |
+ strings.SetString( |
+ "moreInfoTitle", |
+ l10n_util::GetStringUTF16(IDS_SSL_V2_OPEN_DETAILS_BUTTON)); |
+ strings.SetString("moreInfo1", error_info.details()); |
+ strings.SetString("moreInfo2", base::string16()); |
+ strings.SetString("moreInfo3", base::string16()); |
+ strings.SetString("moreInfo4", base::string16()); |
+ strings.SetString("moreInfo5", base::string16()); |
+ strings.SetString( |
+ "exit", |
+ l10n_util::GetStringUTF16(IDS_SSL_OVERRIDABLE_SAFETY_BUTTON)); |
+ strings.SetString( |
+ "title", l10n_util::GetStringUTF16(IDS_SSL_V2_TITLE)); |
+ strings.SetString( |
+ "proceed", |
+ l10n_util::GetStringUTF16(IDS_SSL_OVERRIDABLE_PROCEED_LINK_TEXT)); |
+ strings.SetString("reasonForNotProceeding", base::string16()); |
+ } else { |
+ strings.SetString("headLine", error_info.title()); |
+ strings.SetString("description", error_info.details()); |
+ strings.SetString("moreInfoTitle", |
+ l10n_util::GetStringUTF16(IDS_CERT_ERROR_EXTRA_INFO_TITLE)); |
+ SetExtraInfo(&strings, error_info.extra_information()); |
+ |
+ strings.SetString( |
+ "exit", l10n_util::GetStringUTF16(IDS_SSL_OVERRIDABLE_PAGE_EXIT)); |
+ strings.SetString( |
+ "title", l10n_util::GetStringUTF16(IDS_SSL_OVERRIDABLE_PAGE_TITLE)); |
+ strings.SetString( |
+ "proceed", |
+ l10n_util::GetStringUTF16(IDS_SSL_OVERRIDABLE_PAGE_PROCEED)); |
+ strings.SetString("reasonForNotProceeding", |
+ l10n_util::GetStringUTF16( |
+ IDS_SSL_OVERRIDABLE_PAGE_SHOULD_NOT_PROCEED)); |
+ } |
} else { |
// Let's build the blocking error page. |
resource_id = IDR_SSL_BLOCKING_HTML; |
@@ -412,6 +471,7 @@ std::string SSLBlockingPage::GetHTMLContentsV2() { |
if (base::i18n::IsRTL()) |
base::i18n::WrapStringWithLTRFormatting(&url); |
webui::SetFontAndTextDirection(&load_time_data); |
+ load_time_data.SetString("trialCondition", trial_condition_); |
// Shared values for both the overridable and non-overridable versions. |
load_time_data.SetBoolean("ssl", true); |