Index: chrome/browser/metrics/omnibox_metrics_provider.cc |
diff --git a/chrome/browser/metrics/omnibox_metrics_provider.cc b/chrome/browser/metrics/omnibox_metrics_provider.cc |
index 77db37b6c2fa3c59ee10c0814fb714aec6517327..ae23d0c5dd719fed891f5bec8def0a21d88fe4e5 100644 |
--- a/chrome/browser/metrics/omnibox_metrics_provider.cc |
+++ b/chrome/browser/metrics/omnibox_metrics_provider.cc |
@@ -6,11 +6,11 @@ |
#include <vector> |
+#include "base/bind.h" |
#include "base/logging.h" |
#include "base/strings/string16.h" |
#include "base/strings/string_split.h" |
#include "base/strings/string_util.h" |
-#include "chrome/browser/chrome_notification_types.h" |
#include "chrome/browser/ui/browser_otr_state.h" |
#include "components/metrics/metrics_log.h" |
#include "components/metrics/proto/omnibox_event.pb.h" |
@@ -19,7 +19,6 @@ |
#include "components/omnibox/browser/autocomplete_provider.h" |
#include "components/omnibox/browser/autocomplete_result.h" |
#include "components/omnibox/browser/omnibox_log.h" |
-#include "content/public/browser/notification_service.h" |
using metrics::OmniboxEventProto; |
@@ -81,12 +80,13 @@ OmniboxMetricsProvider::~OmniboxMetricsProvider() { |
} |
void OmniboxMetricsProvider::OnRecordingEnabled() { |
- registrar_.Add(this, chrome::NOTIFICATION_OMNIBOX_OPENED_URL, |
- content::NotificationService::AllSources()); |
+ subscription_ = OmniboxEventGlobalTracker::GetInstance()->RegisterCallback( |
+ base::Bind(&OmniboxMetricsProvider::OnURLOpenedFromOmnibox, |
+ base::Unretained(this))); |
} |
void OmniboxMetricsProvider::OnRecordingDisabled() { |
- registrar_.RemoveAll(); |
+ subscription_.reset(); |
} |
void OmniboxMetricsProvider::ProvideGeneralMetrics( |
@@ -95,17 +95,12 @@ void OmniboxMetricsProvider::ProvideGeneralMetrics( |
omnibox_events_cache.mutable_omnibox_event()); |
} |
-void OmniboxMetricsProvider::Observe( |
- int type, |
- const content::NotificationSource& source, |
- const content::NotificationDetails& details) { |
- DCHECK_EQ(chrome::NOTIFICATION_OMNIBOX_OPENED_URL, type); |
- |
+void OmniboxMetricsProvider::OnURLOpenedFromOmnibox(OmniboxLog* log) { |
// We simply don't log events to UMA if there is a single incognito |
// session visible. In the future, it may be worth revisiting this to |
// still log events from non-incognito sessions. |
if (!chrome::IsOffTheRecordSessionActive()) |
- RecordOmniboxOpenedURL(*content::Details<OmniboxLog>(details).ptr()); |
+ RecordOmniboxOpenedURL(*log); |
} |
void OmniboxMetricsProvider::RecordOmniboxOpenedURL(const OmniboxLog& log) { |