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

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: 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.
158 bool Version3Enabled() { 150 const char* GetTrialCondition() {
159 if (CommandLine::ForCurrentProcess()->HasSwitch( 151 if (CommandLine::ForCurrentProcess()->HasSwitch(
160 switches::kMalwareInterstitialVersionV2)) { 152 switches::kMalwareInterstitialV2) ||
161 return false; 153 base::FieldTrialList::FindFullName(kV3StudyName) == kCondV2) {
mattm 2014/06/19 06:57:03 Seems like the switches should always override the
felt 2014/06/19 14:08:54 Done.
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 base::FieldTrialList::FindFullName(kV3StudyName) == kCondV3) {
159 return kCondV3;
160 }
161 if (CommandLine::ForCurrentProcess()->HasSwitch(
162 switches::kMalwareInterstitialV3Advice) ||
163 base::FieldTrialList::FindFullName(kV3StudyName) == kCondV3Advice) {
164 return kCondV3Advice;
165 }
166 if (CommandLine::ForCurrentProcess()->HasSwitch(
167 switches::kMalwareInterstitialV3Social) ||
168 base::FieldTrialList::FindFullName(kV3StudyName) == kCondV3Social) {
169 return kCondV3Social;
170 }
171 if (CommandLine::ForCurrentProcess()->HasSwitch(
172 switches::kMalwareInterstitialV3NotRecommend) ||
173 base::FieldTrialList::FindFullName(kV3StudyName) == kCondV3NotRecommend) {
174 return kCondV3NotRecommend;
175 }
176 if (CommandLine::ForCurrentProcess()->HasSwitch(
177 switches::kMalwareInterstitialV3History) ||
178 base::FieldTrialList::FindFullName(kV3StudyName) == kCondV3History) {
179 return kCondV3History;
180 }
181 return kCondV3;
166 } 182 }
167 183
168 } // namespace 184 } // namespace
169 185
170 // static 186 // static
171 SafeBrowsingBlockingPageFactory* SafeBrowsingBlockingPage::factory_ = NULL; 187 SafeBrowsingBlockingPageFactory* SafeBrowsingBlockingPage::factory_ = NULL;
172 188
173 // The default SafeBrowsingBlockingPageFactory. Global, made a singleton so we 189 // The default SafeBrowsingBlockingPageFactory. Global, made a singleton so we
174 // don't leak it. 190 // don't leak it.
175 class SafeBrowsingBlockingPageFactoryImpl 191 class SafeBrowsingBlockingPageFactoryImpl
176 : public SafeBrowsingBlockingPageFactory { 192 : public SafeBrowsingBlockingPageFactory {
177 public: 193 public:
178 virtual SafeBrowsingBlockingPage* CreateSafeBrowsingPage( 194 virtual SafeBrowsingBlockingPage* CreateSafeBrowsingPage(
179 SafeBrowsingUIManager* ui_manager, 195 SafeBrowsingUIManager* ui_manager,
180 WebContents* web_contents, 196 WebContents* web_contents,
181 const SafeBrowsingBlockingPage::UnsafeResourceList& unsafe_resources) 197 const SafeBrowsingBlockingPage::UnsafeResourceList& unsafe_resources)
182 OVERRIDE { 198 OVERRIDE {
183 // Only use the V2 page if the interstitial is for a single malware or 199 // 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 200 // phishing resource, the multi-threat interstitial has not been updated to
185 // V2 yet. 201 // V2 yet.
186 if (unsafe_resources.size() == 1 && 202 if (unsafe_resources.size() == 1 &&
187 (unsafe_resources[0].threat_type == SB_THREAT_TYPE_URL_MALWARE || 203 (unsafe_resources[0].threat_type == SB_THREAT_TYPE_URL_MALWARE ||
188 unsafe_resources[0].threat_type == 204 unsafe_resources[0].threat_type ==
189 SB_THREAT_TYPE_CLIENT_SIDE_MALWARE_URL || 205 SB_THREAT_TYPE_CLIENT_SIDE_MALWARE_URL ||
190 unsafe_resources[0].threat_type == SB_THREAT_TYPE_URL_PHISHING || 206 unsafe_resources[0].threat_type == SB_THREAT_TYPE_URL_PHISHING ||
191 unsafe_resources[0].threat_type == 207 unsafe_resources[0].threat_type ==
192 SB_THREAT_TYPE_CLIENT_SIDE_PHISHING_URL)) { 208 SB_THREAT_TYPE_CLIENT_SIDE_PHISHING_URL)) {
193 if (Version3Enabled()) { 209 if (GetTrialCondition() == kCondV2) {
194 return new SafeBrowsingBlockingPageV3(ui_manager, web_contents, 210 return new SafeBrowsingBlockingPageV2(ui_manager, web_contents,
195 unsafe_resources); 211 unsafe_resources);
196 } else { 212 } else {
197 return new SafeBrowsingBlockingPageV2(ui_manager, web_contents, 213 return new SafeBrowsingBlockingPageV3(ui_manager, web_contents,
198 unsafe_resources); 214 unsafe_resources);
199 } 215 }
200 } 216 }
201 return new SafeBrowsingBlockingPageV1(ui_manager, web_contents, 217 return new SafeBrowsingBlockingPageV1(ui_manager, web_contents,
202 unsafe_resources); 218 unsafe_resources);
203 } 219 }
204 220
205 private: 221 private:
206 friend struct base::DefaultLazyInstanceTraits< 222 friend struct base::DefaultLazyInstanceTraits<
207 SafeBrowsingBlockingPageFactoryImpl>; 223 SafeBrowsingBlockingPageFactoryImpl>;
(...skipping 826 matching lines...) Expand 10 before | Expand all | Expand 10 after
1034 void SafeBrowsingBlockingPageV1::PopulatePhishingStringDictionary( 1050 void SafeBrowsingBlockingPageV1::PopulatePhishingStringDictionary(
1035 base::DictionaryValue* strings) { 1051 base::DictionaryValue* strings) {
1036 NOTREACHED(); 1052 NOTREACHED();
1037 } 1053 }
1038 1054
1039 SafeBrowsingBlockingPageV2::SafeBrowsingBlockingPageV2( 1055 SafeBrowsingBlockingPageV2::SafeBrowsingBlockingPageV2(
1040 SafeBrowsingUIManager* ui_manager, 1056 SafeBrowsingUIManager* ui_manager,
1041 WebContents* web_contents, 1057 WebContents* web_contents,
1042 const UnsafeResourceList& unsafe_resources) 1058 const UnsafeResourceList& unsafe_resources)
1043 : SafeBrowsingBlockingPage(ui_manager, web_contents, unsafe_resources) { 1059 : 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 } 1060 }
1057 1061
1058 std::string SafeBrowsingBlockingPageV2::GetHTMLContents() { 1062 std::string SafeBrowsingBlockingPageV2::GetHTMLContents() {
1059 // Load the HTML page and create the template components. 1063 // Load the HTML page and create the template components.
1060 base::DictionaryValue strings; 1064 base::DictionaryValue strings;
1061 ResourceBundle& rb = ResourceBundle::GetSharedInstance(); 1065 ResourceBundle& rb = ResourceBundle::GetSharedInstance();
1062 std::string html; 1066 std::string html;
1063 1067
1064 if (unsafe_resources_.empty()) { 1068 if (unsafe_resources_.empty()) {
1065 NOTREACHED(); 1069 NOTREACHED();
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
1103 IsPrefEnabled(prefs::kSafeBrowsingProceedAnywayDisabled)); 1107 IsPrefEnabled(prefs::kSafeBrowsingProceedAnywayDisabled));
1104 strings->SetBoolean("isMainFrame", is_main_frame_load_blocked_); 1108 strings->SetBoolean("isMainFrame", is_main_frame_load_blocked_);
1105 strings->SetBoolean("isPhishing", interstitial_type_ == TYPE_PHISHING); 1109 strings->SetBoolean("isPhishing", interstitial_type_ == TYPE_PHISHING);
1106 1110
1107 strings->SetString("back_button", 1111 strings->SetString("back_button",
1108 l10n_util::GetStringUTF16(IDS_SAFE_BROWSING_MALWARE_BACK_BUTTON)); 1112 l10n_util::GetStringUTF16(IDS_SAFE_BROWSING_MALWARE_BACK_BUTTON));
1109 strings->SetString("seeMore", l10n_util::GetStringUTF16( 1113 strings->SetString("seeMore", l10n_util::GetStringUTF16(
1110 IDS_SAFE_BROWSING_MALWARE_V2_SEE_MORE)); 1114 IDS_SAFE_BROWSING_MALWARE_V2_SEE_MORE));
1111 strings->SetString("proceed", 1115 strings->SetString("proceed",
1112 l10n_util::GetStringUTF16(IDS_SAFE_BROWSING_MALWARE_V2_PROCEED_LINK)); 1116 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); 1117 webui::SetFontAndTextDirection(strings);
1144 } 1118 }
1145 1119
1146 void SafeBrowsingBlockingPageV2::PopulateMultipleThreatStringDictionary( 1120 void SafeBrowsingBlockingPageV2::PopulateMultipleThreatStringDictionary(
1147 base::DictionaryValue* strings) { 1121 base::DictionaryValue* strings) {
1148 NOTREACHED(); 1122 NOTREACHED();
1149 } 1123 }
1150 1124
1151 void SafeBrowsingBlockingPageV2::PopulateMalwareStringDictionary( 1125 void SafeBrowsingBlockingPageV2::PopulateMalwareStringDictionary(
1152 base::DictionaryValue* strings) { 1126 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)); 1220 l10n_util::GetStringUTF16(IDS_SAFE_BROWSING_PHISHING_V2_REPORT_ERROR));
1247 strings->SetBoolean(kDisplayCheckBox, false); 1221 strings->SetBoolean(kDisplayCheckBox, false);
1248 strings->SetString("learnMore", 1222 strings->SetString("learnMore",
1249 l10n_util::GetStringUTF16(IDS_SAFE_BROWSING_MALWARE_V2_LEARN_MORE)); 1223 l10n_util::GetStringUTF16(IDS_SAFE_BROWSING_MALWARE_V2_LEARN_MORE));
1250 } 1224 }
1251 1225
1252 SafeBrowsingBlockingPageV3::SafeBrowsingBlockingPageV3( 1226 SafeBrowsingBlockingPageV3::SafeBrowsingBlockingPageV3(
1253 SafeBrowsingUIManager* ui_manager, 1227 SafeBrowsingUIManager* ui_manager,
1254 WebContents* web_contents, 1228 WebContents* web_contents,
1255 const UnsafeResourceList& unsafe_resources) 1229 const UnsafeResourceList& unsafe_resources)
1256 : SafeBrowsingBlockingPage(ui_manager, web_contents, unsafe_resources) { 1230 : SafeBrowsingBlockingPage(ui_manager, web_contents, unsafe_resources),
1231 trial_condition_(GetTrialCondition()) {
1257 } 1232 }
1258 1233
1259 std::string SafeBrowsingBlockingPageV3::GetHTMLContents() { 1234 std::string SafeBrowsingBlockingPageV3::GetHTMLContents() {
1260 if (unsafe_resources_.empty() || unsafe_resources_.size() > 1) { 1235 if (unsafe_resources_.empty() || unsafe_resources_.size() > 1) {
1261 // TODO(felt): Implement new multi-threat interstitial. crbug.com/160336 1236 // TODO(felt): Implement new multi-threat interstitial. crbug.com/160336
1262 NOTIMPLEMENTED(); 1237 NOTIMPLEMENTED();
1263 return std::string(); 1238 return std::string();
1264 } 1239 }
1265 1240
1266 // Fill in the shared values. 1241 // Fill in the shared values.
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
1303 1278
1304 base::StringPiece html( 1279 base::StringPiece html(
1305 ResourceBundle::GetSharedInstance().GetRawDataResource( 1280 ResourceBundle::GetSharedInstance().GetRawDataResource(
1306 IRD_SSL_INTERSTITIAL_V2_HTML)); 1281 IRD_SSL_INTERSTITIAL_V2_HTML));
1307 webui::UseVersion2 version; 1282 webui::UseVersion2 version;
1308 return webui::GetI18nTemplateHtml(html, &load_time_data); 1283 return webui::GetI18nTemplateHtml(html, &load_time_data);
1309 } 1284 }
1310 1285
1311 void SafeBrowsingBlockingPageV3::PopulateMalwareLoadTimeData( 1286 void SafeBrowsingBlockingPageV3::PopulateMalwareLoadTimeData(
1312 base::DictionaryValue* load_time_data) { 1287 base::DictionaryValue* load_time_data) {
1288 load_time_data->SetString("trialCondition", trial_condition_);
1313 load_time_data->SetBoolean("phishing", false); 1289 load_time_data->SetBoolean("phishing", false);
1314 load_time_data->SetString( 1290 load_time_data->SetString(
1315 "heading", l10n_util::GetStringUTF16(IDS_MALWARE_V3_HEADING)); 1291 "heading", l10n_util::GetStringUTF16(IDS_MALWARE_V3_HEADING));
1316 load_time_data->SetString( 1292 load_time_data->SetString(
1317 "primaryParagraph", 1293 "primaryParagraph",
1318 l10n_util::GetStringUTF16(IDS_MALWARE_V3_PRIMARY_PARAGRAPH)); 1294 l10n_util::GetStringUTF16(IDS_MALWARE_V3_PRIMARY_PARAGRAPH));
1319 load_time_data->SetString( 1295 if (trial_condition_ == kCondV3History) {
1320 "explanationParagraph", 1296 load_time_data->SetString(
1321 is_main_frame_load_blocked_ ? 1297 "explanationParagraph",
1322 l10n_util::GetStringFUTF16( 1298 is_main_frame_load_blocked_ ?
1323 IDS_MALWARE_V3_EXPLANATION_PARAGRAPH, 1299 l10n_util::GetStringFUTF16(
1324 base::UTF8ToUTF16(url_.host())) : 1300 IDS_MALWARE_V3_EXPLANATION_PARAGRAPH_HISTORY,
1325 l10n_util::GetStringFUTF16( 1301 base::UTF8ToUTF16(url_.host())) :
1326 IDS_MALWARE_V3_EXPLANATION_PARAGRAPH_SUBRESOURCE, 1302 l10n_util::GetStringFUTF16(
1327 base::UTF8ToUTF16(web_contents_->GetURL().host()), 1303 IDS_MALWARE_V3_EXPLANATION_PARAGRAPH_SUBRESOURCE_HISTORY,
1328 base::UTF8ToUTF16(url_.host()))); 1304 base::UTF8ToUTF16(web_contents_->GetURL().host()),
1329 load_time_data->SetString( 1305 base::UTF8ToUTF16(url_.host())));
1330 "finalParagraph", 1306 } else if (trial_condition_ == kCondV3Advice) {
1331 l10n_util::GetStringUTF16(IDS_MALWARE_V3_PROCEED_PARAGRAPH)); 1307 load_time_data->SetString(
1308 "explanationParagraph",
1309 is_main_frame_load_blocked_ ?
1310 l10n_util::GetStringFUTF16(
1311 IDS_MALWARE_V3_EXPLANATION_PARAGRAPH_ADVICE,
1312 base::UTF8ToUTF16(url_.host())) :
1313 l10n_util::GetStringFUTF16(
1314 IDS_MALWARE_V3_EXPLANATION_PARAGRAPH_SUBRESOURCE_ADVICE,
1315 base::UTF8ToUTF16(web_contents_->GetURL().host()),
1316 base::UTF8ToUTF16(url_.host())));
1317 load_time_data->SetString(
1318 "adviceHeading",
1319 l10n_util::GetStringUTF16(IDS_MALWARE_V3_ADVICE_HEADING));
1320 } else {
1321 load_time_data->SetString(
1322 "explanationParagraph",
1323 is_main_frame_load_blocked_ ?
1324 l10n_util::GetStringFUTF16(
1325 IDS_MALWARE_V3_EXPLANATION_PARAGRAPH,
1326 base::UTF8ToUTF16(url_.host())) :
1327 l10n_util::GetStringFUTF16(
1328 IDS_MALWARE_V3_EXPLANATION_PARAGRAPH_SUBRESOURCE,
1329 base::UTF8ToUTF16(web_contents_->GetURL().host()),
1330 base::UTF8ToUTF16(url_.host())));
1331 }
1332 if (trial_condition_ == kCondV3Social) {
1333 load_time_data->SetString(
1334 "finalParagraph",
1335 l10n_util::GetStringUTF16(IDS_MALWARE_V3_PROCEED_PARAGRAPH_SOCIAL));
1336 } else if (trial_condition_ == kCondV3NotRecommend) {
1337 load_time_data->SetString(
1338 "finalParagraph",
1339 l10n_util::GetStringUTF16(
1340 IDS_MALWARE_V3_PROCEED_PARAGRAPH_NOT_RECOMMEND));
1341 } else {
1342 load_time_data->SetString(
1343 "finalParagraph",
1344 l10n_util::GetStringUTF16(IDS_MALWARE_V3_PROCEED_PARAGRAPH));
1345 }
1332 1346
1333 load_time_data->SetBoolean(kDisplayCheckBox, CanShowMalwareDetailsOption()); 1347 load_time_data->SetBoolean(kDisplayCheckBox, CanShowMalwareDetailsOption());
1334 if (CanShowMalwareDetailsOption()) { 1348 if (CanShowMalwareDetailsOption()) {
1335 std::string privacy_link = base::StringPrintf( 1349 std::string privacy_link = base::StringPrintf(
1336 kPrivacyLinkHtml, 1350 kPrivacyLinkHtml,
1337 l10n_util::GetStringUTF8( 1351 l10n_util::GetStringUTF8(
1338 IDS_SAFE_BROWSING_PRIVACY_POLICY_PAGE_V2).c_str()); 1352 IDS_SAFE_BROWSING_PRIVACY_POLICY_PAGE_V2).c_str());
1339 load_time_data->SetString( 1353 load_time_data->SetString(
1340 "optInLink", 1354 "optInLink",
1341 l10n_util::GetStringFUTF16(IDS_SAFE_BROWSING_MALWARE_V2_REPORTING_AGREE, 1355 l10n_util::GetStringFUTF16(IDS_SAFE_BROWSING_MALWARE_V2_REPORTING_AGREE,
1342 base::UTF8ToUTF16(privacy_link))); 1356 base::UTF8ToUTF16(privacy_link)));
1343 Profile* profile = Profile::FromBrowserContext( 1357 Profile* profile = Profile::FromBrowserContext(
1344 web_contents_->GetBrowserContext()); 1358 web_contents_->GetBrowserContext());
1345 if (profile->GetPrefs()->HasPrefPath( 1359 if (profile->GetPrefs()->HasPrefPath(
1346 prefs::kSafeBrowsingExtendedReportingEnabled)) { 1360 prefs::kSafeBrowsingExtendedReportingEnabled)) {
1347 reporting_checkbox_checked_ = 1361 reporting_checkbox_checked_ =
1348 IsPrefEnabled(prefs::kSafeBrowsingExtendedReportingEnabled); 1362 IsPrefEnabled(prefs::kSafeBrowsingExtendedReportingEnabled);
1349 } else if (IsPrefEnabled(prefs::kSafeBrowsingReportingEnabled) || 1363 } else if (IsPrefEnabled(prefs::kSafeBrowsingReportingEnabled) ||
1350 IsPrefEnabled(prefs::kSafeBrowsingDownloadFeedbackEnabled)) { 1364 IsPrefEnabled(prefs::kSafeBrowsingDownloadFeedbackEnabled)) {
1351 reporting_checkbox_checked_ = true; 1365 reporting_checkbox_checked_ = true;
1352 } 1366 }
1353 load_time_data->SetBoolean( 1367 load_time_data->SetBoolean(
1354 kBoxChecked, reporting_checkbox_checked_); 1368 kBoxChecked, reporting_checkbox_checked_);
1355 } 1369 }
1356 } 1370 }
1357 1371
1358 void SafeBrowsingBlockingPageV3::PopulatePhishingLoadTimeData( 1372 void SafeBrowsingBlockingPageV3::PopulatePhishingLoadTimeData(
1359 base::DictionaryValue* load_time_data) { 1373 base::DictionaryValue* load_time_data) {
1374 load_time_data->SetString("trialCondition", std::string());
1360 load_time_data->SetBoolean("phishing", true); 1375 load_time_data->SetBoolean("phishing", true);
1361 load_time_data->SetString( 1376 load_time_data->SetString(
1362 "heading", 1377 "heading",
1363 l10n_util::GetStringUTF16(IDS_PHISHING_V3_HEADING)); 1378 l10n_util::GetStringUTF16(IDS_PHISHING_V3_HEADING));
1364 load_time_data->SetString( 1379 load_time_data->SetString(
1365 "primaryParagraph", 1380 "primaryParagraph",
1366 l10n_util::GetStringFUTF16( 1381 l10n_util::GetStringFUTF16(
1367 IDS_PHISHING_V3_PRIMARY_PARAGRAPH, 1382 IDS_PHISHING_V3_PRIMARY_PARAGRAPH,
1368 base::UTF8ToUTF16(url_.host()))); 1383 base::UTF8ToUTF16(url_.host())));
1369 load_time_data->SetString( 1384 load_time_data->SetString(
1370 "explanationParagraph", 1385 "explanationParagraph",
1371 l10n_util::GetStringFUTF16(IDS_PHISHING_V3_EXPLANATION_PARAGRAPH, 1386 l10n_util::GetStringFUTF16(IDS_PHISHING_V3_EXPLANATION_PARAGRAPH,
1372 base::UTF8ToUTF16(url_.host()))); 1387 base::UTF8ToUTF16(url_.host())));
1373 load_time_data->SetString( 1388 load_time_data->SetString(
1374 "finalParagraph", 1389 "finalParagraph",
1375 l10n_util::GetStringUTF16(IDS_PHISHING_V3_PROCEED_PARAGRAPH)); 1390 l10n_util::GetStringUTF16(IDS_PHISHING_V3_PROCEED_PARAGRAPH));
1376 } 1391 }
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