Chromium Code Reviews| Index: content/browser/devtools/devtools_tracing_handler.cc |
| diff --git a/content/browser/devtools/devtools_tracing_handler.cc b/content/browser/devtools/devtools_tracing_handler.cc |
| index ca8a3f2ef3fa73e61b4954c68f5e0039d40ab348..9125bc9f92c70e64e2a50471911abf2c4bfef111 100644 |
| --- a/content/browser/devtools/devtools_tracing_handler.cc |
| +++ b/content/browser/devtools/devtools_tracing_handler.cc |
| @@ -15,82 +15,64 @@ |
| namespace content { |
| +namespace { |
| + |
| +static const char* kTracingDomain = "Tracing"; |
|
bulach
2013/01/16 14:56:21
"const char kFoo[]" rather than "static const char
pfeldman
2013/01/16 15:33:38
Done.
|
| + |
| +static const char* kTracingStartCommand = "Tracing.start"; |
| +static const char* kTracingEndCommand = "Tracing.end"; |
| + |
| +static const char* kTracingCompleteNotification = "Tracing.tracingComplete"; |
| +static const char* kTracingDataCollected = "Tracing.dataCollected"; |
| + |
| +static const char* kCategoriesParam = "categories"; |
| + |
| +} // namespace |
| + |
| DevToolsTracingHandler::DevToolsTracingHandler() |
| - : is_running_(false) { |
| + : DevToolsBrowserTarget::DomainHandler(kTracingDomain), |
| + is_running_(false) { |
| + RegisterCommandHandler(kTracingStartCommand, |
| + Bind(&DevToolsTracingHandler::OnStart, |
| + base::Unretained(this))); |
| + RegisterCommandHandler(kTracingEndCommand, |
| + Bind(&DevToolsTracingHandler::OnEnd, |
| + base::Unretained(this))); |
| } |
| DevToolsTracingHandler::~DevToolsTracingHandler() { |
| } |
| -std::string DevToolsTracingHandler::Domain() { |
| - return "Tracing"; |
| -} |
| - |
| void DevToolsTracingHandler::OnEndTracingComplete() { |
| is_running_ = false; |
| - SendNotification("Tracing.tracingComplete", ""); |
| + SendNotification(kTracingCompleteNotification, NULL, NULL); |
| } |
| void DevToolsTracingHandler::OnTraceDataCollected( |
| const scoped_refptr<base::RefCountedString>& trace_fragment) { |
| - if (is_running_) |
| - SendNotification("Tracing.dataCollected", trace_fragment->data()); |
| + if (is_running_) { |
| + base::DictionaryValue* params = new base::DictionaryValue(); |
| + params->SetString("result", trace_fragment->data()); |
| + SendNotification(kTracingDataCollected, params, NULL); |
| + } |
| } |
| -base::Value* DevToolsTracingHandler::OnProtocolCommand( |
| - const std::string& method, |
| +base::DictionaryValue* DevToolsTracingHandler::OnStart( |
| const base::DictionaryValue* params, |
| base::Value** error_out) { |
| - if (method == "Tracing.start") |
| - return Start(params); |
| - else if (method == "Tracing.end") |
| - return End(params); |
| - |
| - base::DictionaryValue* error_object = new base::DictionaryValue(); |
| - error_object->SetInteger("code", -1); |
| - error_object->SetString("message", "Invalid method"); |
| - |
| - *error_out = error_object; |
| - |
| - return NULL; |
| -} |
| - |
| -base::Value* DevToolsTracingHandler::Start( |
| - const base::DictionaryValue* params) { |
| std::string categories; |
| - if (params && params->HasKey("categories")) |
| - params->GetString("categories", &categories); |
| + if (params && params->HasKey(kCategoriesParam)) |
| + params->GetString(kCategoriesParam, &categories); |
| TraceController::GetInstance()->BeginTracing(this, categories); |
| is_running_ = true; |
| - |
| - return base::Value::CreateBooleanValue(true); |
| + return NULL; |
|
bulach
2013/01/16 14:56:21
here and 75, needs to return base::Value::CreateBo
pfeldman
2013/01/16 15:33:38
I'll try to make harness happy with existing messa
|
| } |
| -base::Value* DevToolsTracingHandler::End( |
| - const base::DictionaryValue* /* params */) { |
| +base::DictionaryValue* DevToolsTracingHandler::OnEnd( |
| + const base::DictionaryValue* params, |
| + base::Value** error_out) { |
| TraceController::GetInstance()->EndTracingAsync(this); |
| - |
| - return base::Value::CreateBooleanValue(true); |
| -} |
| - |
| -void DevToolsTracingHandler::SendNotification( |
| - const std::string& method, const std::string& value) { |
| - scoped_ptr<base::DictionaryValue> ret(new base::DictionaryValue()); |
| - ret->SetString("method", method); |
| - |
| - if (!value.empty()) { |
| - base::DictionaryValue* params = new base::DictionaryValue(); |
| - params->SetString("value", value); |
| - |
| - ret->Set("params", params); |
| - } |
| - |
| - // Serialize response. |
| - std::string json_response; |
| - base::JSONWriter::Write(ret.get(), &json_response); |
| - |
| - notifier()->Notify(json_response); |
| + return NULL; |
| } |
| - |
| } // namespace content |