diff --git a/build/patches/Show-NTP-at-startup.patch b/build/patches/Show-NTP-at-startup.patch index 28351490..785279b4 100644 --- a/build/patches/Show-NTP-at-startup.patch +++ b/build/patches/Show-NTP-at-startup.patch @@ -16,20 +16,25 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html chrome/app/settings_strings.grdp | 2 +- .../flags/android/chrome_feature_list.cc | 1 + .../cromite/sShowNtpAtStartupAndroid.java | 33 +++++++++++++++++++ + .../policies/background_tab_loading_policy.cc | 2 ++ .../preferences/ChromePreferenceKeys.java | 2 ++ .../LegacyChromePreferenceKeys.java | 1 + - .../on_startup_page/on_startup_page.ts | 4 +-- - chrome/browser/sessions/tab_loader.cc | 6 ++-- + .../session_restore_policy.h | 2 +- + .../on_startup_page/on_startup_page.ts | 1 + + chrome/browser/sessions/session_restore.cc | 9 ++++- + chrome/browser/sessions/tab_loader.cc | 7 ++-- chrome/browser/sessions/tab_loader.h | 2 +- .../res/layout/single_tab_module_layout.xml | 12 +++---- .../SingleTabSwitcherCoordinator.java | 2 +- .../SingleTabSwitcherOnNtpMediator.java | 5 +-- .../show-ntp-at-startup.grdp | 9 +++++ + chrome/browser/ui/browser_tabrestore.cc | 2 +- .../startup/startup_browser_creator_impl.cc | 8 +++++ + components/performance_manager/features.cc | 2 +- .../about_flags_cc/show-ntp-at-startup.inc | 12 +++++++ .../show-ntp-at-startup.inc | 5 +++ .../show-ntp-at-startup.inc | 1 + - 21 files changed, 127 insertions(+), 17 deletions(-) + 26 files changed, 140 insertions(+), 19 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 @@ -212,6 +217,25 @@ new file mode 100644 + return sInstance; + } +} +diff --git a/chrome/browser/performance_manager/policies/background_tab_loading_policy.cc b/chrome/browser/performance_manager/policies/background_tab_loading_policy.cc +--- a/chrome/browser/performance_manager/policies/background_tab_loading_policy.cc ++++ b/chrome/browser/performance_manager/policies/background_tab_loading_policy.cc +@@ -375,6 +375,7 @@ base::Value::Dict BackgroundTabLoadingPolicy::DescribeSystemNodeData( + + bool BackgroundTabLoadingPolicy::ShouldLoad( + const PageNodeToLoadData& page_node_data) { ++ if ((true)) return false; + if (tab_loads_started_ < kMinTabsToLoad) + return true; + +@@ -565,6 +566,7 @@ void BackgroundTabLoadingPolicy::MaybeLoadSomeTabs() { + // Continue to load tabs while possible. This is in a loop with a + // recalculation of GetMaxNewTabLoads() as reentrancy can cause conditions + // to change as each tab load is initiated. ++ if ((false)) + while (GetMaxNewTabLoads() > 0) + LoadNextTab(); + diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java --- a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java +++ b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java @@ -235,20 +259,22 @@ 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/resource_coordinator/session_restore_policy.h b/chrome/browser/resource_coordinator/session_restore_policy.h +--- a/chrome/browser/resource_coordinator/session_restore_policy.h ++++ b/chrome/browser/resource_coordinator/session_restore_policy.h +@@ -31,7 +31,7 @@ class SessionRestorePolicy { + public: + // Minimum site engagement score for a tab to be restored, if it doesn't + // communicate in the background. +- static constexpr uint32_t kMinSiteEngagementToRestore = 15; ++ static constexpr uint32_t kMinSiteEngagementToRestore = 999999; + + // Callback that is used by the policy engine to notify its embedder (the + // TabLoaderDelegate) of changes to tab priorities as they occur. Zero or one 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 +@@ -93,6 +93,7 @@ export class SettingsOnStartupPageElement extends */ private showContinueAndOpenSpecific_(pref: chrome.settingsPrivate.PrefObject): boolean { @@ -256,6 +282,32 @@ diff --git a/chrome/browser/resources/settings/on_startup_page/on_startup_page.t return pref.enforcement === chrome.settingsPrivate.Enforcement.ENFORCED || pref.enforcement === chrome.settingsPrivate.Enforcement.RECOMMENDED; } +diff --git a/chrome/browser/sessions/session_restore.cc b/chrome/browser/sessions/session_restore.cc +--- a/chrome/browser/sessions/session_restore.cc ++++ b/chrome/browser/sessions/session_restore.cc +@@ -908,7 +908,13 @@ class SessionRestoreImpl : public BrowserListObserver { + // be selected as ShowBrowser() will load the selected tab. + bool is_selected_tab = + (initial_tab_count == 0) && (i == selected_tab_index); +- ++ if (is_selected_tab && !startup_tabs_.empty()) { ++ is_selected_tab = false; ++ if (browser != browser_) { ++ browser->set_is_session_restore(false); ++ did_show_browser = true; ++ } ++ } + // Convert the last active time because WebContents needs a TimeTicks. + const base::TimeDelta delta = tab.last_active_time - epoch_time; + const base::TimeTicks last_active_time_ticks = epoch_time_ticks + delta; +@@ -1155,6 +1161,7 @@ class SessionRestoreImpl : public BrowserListObserver { + } + if (last_normal_browser && !normal_startup_tabs.empty()) { + AppendURLsToBrowser(last_normal_browser, normal_startup_tabs); ++ last_normal_browser->window()->Show(); + } + if (!startup_tabs_from_last_and_urls_pref.empty()) { + Browser::CreateParams params = 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 @@ -286,6 +338,14 @@ diff --git a/chrome/browser/sessions/tab_loader.cc b/chrome/browser/sessions/tab 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); +@@ -782,6 +782,7 @@ void TabLoader::MoveToSortedPosition(TabVector::iterator it) { + } + + size_t TabLoader::MaxSimultaneousLoads() const { ++ if ((true)) return 0; + if (max_simultaneous_loads_for_testing_ != 0) + return max_simultaneous_loads_for_testing_; + return delegate_->GetMaxSimultaneousTabLoads(); 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 @@ -391,6 +451,18 @@ new file mode 100644 + Enable showing a NewTabPage at startup and allows selection of the last open tab + + +diff --git a/chrome/browser/ui/browser_tabrestore.cc b/chrome/browser/ui/browser_tabrestore.cc +--- a/chrome/browser/ui/browser_tabrestore.cc ++++ b/chrome/browser/ui/browser_tabrestore.cc +@@ -234,7 +234,7 @@ WebContents* AddRestoredTabImpl(std::unique_ptr web_contents, + + // Immediate load if the browser activeness is true or unknown. That is, do + // not do immediate load for browsers that are known to be inactive. +- bool should_load = is_active_browser.value_or(true); ++ bool should_load = false; + + // On OS_MAC, `LoadRestoredTabIfVisible` by default so that its tab loading + // behaves like other platforms to make FirstWebContentsProfiler wor 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 @@ -409,6 +481,18 @@ diff --git a/chrome/browser/ui/startup/startup_browser_creator_impl.cc b/chrome/ // 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/components/performance_manager/features.cc b/components/performance_manager/features.cc +--- a/components/performance_manager/features.cc ++++ b/components/performance_manager/features.cc +@@ -23,7 +23,7 @@ BASE_FEATURE_PARAM(size_t, + kBackgroundTabLoadingMinSiteEngagement, + &kBackgroundTabLoadingFromPerformanceManager, + "min_site_engagement", +- 0); ++ 999999); + + BASE_FEATURE_PARAM(bool, + kBackgroundTabLoadingRestoreMainFrameState, 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