Chromium Code Reviews| Index: chrome/browser/extensions/api/metrics_private/metrics_private_api.h |
| diff --git a/chrome/browser/extensions/api/metrics_private/metrics_private_api.h b/chrome/browser/extensions/api/metrics_private/metrics_private_api.h |
| index 21e1e7ba7fb5e06d2cc37dcdfceb124d16656e7d..799f4b09eb245e898bae8b42289361835b9e263b 100644 |
| --- a/chrome/browser/extensions/api/metrics_private/metrics_private_api.h |
| +++ b/chrome/browser/extensions/api/metrics_private/metrics_private_api.h |
| @@ -10,10 +10,17 @@ |
| #include <string> |
| #include "base/metrics/histogram.h" |
| +#include "extensions/browser/browser_context_keyed_api_factory.h" |
| #include "extensions/browser/extension_function.h" |
| +namespace content { |
| +class BrowserContext; |
| +} // namespace content |
| + |
| namespace extensions { |
| +class MetricsPrivateDelegate; |
| + |
| class MetricsPrivateGetIsCrashReportingEnabledFunction |
| : public UIThreadExtensionFunction { |
| public: |
| @@ -192,6 +199,25 @@ class MetricsPrivateRecordLongTimeFunction |
| ResponseAction Run() override; |
| }; |
| +class MetricsPrivateAPI : public BrowserContextKeyedAPI { |
|
Rahul Chaturvedi
2016/09/16 23:11:04
Is this needed? Our delegate isn't context specifi
michaelpg
2016/09/16 23:51:56
Good point. We could make the ExtensionAPIClient i
Rahul Chaturvedi
2016/09/19 18:11:09
ExtensionsAPIClient::Get() returns the the correct
michaelpg
2016/09/19 18:36:32
We do this a lot for platform-specific functionali
Rahul Chaturvedi
2016/09/19 19:13:17
So in 'this' particular situation, a few reasons t
|
| + public: |
| + explicit MetricsPrivateAPI(content::BrowserContext* context); |
| + ~MetricsPrivateAPI() override; |
| + |
| + // BrowserContextKeyedAPI: |
| + static BrowserContextKeyedAPIFactory<MetricsPrivateAPI>* GetFactoryInstance(); |
| + |
| + MetricsPrivateDelegate* delegate() { return delegate_.get(); } |
| + |
| + private: |
| + friend class BrowserContextKeyedAPIFactory<MetricsPrivateAPI>; |
| + |
| + // BrowserContextKeyedAPI: |
| + static const char* service_name() { return "MetricsPrivateAPI"; } |
| + |
| + std::unique_ptr<MetricsPrivateDelegate> delegate_; |
| +}; |
| + |
| } // namespace extensions |
| #endif // CHROME_BROWSER_EXTENSIONS_API_METRICS_PRIVATE_METRICS_PRIVATE_API_H_ |