| Index: content/browser/devtools/protocol/browser_handler.cc
|
| diff --git a/content/browser/devtools/protocol/browser_handler.cc b/content/browser/devtools/protocol/browser_handler.cc
|
| index be31b84ce8a8cc9629b6442953fda0884184a84b..a719d2218666cab569f65360d54b2366f59a4a4d 100644
|
| --- a/content/browser/devtools/protocol/browser_handler.cc
|
| +++ b/content/browser/devtools/protocol/browser_handler.cc
|
| @@ -4,6 +4,10 @@
|
|
|
| #include "content/browser/devtools/protocol/browser_handler.h"
|
|
|
| +#include "content/public/browser/render_widget_host_view.h"
|
| +#include "content/public/browser/web_contents.h"
|
| +#include "ui/gfx/geometry/size.h"
|
| +
|
| namespace content {
|
| namespace devtools {
|
| namespace browser {
|
| @@ -18,11 +22,9 @@ const char kTargetTypeServiceOther[] = "other";
|
|
|
| using Response = DevToolsProtocolClient::Response;
|
|
|
| -BrowserHandler::BrowserHandler() {
|
| -}
|
| +BrowserHandler::BrowserHandler() {}
|
|
|
| -BrowserHandler::~BrowserHandler() {
|
| -}
|
| +BrowserHandler::~BrowserHandler() {}
|
|
|
| void BrowserHandler::SetClient(std::unique_ptr<Client> client) {
|
| client_.swap(client);
|
| @@ -87,18 +89,62 @@ Response BrowserHandler::GetTargets(TargetInfos* infos) {
|
| set_type(GetTypeString(agent_host))->
|
| set_title(agent_host->GetTitle())->
|
| set_url(agent_host->GetURL().spec());
|
| + infos->push_back(info);
|
| }
|
| return Response::OK();
|
| }
|
|
|
| +Response BrowserHandler::GetFrameSize(const std::string& target_id,
|
| + int* width,
|
| + int* height) {
|
| + scoped_refptr<DevToolsAgentHost> agent_host =
|
| + DevToolsAgentHost::GetForId(target_id);
|
| + if (!agent_host)
|
| + return Response::ServerError("No target with given id found");
|
| +
|
| + // Get size of frame from RWHV if available.
|
| + WebContents* web_contents = agent_host->GetWebContents();
|
| + RenderWidgetHostView* view =
|
| + web_contents ? web_contents->GetRenderWidgetHostView() : nullptr;
|
| + if (!view)
|
| + return Response::ServerError("Target does not support GetFrameSize");
|
| +
|
| + gfx::Size size = view->GetViewBounds().size();
|
| + *width = size.width();
|
| + *height = size.height();
|
| + return Response::OK();
|
| +}
|
| +
|
| +Response BrowserHandler::SetFrameSize(const std::string& target_id,
|
| + int width,
|
| + int height) {
|
| + scoped_refptr<DevToolsAgentHost> agent_host =
|
| + DevToolsAgentHost::GetForId(target_id);
|
| + if (!agent_host)
|
| + return Response::ServerError("No target with given id found");
|
| +
|
| + if (width < 0 || height < 0)
|
| + return Response::InvalidParams("Width and height must be non-negative");
|
| +
|
| + // Set size of frame by resizing RWHV if available.
|
| + WebContents* web_contents = agent_host->GetWebContents();
|
| + RenderWidgetHostView* view =
|
| + web_contents ? web_contents->GetRenderWidgetHostView() : nullptr;
|
| + if (!view)
|
| + return Response::ServerError("Target does not support SetFrameSize");
|
| +
|
| + view->SetSize(gfx::Size(width, height));
|
| + return Response::OK();
|
| +}
|
| +
|
| Response BrowserHandler::Attach(const std::string& targetId) {
|
| scoped_refptr<DevToolsAgentHost> agent_host =
|
| DevToolsAgentHost::GetForId(targetId);
|
| if (!agent_host)
|
| return Response::ServerError("No target with given id found");
|
| bool success = agent_host->AttachClient(this);
|
| - return success ? Response::OK() :
|
| - Response::ServerError("Target is already being debugged");
|
| + return success ? Response::OK()
|
| + : Response::ServerError("Target is already being debugged");
|
| }
|
|
|
| Response BrowserHandler::Detach(const std::string& targetId) {
|
| @@ -107,8 +153,8 @@ Response BrowserHandler::Detach(const std::string& targetId) {
|
| if (!agent_host)
|
| return Response::ServerError("No target with given id found");
|
| bool success = agent_host->DetachClient(this);
|
| - return success ? Response::OK() :
|
| - Response::ServerError("Target is not being debugged");
|
| + return success ? Response::OK()
|
| + : Response::ServerError("Target is not being debugged");
|
| }
|
|
|
| Response BrowserHandler::SendMessage(const std::string& targetId,
|
| @@ -121,16 +167,15 @@ Response BrowserHandler::SendMessage(const std::string& targetId,
|
| return Response::OK();
|
| }
|
|
|
| -void BrowserHandler::DispatchProtocolMessage(
|
| - DevToolsAgentHost* agent_host, const std::string& message) {
|
| - client_->DispatchMessage(DispatchMessageParams::Create()->
|
| - set_target_id(agent_host->GetId())->
|
| - set_message(message));
|
| +void BrowserHandler::DispatchProtocolMessage(DevToolsAgentHost* agent_host,
|
| + const std::string& message) {
|
| + client_->DispatchMessage(DispatchMessageParams::Create()
|
| + ->set_target_id(agent_host->GetId())
|
| + ->set_message(message));
|
| }
|
|
|
| void BrowserHandler::AgentHostClosed(DevToolsAgentHost* agent_host,
|
| - bool replaced_with_another_client) {
|
| -}
|
| + bool replaced_with_another_client) {}
|
|
|
| } // namespace browser
|
| } // namespace devtools
|
|
|