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 13namespace ppapi { 14 15namespace proxy { 16 17class 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