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

Side by Side Diff: chrome/browser/ui/browser.h

Issue 10409023: Remove extension application launch code from Browser (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase Created 8 years, 7 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
« no previous file with comments | « chrome/browser/extensions/platform_app_browsertest.cc ('k') | chrome/browser/ui/browser.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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_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 94 matching lines...) Expand 10 before | Expand all | Expand 10 after
105 // updated. 105 // updated.
106 enum Type { 106 enum Type {
107 // If you add a new type, consider updating the test 107 // If you add a new type, consider updating the test
108 // BrowserTest.StartMaximized. 108 // BrowserTest.StartMaximized.
109 TYPE_TABBED = 1, 109 TYPE_TABBED = 1,
110 TYPE_POPUP = 2, 110 TYPE_POPUP = 2,
111 TYPE_PANEL = 3 111 TYPE_PANEL = 3
112 }; 112 };
113 113
114 // Distinguishes between browsers that host an app (opened from 114 // Distinguishes between browsers that host an app (opened from
115 // Browser::OpenApplication), and child browsers created by an app from 115 // ApplicationLauncher::OpenApplication), and child browsers created by an app
116 // Browser::CreateForApp (e.g. by windows.open or the extension API). 116 // from Browser::CreateForApp (e.g. by windows.open or the extension API).
117 // TODO(stevenjb): This is currently only needed by the ash Launcher for 117 // TODO(stevenjb): This is currently only needed by the ash Launcher for
118 // identifying child panels. Remove this once panels are no longer 118 // identifying child panels. Remove this once panels are no longer
119 // implemented as Browsers, crbug.com/112198. 119 // implemented as Browsers, crbug.com/112198.
120 enum AppType { 120 enum AppType {
121 APP_TYPE_HOST = 1, 121 APP_TYPE_HOST = 1,
122 APP_TYPE_CHILD = 2 122 APP_TYPE_CHILD = 2
123 }; 123 };
124 124
125 // Possible elements of the Browser window. 125 // Possible elements of the Browser window.
126 enum WindowFeature { 126 enum WindowFeature {
(...skipping 15 matching lines...) Expand all
142 142
143 // The browser is shutting down and there are active downloads 143 // The browser is shutting down and there are active downloads
144 // that would be cancelled. 144 // that would be cancelled.
145 DOWNLOAD_CLOSE_BROWSER_SHUTDOWN, 145 DOWNLOAD_CLOSE_BROWSER_SHUTDOWN,
146 146
147 // There are active downloads associated with this incognito profile 147 // There are active downloads associated with this incognito profile
148 // that would be canceled. 148 // that would be canceled.
149 DOWNLOAD_CLOSE_LAST_WINDOW_IN_INCOGNITO_PROFILE, 149 DOWNLOAD_CLOSE_LAST_WINDOW_IN_INCOGNITO_PROFILE,
150 }; 150 };
151 151
152 // Different types of action when web app info is available.
153 // OnDidGetApplicationInfo uses this to dispatch calls.
154 enum WebAppAction {
155 NONE, // No action at all.
156 CREATE_SHORTCUT, // Bring up create application shortcut dialog.
157 UPDATE_SHORTCUT // Update icon for app shortcut.
158 };
159
152 struct CreateParams { 160 struct CreateParams {
153 CreateParams(); 161 CreateParams();
154 CreateParams(Type type, Profile* profile); 162 CreateParams(Type type, Profile* profile);
155 163
156 static CreateParams CreateForApp(Type type, 164 static CreateParams CreateForApp(Type type,
157 const std::string& app_name, 165 const std::string& app_name,
158 const gfx::Rect& window_bounds, 166 const gfx::Rect& window_bounds,
159 Profile* profile); 167 Profile* profile);
160 168
161 static CreateParams CreateForDevTools(Profile* profile); 169 static CreateParams CreateForDevTools(Profile* profile);
(...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after
281 static Browser* OpenEmptyWindow(Profile* profile); 289 static Browser* OpenEmptyWindow(Profile* profile);
282 290
283 // Opens a new window with the tabs from |profile|'s TabRestoreService. 291 // Opens a new window with the tabs from |profile|'s TabRestoreService.
284 static void OpenWindowWithRestoredTabs(Profile* profile); 292 static void OpenWindowWithRestoredTabs(Profile* profile);
285 293
286 // Opens the specified URL in a new browser window in an incognito session. 294 // Opens the specified URL in a new browser window in an incognito session.
287 // If there is already an existing active incognito session for the specified 295 // If there is already an existing active incognito session for the specified
288 // |profile|, that session is re-used. 296 // |profile|, that session is re-used.
289 static void OpenURLOffTheRecord(Profile* profile, const GURL& url); 297 static void OpenURLOffTheRecord(Profile* profile, const GURL& url);
290 298
291 // Open |extension| in |container|, using |disposition| if container type is
292 // TAB. Returns the WebContents* that was created or NULL. If non-empty,
293 // |override_url| is used in place of the app launch url.
294 static content::WebContents* OpenApplication(
295 Profile* profile,
296 const extensions::Extension* extension,
297 extension_misc::LaunchContainer container,
298 const GURL& override_url,
299 WindowOpenDisposition disposition);
300
301 #if defined(USE_ASH)
302 // Opens |url| in a new application panel window for the specified url.
303 static content::WebContents* OpenApplicationPanel(
304 Profile* profile,
305 const extensions::Extension* extension,
306 const GURL& url);
307 #endif
308
309 // Opens a new application window for the specified url. If |as_panel|
310 // is true, the application will be opened as a Browser::Type::APP_PANEL in
311 // app panel window, otherwise it will be opened as as either
312 // Browser::Type::APP a.k.a. "thin frame" (if |extension| is NULL) or
313 // Browser::Type::EXTENSION_APP (if |extension| is non-NULL).
314 // If |app_browser| is not NULL, it is set to the browser that hosts the
315 // returned tab.
316 static content::WebContents* OpenApplicationWindow(
317 Profile* profile,
318 const extensions::Extension* extension,
319 extension_misc::LaunchContainer container,
320 const GURL& url,
321 Browser** app_browser);
322
323 // Open |url| in an app shortcut window. If |update_shortcut| is true,
324 // update the name, description, and favicon of the shortcut.
325 // There are two kinds of app shortcuts: Shortcuts to a URL,
326 // and shortcuts that open an installed application. This function
327 // is used to open the former. To open the latter, use
328 // Browser::OpenApplicationWindow().
329 static content::WebContents* OpenAppShortcutWindow(Profile* profile,
330 const GURL& url,
331 bool update_shortcut);
332
333 // Open an application for |extension| using |disposition|. Returns NULL if
334 // there are no appropriate existing browser windows for |profile|. If
335 // non-empty, |override_url| is used in place of the app launch url.
336 static content::WebContents* OpenApplicationTab(
337 Profile* profile,
338 const extensions::Extension* extension,
339 const GURL& override_url,
340 WindowOpenDisposition disposition);
341
342 // Opens a new window and opens the bookmark manager. 299 // Opens a new window and opens the bookmark manager.
343 static void OpenBookmarkManagerWindow(Profile* profile); 300 static void OpenBookmarkManagerWindow(Profile* profile);
344 301
345 #if defined(OS_MACOSX) 302 #if defined(OS_MACOSX)
346 // Open a new window with history/downloads/help/options (needed on Mac when 303 // Open a new window with history/downloads/help/options (needed on Mac when
347 // there are no windows). 304 // there are no windows).
348 static void OpenAboutWindow(Profile* profile); 305 static void OpenAboutWindow(Profile* profile);
349 static void OpenHistoryWindow(Profile* profile); 306 static void OpenHistoryWindow(Profile* profile);
350 static void OpenDownloadsWindow(Profile* profile); 307 static void OpenDownloadsWindow(Profile* profile);
351 static void OpenHelpWindow(Profile* profile); 308 static void OpenHelpWindow(Profile* profile);
(...skipping 494 matching lines...) Expand 10 before | Expand all | Expand 10 after
846 803
847 // True when the mouse cursor is locked. 804 // True when the mouse cursor is locked.
848 bool IsMouseLocked() const; 805 bool IsMouseLocked() const;
849 806
850 // Called each time the browser window is shown. 807 // Called each time the browser window is shown.
851 void OnWindowDidShow(); 808 void OnWindowDidShow();
852 809
853 // Show the first run search engine bubble on the location bar. 810 // Show the first run search engine bubble on the location bar.
854 void ShowFirstRunBubble(); 811 void ShowFirstRunBubble();
855 812
813 void set_pending_web_app_action(WebAppAction action) {
814 pending_web_app_action_ = action;
815 }
816
856 ExtensionWindowController* extension_window_controller() const { 817 ExtensionWindowController* extension_window_controller() const {
857 return extension_window_controller_.get(); 818 return extension_window_controller_.get();
858 } 819 }
859 820
860 protected: 821 protected:
861 // Wrapper for the factory method in BrowserWindow. This allows subclasses to 822 // Wrapper for the factory method in BrowserWindow. This allows subclasses to
862 // set their own window. 823 // set their own window.
863 virtual BrowserWindow* CreateBrowserWindow(); 824 virtual BrowserWindow* CreateBrowserWindow();
864 825
865 private: 826 private:
(...skipping 538 matching lines...) Expand 10 before | Expand all | Expand 10 after
1404 1365
1405 // Indicates if command execution is blocked. 1366 // Indicates if command execution is blocked.
1406 bool block_command_execution_; 1367 bool block_command_execution_;
1407 1368
1408 // Stores the last blocked command id when |block_command_execution_| is true. 1369 // Stores the last blocked command id when |block_command_execution_| is true.
1409 int last_blocked_command_id_; 1370 int last_blocked_command_id_;
1410 1371
1411 // Stores the disposition type of the last blocked command. 1372 // Stores the disposition type of the last blocked command.
1412 WindowOpenDisposition last_blocked_command_disposition_; 1373 WindowOpenDisposition last_blocked_command_disposition_;
1413 1374
1414 // Different types of action when web app info is available.
1415 // OnDidGetApplicationInfo uses this to dispatch calls.
1416 enum WebAppAction {
1417 NONE, // No action at all.
1418 CREATE_SHORTCUT, // Bring up create application shortcut dialog.
1419 UPDATE_SHORTCUT // Update icon for app shortcut.
1420 };
1421
1422 // Which deferred action to perform when OnDidGetApplicationInfo is notified 1375 // Which deferred action to perform when OnDidGetApplicationInfo is notified
1423 // from a WebContents. Currently, only one pending action is allowed. 1376 // from a WebContents. Currently, only one pending action is allowed.
1424 WebAppAction pending_web_app_action_; 1377 WebAppAction pending_web_app_action_;
1425 1378
1426 // The profile's tab restore service. The service is owned by the profile, 1379 // The profile's tab restore service. The service is owned by the profile,
1427 // and we install ourselves as an observer. 1380 // and we install ourselves as an observer.
1428 TabRestoreService* tab_restore_service_; 1381 TabRestoreService* tab_restore_service_;
1429 1382
1430 // Helper which implements the ContentSettingBubbleModel interface. 1383 // Helper which implements the ContentSettingBubbleModel interface.
1431 scoped_ptr<BrowserContentSettingBubbleModelDelegate> 1384 scoped_ptr<BrowserContentSettingBubbleModelDelegate>
(...skipping 21 matching lines...) Expand all
1453 bool window_has_shown_; 1406 bool window_has_shown_;
1454 1407
1455 // Currently open color chooser. Non-NULL after OpenColorChooser is called and 1408 // Currently open color chooser. Non-NULL after OpenColorChooser is called and
1456 // before DidEndColorChooser is called. 1409 // before DidEndColorChooser is called.
1457 scoped_ptr<content::ColorChooser> color_chooser_; 1410 scoped_ptr<content::ColorChooser> color_chooser_;
1458 1411
1459 DISALLOW_COPY_AND_ASSIGN(Browser); 1412 DISALLOW_COPY_AND_ASSIGN(Browser);
1460 }; 1413 };
1461 1414
1462 #endif // CHROME_BROWSER_UI_BROWSER_H_ 1415 #endif // CHROME_BROWSER_UI_BROWSER_H_
OLDNEW
« no previous file with comments | « chrome/browser/extensions/platform_app_browsertest.cc ('k') | chrome/browser/ui/browser.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698