Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1148)

Unified Diff: chrome/browser/safe_browsing/chrome_cleaner/chrome_cleaner_controller_win.cc

Issue 2973873002: Primary histograms for InBrowserCleanerUI experiment (Closed)
Patch Set: Histograms and enums Created 3 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/safe_browsing/chrome_cleaner/chrome_cleaner_controller_win.cc
diff --git a/chrome/browser/safe_browsing/chrome_cleaner/chrome_cleaner_controller_win.cc b/chrome/browser/safe_browsing/chrome_cleaner/chrome_cleaner_controller_win.cc
index 0ea7937d7e838017721cd74ace026eed07c8420c..2c3221197d2bacab3e7a1c973808f99d717decf1 100644
--- a/chrome/browser/safe_browsing/chrome_cleaner/chrome_cleaner_controller_win.cc
+++ b/chrome/browser/safe_browsing/chrome_cleaner/chrome_cleaner_controller_win.cc
@@ -15,6 +15,7 @@
#include "base/location.h"
#include "base/logging.h"
#include "base/memory/ptr_util.h"
+#include "base/metrics/histogram_macros.h"
#include "base/task_scheduler/post_task.h"
#include "base/task_scheduler/task_traits.h"
#include "base/threading/thread_restrictions.h"
@@ -27,6 +28,7 @@
#include "chrome/browser/safe_browsing/chrome_cleaner/chrome_cleaner_runner_win.h"
#include "chrome/browser/safe_browsing/chrome_cleaner/settings_resetter_win.h"
#include "chrome/browser/safe_browsing/chrome_cleaner/srt_client_info_win.h"
+#include "chrome/browser/safe_browsing/chrome_cleaner/srt_field_trial_win.h"
#include "chrome/installer/util/scoped_token_privilege.h"
#include "components/chrome_cleaner/public/constants/constants.h"
#include "components/safe_browsing/common/safe_browsing_prefs.h"
@@ -100,8 +102,17 @@ ChromeCleanerController::IdleReason IdleReasonWhenConnectionClosedTooSoon(
: ChromeCleanerController::IdleReason::kConnectionLost;
}
+void RecordCleanerLogsAcceptanceHistogram(bool value) {
csharp 2017/07/07 17:32:51 what about logs_uploaded instead of value?
ftirelo 2017/07/07 20:27:52 Used logs_accepted instead.
+ UMA_HISTOGRAM_BOOLEAN("SoftwareReporter.CleanerLogsAcceptance", value);
+}
+
} // namespace
+void RecordCleanupStartedHistogram(CleanupStartedHistogramValue value) {
+ UMA_HISTOGRAM_ENUMERATION("SoftwareReporter.CleanupStarted", value,
+ CLEANUP_STARTED_MAX);
+}
+
ChromeCleanerControllerDelegate::ChromeCleanerControllerDelegate() = default;
ChromeCleanerControllerDelegate::~ChromeCleanerControllerDelegate() = default;
@@ -231,12 +242,14 @@ void ChromeCleanerController::ReplyWithUserResponse(
case UserResponse::kAcceptedWithLogs:
acceptance = PromptAcceptance::ACCEPTED_WITH_LOGS;
SetLogsEnabled(true);
+ RecordCleanerLogsAcceptanceHistogram(true);
new_state = State::kCleaning;
delegate_->TagForResetting(profile);
break;
case UserResponse::kAcceptedWithoutLogs:
acceptance = PromptAcceptance::ACCEPTED_WITHOUT_LOGS;
SetLogsEnabled(false);
+ RecordCleanerLogsAcceptanceHistogram(false);
new_state = State::kCleaning;
delegate_->TagForResetting(profile);
break;
@@ -264,6 +277,7 @@ void ChromeCleanerController::Reboot() {
if (state() != State::kRebootRequired)
return;
+ UMA_HISTOGRAM_BOOLEAN("SoftwareReporter.RebootInitiated", true);
InitiateReboot();
}
@@ -329,6 +343,8 @@ void ChromeCleanerController::OnChromeCleanerFetchedAndVerified(
if (executable_path.empty()) {
idle_reason_ = IdleReason::kScanningFailed;
SetStateAndNotifyObservers(State::kIdle);
+ RecordPromptNotShownWithReasonHistogram(
+ NO_PROMPT_REASON_CLEANER_DOWNLOAD_FAILED);
return;
}
@@ -391,9 +407,12 @@ void ChromeCleanerController::OnPromptUser(
PromptAcceptance::DENIED));
idle_reason_ = IdleReason::kScanningFoundNothing;
SetStateAndNotifyObservers(State::kIdle);
+ RecordPromptNotShownWithReasonHistogram(NO_PROMPT_REASON_NOTHING_FOUND);
return;
}
+ UMA_HISTOGRAM_COUNTS_1000("SoftwareReporter.NumberOfFilesToDelete",
+ files_to_delete->size());
csharp 2017/07/07 17:32:51 Is there any problem if files_to_delete->size() >
ftirelo 2017/07/07 20:27:52 There is an overflow buffer for counts > 1000. Sin
files_to_delete_ = std::move(files_to_delete);
prompt_user_callback_ = std::move(prompt_user_callback);
SetStateAndNotifyObservers(State::kInfected);
@@ -407,6 +426,8 @@ void ChromeCleanerController::OnConnectionClosed() {
if (state() == State::kScanning || state() == State::kInfected) {
idle_reason_ = IdleReasonWhenConnectionClosedTooSoon(state());
SetStateAndNotifyObservers(State::kIdle);
+ RecordPromptNotShownWithReasonHistogram(
+ NO_PROMPT_REASON_IPC_CONNECTION_BROKEN);
csharp 2017/07/07 17:32:51 Is it possible for the connect to be closed after
ftirelo 2017/07/07 20:27:52 Yes, if the cleaner binary crashes.
csharp 2017/07/07 20:53:33 Should this be counted then, since in that case wo
ftirelo 2017/07/07 21:22:07 Added a new histogram for moment when IPC connecti
return;
}
// Nothing to do if OnConnectionClosed() is called in other states:
@@ -440,6 +461,7 @@ void ChromeCleanerController::OnCleanerProcessDone(
}
if (process_status.exit_code == kRebootRequiredExitCode) {
+ UMA_HISTOGRAM_BOOLEAN("SoftwareReporter.RebootRequired", true);
SetStateAndNotifyObservers(State::kRebootRequired);
return;
}

Powered by Google App Engine
This is Rietveld 408576698