Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(360)

Side by Side Diff: base/test/trace_to_file.cc

Issue 935333002: Update from https://crrev.com/316786 (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 5 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2014 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "base/test/trace_to_file.h" 5 #include "base/test/trace_to_file.h"
6 6
7 #include "base/base_switches.h" 7 #include "base/base_switches.h"
8 #include "base/bind.h" 8 #include "base/bind.h"
9 #include "base/command_line.h" 9 #include "base/command_line.h"
10 #include "base/files/file_util.h" 10 #include "base/files/file_util.h"
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
44 BeginTracing(path, filter); 44 BeginTracing(path, filter);
45 } 45 }
46 46
47 void TraceToFile::BeginTracing(const FilePath& path, 47 void TraceToFile::BeginTracing(const FilePath& path,
48 const std::string& categories) { 48 const std::string& categories) {
49 DCHECK(!started_); 49 DCHECK(!started_);
50 started_ = true; 50 started_ = true;
51 path_ = path; 51 path_ = path;
52 WriteFileHeader(); 52 WriteFileHeader();
53 53
54 debug::TraceLog::GetInstance()->SetEnabled( 54 trace_event::TraceLog::GetInstance()->SetEnabled(
55 debug::CategoryFilter(categories), 55 trace_event::CategoryFilter(categories),
56 debug::TraceLog::RECORDING_MODE, 56 trace_event::TraceLog::RECORDING_MODE,
57 debug::TraceOptions(debug::RECORD_UNTIL_FULL)); 57 trace_event::TraceOptions(trace_event::RECORD_UNTIL_FULL));
58 } 58 }
59 59
60 void TraceToFile::WriteFileHeader() { 60 void TraceToFile::WriteFileHeader() {
61 const char str[] = "{\"traceEvents\": ["; 61 const char str[] = "{\"traceEvents\": [";
62 WriteFile(path_, str, static_cast<int>(strlen(str))); 62 WriteFile(path_, str, static_cast<int>(strlen(str)));
63 } 63 }
64 64
65 void TraceToFile::AppendFileFooter() { 65 void TraceToFile::AppendFileFooter() {
66 const char str[] = "]}"; 66 const char str[] = "]}";
67 AppendToFile(path_, str, static_cast<int>(strlen(str))); 67 AppendToFile(path_, str, static_cast<int>(strlen(str)));
68 } 68 }
69 69
70 void TraceToFile::TraceOutputCallback(const std::string& data) { 70 void TraceToFile::TraceOutputCallback(const std::string& data) {
71 bool ret = AppendToFile(path_, data.c_str(), static_cast<int>(data.size())); 71 bool ret = AppendToFile(path_, data.c_str(), static_cast<int>(data.size()));
72 DCHECK(ret); 72 DCHECK(ret);
73 } 73 }
74 74
75 static void OnTraceDataCollected( 75 static void OnTraceDataCollected(
76 Closure quit_closure, 76 Closure quit_closure,
77 debug::TraceResultBuffer* buffer, 77 trace_event::TraceResultBuffer* buffer,
78 const scoped_refptr<RefCountedString>& json_events_str, 78 const scoped_refptr<RefCountedString>& json_events_str,
79 bool has_more_events) { 79 bool has_more_events) {
80 buffer->AddFragment(json_events_str->data()); 80 buffer->AddFragment(json_events_str->data());
81 if (!has_more_events) 81 if (!has_more_events)
82 quit_closure.Run(); 82 quit_closure.Run();
83 } 83 }
84 84
85 void TraceToFile::EndTracingIfNeeded() { 85 void TraceToFile::EndTracingIfNeeded() {
86 if (!started_) 86 if (!started_)
87 return; 87 return;
88 started_ = false; 88 started_ = false;
89 89
90 debug::TraceLog::GetInstance()->SetDisabled(); 90 trace_event::TraceLog::GetInstance()->SetDisabled();
91 91
92 debug::TraceResultBuffer buffer; 92 trace_event::TraceResultBuffer buffer;
93 buffer.SetOutputCallback( 93 buffer.SetOutputCallback(
94 Bind(&TraceToFile::TraceOutputCallback, Unretained(this))); 94 Bind(&TraceToFile::TraceOutputCallback, Unretained(this)));
95 95
96 RunLoop run_loop; 96 RunLoop run_loop;
97 debug::TraceLog::GetInstance()->Flush( 97 trace_event::TraceLog::GetInstance()->Flush(
98 Bind(&OnTraceDataCollected, run_loop.QuitClosure(), Unretained(&buffer))); 98 Bind(&OnTraceDataCollected, run_loop.QuitClosure(), Unretained(&buffer)));
99 run_loop.Run(); 99 run_loop.Run();
100 100
101 AppendFileFooter(); 101 AppendFileFooter();
102 } 102 }
103 103
104 } // namespace test 104 } // namespace test
105 } // namespace base 105 } // namespace base
OLDNEW
« no previous file with comments | « base/test/trace_event_analyzer_unittest.cc ('k') | base/third_party/dynamic_annotations/BUILD.gn » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698