Content settings: remove some plugin-related code/resources when... there are no...
[chromium-blink-merge.git] / components / omnibox / browser / omnibox_metrics_provider.h
blob11cb5f5f7c449307228b3fdb96ba0e74a73198e5
1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef COMPONENTS_OMNIBOX_BROWSER_OMNIBOX_METRICS_PROVIDER_H_
6 #define COMPONENTS_OMNIBOX_BROWSER_OMNIBOX_METRICS_PROVIDER_H_
8 #include "base/basictypes.h"
9 #include "components/metrics/metrics_provider.h"
10 #include "components/metrics/proto/chrome_user_metrics_extension.pb.h"
11 #include "components/omnibox/browser/omnibox_event_global_tracker.h"
13 struct OmniboxLog;
15 // OmniboxMetricsProvider is responsible for filling out the |omnibox_event|
16 // section of the UMA proto.
17 class OmniboxMetricsProvider : public metrics::MetricsProvider {
18 public:
19 explicit OmniboxMetricsProvider(
20 const base::Callback<bool(void)>& is_off_the_record_callback);
21 ~OmniboxMetricsProvider() override;
23 // metrics::MetricsDataProvider:
24 void OnRecordingEnabled() override;
25 void OnRecordingDisabled() override;
26 void ProvideGeneralMetrics(
27 metrics::ChromeUserMetricsExtension* uma_proto) override;
29 private:
30 // Called when a URL is opened from the Omnibox.
31 void OnURLOpenedFromOmnibox(OmniboxLog* log);
33 // Records the input text, available choices, and selected entry when the
34 // user uses the Omnibox to open a URL.
35 void RecordOmniboxOpenedURL(const OmniboxLog& log);
37 // Subscription for receiving Omnibox event callbacks.
38 scoped_ptr<base::CallbackList<void(OmniboxLog*)>::Subscription> subscription_;
40 // Saved cache of generated Omnibox event protos, to be copied into the UMA
41 // proto when ProvideGeneralMetrics() is called.
42 metrics::ChromeUserMetricsExtension omnibox_events_cache;
44 // Callback passed in from the embedder that returns whether the user is
45 // currently operating off-the-record.
46 const base::Callback<bool(void)> is_off_the_record_callback_;
48 DISALLOW_COPY_AND_ASSIGN(OmniboxMetricsProvider);
51 #endif // COMPONENTS_OMNIBOX_BROWSER_OMNIBOX_METRICS_PROVIDER_H_