Index: chrome/browser/ui/startup/startup_browser_creator_impl.h |
diff --git a/chrome/browser/ui/startup/startup_browser_creator_impl.h b/chrome/browser/ui/startup/startup_browser_creator_impl.h |
index 8103e208e2145bb205fba476f4540029cfd4c912..1ec4758806baa560406dc873dc9a9f6262433553 100644 |
--- a/chrome/browser/ui/startup/startup_browser_creator_impl.h |
+++ b/chrome/browser/ui/startup/startup_browser_creator_impl.h |
@@ -29,8 +29,18 @@ class WebContents; |
} |
namespace internals { |
+ |
GURL GetWelcomePageURL(); |
-} |
+ |
+// On Windows 10 and higher, the welcome page is shown once following each OS |
+// upgrade, even when not in first-run. When this is true, the welcome page |
gab
2015/07/09 18:05:13
"even when not" suggests it *may also* happen duri
grt (UTC plus 2)
2015/07/10 15:43:25
comment removed
|
+// precedes the NTP in the startup tabs, and the sync promo is not shown. |
+bool ShowWelcomePageAfterFirstRun(); |
msw
2015/07/09 17:51:31
Inline this in StartupBrowserCreatorImpl::Initiali
grt (UTC plus 2)
2015/07/10 15:43:25
Done.
|
+ |
+// Records that welcome page was shown for the current run. |
+void RecordWelcomeRunComplete(); |
+ |
+} // namespace internals |
// Assists launching the application and appending the initial tabs for a |
// browser window. |
@@ -79,6 +89,13 @@ class StartupBrowserCreatorImpl { |
FRIEND_TEST_ALL_PREFIXES(BrowserTest, RestorePinnedTabs); |
FRIEND_TEST_ALL_PREFIXES(BrowserTest, AppIdSwitch); |
+ enum class WelcomeRunType { |
+ NONE, // Do not inject the welcome page for this run. |
+ FIRST_RUN_FIRST, // Inject the welcome page as the first first-run tab. |
msw
2015/07/09 17:51:31
It doesn't seem like the enum needs to convey the
grt (UTC plus 2)
2015/07/09 18:59:38
I didn't differentiate these initially, but it tur
msw
2015/07/10 19:40:45
That sounds plausible, but I might have to see it
|
+ FIRST_RUN_LAST, // Inject the welcome page as the last first-run tab. |
+ ANY_RUN_FIRST, // Inject the welcome page as the first tab. |
+ }; |
+ |
// 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. |
@@ -141,15 +158,22 @@ class StartupBrowserCreatorImpl { |
// 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); |
+ // Initializes |welcome_run_type_| for this launch. For first-run, the type |
msw
2015/07/09 17:51:31
Don't explain the nuanced impl details here, move
grt (UTC plus 2)
2015/07/09 18:59:38
Done.
|
+ // will be LAST_TAB for all systems except for Windows 10+, where it will be |
+ // FIRST_TAB. For non-first run, the type will be NONE for all systems |
gab
2015/07/09 18:05:13
FIRST_TAB and LAST_TAB don't match the values of t
grt (UTC plus 2)
2015/07/09 18:59:38
Done.
|
+ // except for Windows 10+, where it will be FIRST_TAB if this is the first |
+ // somewhat normal launch since an OS upgrade. |
+ void InitializeWelcomeRunType(const std::vector<GURL>& urls_to_open); |
+ |
+ // Records that the welcome page was shown. |
+ void RecordWelcomeRunComplete() const; |
const base::FilePath cur_dir_; |
const base::CommandLine& command_line_; |
Profile* profile_; |
StartupBrowserCreator* browser_creator_; |
bool is_first_run_; |
+ WelcomeRunType welcome_run_type_; |
DISALLOW_COPY_AND_ASSIGN(StartupBrowserCreatorImpl); |
}; |