summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormad <mad@chromium.org>2016-01-13 10:37:12 -0800
committerCommit bot <commit-bot@chromium.org>2016-01-13 18:38:21 +0000
commit569c918257e6001dd1b2f248a55c3b9cabfbce01 (patch)
tree8456d9e57d7f4bd32fea7ab409e9724256db7f25
parenta9191918994fcda4c8128cde6c1925066df2f08b (diff)
downloadchromium_src-569c918257e6001dd1b2f248a55c3b9cabfbce01.zip
chromium_src-569c918257e6001dd1b2f248a55c3b9cabfbce01.tar.gz
chromium_src-569c918257e6001dd1b2f248a55c3b9cabfbce01.tar.bz2
Don't mark the SRT prompt as closed when it was interacted with.
BUG=537651 Review URL: https://codereview.chromium.org/1579643003 Cr-Commit-Position: refs/heads/master@{#369221}
-rw-r--r--chrome/browser/safe_browsing/srt_global_error_win.cc25
-rw-r--r--chrome/browser/safe_browsing/srt_global_error_win.h4
2 files changed, 15 insertions, 14 deletions
diff --git a/chrome/browser/safe_browsing/srt_global_error_win.cc b/chrome/browser/safe_browsing/srt_global_error_win.cc
index 68cc85c..db6e4bc 100644
--- a/chrome/browser/safe_browsing/srt_global_error_win.cc
+++ b/chrome/browser/safe_browsing/srt_global_error_win.cc
@@ -148,13 +148,13 @@ base::string16 SRTGlobalError::GetBubbleViewCancelButtonLabel() {
}
void SRTGlobalError::OnBubbleViewDidClose(Browser* browser) {
- // This won't happen when user interacted with the bubble since DestroySelf is
- // called in those cases and will prevent the base class from calling virtual
- // methods. This DCHECK makes sure that behavior won't change.
- DCHECK(!interacted_);
- RecordSRTPromptHistogram(SRT_PROMPT_CLOSED);
- g_browser_process->local_state()->SetBoolean(prefs::kSwReporterPendingPrompt,
- true);
+ if (!interacted_) {
+ // If user didn't interact with the bubble, it means they used the generic
+ // close bubble button.
+ RecordSRTPromptHistogram(SRT_PROMPT_CLOSED);
+ g_browser_process->local_state()->SetBoolean(
+ prefs::kSwReporterPendingPrompt, true);
+ }
}
void SRTGlobalError::BubbleViewAcceptButtonPressed(Browser* browser) {
@@ -171,7 +171,7 @@ void SRTGlobalError::BubbleViewCancelButtonPressed(Browser* browser) {
BrowserThread::PostBlockingPoolTask(
FROM_HERE, base::Bind(&DeleteFilesFromBlockingPool, downloaded_path_));
- DestroySelf();
+ OnUserinteractionDone();
}
bool SRTGlobalError::ShouldCloseOnDeactivate() const {
@@ -189,7 +189,7 @@ void SRTGlobalError::MaybeExecuteSRT() {
BrowserThread::PostBlockingPoolTask(
FROM_HERE, base::Bind(&MaybeExecuteSRTFromBlockingPool, downloaded_path_,
base::ThreadTaskRunnerHandle::Get(),
- base::Bind(&SRTGlobalError::DestroySelf,
+ base::Bind(&SRTGlobalError::OnUserinteractionDone,
base::Unretained(this)),
base::Bind(&SRTGlobalError::FallbackToDownloadPage,
base::Unretained(this))));
@@ -208,12 +208,13 @@ void SRTGlobalError::FallbackToDownloadPage() {
BrowserThread::PostBlockingPoolTask(
FROM_HERE, base::Bind(&DeleteFilesFromBlockingPool, downloaded_path_));
- DestroySelf();
+ OnUserinteractionDone();
}
-void SRTGlobalError::DestroySelf() {
- // This should only happen when user interacted with the bubble.
+void SRTGlobalError::OnUserinteractionDone() {
DCHECK(interacted_);
+ // Once the user interacted with the bubble, we can forget about any pending
+ // prompt.
g_browser_process->local_state()->SetBoolean(prefs::kSwReporterPendingPrompt,
false);
delete this;
diff --git a/chrome/browser/safe_browsing/srt_global_error_win.h b/chrome/browser/safe_browsing/srt_global_error_win.h
index 5730f77..b79a226 100644
--- a/chrome/browser/safe_browsing/srt_global_error_win.h
+++ b/chrome/browser/safe_browsing/srt_global_error_win.h
@@ -59,8 +59,8 @@ class SRTGlobalError : public GlobalErrorWithStandardBubble {
// download and execute the SRT.
void FallbackToDownloadPage();
- // Destroys this instance.
- void DestroySelf();
+ // Called when user interaction is done.
+ void OnUserinteractionDone();
// Used to dismiss the GlobalError, then set to NULL.
GlobalErrorService* global_error_service_;