OLD | NEW |
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 111 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
122 category_filter, | 122 category_filter, |
123 tracing_options, | 123 tracing_options, |
124 base::Bind(&OnRecordingEnabledAck, callback)); | 124 base::Bind(&OnRecordingEnabledAck, callback)); |
125 } | 125 } |
126 | 126 |
127 void OnRecordingEnabledAck(const WebUIDataSource::GotDataCallback& callback) { | 127 void OnRecordingEnabledAck(const WebUIDataSource::GotDataCallback& callback) { |
128 base::RefCountedString* res = new base::RefCountedString(); | 128 base::RefCountedString* res = new base::RefCountedString(); |
129 callback.Run(res); | 129 callback.Run(res); |
130 } | 130 } |
131 | 131 |
132 void OnTraceBufferPercentFullResult( | 132 void OnTraceBufferUsageResult(const WebUIDataSource::GotDataCallback& callback, |
133 const WebUIDataSource::GotDataCallback& callback, float result) { | 133 float percent_full, |
134 std::string str = base::DoubleToString(result); | 134 size_t approximate_event_count) { |
| 135 std::string str = base::DoubleToString(percent_full); |
135 callback.Run(base::RefCountedString::TakeString(&str)); | 136 callback.Run(base::RefCountedString::TakeString(&str)); |
136 } | 137 } |
137 | 138 |
| 139 void OnTraceBufferStatusResult(const WebUIDataSource::GotDataCallback& callback, |
| 140 float percent_full, |
| 141 size_t approximate_event_count) { |
| 142 scoped_ptr<base::DictionaryValue> status(new base::DictionaryValue()); |
| 143 status->SetDouble("percentFull", percent_full); |
| 144 status->SetInteger("approximateEventCount", approximate_event_count); |
| 145 |
| 146 std::string status_json; |
| 147 base::JSONWriter::Write(status.get(), &status_json); |
| 148 |
| 149 base::RefCountedString* status_base64 = new base::RefCountedString(); |
| 150 base::Base64Encode(status_json, &status_base64->data()); |
| 151 callback.Run(status_base64); |
| 152 } |
| 153 |
138 void OnMonitoringEnabledAck(const WebUIDataSource::GotDataCallback& callback); | 154 void OnMonitoringEnabledAck(const WebUIDataSource::GotDataCallback& callback); |
139 | 155 |
140 bool EnableMonitoring(const std::string& data64, | 156 bool EnableMonitoring(const std::string& data64, |
141 const WebUIDataSource::GotDataCallback& callback) { | 157 const WebUIDataSource::GotDataCallback& callback) { |
142 base::debug::TraceOptions tracing_options; | 158 base::debug::TraceOptions tracing_options; |
143 base::debug::CategoryFilter category_filter(""); | 159 base::debug::CategoryFilter category_filter(""); |
144 if (!GetTracingOptions(data64, &category_filter, &tracing_options)) | 160 if (!GetTracingOptions(data64, &category_filter, &tracing_options)) |
145 return false; | 161 return false; |
146 | 162 |
147 return TracingController::GetInstance()->EnableMonitoring( | 163 return TracingController::GetInstance()->EnableMonitoring( |
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
198 return TracingController::GetInstance()->GetCategories( | 214 return TracingController::GetInstance()->GetCategories( |
199 base::Bind(OnGotCategories, callback)); | 215 base::Bind(OnGotCategories, callback)); |
200 } | 216 } |
201 | 217 |
202 const char* beginRecordingPath = "json/begin_recording?"; | 218 const char* beginRecordingPath = "json/begin_recording?"; |
203 if (StartsWithASCII(path, beginRecordingPath, true)) { | 219 if (StartsWithASCII(path, beginRecordingPath, true)) { |
204 std::string data = path.substr(strlen(beginRecordingPath)); | 220 std::string data = path.substr(strlen(beginRecordingPath)); |
205 return BeginRecording(data, callback); | 221 return BeginRecording(data, callback); |
206 } | 222 } |
207 if (path == "json/get_buffer_percent_full") { | 223 if (path == "json/get_buffer_percent_full") { |
208 return TracingController::GetInstance()->GetTraceBufferPercentFull( | 224 return TracingController::GetInstance()->GetTraceBufferUsage( |
209 base::Bind(OnTraceBufferPercentFullResult, callback)); | 225 base::Bind(OnTraceBufferUsageResult, callback)); |
| 226 } |
| 227 if (path == "json/get_buffer_status") { |
| 228 return TracingController::GetInstance()->GetTraceBufferUsage( |
| 229 base::Bind(OnTraceBufferStatusResult, callback)); |
210 } | 230 } |
211 if (path == "json/end_recording") { | 231 if (path == "json/end_recording") { |
212 return TracingController::GetInstance()->DisableRecording( | 232 return TracingController::GetInstance()->DisableRecording( |
213 TracingControllerImpl::CreateStringSink( | 233 TracingControllerImpl::CreateStringSink( |
214 base::Bind(TracingCallbackWrapper, callback))); | 234 base::Bind(TracingCallbackWrapper, callback))); |
215 } | 235 } |
216 | 236 |
217 const char* enableMonitoringPath = "json/begin_monitoring?"; | 237 const char* enableMonitoringPath = "json/begin_monitoring?"; |
218 if (path.find(enableMonitoringPath) == 0) { | 238 if (path.find(enableMonitoringPath) == 0) { |
219 std::string data = path.substr(strlen(enableMonitoringPath)); | 239 std::string data = path.substr(strlen(enableMonitoringPath)); |
(...skipping 157 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
377 if (success) { | 397 if (success) { |
378 web_ui()->CallJavascriptFunction("onUploadComplete", | 398 web_ui()->CallJavascriptFunction("onUploadComplete", |
379 base::StringValue(report_id)); | 399 base::StringValue(report_id)); |
380 } else { | 400 } else { |
381 web_ui()->CallJavascriptFunction("onUploadError", | 401 web_ui()->CallJavascriptFunction("onUploadError", |
382 base::StringValue(error_message)); | 402 base::StringValue(error_message)); |
383 } | 403 } |
384 } | 404 } |
385 | 405 |
386 } // namespace content | 406 } // namespace content |
OLD | NEW |