| Index: content/browser/devtools/protocol/target_handler.cc
|
| diff --git a/content/browser/devtools/protocol/target_handler.cc b/content/browser/devtools/protocol/target_handler.cc
|
| index 254a4ac1f18d2bf98d56f8994177e9dab1d841a7..78778f4bd06e36da6eb449c3842d9b133b13fd1e 100644
|
| --- a/content/browser/devtools/protocol/target_handler.cc
|
| +++ b/content/browser/devtools/protocol/target_handler.cc
|
| @@ -11,10 +11,7 @@
|
| #include "content/browser/frame_host/render_frame_host_impl.h"
|
|
|
| namespace content {
|
| -namespace devtools {
|
| -namespace target {
|
| -
|
| -using Response = DevToolsProtocolClient::Response;
|
| +namespace protocol {
|
|
|
| namespace {
|
|
|
| @@ -84,12 +81,13 @@ ServiceWorkerDevToolsAgentHost::Map GetMatchingServiceWorkers(
|
| return result;
|
| }
|
|
|
| -scoped_refptr<TargetInfo> CreateInfo(DevToolsAgentHost* host) {
|
| - return TargetInfo::Create()
|
| - ->set_target_id(host->GetId())
|
| - ->set_title(host->GetTitle())
|
| - ->set_url(host->GetURL().spec())
|
| - ->set_type(host->GetType());
|
| +std::unique_ptr<Target::TargetInfo> CreateInfo(DevToolsAgentHost* host) {
|
| + return Target::TargetInfo::Create()
|
| + .SetTargetId(host->GetId())
|
| + .SetTitle(host->GetTitle())
|
| + .SetUrl(host->GetURL().spec())
|
| + .SetType(host->GetType())
|
| + .Build();
|
| }
|
|
|
| } // namespace
|
| @@ -103,7 +101,11 @@ TargetHandler::TargetHandler()
|
| }
|
|
|
| TargetHandler::~TargetHandler() {
|
| - Detached();
|
| +}
|
| +
|
| +void TargetHandler::Wire(UberDispatcher* dispatcher) {
|
| + frontend_.reset(new Target::Frontend(dispatcher->channel()));
|
| + Target::Dispatcher::wire(dispatcher, this);
|
| }
|
|
|
| void TargetHandler::SetRenderFrameHost(RenderFrameHostImpl* render_frame_host) {
|
| @@ -111,16 +113,13 @@ void TargetHandler::SetRenderFrameHost(RenderFrameHostImpl* render_frame_host) {
|
| UpdateFrames();
|
| }
|
|
|
| -void TargetHandler::SetClient(std::unique_ptr<Client> client) {
|
| - client_.swap(client);
|
| -}
|
| -
|
| -void TargetHandler::Detached() {
|
| +Response TargetHandler::Disable() {
|
| SetAutoAttach(false, false);
|
| SetDiscoverTargets(false);
|
| for (const auto& id_host : attached_hosts_)
|
| id_host.second->DetachClient(this);
|
| attached_hosts_.clear();
|
| + return Response::OK();
|
| }
|
|
|
| void TargetHandler::UpdateServiceWorkers() {
|
| @@ -198,8 +197,7 @@ void TargetHandler::ReattachTargetsOfType(
|
| void TargetHandler::TargetCreatedInternal(DevToolsAgentHost* host) {
|
| if (reported_hosts_.find(host->GetId()) != reported_hosts_.end())
|
| return;
|
| - client_->TargetCreated(
|
| - TargetCreatedParams::Create()->set_target_info(CreateInfo(host)));
|
| + frontend_->TargetCreated(CreateInfo(host));
|
| reported_hosts_[host->GetId()] = host;
|
| }
|
|
|
| @@ -208,8 +206,7 @@ void TargetHandler::TargetDestroyedInternal(
|
| auto it = reported_hosts_.find(host->GetId());
|
| if (it == reported_hosts_.end())
|
| return;
|
| - client_->TargetDestroyed(TargetDestroyedParams::Create()
|
| - ->set_target_id(host->GetId()));
|
| + frontend_->TargetDestroyed(host->GetId());
|
| reported_hosts_.erase(it);
|
| }
|
|
|
| @@ -218,9 +215,7 @@ bool TargetHandler::AttachToTargetInternal(
|
| if (!host->AttachClient(this))
|
| return false;
|
| attached_hosts_[host->GetId()] = host;
|
| - client_->AttachedToTarget(AttachedToTargetParams::Create()
|
| - ->set_target_info(CreateInfo(host))
|
| - ->set_waiting_for_debugger(waiting_for_debugger));
|
| + frontend_->AttachedToTarget(CreateInfo(host), waiting_for_debugger);
|
| return true;
|
| }
|
|
|
| @@ -229,8 +224,7 @@ void TargetHandler::DetachFromTargetInternal(DevToolsAgentHost* host) {
|
| if (it == attached_hosts_.end())
|
| return;
|
| host->DetachClient(this);
|
| - client_->DetachedFromTarget(DetachedFromTargetParams::Create()->
|
| - set_target_id(host->GetId()));
|
| + frontend_->DetachedFromTarget(host->GetId());
|
| attached_hosts_.erase(it);
|
| }
|
|
|
| @@ -284,8 +278,8 @@ Response TargetHandler::SetAttachToFrames(bool value) {
|
| }
|
|
|
| Response TargetHandler::SetRemoteLocations(
|
| - const std::vector<std::unique_ptr<base::DictionaryValue>>& locations) {
|
| - return Response::ServerError("Not supported");
|
| + std::unique_ptr<protocol::Array<Target::RemoteLocation>>) {
|
| + return Response::Error("Not supported");
|
| }
|
|
|
| Response TargetHandler::AttachToTarget(const std::string& target_id,
|
| @@ -294,7 +288,7 @@ Response TargetHandler::AttachToTarget(const std::string& target_id,
|
| scoped_refptr<DevToolsAgentHost> agent_host =
|
| DevToolsAgentHost::GetForId(target_id);
|
| if (!agent_host)
|
| - return Response::ServerError("No target with given id found");
|
| + return Response::InvalidParams("No target with given id found");
|
| *out_success = AttachToTargetInternal(agent_host.get(), false);
|
| return Response::OK();
|
| }
|
| @@ -302,7 +296,7 @@ Response TargetHandler::AttachToTarget(const std::string& target_id,
|
| Response TargetHandler::DetachFromTarget(const std::string& target_id) {
|
| auto it = attached_hosts_.find(target_id);
|
| if (it == attached_hosts_.end())
|
| - return Response::InternalError("Not attached to the target");
|
| + return Response::Error("Not attached to the target");
|
| DevToolsAgentHost* agent_host = it->second.get();
|
| DetachFromTargetInternal(agent_host);
|
| return Response::OK();
|
| @@ -320,7 +314,7 @@ Response TargetHandler::SendMessageToTarget(
|
|
|
| Response TargetHandler::GetTargetInfo(
|
| const std::string& target_id,
|
| - scoped_refptr<TargetInfo>* target_info) {
|
| + std::unique_ptr<Target::TargetInfo>* target_info) {
|
| // TODO(dgozman): only allow reported hosts.
|
| scoped_refptr<DevToolsAgentHost> agent_host(
|
| DevToolsAgentHost::GetForId(target_id));
|
| @@ -345,41 +339,42 @@ Response TargetHandler::CloseTarget(const std::string& target_id,
|
| scoped_refptr<DevToolsAgentHost> agent_host =
|
| DevToolsAgentHost::GetForId(target_id);
|
| if (!agent_host)
|
| - return Response::ServerError("No target with given id found");
|
| + return Response::InvalidParams("No target with given id found");
|
| *out_success = agent_host->Close();
|
| return Response::OK();
|
| }
|
|
|
| Response TargetHandler::CreateBrowserContext(std::string* out_context_id) {
|
| - return Response::ServerError("Not supported");
|
| + return Response::Error("Not supported");
|
| }
|
|
|
| Response TargetHandler::DisposeBrowserContext(const std::string& context_id,
|
| bool* out_success) {
|
| - return Response::ServerError("Not supported");
|
| + return Response::Error("Not supported");
|
| }
|
|
|
| Response TargetHandler::CreateTarget(const std::string& url,
|
| - const int* width,
|
| - const int* height,
|
| - const std::string* context_id,
|
| + Maybe<int> width,
|
| + Maybe<int> height,
|
| + Maybe<std::string> context_id,
|
| std::string* out_target_id) {
|
| DevToolsManagerDelegate* delegate =
|
| DevToolsManager::GetInstance()->delegate();
|
| if (!delegate)
|
| - return Response::ServerError("Not supported");
|
| + return Response::Error("Not supported");
|
| scoped_refptr<content::DevToolsAgentHost> agent_host =
|
| delegate->CreateNewTarget(GURL(url));
|
| if (!agent_host)
|
| - return Response::ServerError("Not supported");
|
| + return Response::Error("Not supported");
|
| *out_target_id = agent_host->GetId();
|
| return Response::OK();
|
| }
|
|
|
| Response TargetHandler::GetTargets(
|
| - std::vector<scoped_refptr<TargetInfo>>* target_infos) {
|
| + std::unique_ptr<protocol::Array<Target::TargetInfo>>* target_infos) {
|
| + *target_infos = protocol::Array<Target::TargetInfo>::create();
|
| for (const auto& host : DevToolsAgentHost::GetOrCreateAll())
|
| - target_infos->push_back(CreateInfo(host.get()));
|
| + (*target_infos)->addItem(CreateInfo(host.get()));
|
| return Response::OK();
|
| }
|
|
|
| @@ -392,17 +387,13 @@ void TargetHandler::DispatchProtocolMessage(
|
| if (it == attached_hosts_.end())
|
| return; // Already disconnected.
|
|
|
| - client_->ReceivedMessageFromTarget(
|
| - ReceivedMessageFromTargetParams::Create()->
|
| - set_target_id(host->GetId())->
|
| - set_message(message));
|
| + frontend_->ReceivedMessageFromTarget(host->GetId(), message);
|
| }
|
|
|
| void TargetHandler::AgentHostClosed(
|
| DevToolsAgentHost* host,
|
| bool replaced_with_another_client) {
|
| - client_->DetachedFromTarget(DetachedFromTargetParams::Create()->
|
| - set_target_id(host->GetId()));
|
| + frontend_->DetachedFromTarget(host->GetId());
|
| attached_hosts_.erase(host->GetId());
|
| }
|
|
|
| @@ -462,6 +453,5 @@ void TargetHandler::WorkerDestroyed(
|
| UpdateServiceWorkers();
|
| }
|
|
|
| -} // namespace target
|
| -} // namespace devtools
|
| +} // namespace protocol
|
| } // namespace content
|
|
|