Index: chrome/browser/safe_browsing/safe_browsing_blocking_page.cc |
diff --git a/chrome/browser/safe_browsing/safe_browsing_blocking_page.cc b/chrome/browser/safe_browsing/safe_browsing_blocking_page.cc |
index 67f2cc4dd0b3e7f6a96a07e1f5f7ca75a267bf5f..c64e7edeb217415e276ea91230262cfc3fe83c29 100644 |
--- a/chrome/browser/safe_browsing/safe_browsing_blocking_page.cc |
+++ b/chrome/browser/safe_browsing/safe_browsing_blocking_page.cc |
@@ -69,7 +69,7 @@ const char kLearnMorePhishingUrlV2[] = |
"https://www.google.com/transparencyreport/safebrowsing/"; |
const char kPrivacyLinkHtml[] = |
- "<a id=\"privacy-link\" href=\"\" onclick=\"sendCommand('showPrivacy'); " |
+ "<a id=\"privacy-link\" href=\"\" onclick=\"sendCommand(10); " |
meacer
2015/03/06 18:29:22
How about using |sendCommand(%d)| here and filling
felt
2015/03/07 04:02:39
Done.
|
"return false;\" onmousedown=\"return false;\">%s</a>"; |
// After a malware interstitial where the user opted-in to the report |
@@ -78,16 +78,6 @@ const char kPrivacyLinkHtml[] = |
// milliseconds). |
const int64 kMalwareDetailsProceedDelayMilliSeconds = 3000; |
-// The commands returned by the page when the user performs an action. |
-const char kDoReportCommand[] = "doReport"; |
-const char kDontReportCommand[] = "dontReport"; |
-const char kExpandedSeeMoreCommand[] = "expandedSeeMore"; |
-const char kLearnMoreCommand[] = "learnMore2"; |
-const char kProceedCommand[] = "proceed"; |
-const char kShowDiagnosticCommand[] = "showDiagnostic"; |
-const char kShowPrivacyCommand[] = "showPrivacy"; |
-const char kTakeMeBackCommand[] = "takeMeBack"; |
- |
// Other constants used to communicate with the JavaScript. |
const char kBoxChecked[] = "boxchecked"; |
const char kDisplayCheckBox[] = "displaycheckbox"; |
@@ -216,30 +206,22 @@ bool SafeBrowsingBlockingPage::CanShowMalwareDetailsOption() { |
SafeBrowsingBlockingPage::~SafeBrowsingBlockingPage() { |
} |
-void SafeBrowsingBlockingPage::CommandReceived(const std::string& cmd) { |
- std::string command(cmd); // Make a local copy so we can modify it. |
- // The Jasonified response has quotes, remove them. |
- if (command.length() > 1 && command[0] == '"') { |
- command = command.substr(1, command.length() - 2); |
- } |
- |
- if (command == "pageLoadComplete") { |
- // content::WaitForRenderFrameReady sends this message when the page |
- // load completes. Ignore it. |
- return; |
- } |
+void SafeBrowsingBlockingPage::CommandReceived(const std::string& page_cmd) { |
+ int command = 0; |
+ bool retval = base::StringToInt(page_cmd, &command); |
+ DCHECK(retval); |
- if (command == kDoReportCommand) { |
+ if (command == CMD_DO_REPORT) { |
SetReportingPreference(true); |
return; |
} |
- if (command == kDontReportCommand) { |
+ if (command == CMD_DONT_REPORT) { |
SetReportingPreference(false); |
return; |
} |
- if (command == kLearnMoreCommand) { |
+ if (command == CMD_OPEN_HELP_CENTER) { |
// User pressed "Learn more". |
metrics_helper_->RecordUserInteraction( |
SecurityInterstitialMetricsHelper::SHOW_LEARN_MORE); |
@@ -257,7 +239,7 @@ void SafeBrowsingBlockingPage::CommandReceived(const std::string& cmd) { |
return; |
} |
- if (command == kShowPrivacyCommand) { |
+ if (command == CMD_OPEN_REPORTING_PRIVACY) { |
// User pressed "Safe Browsing privacy policy". |
metrics_helper_->RecordUserInteraction( |
SecurityInterstitialMetricsHelper::SHOW_PRIVACY_POLICY); |
@@ -275,7 +257,7 @@ void SafeBrowsingBlockingPage::CommandReceived(const std::string& cmd) { |
} |
bool proceed_blocked = false; |
- if (command == kProceedCommand) { |
+ if (command == CMD_PROCEED) { |
if (IsPrefEnabled(prefs::kSafeBrowsingProceedAnywayDisabled)) { |
proceed_blocked = true; |
} else { |
@@ -287,7 +269,7 @@ void SafeBrowsingBlockingPage::CommandReceived(const std::string& cmd) { |
} |
} |
- if (command == kTakeMeBackCommand || proceed_blocked) { |
+ if (command == CMD_DONT_PROCEED || proceed_blocked) { |
// Don't record the user action here because there are other ways of |
// triggering DontProceed, like clicking the back button. |
if (is_main_frame_load_blocked_) { |
@@ -312,29 +294,10 @@ void SafeBrowsingBlockingPage::CommandReceived(const std::string& cmd) { |
return; |
} |
- // The "report error" and "show diagnostic" commands can have a number |
- // appended to them, which is the index of the element they apply to. |
+ // TODO(felt): element_index will always be 0. See crbug.com/464732 |
size_t element_index = 0; |
- size_t colon_index = command.find(':'); |
- if (colon_index != std::string::npos) { |
- DCHECK(colon_index < command.size() - 1); |
- int result_int = 0; |
- bool result = base::StringToInt(base::StringPiece(command.begin() + |
- colon_index + 1, |
- command.end()), |
- &result_int); |
- command = command.substr(0, colon_index); |
- if (result) |
- element_index = static_cast<size_t>(result_int); |
- } |
- |
- if (element_index >= unsafe_resources_.size()) { |
- NOTREACHED(); |
- return; |
- } |
- |
std::string bad_url_spec = unsafe_resources_[element_index].url.spec(); |
meacer
2015/03/06 18:29:22
While you are at it, could you have a reference to
felt
2015/03/07 04:02:39
Done.
meacer
2015/03/07 05:23:09
Why not |const UnsafeResource& unsafe_resource = .
felt
2015/03/07 05:50:04
Sure. Leaving the int as a separate definition bec
|
- if (command == kShowDiagnosticCommand) { |
+ if (command == CMD_OPEN_DIAGNOSTIC) { |
// We're going to take the user to Google's SafeBrowsing diagnostic page. |
metrics_helper_->RecordUserInteraction( |
SecurityInterstitialMetricsHelper::SHOW_DIAGNOSTIC); |
@@ -357,7 +320,7 @@ void SafeBrowsingBlockingPage::CommandReceived(const std::string& cmd) { |
return; |
} |
- if (command == kExpandedSeeMoreCommand) { |
+ if (command == CMD_SHOW_MORE_SECTION) { |
metrics_helper_->RecordUserInteraction( |
SecurityInterstitialMetricsHelper::SHOW_ADVANCED); |
return; |