Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(125)

Side by Side Diff: chrome/browser/devtools/devtools_window.h

Issue 395783002: [DevTools] Move DevToolsWindow testing code to a separate class. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: includes Created 6 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef CHROME_BROWSER_DEVTOOLS_DEVTOOLS_WINDOW_H_ 5 #ifndef CHROME_BROWSER_DEVTOOLS_DEVTOOLS_WINDOW_H_
6 #define CHROME_BROWSER_DEVTOOLS_DEVTOOLS_WINDOW_H_ 6 #define CHROME_BROWSER_DEVTOOLS_DEVTOOLS_WINDOW_H_
7 7
8 #include "chrome/browser/devtools/devtools_contents_resizing_strategy.h" 8 #include "chrome/browser/devtools/devtools_contents_resizing_strategy.h"
9 #include "chrome/browser/devtools/devtools_toggle_action.h" 9 #include "chrome/browser/devtools/devtools_toggle_action.h"
10 #include "chrome/browser/devtools/devtools_ui_bindings.h" 10 #include "chrome/browser/devtools/devtools_ui_bindings.h"
11 #include "content/public/browser/web_contents_delegate.h" 11 #include "content/public/browser/web_contents_delegate.h"
12 #include "content/public/browser/web_contents_observer.h" 12 #include "content/public/browser/web_contents_observer.h"
13 13
14 class Browser; 14 class Browser;
15 class BrowserWindow; 15 class BrowserWindow;
16 class DevToolsControllerTest; 16 class DevToolsWindowTesting;
17 class DevToolsEventForwarder; 17 class DevToolsEventForwarder;
18 18
19 namespace content { 19 namespace content {
20 class DevToolsAgentHost; 20 class DevToolsAgentHost;
21 struct NativeWebKeyboardEvent; 21 struct NativeWebKeyboardEvent;
22 class RenderViewHost; 22 class RenderViewHost;
23 } 23 }
24 24
25 namespace user_prefs { 25 namespace user_prefs {
26 class PrefRegistrySyncable; 26 class PrefRegistrySyncable;
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
65 65
66 // Open or reveal DevTools window, and perform the specified action. 66 // Open or reveal DevTools window, and perform the specified action.
67 static DevToolsWindow* OpenDevToolsWindow( 67 static DevToolsWindow* OpenDevToolsWindow(
68 content::RenderViewHost* inspected_rvh, 68 content::RenderViewHost* inspected_rvh,
69 const DevToolsToggleAction& action); 69 const DevToolsToggleAction& action);
70 70
71 // Open or reveal DevTools window, with no special action. 71 // Open or reveal DevTools window, with no special action.
72 static DevToolsWindow* OpenDevToolsWindow( 72 static DevToolsWindow* OpenDevToolsWindow(
73 content::RenderViewHost* inspected_rvh); 73 content::RenderViewHost* inspected_rvh);
74 74
75 static DevToolsWindow* OpenDevToolsWindowForTest(
76 content::RenderViewHost* inspected_rvh, bool is_docked);
77 static DevToolsWindow* OpenDevToolsWindowForTest(
78 Browser* browser, bool is_docked);
79
80 // Perform specified action for current WebContents inside a |browser|. 75 // Perform specified action for current WebContents inside a |browser|.
81 // This may close currently open DevTools window. 76 // This may close currently open DevTools window.
82 static DevToolsWindow* ToggleDevToolsWindow( 77 static DevToolsWindow* ToggleDevToolsWindow(
83 Browser* browser, 78 Browser* browser,
84 const DevToolsToggleAction& action); 79 const DevToolsToggleAction& action);
85 80
86 // External frontend is always undocked. 81 // External frontend is always undocked.
87 static void OpenExternalFrontend( 82 static void OpenExternalFrontend(
88 Profile* profile, 83 Profile* profile,
89 const std::string& frontend_uri, 84 const std::string& frontend_uri,
90 content::DevToolsAgentHost* agent_host); 85 content::DevToolsAgentHost* agent_host);
91 86
92 // Worker frontend is always undocked. 87 // Worker frontend is always undocked.
93 static DevToolsWindow* OpenDevToolsWindowForWorker( 88 static DevToolsWindow* OpenDevToolsWindowForWorker(
94 Profile* profile, 89 Profile* profile,
95 content::DevToolsAgentHost* worker_agent); 90 content::DevToolsAgentHost* worker_agent);
96 91
97 static void InspectElement( 92 static void InspectElement(
98 content::RenderViewHost* inspected_rvh, int x, int y); 93 content::RenderViewHost* inspected_rvh, int x, int y);
99 94
100 Browser* browser_for_test() { return browser_; }
101 content::WebContents* web_contents_for_test() { return main_web_contents_; }
102
103 // Sets closure to be called after load is done. If already loaded, calls 95 // Sets closure to be called after load is done. If already loaded, calls
104 // closure immediately. 96 // closure immediately.
105 void SetLoadCompletedCallback(const base::Closure& closure); 97 void SetLoadCompletedCallback(const base::Closure& closure);
106 98
107 // Forwards an unhandled keyboard event to the DevTools frontend. 99 // Forwards an unhandled keyboard event to the DevTools frontend.
108 bool ForwardKeyboardEvent(const content::NativeWebKeyboardEvent& event); 100 bool ForwardKeyboardEvent(const content::NativeWebKeyboardEvent& event);
109 101
110 // BeforeUnload interception //////////////////////////////////////////////// 102 // BeforeUnload interception ////////////////////////////////////////////////
111 103
112 // In order to preserve any edits the user may have made in devtools, the 104 // In order to preserve any edits the user may have made in devtools, the
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
175 167
176 // Returns true if devtools window would like to hook beforeunload event 168 // Returns true if devtools window would like to hook beforeunload event
177 // of this |contents|. 169 // of this |contents|.
178 static bool NeedsToInterceptBeforeUnload(content::WebContents* contents); 170 static bool NeedsToInterceptBeforeUnload(content::WebContents* contents);
179 171
180 // Notify devtools window that closing of |contents| was cancelled 172 // Notify devtools window that closing of |contents| was cancelled
181 // by user. 173 // by user.
182 static void OnPageCloseCanceled(content::WebContents* contents); 174 static void OnPageCloseCanceled(content::WebContents* contents);
183 175
184 private: 176 private:
185 friend class DevToolsControllerTest; 177 friend class DevToolsWindowTesting;
186 friend class DevToolsSanityTest;
187 friend class BrowserWindowControllerTest;
188 178
189 // DevTools lifecycle typically follows this way: 179 // DevTools lifecycle typically follows this way:
190 // - Toggle/Open: client call; 180 // - Toggle/Open: client call;
191 // - Create; 181 // - Create;
192 // - ScheduleShow: setup window to be functional, but not yet show; 182 // - ScheduleShow: setup window to be functional, but not yet show;
193 // - DocumentOnLoadCompletedInMainFrame: frontend loaded; 183 // - DocumentOnLoadCompletedInMainFrame: frontend loaded;
194 // - SetIsDocked: frontend decided on docking state; 184 // - SetIsDocked: frontend decided on docking state;
195 // - OnLoadCompleted: ready to present frontend; 185 // - OnLoadCompleted: ready to present frontend;
196 // - Show: actually placing frontend WebContents to a Browser or docked place; 186 // - Show: actually placing frontend WebContents to a Browser or docked place;
197 // - DoAction: perform action passed in Toggle/Open; 187 // - DoAction: perform action passed in Toggle/Open;
(...skipping 12 matching lines...) Expand all
210 DevToolsWindow(Profile* profile, 200 DevToolsWindow(Profile* profile,
211 const GURL& frontend_url, 201 const GURL& frontend_url,
212 content::RenderViewHost* inspected_rvh, 202 content::RenderViewHost* inspected_rvh,
213 bool can_dock); 203 bool can_dock);
214 204
215 static DevToolsWindow* Create(Profile* profile, 205 static DevToolsWindow* Create(Profile* profile,
216 const GURL& frontend_url, 206 const GURL& frontend_url,
217 content::RenderViewHost* inspected_rvh, 207 content::RenderViewHost* inspected_rvh,
218 bool shared_worker_frontend, 208 bool shared_worker_frontend,
219 bool external_frontend, 209 bool external_frontend,
220 bool can_dock); 210 bool can_dock,
211 const std::string& settings);
221 static GURL GetDevToolsURL(Profile* profile, 212 static GURL GetDevToolsURL(Profile* profile,
222 const GURL& base_url, 213 const GURL& base_url,
223 bool shared_worker_frontend, 214 bool shared_worker_frontend,
224 bool external_frontend, 215 bool external_frontend,
225 bool can_dock); 216 bool can_dock,
217 const std::string& settings);
226 static DevToolsWindow* FindDevToolsWindow(content::DevToolsAgentHost*); 218 static DevToolsWindow* FindDevToolsWindow(content::DevToolsAgentHost*);
227 static DevToolsWindow* AsDevToolsWindow(content::WebContents*); 219 static DevToolsWindow* AsDevToolsWindow(content::WebContents*);
228 static DevToolsWindow* CreateDevToolsWindowForWorker(Profile* profile); 220 static DevToolsWindow* CreateDevToolsWindowForWorker(Profile* profile);
229 static DevToolsWindow* ToggleDevToolsWindow( 221 static DevToolsWindow* ToggleDevToolsWindow(
230 content::RenderViewHost* inspected_rvh, 222 content::RenderViewHost* inspected_rvh,
231 bool force_open, 223 bool force_open,
232 const DevToolsToggleAction& action); 224 const DevToolsToggleAction& action,
225 const std::string& settings);
233 226
234 static std::string GetDevToolsWindowPlacementPrefKey(); 227 static std::string GetDevToolsWindowPlacementPrefKey();
235 228
236 // content::WebContentsDelegate: 229 // content::WebContentsDelegate:
237 virtual content::WebContents* OpenURLFromTab( 230 virtual content::WebContents* OpenURLFromTab(
238 content::WebContents* source, 231 content::WebContents* source,
239 const content::OpenURLParams& params) OVERRIDE; 232 const content::OpenURLParams& params) OVERRIDE;
240 virtual void ActivateContents(content::WebContents* contents) OVERRIDE; 233 virtual void ActivateContents(content::WebContents* contents) OVERRIDE;
241 virtual void AddNewContents(content::WebContents* source, 234 virtual void AddNewContents(content::WebContents* source,
242 content::WebContents* new_contents, 235 content::WebContents* new_contents,
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
290 virtual void OnLoadCompleted() OVERRIDE; 283 virtual void OnLoadCompleted() OVERRIDE;
291 virtual InfoBarService* GetInfoBarService() OVERRIDE; 284 virtual InfoBarService* GetInfoBarService() OVERRIDE;
292 virtual void RenderProcessGone() OVERRIDE; 285 virtual void RenderProcessGone() OVERRIDE;
293 286
294 void CreateDevToolsBrowser(); 287 void CreateDevToolsBrowser();
295 BrowserWindow* GetInspectedBrowserWindow(); 288 BrowserWindow* GetInspectedBrowserWindow();
296 void ScheduleShow(const DevToolsToggleAction& action); 289 void ScheduleShow(const DevToolsToggleAction& action);
297 void Show(const DevToolsToggleAction& action); 290 void Show(const DevToolsToggleAction& action);
298 void DoAction(const DevToolsToggleAction& action); 291 void DoAction(const DevToolsToggleAction& action);
299 void LoadCompleted(); 292 void LoadCompleted();
300 void SetIsDockedAndShowImmediatelyForTest(bool is_docked);
301 void UpdateBrowserToolbar(); 293 void UpdateBrowserToolbar();
302 void UpdateBrowserWindow(); 294 void UpdateBrowserWindow();
303 content::WebContents* GetInspectedWebContents(); 295 content::WebContents* GetInspectedWebContents();
304 296
305 scoped_ptr<ObserverWithAccessor> inspected_contents_observer_; 297 scoped_ptr<ObserverWithAccessor> inspected_contents_observer_;
306 298
307 Profile* profile_; 299 Profile* profile_;
308 content::WebContents* main_web_contents_; 300 content::WebContents* main_web_contents_;
309 content::WebContents* toolbox_web_contents_; 301 content::WebContents* toolbox_web_contents_;
310 DevToolsUIBindings* bindings_; 302 DevToolsUIBindings* bindings_;
311 Browser* browser_; 303 Browser* browser_;
312 bool is_docked_; 304 bool is_docked_;
313 const bool can_dock_; 305 const bool can_dock_;
314 LifeStage life_stage_; 306 LifeStage life_stage_;
315 DevToolsToggleAction action_on_load_; 307 DevToolsToggleAction action_on_load_;
316 bool ignore_set_is_docked_;
317 DevToolsContentsResizingStrategy contents_resizing_strategy_; 308 DevToolsContentsResizingStrategy contents_resizing_strategy_;
318 // True if we're in the process of handling a beforeunload event originating 309 // True if we're in the process of handling a beforeunload event originating
319 // from the inspected webcontents, see InterceptPageBeforeUnload for details. 310 // from the inspected webcontents, see InterceptPageBeforeUnload for details.
320 bool intercepted_page_beforeunload_; 311 bool intercepted_page_beforeunload_;
321 base::Closure load_completed_callback_; 312 base::Closure load_completed_callback_;
313 base::Closure close_callback_;
322 314
323 base::TimeTicks inspect_element_start_time_; 315 base::TimeTicks inspect_element_start_time_;
324 scoped_ptr<DevToolsEventForwarder> event_forwarder_; 316 scoped_ptr<DevToolsEventForwarder> event_forwarder_;
325 317
326 friend class DevToolsEventForwarder; 318 friend class DevToolsEventForwarder;
327 DISALLOW_COPY_AND_ASSIGN(DevToolsWindow); 319 DISALLOW_COPY_AND_ASSIGN(DevToolsWindow);
328 }; 320 };
329 321
330 #endif // CHROME_BROWSER_DEVTOOLS_DEVTOOLS_WINDOW_H_ 322 #endif // CHROME_BROWSER_DEVTOOLS_DEVTOOLS_WINDOW_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698