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

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

Issue 2709393006: Do not show pinned tabs on multiple instances (Closed)
Patch Set: Created 3 years, 10 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 fdd35dd7f9b23347a1efb35ae6c31209a42aa6fc..78feb2c00fa4c0191da8e211ee696b49b9a57308 100644
--- a/chrome/browser/ui/startup/startup_tab_provider.cc
+++ b/chrome/browser/ui/startup/startup_tab_provider.cc
@@ -29,6 +29,21 @@
#include "chrome/browser/shell_integration.h"
#endif
+namespace {
+
+// Attempts to find an existing, non-empty tabbed browser for this profile.
+bool ProfileHasOtherTabbedBrowser(Profile* profile) {
+ 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();
+ });
+ return other_tabbed_browser != browser_list->end();
+}
+
+} // namespace
+
StartupTabs StartupTabProviderImpl::GetOnboardingTabs(Profile* profile) const {
// Onboarding content has not been launched on Chrome OS.
#if defined(OS_CHROMEOS)
@@ -101,26 +116,16 @@ StartupTabs StartupTabProviderImpl::GetPinnedTabs(
Profile* profile) const {
return GetPinnedTabsForState(
StartupBrowserCreator::GetSessionStartupPref(command_line, profile),
- PinnedTabCodec::ReadPinnedTabs(profile));
+ PinnedTabCodec::ReadPinnedTabs(profile),
+ ProfileHasOtherTabbedBrowser(profile));
}
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 GetPreferencesTabsForState(
StartupBrowserCreator::GetSessionStartupPref(command_line, profile),
- profile_has_other_tabbed_browser);
+ ProfileHasOtherTabbedBrowser(profile));
}
StartupTabs StartupTabProviderImpl::GetNewTabPageTabs(
@@ -202,9 +207,13 @@ StartupTabs StartupTabProviderImpl::GetResetTriggerTabsForState(
// static
StartupTabs StartupTabProviderImpl::GetPinnedTabsForState(
const SessionStartupPref& pref,
- const StartupTabs& pinned_tabs) {
- return (pref.type == SessionStartupPref::Type::LAST) ? StartupTabs()
- : pinned_tabs;
+ const StartupTabs& pinned_tabs,
+ bool profile_has_other_tabbed_browser) {
+ if (pref.type == SessionStartupPref::Type::LAST ||
+ profile_has_other_tabbed_browser) {
Peter Kasting 2017/02/25 06:07:07 Nit: {} unnecessary COuld continue to use ?: as b
tmartino 2017/02/27 19:22:23 Removed {}. Tried it with ?: but the condition is
+ return StartupTabs();
+ }
+ return pinned_tabs;
}
// static
« 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