diff options
author | elijahtaylor@chromium.org <elijahtaylor@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-01-24 20:49:34 +0000 |
---|---|---|
committer | elijahtaylor@chromium.org <elijahtaylor@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-01-24 20:49:34 +0000 |
commit | 4564949f87f10dc504993080785fa1fbb60bb978 (patch) | |
tree | 18b622d0656fb4c7a2f7ecce39a596a0b43b80a7 /ppapi/proxy/uma_private_resource.cc | |
parent | cba826490cd939ae2f22363c5163517017c5a7d0 (diff) | |
download | chromium_src-4564949f87f10dc504993080785fa1fbb60bb978.zip chromium_src-4564949f87f10dc504993080785fa1fbb60bb978.tar.gz chromium_src-4564949f87f10dc504993080785fa1fbb60bb978.tar.bz2 |
Proxy private UMA pepper interface for out-of-process and NaCl plugins.
BUG=317833
Review URL: https://codereview.chromium.org/61643022
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@246962 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ppapi/proxy/uma_private_resource.cc')
-rw-r--r-- | ppapi/proxy/uma_private_resource.cc | 89 |
1 files changed, 89 insertions, 0 deletions
diff --git a/ppapi/proxy/uma_private_resource.cc b/ppapi/proxy/uma_private_resource.cc new file mode 100644 index 0000000..d17a005 --- /dev/null +++ b/ppapi/proxy/uma_private_resource.cc @@ -0,0 +1,89 @@ +// Copyright 2014 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "ppapi/proxy/uma_private_resource.h" + +#include "base/bind.h" +#include "ppapi/proxy/ppapi_messages.h" +#include "ppapi/proxy/resource_message_params.h" +#include "ppapi/shared_impl/var.h" + +namespace { + +std::string StringFromPPVar(const PP_Var& var) { + scoped_refptr<ppapi::StringVar> name_stringvar = + ppapi::StringVar::FromPPVar(var); + if (!name_stringvar.get()) + return std::string(); + return name_stringvar->value(); +} + +} + +namespace ppapi { +namespace proxy { + +UMAPrivateResource::UMAPrivateResource( + Connection connection, PP_Instance instance) + : PluginResource(connection, instance) { + SendCreate(RENDERER, PpapiHostMsg_UMA_Create()); +} + +UMAPrivateResource::~UMAPrivateResource() { +} + +thunk::PPB_UMA_Singleton_API* UMAPrivateResource::AsPPB_UMA_Singleton_API() { + return this; +} + +void UMAPrivateResource::HistogramCustomTimes( + PP_Instance instance, + struct PP_Var name, + int64_t sample, + int64_t min, + int64_t max, + uint32_t bucket_count) { + if (name.type != PP_VARTYPE_STRING) + return; + + Post(RENDERER, PpapiHostMsg_UMA_HistogramCustomTimes(StringFromPPVar(name), + sample, + min, + max, + bucket_count)); +} + +void UMAPrivateResource::HistogramCustomCounts( + PP_Instance instance, + struct PP_Var name, + int32_t sample, + int32_t min, + int32_t max, + uint32_t bucket_count) { + if (name.type != PP_VARTYPE_STRING) + return; + + Post(RENDERER, PpapiHostMsg_UMA_HistogramCustomCounts(StringFromPPVar(name), + sample, + min, + max, + bucket_count)); +} + +void UMAPrivateResource::HistogramEnumeration( + PP_Instance instance, + struct PP_Var name, + int32_t sample, + int32_t boundary_value) { + if (name.type != PP_VARTYPE_STRING) + return; + + Post(RENDERER, PpapiHostMsg_UMA_HistogramEnumeration(StringFromPPVar(name), + sample, + boundary_value)); +} + +} // namespace proxy +} // namespace ppapi + |