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

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

Issue 2973873002: Primary histograms for InBrowserCleanerUI experiment (Closed)
Patch Set: Revert changes to histogram.cc 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_fetcher_win.cc
diff --git a/chrome/browser/safe_browsing/chrome_cleaner/chrome_cleaner_fetcher_win.cc b/chrome/browser/safe_browsing/chrome_cleaner/chrome_cleaner_fetcher_win.cc
index 34605c3ef2fe9b458a940a8ba7da4243e33fae60..2d3b8df03efcd65e7282ed3e06048aa409eca2e7 100644
--- a/chrome/browser/safe_browsing/chrome_cleaner/chrome_cleaner_fetcher_win.cc
+++ b/chrome/browser/safe_browsing/chrome_cleaner/chrome_cleaner_fetcher_win.cc
@@ -18,6 +18,7 @@
#include "base/macros.h"
#include "base/memory/ptr_util.h"
#include "base/memory/ref_counted.h"
+#include "base/metrics/histogram_macros.h"
#include "base/sequenced_task_runner.h"
#include "base/strings/stringprintf.h"
#include "base/strings/utf_string_conversions.h"
@@ -52,6 +53,23 @@ base::FilePath::StringType CleanerTempDirectoryPrefix() {
install_mode);
}
+// These values are used to send UMA information and are replicated in the
+// histograms.xml file, so the order MUST NOT CHANGE.
+enum CleanerDownloadStatusHistogramValue {
+ CLEANER_DOWNLOAD_STATUS_SUCCEEDED = 0,
+ CLEANER_DOWNLOAD_STATUS_OTHER_FAILURE = 1,
+ CLEANER_DOWNLOAD_STATUS_NOT_FOUND_ON_SERVER = 2,
+ CLEANER_DOWNLOAD_STATUS_FAILED_TO_CREATE_TEMP_DIR = 3,
+
+ CLEANER_DOWNLOAD_STATUS_MAX,
+};
+
+void RecordCleanerDownloadStatusHistogram(
+ CleanerDownloadStatusHistogramValue value) {
+ UMA_HISTOGRAM_ENUMERATION("SoftwareReporter.Cleaner.DownloadStatus", value,
+ CLEANER_DOWNLOAD_STATUS_MAX);
+}
+
// Class that will attempt to download the Chrome Cleaner executable and call a
// given callback when done. Instances of ChromeCleanerFetcher own themselves
// and will self-delete if they encounter an error or when the network request
@@ -123,6 +141,8 @@ bool ChromeCleanerFetcher::CreateTemporaryDirectory() {
void ChromeCleanerFetcher::OnTemporaryDirectoryCreated(bool success) {
if (!success) {
+ RecordCleanerDownloadStatusHistogram(
+ CLEANER_DOWNLOAD_STATUS_FAILED_TO_CREATE_TEMP_DIR);
PostCallbackAndDeleteSelf(
base::FilePath(),
ChromeCleanerFetchStatus::kFailedToCreateTemporaryDirectory);
@@ -166,6 +186,8 @@ void ChromeCleanerFetcher::OnURLFetchComplete(const net::URLFetcher* source) {
DCHECK(fetched_callback_);
if (source->GetResponseCode() == net::HTTP_NOT_FOUND) {
+ RecordCleanerDownloadStatusHistogram(
+ CLEANER_DOWNLOAD_STATUS_NOT_FOUND_ON_SERVER);
PostCallbackAndDeleteSelf(base::FilePath(),
ChromeCleanerFetchStatus::kNotFoundOnServer);
return;
@@ -175,6 +197,7 @@ void ChromeCleanerFetcher::OnURLFetchComplete(const net::URLFetcher* source) {
if (!source->GetStatus().is_success() ||
source->GetResponseCode() != net::HTTP_OK ||
!source->GetResponseAsFilePath(/*take_ownership=*/true, &download_path)) {
+ RecordCleanerDownloadStatusHistogram(CLEANER_DOWNLOAD_STATUS_OTHER_FAILURE);
PostCallbackAndDeleteSelf(base::FilePath(),
ChromeCleanerFetchStatus::kOtherFailure);
return;
@@ -186,6 +209,7 @@ void ChromeCleanerFetcher::OnURLFetchComplete(const net::URLFetcher* source) {
// Take ownership of the scoped temp directory so it is not deleted.
scoped_temp_dir_->Take();
+ RecordCleanerDownloadStatusHistogram(CLEANER_DOWNLOAD_STATUS_SUCCEEDED);
PostCallbackAndDeleteSelf(std::move(download_path),
ChromeCleanerFetchStatus::kSuccess);
}

Powered by Google App Engine
This is Rietveld 408576698