| Index: chrome/browser/devtools/chrome_devtools_manager_delegate.cc
|
| diff --git a/chrome/browser/devtools/chrome_devtools_manager_delegate.cc b/chrome/browser/devtools/chrome_devtools_manager_delegate.cc
|
| index f5eb4be6d775dfa5346b50264e2e5bfb3d3fa561..d2008b54831d2afdd9c597ff987ef57e5df4943b 100644
|
| --- a/chrome/browser/devtools/chrome_devtools_manager_delegate.cc
|
| +++ b/chrome/browser/devtools/chrome_devtools_manager_delegate.cc
|
| @@ -4,8 +4,6 @@
|
|
|
| #include "chrome/browser/devtools/chrome_devtools_manager_delegate.h"
|
|
|
| -#include <utility>
|
| -
|
| #include "base/memory/ptr_util.h"
|
| #include "base/strings/utf_string_conversions.h"
|
| #include "build/build_config.h"
|
| @@ -19,10 +17,7 @@
|
| #include "chrome/browser/profiles/profile_manager.h"
|
| #include "chrome/browser/ui/browser_navigator.h"
|
| #include "chrome/browser/ui/browser_navigator_params.h"
|
| -#include "chrome/browser/ui/browser_window.h"
|
| -#include "chrome/browser/ui/exclusive_access/exclusive_access_context.h"
|
| #include "chrome/browser/ui/tab_contents/tab_contents_iterator.h"
|
| -#include "chrome/browser/ui/tabs/tab_strip_model.h"
|
| #include "chrome/grit/browser_resources.h"
|
| #include "components/guest_view/browser/guest_view_base.h"
|
| #include "content/public/browser/devtools_agent_host.h"
|
| @@ -45,43 +40,6 @@ char kLocationsParam[] = "locations";
|
| char kHostParam[] = "host";
|
| char kPortParam[] = "port";
|
|
|
| -BrowserWindow* GetBrowserWindow(int window_id) {
|
| - for (auto* b : *BrowserList::GetInstance()) {
|
| - if (b->session_id().id() == window_id)
|
| - return b->window();
|
| - }
|
| - return nullptr;
|
| -}
|
| -
|
| -// Get the bounds and state of the browser window. The bounds is for the
|
| -// restored window when the window is minimized. Otherwise, it is for the actual
|
| -// window.
|
| -std::unique_ptr<base::DictionaryValue> GetBounds(BrowserWindow* window) {
|
| - gfx::Rect bounds;
|
| - if (window->IsMinimized())
|
| - bounds = window->GetRestoredBounds();
|
| - else
|
| - bounds = window->GetBounds();
|
| -
|
| - auto bounds_object = base::MakeUnique<base::DictionaryValue>();
|
| -
|
| - bounds_object->SetInteger("left", bounds.x());
|
| - bounds_object->SetInteger("top", bounds.y());
|
| - bounds_object->SetInteger("width", bounds.width());
|
| - bounds_object->SetInteger("height", bounds.height());
|
| -
|
| - std::string window_state = "normal";
|
| - if (window->IsMinimized())
|
| - window_state = "minimized";
|
| - if (window->IsMaximized())
|
| - window_state = "maximized";
|
| - if (window->IsFullscreen())
|
| - window_state = "fullscreen";
|
| - bounds_object->SetString("windowState", window_state);
|
| -
|
| - return bounds_object;
|
| -}
|
| -
|
| bool GetExtensionInfo(content::RenderFrameHost* host,
|
| std::string* name,
|
| std::string* type) {
|
| @@ -115,184 +73,6 @@ bool GetExtensionInfo(content::RenderFrameHost* host,
|
|
|
| } // namespace
|
|
|
| -// static
|
| -std::unique_ptr<base::DictionaryValue>
|
| -ChromeDevToolsManagerDelegate::GetWindowForTarget(
|
| - int id,
|
| - base::DictionaryValue* params) {
|
| - std::string target_id;
|
| - if (!params->GetString("targetId", &target_id))
|
| - return DevToolsProtocol::CreateInvalidParamsResponse(id, "targetId");
|
| -
|
| - Browser* browser = nullptr;
|
| - scoped_refptr<DevToolsAgentHost> host =
|
| - DevToolsAgentHost::GetForId(target_id);
|
| - if (!host)
|
| - return DevToolsProtocol::CreateErrorResponse(id, "No target with given id");
|
| - content::WebContents* web_contents = host->GetWebContents();
|
| - if (!web_contents) {
|
| - return DevToolsProtocol::CreateErrorResponse(
|
| - id, "No web contents in the target");
|
| - }
|
| - for (auto* b : *BrowserList::GetInstance()) {
|
| - int tab_index = b->tab_strip_model()->GetIndexOfWebContents(web_contents);
|
| - if (tab_index != TabStripModel::kNoTab)
|
| - browser = b;
|
| - }
|
| - if (!browser) {
|
| - return DevToolsProtocol::CreateErrorResponse(id,
|
| - "Browser window not found");
|
| - }
|
| -
|
| - auto result = base::MakeUnique<base::DictionaryValue>();
|
| - result->SetInteger("windowId", browser->session_id().id());
|
| - result->Set("bounds", GetBounds(browser->window()));
|
| - return DevToolsProtocol::CreateSuccessResponse(id, std::move(result));
|
| -}
|
| -
|
| -// static
|
| -std::unique_ptr<base::DictionaryValue>
|
| -ChromeDevToolsManagerDelegate::GetWindowBounds(int id,
|
| - base::DictionaryValue* params) {
|
| - int window_id;
|
| - if (!params->GetInteger("windowId", &window_id))
|
| - return DevToolsProtocol::CreateInvalidParamsResponse(id, "windowId");
|
| - BrowserWindow* window = GetBrowserWindow(window_id);
|
| - if (!window) {
|
| - return DevToolsProtocol::CreateErrorResponse(id,
|
| - "Browser window not found");
|
| - }
|
| -
|
| - auto result = base::MakeUnique<base::DictionaryValue>();
|
| - result->Set("bounds", GetBounds(window));
|
| - return DevToolsProtocol::CreateSuccessResponse(id, std::move(result));
|
| -}
|
| -
|
| -// static
|
| -std::unique_ptr<base::DictionaryValue>
|
| -ChromeDevToolsManagerDelegate::SetWindowBounds(int id,
|
| - base::DictionaryValue* params) {
|
| - int window_id;
|
| - if (!params->GetInteger("windowId", &window_id))
|
| - return DevToolsProtocol::CreateInvalidParamsResponse(id, "windowId");
|
| - BrowserWindow* window = GetBrowserWindow(window_id);
|
| - if (!window) {
|
| - return DevToolsProtocol::CreateErrorResponse(id,
|
| - "Browser window not found");
|
| - }
|
| -
|
| - const base::Value* value = nullptr;
|
| - const base::DictionaryValue* bounds_dict = nullptr;
|
| - if (!params->Get("bounds", &value) || !value->GetAsDictionary(&bounds_dict))
|
| - return DevToolsProtocol::CreateInvalidParamsResponse(id, "bounds");
|
| -
|
| - std::string window_state;
|
| - if (!bounds_dict->GetString("windowState", &window_state))
|
| - window_state = "normal";
|
| - else if (window_state != "normal" && window_state != "minimized" &&
|
| - window_state != "maximized" && window_state != "fullscreen")
|
| - return DevToolsProtocol::CreateInvalidParamsResponse(id, "windowState");
|
| -
|
| - // Compute updated bounds when window state is normal.
|
| - bool set_bounds = false;
|
| - gfx::Rect bounds = window->GetBounds();
|
| - int left, top, width, height;
|
| - if (bounds_dict->GetInteger("left", &left)) {
|
| - bounds.set_x(left);
|
| - set_bounds = true;
|
| - }
|
| - if (bounds_dict->GetInteger("top", &top)) {
|
| - bounds.set_y(top);
|
| - set_bounds = true;
|
| - }
|
| - if (bounds_dict->GetInteger("width", &width)) {
|
| - if (width < 0)
|
| - return DevToolsProtocol::CreateInvalidParamsResponse(id, "width");
|
| - bounds.set_width(width);
|
| - set_bounds = true;
|
| - }
|
| - if (bounds_dict->GetInteger("height", &height)) {
|
| - if (height < 0)
|
| - return DevToolsProtocol::CreateInvalidParamsResponse(id, "height");
|
| - bounds.set_height(height);
|
| - set_bounds = true;
|
| - }
|
| -
|
| - if (set_bounds && window_state != "normal") {
|
| - return DevToolsProtocol::CreateErrorResponse(
|
| - id,
|
| - "The 'minimized', 'maximized' and 'fullscreen' states cannot be "
|
| - "combined with 'left', 'top', 'width' or 'height'");
|
| - }
|
| -
|
| - if (set_bounds && (window->IsMinimized() || window->IsMaximized() ||
|
| - window->IsFullscreen())) {
|
| - return DevToolsProtocol::CreateErrorResponse(
|
| - id,
|
| - "To resize minimized/maximized/fullscreen window, restore it to normal "
|
| - "state first.");
|
| - }
|
| -
|
| - if (window_state == "fullscreen") {
|
| - if (window->IsMinimized()) {
|
| - return DevToolsProtocol::CreateErrorResponse(id,
|
| - "To make minimized window "
|
| - "fullscreen, restore it to "
|
| - "normal state first.");
|
| - }
|
| - window->GetExclusiveAccessContext()->EnterFullscreen(
|
| - GURL(), EXCLUSIVE_ACCESS_BUBBLE_TYPE_NONE);
|
| - }
|
| -
|
| - if (window_state == "maximized") {
|
| - if (window->IsMinimized() || window->IsFullscreen()) {
|
| - return DevToolsProtocol::CreateErrorResponse(
|
| - id,
|
| - "To maximize a minimized or fullscreen window, restore it to normal "
|
| - "state first.");
|
| - }
|
| - window->Maximize();
|
| - }
|
| -
|
| - if (window_state == "minimized") {
|
| - if (window->IsFullscreen()) {
|
| - return DevToolsProtocol::CreateErrorResponse(
|
| - id,
|
| - "To minimize a fullscreen window, restore it to normal "
|
| - "state first.");
|
| - }
|
| - window->Minimize();
|
| - }
|
| -
|
| - if (window_state == "normal") {
|
| - if (window->IsFullscreen()) {
|
| - window->GetExclusiveAccessContext()->ExitFullscreen();
|
| - } else if (window->IsMinimized()) {
|
| - window->Show();
|
| - } else if (window->IsMaximized()) {
|
| - window->Restore();
|
| - } else if (set_bounds) {
|
| - window->SetBounds(bounds);
|
| - }
|
| - }
|
| -
|
| - return DevToolsProtocol::CreateSuccessResponse(id, nullptr);
|
| -}
|
| -
|
| -std::unique_ptr<base::DictionaryValue>
|
| -ChromeDevToolsManagerDelegate::HandleBrowserCommand(
|
| - int id,
|
| - std::string method,
|
| - base::DictionaryValue* params) {
|
| - if (method == chrome::devtools::Browser::getWindowForTarget::kName)
|
| - return GetWindowForTarget(id, params);
|
| - if (method == chrome::devtools::Browser::getWindowBounds::kName)
|
| - return GetWindowBounds(id, params);
|
| - if (method == chrome::devtools::Browser::setWindowBounds::kName)
|
| - return SetWindowBounds(id, params);
|
| - return nullptr;
|
| -}
|
| -
|
| class ChromeDevToolsManagerDelegate::HostData {
|
| public:
|
| HostData() {}
|
| @@ -332,10 +112,6 @@ base::DictionaryValue* ChromeDevToolsManagerDelegate::HandleCommand(
|
| if (!DevToolsProtocol::ParseCommand(command_dict, &id, &method, ¶ms))
|
| return nullptr;
|
|
|
| - if (agent_host->GetType() == DevToolsAgentHost::kTypeBrowser &&
|
| - method.find("Browser.") == 0)
|
| - return HandleBrowserCommand(id, method, params).release();
|
| -
|
| if (method == chrome::devtools::Target::setRemoteLocations::kName)
|
| return SetRemoteLocations(agent_host, id, params).release();
|
|
|
| @@ -508,5 +284,7 @@ ChromeDevToolsManagerDelegate::SetRemoteLocations(
|
| host_data_[agent_host]->set_remote_locations(tcp_locations);
|
| UpdateDeviceDiscovery();
|
|
|
| - return DevToolsProtocol::CreateSuccessResponse(command_id, nullptr);
|
| + std::unique_ptr<base::DictionaryValue> result(
|
| + base::MakeUnique<base::DictionaryValue>());
|
| + return DevToolsProtocol::CreateSuccessResponse(command_id, std::move(result));
|
| }
|
|
|