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 | 7 |
8 #include <map> | 8 #include <map> |
9 #include <set> | 9 #include <set> |
10 #include <string> | 10 #include <string> |
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
103 public content::PageNavigator, | 103 public content::PageNavigator, |
104 public content::NotificationObserver, | 104 public content::NotificationObserver, |
105 public ui::SelectFileDialog::Listener { | 105 public ui::SelectFileDialog::Listener { |
106 public: | 106 public: |
107 // SessionService::WindowType mirrors these values. If you add to this | 107 // SessionService::WindowType mirrors these values. If you add to this |
108 // enum, look at SessionService::WindowType to see if it needs to be | 108 // enum, look at SessionService::WindowType to see if it needs to be |
109 // updated. | 109 // updated. |
110 enum Type { | 110 enum Type { |
111 // If you add a new type, consider updating the test | 111 // If you add a new type, consider updating the test |
112 // BrowserTest.StartMaximized. | 112 // BrowserTest.StartMaximized. |
113 TYPE_TABBED = 1, | 113 TYPE_TABBED = 1, // A tabbed browser |
114 TYPE_POPUP = 2 | 114 TYPE_POPUP = 2, // A popup window opened by a browser page or an app |
115 }; | 115 TYPE_TRUSTED_POPUP = 3 // A primary hosted app window or system popup |
116 | |
117 // Distinguishes between browsers that host an app (opened from | |
118 // ApplicationLauncher::OpenApplication), and child browsers created by an app | |
119 // from Browser::CreateForApp (e.g. by windows.open or the extension API). | |
120 enum AppType { | |
121 APP_TYPE_HOST = 1, | |
122 APP_TYPE_CHILD = 2 | |
123 }; | 116 }; |
124 | 117 |
125 // Possible elements of the Browser window. | 118 // Possible elements of the Browser window. |
126 enum WindowFeature { | 119 enum WindowFeature { |
127 FEATURE_NONE = 0, | 120 FEATURE_NONE = 0, |
128 FEATURE_TITLEBAR = 1, | 121 FEATURE_TITLEBAR = 1, |
129 FEATURE_TABSTRIP = 2, | 122 FEATURE_TABSTRIP = 2, |
130 FEATURE_TOOLBAR = 4, | 123 FEATURE_TOOLBAR = 4, |
131 FEATURE_LOCATIONBAR = 8, | 124 FEATURE_LOCATIONBAR = 8, |
132 FEATURE_BOOKMARKBAR = 16, | 125 FEATURE_BOOKMARKBAR = 16, |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
167 | 160 |
168 // The browser type. | 161 // The browser type. |
169 Type type; | 162 Type type; |
170 | 163 |
171 // The associated profile. | 164 // The associated profile. |
172 Profile* profile; | 165 Profile* profile; |
173 | 166 |
174 // The host desktop the browser is created on. | 167 // The host desktop the browser is created on. |
175 chrome::HostDesktopType host_desktop_type; | 168 chrome::HostDesktopType host_desktop_type; |
176 | 169 |
177 // The application name that is also the name of the window to the shell. | |
178 // This name should be set when: | |
179 // 1) we launch an application via an application shortcut or extension API. | |
180 // 2) we launch an undocked devtool window. | |
181 std::string app_name; | |
182 | |
183 // Type of app (host or child). See description of AppType. | |
184 AppType app_type; | |
185 | |
186 // The bounds of the window to open. | 170 // The bounds of the window to open. |
187 gfx::Rect initial_bounds; | 171 gfx::Rect initial_bounds; |
188 | 172 |
189 ui::WindowShowState initial_show_state; | 173 ui::WindowShowState initial_show_state; |
190 | 174 |
191 bool is_session_restore; | 175 bool is_session_restore; |
192 | 176 |
193 // Supply a custom BrowserWindow implementation, to be used instead of the | 177 // Supply a custom BrowserWindow implementation, to be used instead of the |
194 // default. Intended for testing. | 178 // default. Intended for testing. |
195 BrowserWindow* window; | 179 BrowserWindow* window; |
| 180 |
| 181 private: |
| 182 friend class Browser; |
| 183 |
| 184 // The application name that is also the name of the window to the shell. |
| 185 // Do not set this value directly, use CreateForApp. |
| 186 // This name will be set for: |
| 187 // 1) v1 applications launched via an application shortcut or extension API. |
| 188 // 2) undocked devtool windows. |
| 189 // 3) popup windows spawned from v1 applications. |
| 190 std::string app_name; |
196 }; | 191 }; |
197 | 192 |
198 // Constructors, Creation, Showing ////////////////////////////////////////// | 193 // Constructors, Creation, Showing ////////////////////////////////////////// |
199 | 194 |
200 explicit Browser(const CreateParams& params); | 195 explicit Browser(const CreateParams& params); |
201 virtual ~Browser(); | 196 virtual ~Browser(); |
202 | 197 |
203 // Set overrides for the initial window bounds and maximized state. | 198 // Set overrides for the initial window bounds and maximized state. |
204 void set_override_bounds(const gfx::Rect& bounds) { | 199 void set_override_bounds(const gfx::Rect& bounds) { |
205 override_bounds_ = bounds; | 200 override_bounds_ = bounds; |
(...skipping 16 matching lines...) Expand all Loading... |
222 return is_session_restore_; | 217 return is_session_restore_; |
223 } | 218 } |
224 chrome::HostDesktopType host_desktop_type() const { | 219 chrome::HostDesktopType host_desktop_type() const { |
225 return host_desktop_type_; | 220 return host_desktop_type_; |
226 } | 221 } |
227 | 222 |
228 // Accessors //////////////////////////////////////////////////////////////// | 223 // Accessors //////////////////////////////////////////////////////////////// |
229 | 224 |
230 Type type() const { return type_; } | 225 Type type() const { return type_; } |
231 const std::string& app_name() const { return app_name_; } | 226 const std::string& app_name() const { return app_name_; } |
232 AppType app_type() const { return app_type_; } | |
233 Profile* profile() const { return profile_; } | 227 Profile* profile() const { return profile_; } |
234 gfx::Rect override_bounds() const { return override_bounds_; } | 228 gfx::Rect override_bounds() const { return override_bounds_; } |
235 | 229 |
236 // |window()| will return NULL if called before |CreateBrowserWindow()| | 230 // |window()| will return NULL if called before |CreateBrowserWindow()| |
237 // is done. | 231 // is done. |
238 BrowserWindow* window() const { return window_; } | 232 BrowserWindow* window() const { return window_; } |
239 ToolbarModel* toolbar_model() { return toolbar_model_.get(); } | 233 ToolbarModel* toolbar_model() { return toolbar_model_.get(); } |
240 const ToolbarModel* toolbar_model() const { return toolbar_model_.get(); } | 234 const ToolbarModel* toolbar_model() const { return toolbar_model_.get(); } |
241 #if defined(UNIT_TEST) | 235 #if defined(UNIT_TEST) |
242 void swap_toolbar_models(scoped_ptr<ToolbarModel>* toolbar_model) { | 236 void swap_toolbar_models(scoped_ptr<ToolbarModel>* toolbar_model) { |
(...skipping 205 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
448 virtual void HideValidationMessage( | 442 virtual void HideValidationMessage( |
449 content::WebContents* web_contents) OVERRIDE; | 443 content::WebContents* web_contents) OVERRIDE; |
450 virtual void MoveValidationMessage( | 444 virtual void MoveValidationMessage( |
451 content::WebContents* web_contents, | 445 content::WebContents* web_contents, |
452 const gfx::Rect& anchor_in_root_view) OVERRIDE; | 446 const gfx::Rect& anchor_in_root_view) OVERRIDE; |
453 virtual bool PreHandleGestureEvent( | 447 virtual bool PreHandleGestureEvent( |
454 content::WebContents* source, | 448 content::WebContents* source, |
455 const blink::WebGestureEvent& event) OVERRIDE; | 449 const blink::WebGestureEvent& event) OVERRIDE; |
456 | 450 |
457 bool is_type_tabbed() const { return type_ == TYPE_TABBED; } | 451 bool is_type_tabbed() const { return type_ == TYPE_TABBED; } |
458 bool is_type_popup() const { return type_ == TYPE_POPUP; } | 452 bool is_type_popup() const { |
| 453 return type_ == TYPE_POPUP || type_ == TYPE_TRUSTED_POPUP; |
| 454 } |
459 | 455 |
460 bool is_app() const; | 456 bool is_app() const; |
461 bool is_devtools() const; | 457 bool is_devtools() const; |
462 | 458 |
463 // True when the mouse cursor is locked. | 459 // True when the mouse cursor is locked. |
464 bool IsMouseLocked() const; | 460 bool IsMouseLocked() const; |
465 | 461 |
466 // Called each time the browser window is shown. | 462 // Called each time the browser window is shown. |
467 void OnWindowDidShow(); | 463 void OnWindowDidShow(); |
468 | 464 |
(...skipping 345 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
814 | 810 |
815 scoped_ptr<TabStripModelDelegate> tab_strip_model_delegate_; | 811 scoped_ptr<TabStripModelDelegate> tab_strip_model_delegate_; |
816 scoped_ptr<TabStripModel> tab_strip_model_; | 812 scoped_ptr<TabStripModel> tab_strip_model_; |
817 | 813 |
818 // The application name that is also the name of the window to the shell. | 814 // The application name that is also the name of the window to the shell. |
819 // This name should be set when: | 815 // This name should be set when: |
820 // 1) we launch an application via an application shortcut or extension API. | 816 // 1) we launch an application via an application shortcut or extension API. |
821 // 2) we launch an undocked devtool window. | 817 // 2) we launch an undocked devtool window. |
822 std::string app_name_; | 818 std::string app_name_; |
823 | 819 |
824 // Type of app (host or child). See description of AppType. | |
825 AppType app_type_; | |
826 | |
827 // Unique identifier of this browser for session restore. This id is only | 820 // Unique identifier of this browser for session restore. This id is only |
828 // unique within the current session, and is not guaranteed to be unique | 821 // unique within the current session, and is not guaranteed to be unique |
829 // across sessions. | 822 // across sessions. |
830 const SessionID session_id_; | 823 const SessionID session_id_; |
831 | 824 |
832 // The model for the toolbar view. | 825 // The model for the toolbar view. |
833 scoped_ptr<ToolbarModel> toolbar_model_; | 826 scoped_ptr<ToolbarModel> toolbar_model_; |
834 | 827 |
835 // The model for the "active" search state. There are per-tab search models | 828 // The model for the "active" search state. There are per-tab search models |
836 // as well. When a tab is active its model is kept in sync with this one. | 829 // as well. When a tab is active its model is kept in sync with this one. |
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
928 base::WeakPtrFactory<Browser> weak_factory_; | 921 base::WeakPtrFactory<Browser> weak_factory_; |
929 | 922 |
930 scoped_ptr<BrowserContentTranslateDriverObserver> translate_driver_observer_; | 923 scoped_ptr<BrowserContentTranslateDriverObserver> translate_driver_observer_; |
931 | 924 |
932 scoped_ptr<chrome::ValidationMessageBubble> validation_message_bubble_; | 925 scoped_ptr<chrome::ValidationMessageBubble> validation_message_bubble_; |
933 | 926 |
934 DISALLOW_COPY_AND_ASSIGN(Browser); | 927 DISALLOW_COPY_AND_ASSIGN(Browser); |
935 }; | 928 }; |
936 | 929 |
937 #endif // CHROME_BROWSER_UI_BROWSER_H_ | 930 #endif // CHROME_BROWSER_UI_BROWSER_H_ |
OLD | NEW |