Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Unverified Commit 02612122 authored by Carmelo Messina's avatar Carmelo Messina
Browse files

Show NTP at startup: activates the same behaviour also in desktop platforms

The feature is manageable in chrome://settings/onStartup
parent 4d8f944d
Loading
Loading
Loading
Loading
+69 −2
Original line number Diff line number Diff line
@@ -13,18 +13,22 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
 .../browser/ChromeInactivityTracker.java      | 14 ++++++++
 .../chrome/browser/ChromeTabbedActivity.java  |  2 ++
 .../browser/tasks/ReturnToChromeUtil.java     | 16 ++++++++-
 chrome/app/settings_strings.grdp              |  2 +-
 .../flags/android/chrome_feature_list.cc      |  1 +
 .../cromite/sShowNtpAtStartupAndroid.java     | 33 +++++++++++++++++++
 .../preferences/ChromePreferenceKeys.java     |  2 ++
 .../LegacyChromePreferenceKeys.java           |  1 +
 .../on_startup_page/on_startup_page.ts        |  4 +--
 chrome/browser/sessions/tab_loader.cc         |  2 +-
 .../res/layout/single_tab_module_layout.xml   | 12 +++----
 .../SingleTabSwitcherCoordinator.java         |  2 +-
 .../SingleTabSwitcherOnNtpMediator.java       |  5 +--
 .../show-ntp-at-startup.grdp                  |  9 +++++
 .../startup/startup_browser_creator_impl.cc   |  8 +++++
 .../about_flags_cc/show-ntp-at-startup.inc    | 12 +++++++
 .../show-ntp-at-startup.inc                   |  5 +++
 .../show-ntp-at-startup.inc                   |  1 +
 16 files changed, 112 insertions(+), 10 deletions(-)
 20 files changed, 124 insertions(+), 14 deletions(-)
 create mode 100644 chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/cromite/sShowNtpAtStartupAndroid.java
 create mode 100644 chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/show-ntp-at-startup.grdp
 create mode 100644 cromite_flags/chrome/browser/about_flags_cc/show-ntp-at-startup.inc
@@ -146,10 +150,22 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tasks/ReturnToC
             return false;
         }
 
diff --git a/chrome/app/settings_strings.grdp b/chrome/app/settings_strings.grdp
--- a/chrome/app/settings_strings.grdp
+++ b/chrome/app/settings_strings.grdp
@@ -1079,7 +1079,7 @@
     Open a specific page or set of pages
   </message>
   <message name="IDS_SETTINGS_ON_STARTUP_CONTINUE_AND_OPEN_SPECIFIC" desc="Radio button option to continue where you left off and open a specific set of pages.">
-    Continue where you left off and open a specific set of pages
+    Continue where you left off and open a New Tab page
   </message>
   <message name="IDS_SETTINGS_ON_STARTUP_USE_CURRENT" desc="Button to use current pages.">
     Use current pages
diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc
--- a/chrome/browser/flags/android/chrome_feature_list.cc
+++ b/chrome/browser/flags/android/chrome_feature_list.cc
@@ -335,6 +335,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
@@ -334,6 +334,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
     &kSearchInCCT,
     &kSearchInCCTAlternateTapHandling,
     &kSearchResumptionModuleAndroid,
@@ -218,6 +234,39 @@ diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/bro
                 ChromePreferenceKeys.TABMODEL_ACTIVE_TAB_ID,
                 ChromePreferenceKeys.TABMODEL_HAS_COMPUTED_MAX_ID,
                 ChromePreferenceKeys.TABMODEL_HAS_RUN_FILE_MIGRATION,
diff --git a/chrome/browser/resources/settings/on_startup_page/on_startup_page.ts b/chrome/browser/resources/settings/on_startup_page/on_startup_page.ts
--- a/chrome/browser/resources/settings/on_startup_page/on_startup_page.ts
+++ b/chrome/browser/resources/settings/on_startup_page/on_startup_page.ts
@@ -81,8 +81,7 @@ export class SettingsOnStartupPageElement extends
    *     pages" is selected.
    */
   private showStartupUrls_(restoreOnStartup: PrefValues): boolean {
-    return restoreOnStartup === PrefValues.OPEN_SPECIFIC ||
-        restoreOnStartup === PrefValues.CONTINUE_AND_OPEN_SPECIFIC;
+    return restoreOnStartup === PrefValues.OPEN_SPECIFIC;
   }
 
   /**
@@ -93,6 +92,7 @@ export class SettingsOnStartupPageElement extends
    */
   private showContinueAndOpenSpecific_(pref: chrome.settingsPrivate.PrefObject):
       boolean {
+    if ((true)) return true;
     return pref.enforcement === chrome.settingsPrivate.Enforcement.ENFORCED ||
         pref.enforcement === chrome.settingsPrivate.Enforcement.RECOMMENDED;
   }
diff --git a/chrome/browser/sessions/tab_loader.cc b/chrome/browser/sessions/tab_loader.cc
--- a/chrome/browser/sessions/tab_loader.cc
+++ b/chrome/browser/sessions/tab_loader.cc
@@ -52,7 +52,7 @@ struct ScoredTabComparator {
 };
 
 // Testing seams.
-size_t g_max_loaded_tab_count_for_testing = 0;
+size_t g_max_loaded_tab_count_for_testing = 1;
 base::RepeatingCallback<void(TabLoader*)>* g_construction_callback = nullptr;
 
 // Determines if the given browser (can be null) is closing.
diff --git a/chrome/browser/single_tab/android/java/res/layout/single_tab_module_layout.xml b/chrome/browser/single_tab/android/java/res/layout/single_tab_module_layout.xml
--- a/chrome/browser/single_tab/android/java/res/layout/single_tab_module_layout.xml
+++ b/chrome/browser/single_tab/android/java/res/layout/single_tab_module_layout.xml
@@ -311,6 +360,24 @@ new file mode 100644
+        Enable showing a NewTabPage at startup and allows selection of the last open tab
+    </message>
+</grit-part>
diff --git a/chrome/browser/ui/startup/startup_browser_creator_impl.cc b/chrome/browser/ui/startup/startup_browser_creator_impl.cc
--- a/chrome/browser/ui/startup/startup_browser_creator_impl.cc
+++ b/chrome/browser/ui/startup/startup_browser_creator_impl.cc
@@ -536,6 +536,14 @@ StartupBrowserCreatorImpl::DetermineStartupTabs(
       AppendTabs(provider.GetNewTabPageTabs(*command_line_, profile_), &tabs);
     }
 
+    SessionStartupPref session_startup_pref =
+          SessionStartupPref::GetStartupPref(profile_);
+    if (session_startup_pref.type == SessionStartupPref::LAST_AND_URLS) {
+      StartupTabs new_tabs;
+      new_tabs.emplace_back(GURL(chrome::kChromeUINewTabURL));
+      AppendTabs(new_tabs, &tabs);
+    }
+
     // Potentially add a tab appropriate to display the Privacy Sandbox
     // confirmaton dialog on top of. Ideally such a tab will already exist
     // in |tabs|, and no additional tab will be required.
diff --git a/cromite_flags/chrome/browser/about_flags_cc/show-ntp-at-startup.inc b/cromite_flags/chrome/browser/about_flags_cc/show-ntp-at-startup.inc
new file mode 100644
--- /dev/null