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

Unified Diff: chrome/browser/shell_integration.cc

Issue 1426663005: Make the histograms for setting the default browser consistent (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 1 month 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/shell_integration.cc
diff --git a/chrome/browser/shell_integration.cc b/chrome/browser/shell_integration.cc
index d8c5b8dcf38352aab3c7937c875c333fd463e3f6..49b1a6b53a1dde21567511fef3ca46ed822529c7 100644
--- a/chrome/browser/shell_integration.cc
+++ b/chrome/browser/shell_integration.cc
@@ -178,10 +178,10 @@ ShellIntegration::DefaultWebClientWorker::DefaultWebClientWorker(
void ShellIntegration::DefaultWebClientWorker::StartCheckIsDefault() {
if (observer_) {
grt (UTC plus 2) 2015/11/03 21:12:21 nit: omit braces
Patrick Monette 2015/11/10 19:22:47 Done.
observer_->SetDefaultWebClientUIState(STATE_PROCESSING);
- BrowserThread::PostTask(
- BrowserThread::FILE, FROM_HERE,
- base::Bind(&DefaultWebClientWorker::CheckIsDefault, this));
}
+ BrowserThread::PostTask(
+ BrowserThread::FILE, FROM_HERE,
+ base::Bind(&DefaultWebClientWorker::CheckIsDefault, this));
}
void ShellIntegration::DefaultWebClientWorker::StartSetAsDefault() {
@@ -196,15 +196,14 @@ void ShellIntegration::DefaultWebClientWorker::StartSetAsDefault() {
}
set_as_default_in_progress_ = true;
- bool interactive_permitted = false;
+ bool interactive_permitted = true;
if (observer_) {
observer_->SetDefaultWebClientUIState(STATE_PROCESSING);
interactive_permitted = observer_->IsInteractiveSetDefaultPermitted();
-
- // The initialization is only useful when there is an observer.
- set_as_default_initialized_ = InitializeSetAsDefault();
}
+ set_as_default_initialized_ = InitializeSetAsDefault();
+
// Remember the start time.
start_time_ = base::TimeTicks::Now();
@@ -237,6 +236,17 @@ void ShellIntegration::DefaultWebClientWorker::OnCheckIsDefaultComplete(
DefaultWebClientState state) {
DCHECK_CURRENTLY_ON(BrowserThread::UI);
UpdateUI(state);
+
+#if defined(OS_WIN)
grt (UTC plus 2) 2015/11/03 21:12:21 how about doing this for all platforms?
Patrick Monette 2015/11/10 19:22:47 Done.
+ if (check_default_should_report_success_) {
+ check_default_should_report_success_ = false;
+
+ ReportAttemptResult(state == DefaultWebClientState::IS_DEFAULT
+ ? AttemptResult::SUCCESS
+ : AttemptResult::NO_ERRORS_NOT_DEFAULT);
+ }
+#endif // defined(OS_WIN)
+
// The worker has finished everything it needs to do, so free the observer
// if we own it.
if (observer_ && observer_->IsOwnedByWorker()) {
@@ -267,7 +277,12 @@ void ShellIntegration::DefaultWebClientWorker::OnSetAsDefaultAttemptComplete(
observer_->OnSetAsDefaultConcluded(succeeded);
}
- ReportAttemptResult(result);
+ // We don't report a success yet because we have to make sure Chrome is the
grt (UTC plus 2) 2015/11/03 21:12:21 nit: avoid "we" in comments. how about "Report fai
Patrick Monette 2015/11/10 19:22:47 Done.
+ // default browser first.
+ check_default_should_report_success_ = result == AttemptResult::SUCCESS;
+ if (!check_default_should_report_success_) {
grt (UTC plus 2) 2015/11/03 21:12:21 nit: omit braces
Patrick Monette 2015/11/10 19:22:47 Done.
+ ReportAttemptResult(result);
+ }
// Start the default browser check which will notify the observer as to
// whether Chrome is really the default browser. This is needed because
@@ -283,32 +298,35 @@ void ShellIntegration::DefaultWebClientWorker::ReportAttemptResult(
if (!ShouldReportAttemptResults())
return;
- UMA_HISTOGRAM_ENUMERATION("DefaultBrowser.AsyncSetAsDefault.Result", result,
+ UMA_HISTOGRAM_ENUMERATION("SetDefaultBrowser.Result", result,
grt (UTC plus 2) 2015/11/03 21:12:21 how about recording this for all platforms? is the
Patrick Monette 2015/11/10 19:22:47 Done.
AttemptResult::NUM_ATTEMPT_RESULT_TYPES);
- switch (result) {
- case SUCCESS:
- UMA_HISTOGRAM_MEDIUM_TIMES(
- "DefaultBrowser.AsyncSetAsDefault.Duration_Success",
- base::TimeTicks::Now() - start_time_);
- break;
- case FAILURE:
- UMA_HISTOGRAM_MEDIUM_TIMES(
- "DefaultBrowser.AsyncSetAsDefault.Duration_Failure",
- base::TimeTicks::Now() - start_time_);
- break;
- case ABANDONED:
- UMA_HISTOGRAM_MEDIUM_TIMES(
- "DefaultBrowser.AsyncSetAsDefault.Duration_Abandoned",
- base::TimeTicks::Now() - start_time_);
- break;
- case RETRY:
- UMA_HISTOGRAM_MEDIUM_TIMES(
- "DefaultBrowser.AsyncSetAsDefault.Duration_Retry",
- base::TimeTicks::Now() - start_time_);
- break;
- default:
- break;
+ if (IsSetAsDefaultAsynchronous()) {
+ switch (result) {
grt (UTC plus 2) 2015/11/03 21:12:21 const base::TimeTicks delta = base::TimeTicks::Now
Patrick Monette 2015/11/10 19:22:47 Done.
+ case SUCCESS:
+ UMA_HISTOGRAM_MEDIUM_TIMES("SetDefaultBrowser.AsyncDuration_Success",
+ base::TimeTicks::Now() - start_time_);
grt (UTC plus 2) 2015/11/03 21:12:21 delta
Patrick Monette 2015/11/10 19:22:47 Done.
+ break;
+ case FAILURE:
+ UMA_HISTOGRAM_MEDIUM_TIMES("SetDefaultBrowser.AsyncDuration_Failure",
+ base::TimeTicks::Now() - start_time_);
+ break;
+ case ABANDONED:
+ UMA_HISTOGRAM_MEDIUM_TIMES("SetDefaultBrowser.AsyncDuration_Abandoned",
+ base::TimeTicks::Now() - start_time_);
+ break;
+ case RETRY:
+ UMA_HISTOGRAM_MEDIUM_TIMES("SetDefaultBrowser.AsyncDuration_Retry",
+ base::TimeTicks::Now() - start_time_);
+ break;
+ case NO_ERRORS_NOT_DEFAULT:
+ UMA_HISTOGRAM_MEDIUM_TIMES(
+ "SetDefaultBrowser.AsyncDuration_NoErrorsNotDefault",
+ base::TimeTicks::Now() - start_time_);
+ break;
+ default:
+ break;
+ }
}
}
@@ -318,12 +336,14 @@ bool ShellIntegration::DefaultWebClientWorker::InitializeSetAsDefault() {
void ShellIntegration::DefaultWebClientWorker::FinalizeSetAsDefault() {}
-#if !defined(OS_WIN)
// static
bool ShellIntegration::DefaultWebClientWorker::ShouldReportAttemptResults() {
+#if defined(OS_WIN)
+ return true;
+#else // !defined(OS_WIN)
return false;
+#endif
}
-#endif // !defined(OS_WIN)
void ShellIntegration::DefaultWebClientWorker::UpdateUI(
DefaultWebClientState state) {

Powered by Google App Engine
This is Rietveld 408576698