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_ |