Chromium Code Reviews| OLD | NEW |
|---|---|
| 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_UI_BROWSER_H_ | 5 #ifndef CHROME_BROWSER_UI_BROWSER_H_ |
| 6 #define CHROME_BROWSER_UI_BROWSER_H_ | 6 #define CHROME_BROWSER_UI_BROWSER_H_ |
| 7 #pragma once | 7 #pragma once |
| 8 | 8 |
| 9 #include <map> | 9 #include <map> |
| 10 #include <set> | 10 #include <set> |
| (...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 102 // updated. | 102 // updated. |
| 103 enum Type { | 103 enum Type { |
| 104 // If you add a new type, consider updating the test | 104 // If you add a new type, consider updating the test |
| 105 // BrowserTest.StartMaximized. | 105 // BrowserTest.StartMaximized. |
| 106 TYPE_TABBED = 1, | 106 TYPE_TABBED = 1, |
| 107 TYPE_POPUP = 2, | 107 TYPE_POPUP = 2, |
| 108 TYPE_PANEL = 3 | 108 TYPE_PANEL = 3 |
| 109 }; | 109 }; |
| 110 | 110 |
| 111 // Distinguishes between browsers that host an app (opened from | 111 // Distinguishes between browsers that host an app (opened from |
| 112 // Browser::OpenApplication), and child browsers created by an app from | 112 // ApplicationLauncher::OpenApplication), and child browsers created by an app |
| 113 // Browser::CreateForApp (e.g. by windows.open or the extension API). | 113 // from Browser::CreateForApp (e.g. by windows.open or the extension API). |
| 114 // TODO(stevenjb): This is currently only needed by the ash Launcher for | 114 // TODO(stevenjb): This is currently only needed by the ash Launcher for |
| 115 // identifying child panels. Remove this once panels are no longer | 115 // identifying child panels. Remove this once panels are no longer |
| 116 // implemented as Browsers, crbug.com/112198. | 116 // implemented as Browsers, crbug.com/112198. |
| 117 enum AppType { | 117 enum AppType { |
| 118 APP_TYPE_HOST = 1, | 118 APP_TYPE_HOST = 1, |
| 119 APP_TYPE_CHILD = 2 | 119 APP_TYPE_CHILD = 2 |
| 120 }; | 120 }; |
| 121 | 121 |
| 122 // Possible elements of the Browser window. | 122 // Possible elements of the Browser window. |
| 123 enum WindowFeature { | 123 enum WindowFeature { |
| (...skipping 15 matching lines...) Expand all Loading... | |
| 139 | 139 |
| 140 // The browser is shutting down and there are active downloads | 140 // The browser is shutting down and there are active downloads |
| 141 // that would be cancelled. | 141 // that would be cancelled. |
| 142 DOWNLOAD_CLOSE_BROWSER_SHUTDOWN, | 142 DOWNLOAD_CLOSE_BROWSER_SHUTDOWN, |
| 143 | 143 |
| 144 // There are active downloads associated with this incognito profile | 144 // There are active downloads associated with this incognito profile |
| 145 // that would be canceled. | 145 // that would be canceled. |
| 146 DOWNLOAD_CLOSE_LAST_WINDOW_IN_INCOGNITO_PROFILE, | 146 DOWNLOAD_CLOSE_LAST_WINDOW_IN_INCOGNITO_PROFILE, |
| 147 }; | 147 }; |
| 148 | 148 |
| 149 // Different types of action when web app info is available. | |
| 150 // OnDidGetApplicationInfo uses this to dispatch calls. | |
| 151 enum WebAppAction { | |
| 152 NONE, // No action at all. | |
| 153 CREATE_SHORTCUT, // Bring up create application shortcut dialog. | |
| 154 UPDATE_SHORTCUT // Update icon for app shortcut. | |
| 155 }; | |
| 156 | |
| 149 struct CreateParams { | 157 struct CreateParams { |
| 150 CreateParams(); | 158 CreateParams(); |
| 151 CreateParams(Type type, Profile* profile); | 159 CreateParams(Type type, Profile* profile); |
| 152 | 160 |
| 153 static CreateParams CreateForApp(Type type, | 161 static CreateParams CreateForApp(Type type, |
| 154 const std::string& app_name, | 162 const std::string& app_name, |
| 155 const gfx::Rect& window_bounds, | 163 const gfx::Rect& window_bounds, |
| 156 Profile* profile); | 164 Profile* profile); |
| 157 | 165 |
| 158 static CreateParams CreateForDevTools(Profile* profile); | 166 static CreateParams CreateForDevTools(Profile* profile); |
| (...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 278 static Browser* OpenEmptyWindow(Profile* profile); | 286 static Browser* OpenEmptyWindow(Profile* profile); |
| 279 | 287 |
| 280 // Opens a new window with the tabs from |profile|'s TabRestoreService. | 288 // Opens a new window with the tabs from |profile|'s TabRestoreService. |
| 281 static void OpenWindowWithRestoredTabs(Profile* profile); | 289 static void OpenWindowWithRestoredTabs(Profile* profile); |
| 282 | 290 |
| 283 // Opens the specified URL in a new browser window in an incognito session. | 291 // Opens the specified URL in a new browser window in an incognito session. |
| 284 // If there is already an existing active incognito session for the specified | 292 // If there is already an existing active incognito session for the specified |
| 285 // |profile|, that session is re-used. | 293 // |profile|, that session is re-used. |
| 286 static void OpenURLOffTheRecord(Profile* profile, const GURL& url); | 294 static void OpenURLOffTheRecord(Profile* profile, const GURL& url); |
| 287 | 295 |
| 288 // Open |extension| in |container|, using |disposition| if container type is | |
| 289 // TAB. Returns the WebContents* that was created or NULL. If non-empty, | |
| 290 // |override_url| is used in place of the app launch url. | |
| 291 static content::WebContents* OpenApplication( | |
| 292 Profile* profile, | |
| 293 const Extension* extension, | |
| 294 extension_misc::LaunchContainer container, | |
| 295 const GURL& override_url, | |
| 296 WindowOpenDisposition disposition); | |
| 297 | |
| 298 #if defined(USE_ASH) | |
| 299 // Opens |url| in a new application panel window for the specified url. | |
| 300 static content::WebContents* OpenApplicationPanel( | |
| 301 Profile* profile, | |
| 302 const Extension* extension, | |
| 303 const GURL& url); | |
| 304 #endif | |
| 305 | |
| 306 // Opens a new application window for the specified url. If |as_panel| | |
| 307 // is true, the application will be opened as a Browser::Type::APP_PANEL in | |
| 308 // app panel window, otherwise it will be opened as as either | |
| 309 // Browser::Type::APP a.k.a. "thin frame" (if |extension| is NULL) or | |
| 310 // Browser::Type::EXTENSION_APP (if |extension| is non-NULL). | |
| 311 // If |app_browser| is not NULL, it is set to the browser that hosts the | |
| 312 // returned tab. | |
| 313 static content::WebContents* OpenApplicationWindow( | |
| 314 Profile* profile, | |
| 315 const Extension* extension, | |
| 316 extension_misc::LaunchContainer container, | |
| 317 const GURL& url, | |
| 318 Browser** app_browser); | |
| 319 | |
| 320 // Open |url| in an app shortcut window. If |update_shortcut| is true, | |
| 321 // update the name, description, and favicon of the shortcut. | |
| 322 // There are two kinds of app shortcuts: Shortcuts to a URL, | |
| 323 // and shortcuts that open an installed application. This function | |
| 324 // is used to open the former. To open the latter, use | |
| 325 // Browser::OpenApplicationWindow(). | |
| 326 static content::WebContents* OpenAppShortcutWindow(Profile* profile, | |
| 327 const GURL& url, | |
| 328 bool update_shortcut); | |
| 329 | |
| 330 // Open an application for |extension| using |disposition|. Returns NULL if | |
| 331 // there are no appropriate existing browser windows for |profile|. If | |
| 332 // non-empty, |override_url| is used in place of the app launch url. | |
| 333 static content::WebContents* OpenApplicationTab( | |
| 334 Profile* profile, | |
| 335 const Extension* extension, | |
| 336 const GURL& override_url, | |
| 337 WindowOpenDisposition disposition); | |
| 338 | |
| 339 // Opens a new window and opens the bookmark manager. | 296 // Opens a new window and opens the bookmark manager. |
| 340 static void OpenBookmarkManagerWindow(Profile* profile); | 297 static void OpenBookmarkManagerWindow(Profile* profile); |
| 341 | 298 |
| 342 #if defined(OS_MACOSX) | 299 #if defined(OS_MACOSX) |
| 343 // Open a new window with history/downloads/help/options (needed on Mac when | 300 // Open a new window with history/downloads/help/options (needed on Mac when |
| 344 // there are no windows). | 301 // there are no windows). |
| 345 static void OpenAboutWindow(Profile* profile); | 302 static void OpenAboutWindow(Profile* profile); |
| 346 static void OpenHistoryWindow(Profile* profile); | 303 static void OpenHistoryWindow(Profile* profile); |
| 347 static void OpenDownloadsWindow(Profile* profile); | 304 static void OpenDownloadsWindow(Profile* profile); |
| 348 static void OpenHelpWindow(Profile* profile); | 305 static void OpenHelpWindow(Profile* profile); |
| (...skipping 504 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 853 | 810 |
| 854 // True when the mouse cursor is locked. | 811 // True when the mouse cursor is locked. |
| 855 bool IsMouseLocked() const; | 812 bool IsMouseLocked() const; |
| 856 | 813 |
| 857 // Called each time the browser window is shown. | 814 // Called each time the browser window is shown. |
| 858 void OnWindowDidShow(); | 815 void OnWindowDidShow(); |
| 859 | 816 |
| 860 // Show the first run search engine bubble on the location bar. | 817 // Show the first run search engine bubble on the location bar. |
| 861 void ShowFirstRunBubble(); | 818 void ShowFirstRunBubble(); |
| 862 | 819 |
| 820 void set_pending_web_app_action(WebAppAction action) { | |
| 821 pending_web_app_action_ = action; | |
|
sky
2012/05/18 16:04:02
It would be great if we could remove this too.
benwells
2012/05/21 03:25:54
I couldn't see a way to get rid of this, but I don
| |
| 822 } | |
| 823 | |
| 863 ExtensionWindowController* extension_window_controller() const { | 824 ExtensionWindowController* extension_window_controller() const { |
| 864 return extension_window_controller_.get(); | 825 return extension_window_controller_.get(); |
| 865 } | 826 } |
| 866 | 827 |
| 867 protected: | 828 protected: |
| 868 // Wrapper for the factory method in BrowserWindow. This allows subclasses to | 829 // Wrapper for the factory method in BrowserWindow. This allows subclasses to |
| 869 // set their own window. | 830 // set their own window. |
| 870 virtual BrowserWindow* CreateBrowserWindow(); | 831 virtual BrowserWindow* CreateBrowserWindow(); |
| 871 | 832 |
| 872 private: | 833 private: |
| (...skipping 537 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1410 | 1371 |
| 1411 // Indicates if command execution is blocked. | 1372 // Indicates if command execution is blocked. |
| 1412 bool block_command_execution_; | 1373 bool block_command_execution_; |
| 1413 | 1374 |
| 1414 // Stores the last blocked command id when |block_command_execution_| is true. | 1375 // Stores the last blocked command id when |block_command_execution_| is true. |
| 1415 int last_blocked_command_id_; | 1376 int last_blocked_command_id_; |
| 1416 | 1377 |
| 1417 // Stores the disposition type of the last blocked command. | 1378 // Stores the disposition type of the last blocked command. |
| 1418 WindowOpenDisposition last_blocked_command_disposition_; | 1379 WindowOpenDisposition last_blocked_command_disposition_; |
| 1419 | 1380 |
| 1420 // Different types of action when web app info is available. | |
| 1421 // OnDidGetApplicationInfo uses this to dispatch calls. | |
| 1422 enum WebAppAction { | |
| 1423 NONE, // No action at all. | |
| 1424 CREATE_SHORTCUT, // Bring up create application shortcut dialog. | |
| 1425 UPDATE_SHORTCUT // Update icon for app shortcut. | |
| 1426 }; | |
| 1427 | |
| 1428 // Which deferred action to perform when OnDidGetApplicationInfo is notified | 1381 // Which deferred action to perform when OnDidGetApplicationInfo is notified |
| 1429 // from a WebContents. Currently, only one pending action is allowed. | 1382 // from a WebContents. Currently, only one pending action is allowed. |
| 1430 WebAppAction pending_web_app_action_; | 1383 WebAppAction pending_web_app_action_; |
| 1431 | 1384 |
| 1432 // The profile's tab restore service. The service is owned by the profile, | 1385 // The profile's tab restore service. The service is owned by the profile, |
| 1433 // and we install ourselves as an observer. | 1386 // and we install ourselves as an observer. |
| 1434 TabRestoreService* tab_restore_service_; | 1387 TabRestoreService* tab_restore_service_; |
| 1435 | 1388 |
| 1436 // Helper which implements the ContentSettingBubbleModel interface. | 1389 // Helper which implements the ContentSettingBubbleModel interface. |
| 1437 scoped_ptr<BrowserContentSettingBubbleModelDelegate> | 1390 scoped_ptr<BrowserContentSettingBubbleModelDelegate> |
| (...skipping 21 matching lines...) Expand all Loading... | |
| 1459 bool window_has_shown_; | 1412 bool window_has_shown_; |
| 1460 | 1413 |
| 1461 // Currently open color chooser. Non-NULL after OpenColorChooser is called and | 1414 // Currently open color chooser. Non-NULL after OpenColorChooser is called and |
| 1462 // before DidEndColorChooser is called. | 1415 // before DidEndColorChooser is called. |
| 1463 scoped_ptr<content::ColorChooser> color_chooser_; | 1416 scoped_ptr<content::ColorChooser> color_chooser_; |
| 1464 | 1417 |
| 1465 DISALLOW_COPY_AND_ASSIGN(Browser); | 1418 DISALLOW_COPY_AND_ASSIGN(Browser); |
| 1466 }; | 1419 }; |
| 1467 | 1420 |
| 1468 #endif // CHROME_BROWSER_UI_BROWSER_H_ | 1421 #endif // CHROME_BROWSER_UI_BROWSER_H_ |
| OLD | NEW |