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

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

Issue 23835007: DevTools: Do not close devtools if there are dirty files in workspace (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: reupload Created 7 years, 3 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 <string> 8 #include <string>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
47 class PrefRegistrySyncable; 47 class PrefRegistrySyncable;
48 } 48 }
49 49
50 enum DevToolsDockSide { 50 enum DevToolsDockSide {
51 DEVTOOLS_DOCK_SIDE_UNDOCKED = 0, 51 DEVTOOLS_DOCK_SIDE_UNDOCKED = 0,
52 DEVTOOLS_DOCK_SIDE_BOTTOM, 52 DEVTOOLS_DOCK_SIDE_BOTTOM,
53 DEVTOOLS_DOCK_SIDE_RIGHT, 53 DEVTOOLS_DOCK_SIDE_RIGHT,
54 DEVTOOLS_DOCK_SIDE_MINIMIZED 54 DEVTOOLS_DOCK_SIDE_MINIMIZED
55 }; 55 };
56 56
57 enum DevToolsClosingTarget {
58 DEVTOOLS_CLOSING_TARGET_NONE = 0,
59 DEVTOOLS_CLOSING_TARGET_DEVTOOLS,
60 DEVTOOLS_CLOSING_TARGET_INSPECTED_PAGE
61 };
62
57 class DevToolsWindow : private content::NotificationObserver, 63 class DevToolsWindow : private content::NotificationObserver,
58 private content::WebContentsDelegate, 64 private content::WebContentsDelegate,
59 private content::DevToolsFrontendHostDelegate, 65 private content::DevToolsFrontendHostDelegate,
60 private DevToolsEmbedderMessageDispatcher::Delegate { 66 private DevToolsEmbedderMessageDispatcher::Delegate {
61 public: 67 public:
62 typedef base::Callback<void(bool)> InfoBarCallback; 68 typedef base::Callback<void(bool)> InfoBarCallback;
63 69
64 static const char kDevToolsApp[]; 70 static const char kDevToolsApp[];
65 71
66 virtual ~DevToolsWindow(); 72 virtual ~DevToolsWindow();
67 73
68 static std::string GetDevToolsWindowPlacementPrefKey(); 74 static std::string GetDevToolsWindowPlacementPrefKey();
69 static void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry); 75 static void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry);
76 static DevToolsWindow* GetInstanceForInspectedTab(
77 content::WebContents* inspected_tab);
70 static DevToolsWindow* GetDockedInstanceForInspectedTab( 78 static DevToolsWindow* GetDockedInstanceForInspectedTab(
71 content::WebContents* inspected_tab); 79 content::WebContents* inspected_tab);
72 static bool IsDevToolsWindow(content::RenderViewHost* window_rvh); 80 static bool IsDevToolsWindow(content::RenderViewHost* window_rvh);
73 static DevToolsWindow* OpenDevToolsWindowForWorker( 81 static DevToolsWindow* OpenDevToolsWindowForWorker(
74 Profile* profile, 82 Profile* profile,
75 content::DevToolsAgentHost* worker_agent); 83 content::DevToolsAgentHost* worker_agent);
76 static DevToolsWindow* CreateDevToolsWindowForWorker(Profile* profile); 84 static DevToolsWindow* CreateDevToolsWindowForWorker(Profile* profile);
77 static DevToolsWindow* OpenDevToolsWindow( 85 static DevToolsWindow* OpenDevToolsWindow(
78 content::RenderViewHost* inspected_rvh); 86 content::RenderViewHost* inspected_rvh);
79 static DevToolsWindow* ToggleDevToolsWindow( 87 static DevToolsWindow* ToggleDevToolsWindow(
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
118 int GetHeight(int container_height); 126 int GetHeight(int container_height);
119 127
120 // Stores preferred devtools window width for this instance. 128 // Stores preferred devtools window width for this instance.
121 void SetWidth(int width); 129 void SetWidth(int width);
122 130
123 // Stores preferred devtools window height for this instance. 131 // Stores preferred devtools window height for this instance.
124 void SetHeight(int height); 132 void SetHeight(int height);
125 133
126 void Show(DevToolsToggleAction action); 134 void Show(DevToolsToggleAction action);
127 135
136 static void HandleBeforeUnload(content::WebContents*, bool, bool*);
137 bool InspectedPageWillClose();
138 void InspectedPageCancelClose();
139
128 private: 140 private:
129 friend class DevToolsControllerTest; 141 friend class DevToolsControllerTest;
130 142
131 DevToolsWindow(Profile* profile, 143 DevToolsWindow(Profile* profile,
132 const GURL& frontend_url, 144 const GURL& frontend_url,
133 content::RenderViewHost* inspected_rvh, 145 content::RenderViewHost* inspected_rvh,
134 DevToolsDockSide dock_side); 146 DevToolsDockSide dock_side);
135 147
136 static DevToolsWindow* Create(Profile* profile, 148 static DevToolsWindow* Create(Profile* profile,
137 const GURL& frontend_url, 149 const GURL& frontend_url,
(...skipping 21 matching lines...) Expand all
159 virtual content::WebContents* OpenURLFromTab( 171 virtual content::WebContents* OpenURLFromTab(
160 content::WebContents* source, 172 content::WebContents* source,
161 const content::OpenURLParams& params) OVERRIDE; 173 const content::OpenURLParams& params) OVERRIDE;
162 virtual void AddNewContents(content::WebContents* source, 174 virtual void AddNewContents(content::WebContents* source,
163 content::WebContents* new_contents, 175 content::WebContents* new_contents,
164 WindowOpenDisposition disposition, 176 WindowOpenDisposition disposition,
165 const gfx::Rect& initial_pos, 177 const gfx::Rect& initial_pos,
166 bool user_gesture, 178 bool user_gesture,
167 bool* was_blocked) OVERRIDE; 179 bool* was_blocked) OVERRIDE;
168 virtual void CloseContents(content::WebContents* source) OVERRIDE; 180 virtual void CloseContents(content::WebContents* source) OVERRIDE;
181 virtual void BeforeUnloadFired(content::WebContents* tab,
182 bool proceed,
183 bool* proceed_to_fire_unload) OVERRIDE;
169 virtual bool PreHandleKeyboardEvent( 184 virtual bool PreHandleKeyboardEvent(
170 content::WebContents* source, 185 content::WebContents* source,
171 const content::NativeWebKeyboardEvent& event, 186 const content::NativeWebKeyboardEvent& event,
172 bool* is_keyboard_shortcut) OVERRIDE; 187 bool* is_keyboard_shortcut) OVERRIDE;
173 virtual void HandleKeyboardEvent( 188 virtual void HandleKeyboardEvent(
174 content::WebContents* source, 189 content::WebContents* source,
175 const content::NativeWebKeyboardEvent& event) OVERRIDE; 190 const content::NativeWebKeyboardEvent& event) OVERRIDE;
176 virtual content::JavaScriptDialogManager* 191 virtual content::JavaScriptDialogManager*
177 GetJavaScriptDialogManager() OVERRIDE; 192 GetJavaScriptDialogManager() OVERRIDE;
178 virtual content::ColorChooser* OpenColorChooser( 193 virtual content::ColorChooser* OpenColorChooser(
179 content::WebContents* web_contents, 194 content::WebContents* web_contents,
180 SkColor color) OVERRIDE; 195 SkColor color) OVERRIDE;
181 virtual void RunFileChooser( 196 virtual void RunFileChooser(
182 content::WebContents* web_contents, 197 content::WebContents* web_contents,
183 const content::FileChooserParams& params) OVERRIDE; 198 const content::FileChooserParams& params) OVERRIDE;
184 virtual void WebContentsFocused(content::WebContents* contents) OVERRIDE; 199 virtual void WebContentsFocused(content::WebContents* contents) OVERRIDE;
185 200
186 // content::DevToolsFrontendHostDelegate override: 201 // content::DevToolsFrontendHostDelegate override:
187 virtual void DispatchOnEmbedder(const std::string& message) OVERRIDE; 202 virtual void DispatchOnEmbedder(const std::string& message) OVERRIDE;
188 203
189 // DevToolsEmbedderMessageDispatcher::Delegate overrides: 204 // DevToolsEmbedderMessageDispatcher::Delegate overrides:
190 virtual void ActivateWindow() OVERRIDE; 205 virtual void ActivateWindow() OVERRIDE;
206 virtual void ActivateContents(content::WebContents* contents) OVERRIDE;
191 virtual void CloseWindow() OVERRIDE; 207 virtual void CloseWindow() OVERRIDE;
192 virtual void MoveWindow(int x, int y) OVERRIDE; 208 virtual void MoveWindow(int x, int y) OVERRIDE;
193 virtual void SetDockSide(const std::string& side) OVERRIDE; 209 virtual void SetDockSide(const std::string& side) OVERRIDE;
194 virtual void OpenInNewTab(const std::string& url) OVERRIDE; 210 virtual void OpenInNewTab(const std::string& url) OVERRIDE;
195 virtual void SaveToFile(const std::string& url, 211 virtual void SaveToFile(const std::string& url,
196 const std::string& content, 212 const std::string& content,
197 bool save_as) OVERRIDE; 213 bool save_as) OVERRIDE;
198 virtual void AppendToFile(const std::string& url, 214 virtual void AppendToFile(const std::string& url,
199 const std::string& content) OVERRIDE; 215 const std::string& content) OVERRIDE;
200 virtual void RequestFileSystems() OVERRIDE; 216 virtual void RequestFileSystems() OVERRIDE;
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
262 scoped_ptr<DevToolsFileHelper> file_helper_; 278 scoped_ptr<DevToolsFileHelper> file_helper_;
263 scoped_refptr<DevToolsFileSystemIndexer> file_system_indexer_; 279 scoped_refptr<DevToolsFileSystemIndexer> file_system_indexer_;
264 typedef std::map< 280 typedef std::map<
265 int, 281 int,
266 scoped_refptr<DevToolsFileSystemIndexer::FileSystemIndexingJob> > 282 scoped_refptr<DevToolsFileSystemIndexer::FileSystemIndexingJob> >
267 IndexingJobsMap; 283 IndexingJobsMap;
268 IndexingJobsMap indexing_jobs_; 284 IndexingJobsMap indexing_jobs_;
269 int width_; 285 int width_;
270 int height_; 286 int height_;
271 DevToolsDockSide dock_side_before_minimized_; 287 DevToolsDockSide dock_side_before_minimized_;
288 DevToolsClosingTarget closing_target_;
289 bool inspected_page_is_closing_;
272 290
273 scoped_ptr<DevToolsEmbedderMessageDispatcher> embedder_message_dispatcher_; 291 scoped_ptr<DevToolsEmbedderMessageDispatcher> embedder_message_dispatcher_;
274 DISALLOW_COPY_AND_ASSIGN(DevToolsWindow); 292 DISALLOW_COPY_AND_ASSIGN(DevToolsWindow);
275 }; 293 };
276 294
277 #endif // CHROME_BROWSER_DEVTOOLS_DEVTOOLS_WINDOW_H_ 295 #endif // CHROME_BROWSER_DEVTOOLS_DEVTOOLS_WINDOW_H_
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/devtools/devtools_window.cc » ('j') | chrome/browser/devtools/devtools_window.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698