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. 4 5 #ifndef PPAPI_PROXY_UMA_PRIVATE_RESOURCE_H_ 6 #define PPAPI_PROXY_UMA_PRIVATE_RESOURCE_H_ 7 8 #include "ppapi/proxy/connection.h" 9 #include "ppapi/proxy/plugin_resource.h" 10 #include "ppapi/proxy/ppapi_proxy_export.h" 11 #include "ppapi/thunk/ppb_uma_singleton_api.h" 12 13 namespace ppapi { 14 15 namespace proxy { 16 17 class PPAPI_PROXY_EXPORT UMAPrivateResource 18 : public PluginResource, 19 public thunk::PPB_UMA_Singleton_API { 20 public: 21 UMAPrivateResource(Connection connection, PP_Instance instance); 22 virtual ~UMAPrivateResource(); 23 24 // Resource overrides. 25 virtual thunk::PPB_UMA_Singleton_API* AsPPB_UMA_Singleton_API() OVERRIDE; 26 27 // PPB_UMA_Singleton_API implementation. 28 virtual void HistogramCustomTimes(PP_Instance instance, 29 struct PP_Var name, 30 int64_t sample, 31 int64_t min, 32 int64_t max, 33 uint32_t bucket_count) OVERRIDE; 34 35 virtual void HistogramCustomCounts(PP_Instance instance, 36 struct PP_Var name, 37 int32_t sample, 38 int32_t min, 39 int32_t max, 40 uint32_t bucket_count) OVERRIDE; 41 42 virtual void HistogramEnumeration(PP_Instance instance, 43 struct PP_Var name, 44 int32_t sample, 45 int32_t boundary_value) OVERRIDE; 46 47 virtual int32_t IsCrashReportingEnabled( 48 PP_Instance instance, 49 scoped_refptr<TrackedCallback> callback) OVERRIDE; 50 51 private: 52 void OnPluginMsgIsCrashReportingEnabled( 53 const ResourceMessageReplyParams& params); 54 scoped_refptr<TrackedCallback> pending_callback_; 55 56 DISALLOW_COPY_AND_ASSIGN(UMAPrivateResource); 57 }; 58 59 } // namespace proxy 60 } // namespace ppapi 61 62 #endif // PPAPI_PROXY_UMA_PRIVATE_RESOURCE_H_ 63