Chromium Code Reviews| Index: chrome/browser/ui/startup/startup_tab_provider.h |
| diff --git a/chrome/browser/ui/startup/startup_tab_provider.h b/chrome/browser/ui/startup/startup_tab_provider.h |
| index 5100fd6ced7ffa0295496c59c3c7e8add404942a..d7d03379c4fafa5a102044a7e63f10526ec6506c 100644 |
| --- a/chrome/browser/ui/startup/startup_tab_provider.h |
| +++ b/chrome/browser/ui/startup/startup_tab_provider.h |
| @@ -35,13 +35,19 @@ class StartupTabProvider { |
| // Reset on this profile. Returns any tabs which should be shown accordingly. |
| virtual StartupTabs GetResetTriggerTabs(Profile* profile) const = 0; |
| - // Returns the user's pinned tabs. |
| - virtual StartupTabs GetPinnedTabs(Profile* profile) const = 0; |
| + // Returns the user's pinned tabs, if they should be shown. |
| + virtual StartupTabs GetPinnedTabs(const base::CommandLine& command_line, |
| + Profile* profile) const = 0; |
| // Returns tabs, if any, specified in the user's preferences as the default |
| // content for a new window. |
| virtual StartupTabs GetPreferencesTabs(const base::CommandLine& command_line, |
| Profile* profile) const = 0; |
| + |
| + // Possibly returns the New Tab Page, if the user's preferences indicate a |
|
Peter Kasting
2016/10/31 19:24:06
Nit: No need for "Possibly"
tmartino
2016/11/02 16:34:00
Done
|
| + // configuration where it must be passed explicitly. |
| + virtual StartupTabs GetNewTabPageTabs(const base::CommandLine& command_line, |
| + Profile* profile) const = 0; |
| }; |
| class StartupTabProviderImpl : public StartupTabProvider { |
| @@ -66,10 +72,20 @@ class StartupTabProviderImpl : public StartupTabProvider { |
| // of a Reset Trigger on this profile. |
| static StartupTabs CheckResetTriggerTabPolicy(bool profile_has_trigger); |
| + // Determines whether the startup preference requires the contents of |
| + // |pinned_tabs| to be shown. This is needed to avoid duplicates, as the |
| + // session restore logic will also resurface pinned tabs on its own. |
| + static StartupTabs CheckPinnedTabPolicy(const SessionStartupPref& pref, |
| + const StartupTabs& pinned_tabs); |
| + |
| // Determines whether preferences indicate that user-specified tabs should be |
| // shown as the default new window content, and returns the specified tabs if |
| // so. |
| - static StartupTabs CheckPreferencesTabPolicy(SessionStartupPref pref); |
| + static StartupTabs CheckPreferencesTabPolicy(const SessionStartupPref& pref); |
| + |
| + // Determines whether startup preferences require the New Tab Page to be |
| + // explicitly specified. Session Restore does not expect the NTP to be passed. |
| + static StartupTabs CheckNewTabPageTabPolicy(const SessionStartupPref& pref); |
| // Gets the URL for the "Welcome to Chrome" page. |
| static GURL GetWelcomePageUrl(); |
| @@ -83,9 +99,12 @@ class StartupTabProviderImpl : public StartupTabProvider { |
| StartupTabs GetDistributionFirstRunTabs( |
| StartupBrowserCreator* browser_creator) const override; |
| StartupTabs GetResetTriggerTabs(Profile* profile) const override; |
| - StartupTabs GetPinnedTabs(Profile* profile) const override; |
| + StartupTabs GetPinnedTabs(const base::CommandLine& command_line, |
| + Profile* profile) const override; |
| StartupTabs GetPreferencesTabs(const base::CommandLine& command_line, |
| Profile* profile) const override; |
| + StartupTabs GetNewTabPageTabs(const base::CommandLine& command_line, |
| + Profile* profile) const override; |
| private: |
| DISALLOW_COPY_AND_ASSIGN(StartupTabProviderImpl); |