Chromium Code Reviews| Index: chrome/browser/safe_browsing/safe_browsing_blocking_page.cc |
| =================================================================== |
| --- chrome/browser/safe_browsing/safe_browsing_blocking_page.cc (revision 66339) |
| +++ chrome/browser/safe_browsing/safe_browsing_blocking_page.cc (working copy) |
| @@ -14,17 +14,21 @@ |
| #include "base/string_number_conversions.h" |
| #include "base/utf_string_conversions.h" |
| #include "base/values.h" |
| +#include "chrome/browser/browser_process.h" |
| #include "chrome/browser/browser_thread.h" |
| #include "chrome/browser/dom_operation_notification_details.h" |
| #include "chrome/browser/dom_ui/new_tab_ui.h" |
| #include "chrome/browser/google/google_util.h" |
| #include "chrome/browser/metrics/user_metrics.h" |
| +#include "chrome/browser/prefs/pref_service.h" |
| +#include "chrome/browser/profile.h" |
| #include "chrome/browser/safe_browsing/safe_browsing_service.h" |
| #include "chrome/browser/tab_contents/navigation_controller.h" |
| #include "chrome/browser/tab_contents/navigation_entry.h" |
| #include "chrome/browser/tab_contents/tab_util.h" |
| #include "chrome/browser/tab_contents/tab_contents.h" |
| #include "chrome/common/jstemplate_builder.h" |
| +#include "chrome/common/pref_names.h" |
| #include "chrome/common/url_constants.h" |
| #include "grit/browser_resources.h" |
| #include "grit/generated_resources.h" |
| @@ -67,6 +71,8 @@ |
| static const char* const kLearnMoreCommand = "learnMore"; |
| static const char* const kProceedCommand = "proceed"; |
| static const char* const kTakeMeBackCommand = "takeMeBack"; |
| +static const char* const kDoReportCommand = "doReport"; |
| +static const char* const kDontReportCommand = "dontReport"; |
| // static |
| SafeBrowsingBlockingPageFactory* SafeBrowsingBlockingPage::factory_ = NULL; |
| @@ -111,6 +117,11 @@ |
| } |
| } |
| +bool SafeBrowsingBlockingPage::CanShowMalwareReportOption() { |
| + return (!tab()->profile()->IsOffTheRecord() && |
| + tab()->GetURL().SchemeIs("http")); |
| +} |
| + |
| SafeBrowsingBlockingPage::~SafeBrowsingBlockingPage() { |
| } |
| @@ -283,6 +294,26 @@ |
| strings->SetString("proceed_link", |
| l10n_util::GetStringUTF16(IDS_SAFE_BROWSING_MALWARE_PROCEED_LINK)); |
| strings->SetString("textdirection", base::i18n::IsRTL() ? "rtl" : "ltr"); |
| + |
| + if (!CanShowMalwareReportOption()) { |
| + strings->SetBoolean("displaycheckbox", false); |
| + return; |
| + } |
| + |
| + // show the checkbox about sending malware report |
| + strings->SetBoolean("displaycheckbox", false); |
|
lzheng
2010/11/23 01:14:49
nit: How about using a const char for "displaychec
|
| + strings->SetString("confirm_text", |
| + l10n_util::GetStringUTF16(IDS_SAFE_BROWSING_MALWARE_REPORTING_AGREE)); |
| + |
| + const PrefService::Preference* pref = |
| + tab()->profile()->GetPrefs()->FindPreference( |
| + prefs::kSafeBrowsingReportingEnabled); |
| + bool value; |
| + if (pref && pref->GetValue()->GetAsBoolean(&value) && value) { |
| + strings->SetString("boxchecked", "yes"); |
| + } else { |
| + strings->SetString("boxchecked", ""); |
| + } |
| } |
| void SafeBrowsingBlockingPage::PopulatePhishingStringDictionary( |
| @@ -293,8 +324,7 @@ |
| l10n_util::GetString(IDS_SAFE_BROWSING_PHISHING_HEADLINE), |
| l10n_util::GetStringF(IDS_SAFE_BROWSING_PHISHING_DESCRIPTION1, |
| UTF8ToWide(url().host())), |
| - l10n_util::GetStringF(IDS_SAFE_BROWSING_PHISHING_DESCRIPTION2, |
| - UTF8ToWide(url().host())), |
| + l10n_util::GetString(IDS_SAFE_BROWSING_PHISHING_DESCRIPTION2), |
| L""); |
| strings->SetString("continue_button", |
| @@ -313,6 +343,16 @@ |
| command = command.substr(1, command.length() - 2); |
| } |
| + if (command == kDoReportCommand) { |
| + SetReportingPreference(true); |
| + return; |
| + } |
| + |
| + if (command == kDontReportCommand) { |
| + SetReportingPreference(false); |
| + return; |
| + } |
| + |
| if (command == kLearnMoreCommand) { |
| // User pressed "Learn more". |
| GURL url; |
| @@ -388,6 +428,11 @@ |
| NOTREACHED() << "Unexpected command: " << command; |
| } |
| +void SafeBrowsingBlockingPage::SetReportingPreference(bool report) { |
| + PrefService* pref = tab()->profile()->GetPrefs(); |
| + pref->SetBoolean(prefs::kSafeBrowsingReportingEnabled, report); |
| +} |
| + |
| void SafeBrowsingBlockingPage::Proceed() { |
| RecordUserAction(PROCEED); |