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..7dc68c40b2cf012b83cf3172f16abbe1ded26a67 100644 |
--- a/content/browser/devtools/devtools_tracing_handler.cc |
+++ b/content/browser/devtools/devtools_tracing_handler.cc |
@@ -15,82 +15,64 @@ |
namespace content { |
+namespace { |
+ |
+const char kTracingDomain[] = "Tracing"; |
+ |
+const char kTracingStartCommand[] = "Tracing.start"; |
+const char kTracingEndCommand[] = "Tracing.end"; |
+ |
+const char kTracingCompleteNotification[] = "Tracing.tracingComplete"; |
+const char kTracingDataCollected[] = "Tracing.dataCollected"; |
+ |
+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("value", 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; |
} |
-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 |