OLD | NEW |
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 109 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
120 PHISHING_PROCEED_CROSS_SITE, | 120 PHISHING_PROCEED_CROSS_SITE, |
121 MAX_DETAILED_ACTION | 121 MAX_DETAILED_ACTION |
122 }; | 122 }; |
123 | 123 |
124 void RecordDetailedUserAction(DetailedDecision decision) { | 124 void RecordDetailedUserAction(DetailedDecision decision) { |
125 UMA_HISTOGRAM_ENUMERATION("SB2.InterstitialActionDetails", | 125 UMA_HISTOGRAM_ENUMERATION("SB2.InterstitialActionDetails", |
126 decision, | 126 decision, |
127 MAX_DETAILED_ACTION); | 127 MAX_DETAILED_ACTION); |
128 } | 128 } |
129 | 129 |
130 // Constants for the M37 Finch trial. | |
131 const char kV3StudyName[] = "MalwareInterstitialVersion"; | |
132 const char kCondV2[] = "V2"; | |
133 const char kCondV3[] = "V3"; | |
134 const char kCondV3Advice[] = "V3Advice"; | |
135 const char kCondV3Social[] = "V3Social"; | |
136 const char kCondV3NotRecommend[] = "V3NotRecommend"; | |
137 const char kCondV3History[] = "V3History"; | |
138 | |
139 // Default to V3 unless a flag or field trial says otherwise. Flags override | |
140 // field trial settings. | |
141 const char* GetTrialCondition() { | |
142 if (CommandLine::ForCurrentProcess()->HasSwitch( | |
143 switches::kMalwareInterstitialV2)) { | |
144 return kCondV2; | |
145 } | |
146 if (CommandLine::ForCurrentProcess()->HasSwitch( | |
147 switches::kMalwareInterstitialV3)) { | |
148 return kCondV3; | |
149 } | |
150 if (CommandLine::ForCurrentProcess()->HasSwitch( | |
151 switches::kMalwareInterstitialV3Advice)) { | |
152 return kCondV3Advice; | |
153 } | |
154 if (CommandLine::ForCurrentProcess()->HasSwitch( | |
155 switches::kMalwareInterstitialV3Social)) { | |
156 return kCondV3Social; | |
157 } | |
158 if (CommandLine::ForCurrentProcess()->HasSwitch( | |
159 switches::kMalwareInterstitialV3NotRecommend)) { | |
160 return kCondV3NotRecommend; | |
161 } | |
162 if (CommandLine::ForCurrentProcess()->HasSwitch( | |
163 switches::kMalwareInterstitialV3History)) { | |
164 return kCondV3History; | |
165 } | |
166 | |
167 // Make sure that the return value is one of the expected types instead of | |
168 // directly returning base::FieldTrialList::FindFullName. | |
169 if (base::FieldTrialList::FindFullName(kV3StudyName) == kCondV2) | |
170 return kCondV2; | |
171 if (base::FieldTrialList::FindFullName(kV3StudyName) == kCondV3) | |
172 return kCondV3; | |
173 if (base::FieldTrialList::FindFullName(kV3StudyName) == kCondV3Advice) | |
174 return kCondV3Advice; | |
175 if (base::FieldTrialList::FindFullName(kV3StudyName) == kCondV3Social) | |
176 return kCondV3Social; | |
177 if (base::FieldTrialList::FindFullName(kV3StudyName) == kCondV3NotRecommend) | |
178 return kCondV3NotRecommend; | |
179 if (base::FieldTrialList::FindFullName(kV3StudyName) == kCondV3History) | |
180 return kCondV3History; | |
181 return kCondV3; | |
182 } | |
183 | |
184 } // namespace | 130 } // namespace |
185 | 131 |
186 // static | 132 // static |
187 SafeBrowsingBlockingPageFactory* SafeBrowsingBlockingPage::factory_ = NULL; | 133 SafeBrowsingBlockingPageFactory* SafeBrowsingBlockingPage::factory_ = NULL; |
188 | 134 |
189 // The default SafeBrowsingBlockingPageFactory. Global, made a singleton so we | 135 // The default SafeBrowsingBlockingPageFactory. Global, made a singleton so we |
190 // don't leak it. | 136 // don't leak it. |
191 class SafeBrowsingBlockingPageFactoryImpl | 137 class SafeBrowsingBlockingPageFactoryImpl |
192 : public SafeBrowsingBlockingPageFactory { | 138 : public SafeBrowsingBlockingPageFactory { |
193 public: | 139 public: |
194 virtual SafeBrowsingBlockingPage* CreateSafeBrowsingPage( | 140 virtual SafeBrowsingBlockingPage* CreateSafeBrowsingPage( |
195 SafeBrowsingUIManager* ui_manager, | 141 SafeBrowsingUIManager* ui_manager, |
196 WebContents* web_contents, | 142 WebContents* web_contents, |
197 const SafeBrowsingBlockingPage::UnsafeResourceList& unsafe_resources) | 143 const SafeBrowsingBlockingPage::UnsafeResourceList& unsafe_resources) |
198 OVERRIDE { | 144 OVERRIDE { |
199 // Only use the V2 page if the interstitial is for a single malware or | |
200 // phishing resource. | |
201 if ((GetTrialCondition() == kCondV2) && (unsafe_resources.size() == 1) && | |
202 (unsafe_resources[0].threat_type == SB_THREAT_TYPE_URL_MALWARE || | |
203 unsafe_resources[0].threat_type == | |
204 SB_THREAT_TYPE_CLIENT_SIDE_MALWARE_URL || | |
205 unsafe_resources[0].threat_type == SB_THREAT_TYPE_URL_PHISHING || | |
206 unsafe_resources[0].threat_type == | |
207 SB_THREAT_TYPE_CLIENT_SIDE_PHISHING_URL)) { | |
208 return new SafeBrowsingBlockingPageV2(ui_manager, web_contents, | |
209 unsafe_resources); | |
210 } | |
211 return new SafeBrowsingBlockingPageV3(ui_manager, web_contents, | 145 return new SafeBrowsingBlockingPageV3(ui_manager, web_contents, |
212 unsafe_resources); | 146 unsafe_resources); |
213 } | 147 } |
214 | 148 |
215 private: | 149 private: |
216 friend struct base::DefaultLazyInstanceTraits< | 150 friend struct base::DefaultLazyInstanceTraits< |
217 SafeBrowsingBlockingPageFactoryImpl>; | 151 SafeBrowsingBlockingPageFactoryImpl>; |
218 | 152 |
219 SafeBrowsingBlockingPageFactoryImpl() { } | 153 SafeBrowsingBlockingPageFactoryImpl() { } |
220 | 154 |
(...skipping 649 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
870 // load, since they happen after the page is finished loading. | 804 // load, since they happen after the page is finished loading. |
871 if (unsafe_resources[0].threat_type == | 805 if (unsafe_resources[0].threat_type == |
872 SB_THREAT_TYPE_CLIENT_SIDE_PHISHING_URL) { | 806 SB_THREAT_TYPE_CLIENT_SIDE_PHISHING_URL) { |
873 return false; | 807 return false; |
874 } | 808 } |
875 | 809 |
876 // Otherwise, check the threat type. | 810 // Otherwise, check the threat type. |
877 return unsafe_resources.size() == 1 && !unsafe_resources[0].is_subresource; | 811 return unsafe_resources.size() == 1 && !unsafe_resources[0].is_subresource; |
878 } | 812 } |
879 | 813 |
880 SafeBrowsingBlockingPageV2::SafeBrowsingBlockingPageV2( | |
881 SafeBrowsingUIManager* ui_manager, | |
882 WebContents* web_contents, | |
883 const UnsafeResourceList& unsafe_resources) | |
884 : SafeBrowsingBlockingPage(ui_manager, web_contents, unsafe_resources) { | |
885 } | |
886 | |
887 std::string SafeBrowsingBlockingPageV2::GetHTMLContents() { | |
888 // Load the HTML page and create the template components. | |
889 base::DictionaryValue strings; | |
890 ResourceBundle& rb = ResourceBundle::GetSharedInstance(); | |
891 std::string html; | |
892 | |
893 if (unsafe_resources_.empty()) { | |
894 NOTREACHED(); | |
895 return std::string(); | |
896 } | |
897 | |
898 if (unsafe_resources_.size() > 1) { | |
899 NOTREACHED(); | |
900 } else { | |
901 SBThreatType threat_type = unsafe_resources_[0].threat_type; | |
902 if (threat_type == SB_THREAT_TYPE_URL_MALWARE || | |
903 threat_type == SB_THREAT_TYPE_CLIENT_SIDE_MALWARE_URL) { | |
904 PopulateMalwareStringDictionary(&strings); | |
905 } else { // Phishing. | |
906 DCHECK(threat_type == SB_THREAT_TYPE_URL_PHISHING || | |
907 threat_type == SB_THREAT_TYPE_CLIENT_SIDE_PHISHING_URL); | |
908 PopulatePhishingStringDictionary(&strings); | |
909 } | |
910 html = rb.GetRawDataResource(IDR_SAFE_BROWSING_MALWARE_BLOCK_V2). | |
911 as_string(); | |
912 } | |
913 interstitial_show_time_ = base::TimeTicks::Now(); | |
914 return webui::GetTemplatesHtml(html, &strings, "template-root"); | |
915 } | |
916 | |
917 void SafeBrowsingBlockingPageV2::PopulateStringDictionary( | |
918 base::DictionaryValue* strings, | |
919 const base::string16& title, | |
920 const base::string16& headline, | |
921 const base::string16& description1, | |
922 const base::string16& description2, | |
923 const base::string16& description3) { | |
924 strings->SetString("title", title); | |
925 strings->SetString("headLine", headline); | |
926 strings->SetString("description1", description1); | |
927 strings->SetString("description2", description2); | |
928 strings->SetString("description3", description3); | |
929 strings->SetBoolean("proceedDisabled", | |
930 IsPrefEnabled(prefs::kSafeBrowsingProceedAnywayDisabled)); | |
931 strings->SetBoolean("isMainFrame", is_main_frame_load_blocked_); | |
932 strings->SetBoolean("isPhishing", interstitial_type_ == TYPE_PHISHING); | |
933 | |
934 strings->SetString("back_button", | |
935 l10n_util::GetStringUTF16(IDS_SAFE_BROWSING_MALWARE_BACK_BUTTON)); | |
936 strings->SetString("seeMore", l10n_util::GetStringUTF16( | |
937 IDS_SAFE_BROWSING_MALWARE_V2_SEE_MORE)); | |
938 strings->SetString("proceed", | |
939 l10n_util::GetStringUTF16(IDS_SAFE_BROWSING_MALWARE_V2_PROCEED_LINK)); | |
940 webui::SetFontAndTextDirection(strings); | |
941 } | |
942 | |
943 void SafeBrowsingBlockingPageV2::PopulateMultipleThreatStringDictionary( | |
944 base::DictionaryValue* strings) { | |
945 NOTREACHED(); | |
946 } | |
947 | |
948 void SafeBrowsingBlockingPageV2::PopulateMalwareStringDictionary( | |
949 base::DictionaryValue* strings) { | |
950 // Check to see if we're blocking the main page, or a sub-resource on the | |
951 // main page. | |
952 base::string16 headline, description1, description2, description3; | |
953 | |
954 | |
955 description3 = l10n_util::GetStringUTF16( | |
956 IDS_SAFE_BROWSING_MALWARE_V2_DESCRIPTION3); | |
957 if (is_main_frame_load_blocked_) { | |
958 headline = l10n_util::GetStringUTF16(IDS_SAFE_BROWSING_MALWARE_V2_HEADLINE); | |
959 description1 = l10n_util::GetStringFUTF16( | |
960 IDS_SAFE_BROWSING_MALWARE_V2_DESCRIPTION1, | |
961 l10n_util::GetStringUTF16(IDS_PRODUCT_NAME), | |
962 base::UTF8ToUTF16(url_.host())); | |
963 description2 = l10n_util::GetStringUTF16( | |
964 IDS_SAFE_BROWSING_MALWARE_V2_DESCRIPTION2); | |
965 strings->SetString("details", l10n_util::GetStringUTF16( | |
966 IDS_SAFE_BROWSING_MALWARE_V2_DETAILS)); | |
967 } else { | |
968 headline = l10n_util::GetStringUTF16( | |
969 IDS_SAFE_BROWSING_MALWARE_V2_HEADLINE_SUBRESOURCE); | |
970 description1 = l10n_util::GetStringFUTF16( | |
971 IDS_SAFE_BROWSING_MALWARE_V2_DESCRIPTION1_SUBRESOURCE, | |
972 l10n_util::GetStringUTF16(IDS_PRODUCT_NAME), | |
973 base::UTF8ToUTF16(web_contents_->GetURL().host())); | |
974 description2 = l10n_util::GetStringFUTF16( | |
975 IDS_SAFE_BROWSING_MALWARE_V2_DESCRIPTION2_SUBRESOURCE, | |
976 base::UTF8ToUTF16(url_.host())); | |
977 strings->SetString("details", l10n_util::GetStringFUTF16( | |
978 IDS_SAFE_BROWSING_MALWARE_V2_DETAILS_SUBRESOURCE, | |
979 base::UTF8ToUTF16(url_.host()))); | |
980 } | |
981 | |
982 PopulateStringDictionary( | |
983 strings, | |
984 l10n_util::GetStringUTF16(IDS_SAFE_BROWSING_MALWARE_V2_TITLE), | |
985 headline, | |
986 description1, | |
987 description2, | |
988 description3); | |
989 | |
990 if (!CanShowMalwareDetailsOption()) { | |
991 strings->SetBoolean(kDisplayCheckBox, false); | |
992 strings->SetString("confirm_text", std::string()); | |
993 strings->SetString(kBoxChecked, std::string()); | |
994 } else { | |
995 // Show the checkbox for sending malware details. | |
996 strings->SetBoolean(kDisplayCheckBox, true); | |
997 | |
998 std::string privacy_link = base::StringPrintf( | |
999 kPrivacyLinkHtml, | |
1000 l10n_util::GetStringUTF8( | |
1001 IDS_SAFE_BROWSING_PRIVACY_POLICY_PAGE_V2).c_str()); | |
1002 | |
1003 strings->SetString("confirm_text", | |
1004 l10n_util::GetStringFUTF16( | |
1005 IDS_SAFE_BROWSING_MALWARE_V2_REPORTING_AGREE, | |
1006 base::UTF8ToUTF16(privacy_link))); | |
1007 Profile* profile = Profile::FromBrowserContext( | |
1008 web_contents_->GetBrowserContext()); | |
1009 if (profile->GetPrefs()->HasPrefPath( | |
1010 prefs::kSafeBrowsingExtendedReportingEnabled)) { | |
1011 reporting_checkbox_checked_ = | |
1012 IsPrefEnabled(prefs::kSafeBrowsingExtendedReportingEnabled); | |
1013 } else if (IsPrefEnabled(prefs::kSafeBrowsingReportingEnabled) || | |
1014 IsPrefEnabled(prefs::kSafeBrowsingDownloadFeedbackEnabled)) { | |
1015 reporting_checkbox_checked_ = true; | |
1016 } | |
1017 strings->SetString(kBoxChecked, | |
1018 reporting_checkbox_checked_ ? "yes" : std::string()); | |
1019 } | |
1020 | |
1021 strings->SetString("report_error", base::string16()); | |
1022 strings->SetString("learnMore", | |
1023 l10n_util::GetStringUTF16(IDS_SAFE_BROWSING_MALWARE_V2_LEARN_MORE)); | |
1024 } | |
1025 | |
1026 void SafeBrowsingBlockingPageV2::PopulatePhishingStringDictionary( | |
1027 base::DictionaryValue* strings) { | |
1028 PopulateStringDictionary( | |
1029 strings, | |
1030 l10n_util::GetStringUTF16(IDS_SAFE_BROWSING_PHISHING_V2_TITLE), | |
1031 l10n_util::GetStringUTF16(IDS_SAFE_BROWSING_PHISHING_V2_HEADLINE), | |
1032 l10n_util::GetStringFUTF16(IDS_SAFE_BROWSING_PHISHING_V2_DESCRIPTION1, | |
1033 l10n_util::GetStringUTF16(IDS_PRODUCT_NAME), | |
1034 base::UTF8ToUTF16(url_.host())), | |
1035 base::string16(), | |
1036 l10n_util::GetStringUTF16(IDS_SAFE_BROWSING_PHISHING_V2_DESCRIPTION2)); | |
1037 | |
1038 strings->SetString("details", std::string()); | |
1039 strings->SetString("confirm_text", std::string()); | |
1040 strings->SetString(kBoxChecked, std::string()); | |
1041 strings->SetString( | |
1042 "report_error", | |
1043 l10n_util::GetStringUTF16(IDS_SAFE_BROWSING_PHISHING_V2_REPORT_ERROR)); | |
1044 strings->SetBoolean(kDisplayCheckBox, false); | |
1045 strings->SetString("learnMore", | |
1046 l10n_util::GetStringUTF16(IDS_SAFE_BROWSING_MALWARE_V2_LEARN_MORE)); | |
1047 } | |
1048 | |
1049 SafeBrowsingBlockingPageV3::SafeBrowsingBlockingPageV3( | 814 SafeBrowsingBlockingPageV3::SafeBrowsingBlockingPageV3( |
1050 SafeBrowsingUIManager* ui_manager, | 815 SafeBrowsingUIManager* ui_manager, |
1051 WebContents* web_contents, | 816 WebContents* web_contents, |
1052 const UnsafeResourceList& unsafe_resources) | 817 const UnsafeResourceList& unsafe_resources) |
1053 : SafeBrowsingBlockingPage(ui_manager, web_contents, unsafe_resources), | 818 : SafeBrowsingBlockingPage(ui_manager, web_contents, unsafe_resources) { |
1054 trial_condition_(GetTrialCondition()) { | |
1055 } | 819 } |
1056 | 820 |
1057 std::string SafeBrowsingBlockingPageV3::GetHTMLContents() { | 821 std::string SafeBrowsingBlockingPageV3::GetHTMLContents() { |
1058 DCHECK(!unsafe_resources_.empty()); | 822 DCHECK(!unsafe_resources_.empty()); |
1059 | 823 |
1060 // Fill in the shared values. | 824 // Fill in the shared values. |
1061 base::DictionaryValue load_time_data; | 825 base::DictionaryValue load_time_data; |
1062 webui::SetFontAndTextDirection(&load_time_data); | 826 webui::SetFontAndTextDirection(&load_time_data); |
1063 load_time_data.SetBoolean("ssl", false); | 827 load_time_data.SetBoolean("ssl", false); |
1064 load_time_data.SetString( | 828 load_time_data.SetString( |
(...skipping 20 matching lines...) Expand all Loading... |
1085 | 849 |
1086 base::StringPiece html( | 850 base::StringPiece html( |
1087 ResourceBundle::GetSharedInstance().GetRawDataResource( | 851 ResourceBundle::GetSharedInstance().GetRawDataResource( |
1088 IRD_SSL_INTERSTITIAL_V2_HTML)); | 852 IRD_SSL_INTERSTITIAL_V2_HTML)); |
1089 webui::UseVersion2 version; | 853 webui::UseVersion2 version; |
1090 return webui::GetI18nTemplateHtml(html, &load_time_data); | 854 return webui::GetI18nTemplateHtml(html, &load_time_data); |
1091 } | 855 } |
1092 | 856 |
1093 void SafeBrowsingBlockingPageV3::PopulateMalwareLoadTimeData( | 857 void SafeBrowsingBlockingPageV3::PopulateMalwareLoadTimeData( |
1094 base::DictionaryValue* load_time_data) { | 858 base::DictionaryValue* load_time_data) { |
1095 load_time_data->SetString("trialCondition", trial_condition_); | |
1096 load_time_data->SetBoolean("phishing", false); | 859 load_time_data->SetBoolean("phishing", false); |
1097 load_time_data->SetString( | 860 load_time_data->SetString( |
1098 "heading", l10n_util::GetStringUTF16(IDS_MALWARE_V3_HEADING)); | 861 "heading", l10n_util::GetStringUTF16(IDS_MALWARE_V3_HEADING)); |
1099 load_time_data->SetString( | 862 load_time_data->SetString( |
1100 "primaryParagraph", | 863 "primaryParagraph", |
1101 l10n_util::GetStringFUTF16( | 864 l10n_util::GetStringFUTF16( |
1102 IDS_MALWARE_V3_PRIMARY_PARAGRAPH, | 865 IDS_MALWARE_V3_PRIMARY_PARAGRAPH, |
1103 base::UTF8ToUTF16(url_.host()))); | 866 base::UTF8ToUTF16(url_.host()))); |
1104 if (trial_condition_ == kCondV3History) { | 867 load_time_data->SetString( |
1105 load_time_data->SetString( | 868 "explanationParagraph", |
1106 "explanationParagraph", | 869 is_main_frame_load_blocked_ ? |
1107 is_main_frame_load_blocked_ ? | 870 l10n_util::GetStringFUTF16( |
1108 l10n_util::GetStringFUTF16( | 871 IDS_MALWARE_V3_EXPLANATION_PARAGRAPH, |
1109 IDS_MALWARE_V3_EXPLANATION_PARAGRAPH_HISTORY, | 872 base::UTF8ToUTF16(url_.host())) : |
1110 base::UTF8ToUTF16(url_.host())) : | 873 l10n_util::GetStringFUTF16( |
1111 l10n_util::GetStringFUTF16( | 874 IDS_MALWARE_V3_EXPLANATION_PARAGRAPH_SUBRESOURCE, |
1112 IDS_MALWARE_V3_EXPLANATION_PARAGRAPH_SUBRESOURCE_HISTORY, | 875 base::UTF8ToUTF16(web_contents_->GetURL().host()), |
1113 base::UTF8ToUTF16(web_contents_->GetURL().host()), | 876 base::UTF8ToUTF16(url_.host()))); |
1114 base::UTF8ToUTF16(url_.host()))); | 877 load_time_data->SetString( |
1115 } else if (trial_condition_ == kCondV3Advice) { | 878 "finalParagraph", |
1116 load_time_data->SetString( | 879 l10n_util::GetStringUTF16(IDS_MALWARE_V3_PROCEED_PARAGRAPH)); |
1117 "explanationParagraph", | |
1118 is_main_frame_load_blocked_ ? | |
1119 l10n_util::GetStringFUTF16( | |
1120 IDS_MALWARE_V3_EXPLANATION_PARAGRAPH_ADVICE, | |
1121 base::UTF8ToUTF16(url_.host())) : | |
1122 l10n_util::GetStringFUTF16( | |
1123 IDS_MALWARE_V3_EXPLANATION_PARAGRAPH_SUBRESOURCE_ADVICE, | |
1124 base::UTF8ToUTF16(web_contents_->GetURL().host()), | |
1125 base::UTF8ToUTF16(url_.host()))); | |
1126 load_time_data->SetString( | |
1127 "adviceHeading", | |
1128 l10n_util::GetStringUTF16(IDS_MALWARE_V3_ADVICE_HEADING)); | |
1129 } else { | |
1130 load_time_data->SetString( | |
1131 "explanationParagraph", | |
1132 is_main_frame_load_blocked_ ? | |
1133 l10n_util::GetStringFUTF16( | |
1134 IDS_MALWARE_V3_EXPLANATION_PARAGRAPH, | |
1135 base::UTF8ToUTF16(url_.host())) : | |
1136 l10n_util::GetStringFUTF16( | |
1137 IDS_MALWARE_V3_EXPLANATION_PARAGRAPH_SUBRESOURCE, | |
1138 base::UTF8ToUTF16(web_contents_->GetURL().host()), | |
1139 base::UTF8ToUTF16(url_.host()))); | |
1140 } | |
1141 if (trial_condition_ == kCondV3Social) { | |
1142 load_time_data->SetString( | |
1143 "finalParagraph", | |
1144 l10n_util::GetStringUTF16(IDS_MALWARE_V3_PROCEED_PARAGRAPH_SOCIAL)); | |
1145 } else if (trial_condition_ == kCondV3NotRecommend) { | |
1146 load_time_data->SetString( | |
1147 "finalParagraph", | |
1148 l10n_util::GetStringUTF16( | |
1149 IDS_MALWARE_V3_PROCEED_PARAGRAPH_NOT_RECOMMEND)); | |
1150 } else { | |
1151 load_time_data->SetString( | |
1152 "finalParagraph", | |
1153 l10n_util::GetStringUTF16(IDS_MALWARE_V3_PROCEED_PARAGRAPH)); | |
1154 } | |
1155 | 880 |
1156 load_time_data->SetBoolean(kDisplayCheckBox, CanShowMalwareDetailsOption()); | 881 load_time_data->SetBoolean(kDisplayCheckBox, CanShowMalwareDetailsOption()); |
1157 if (CanShowMalwareDetailsOption()) { | 882 if (CanShowMalwareDetailsOption()) { |
1158 std::string privacy_link = base::StringPrintf( | 883 std::string privacy_link = base::StringPrintf( |
1159 kPrivacyLinkHtml, | 884 kPrivacyLinkHtml, |
1160 l10n_util::GetStringUTF8( | 885 l10n_util::GetStringUTF8( |
1161 IDS_SAFE_BROWSING_PRIVACY_POLICY_PAGE_V2).c_str()); | 886 IDS_SAFE_BROWSING_PRIVACY_POLICY_PAGE).c_str()); |
1162 load_time_data->SetString( | 887 load_time_data->SetString( |
1163 "optInLink", | 888 "optInLink", |
1164 l10n_util::GetStringFUTF16(IDS_SAFE_BROWSING_MALWARE_V2_REPORTING_AGREE, | 889 l10n_util::GetStringFUTF16(IDS_SAFE_BROWSING_MALWARE_REPORTING_AGREE, |
1165 base::UTF8ToUTF16(privacy_link))); | 890 base::UTF8ToUTF16(privacy_link))); |
1166 Profile* profile = Profile::FromBrowserContext( | 891 Profile* profile = Profile::FromBrowserContext( |
1167 web_contents_->GetBrowserContext()); | 892 web_contents_->GetBrowserContext()); |
1168 if (profile->GetPrefs()->HasPrefPath( | 893 if (profile->GetPrefs()->HasPrefPath( |
1169 prefs::kSafeBrowsingExtendedReportingEnabled)) { | 894 prefs::kSafeBrowsingExtendedReportingEnabled)) { |
1170 reporting_checkbox_checked_ = | 895 reporting_checkbox_checked_ = |
1171 IsPrefEnabled(prefs::kSafeBrowsingExtendedReportingEnabled); | 896 IsPrefEnabled(prefs::kSafeBrowsingExtendedReportingEnabled); |
1172 } else if (IsPrefEnabled(prefs::kSafeBrowsingReportingEnabled) || | 897 } else if (IsPrefEnabled(prefs::kSafeBrowsingReportingEnabled) || |
1173 IsPrefEnabled(prefs::kSafeBrowsingDownloadFeedbackEnabled)) { | 898 IsPrefEnabled(prefs::kSafeBrowsingDownloadFeedbackEnabled)) { |
1174 reporting_checkbox_checked_ = true; | 899 reporting_checkbox_checked_ = true; |
1175 } | 900 } |
1176 load_time_data->SetBoolean( | 901 load_time_data->SetBoolean( |
1177 kBoxChecked, reporting_checkbox_checked_); | 902 kBoxChecked, reporting_checkbox_checked_); |
1178 } | 903 } |
1179 } | 904 } |
1180 | 905 |
1181 void SafeBrowsingBlockingPageV3::PopulatePhishingLoadTimeData( | 906 void SafeBrowsingBlockingPageV3::PopulatePhishingLoadTimeData( |
1182 base::DictionaryValue* load_time_data) { | 907 base::DictionaryValue* load_time_data) { |
1183 load_time_data->SetString("trialCondition", std::string()); | |
1184 load_time_data->SetBoolean("phishing", true); | 908 load_time_data->SetBoolean("phishing", true); |
1185 load_time_data->SetString( | 909 load_time_data->SetString( |
1186 "heading", | 910 "heading", |
1187 l10n_util::GetStringUTF16(IDS_PHISHING_V3_HEADING)); | 911 l10n_util::GetStringUTF16(IDS_PHISHING_V3_HEADING)); |
1188 load_time_data->SetString( | 912 load_time_data->SetString( |
1189 "primaryParagraph", | 913 "primaryParagraph", |
1190 l10n_util::GetStringFUTF16( | 914 l10n_util::GetStringFUTF16( |
1191 IDS_PHISHING_V3_PRIMARY_PARAGRAPH, | 915 IDS_PHISHING_V3_PRIMARY_PARAGRAPH, |
1192 base::UTF8ToUTF16(url_.host()))); | 916 base::UTF8ToUTF16(url_.host()))); |
1193 load_time_data->SetString( | 917 load_time_data->SetString( |
1194 "explanationParagraph", | 918 "explanationParagraph", |
1195 l10n_util::GetStringFUTF16(IDS_PHISHING_V3_EXPLANATION_PARAGRAPH, | 919 l10n_util::GetStringFUTF16(IDS_PHISHING_V3_EXPLANATION_PARAGRAPH, |
1196 base::UTF8ToUTF16(url_.host()))); | 920 base::UTF8ToUTF16(url_.host()))); |
1197 load_time_data->SetString( | 921 load_time_data->SetString( |
1198 "finalParagraph", | 922 "finalParagraph", |
1199 l10n_util::GetStringUTF16(IDS_PHISHING_V3_PROCEED_PARAGRAPH)); | 923 l10n_util::GetStringUTF16(IDS_PHISHING_V3_PROCEED_PARAGRAPH)); |
1200 } | 924 } |
OLD | NEW |