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

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

Issue 635733003: [DevTools] Migrate DevToolsTracingHandler to generated handler. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 6 years, 2 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
Index: content/browser/devtools/devtools_http_handler_impl.cc
diff --git a/content/browser/devtools/devtools_http_handler_impl.cc b/content/browser/devtools/devtools_http_handler_impl.cc
index 9029441967da877b76f75a3601fe11340a180c2a..595f51b5b9dcf00451ebe73956cc658bb14afbe5 100644
--- a/content/browser/devtools/devtools_http_handler_impl.cc
+++ b/content/browser/devtools/devtools_http_handler_impl.cc
@@ -21,7 +21,8 @@
#include "content/browser/devtools/devtools_protocol.h"
#include "content/browser/devtools/devtools_protocol_constants.h"
#include "content/browser/devtools/devtools_system_info_handler.h"
-#include "content/browser/devtools/devtools_tracing_handler.h"
+#include "content/browser/devtools/protocol/devtools_protocol_handler_impl.h"
+#include "content/browser/devtools/protocol/tracing_handler.h"
#include "content/browser/devtools/tethering_handler.h"
#include "content/common/devtools_messages.h"
#include "content/public/browser/browser_thread.h"
@@ -159,7 +160,13 @@ class DevToolsHttpHandlerImpl::BrowserTarget {
int connection_id)
: message_loop_(message_loop),
server_(server),
- connection_id_(connection_id) {
+ connection_id_(connection_id),
+ tracing_handler_(new devtools::tracing::TracingHandler(
+ devtools::tracing::TracingHandler::Browser)),
+ protocol_handler_(new DevToolsProtocolHandlerImpl()) {
+ protocol_handler_->SetNotifier(
+ base::Bind(&BrowserTarget::Respond, base::Unretained(this)));
+ protocol_handler_->SetTracingHandler(tracing_handler_.get());
}
~BrowserTarget() {
@@ -184,17 +191,20 @@ class DevToolsHttpHandlerImpl::BrowserTarget {
return;
}
+ scoped_refptr<DevToolsProtocol::Response> response =
+ protocol_handler_->HandleCommand(command);
for (const auto& handler : handlers_) {
- scoped_refptr<DevToolsProtocol::Response> response =
- handler->HandleCommand(command);
- if (response.get()) {
- if (!response->is_async_promise())
- Respond(response->Serialize());
- return;
- }
+ if (response.get())
+ break;
+ response = handler->HandleCommand(command);
}
- Respond(command->NoSuchMethodErrorResponse()->Serialize());
+ if (response.get()) {
+ if (!response->is_async_promise())
+ Respond(response->Serialize());
+ } else {
+ Respond(command->NoSuchMethodErrorResponse()->Serialize());
+ }
}
void Respond(const std::string& message) {
@@ -211,6 +221,8 @@ class DevToolsHttpHandlerImpl::BrowserTarget {
base::MessageLoop* const message_loop_;
net::HttpServer* const server_;
const int connection_id_;
+ scoped_ptr<devtools::tracing::TracingHandler> tracing_handler_;
+ scoped_ptr<DevToolsProtocolHandlerImpl> protocol_handler_;
std::vector<DevToolsProtocol::Handler*> handlers_;
};
@@ -692,8 +704,6 @@ void DevToolsHttpHandlerImpl::OnWebSocketRequestUI(
BrowserTarget* browser_target = new BrowserTarget(
thread_->message_loop(), server_.get(), connection_id);
browser_target->RegisterHandler(
- new DevToolsTracingHandler(DevToolsTracingHandler::Browser));
- browser_target->RegisterHandler(
new TetheringHandler(delegate_.get(), thread_->message_loop_proxy()));
browser_target->RegisterHandler(
new DevToolsSystemInfoHandler());

Powered by Google App Engine
This is Rietveld 408576698