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 1add17e62cc9b5caa360222d539d8b68862472e9..c6a8fe0019d239a57ff20b339c110446b9e3b131 100644 |
--- a/content/browser/devtools/devtools_http_handler_impl.cc |
+++ b/content/browser/devtools/devtools_http_handler_impl.cc |
@@ -20,8 +20,8 @@ |
#include "content/browser/devtools/devtools_manager.h" |
#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/protocol/devtools_protocol_handler_impl.h" |
+#include "content/browser/devtools/protocol/system_info_handler.h" |
#include "content/browser/devtools/protocol/tethering_handler.h" |
#include "content/browser/devtools/protocol/tracing_handler.h" |
#include "content/common/devtools_messages.h" |
@@ -161,6 +161,7 @@ class DevToolsHttpHandlerImpl::BrowserTarget { |
: message_loop_(message_loop), |
server_(server), |
connection_id_(connection_id), |
+ system_info_handler_(new devtools::system_info::SystemInfoHandler()), |
tethering_handler_(new devtools::tethering::TetheringHandler( |
delegate, message_loop->message_loop_proxy())), |
tracing_handler_(new devtools::tracing::TracingHandler( |
@@ -168,22 +169,12 @@ class DevToolsHttpHandlerImpl::BrowserTarget { |
protocol_handler_(new DevToolsProtocolHandlerImpl()) { |
protocol_handler_->SetNotifier( |
base::Bind(&BrowserTarget::Respond, base::Unretained(this))); |
+ protocol_handler_->SetSystemInfoHandler(system_info_handler_.get()); |
protocol_handler_->SetTetheringHandler(tethering_handler_.get()); |
protocol_handler_->SetTracingHandler(tracing_handler_.get()); |
} |
- ~BrowserTarget() { |
- STLDeleteElements(&handlers_); |
- } |
- |
// Takes ownership. |
dgozman
2014/10/28 10:19:58
Obsolete comment.
vkuzkokov
2014/10/28 11:57:50
Done.
|
- void RegisterHandler(DevToolsProtocol::Handler* handler) { |
- DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
- handler->SetNotifier( |
- base::Bind(&BrowserTarget::Respond, base::Unretained(this))); |
- handlers_.push_back(handler); |
- } |
- |
void HandleMessage(const std::string& message) { |
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
std::string error_response; |
@@ -196,11 +187,6 @@ class DevToolsHttpHandlerImpl::BrowserTarget { |
scoped_refptr<DevToolsProtocol::Response> response = |
protocol_handler_->HandleCommand(command); |
- for (const auto& handler : handlers_) { |
- if (response.get()) |
- break; |
- response = handler->HandleCommand(command); |
- } |
if (response.get()) { |
if (!response->is_async_promise()) |
@@ -224,10 +210,10 @@ class DevToolsHttpHandlerImpl::BrowserTarget { |
base::MessageLoop* const message_loop_; |
net::HttpServer* const server_; |
const int connection_id_; |
+ scoped_ptr<devtools::system_info::SystemInfoHandler> system_info_handler_; |
scoped_ptr<devtools::tethering::TetheringHandler> tethering_handler_; |
scoped_ptr<devtools::tracing::TracingHandler> tracing_handler_; |
scoped_ptr<DevToolsProtocolHandlerImpl> protocol_handler_; |
- std::vector<DevToolsProtocol::Handler*> handlers_; |
}; |
// DevToolsHttpHandler ------------------------------------------------------- |
@@ -705,11 +691,8 @@ void DevToolsHttpHandlerImpl::OnWebSocketRequestUI( |
std::string browser_prefix = "/devtools/browser"; |
size_t browser_pos = request.path.find(browser_prefix); |
if (browser_pos == 0) { |
- BrowserTarget* browser_target = new BrowserTarget( |
+ browser_targets_[connection_id] = new BrowserTarget( |
thread_->message_loop(), server_.get(), delegate_.get(), connection_id); |
- browser_target->RegisterHandler( |
- new DevToolsSystemInfoHandler()); |
- browser_targets_[connection_id] = browser_target; |
AcceptWebSocket(connection_id, request); |
return; |
} |