1// Copyright (c) 2011 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 CHROME_TEST_BASE_TRACING_H_ 6#define CHROME_TEST_BASE_TRACING_H_ 7 8#include <string> 9 10#include "base/compiler_specific.h" 11#include "base/time/time.h" 12 13namespace tracing { 14 15// Called from UI thread. 16// Begin tracing specified category_patterns on the browser. 17// |category_patterns| is a comma-delimited list of category wildcards. 18// A category pattern can have an optional '-' prefix to make categories with 19// matching categorys excluded. Either all category_patterns must be included 20// or all must be excluded. 21// 22// Example: BeginTracing("test_MyTest*"); 23// Example: BeginTracing("test_MyTest*,test_OtherStuff"); 24// Example: BeginTracing("-excluded_category1,-excluded_category2"); 25// 26// See base/debug/trace_event.h for documentation of included and excluded 27// category_patterns. 28bool BeginTracing(const std::string& category_patterns) WARN_UNUSED_RESULT; 29 30// Called from UI thread. 31// Specify a watch event in order to use the WaitForWatchEvent function. 32// After |num_occurrences| of the given event have been seen on a particular 33// process, WaitForWatchEvent will return. 34bool BeginTracingWithWatch(const std::string& category_patterns, 35 const std::string& category_name, 36 const std::string& event_name, 37 int num_occurrences) WARN_UNUSED_RESULT; 38 39// Called from UI thread. 40// Wait on the event set with BeginTracingWithWatch. If non-zero, return after 41// |timeout| regardless of watch event notification. Returns true if watch event 42// occurred, false if it timed out. 43bool WaitForWatchEvent(base::TimeDelta timeout) WARN_UNUSED_RESULT; 44 45// Called from UI thread. 46// End trace and collect the trace output as a json string. 47bool EndTracing(std::string* json_trace_output) WARN_UNUSED_RESULT; 48 49} // namespace tracing 50 51#endif // CHROME_TEST_BASE_TRACING_H_ 52