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

Side by Side Diff: chrome/browser/safe_browsing/safe_browsing_blocking_page.cc

Issue 346733003: Add experimental versions of the malware interstitial (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Tweak to "not recommended" string Created 6 years, 6 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 // 4 //
5 // Implementation of the SafeBrowsingBlockingPage class. 5 // Implementation of the SafeBrowsingBlockingPage class.
6 6
7 #include "chrome/browser/safe_browsing/safe_browsing_blocking_page.h" 7 #include "chrome/browser/safe_browsing/safe_browsing_blocking_page.h"
8 8
9 #include <string> 9 #include <string>
10 10
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after
110 // RecordUserReactionTime. 110 // RecordUserReactionTime.
111 const char kNavigatedAwayMetaCommand[] = "closed"; 111 const char kNavigatedAwayMetaCommand[] = "closed";
112 112
113 // Other constants used to communicate with the JavaScript. 113 // Other constants used to communicate with the JavaScript.
114 const char kBoxChecked[] = "boxchecked"; 114 const char kBoxChecked[] = "boxchecked";
115 const char kDisplayCheckBox[] = "displaycheckbox"; 115 const char kDisplayCheckBox[] = "displaycheckbox";
116 116
117 base::LazyInstance<SafeBrowsingBlockingPage::UnsafeResourceMap> 117 base::LazyInstance<SafeBrowsingBlockingPage::UnsafeResourceMap>
118 g_unsafe_resource_map = LAZY_INSTANCE_INITIALIZER; 118 g_unsafe_resource_map = LAZY_INSTANCE_INITIALIZER;
119 119
120 // These are the conditions for the summer 2013 Finch experiment.
121 // TODO(felt): Get rid of these now that experiment has ended.
122 const char kMalwareStudyName[] = "InterstitialMalware310";
123 const char kPhishingStudyName[] = "InterstitialPhishing564";
124 const char kCond7MalwareFearMsg[] = "cond7MalwareFearMsg";
125 const char kCond8PhishingFearMsg[] = "cond8PhishingFearMsg";
126 const char kCond9MalwareCollabMsg[] = "cond9MalwareCollabMsg";
127 const char kCond10PhishingCollabMsg[] = "cond10PhishingCollabMsg";
128 const char kCond11MalwareQuestion[] = "cond11MalwareQuestion";
129 const char kCond12PhishingQuestion[] = "cond12PhishingQuestion";
130 const char kCond13MalwareGoBack[] = "cond13MalwareGoBack";
131 const char kCond14PhishingGoBack[] = "cond14PhishingGoBack";
132
133 // This enum is used for a histogram. Don't reorder, delete, or insert 120 // This enum is used for a histogram. Don't reorder, delete, or insert
134 // elements. New elements should be added before MAX_ACTION only. 121 // elements. New elements should be added before MAX_ACTION only.
135 enum DetailedDecision { 122 enum DetailedDecision {
136 MALWARE_SHOW_NEW_SITE = 0, 123 MALWARE_SHOW_NEW_SITE = 0,
137 MALWARE_PROCEED_NEW_SITE, 124 MALWARE_PROCEED_NEW_SITE,
138 MALWARE_SHOW_CROSS_SITE, 125 MALWARE_SHOW_CROSS_SITE,
139 MALWARE_PROCEED_CROSS_SITE, 126 MALWARE_PROCEED_CROSS_SITE,
140 PHISHING_SHOW_NEW_SITE, 127 PHISHING_SHOW_NEW_SITE,
141 PHISHING_PROCEED_NEW_SITE, 128 PHISHING_PROCEED_NEW_SITE,
142 PHISHING_SHOW_CROSS_SITE, 129 PHISHING_SHOW_CROSS_SITE,
143 PHISHING_PROCEED_CROSS_SITE, 130 PHISHING_PROCEED_CROSS_SITE,
144 MAX_DETAILED_ACTION 131 MAX_DETAILED_ACTION
145 }; 132 };
146 133
147 void RecordDetailedUserAction(DetailedDecision decision) { 134 void RecordDetailedUserAction(DetailedDecision decision) {
148 UMA_HISTOGRAM_ENUMERATION("SB2.InterstitialActionDetails", 135 UMA_HISTOGRAM_ENUMERATION("SB2.InterstitialActionDetails",
149 decision, 136 decision,
150 MAX_DETAILED_ACTION); 137 MAX_DETAILED_ACTION);
151 } 138 }
152 139
153 // These are the constants for the M37 Finch trial. 140 // Constants for the M37 Finch trial.
154 const char kV3StudyName[] = "MalwareInterstitialVersion"; 141 const char kV3StudyName[] = "MalwareInterstitialVersion";
155 const char kCondUseV2[] = "V2"; 142 const char kCondV2[] = "V2";
143 const char kCondV3[] = "V3";
144 const char kCondV3Advice[] = "V3Advice";
145 const char kCondV3Social[] = "V3Social";
146 const char kCondV3NotRecommend[] = "V3NotRecommend";
147 const char kCondV3History[] = "V3History";
156 148
157 // Default to V3 unless a flag or field trial says otherwise. 149 // Default to V3 unless a flag or field trial says otherwise. Flags override
158 bool Version3Enabled() { 150 // field trial settings.
151 const char* GetTrialCondition() {
159 if (CommandLine::ForCurrentProcess()->HasSwitch( 152 if (CommandLine::ForCurrentProcess()->HasSwitch(
160 switches::kMalwareInterstitialVersionV2)) { 153 switches::kMalwareInterstitialV2)) {
161 return false; 154 return kCondV2;
162 } 155 }
163 if (base::FieldTrialList::FindFullName(kV3StudyName) == kCondUseV2) 156 if (CommandLine::ForCurrentProcess()->HasSwitch(
164 return false; 157 switches::kMalwareInterstitialV3)) {
165 return true; 158 return kCondV3;
159 }
160 if (CommandLine::ForCurrentProcess()->HasSwitch(
161 switches::kMalwareInterstitialV3Advice)) {
162 return kCondV3Advice;
163 }
164 if (CommandLine::ForCurrentProcess()->HasSwitch(
165 switches::kMalwareInterstitialV3Social)) {
166 return kCondV3Social;
167 }
168 if (CommandLine::ForCurrentProcess()->HasSwitch(
169 switches::kMalwareInterstitialV3NotRecommend)) {
170 return kCondV3NotRecommend;
171 }
172 if (CommandLine::ForCurrentProcess()->HasSwitch(
173 switches::kMalwareInterstitialV3History)) {
174 return kCondV3History;
175 }
176
177 // Make sure that the return value is one of the expected types instead of
178 // directly returning base::FieldTrialList::FindFullName.
179 if (base::FieldTrialList::FindFullName(kV3StudyName) == kCondV2)
180 return kCondV2;
181 if (base::FieldTrialList::FindFullName(kV3StudyName) == kCondV3)
182 return kCondV3;
183 if (base::FieldTrialList::FindFullName(kV3StudyName) == kCondV3Advice)
184 return kCondV3Advice;
185 if (base::FieldTrialList::FindFullName(kV3StudyName) == kCondV3Social)
186 return kCondV3Social;
187 if (base::FieldTrialList::FindFullName(kV3StudyName) == kCondV3NotRecommend)
188 return kCondV3NotRecommend;
189 if (base::FieldTrialList::FindFullName(kV3StudyName) == kCondV3History)
190 return kCondV3History;
191 return kCondV3;
166 } 192 }
167 193
168 } // namespace 194 } // namespace
169 195
170 // static 196 // static
171 SafeBrowsingBlockingPageFactory* SafeBrowsingBlockingPage::factory_ = NULL; 197 SafeBrowsingBlockingPageFactory* SafeBrowsingBlockingPage::factory_ = NULL;
172 198
173 // The default SafeBrowsingBlockingPageFactory. Global, made a singleton so we 199 // The default SafeBrowsingBlockingPageFactory. Global, made a singleton so we
174 // don't leak it. 200 // don't leak it.
175 class SafeBrowsingBlockingPageFactoryImpl 201 class SafeBrowsingBlockingPageFactoryImpl
176 : public SafeBrowsingBlockingPageFactory { 202 : public SafeBrowsingBlockingPageFactory {
177 public: 203 public:
178 virtual SafeBrowsingBlockingPage* CreateSafeBrowsingPage( 204 virtual SafeBrowsingBlockingPage* CreateSafeBrowsingPage(
179 SafeBrowsingUIManager* ui_manager, 205 SafeBrowsingUIManager* ui_manager,
180 WebContents* web_contents, 206 WebContents* web_contents,
181 const SafeBrowsingBlockingPage::UnsafeResourceList& unsafe_resources) 207 const SafeBrowsingBlockingPage::UnsafeResourceList& unsafe_resources)
182 OVERRIDE { 208 OVERRIDE {
183 // Only use the V2 page if the interstitial is for a single malware or 209 // Only use the V2 page if the interstitial is for a single malware or
184 // phishing resource, the multi-threat interstitial has not been updated to 210 // phishing resource, the multi-threat interstitial has not been updated to
185 // V2 yet. 211 // V2 yet.
186 if (unsafe_resources.size() == 1 && 212 if (unsafe_resources.size() == 1 &&
187 (unsafe_resources[0].threat_type == SB_THREAT_TYPE_URL_MALWARE || 213 (unsafe_resources[0].threat_type == SB_THREAT_TYPE_URL_MALWARE ||
188 unsafe_resources[0].threat_type == 214 unsafe_resources[0].threat_type ==
189 SB_THREAT_TYPE_CLIENT_SIDE_MALWARE_URL || 215 SB_THREAT_TYPE_CLIENT_SIDE_MALWARE_URL ||
190 unsafe_resources[0].threat_type == SB_THREAT_TYPE_URL_PHISHING || 216 unsafe_resources[0].threat_type == SB_THREAT_TYPE_URL_PHISHING ||
191 unsafe_resources[0].threat_type == 217 unsafe_resources[0].threat_type ==
192 SB_THREAT_TYPE_CLIENT_SIDE_PHISHING_URL)) { 218 SB_THREAT_TYPE_CLIENT_SIDE_PHISHING_URL)) {
193 if (Version3Enabled()) { 219 if (GetTrialCondition() == kCondV2) {
194 return new SafeBrowsingBlockingPageV3(ui_manager, web_contents, 220 return new SafeBrowsingBlockingPageV2(ui_manager, web_contents,
195 unsafe_resources); 221 unsafe_resources);
196 } else { 222 } else {
197 return new SafeBrowsingBlockingPageV2(ui_manager, web_contents, 223 return new SafeBrowsingBlockingPageV3(ui_manager, web_contents,
198 unsafe_resources); 224 unsafe_resources);
199 } 225 }
200 } 226 }
201 return new SafeBrowsingBlockingPageV1(ui_manager, web_contents, 227 return new SafeBrowsingBlockingPageV1(ui_manager, web_contents,
202 unsafe_resources); 228 unsafe_resources);
203 } 229 }
204 230
205 private: 231 private:
206 friend struct base::DefaultLazyInstanceTraits< 232 friend struct base::DefaultLazyInstanceTraits<
207 SafeBrowsingBlockingPageFactoryImpl>; 233 SafeBrowsingBlockingPageFactoryImpl>;
(...skipping 826 matching lines...) Expand 10 before | Expand all | Expand 10 after
1034 void SafeBrowsingBlockingPageV1::PopulatePhishingStringDictionary( 1060 void SafeBrowsingBlockingPageV1::PopulatePhishingStringDictionary(
1035 base::DictionaryValue* strings) { 1061 base::DictionaryValue* strings) {
1036 NOTREACHED(); 1062 NOTREACHED();
1037 } 1063 }
1038 1064
1039 SafeBrowsingBlockingPageV2::SafeBrowsingBlockingPageV2( 1065 SafeBrowsingBlockingPageV2::SafeBrowsingBlockingPageV2(
1040 SafeBrowsingUIManager* ui_manager, 1066 SafeBrowsingUIManager* ui_manager,
1041 WebContents* web_contents, 1067 WebContents* web_contents,
1042 const UnsafeResourceList& unsafe_resources) 1068 const UnsafeResourceList& unsafe_resources)
1043 : SafeBrowsingBlockingPage(ui_manager, web_contents, unsafe_resources) { 1069 : SafeBrowsingBlockingPage(ui_manager, web_contents, unsafe_resources) {
1044 if (unsafe_resources_[0].threat_type == SB_THREAT_TYPE_URL_MALWARE ||
1045 unsafe_resources_[0].threat_type ==
1046 SB_THREAT_TYPE_CLIENT_SIDE_MALWARE_URL) {
1047 trialCondition_ =
1048 base::FieldTrialList::FindFullName(kMalwareStudyName);
1049 } else if (unsafe_resources_[0].threat_type ==
1050 SB_THREAT_TYPE_URL_PHISHING ||
1051 unsafe_resources_[0].threat_type ==
1052 SB_THREAT_TYPE_CLIENT_SIDE_PHISHING_URL) {
1053 trialCondition_ =
1054 base::FieldTrialList::FindFullName(kPhishingStudyName);
1055 }
1056 } 1070 }
1057 1071
1058 std::string SafeBrowsingBlockingPageV2::GetHTMLContents() { 1072 std::string SafeBrowsingBlockingPageV2::GetHTMLContents() {
1059 // Load the HTML page and create the template components. 1073 // Load the HTML page and create the template components.
1060 base::DictionaryValue strings; 1074 base::DictionaryValue strings;
1061 ResourceBundle& rb = ResourceBundle::GetSharedInstance(); 1075 ResourceBundle& rb = ResourceBundle::GetSharedInstance();
1062 std::string html; 1076 std::string html;
1063 1077
1064 if (unsafe_resources_.empty()) { 1078 if (unsafe_resources_.empty()) {
1065 NOTREACHED(); 1079 NOTREACHED();
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
1103 IsPrefEnabled(prefs::kSafeBrowsingProceedAnywayDisabled)); 1117 IsPrefEnabled(prefs::kSafeBrowsingProceedAnywayDisabled));
1104 strings->SetBoolean("isMainFrame", is_main_frame_load_blocked_); 1118 strings->SetBoolean("isMainFrame", is_main_frame_load_blocked_);
1105 strings->SetBoolean("isPhishing", interstitial_type_ == TYPE_PHISHING); 1119 strings->SetBoolean("isPhishing", interstitial_type_ == TYPE_PHISHING);
1106 1120
1107 strings->SetString("back_button", 1121 strings->SetString("back_button",
1108 l10n_util::GetStringUTF16(IDS_SAFE_BROWSING_MALWARE_BACK_BUTTON)); 1122 l10n_util::GetStringUTF16(IDS_SAFE_BROWSING_MALWARE_BACK_BUTTON));
1109 strings->SetString("seeMore", l10n_util::GetStringUTF16( 1123 strings->SetString("seeMore", l10n_util::GetStringUTF16(
1110 IDS_SAFE_BROWSING_MALWARE_V2_SEE_MORE)); 1124 IDS_SAFE_BROWSING_MALWARE_V2_SEE_MORE));
1111 strings->SetString("proceed", 1125 strings->SetString("proceed",
1112 l10n_util::GetStringUTF16(IDS_SAFE_BROWSING_MALWARE_V2_PROCEED_LINK)); 1126 l10n_util::GetStringUTF16(IDS_SAFE_BROWSING_MALWARE_V2_PROCEED_LINK));
1113
1114 // Field trial
1115 strings->SetString("trialType", trialCondition_);
1116 if (trialCondition_ == kCond7MalwareFearMsg) {
1117 strings->SetString("headLine",
1118 l10n_util::GetStringUTF16(IDS_SAFE_BROWSING_MALWARE_FEAR_HEADLINE));
1119 } else if (trialCondition_ == kCond8PhishingFearMsg) {
1120 strings->SetString("headLine",
1121 l10n_util::GetStringUTF16(IDS_SAFE_BROWSING_PHISHING_FEAR_HEADLINE));
1122 } else if (trialCondition_ == kCond9MalwareCollabMsg) {
1123 strings->SetString("headLine",
1124 l10n_util::GetStringUTF16(IDS_SAFE_BROWSING_MALWARE_COLLAB_HEADLINE));
1125 } else if (trialCondition_ == kCond10PhishingCollabMsg) {
1126 strings->SetString("headLine",
1127 l10n_util::GetStringUTF16(IDS_SAFE_BROWSING_PHISHING_COLLAB_HEADLINE));
1128 } else if (trialCondition_ == kCond11MalwareQuestion) {
1129 strings->SetString("headLine",
1130 l10n_util::GetStringUTF16(IDS_SAFE_BROWSING_MALWARE_QUESTION_HEADLINE));
1131 } else if (trialCondition_ == kCond12PhishingQuestion) {
1132 strings->SetString("headLine",
1133 l10n_util::GetStringUTF16(
1134 IDS_SAFE_BROWSING_PHISHING_QUESTION_HEADLINE));
1135 } else if (trialCondition_ == kCond13MalwareGoBack) {
1136 strings->SetString("headLine",
1137 l10n_util::GetStringUTF16(IDS_SAFE_BROWSING_MALWARE_BACK_HEADLINE));
1138 } else if (trialCondition_ == kCond14PhishingGoBack) {
1139 strings->SetString("headLine",
1140 l10n_util::GetStringUTF16(IDS_SAFE_BROWSING_PHISHING_BACK_HEADLINE));
1141 }
1142
1143 webui::SetFontAndTextDirection(strings); 1127 webui::SetFontAndTextDirection(strings);
1144 } 1128 }
1145 1129
1146 void SafeBrowsingBlockingPageV2::PopulateMultipleThreatStringDictionary( 1130 void SafeBrowsingBlockingPageV2::PopulateMultipleThreatStringDictionary(
1147 base::DictionaryValue* strings) { 1131 base::DictionaryValue* strings) {
1148 NOTREACHED(); 1132 NOTREACHED();
1149 } 1133 }
1150 1134
1151 void SafeBrowsingBlockingPageV2::PopulateMalwareStringDictionary( 1135 void SafeBrowsingBlockingPageV2::PopulateMalwareStringDictionary(
1152 base::DictionaryValue* strings) { 1136 base::DictionaryValue* strings) {
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after
1246 l10n_util::GetStringUTF16(IDS_SAFE_BROWSING_PHISHING_V2_REPORT_ERROR)); 1230 l10n_util::GetStringUTF16(IDS_SAFE_BROWSING_PHISHING_V2_REPORT_ERROR));
1247 strings->SetBoolean(kDisplayCheckBox, false); 1231 strings->SetBoolean(kDisplayCheckBox, false);
1248 strings->SetString("learnMore", 1232 strings->SetString("learnMore",
1249 l10n_util::GetStringUTF16(IDS_SAFE_BROWSING_MALWARE_V2_LEARN_MORE)); 1233 l10n_util::GetStringUTF16(IDS_SAFE_BROWSING_MALWARE_V2_LEARN_MORE));
1250 } 1234 }
1251 1235
1252 SafeBrowsingBlockingPageV3::SafeBrowsingBlockingPageV3( 1236 SafeBrowsingBlockingPageV3::SafeBrowsingBlockingPageV3(
1253 SafeBrowsingUIManager* ui_manager, 1237 SafeBrowsingUIManager* ui_manager,
1254 WebContents* web_contents, 1238 WebContents* web_contents,
1255 const UnsafeResourceList& unsafe_resources) 1239 const UnsafeResourceList& unsafe_resources)
1256 : SafeBrowsingBlockingPage(ui_manager, web_contents, unsafe_resources) { 1240 : SafeBrowsingBlockingPage(ui_manager, web_contents, unsafe_resources),
1241 trial_condition_(GetTrialCondition()) {
1257 } 1242 }
1258 1243
1259 std::string SafeBrowsingBlockingPageV3::GetHTMLContents() { 1244 std::string SafeBrowsingBlockingPageV3::GetHTMLContents() {
1260 if (unsafe_resources_.empty() || unsafe_resources_.size() > 1) { 1245 if (unsafe_resources_.empty() || unsafe_resources_.size() > 1) {
1261 // TODO(felt): Implement new multi-threat interstitial. crbug.com/160336 1246 // TODO(felt): Implement new multi-threat interstitial. crbug.com/160336
1262 NOTIMPLEMENTED(); 1247 NOTIMPLEMENTED();
1263 return std::string(); 1248 return std::string();
1264 } 1249 }
1265 1250
1266 // Fill in the shared values. 1251 // Fill in the shared values.
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
1303 1288
1304 base::StringPiece html( 1289 base::StringPiece html(
1305 ResourceBundle::GetSharedInstance().GetRawDataResource( 1290 ResourceBundle::GetSharedInstance().GetRawDataResource(
1306 IRD_SSL_INTERSTITIAL_V2_HTML)); 1291 IRD_SSL_INTERSTITIAL_V2_HTML));
1307 webui::UseVersion2 version; 1292 webui::UseVersion2 version;
1308 return webui::GetI18nTemplateHtml(html, &load_time_data); 1293 return webui::GetI18nTemplateHtml(html, &load_time_data);
1309 } 1294 }
1310 1295
1311 void SafeBrowsingBlockingPageV3::PopulateMalwareLoadTimeData( 1296 void SafeBrowsingBlockingPageV3::PopulateMalwareLoadTimeData(
1312 base::DictionaryValue* load_time_data) { 1297 base::DictionaryValue* load_time_data) {
1298 load_time_data->SetString("trialCondition", trial_condition_);
1313 load_time_data->SetBoolean("phishing", false); 1299 load_time_data->SetBoolean("phishing", false);
1314 load_time_data->SetString( 1300 load_time_data->SetString(
1315 "heading", l10n_util::GetStringUTF16(IDS_MALWARE_V3_HEADING)); 1301 "heading", l10n_util::GetStringUTF16(IDS_MALWARE_V3_HEADING));
1316 load_time_data->SetString( 1302 load_time_data->SetString(
1317 "primaryParagraph", 1303 "primaryParagraph",
1318 l10n_util::GetStringUTF16(IDS_MALWARE_V3_PRIMARY_PARAGRAPH)); 1304 l10n_util::GetStringUTF16(IDS_MALWARE_V3_PRIMARY_PARAGRAPH));
1319 load_time_data->SetString( 1305 if (trial_condition_ == kCondV3History) {
1320 "explanationParagraph", 1306 load_time_data->SetString(
1321 is_main_frame_load_blocked_ ? 1307 "explanationParagraph",
1322 l10n_util::GetStringFUTF16( 1308 is_main_frame_load_blocked_ ?
1323 IDS_MALWARE_V3_EXPLANATION_PARAGRAPH, 1309 l10n_util::GetStringFUTF16(
1324 base::UTF8ToUTF16(url_.host())) : 1310 IDS_MALWARE_V3_EXPLANATION_PARAGRAPH_HISTORY,
1325 l10n_util::GetStringFUTF16( 1311 base::UTF8ToUTF16(url_.host())) :
1326 IDS_MALWARE_V3_EXPLANATION_PARAGRAPH_SUBRESOURCE, 1312 l10n_util::GetStringFUTF16(
1327 base::UTF8ToUTF16(web_contents_->GetURL().host()), 1313 IDS_MALWARE_V3_EXPLANATION_PARAGRAPH_SUBRESOURCE_HISTORY,
1328 base::UTF8ToUTF16(url_.host()))); 1314 base::UTF8ToUTF16(web_contents_->GetURL().host()),
1329 load_time_data->SetString( 1315 base::UTF8ToUTF16(url_.host())));
1330 "finalParagraph", 1316 } else if (trial_condition_ == kCondV3Advice) {
1331 l10n_util::GetStringUTF16(IDS_MALWARE_V3_PROCEED_PARAGRAPH)); 1317 load_time_data->SetString(
1318 "explanationParagraph",
1319 is_main_frame_load_blocked_ ?
1320 l10n_util::GetStringFUTF16(
1321 IDS_MALWARE_V3_EXPLANATION_PARAGRAPH_ADVICE,
1322 base::UTF8ToUTF16(url_.host())) :
1323 l10n_util::GetStringFUTF16(
1324 IDS_MALWARE_V3_EXPLANATION_PARAGRAPH_SUBRESOURCE_ADVICE,
1325 base::UTF8ToUTF16(web_contents_->GetURL().host()),
1326 base::UTF8ToUTF16(url_.host())));
1327 load_time_data->SetString(
1328 "adviceHeading",
1329 l10n_util::GetStringUTF16(IDS_MALWARE_V3_ADVICE_HEADING));
1330 } else {
1331 load_time_data->SetString(
1332 "explanationParagraph",
1333 is_main_frame_load_blocked_ ?
1334 l10n_util::GetStringFUTF16(
1335 IDS_MALWARE_V3_EXPLANATION_PARAGRAPH,
1336 base::UTF8ToUTF16(url_.host())) :
1337 l10n_util::GetStringFUTF16(
1338 IDS_MALWARE_V3_EXPLANATION_PARAGRAPH_SUBRESOURCE,
1339 base::UTF8ToUTF16(web_contents_->GetURL().host()),
1340 base::UTF8ToUTF16(url_.host())));
1341 }
1342 if (trial_condition_ == kCondV3Social) {
1343 load_time_data->SetString(
1344 "finalParagraph",
1345 l10n_util::GetStringUTF16(IDS_MALWARE_V3_PROCEED_PARAGRAPH_SOCIAL));
1346 } else if (trial_condition_ == kCondV3NotRecommend) {
1347 load_time_data->SetString(
1348 "finalParagraph",
1349 l10n_util::GetStringUTF16(
1350 IDS_MALWARE_V3_PROCEED_PARAGRAPH_NOT_RECOMMEND));
1351 } else {
1352 load_time_data->SetString(
1353 "finalParagraph",
1354 l10n_util::GetStringUTF16(IDS_MALWARE_V3_PROCEED_PARAGRAPH));
1355 }
1332 1356
1333 load_time_data->SetBoolean(kDisplayCheckBox, CanShowMalwareDetailsOption()); 1357 load_time_data->SetBoolean(kDisplayCheckBox, CanShowMalwareDetailsOption());
1334 if (CanShowMalwareDetailsOption()) { 1358 if (CanShowMalwareDetailsOption()) {
1335 std::string privacy_link = base::StringPrintf( 1359 std::string privacy_link = base::StringPrintf(
1336 kPrivacyLinkHtml, 1360 kPrivacyLinkHtml,
1337 l10n_util::GetStringUTF8( 1361 l10n_util::GetStringUTF8(
1338 IDS_SAFE_BROWSING_PRIVACY_POLICY_PAGE_V2).c_str()); 1362 IDS_SAFE_BROWSING_PRIVACY_POLICY_PAGE_V2).c_str());
1339 load_time_data->SetString( 1363 load_time_data->SetString(
1340 "optInLink", 1364 "optInLink",
1341 l10n_util::GetStringFUTF16(IDS_SAFE_BROWSING_MALWARE_V2_REPORTING_AGREE, 1365 l10n_util::GetStringFUTF16(IDS_SAFE_BROWSING_MALWARE_V2_REPORTING_AGREE,
1342 base::UTF8ToUTF16(privacy_link))); 1366 base::UTF8ToUTF16(privacy_link)));
1343 Profile* profile = Profile::FromBrowserContext( 1367 Profile* profile = Profile::FromBrowserContext(
1344 web_contents_->GetBrowserContext()); 1368 web_contents_->GetBrowserContext());
1345 if (profile->GetPrefs()->HasPrefPath( 1369 if (profile->GetPrefs()->HasPrefPath(
1346 prefs::kSafeBrowsingExtendedReportingEnabled)) { 1370 prefs::kSafeBrowsingExtendedReportingEnabled)) {
1347 reporting_checkbox_checked_ = 1371 reporting_checkbox_checked_ =
1348 IsPrefEnabled(prefs::kSafeBrowsingExtendedReportingEnabled); 1372 IsPrefEnabled(prefs::kSafeBrowsingExtendedReportingEnabled);
1349 } else if (IsPrefEnabled(prefs::kSafeBrowsingReportingEnabled) || 1373 } else if (IsPrefEnabled(prefs::kSafeBrowsingReportingEnabled) ||
1350 IsPrefEnabled(prefs::kSafeBrowsingDownloadFeedbackEnabled)) { 1374 IsPrefEnabled(prefs::kSafeBrowsingDownloadFeedbackEnabled)) {
1351 reporting_checkbox_checked_ = true; 1375 reporting_checkbox_checked_ = true;
1352 } 1376 }
1353 load_time_data->SetBoolean( 1377 load_time_data->SetBoolean(
1354 kBoxChecked, reporting_checkbox_checked_); 1378 kBoxChecked, reporting_checkbox_checked_);
1355 } 1379 }
1356 } 1380 }
1357 1381
1358 void SafeBrowsingBlockingPageV3::PopulatePhishingLoadTimeData( 1382 void SafeBrowsingBlockingPageV3::PopulatePhishingLoadTimeData(
1359 base::DictionaryValue* load_time_data) { 1383 base::DictionaryValue* load_time_data) {
1384 load_time_data->SetString("trialCondition", std::string());
1360 load_time_data->SetBoolean("phishing", true); 1385 load_time_data->SetBoolean("phishing", true);
1361 load_time_data->SetString( 1386 load_time_data->SetString(
1362 "heading", 1387 "heading",
1363 l10n_util::GetStringUTF16(IDS_PHISHING_V3_HEADING)); 1388 l10n_util::GetStringUTF16(IDS_PHISHING_V3_HEADING));
1364 load_time_data->SetString( 1389 load_time_data->SetString(
1365 "primaryParagraph", 1390 "primaryParagraph",
1366 l10n_util::GetStringFUTF16( 1391 l10n_util::GetStringFUTF16(
1367 IDS_PHISHING_V3_PRIMARY_PARAGRAPH, 1392 IDS_PHISHING_V3_PRIMARY_PARAGRAPH,
1368 base::UTF8ToUTF16(url_.host()))); 1393 base::UTF8ToUTF16(url_.host())));
1369 load_time_data->SetString( 1394 load_time_data->SetString(
1370 "explanationParagraph", 1395 "explanationParagraph",
1371 l10n_util::GetStringFUTF16(IDS_PHISHING_V3_EXPLANATION_PARAGRAPH, 1396 l10n_util::GetStringFUTF16(IDS_PHISHING_V3_EXPLANATION_PARAGRAPH,
1372 base::UTF8ToUTF16(url_.host()))); 1397 base::UTF8ToUTF16(url_.host())));
1373 load_time_data->SetString( 1398 load_time_data->SetString(
1374 "finalParagraph", 1399 "finalParagraph",
1375 l10n_util::GetStringUTF16(IDS_PHISHING_V3_PROCEED_PARAGRAPH)); 1400 l10n_util::GetStringUTF16(IDS_PHISHING_V3_PROCEED_PARAGRAPH));
1376 } 1401 }
OLDNEW
« no previous file with comments | « chrome/browser/safe_browsing/safe_browsing_blocking_page.h ('k') | chrome/common/chrome_switches.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698