Commit b9c5d50b authored by dgozman@chromium.org's avatar dgozman@chromium.org

[DevTools] Remove dock side knowledge from browser.

After this change, DevToolsWindow waits for frontend to decide
on dock side, and only then shows it either docked or undocked.

This also cleans up DevToolsWindow public API, so clients don't use
test function, and test clients are explicit with their docking expectations.

Note: follow up patch on frontend side is require to switch
from SetDockSide to SetIsDocked call.

BUG=318751

Review URL: https://codereview.chromium.org/108213012

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@245308 0039d316-1c4b-4281-b951-d872f2087c98
parent c73ec8ab
...@@ -167,6 +167,9 @@ DevToolsEmbedderMessageDispatcher::DevToolsEmbedderMessageDispatcher( ...@@ -167,6 +167,9 @@ DevToolsEmbedderMessageDispatcher::DevToolsEmbedderMessageDispatcher(
RegisterHandler("requestSetDockSide", RegisterHandler("requestSetDockSide",
BindToListParser(base::Bind(&Delegate::SetDockSide, BindToListParser(base::Bind(&Delegate::SetDockSide,
base::Unretained(delegate)))); base::Unretained(delegate))));
RegisterHandler("setIsDocked",
BindToListParser(base::Bind(&Delegate::SetIsDocked,
base::Unretained(delegate))));
RegisterHandler("openInNewTab", RegisterHandler("openInNewTab",
BindToListParser(base::Bind(&Delegate::OpenInNewTab, BindToListParser(base::Bind(&Delegate::OpenInNewTab,
base::Unretained(delegate)))); base::Unretained(delegate))));
......
...@@ -31,7 +31,9 @@ class DevToolsEmbedderMessageDispatcher { ...@@ -31,7 +31,9 @@ class DevToolsEmbedderMessageDispatcher {
virtual void SetContentsInsets( virtual void SetContentsInsets(
int top, int left, int bottom, int right) = 0; int top, int left, int bottom, int right) = 0;
virtual void MoveWindow(int x, int y) = 0; virtual void MoveWindow(int x, int y) = 0;
// TODO(dgozman): remove once clients have switched to |SetIsDocked|.
virtual void SetDockSide(const std::string& side) = 0; virtual void SetDockSide(const std::string& side) = 0;
virtual void SetIsDocked(bool is_docked) = 0;
virtual void OpenInNewTab(const std::string& url) = 0; virtual void OpenInNewTab(const std::string& url) = 0;
virtual void SaveToFile(const std::string& url, virtual void SaveToFile(const std::string& url,
const std::string& content, const std::string& content,
......
...@@ -62,3 +62,8 @@ DevToolsToggleAction DevToolsToggleAction::Reveal( ...@@ -62,3 +62,8 @@ DevToolsToggleAction DevToolsToggleAction::Reveal(
return DevToolsToggleAction( return DevToolsToggleAction(
new RevealParams(url, line_number, column_number)); new RevealParams(url, line_number, column_number));
} }
// static
DevToolsToggleAction DevToolsToggleAction::NoOp() {
return DevToolsToggleAction(kNoOp);
}
...@@ -16,7 +16,8 @@ struct DevToolsToggleAction { ...@@ -16,7 +16,8 @@ struct DevToolsToggleAction {
kShowConsole, kShowConsole,
kInspect, kInspect,
kToggle, kToggle,
kReveal kReveal,
kNoOp
}; };
struct RevealParams { struct RevealParams {
...@@ -41,6 +42,7 @@ struct DevToolsToggleAction { ...@@ -41,6 +42,7 @@ struct DevToolsToggleAction {
static DevToolsToggleAction Reveal(const base::string16& url, static DevToolsToggleAction Reveal(const base::string16& url,
size_t line_number, size_t line_number,
size_t column_number); size_t column_number);
static DevToolsToggleAction NoOp();
Type type() const { return type_; } Type type() const { return type_; }
const RevealParams* params() const { return params_.get(); } const RevealParams* params() const { return params_.get(); }
......
This diff is collapsed.
...@@ -49,13 +49,6 @@ namespace user_prefs { ...@@ -49,13 +49,6 @@ namespace user_prefs {
class PrefRegistrySyncable; class PrefRegistrySyncable;
} }
enum DevToolsDockSide {
DEVTOOLS_DOCK_SIDE_UNDOCKED = 0,
DEVTOOLS_DOCK_SIDE_BOTTOM,
DEVTOOLS_DOCK_SIDE_RIGHT,
DEVTOOLS_DOCK_SIDE_MINIMIZED
};
class DevToolsWindow : private content::NotificationObserver, class DevToolsWindow : private content::NotificationObserver,
private content::WebContentsDelegate, private content::WebContentsDelegate,
private content::DevToolsFrontendHostDelegate, private content::DevToolsFrontendHostDelegate,
...@@ -69,31 +62,52 @@ class DevToolsWindow : private content::NotificationObserver, ...@@ -69,31 +62,52 @@ class DevToolsWindow : private content::NotificationObserver,
static std::string GetDevToolsWindowPlacementPrefKey(); static std::string GetDevToolsWindowPlacementPrefKey();
static void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry); static void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry);
// Return the DevToolsWindow for the given RenderViewHost if one exists, // Return the DevToolsWindow for the given RenderViewHost if one exists,
// otherwise NULL. // otherwise NULL.
static DevToolsWindow* GetInstanceForInspectedRenderViewHost( static DevToolsWindow* GetInstanceForInspectedRenderViewHost(
content::RenderViewHost* inspected_rvh); content::RenderViewHost* inspected_rvh);
// Return the DevToolsWindow for the given WebContents if one exists and is
// docked, otherwise NULL. This method will return only fully initialized
// window ready to be presented in UI.
// For immediately-ready-to-use but maybe not yet fully initialized DevTools
// use |GetInstanceForInspectedRenderViewHost| instead.
static DevToolsWindow* GetDockedInstanceForInspectedTab( static DevToolsWindow* GetDockedInstanceForInspectedTab(
content::WebContents* inspected_tab); content::WebContents* inspected_tab);
static bool IsDevToolsWindow(content::RenderViewHost* window_rvh); static bool IsDevToolsWindow(content::RenderViewHost* window_rvh);
static DevToolsWindow* OpenDevToolsWindowForWorker(
Profile* profile, // Open or reveal DevTools window, and perform the specified action.
content::DevToolsAgentHost* worker_agent); static DevToolsWindow* OpenDevToolsWindow(
static DevToolsWindow* CreateDevToolsWindowForWorker(Profile* profile); content::RenderViewHost* inspected_rvh,
const DevToolsToggleAction& action);
// Open or reveal DevTools window, with no special action.
static DevToolsWindow* OpenDevToolsWindow( static DevToolsWindow* OpenDevToolsWindow(
content::RenderViewHost* inspected_rvh); content::RenderViewHost* inspected_rvh);
static DevToolsWindow* OpenDevToolsWindowForTest(
content::RenderViewHost* inspected_rvh, bool is_docked);
static DevToolsWindow* OpenDevToolsWindowForTest(
Browser* browser, bool is_docked);
// Perform specified action for current WebContents inside a |browser|.
// This may close currently open DevTools window.
static DevToolsWindow* ToggleDevToolsWindow( static DevToolsWindow* ToggleDevToolsWindow(
Browser* browser, Browser* browser,
const DevToolsToggleAction& action); const DevToolsToggleAction& action);
static void OpenExternalFrontend(Profile* profile,
const std::string& frontend_uri,
content::DevToolsAgentHost* agent_host);
// Exposed for testing, normal clients should not use this method. // External frontend is always undocked.
static DevToolsWindow* ToggleDevToolsWindow( static void OpenExternalFrontend(
content::RenderViewHost* inspected_rvh, Profile* profile,
bool force_open, const std::string& frontend_uri,
const DevToolsToggleAction& action); content::DevToolsAgentHost* agent_host);
// Worker frontend is always undocked.
static DevToolsWindow* OpenDevToolsWindowForWorker(
Profile* profile,
content::DevToolsAgentHost* worker_agent);
static void InspectElement( static void InspectElement(
content::RenderViewHost* inspected_rvh, int x, int y); content::RenderViewHost* inspected_rvh, int x, int y);
...@@ -105,10 +119,8 @@ class DevToolsWindow : private content::NotificationObserver, ...@@ -105,10 +119,8 @@ class DevToolsWindow : private content::NotificationObserver,
content::WebContents* web_contents() { return web_contents_; } content::WebContents* web_contents() { return web_contents_; }
Browser* browser() { return browser_; } // For tests. Browser* browser() { return browser_; } // For tests.
DevToolsDockSide dock_side() const { return dock_side_; }
content::RenderViewHost* GetRenderViewHost(); content::RenderViewHost* GetRenderViewHost();
content::DevToolsClientHost* GetDevToolsClientHostForTest();
// Inspected WebContents is placed over DevTools WebContents in docked mode. // Inspected WebContents is placed over DevTools WebContents in docked mode.
// The following methods return the insets of inspected WebContents // The following methods return the insets of inspected WebContents
...@@ -119,8 +131,6 @@ class DevToolsWindow : private content::NotificationObserver, ...@@ -119,8 +131,6 @@ class DevToolsWindow : private content::NotificationObserver,
// the overlaying inspected WebContents size. // the overlaying inspected WebContents size.
gfx::Size GetMinimumSize() const; gfx::Size GetMinimumSize() const;
void Show(const DevToolsToggleAction& action);
// BeforeUnload interception //////////////////////////////////////////////// // BeforeUnload interception ////////////////////////////////////////////////
// In order to preserve any edits the user may have made in devtools, the // In order to preserve any edits the user may have made in devtools, the
...@@ -195,37 +205,53 @@ class DevToolsWindow : private content::NotificationObserver, ...@@ -195,37 +205,53 @@ class DevToolsWindow : private content::NotificationObserver,
// by user. // by user.
static void OnPageCloseCanceled(content::WebContents* contents); static void OnPageCloseCanceled(content::WebContents* contents);
void SetDockSideForTest(DevToolsDockSide dock_side);
private: private:
friend class DevToolsControllerTest; friend class DevToolsControllerTest;
friend class DevToolsSanityTest;
friend class BrowserWindowControllerTest; friend class BrowserWindowControllerTest;
// DevTools initialization typically follows this way:
// - Toggle/Open: client call;
// - Create;
// - ScheduleShow: setup window to be functional, but not yet show;
// - DocumentOnLoadCompletedInMainFrame: frontend loaded;
// - SetIsDocked: frontend decided on docking state;
// - OnLoadCompleted: ready to present frontend;
// - Show: actually placing frontend WebContents to a Browser or docked place;
// - DoAction: perform action passed in Toggle/Open.
enum LoadState {
kNotLoaded,
kOnLoadFired, // Implies SetIsDocked was not yet called.
kIsDockedSet, // Implies DocumentOnLoadCompleted was not yet called.
kLoadCompleted
};
DevToolsWindow(Profile* profile, DevToolsWindow(Profile* profile,
const GURL& frontend_url, const GURL& frontend_url,
content::RenderViewHost* inspected_rvh, content::RenderViewHost* inspected_rvh,
DevToolsDockSide dock_side); bool can_dock);
static DevToolsWindow* Create(Profile* profile, static DevToolsWindow* Create(Profile* profile,
const GURL& frontend_url, const GURL& frontend_url,
content::RenderViewHost* inspected_rvh, content::RenderViewHost* inspected_rvh,
DevToolsDockSide dock_side,
bool shared_worker_frontend, bool shared_worker_frontend,
bool external_frontend, bool external_frontend,
bool can_dock); bool can_dock);
static GURL GetDevToolsURL(Profile* profile, static GURL GetDevToolsURL(Profile* profile,
const GURL& base_url, const GURL& base_url,
DevToolsDockSide dock_side,
bool shared_worker_frontend, bool shared_worker_frontend,
bool external_frontend, bool external_frontend,
bool can_dock); bool can_dock);
static DevToolsWindow* FindDevToolsWindow(content::DevToolsAgentHost*); static DevToolsWindow* FindDevToolsWindow(content::DevToolsAgentHost*);
static DevToolsWindow* AsDevToolsWindow(content::RenderViewHost*); static DevToolsWindow* AsDevToolsWindow(content::RenderViewHost*);
static DevToolsDockSide GetDockSideFromPrefs(Profile* profile); static DevToolsWindow* CreateDevToolsWindowForWorker(Profile* profile);
static std::string SideToString(DevToolsDockSide dock_side); static bool IsDockedFromString(const std::string& dock_side);
static DevToolsDockSide SideFromString(const std::string& dock_side);
static bool FindInspectedBrowserAndTabIndex( static bool FindInspectedBrowserAndTabIndex(
content::WebContents* inspected_web_contents, Browser**, int* tab); content::WebContents* inspected_web_contents, Browser**, int* tab);
static DevToolsWindow* ToggleDevToolsWindow(
content::RenderViewHost* inspected_rvh,
bool force_open,
const DevToolsToggleAction& action);
// content::NotificationObserver: // content::NotificationObserver:
virtual void Observe(int type, virtual void Observe(int type,
...@@ -275,6 +301,7 @@ class DevToolsWindow : private content::NotificationObserver, ...@@ -275,6 +301,7 @@ class DevToolsWindow : private content::NotificationObserver,
int left, int top, int right, int bottom) OVERRIDE; int left, int top, int right, int bottom) OVERRIDE;
virtual void MoveWindow(int x, int y) OVERRIDE; virtual void MoveWindow(int x, int y) OVERRIDE;
virtual void SetDockSide(const std::string& side) OVERRIDE; virtual void SetDockSide(const std::string& side) OVERRIDE;
virtual void SetIsDocked(bool is_docked) OVERRIDE;
virtual void OpenInNewTab(const std::string& url) OVERRIDE; virtual void OpenInNewTab(const std::string& url) OVERRIDE;
virtual void SaveToFile(const std::string& url, virtual void SaveToFile(const std::string& url,
const std::string& content, const std::string& content,
...@@ -315,10 +342,11 @@ class DevToolsWindow : private content::NotificationObserver, ...@@ -315,10 +342,11 @@ class DevToolsWindow : private content::NotificationObserver,
void CreateDevToolsBrowser(); void CreateDevToolsBrowser();
BrowserWindow* GetInspectedBrowserWindow(); BrowserWindow* GetInspectedBrowserWindow();
bool IsInspectedBrowserPopup(); void ScheduleShow(const DevToolsToggleAction& action);
void UpdateFrontendDockSide(); void Show(const DevToolsToggleAction& action);
void ScheduleAction(const DevToolsToggleAction& action); void DoAction(const DevToolsToggleAction& action);
void DoAction(); void LoadCompleted();
void SetIsDockedAndShowImmediatelyForTest(bool is_docked);
void UpdateTheme(); void UpdateTheme();
void AddDevToolsExtensionsToClient(); void AddDevToolsExtensionsToClient();
void CallClientFunction(const std::string& function_name, void CallClientFunction(const std::string& function_name,
...@@ -326,8 +354,6 @@ class DevToolsWindow : private content::NotificationObserver, ...@@ -326,8 +354,6 @@ class DevToolsWindow : private content::NotificationObserver,
const base::Value* arg2, const base::Value* arg2,
const base::Value* arg3); const base::Value* arg3);
void UpdateBrowserToolbar(); void UpdateBrowserToolbar();
bool IsDocked();
void Restore();
content::WebContents* GetInspectedWebContents(); content::WebContents* GetInspectedWebContents();
void DocumentOnLoadCompletedInMainFrame(); void DocumentOnLoadCompletedInMainFrame();
...@@ -340,10 +366,11 @@ class DevToolsWindow : private content::NotificationObserver, ...@@ -340,10 +366,11 @@ class DevToolsWindow : private content::NotificationObserver,
Profile* profile_; Profile* profile_;
content::WebContents* web_contents_; content::WebContents* web_contents_;
Browser* browser_; Browser* browser_;
// TODO(dgozman): move dock side knowledge entirely to frontend. bool is_docked_;
DevToolsDockSide dock_side_; bool can_dock_;
bool is_loaded_; LoadState load_state_;
DevToolsToggleAction action_on_load_; DevToolsToggleAction action_on_load_;
bool ignore_set_is_docked_for_test_;
content::NotificationRegistrar registrar_; content::NotificationRegistrar registrar_;
scoped_ptr<content::DevToolsClientHost> frontend_host_; scoped_ptr<content::DevToolsClientHost> frontend_host_;
scoped_ptr<DevToolsFileHelper> file_helper_; scoped_ptr<DevToolsFileHelper> file_helper_;
...@@ -354,7 +381,6 @@ class DevToolsWindow : private content::NotificationObserver, ...@@ -354,7 +381,6 @@ class DevToolsWindow : private content::NotificationObserver,
IndexingJobsMap; IndexingJobsMap;
IndexingJobsMap indexing_jobs_; IndexingJobsMap indexing_jobs_;
gfx::Insets contents_insets_; gfx::Insets contents_insets_;
DevToolsDockSide dock_side_before_minimized_;
// True if we're in the process of handling a beforeunload event originating // True if we're in the process of handling a beforeunload event originating
// from the inspected webcontents, see InterceptPageBeforeUnload for details. // from the inspected webcontents, see InterceptPageBeforeUnload for details.
bool intercepted_page_beforeunload_; bool intercepted_page_beforeunload_;
......
...@@ -63,9 +63,8 @@ class DevToolsRestorer : public content::NotificationObserver { ...@@ -63,9 +63,8 @@ class DevToolsRestorer : public content::NotificationObserver {
content::RenderViewHost* created_view) content::RenderViewHost* created_view)
: delayed_create_function_(delayed_create_function) { : delayed_create_function_(delayed_create_function) {
DevToolsWindow* devtools_window = DevToolsWindow* devtools_window =
DevToolsWindow::ToggleDevToolsWindow( DevToolsWindow::OpenDevToolsWindow(
created_view, created_view,
true /* force_open */,
DevToolsToggleAction::ShowConsole()); DevToolsToggleAction::ShowConsole());
registrar_.Add( registrar_.Add(
......
...@@ -1368,7 +1368,8 @@ IN_PROC_BROWSER_TEST_F(PolicyTest, DeveloperToolsDisabled) { ...@@ -1368,7 +1368,8 @@ IN_PROC_BROWSER_TEST_F(PolicyTest, DeveloperToolsDisabled) {
content::WebContents* contents = content::WebContents* contents =
browser()->tab_strip_model()->GetActiveWebContents(); browser()->tab_strip_model()->GetActiveWebContents();
DevToolsWindow *devtools_window = DevToolsWindow *devtools_window =
DevToolsWindow::GetDockedInstanceForInspectedTab(contents); DevToolsWindow::GetInstanceForInspectedRenderViewHost(
contents->GetRenderViewHost());
EXPECT_TRUE(devtools_window); EXPECT_TRUE(devtools_window);
// Disable devtools via policy. // Disable devtools via policy.
...@@ -1382,10 +1383,12 @@ IN_PROC_BROWSER_TEST_F(PolicyTest, DeveloperToolsDisabled) { ...@@ -1382,10 +1383,12 @@ IN_PROC_BROWSER_TEST_F(PolicyTest, DeveloperToolsDisabled) {
// wait for devtools close // wait for devtools close
close_observer.Wait(); close_observer.Wait();
// The existing devtools window should have closed. // The existing devtools window should have closed.
EXPECT_FALSE(DevToolsWindow::GetDockedInstanceForInspectedTab(contents)); EXPECT_FALSE(DevToolsWindow::GetInstanceForInspectedRenderViewHost(
contents->GetRenderViewHost()));
// And it's not possible to open it again. // And it's not possible to open it again.
EXPECT_FALSE(chrome::ExecuteCommand(browser(), IDC_DEV_TOOLS)); EXPECT_FALSE(chrome::ExecuteCommand(browser(), IDC_DEV_TOOLS));
EXPECT_FALSE(DevToolsWindow::GetDockedInstanceForInspectedTab(contents)); EXPECT_FALSE(DevToolsWindow::GetInstanceForInspectedRenderViewHost(
contents->GetRenderViewHost()));
} }
// TODO(samarth): remove along with rest of NTP4 code. // TODO(samarth): remove along with rest of NTP4 code.
......
...@@ -353,8 +353,7 @@ IN_PROC_BROWSER_TEST_F(ChromeRenderProcessHostTest, ...@@ -353,8 +353,7 @@ IN_PROC_BROWSER_TEST_F(ChromeRenderProcessHostTest,
DCHECK(devtools); DCHECK(devtools);
// DevTools start in a separate process. // DevTools start in a separate process.
DevToolsWindow::ToggleDevToolsWindow( DevToolsWindow::OpenDevToolsWindow(devtools, DevToolsToggleAction::Inspect());
devtools, true, DevToolsToggleAction::Inspect());
host_count++; host_count++;
EXPECT_EQ(tab_count, browser()->tab_strip_model()->count()); EXPECT_EQ(tab_count, browser()->tab_strip_model()->count());
EXPECT_EQ(host_count, RenderProcessHostCount()); EXPECT_EQ(host_count, RenderProcessHostCount());
...@@ -401,8 +400,7 @@ IN_PROC_BROWSER_TEST_F(ChromeRenderProcessHostTest, ...@@ -401,8 +400,7 @@ IN_PROC_BROWSER_TEST_F(ChromeRenderProcessHostTest,
DCHECK(devtools); DCHECK(devtools);
// DevTools start in a separate process. // DevTools start in a separate process.
DevToolsWindow::ToggleDevToolsWindow( DevToolsWindow::OpenDevToolsWindow(devtools, DevToolsToggleAction::Inspect());
devtools, true, DevToolsToggleAction::Inspect());
host_count++; host_count++;
EXPECT_EQ(tab_count, browser()->tab_strip_model()->count()); EXPECT_EQ(tab_count, browser()->tab_strip_model()->count());
EXPECT_EQ(host_count, RenderProcessHostCount()); EXPECT_EQ(host_count, RenderProcessHostCount());
......
...@@ -513,12 +513,8 @@ IN_PROC_BROWSER_TEST_F(TaskManagerBrowserTest, DISABLED_WebWorkerJSHeapMemory) { ...@@ -513,12 +513,8 @@ IN_PROC_BROWSER_TEST_F(TaskManagerBrowserTest, DISABLED_WebWorkerJSHeapMemory) {
} }
IN_PROC_BROWSER_TEST_F(TaskManagerBrowserTest, NoticeInTabDevToolsWindow) { IN_PROC_BROWSER_TEST_F(TaskManagerBrowserTest, NoticeInTabDevToolsWindow) {
DevToolsWindow* dev_tools = DevToolsWindow::ToggleDevToolsWindow( DevToolsWindow::OpenDevToolsWindowForTest(
model()->GetResourceWebContents(1)->GetRenderViewHost(), model()->GetResourceWebContents(1)->GetRenderViewHost(), true);
true,
DevToolsToggleAction::Inspect());
// Dock side bottom should be the default.
ASSERT_EQ(DEVTOOLS_DOCK_SIDE_BOTTOM, dev_tools->dock_side());
TaskManagerBrowserTestUtil::WaitForWebResourceChange(2); TaskManagerBrowserTestUtil::WaitForWebResourceChange(2);
} }
...@@ -527,12 +523,9 @@ IN_PROC_BROWSER_TEST_F(TaskManagerBrowserTest, NoticeInTabDevToolsWindow) { ...@@ -527,12 +523,9 @@ IN_PROC_BROWSER_TEST_F(TaskManagerBrowserTest, NoticeInTabDevToolsWindow) {
IN_PROC_BROWSER_TEST_F(TaskManagerNoShowBrowserTest, IN_PROC_BROWSER_TEST_F(TaskManagerNoShowBrowserTest,
NoticeInTabDevToolsWindow) { NoticeInTabDevToolsWindow) {
// First create the devtools window. // First create the devtools window.
DevToolsWindow* dev_tools = DevToolsWindow::ToggleDevToolsWindow( DevToolsWindow::OpenDevToolsWindowForTest(
browser()->tab_strip_model()->GetActiveWebContents()->GetRenderViewHost(), browser()->tab_strip_model()->GetActiveWebContents()->GetRenderViewHost(),
true, true);
DevToolsToggleAction::Inspect());
// Dock side bottom should be the default.
ASSERT_EQ(DEVTOOLS_DOCK_SIDE_BOTTOM, dev_tools->dock_side());
// Make sure that the devtools window is loaded before starting the task // Make sure that the devtools window is loaded before starting the task
// manager. // manager.
content::RunAllPendingInMessageLoop(); content::RunAllPendingInMessageLoop();
......
...@@ -378,8 +378,8 @@ IN_PROC_BROWSER_TEST_F(BrowserWindowControllerTest, ...@@ -378,8 +378,8 @@ IN_PROC_BROWSER_TEST_F(BrowserWindowControllerTest,
StatusBubblePositioning) { StatusBubblePositioning) {
NSPoint origin = [controller() statusBubbleBaseFrame].origin; NSPoint origin = [controller() statusBubbleBaseFrame].origin;
DevToolsWindow* devtools_window = DevToolsWindow::ToggleDevToolsWindow( DevToolsWindow* devtools_window = DevToolsWindow::OpenDevToolsWindowForTest(
browser(), DevToolsToggleAction::Show()); browser(), true);
SetDevToolsWindowContentsInsets(devtools_window, 10, 10, 10, 10); SetDevToolsWindowContentsInsets(devtools_window, 10, 10, 10, 10);
NSPoint originWithDevTools = [controller() statusBubbleBaseFrame].origin; NSPoint originWithDevTools = [controller() statusBubbleBaseFrame].origin;
......
...@@ -22,8 +22,7 @@ class DevToolsControllerTest : public InProcessBrowserTest { ...@@ -22,8 +22,7 @@ class DevToolsControllerTest : public InProcessBrowserTest {
} }
virtual void SetUpOnMainThread() OVERRIDE { virtual void SetUpOnMainThread() OVERRIDE {
DevToolsWindow::ToggleDevToolsWindow(browser(), DevToolsWindow::OpenDevToolsWindowForTest(browser(), true);
DevToolsToggleAction::Show());
} }
private: private:
......
...@@ -10,6 +10,7 @@ ...@@ -10,6 +10,7 @@
#include "chrome/browser/bookmarks/bookmark_model_factory.h" #include "chrome/browser/bookmarks/bookmark_model_factory.h"
#include "chrome/browser/bookmarks/bookmark_test_helpers.h" #include "chrome/browser/bookmarks/bookmark_test_helpers.h"
#include "chrome/browser/bookmarks/bookmark_utils.h" #include "chrome/browser/bookmarks/bookmark_utils.h"
#include "chrome/browser/devtools/devtools_window.h"
#include "chrome/browser/download/download_shelf.h" #include "chrome/browser/download/download_shelf.h"
#include "chrome/browser/profiles/profile.h" #include "chrome/browser/profiles/profile.h"
#include "chrome/browser/ui/browser.h" #include "chrome/browser/ui/browser.h"
...@@ -47,9 +48,7 @@ class ViewIDTest : public InProcessBrowserTest { ...@@ -47,9 +48,7 @@ class ViewIDTest : public InProcessBrowserTest {
chrome::ShowFindBar(browser()); chrome::ShowFindBar(browser());
// Make sure docked devtools is created to test VIEW_ID_DEV_TOOLS_DOCKED // Make sure docked devtools is created to test VIEW_ID_DEV_TOOLS_DOCKED
browser()->profile()->GetPrefs()->SetString(prefs::kDevToolsDockSide, DevToolsWindow::OpenDevToolsWindowForTest(browser(), true);
"dock_bottom");
chrome::ToggleDevToolsWindow(browser(), DevToolsToggleAction::Inspect());
// Make sure download shelf is created to test VIEW_ID_DOWNLOAD_SHELF // Make sure download shelf is created to test VIEW_ID_DOWNLOAD_SHELF
browser()->window()->GetDownloadShelf()->Show(); browser()->window()->GetDownloadShelf()->Show();
......
...@@ -412,16 +412,14 @@ void Panel::ExecuteCommandWithDisposition(int id, ...@@ -412,16 +412,14 @@ void Panel::ExecuteCommandWithDisposition(int id,
// DevTools // DevTools
case IDC_DEV_TOOLS: case IDC_DEV_TOOLS:
content::RecordAction(UserMetricsAction("DevTools_ToggleWindow")); content::RecordAction(UserMetricsAction("DevTools_ToggleWindow"));
DevToolsWindow::ToggleDevToolsWindow( DevToolsWindow::OpenDevToolsWindow(
GetWebContents()->GetRenderViewHost(), GetWebContents()->GetRenderViewHost(),
true,
DevToolsToggleAction::Show()); DevToolsToggleAction::Show());
break; break;
case IDC_DEV_TOOLS_CONSOLE: case IDC_DEV_TOOLS_CONSOLE:
content::RecordAction(UserMetricsAction("DevTools_ToggleConsole")); content::RecordAction(UserMetricsAction("DevTools_ToggleConsole"));
DevToolsWindow::ToggleDevToolsWindow( DevToolsWindow::OpenDevToolsWindow(
GetWebContents()->GetRenderViewHost(), GetWebContents()->GetRenderViewHost(),
true,
DevToolsToggleAction::ShowConsole()); DevToolsToggleAction::ShowConsole());
break; break;
......
...@@ -254,8 +254,7 @@ void ExtensionPopup::ShowBubble() { ...@@ -254,8 +254,7 @@ void ExtensionPopup::ShowBubble() {
host()->host_contents()->GetView()->Focus(); host()->host_contents()->GetView()->Focus();
if (inspect_with_devtools_) { if (inspect_with_devtools_) {
DevToolsWindow::ToggleDevToolsWindow(host()->render_view_host(), DevToolsWindow::OpenDevToolsWindow(host()->render_view_host(),
true,
DevToolsToggleAction::ShowConsole()); DevToolsToggleAction::ShowConsole());
} }
} }
...@@ -197,13 +197,6 @@ void ExtensionErrorHandler::HandleOpenDevTools(const base::ListValue* args) { ...@@ -197,13 +197,6 @@ void ExtensionErrorHandler::HandleOpenDevTools(const base::ListValue* args) {
if (!rvh) if (!rvh)
return; return;
// Check if we already have an inspector for the given RenderViewHost. If not,
// create one.
DevToolsWindow* window =
DevToolsWindow::GetInstanceForInspectedRenderViewHost(rvh);
if (!window)
window = DevToolsWindow::OpenDevToolsWindow(rvh);
// If we include a url, we should inspect it specifically (and not just the // If we include a url, we should inspect it specifically (and not just the
// render view). // render view).
base::string16 url; base::string16 url;
...@@ -216,8 +209,10 @@ void ExtensionErrorHandler::HandleOpenDevTools(const base::ListValue* args) { ...@@ -216,8 +209,10 @@ void ExtensionErrorHandler::HandleOpenDevTools(const base::ListValue* args) {
// Line/column numbers are reported in display-friendly 1-based numbers, // Line/column numbers are reported in display-friendly 1-based numbers,
// but are inspected in zero-based numbers. // but are inspected in zero-based numbers.
window->Show( DevToolsWindow::OpenDevToolsWindow(rvh,
DevToolsToggleAction::Reveal(url, line_number - 1, column_number - 1)); DevToolsToggleAction::Reveal(url, line_number - 1, column_number - 1));
} else {
DevToolsWindow::OpenDevToolsWindow(rvh);
} }
// Once we open the inspector, we focus on the appropriate tab... // Once we open the inspector, we focus on the appropriate tab...
......
...@@ -1793,9 +1793,6 @@ const char kDevToolsDisabled[] = "devtools.disabled"; ...@@ -1793,9 +1793,6 @@ const char kDevToolsDisabled[] = "devtools.disabled";
const char kDevToolsDiscoverUsbDevicesEnabled[] = const char kDevToolsDiscoverUsbDevicesEnabled[] =
"devtools.discover_usb_devices"; "devtools.discover_usb_devices";
// A string specifying the dock location (either 'bottom' or 'right').
const char kDevToolsDockSide[] = "devtools.dock_side";
// Maps of files edited locally using DevTools. // Maps of files edited locally using DevTools.
const char kDevToolsEditedFiles[] = "devtools.edited_files"; const char kDevToolsEditedFiles[] = "devtools.edited_files";
......
...@@ -591,7 +591,6 @@ extern const char kNtpWebStoreEnabled[]; ...@@ -591,7 +591,6 @@ extern const char kNtpWebStoreEnabled[];
extern const char kDevToolsAdbKey[]; extern const char kDevToolsAdbKey[];
extern const char kDevToolsDisabled[]; extern const char kDevToolsDisabled[];
extern const char kDevToolsDiscoverUsbDevicesEnabled[]; extern const char kDevToolsDiscoverUsbDevicesEnabled[];
extern const char kDevToolsDockSide[];
extern const char kDevToolsEditedFiles[]; extern const char kDevToolsEditedFiles[];
extern const char kDevToolsFileSystemPaths[]; extern const char kDevToolsFileSystemPaths[];
extern const char kDevToolsOpenDocked[]; extern const char kDevToolsOpenDocked[];
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment