From 07308bad45bec4d99c4675d98b8d4fc1484e1f5d Mon Sep 17 00:00:00 2001 From: Carmelo Messina Date: Mon, 26 May 2025 17:02:52 +0200 Subject: [PATCH] Show NTP at startup: disables the loading of any page at browser start-up --- build/patches/Show-NTP-at-startup.patch | 37 +++++++++++++++++++++++-- 1 file changed, 34 insertions(+), 3 deletions(-) diff --git a/build/patches/Show-NTP-at-startup.patch b/build/patches/Show-NTP-at-startup.patch index b6b366dd..a8cfcbef 100644 --- a/build/patches/Show-NTP-at-startup.patch +++ b/build/patches/Show-NTP-at-startup.patch @@ -19,7 +19,8 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../preferences/ChromePreferenceKeys.java | 2 ++ .../LegacyChromePreferenceKeys.java | 1 + .../on_startup_page/on_startup_page.ts | 4 +-- - chrome/browser/sessions/tab_loader.cc | 2 +- + chrome/browser/sessions/tab_loader.cc | 6 ++-- + chrome/browser/sessions/tab_loader.h | 2 +- .../res/layout/single_tab_module_layout.xml | 12 +++---- .../SingleTabSwitcherCoordinator.java | 2 +- .../SingleTabSwitcherOnNtpMediator.java | 5 +-- @@ -28,7 +29,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../about_flags_cc/show-ntp-at-startup.inc | 12 +++++++ .../show-ntp-at-startup.inc | 5 +++ .../show-ntp-at-startup.inc | 1 + - 20 files changed, 124 insertions(+), 14 deletions(-) + 21 files changed, 127 insertions(+), 17 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 @@ -263,10 +264,40 @@ diff --git a/chrome/browser/sessions/tab_loader.cc b/chrome/browser/sessions/tab // Testing seams. -size_t g_max_loaded_tab_count_for_testing = 0; -+size_t g_max_loaded_tab_count_for_testing = 1; ++int g_max_loaded_tab_count_for_testing = 0; base::RepeatingCallback* g_construction_callback = nullptr; // Determines if the given browser (can be null) is closing. +@@ -384,7 +384,7 @@ void TabLoader::OnMemoryPressure( + + bool TabLoader::ShouldStopLoadingTabs() const { + DCHECK(reentry_depth_ > 0); // This can only be called internally. +- if (g_max_loaded_tab_count_for_testing != 0 && ++ if (g_max_loaded_tab_count_for_testing != -1 && + scheduled_to_load_count_ >= g_max_loaded_tab_count_for_testing) { + return true; + } +@@ -425,7 +425,7 @@ size_t TabLoader::GetMaxNewTabLoads() const { + tabs_to_load = std::min(tabs_to_load, tabs_to_load_.size()); + + // Finally, enforce testing tab load limits. +- if (g_max_loaded_tab_count_for_testing != 0) { ++ if (g_max_loaded_tab_count_for_testing != -1) { + size_t tabs_remaining_for_testing = + g_max_loaded_tab_count_for_testing - scheduled_to_load_count_; + tabs_to_load = std::min(tabs_to_load, tabs_remaining_for_testing); +diff --git a/chrome/browser/sessions/tab_loader.h b/chrome/browser/sessions/tab_loader.h +--- a/chrome/browser/sessions/tab_loader.h ++++ b/chrome/browser/sessions/tab_loader.h +@@ -278,7 +278,7 @@ class TabLoader : public base::RefCounted, + // This is monotonically increasing, and can never exceed the combined number + // of tabs passed into this TabLoader via StartLoading(). This is only used in + // order to support a combined maximum total number of tab loads for testing. +- size_t scheduled_to_load_count_ = 0; ++ int scheduled_to_load_count_ = 0; + + // Timer used to force progress despite tabs that take too long to load. + base::OneShotTimer force_load_timer_; 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