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

Unified Diff: content/browser/devtools/devtools_tracing_handler.cc

Issue 11958010: DevTools: brush up remote debugging browser target: use callbacks, make handlers implementation a m… (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Review comments addressed (left error handling order in place) Created 7 years, 11 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « content/browser/devtools/devtools_tracing_handler.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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
« no previous file with comments | « content/browser/devtools/devtools_tracing_handler.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698