Index: chrome/browser/safe_browsing/chrome_cleaner/reporter_runner_win.cc |
diff --git a/chrome/browser/safe_browsing/chrome_cleaner/reporter_runner_win.cc b/chrome/browser/safe_browsing/chrome_cleaner/reporter_runner_win.cc |
index 5791a03a1ee746bcfb4a2323fcd7249a6c2cc923..28f1385257d93527b2c68dce501d23cae5df4e59 100644 |
--- a/chrome/browser/safe_browsing/chrome_cleaner/reporter_runner_win.cc |
+++ b/chrome/browser/safe_browsing/chrome_cleaner/reporter_runner_win.cc |
@@ -496,6 +496,8 @@ void DisplaySRTPrompt(base::FilePath download_path, |
// re-display it. Improve this. http://crbug.com/460295 |
if (fetch_status == ChromeCleanerFetchStatus::kNotFoundOnServer) { |
RecordSRTPromptHistogram(SRT_PROMPT_DOWNLOAD_UNAVAILABLE); |
+ RecordPromptNotShownWithReasonHistogram( |
+ NO_PROMPT_REASON_CLEANER_DOWNLOAD_FAILED); |
return; |
} |
@@ -504,8 +506,11 @@ void DisplaySRTPrompt(base::FilePath download_path, |
// reporter. We can't use other ways of finding a browser because we don't |
// have a profile. |
Browser* browser = chrome::FindLastActive(); |
- if (!browser) |
+ if (!browser) { |
+ RecordPromptNotShownWithReasonHistogram( |
+ NO_PROMPT_REASON_BROWSER_NOT_AVAILABLE); |
return; |
+ } |
Profile* profile = browser->profile(); |
DCHECK(profile); |
@@ -588,8 +593,10 @@ void ScanAndPrompt(const SwReporterInvocation& reporter_invocation) { |
ChromeCleanerController* cleaner_controller = |
ChromeCleanerController::GetInstance(); |
- if (cleaner_controller->state() != ChromeCleanerController::State::kIdle) |
+ if (cleaner_controller->state() != ChromeCleanerController::State::kIdle) { |
+ RecordPromptNotShownWithReasonHistogram(NO_PROMPT_REASON_NOT_ON_IDLE_STATE); |
return; |
+ } |
cleaner_controller->Scan(reporter_invocation); |
DCHECK_EQ(ChromeCleanerController::State::kScanning, |
@@ -624,6 +631,7 @@ void MaybeFetchSRT(Browser* browser, const base::Version& reporter_version) { |
local_state && local_state->GetBoolean(prefs::kSwReporterPendingPrompt); |
if (!incoming_seed.empty() && incoming_seed == old_seed && !pending_prompt) { |
RecordReporterStepHistogram(SW_REPORTER_ALREADY_PROMPTED); |
+ RecordPromptNotShownWithReasonHistogram(NO_PROMPT_REASON_ALREADY_PROMPTED); |
return; |
} |
@@ -771,6 +779,8 @@ class ReporterRunner : public chrome::BrowserListObserver { |
if (!finished_invocation.BehaviourIsSupported( |
SwReporterInvocation::BEHAVIOUR_TRIGGER_PROMPT)) { |
+ RecordPromptNotShownWithReasonHistogram( |
+ NO_PROMPT_REASON_BEHAVIOUR_NOT_SUPPORTED); |
return; |
} |
@@ -779,12 +789,15 @@ class ReporterRunner : public chrome::BrowserListObserver { |
// Knowing about disabled field trial is more important than reporter not |
// finding anything to remove, so check this case first. |
RecordReporterStepHistogram(SW_REPORTER_NO_PROMPT_FIELD_TRIAL); |
+ RecordPromptNotShownWithReasonHistogram( |
+ NO_PROMPT_REASON_FEATURE_NOT_ENABLED); |
return; |
} |
if (exit_code != chrome_cleaner::kSwReporterPostRebootCleanupNeeded && |
exit_code != chrome_cleaner::kSwReporterCleanupNeeded) { |
RecordReporterStepHistogram(SW_REPORTER_NO_PROMPT_NEEDED); |
+ RecordPromptNotShownWithReasonHistogram(NO_PROMPT_REASON_NOTHING_FOUND); |
return; |
} |