Show NTP at startup: (only desktop) fixes the loading at start-up of the last page selected in the previous session and adjusts the code to the new kBackgroundTabLoadingFromPerformanceManager flag
This commit is contained in:
@@ -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
|
||||
+ </message>
|
||||
+</grit-part>
|
||||
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<WebContents> 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
|
||||
|
||||
Reference in New Issue
Block a user