From 3444be04d8e07d999befb18e599dd522e9818f55 Mon Sep 17 00:00:00 2001
From: csagan5 <32685696+csagan5@users.noreply.github.com>
Date: Sun, 14 Nov 2021 22:30:28 +0100
Subject: [PATCH] Re-introduce patch to add option to use home page as NTP
---
.../Add-option-to-use-home-page-as-NTP.patch | 228 ++++++++++++++++++
1 file changed, 228 insertions(+)
create mode 100644 build/patches/Add-option-to-use-home-page-as-NTP.patch
diff --git a/build/patches/Add-option-to-use-home-page-as-NTP.patch b/build/patches/Add-option-to-use-home-page-as-NTP.patch
new file mode 100644
index 00000000..7dd10968
--- /dev/null
+++ b/build/patches/Add-option-to-use-home-page-as-NTP.patch
@@ -0,0 +1,228 @@
+From: csagan5 <32685696+csagan5@users.noreply.github.com>
+Date: Mon, 18 Mar 2019 21:47:12 +0100
+Subject: Add option to use home page as NTP
+
+Use about:blank as default homepage
+---
+ .../java/res/xml/homepage_preferences.xml | 5 +++
+ .../browser/homepage/HomepageManager.java | 22 +++++++++-
+ .../homepage/settings/HomepageSettings.java | 11 +++++
+ .../chrome/browser/tabmodel/TabCreator.java | 40 ++++++++++++++++++-
+ .../strings/android_chrome_strings.grd | 3 ++
+ chrome/browser/ui/browser_ui_prefs.cc | 2 +
+ chrome/common/pref_names.cc | 4 ++
+ chrome/common/pref_names.h | 1 +
+ 8 files changed, 84 insertions(+), 4 deletions(-)
+
+diff --git a/chrome/android/java/res/xml/homepage_preferences.xml b/chrome/android/java/res/xml/homepage_preferences.xml
+--- a/chrome/android/java/res/xml/homepage_preferences.xml
++++ b/chrome/android/java/res/xml/homepage_preferences.xml
+@@ -12,6 +12,11 @@
+ android:summaryOn="@string/text_on"
+ android:summaryOff="@string/text_off" />
+
++
++
+ {
++ mHomepageManager.setPrefNTPIsHomepageEnabled((boolean) newValue);
++ return true;
++ });
++
+ RecordUserAction.record("Settings.Homepage.Opened");
+ }
+
+diff --git a/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabCreator.java b/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabCreator.java
+--- a/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabCreator.java
++++ b/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabCreator.java
+@@ -89,14 +89,50 @@ public abstract class TabCreator {
+ }
+
+ /**
+- * Creates a new tab and loads the NTP.
++ * Creates a new tab and loads the NTP or the homepage, depending on user preferences.
+ */
+ public final void launchNTP() {
+ try {
++ String newTabURL = UrlConstants.NTP_URL;
++ if (getPrefNTPIsHomepageEnabled()) {
++ newTabURL = getHomepageUri();
++ }
+ TraceEvent.begin("TabCreator.launchNTP");
+- launchUrl(UrlConstants.NTP_URL, TabLaunchType.FROM_CHROME_UI);
++ launchUrl(newTabURL, TabLaunchType.FROM_CHROME_UI);
+ } finally {
+ TraceEvent.end("TabCreator.launchNTP");
+ }
+ }
++
++ /* following functions are copied from HomepageManager to avoid a circular dependency */
++
++ private boolean getPrefNTPIsHomepageEnabled() {
++ return mSharedPreferencesManager.readBoolean(PREF_NTP_IS_HOMEPAGE, false);
++ }
++
++ private String getHomepageUri() {
++ boolean isHomePageEnabled = mSharedPreferencesManager.readBoolean(ChromePreferenceKeys.HOMEPAGE_ENABLED, true);
++ if (!isHomePageEnabled) {
++ return "";
++ }
++ if (getPrefHomepageUseChromeNTP() || getPrefHomepageUseDefaultUri()) {
++ //NOTE: ignores partner customizations
++ return UrlConstants.NTP_NON_NATIVE_URL;
++ }
++ return getPrefHomepageCustomUri();
++ }
++
++ private boolean getPrefHomepageUseChromeNTP() {
++ return mSharedPreferencesManager.readBoolean(
++ ChromePreferenceKeys.HOMEPAGE_USE_CHROME_NTP, false);
++ }
++
++ private boolean getPrefHomepageUseDefaultUri() {
++ return mSharedPreferencesManager.readBoolean(
++ ChromePreferenceKeys.HOMEPAGE_USE_DEFAULT_URI, true);
++ }
++
++ private String getPrefHomepageCustomUri() {
++ return mSharedPreferencesManager.readString(ChromePreferenceKeys.HOMEPAGE_CUSTOM_URI, "");
++ }
+ }
+diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
+--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
++++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
+@@ -1047,6 +1047,9 @@ Your Google account may have other forms of browsing history like searches and a
+
+ Last hour
+
++
++ Use for new tabs
++
+
+ Last 24 hours
+
+diff --git a/chrome/browser/ui/browser_ui_prefs.cc b/chrome/browser/ui/browser_ui_prefs.cc
+--- a/chrome/browser/ui/browser_ui_prefs.cc
++++ b/chrome/browser/ui/browser_ui_prefs.cc
+@@ -65,6 +65,8 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) {
+ GetHomeButtonAndHomePageIsNewTabPageFlags());
+ registry->RegisterBooleanPref(prefs::kShowHomeButton, false,
+ GetHomeButtonAndHomePageIsNewTabPageFlags());
++ registry->RegisterBooleanPref(prefs::kNewTabPageIsHomePage, false,
++ GetHomeButtonAndHomePageIsNewTabPageFlags());
+
+ registry->RegisterInt64Pref(prefs::kDefaultBrowserLastDeclined, 0);
+ bool reset_check_default = false;
+diff --git a/chrome/common/pref_names.cc b/chrome/common/pref_names.cc
+--- a/chrome/common/pref_names.cc
++++ b/chrome/common/pref_names.cc
+@@ -55,6 +55,10 @@ const char kForceEphemeralProfiles[] = "profile.ephemeral_mode";
+ // A boolean specifying whether the New Tab page is the home page or not.
+ const char kHomePageIsNewTabPage[] = "homepage_is_newtabpage";
+
++// A boolean specifying whether opening a new tab should open the Home page
++// instead of the New Tab page.
++const char kNewTabPageIsHomePage[] = "newtabpage_is_homepage";
++
+ // This is the URL of the page to load when opening new tabs.
+ const char kHomePage[] = "homepage";
+
+diff --git a/chrome/common/pref_names.h b/chrome/common/pref_names.h
+--- a/chrome/common/pref_names.h
++++ b/chrome/common/pref_names.h
+@@ -356,6 +356,7 @@ extern const char kExternalStorageReadOnly[];
+ extern const char kSettingsShowOSBanner[];
+ #endif // defined(OS_CHROMEOS)
+ extern const char kShowHomeButton[];
++extern const char kNewTabPageIsHomePage[];
+ extern const char kSpeechRecognitionFilterProfanities[];
+ extern const char kAllowDeletingBrowserHistory[];
+ extern const char kForceGoogleSafeSearch[];
+--
+2.20.1
+