1116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// Copyright 2014 The Chromium Authors. All rights reserved. 2116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// Use of this source code is governed by a BSD-style license that can be 3116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// found in the LICENSE file. 4116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 5116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#ifndef CHROME_BROWSER_DEVTOOLS_DEVTOOLS_WINDOW_TESTING_H_ 6116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#define CHROME_BROWSER_DEVTOOLS_DEVTOOLS_WINDOW_TESTING_H_ 7116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 8116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "base/callback.h" 9116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "chrome/browser/devtools/devtools_window.h" 10116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "ui/gfx/rect.h" 11116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 12116680a4aac90f2aa7413d9095a592090648e557Ben Murdochclass Browser; 13116680a4aac90f2aa7413d9095a592090648e557Ben Murdochclass Profile; 14116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 15116680a4aac90f2aa7413d9095a592090648e557Ben Murdochnamespace content { 16116680a4aac90f2aa7413d9095a592090648e557Ben Murdochclass DevToolsAgentHost; 17116680a4aac90f2aa7413d9095a592090648e557Ben Murdochclass WebContents; 18116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch} 19116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 20116680a4aac90f2aa7413d9095a592090648e557Ben Murdochclass DevToolsWindowTesting { 21116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch public: 22116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch virtual ~DevToolsWindowTesting(); 23116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 24116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch // The following methods block until DevToolsWindow is completely loaded. 25116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch static DevToolsWindow* OpenDevToolsWindowSync( 266e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) content::WebContents* inspected_web_contents, 276e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) bool is_docked); 28116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch static DevToolsWindow* OpenDevToolsWindowSync( 29116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch Browser* browser, bool is_docked); 30116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch static DevToolsWindow* OpenDevToolsWindowForWorkerSync( 31116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch Profile* profile, content::DevToolsAgentHost* worker_agent); 32116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 33116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch // Closes the window like it was user-initiated. 34116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch static void CloseDevToolsWindow(DevToolsWindow* window); 35116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch // Blocks until window is closed. 36116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch static void CloseDevToolsWindowSync(DevToolsWindow* window); 37116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 38116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch static DevToolsWindowTesting* Get(DevToolsWindow* window); 39116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 40116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch Browser* browser(); 41116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch content::WebContents* main_web_contents(); 42116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch content::WebContents* toolbox_web_contents(); 43116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch void SetInspectedPageBounds(const gfx::Rect& bounds); 44116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch void SetCloseCallback(const base::Closure& closure); 45116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 46116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch private: 47116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch friend class DevToolsWindow; 48116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 49116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch explicit DevToolsWindowTesting(DevToolsWindow* window); 50116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch static void WaitForDevToolsWindowLoad(DevToolsWindow* window); 51116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch static void WindowClosed(DevToolsWindow* window); 52116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch static DevToolsWindowTesting* Find(DevToolsWindow* window); 53116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 54116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch DevToolsWindow* devtools_window_; 55116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch base::Closure close_callback_; 56116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 57116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch DISALLOW_COPY_AND_ASSIGN(DevToolsWindowTesting); 58116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}; 59116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 60116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#endif // CHROME_BROWSER_DEVTOOLS_DEVTOOLS_WINDOW_TESTING_H_ 61