Index: chrome/browser/safe_browsing/safe_browsing_blocking_page.cc |
=================================================================== |
--- chrome/browser/safe_browsing/safe_browsing_blocking_page.cc (revision 70746) |
+++ chrome/browser/safe_browsing/safe_browsing_blocking_page.cc (working copy) |
@@ -15,6 +15,7 @@ |
#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" |
@@ -72,6 +73,10 @@ |
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 const char* const kDisplayCheckBox = "displaycheckbox"; |
+static const char* const kBoxChecked = "boxchecked"; |
// static |
SafeBrowsingBlockingPageFactory* SafeBrowsingBlockingPage::factory_ = NULL; |
@@ -316,6 +321,27 @@ |
strings->SetString("proceed_link", |
l10n_util::GetStringUTF16(IDS_SAFE_BROWSING_MALWARE_PROCEED_LINK)); |
strings->SetString("textdirection", base::i18n::IsRTL() ? "rtl" : "ltr"); |
+ |
+ if (!CanShowMalwareDetailsOption()) { |
+ strings->SetBoolean(kDisplayCheckBox, false); |
+ } else { |
+ // Show the checkbox for sending malware details. |
+ strings->SetBoolean(kDisplayCheckBox, true); |
+ 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(kBoxChecked, "yes"); |
+ } else { |
+ strings->SetString(kBoxChecked, ""); |
+ } |
+ } |
} |
void SafeBrowsingBlockingPage::PopulatePhishingStringDictionary( |
@@ -349,6 +375,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; |
@@ -424,6 +460,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); |
FinishMalwareDetails(); // Send the malware details, if we opted to. |