Index: chrome/browser/ui/startup/startup_browser_creator_impl.cc |
diff --git a/chrome/browser/ui/startup/startup_browser_creator_impl.cc b/chrome/browser/ui/startup/startup_browser_creator_impl.cc |
index 14314c414207f406034b18ced30220356ee625d5..2f29df62a114625f2fa39e67109e712ed832664f 100644 |
--- a/chrome/browser/ui/startup/startup_browser_creator_impl.cc |
+++ b/chrome/browser/ui/startup/startup_browser_creator_impl.cc |
@@ -272,30 +272,6 @@ bool IsNewTabURL(Profile* profile, const GURL& url) { |
(url.is_empty() && profile->GetHomePage() == ntp_url); |
} |
-void AddSyncPromoTab(Profile* profile, StartupTabs* tabs) { |
- SyncPromoUI::DidShowSyncPromoAtStartup(profile); |
- |
- StartupTab sync_promo_tab; |
- sync_promo_tab.url = SyncPromoUI::GetSyncPromoURL( |
- SyncPromoUI::SOURCE_START_PAGE, false); |
- sync_promo_tab.is_pinned = false; |
- |
- // No need to add if the sync promo is already in the startup list. |
- for (StartupTabs::const_iterator it = tabs->begin(); it != tabs->end(); |
- ++it) { |
- if (it->url == sync_promo_tab.url) |
- return; |
- } |
- |
- tabs->insert(tabs->begin(), sync_promo_tab); |
- |
- // If the next URL is the NTP then remove it, effectively replacing the NTP |
- // with the sync promo. This behavior is desired because completing or |
- // skipping the sync promo causes a redirect to the NTP. |
- if (tabs->size() > 1 && IsNewTabURL(profile, tabs->at(1).url)) |
- tabs->erase(tabs->begin() + 1); |
-} |
- |
class WebContentsCloseObserver : public content::NotificationObserver { |
public: |
WebContentsCloseObserver() : contents_(NULL) {} |
@@ -763,11 +739,6 @@ Browser* StartupBrowserCreatorImpl::ProcessSpecifiedURLs( |
NOTREACHED() << "SessionStartupPref has deprecated type HOMEPAGE"; |
} |
- if (pref.type != SessionStartupPref::LAST && |
- SyncPromoUI::ShouldShowSyncPromoAtStartup(profile_, is_first_run_)) { |
- AddSyncPromoTab(profile_, &tabs); |
- } |
- |
if (tabs.empty()) |
return NULL; |
@@ -930,9 +901,11 @@ void StartupBrowserCreatorImpl::AddInfoBarsIfNecessary( |
} |
} |
- |
void StartupBrowserCreatorImpl::AddStartupURLs( |
std::vector<GURL>* startup_urls) const { |
+ // TODO(atwilson): Simplify the logic that decides which tabs to open on |
+ // start-up and make it more consistent. http://crbug.com/248883 |
+ |
// If we have urls specified by the first run master preferences use them |
// and nothing else. |
if (browser_creator_ && startup_urls->empty()) { |
@@ -962,6 +935,33 @@ void StartupBrowserCreatorImpl::AddStartupURLs( |
if (first_run::ShouldShowWelcomePage()) |
startup_urls->push_back(internals::GetWelcomePageURL()); |
} |
+ |
+ if (SyncPromoUI::ShouldShowSyncPromoAtStartup(profile_, is_first_run_)) { |
+ SyncPromoUI::DidShowSyncPromoAtStartup(profile_); |
+ |
+ const GURL sync_promo_url = SyncPromoUI::GetSyncPromoURL( |
+ SyncPromoUI::SOURCE_START_PAGE, false); |
+ |
+ // No need to add if the sync promo is already in the startup list. |
+ bool add_promo = true; |
+ for (std::vector<GURL>::const_iterator it = startup_urls->begin(); |
+ it != startup_urls->end(); ++it) { |
+ if (*it == sync_promo_url) { |
+ add_promo = false; |
+ break; |
+ } |
+ } |
+ |
+ if (add_promo) { |
+ // If the first URL is the NTP, replace it with the sync promo. This |
+ // behavior is desired because completing or skipping the sync promo |
+ // causes a redirect to the NTP. |
+ if (!startup_urls->empty() && IsNewTabURL(profile_, startup_urls->at(0))) |
+ startup_urls->at(0) = sync_promo_url; |
+ else |
+ startup_urls->insert(startup_urls->begin(), sync_promo_url); |
+ } |
+ } |
} |
#if !defined(OS_WIN) |