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

Unified Diff: chrome/browser/ui/startup/startup_tab_provider.cc

Issue 2475913003: Enabling kUseConsolidatedStartupFlow by default on trunk. (Closed)
Patch Set: Rebase-updated Created 3 years, 11 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
Index: chrome/browser/ui/startup/startup_tab_provider.cc
diff --git a/chrome/browser/ui/startup/startup_tab_provider.cc b/chrome/browser/ui/startup/startup_tab_provider.cc
index 7ba207290c6578779ebebbf6cb0478b5ab8c1e7e..c3aaac70b7bbe9977bbde058d627d38934769f65 100644
--- a/chrome/browser/ui/startup/startup_tab_provider.cc
+++ b/chrome/browser/ui/startup/startup_tab_provider.cc
@@ -9,8 +9,11 @@
#include "chrome/browser/profile_resetter/triggered_profile_resetter.h"
#include "chrome/browser/profile_resetter/triggered_profile_resetter_factory.h"
#include "chrome/browser/signin/signin_manager_factory.h"
+#include "chrome/browser/ui/browser.h"
+#include "chrome/browser/ui/browser_list.h"
#include "chrome/browser/ui/chrome_pages.h"
#include "chrome/browser/ui/tabs/pinned_tab_codec.h"
+#include "chrome/browser/ui/tabs/tab_strip_model.h"
#include "chrome/common/pref_names.h"
#include "chrome/common/url_constants.h"
#include "chrome/grit/locale_settings.h"
@@ -26,6 +29,10 @@
#endif
StartupTabs StartupTabProviderImpl::GetOnboardingTabs(Profile* profile) const {
+// Onboarding content has not been launched on Chrome OS.
+#if defined(OS_CHROMEOS)
+ return StartupTabs();
+#else
if (!profile)
return StartupTabs();
@@ -50,10 +57,11 @@ StartupTabs StartupTabProviderImpl::GetOnboardingTabs(Profile* profile) const {
has_seen_win10_promo, is_signed_in,
is_default_browser);
}
-#endif
+#endif // defined(OS_WIN)
return CheckStandardOnboardingTabPolicy(is_first_run, has_seen_welcome_page,
is_signed_in);
+#endif // defined(OS_CHROMEOS)
}
StartupTabs StartupTabProviderImpl::GetDistributionFirstRunTabs(
@@ -86,8 +94,20 @@ StartupTabs StartupTabProviderImpl::GetPinnedTabs(
StartupTabs StartupTabProviderImpl::GetPreferencesTabs(
const base::CommandLine& command_line,
Profile* profile) const {
+ // Attempt to find an existing, non-empty tabbed browser for this profile. If
+ // one exists, preferences tabs are not used.
+ BrowserList* browser_list = BrowserList::GetInstance();
+ auto other_tabbed_browser = std::find_if(
+ browser_list->begin(), browser_list->end(), [profile](Browser* browser) {
+ return browser->profile() == profile && browser->is_type_tabbed() &&
+ !browser->tab_strip_model()->empty();
+ });
+ bool profile_has_other_tabbed_browser =
+ other_tabbed_browser != browser_list->end();
+
return CheckPreferencesTabPolicy(
- StartupBrowserCreator::GetSessionStartupPref(command_line, profile));
+ StartupBrowserCreator::GetSessionStartupPref(command_line, profile),
+ profile_has_other_tabbed_browser);
}
StartupTabs StartupTabProviderImpl::GetNewTabPageTabs(
@@ -167,9 +187,11 @@ StartupTabs StartupTabProviderImpl::CheckPinnedTabPolicy(
// static
StartupTabs StartupTabProviderImpl::CheckPreferencesTabPolicy(
- const SessionStartupPref& pref) {
+ const SessionStartupPref& pref,
+ bool profile_has_other_tabbed_browser) {
StartupTabs tabs;
- if (pref.type == SessionStartupPref::Type::URLS && !pref.urls.empty()) {
+ if (pref.type == SessionStartupPref::Type::URLS && !pref.urls.empty() &&
+ !profile_has_other_tabbed_browser) {
for (const auto& url : pref.urls)
tabs.push_back(StartupTab(url, false));
}
« no previous file with comments | « chrome/browser/ui/startup/startup_tab_provider.h ('k') | chrome/browser/ui/startup/startup_tab_provider_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698