Index: chrome/browser/shell_integration.h |
diff --git a/chrome/browser/shell_integration.h b/chrome/browser/shell_integration.h |
index 914a08b4ba905908c2330b681c70f2fc55b07e46..6473cf04cd74f76f8eb652121cba5c8a90aea0d5 100644 |
--- a/chrome/browser/shell_integration.h |
+++ b/chrome/browser/shell_integration.h |
@@ -210,6 +210,14 @@ class ShellIntegration { |
virtual bool IsInteractiveSetDefaultPermitted(); |
}; |
+ // The locations from which the user can set Chrome as the default browser. |
+ // This enum is used for UMA. Do not modify the ordering. |
+ enum SetDefaultBrowserLocation { |
+ INFO_BAR, |
+ SETTINGS, |
+ NUM_SET_DEFAULT_BROWSER_LOCATION_TYPES |
+ }; |
+ |
// Helper objects that handle checking if Chrome is the default browser |
// or application for a url protocol on Windows and Linux, and also setting |
// it as the default. These operations are performed asynchronously on the |
@@ -239,7 +247,7 @@ class ShellIntegration { |
// Possible result codes for a set-as-default operation. |
// Do not modify the ordering as it is important for UMA. |
enum AttemptResult { |
- // No errors encountered. |
+ // Chrome was set as the default browser. |
SUCCESS, |
// Chrome was already the default web client. This counts as a successful |
// attempt. |
@@ -257,6 +265,8 @@ class ShellIntegration { |
// The user initiated another attempt while the asynchronous operation was |
// already in progress. |
RETRY, |
+ // No errors were encountered yet Chrome is still not the default browser. |
+ NO_ERRORS_NOT_DEFAULT, |
NUM_ATTEMPT_RESULT_TYPES |
}; |
@@ -323,6 +333,12 @@ class ShellIntegration { |
// Records the time it takes to set the default browser. |
base::TimeTicks start_time_; |
+#if defined(OS_WIN) |
+ // Wait until Chrome has been confirmed as the default browser before |
+ // reporting a successful attempt. |
+ bool check_default_should_report_success_ = false; |
+#endif // defined(OS_WIN) |
+ |
DISALLOW_COPY_AND_ASSIGN(DefaultWebClientWorker); |
}; |