diff options
author | elijahtaylor@chromium.org <elijahtaylor@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-01-28 18:46:24 +0000 |
---|---|---|
committer | elijahtaylor@chromium.org <elijahtaylor@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-01-28 18:46:24 +0000 |
commit | 9e10e04469b019f854ac6d3606819354e671b6c9 (patch) | |
tree | acc97eee82f1376cb981ed11132c2cc1a13e0453 /ppapi/api | |
parent | 99162f6565bb19ce54cb4b1f188b1d06bcaade3c (diff) | |
download | chromium_src-9e10e04469b019f854ac6d3606819354e671b6c9.zip chromium_src-9e10e04469b019f854ac6d3606819354e671b6c9.tar.gz chromium_src-9e10e04469b019f854ac6d3606819354e671b6c9.tar.bz2 |
Reland: Add trace event Pepper API
This facilitates adding trace data to chrome://tracing from plugins.
- broke out trace_event.h into trace_event.h/trace_event_internal.h
for easier transplanting to plugin code by eliminating dependence on base/.
- inlined trace_event.cc methods (4 total) so the trace_event_internal
implementation is contained in headers.
- added new PPB_TraceEvent_Dev interface (implemented entirely on the plugin
side)
BUG=93839
TEST=base_unittests, manual for plugin testing
Review URL: https://chromiumcodereview.appspot.com/12047066
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@179171 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ppapi/api')
-rw-r--r-- | ppapi/api/dev/ppb_trace_event_dev.idl | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/ppapi/api/dev/ppb_trace_event_dev.idl b/ppapi/api/dev/ppb_trace_event_dev.idl new file mode 100644 index 0000000..ff01dea --- /dev/null +++ b/ppapi/api/dev/ppb_trace_event_dev.idl @@ -0,0 +1,50 @@ +/* Copyright (c) 2012 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. + */ + +/** + * This file defines the <code>PPB_Trace_Event</code> interface. It is meant + * to be used in plugins as the API that trace macros from trace_event.h use. + */ + +label Chrome { + M25 = 0.1 +}; + +interface PPB_Trace_Event_Dev { + /** + * Gets a pointer to a character for identifying a category name in the + * tracing system as well as for being able to early exit in client-side + * tracing code. + * + * NB: This mem_t return value should technically be const, but return values + * for Pepper IDL of mem_t type are not const. The same is true for the arg + * |category_enabled| for AddTraceEvent. + */ + mem_t GetCategoryEnabled([in] cstr_t category_name); + + /** + * Adds a trace event to the platform tracing system. This function call is + * usually the result of a TRACE_* macro from trace_event.h when tracing and + * the category of the particular trace are enabled. It is not advisable to + * call this function on its own; it is really only meant to be used by the + * trace macros. + */ + void AddTraceEvent( + [in] int8_t phase, + [in] mem_t category_enabled, + [in] cstr_t name, + [in] uint64_t id, + [in] uint32_t num_args, + [in, size_as=num_args] str_t[] arg_names, + [in, size_as=num_args] uint8_t[] arg_types, + [in, size_as=num_args] uint64_t[] arg_values, + [in] uint8_t flags); + + /** + * Sets the thread name of the calling thread in the tracing system so it will + * show up properly in chrome://tracing. + */ + void SetThreadName([in] cstr_t thread_name); +}; |