Chromium Code Reviews| 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/devtools/devtools_tracing_handler.h" | 5 #include "content/browser/devtools/devtools_tracing_handler.h" |
| 6 | 6 |
| 7 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "base/callback.h" | 8 #include "base/callback.h" |
| 9 #include "base/json/json_writer.h" | 9 #include "base/json/json_writer.h" |
| 10 #include "base/location.h" | 10 #include "base/location.h" |
| 11 #include "base/values.h" | 11 #include "base/values.h" |
| 12 #include "content/browser/devtools/devtools_http_handler_impl.h" | 12 #include "content/browser/devtools/devtools_http_handler_impl.h" |
| 13 #include "content/public/browser/trace_controller.h" | 13 #include "content/public/browser/trace_controller.h" |
| 14 #include "content/public/browser/trace_subscriber.h" | 14 #include "content/public/browser/trace_subscriber.h" |
| 15 | 15 |
| 16 namespace content { | 16 namespace content { |
| 17 | 17 |
| 18 namespace { | 18 namespace { |
| 19 | 19 |
| 20 const char kTracingDomain[] = "Tracing"; | 20 const char kTracingDomain[] = "Tracing"; |
| 21 | 21 |
| 22 const char kTracingStartCommand[] = "Tracing.start"; | 22 const char kTracingStartCommand[] = "Tracing.start"; |
| 23 const char kTracingEndCommand[] = "Tracing.end"; | 23 const char kTracingEndCommand[] = "Tracing.end"; |
| 24 | 24 |
| 25 const char kTracingCompleteNotification[] = "Tracing.tracingComplete"; | 25 const char kTracingCompleteNotification[] = "Tracing.tracingComplete"; |
| 26 const char kTracingDataCollected[] = "Tracing.dataCollected"; | 26 const char kTracingDataCollected[] = "Tracing.dataCollected"; |
| 27 | 27 |
| 28 const char kCategoriesParam[] = "categories"; | 28 const char kCategoriesParam[] = "categories"; |
| 29 const char kTraceModeParam[] = "trace-mode"; | |
| 29 | 30 |
| 30 } // namespace | 31 } // namespace |
| 31 | 32 |
| 32 DevToolsTracingHandler::DevToolsTracingHandler() | 33 DevToolsTracingHandler::DevToolsTracingHandler() |
| 33 : DevToolsBrowserTarget::DomainHandler(kTracingDomain), | 34 : DevToolsBrowserTarget::DomainHandler(kTracingDomain), |
| 34 is_running_(false) { | 35 is_running_(false) { |
| 35 RegisterCommandHandler(kTracingStartCommand, | 36 RegisterCommandHandler(kTracingStartCommand, |
| 36 base::Bind(&DevToolsTracingHandler::OnStart, | 37 base::Bind(&DevToolsTracingHandler::OnStart, |
| 37 base::Unretained(this))); | 38 base::Unretained(this))); |
| 38 RegisterCommandHandler(kTracingEndCommand, | 39 RegisterCommandHandler(kTracingEndCommand, |
| (...skipping 17 matching lines...) Expand all Loading... | |
| 56 SendNotification(kTracingDataCollected, params); | 57 SendNotification(kTracingDataCollected, params); |
| 57 } | 58 } |
| 58 } | 59 } |
| 59 | 60 |
| 60 scoped_ptr<DevToolsProtocol::Response> | 61 scoped_ptr<DevToolsProtocol::Response> |
| 61 DevToolsTracingHandler::OnStart(DevToolsProtocol::Command* command) { | 62 DevToolsTracingHandler::OnStart(DevToolsProtocol::Command* command) { |
| 62 std::string categories; | 63 std::string categories; |
| 63 base::DictionaryValue* params = command->params(); | 64 base::DictionaryValue* params = command->params(); |
| 64 if (params && params->HasKey(kCategoriesParam)) | 65 if (params && params->HasKey(kCategoriesParam)) |
| 65 params->GetString(kCategoriesParam, &categories); | 66 params->GetString(kCategoriesParam, &categories); |
| 66 TraceController::GetInstance()->BeginTracing(this, categories); | 67 |
| 68 base::debug::TraceMode mode = base::debug::UNTIL_FULL; | |
| 69 if (params && params->HasKey(kTraceModeParam)) { | |
| 70 int mode_; | |
| 71 params->GetInteger(kTraceModeParam, &mode_); | |
|
pfeldman
2013/02/20 09:33:38
You should check for it returning value here.
We a
dsinclair
2013/02/20 20:36:13
Done.
I put the conversion in the trace_event_imp
| |
| 72 mode = static_cast<base::debug::TraceMode>(mode_); | |
| 73 } | |
| 74 | |
| 75 TraceController::GetInstance()->BeginTracing(this, categories, mode); | |
| 67 is_running_ = true; | 76 is_running_ = true; |
| 68 return command->SuccessResponse(NULL); | 77 return command->SuccessResponse(NULL); |
| 69 } | 78 } |
| 70 | 79 |
| 71 | 80 |
| 72 scoped_ptr<DevToolsProtocol::Response> | 81 scoped_ptr<DevToolsProtocol::Response> |
| 73 DevToolsTracingHandler::OnEnd(DevToolsProtocol::Command* command) { | 82 DevToolsTracingHandler::OnEnd(DevToolsProtocol::Command* command) { |
| 74 TraceController::GetInstance()->EndTracingAsync(this); | 83 TraceController::GetInstance()->EndTracingAsync(this); |
| 75 return command->SuccessResponse(NULL); | 84 return command->SuccessResponse(NULL); |
| 76 } | 85 } |
| 77 | 86 |
| 78 } // namespace content | 87 } // namespace content |
| OLD | NEW |