| Index: content/browser/devtools/devtools_session.cc
|
| diff --git a/content/browser/devtools/devtools_session.cc b/content/browser/devtools/devtools_session.cc
|
| index 7f115e550ec916bac9d1bb06a13217b98d015694..60ccb85ebebdd22377769751c2bcd04697f7bb2a 100644
|
| --- a/content/browser/devtools/devtools_session.cc
|
| +++ b/content/browser/devtools/devtools_session.cc
|
| @@ -4,8 +4,12 @@
|
|
|
| #include "content/browser/devtools/devtools_session.h"
|
|
|
| +#include "base/json/json_reader.h"
|
| +#include "base/json/json_writer.h"
|
| #include "content/browser/devtools/devtools_agent_host_impl.h"
|
| +#include "content/browser/devtools/devtools_manager.h"
|
| #include "content/browser/devtools/protocol/protocol.h"
|
| +#include "content/public/browser/devtools_manager_delegate.h"
|
|
|
| namespace content {
|
|
|
| @@ -23,6 +27,30 @@ void DevToolsSession::ResetDispatcher() {
|
| dispatcher_.reset();
|
| }
|
|
|
| +protocol::Response::Status DevToolsSession::Dispatch(
|
| + const std::string& message,
|
| + int* call_id,
|
| + std::string* method) {
|
| + std::unique_ptr<base::Value> value = base::JSONReader::Read(message);
|
| +
|
| + DevToolsManagerDelegate* delegate =
|
| + DevToolsManager::GetInstance()->delegate();
|
| + if (value && value->IsType(base::Value::Type::DICTIONARY) && delegate) {
|
| + std::unique_ptr<base::DictionaryValue> response(delegate->HandleCommand(
|
| + agent_host_,
|
| + static_cast<base::DictionaryValue*>(value.get())));
|
| + if (response) {
|
| + std::string json;
|
| + base::JSONWriter::Write(*response.get(), &json);
|
| + agent_host_->SendMessageToClient(session_id_, json);
|
| + return protocol::Response::kSuccess;
|
| + }
|
| + }
|
| +
|
| + return dispatcher_->dispatch(protocol::toProtocolValue(value.get(), 1000),
|
| + call_id, method);
|
| +}
|
| +
|
| void DevToolsSession::sendProtocolResponse(
|
| int call_id,
|
| std::unique_ptr<protocol::Serializable> message) {
|
|
|