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

Unified Diff: chrome/browser/safe_browsing/safe_browsing_blocking_page.cc

Issue 14752005: Finch experiments on SSL, malware, and phishing interstitials (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Added Safe Browsing Field Trial Created 7 years, 8 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/safe_browsing/safe_browsing_blocking_page.cc
diff --git a/chrome/browser/safe_browsing/safe_browsing_blocking_page.cc b/chrome/browser/safe_browsing/safe_browsing_blocking_page.cc
index 032d5eceab5296580fbec821803a52e81f08e190..cda4a293a4846ce49f3e2a0e4cc8f7723807a3af 100644
--- a/chrome/browser/safe_browsing/safe_browsing_blocking_page.cc
+++ b/chrome/browser/safe_browsing/safe_browsing_blocking_page.cc
@@ -113,6 +113,22 @@ static const char* const kExpandedSeeMore = "expandedSeeMore";
// RecordUserReactionTime.
static const char* const kNavigatedAwayMetaCommand = "closed";
+// These are the conditions for the summer 2013 Finch experiment.
+static const std::string kCond1MalwareControl = "Cond1MalwareControl";
agl 2013/05/01 18:54:12 static const char kCond1Foo[] = "..."; avoid stat
felt 2013/05/01 19:39:45 Done.
+static const std::string kCond2MalwareNoBrand = "Cond2MalwareNoBrand";
+static const std::string kCond3PhishingControl = "Cond3PhishingControl";
+static const std::string kCond4PhishingNoBrand = "Cond4PhishingNoBrand";
+static const std::string kCond5MalwareOneStep = "Cond5MalwareOneStep";
+static const std::string kCond6PhishingOneStep = "Cond6PhishingOneStep";
+static const std::string kCond7MalwareFearMsg = "Cond7MalwareFearMsg";
+static const std::string kCond8PhishingFearMsg = "Cond8PhishingFearMsg";
+static const std::string kCond9MalwareCollabMsg = "Cond9MalwareCollabMsg";
+static const std::string kCond10PhishingCollabMsg = "Cond10PhishingCollabMsg";
+static const std::string kCond11MalwareQuestion = "Cond11MalwareQuestion";
+static const std::string kCond12PhishingQuestion = "Cond12PhishingQuestion";
+static const std::string kCond13MalwareGoBack = "Cond13MalwareGoBack";
+static const std::string kCond14PhishingGoBack = "Cond14PhishingGoBack";
+
// static
SafeBrowsingBlockingPageFactory* SafeBrowsingBlockingPage::factory_ = NULL;
@@ -129,7 +145,7 @@ class SafeBrowsingBlockingPageFactoryImpl
WebContents* web_contents,
const SafeBrowsingBlockingPage::UnsafeResourceList& unsafe_resources)
OVERRIDE {
- // Only do the trial if the interstitial is for a single malware or
+ // Only use the V2 page if the interstitial is for a single malware or
// phishing resource, the multi-threat interstitial has not been updated to
// V2 yet.
if (unsafe_resources.size() == 1 &&
@@ -378,6 +394,8 @@ void SafeBrowsingBlockingPage::CommandReceived(const std::string& cmd) {
}
if (command == kExpandedSeeMore) {
+ if (!has_expanded_see_more_section_) // Toggled in RecordUserReactionTime.
+ RecordUserAction(ADVANCED);
// User expanded the "see more info" section of the page. We don't actually
// do any action based on this, it's just so that RecordUserReactionTime can
// track it.
@@ -483,6 +501,9 @@ void SafeBrowsingBlockingPage::RecordUserAction(BlockingPageEvent event) {
PHISHING_DONT_PROCEED,
PHISHING_FORCED_DONT_PROCEED,
PHISHING_PROCEED,
+ MALWARE_ADVANCED,
agl 2013/05/01 18:54:12 likewise, I'm not sure that these enum elements ha
felt 2013/05/01 19:39:45 Done.
+ MULTIPLE_ADVANCED,
+ PHISHING_ADVANCED,
MAX_ACTION
} histogram_action = MAX_ACTION;
@@ -540,6 +561,19 @@ void SafeBrowsingBlockingPage::RecordUserAction(BlockingPageEvent event) {
}
}
break;
+ case ADVANCED:
+ switch (interstitial_type_) {
+ case TYPE_MALWARE_AND_PHISHING:
+ histogram_action = MULTIPLE_ADVANCED;
+ break;
+ case TYPE_MALWARE:
+ histogram_action = MALWARE_ADVANCED;
+ break;
+ case TYPE_PHISHING:
+ histogram_action = PHISHING_ADVANCED;
+ break;
+ }
+ break;
default:
NOTREACHED() << "Unexpected event: " << event;
}
@@ -891,6 +925,13 @@ SafeBrowsingBlockingPageV2::SafeBrowsingBlockingPageV2(
WebContents* web_contents,
const UnsafeResourceList& unsafe_resources)
: SafeBrowsingBlockingPage(ui_manager, web_contents, unsafe_resources) {
+ trial_ = "";
agl 2013/05/01 18:54:12 std::strings do not need to be explicitly cleared.
felt 2013/05/01 19:39:45 Done.
+ if (unsafe_resources_[0].threat_type == SB_THREAT_TYPE_URL_MALWARE)
agl 2013/05/01 18:54:12 I feel that once a conditional grows past an if an
felt 2013/05/01 19:39:45 Done.
+ trial_ = base::FieldTrialList::FindFullName("InterstitialMalware");
+ else if (unsafe_resources_[0].threat_type == SB_THREAT_TYPE_URL_PHISHING ||
+ unsafe_resources_[0].threat_type ==
+ SB_THREAT_TYPE_CLIENT_SIDE_PHISHING_URL)
+ trial_ = base::FieldTrialList::FindFullName("InterstitialPhishing");
}
std::string SafeBrowsingBlockingPageV2::GetHTMLContents() {
@@ -947,6 +988,7 @@ void SafeBrowsingBlockingPageV2::PopulateStringDictionary(
IDS_SAFE_BROWSING_MALWARE_V2_SEE_MORE));
strings->SetString("proceed",
l10n_util::GetStringUTF16(IDS_SAFE_BROWSING_MALWARE_V2_PROCEED_LINK));
+ strings->SetString("trialType", trial_); // Finch trial
webui::SetFontAndTextDirection(strings);
}

Powered by Google App Engine
This is Rietveld 408576698