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

Unified Diff: chrome/browser/ui/startup/startup_browser_creator.h

Issue 10384106: Extract StartupTabs and startup types from StartupBrowserCreator. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/ui/browser_browsertest.cc ('k') | chrome/browser/ui/startup/startup_browser_creator.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/ui/startup/startup_browser_creator.h
===================================================================
--- chrome/browser/ui/startup/startup_browser_creator.h (revision 136582)
+++ chrome/browser/ui/startup/startup_browser_creator.h (working copy)
@@ -14,6 +14,8 @@
#include "base/gtest_prod_util.h"
#include "chrome/browser/prefs/session_startup_pref.h"
#include "chrome/browser/profiles/profile.h"
+#include "chrome/browser/ui/startup/startup_types.h"
+#include "chrome/browser/ui/startup/startup_tab.h"
#include "googleurl/src/gurl.h"
class Browser;
@@ -28,15 +30,6 @@
public:
typedef std::vector<Profile*> Profiles;
- enum IsProcessStartup {
- IS_NOT_PROCESS_STARTUP,
- IS_PROCESS_STARTUP
- };
- enum IsFirstRun {
- IS_NOT_FIRST_RUN,
- IS_FIRST_RUN
- };
-
StartupBrowserCreator();
~StartupBrowserCreator();
@@ -78,8 +71,8 @@
bool LaunchBrowser(const CommandLine& command_line,
Profile* profile,
const FilePath& cur_dir,
- IsProcessStartup is_process_startup,
- IsFirstRun is_first_run,
+ browser::startup::IsProcessStartup is_process_startup,
+ browser::startup::IsFirstRun is_first_run,
int* return_code);
// When called the first time, reads the value of the preference kWasRestarted
@@ -91,144 +84,10 @@
const CommandLine& command_line,
Profile* profile);
- // LaunchWithProfile ---------------------------------------------------------
- //
- // Assists launching the application and appending the initial tabs for a
- // browser window.
-
- class LaunchWithProfile {
- public:
- // Used by OpenTabsInBrowser.
- struct Tab {
- Tab();
- ~Tab();
-
- // The url to load.
- GURL url;
-
- // If true, the tab corresponds to an app an |app_id| gives the id of the
- // app.
- bool is_app;
-
- // True if the is tab pinned.
- bool is_pinned;
-
- // Id of the app.
- std::string app_id;
- };
-
- // There are two ctors. The first one implies a NULL browser_creator object
- // and thus no access to distribution-specific first-run behaviors. The
- // second one is always called when the browser starts even if it is not
- // the first run. |is_first_run| indicates that this is a new profile.
- LaunchWithProfile(const FilePath& cur_dir,
- const CommandLine& command_line,
- IsFirstRun is_first_run);
- LaunchWithProfile(const FilePath& cur_dir,
- const CommandLine& command_line,
- StartupBrowserCreator* browser_creator,
- IsFirstRun is_first_run);
- ~LaunchWithProfile();
-
- // Creates the necessary windows for startup. Returns true on success,
- // false on failure. process_startup is true if Chrome is just
- // starting up. If process_startup is false, it indicates Chrome was
- // already running and the user wants to launch another instance.
- bool Launch(Profile* profile,
- const std::vector<GURL>& urls_to_open,
- bool process_startup);
-
- // Convenience for OpenTabsInBrowser that converts |urls| into a set of
- // Tabs.
- Browser* OpenURLsInBrowser(Browser* browser,
- bool process_startup,
- const std::vector<GURL>& urls);
-
- // Creates a tab for each of the Tabs in |tabs|. If browser is non-null
- // and a tabbed browser, the tabs are added to it. Otherwise a new tabbed
- // browser is created and the tabs are added to it. The browser the tabs
- // are added to is returned, which is either |browser| or the newly created
- // browser.
- Browser* OpenTabsInBrowser(Browser* browser,
- bool process_startup,
- const std::vector<Tab>& tabs);
-
- private:
- FRIEND_TEST_ALL_PREFIXES(BrowserTest, RestorePinnedTabs);
- FRIEND_TEST_ALL_PREFIXES(BrowserTest, AppIdSwitch);
-
- // If the process was launched with the web application command line flags,
- // e.g. --app=http://www.google.com/ or --app_id=... return true.
- // In this case |app_url| or |app_id| are populated if they're non-null.
- bool IsAppLaunch(std::string* app_url, std::string* app_id);
-
- // If IsAppLaunch is true, tries to open an application window.
- // If the app is specified to start in a tab, or IsAppLaunch is false,
- // returns false to specify default processing.
- bool OpenApplicationWindow(Profile* profile);
-
- // If IsAppLaunch is true and the user set a pref indicating that the app
- // should open in a tab, do so.
- bool OpenApplicationTab(Profile* profile);
-
- // Invoked from Launch to handle processing of urls. This may do any of the
- // following:
- // . Invoke ProcessStartupURLs if |process_startup| is true.
- // . If |process_startup| is false, restore the last session if necessary,
- // or invoke ProcessSpecifiedURLs.
- // . Open the urls directly.
- void ProcessLaunchURLs(bool process_startup,
- const std::vector<GURL>& urls_to_open);
-
- // Does the following:
- // . If the user's startup pref is to restore the last session (or the
- // command line flag is present to force using last session), it is
- // restored.
- // . Otherwise invoke ProcessSpecifiedURLs
- // If a browser was created, true is returned. Otherwise returns false and
- // the caller must create a new browser.
- bool ProcessStartupURLs(const std::vector<GURL>& urls_to_open);
-
- // Invoked from either ProcessLaunchURLs or ProcessStartupURLs to handle
- // processing of URLs where the behavior is common between process startup
- // and launch via an existing process (i.e. those explicitly specified by
- // the user somehow). Does the following:
- // . Attempts to restore any pinned tabs from last run of chrome.
- // . If urls_to_open is non-empty, they are opened.
- // . If the user's startup pref is to launch a specific set of URLs they
- // are opened.
- //
- // If any tabs were opened, the Browser which was created is returned.
- // Otherwise null is returned and the caller must create a new browser.
- Browser* ProcessSpecifiedURLs(const std::vector<GURL>& urls_to_open);
-
- // Adds a Tab to |tabs| for each url in |urls| that doesn't already exist
- // in |tabs|.
- void AddUniqueURLs(const std::vector<GURL>& urls,
- std::vector<Tab>* tabs);
-
- // Adds any startup infobars to the selected tab of the given browser.
- void AddInfoBarsIfNecessary(Browser* browser,
- IsProcessStartup is_process_startup);
-
- // Adds additional startup URLs to the specified vector.
- void AddStartupURLs(std::vector<GURL>* startup_urls) const;
-
- // Checks whether the Preferences backup is invalid and notifies user in
- // that case.
- void CheckPreferencesBackup(Profile* profile);
-
- const FilePath cur_dir_;
- const CommandLine& command_line_;
- Profile* profile_;
- StartupBrowserCreator* browser_creator_;
- bool is_first_run_;
- DISALLOW_COPY_AND_ASSIGN(LaunchWithProfile);
- };
-
private:
friend class CloudPrintProxyPolicyTest;
friend class CloudPrintProxyPolicyStartupTest;
+ friend class StartupBrowserCreatorImpl;
FRIEND_TEST_ALL_PREFIXES(StartupBrowserCreatorTest,
ReadingWasRestartedAfterNormalStart);
FRIEND_TEST_ALL_PREFIXES(StartupBrowserCreatorTest,
« no previous file with comments | « chrome/browser/ui/browser_browsertest.cc ('k') | chrome/browser/ui/startup/startup_browser_creator.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698