Show NTP at startup: disables the loading of any page at browser start-up

This commit is contained in:
Carmelo Messina
2025-05-26 17:02:52 +02:00
parent 8a937ec96d
commit 07308bad45
+34 -3
View File
@@ -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<void(TabLoader*)>* 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<TabLoader>,
// 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