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

Side by Side Diff: content/browser/tracing/tracing_ui.cc

Issue 1165673002: [Startup Tracing] Hook up TraceConfig and remove CategoryFilter & TraceOptions (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 5 years, 6 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) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "content/browser/tracing/tracing_ui.h" 5 #include "content/browser/tracing/tracing_ui.h"
6 6
7 #include <set> 7 #include <set>
8 #include <string> 8 #include <string>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
45 it != categorySet.end(); it++) { 45 it != categorySet.end(); it++) {
46 category_list.AppendString(*it); 46 category_list.AppendString(*it);
47 } 47 }
48 48
49 base::RefCountedString* res = new base::RefCountedString(); 49 base::RefCountedString* res = new base::RefCountedString();
50 base::JSONWriter::Write(category_list, &res->data()); 50 base::JSONWriter::Write(category_list, &res->data());
51 callback.Run(res); 51 callback.Run(res);
52 } 52 }
53 53
54 bool GetTracingOptions(const std::string& data64, 54 bool GetTracingOptions(const std::string& data64,
55 base::trace_event::CategoryFilter* category_filter, 55 base::trace_event::TraceConfig* trace_config) {
56 base::trace_event::TraceOptions* tracing_options) {
57 std::string data; 56 std::string data;
58 if (!base::Base64Decode(data64, &data)) { 57 if (!base::Base64Decode(data64, &data)) {
59 LOG(ERROR) << "Options were not base64 encoded."; 58 LOG(ERROR) << "Options were not base64 encoded.";
60 return false; 59 return false;
61 } 60 }
62 61
63 scoped_ptr<base::Value> optionsRaw = base::JSONReader::Read(data); 62 scoped_ptr<base::Value> optionsRaw = base::JSONReader::Read(data);
64 if (!optionsRaw) { 63 if (!optionsRaw) {
65 LOG(ERROR) << "Options were not valid JSON"; 64 LOG(ERROR) << "Options were not valid JSON";
66 return false; 65 return false;
67 } 66 }
68 base::DictionaryValue* options; 67 base::DictionaryValue* options;
69 if (!optionsRaw->GetAsDictionary(&options)) { 68 if (!optionsRaw->GetAsDictionary(&options)) {
70 LOG(ERROR) << "Options must be dict"; 69 LOG(ERROR) << "Options must be dict";
71 return false; 70 return false;
72 } 71 }
73 72
74 if (!category_filter) { 73 if (!trace_config) {
75 LOG(ERROR) << "category_filter can't be passed as NULL"; 74 LOG(ERROR) << "trace_config can't be passed as NULL";
76 return false;
77 }
78
79 if (!tracing_options) {
80 LOG(ERROR) << "tracing_options can't be passed as NULL";
81 return false; 75 return false;
82 } 76 }
83 77
84 bool options_ok = true; 78 bool options_ok = true;
85 std::string category_filter_string; 79 std::string category_filter_string;
86 options_ok &= options->GetString("categoryFilter", &category_filter_string); 80 options_ok &= options->GetString("categoryFilter", &category_filter_string);
87 *category_filter = base::trace_event::CategoryFilter(category_filter_string);
88 81
89 std::string record_mode; 82 std::string record_mode;
90 options_ok &= 83 options_ok &= options->GetString("tracingRecordMode", &record_mode);
91 options->GetString("tracingRecordMode", &record_mode);
92 options_ok &= tracing_options->SetFromString(record_mode);
93 84
94 options_ok &= options->GetBoolean("useSystemTracing", 85 *trace_config = base::trace_event::TraceConfig(category_filter_string,
95 &tracing_options->enable_systrace); 86 record_mode);
96 options_ok &= 87
97 options->GetBoolean("useSampling", &tracing_options->enable_sampling); 88 bool enable_systrace;
89 options_ok &= options->GetBoolean("useSystemTracing", &enable_systrace);
90 if (enable_systrace)
91 trace_config->EnableSystrace();
92
93 bool enable_sampling;
94 options_ok &= options->GetBoolean("useSampling", &enable_sampling);
95 if (enable_sampling)
96 trace_config->EnableSampling();
98 97
99 if (!options_ok) { 98 if (!options_ok) {
100 LOG(ERROR) << "Malformed options"; 99 LOG(ERROR) << "Malformed options";
101 return false; 100 return false;
102 } 101 }
103 return true; 102 return true;
104 } 103 }
105 104
106 void OnRecordingEnabledAck(const WebUIDataSource::GotDataCallback& callback); 105 void OnRecordingEnabledAck(const WebUIDataSource::GotDataCallback& callback);
107 106
108 bool BeginRecording(const std::string& data64, 107 bool BeginRecording(const std::string& data64,
109 const WebUIDataSource::GotDataCallback& callback) { 108 const WebUIDataSource::GotDataCallback& callback) {
110 base::trace_event::CategoryFilter category_filter(""); 109 base::trace_event::TraceConfig trace_config("", "");
111 base::trace_event::TraceOptions tracing_options; 110 if (!GetTracingOptions(data64, &trace_config))
112 if (!GetTracingOptions(data64, &category_filter, &tracing_options))
113 return false; 111 return false;
114 112
115 return TracingController::GetInstance()->EnableRecording( 113 return TracingController::GetInstance()->EnableRecording(
116 category_filter, 114 trace_config,
117 tracing_options,
118 base::Bind(&OnRecordingEnabledAck, callback)); 115 base::Bind(&OnRecordingEnabledAck, callback));
119 } 116 }
120 117
121 void OnRecordingEnabledAck(const WebUIDataSource::GotDataCallback& callback) { 118 void OnRecordingEnabledAck(const WebUIDataSource::GotDataCallback& callback) {
122 base::RefCountedString* res = new base::RefCountedString(); 119 base::RefCountedString* res = new base::RefCountedString();
123 callback.Run(res); 120 callback.Run(res);
124 } 121 }
125 122
126 void OnTraceBufferUsageResult(const WebUIDataSource::GotDataCallback& callback, 123 void OnTraceBufferUsageResult(const WebUIDataSource::GotDataCallback& callback,
127 float percent_full, 124 float percent_full,
(...skipping 14 matching lines...) Expand all
142 139
143 base::RefCountedString* status_base64 = new base::RefCountedString(); 140 base::RefCountedString* status_base64 = new base::RefCountedString();
144 base::Base64Encode(status_json, &status_base64->data()); 141 base::Base64Encode(status_json, &status_base64->data());
145 callback.Run(status_base64); 142 callback.Run(status_base64);
146 } 143 }
147 144
148 void OnMonitoringEnabledAck(const WebUIDataSource::GotDataCallback& callback); 145 void OnMonitoringEnabledAck(const WebUIDataSource::GotDataCallback& callback);
149 146
150 bool EnableMonitoring(const std::string& data64, 147 bool EnableMonitoring(const std::string& data64,
151 const WebUIDataSource::GotDataCallback& callback) { 148 const WebUIDataSource::GotDataCallback& callback) {
152 base::trace_event::TraceOptions tracing_options; 149 base::trace_event::TraceConfig trace_config("", "");
153 base::trace_event::CategoryFilter category_filter(""); 150 if (!GetTracingOptions(data64, &trace_config))
154 if (!GetTracingOptions(data64, &category_filter, &tracing_options))
155 return false; 151 return false;
156 152
157 return TracingController::GetInstance()->EnableMonitoring( 153 return TracingController::GetInstance()->EnableMonitoring(
158 category_filter, 154 trace_config,
159 tracing_options,
160 base::Bind(OnMonitoringEnabledAck, callback)); 155 base::Bind(OnMonitoringEnabledAck, callback));
161 } 156 }
162 157
163 void OnMonitoringEnabledAck(const WebUIDataSource::GotDataCallback& callback) { 158 void OnMonitoringEnabledAck(const WebUIDataSource::GotDataCallback& callback) {
164 base::RefCountedString* res = new base::RefCountedString(); 159 base::RefCountedString* res = new base::RefCountedString();
165 callback.Run(res); 160 callback.Run(res);
166 } 161 }
167 162
168 void OnMonitoringDisabled(const WebUIDataSource::GotDataCallback& callback) { 163 void OnMonitoringDisabled(const WebUIDataSource::GotDataCallback& callback) {
169 base::RefCountedString* res = new base::RefCountedString(); 164 base::RefCountedString* res = new base::RefCountedString();
170 callback.Run(res); 165 callback.Run(res);
171 } 166 }
172 167
173 void GetMonitoringStatus(const WebUIDataSource::GotDataCallback& callback) { 168 void GetMonitoringStatus(const WebUIDataSource::GotDataCallback& callback) {
174 bool is_monitoring; 169 bool is_monitoring;
175 base::trace_event::CategoryFilter category_filter(""); 170 base::trace_event::TraceConfig config("", "");
176 base::trace_event::TraceOptions options;
177 TracingController::GetInstance()->GetMonitoringStatus( 171 TracingController::GetInstance()->GetMonitoringStatus(
178 &is_monitoring, &category_filter, &options); 172 &is_monitoring, &config);
179 173
180 base::DictionaryValue monitoring_options; 174 base::DictionaryValue monitoring_options;
181 monitoring_options.SetBoolean("isMonitoring", is_monitoring); 175 monitoring_options.SetBoolean("isMonitoring", is_monitoring);
182 monitoring_options.SetString("categoryFilter", category_filter.ToString()); 176 monitoring_options.SetString("categoryFilter",
183 monitoring_options.SetBoolean("useSystemTracing", options.enable_systrace); 177 config.ToCategoryFilterString());
178 monitoring_options.SetBoolean("useSystemTracing", config.IsSystraceEnabled());
184 monitoring_options.SetBoolean( 179 monitoring_options.SetBoolean(
185 "useContinuousTracing", 180 "useContinuousTracing",
186 options.record_mode == base::trace_event::RECORD_CONTINUOUSLY); 181 config.GetTraceRecordMode() == base::trace_event::RECORD_CONTINUOUSLY);
187 monitoring_options.SetBoolean("useSampling", options.enable_sampling); 182 monitoring_options.SetBoolean("useSampling", config.IsSamplingEnabled());
188 183
189 std::string monitoring_options_json; 184 std::string monitoring_options_json;
190 base::JSONWriter::Write(monitoring_options, &monitoring_options_json); 185 base::JSONWriter::Write(monitoring_options, &monitoring_options_json);
191 186
192 base::RefCountedString* monitoring_options_base64 = 187 base::RefCountedString* monitoring_options_base64 =
193 new base::RefCountedString(); 188 new base::RefCountedString();
194 base::Base64Encode(monitoring_options_json, 189 base::Base64Encode(monitoring_options_json,
195 &monitoring_options_base64->data()); 190 &monitoring_options_base64->data());
196 callback.Run(monitoring_options_base64); 191 callback.Run(monitoring_options_base64);
197 } 192 }
(...skipping 154 matching lines...) Expand 10 before | Expand all | Expand 10 after
352 web_ui()->CallJavascriptFunction("onUploadComplete", 347 web_ui()->CallJavascriptFunction("onUploadComplete",
353 base::StringValue(feedback)); 348 base::StringValue(feedback));
354 } else { 349 } else {
355 web_ui()->CallJavascriptFunction("onUploadError", 350 web_ui()->CallJavascriptFunction("onUploadError",
356 base::StringValue(feedback)); 351 base::StringValue(feedback));
357 } 352 }
358 trace_uploader_.reset(); 353 trace_uploader_.reset();
359 } 354 }
360 355
361 } // namespace content 356 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/tracing/tracing_controller_impl.cc ('k') | content/common/gpu/client/gl_helper_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698