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

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

Issue 19746: Remove old web app code it's no longer needed. Simplifies startup a little. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 11 years, 10 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) 2006-2008 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2006-2008 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_BROWSER_INIT_H_ 5 #ifndef CHROME_BROWSER_BROWSER_INIT_H_
6 #define CHROME_BROWSER_BROWSER_INIT_H_ 6 #define CHROME_BROWSER_BROWSER_INIT_H_
7 7
8 #include <string> 8 #include <string>
9 #include <vector> 9 #include <vector>
10 10
11 #include "base/basictypes.h" 11 #include "base/basictypes.h"
12 12
13 class Browser; 13 class Browser;
14 class CommandLine;
14 class GURL; 15 class GURL;
15 class PrefService; 16 class PrefService;
16 class Profile; 17 class Profile;
17 class TabContents; 18 class TabContents;
18 19
19 // Scoper class containing helpers for BrowserMain to spin up a new instance 20 // Scoper class containing helpers for BrowserMain to spin up a new instance
20 // and initialize the profile. 21 // and initialize the profile.
21 class BrowserInit { 22 class BrowserInit {
22 public: 23 public:
23 // Returns true if the browser is coming up. 24 // Returns true if the browser is coming up.
24 static bool InProcessStartup(); 25 static bool InProcessStartup();
25 26
26 // LaunchWithProfile --------------------------------------------------------- 27 // LaunchWithProfile ---------------------------------------------------------
27 // 28 //
28 // Assists launching the application and appending the initial tabs for a 29 // Assists launching the application and appending the initial tabs for a
29 // browser window. 30 // browser window.
30 31
31 class LaunchWithProfile { 32 class LaunchWithProfile {
32 public: 33 public:
33 explicit LaunchWithProfile(const std::wstring& cur_dir); 34 LaunchWithProfile(const std::wstring& cur_dir,
35 const CommandLine& command_line);
34 ~LaunchWithProfile() { } 36 ~LaunchWithProfile() { }
35 37
36 // Creates the necessary windows for startup. Returns true on success, 38 // Creates the necessary windows for startup. Returns true on success,
37 // false on failure. process_startup is true if Chrome is just 39 // false on failure. process_startup is true if Chrome is just
38 // starting up. If process_startup is false, it indicates Chrome was 40 // starting up. If process_startup is false, it indicates Chrome was
39 // already running and the user wants to launch another instance. 41 // already running and the user wants to launch another instance.
40 bool Launch(Profile* profile, bool process_startup); 42 bool Launch(Profile* profile, bool process_startup);
41 43
42 private: 44 private:
45 // If the process was launched with the web application command line flag,
46 // e.g. --app=http://www.google.com/, opens a web application browser and
47 // returns true. If there is no web application command line flag speciifed,
48 // returns false to specify default processing.
49 bool OpenApplicationURL(Profile* profile);
50
43 // Does the following: 51 // Does the following:
44 // . If the user's startup pref is to restore the last session (or the 52 // . If the user's startup pref is to restore the last session (or the
45 // command line flag is present to force using last session), it is 53 // command line flag is present to force using last session), it is
46 // restored, and true is returned. 54 // restored, and true is returned.
47 // . If the user's startup pref is to launch a specific set of URLs, and 55 // . If the user's startup pref is to launch a specific set of URLs, and
48 // urls_to_open is empty, the user specified set of URLs is openned. 56 // urls_to_open is empty, the user specified set of URLs is openned.
49 // 57 //
50 // Otherwise false is returned. 58 // Otherwise false is returned.
51 bool OpenStartupURLs(bool is_process_startup, 59 bool OpenStartupURLs(bool is_process_startup,
52 const std::vector<GURL>& urls_to_open); 60 const std::vector<GURL>& urls_to_open);
53 61
54 // Opens the list of urls. If browser is non-null and a tabbed browser, the 62 // Opens the list of urls. If browser is non-null and a tabbed browser, the
55 // URLs are opened in it. Otherwise a new tabbed browser is created and the 63 // URLs are opened in it. Otherwise a new tabbed browser is created and the
56 // URLs are added to it. The browser the tabs are added to is returned, 64 // URLs are added to it. The browser the tabs are added to is returned,
57 // which is either |browser| or the newly created browser. 65 // which is either |browser| or the newly created browser.
58 Browser* OpenURLsInBrowser(Browser* browser, 66 Browser* OpenURLsInBrowser(Browser* browser,
59 bool process_startup, 67 bool process_startup,
60 const std::vector<GURL>& urls); 68 const std::vector<GURL>& urls);
61 69
62 // If the last session didn't exit cleanly and tab is a web contents tab, 70 // If the last session didn't exit cleanly and tab is a web contents tab,
63 // an infobar is added allowing the user to restore the last session. 71 // an infobar is added allowing the user to restore the last session.
64 void AddCrashedInfoBarIfNecessary(TabContents* tab); 72 void AddCrashedInfoBarIfNecessary(TabContents* tab);
65 73
66 // Returns the list of URLs to open from the command line. The returned 74 // Returns the list of URLs to open from the command line. The returned
67 // vector is empty if the user didn't specify any URLs on the command line. 75 // vector is empty if the user didn't specify any URLs on the command line.
68 std::vector<GURL> GetURLsFromCommandLine(Profile* profile); 76 std::vector<GURL> GetURLsFromCommandLine(Profile* profile);
69 77
78 // Adds additional startup URLs to the specified vector.
79 void AddStartupURLs(std::vector<GURL>* startup_urls) const;
80
70 std::wstring cur_dir_; 81 std::wstring cur_dir_;
82 const CommandLine& command_line_;
71 Profile* profile_; 83 Profile* profile_;
72 84
73 DISALLOW_COPY_AND_ASSIGN(LaunchWithProfile); 85 DISALLOW_COPY_AND_ASSIGN(LaunchWithProfile);
74 }; 86 };
75 87
76 // This function performs command-line handling and is invoked when 88 // This function performs command-line handling and is invoked when
77 // process starts as well as when we get a start request from another 89 // process starts as well as when we get a start request from another
78 // process (via the WM_COPYDATA message). The process_startup flag 90 // process (via the WM_COPYDATA message). |command_line| holds the command
79 // indicates if this is being called from the process startup code or 91 // line we need to process - either from this process or from some other one
80 // the WM_COPYDATA handler. 92 // (if |process_startup| is true and we are being called from
81 static bool ProcessCommandLine(const std::wstring& cur_dir, 93 // MessageWindow::OnCopyData).
94 static bool ProcessCommandLine(const CommandLine& command_line,
95 const std::wstring& cur_dir,
82 PrefService* prefs, bool process_startup, 96 PrefService* prefs, bool process_startup,
83 Profile* profile, int* return_code); 97 Profile* profile, int* return_code);
84 98
85 // Helper function to launch a new browser based on command-line arguments 99 // Helper function to launch a new browser based on command-line arguments
86 // This function takes in a specific profile to use. 100 // This function takes in a specific profile to use.
87 static bool LaunchBrowser(Profile* profile, const std::wstring& cur_dir, 101 static bool LaunchBrowser(const CommandLine& command_line,
102 Profile* profile, const std::wstring& cur_dir,
88 bool process_startup, int* return_code); 103 bool process_startup, int* return_code);
89 104
90 #if defined(OS_WIN) 105 #if defined(OS_WIN)
91 template <class AutomationProviderClass> 106 template <class AutomationProviderClass>
92 static void CreateAutomationProvider(const std::wstring& channel_id, 107 static void CreateAutomationProvider(const std::wstring& channel_id,
93 Profile* profile, 108 Profile* profile,
94 size_t expected_tabs); 109 size_t expected_tabs);
95 #endif 110 #endif
96 111
97 private: 112 private:
98 // Does the work of LaunchBrowser returning the result. 113 // Does the work of LaunchBrowser returning the result.
99 static bool LaunchBrowserImpl(Profile* profile, const std::wstring& cur_dir, 114 static bool LaunchBrowserImpl(const CommandLine& command_line,
115 Profile* profile, const std::wstring& cur_dir,
100 bool process_startup, int* return_code); 116 bool process_startup, int* return_code);
101 117
102 // This class is for scoping purposes. 118 // This class is for scoping purposes.
103 BrowserInit(); 119 BrowserInit();
104 DISALLOW_COPY_AND_ASSIGN(BrowserInit); 120 DISALLOW_COPY_AND_ASSIGN(BrowserInit);
105 }; 121 };
106 122
107 #endif // CHROME_BROWSER_BROWSER_INIT_H_ 123 #endif // CHROME_BROWSER_BROWSER_INIT_H_
108 124
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698