15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* Copyright (c) 2012 The Chromium Authors. All rights reserved.
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Use of this source code is governed by a BSD-style license that can be
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * found in the LICENSE file.
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */
55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/**
75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * This file defines the <code>PPB_UMA_Private</code> interface.
85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */
95d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
105d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)[generate_thunk,thunk_include="ppapi/thunk/ppb_uma_singleton_api.h"]
115d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)label Chrome {
13effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch  M35 = 0.3
145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)};
155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/**
175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Contains functions for plugins to report UMA usage stats.
185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */
195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)interface PPB_UMA_Private {
205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /**
215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * HistogramCustomTimes is a pointer to a function which records a time
225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * sample given in milliseconds in the histogram given by |name|, possibly
235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * creating the histogram if it does not exist.
245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   */
255d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  [singleton,api=PPB_UMA_Singleton_API]
265d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  void HistogramCustomTimes([in] PP_Instance instance,
275d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                            [in] PP_Var name,
285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                            [in] int64_t sample,
295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                            [in] int64_t min,
305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                            [in] int64_t max,
315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                            [in] uint32_t bucket_count);
325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /**
345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * HistogramCustomCounts is a pointer to a function which records a sample
355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * in the histogram given by |name|, possibly creating the histogram if it
365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * does not exist.
375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   */
385d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  [singleton,api=PPB_UMA_Singleton_API]
395d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  void HistogramCustomCounts([in] PP_Instance instance,
405d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                             [in] PP_Var name,
415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                             [in] int32_t sample,
425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                             [in] int32_t min,
435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                             [in] int32_t max,
445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                             [in] uint32_t bucket_count);
455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /**
475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * HistogramEnumeration is a pointer to a function which records a sample
485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * in the histogram given by |name|, possibly creating the histogram if it
495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * does not exist.  The sample represents a value in an enumeration bounded
505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * by |boundary_value|, that is, sample < boundary_value always.
515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   */
525d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  [singleton,api=PPB_UMA_Singleton_API]
535d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  void HistogramEnumeration([in] PP_Instance instance,
545d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                            [in] PP_Var name,
555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                            [in] int32_t sample,
565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                            [in] int32_t boundary_value);
57effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch
58effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch  /**
59effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch   * IsCrashReportingEnabled returns PP_OK to the completion callback to
60effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch   * indicate that the current user has opted-in to crash reporting, or
61effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch   * PP_ERROR_* on failure or when a user has not opted-in.  This can be used to
62effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch   * gate other reporting processes such as analytics and crash reporting.
63effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch   */
64effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch   [singleton,api=PPB_UMA_Singleton_API]
65effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch   int32_t IsCrashReportingEnabled([in] PP_Instance instance,
66effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch                                   [in] PP_CompletionCallback callback);
675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)};
68