From 4a9cbe673df842c3df74e60018c11763dded6f5e Mon Sep 17 00:00:00 2001
From: csagan5 <32685696+csagan5@users.noreply.github.com>
Date: Sat, 21 Dec 2019 10:03:09 +0100
Subject: [PATCH 1/3] Bugfixes to build vanilla Chromium
---
build/GN_ARGS | 1 -
...-password-reuse-detection-on-android.patch | 11 +++---
build/patches/Disable-safe-browsing.patch | 12 -------
...-consent-miscellanous-backport-fixes.patch | 34 +++++++++++++------
4 files changed, 30 insertions(+), 28 deletions(-)
diff --git a/build/GN_ARGS b/build/GN_ARGS
index 96e84b37..18c108e0 100644
--- a/build/GN_ARGS
+++ b/build/GN_ARGS
@@ -1,5 +1,4 @@
android_channel="stable"
-blink_symbol_level=0
blink_symbol_level=1
dcheck_always_on=false
debuggable_apks=false
diff --git a/build/patches/Disable-password-reuse-detection-on-android.patch b/build/patches/Disable-password-reuse-detection-on-android.patch
index e18e3942..1d4179ab 100644
--- a/build/patches/Disable-password-reuse-detection-on-android.patch
+++ b/build/patches/Disable-password-reuse-detection-on-android.patch
@@ -3,21 +3,24 @@ Date: Sun, 15 Dec 2019 22:39:56 +0100
Subject: Disable password reuse detection on android
---
- components/password_manager/core/browser/BUILD.gn | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
+ components/password_manager/core/browser/BUILD.gn | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/components/password_manager/core/browser/BUILD.gn b/components/password_manager/core/browser/BUILD.gn
--- a/components/password_manager/core/browser/BUILD.gn
+++ b/components/password_manager/core/browser/BUILD.gn
-@@ -12,7 +12,7 @@ if (is_android) {
+@@ -12,9 +12,9 @@ if (is_android) {
# TODO(crbug.com/1006430): Fix password reuse detection not fully functional on
# Android.
-password_reuse_detection_support = !is_ios
+password_reuse_detection_support = !is_ios && !is_android
password_reuse_warning_support = !is_android && !is_ios
- password_on_focus_ping_support = !is_android && !is_ios
+-password_on_focus_ping_support = !is_ios
++password_on_focus_ping_support = !is_android && !is_ios
+ config("password_reuse_detection_config") {
+ defines = []
--
2.17.1
diff --git a/build/patches/Disable-safe-browsing.patch b/build/patches/Disable-safe-browsing.patch
index 1694ace7..f6f0d150 100644
--- a/build/patches/Disable-safe-browsing.patch
+++ b/build/patches/Disable-safe-browsing.patch
@@ -2005,18 +2005,6 @@ diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer
#include "components/spellcheck/spellcheck_buildflags.h"
#include "components/startup_metric_utils/common/startup_metric.mojom.h"
#include "components/subresource_filter/content/renderer/subresource_filter_agent.h"
-diff --git a/components/password_manager/core/browser/BUILD.gn b/components/password_manager/core/browser/BUILD.gn
---- a/components/password_manager/core/browser/BUILD.gn
-+++ b/components/password_manager/core/browser/BUILD.gn
-@@ -14,7 +14,7 @@ if (is_android) {
- # Android.
- password_reuse_detection_support = !is_ios
- password_reuse_warning_support = !is_android && !is_ios
--password_on_focus_ping_support = !is_ios
-+password_on_focus_ping_support = !is_android && !is_ios
-
- config("password_reuse_detection_config") {
- defines = []
diff --git a/components/safe_browsing/features.cc b/components/safe_browsing/features.cc
--- a/components/safe_browsing/features.cc
+++ b/components/safe_browsing/features.cc
diff --git a/build/patches/Unified-consent-miscellanous-backport-fixes.patch b/build/patches/Unified-consent-miscellanous-backport-fixes.patch
index 723729e0..a9ddd6b3 100644
--- a/build/patches/Unified-consent-miscellanous-backport-fixes.patch
+++ b/build/patches/Unified-consent-miscellanous-backport-fixes.patch
@@ -3,14 +3,14 @@ Date: Wed, 18 Dec 2019 23:54:37 +0100
Subject: Unified consent miscellanous backport fixes
---
- .../privacy/PrivacyPreferences.java | 26 -------------------
- .../sync/SyncNotificationController.java | 12 +++------
- 2 files changed, 3 insertions(+), 35 deletions(-)
+ .../privacy/PrivacyPreferences.java | 38 -------------------
+ .../sync/SyncNotificationController.java | 12 ++----
+ 2 files changed, 3 insertions(+), 47 deletions(-)
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/privacy/PrivacyPreferences.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/privacy/PrivacyPreferences.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/privacy/PrivacyPreferences.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/privacy/PrivacyPreferences.java
-@@ -10,7 +10,6 @@ import android.support.graphics.drawable.VectorDrawableCompat;
+@@ -9,7 +9,6 @@ import android.support.graphics.drawable.VectorDrawableCompat;
import android.support.v7.preference.CheckBoxPreference;
import android.support.v7.preference.Preference;
import android.support.v7.preference.PreferenceFragmentCompat;
@@ -18,7 +18,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/pri
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
-@@ -50,13 +49,10 @@ public class PrivacyPreferences
+@@ -56,13 +55,10 @@ public class PrivacyPreferences
@Override
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
@@ -32,14 +32,18 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/pri
mManagedPreferenceDelegate = createManagedPreferenceDelegate();
-@@ -70,27 +66,6 @@ public class PrivacyPreferences
+@@ -76,39 +72,6 @@ public class PrivacyPreferences
networkPredictionPref.setOnPreferenceChangeListener(this);
networkPredictionPref.setManagedPreferenceDelegate(mManagedPreferenceDelegate);
- if (ChromeFeatureList.isEnabled(ChromeFeatureList.UNIFIED_CONSENT)) {
- // Remove preferences that were migrated to SyncAndServicesPreferences.
+- preferenceScreen.removePreference(findPreference(PREF_NAVIGATION_ERROR));
- preferenceScreen.removePreference(findPreference(PREF_SEARCH_SUGGESTIONS));
+- preferenceScreen.removePreference(findPreference(PREF_SAFE_BROWSING_SCOUT_REPORTING));
+- preferenceScreen.removePreference(findPreference(PREF_SAFE_BROWSING));
- preferenceScreen.removePreference(findPreference(PREF_CONTEXTUAL_SEARCH));
+- preferenceScreen.removePreference(findPreference(PREF_USAGE_AND_CRASH_REPORTING));
-
- // TODO(https://crbug.com/846376): Update strings in XML after UNIFIED_CONSENT launch.
- networkPredictionPref.setTitle(R.string.preload_pages_title);
@@ -53,14 +57,22 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/pri
- networkPredictionPref.setOrder(canMakePaymentPref.getOrder());
- preferenceScreen.addPreference(networkPredictionPref);
-
+- Preference syncAndServicesLink = findPreference(PREF_SYNC_AND_SERVICES_LINK);
+- NoUnderlineClickableSpan linkSpan = new NoUnderlineClickableSpan(getResources(), view -> {
+- PreferencesLauncher.launchSettingsPage(getActivity(), SyncAndServicesPreferences.class,
+- SyncAndServicesPreferences.createArguments(false));
+- });
+- syncAndServicesLink.setSummary(
+- SpanApplier.applySpans(getString(R.string.privacy_sync_and_services_link),
+- new SpanApplier.SpanInfo("", "", linkSpan)));
+-
- updateSummaries();
- return;
- }
--
- ChromeBaseCheckBoxPreference searchSuggestionsPref =
- (ChromeBaseCheckBoxPreference) findPreference(PREF_SEARCH_SUGGESTIONS);
- searchSuggestionsPref.setOnPreferenceChangeListener(this);
-@@ -135,7 +110,6 @@ public class PrivacyPreferences
+ preferenceScreen.removePreference(findPreference(PREF_SYNC_AND_SERVICES_LINK_DIVIDER));
+ preferenceScreen.removePreference(findPreference(PREF_SYNC_AND_SERVICES_LINK));
+
+@@ -176,7 +139,6 @@ public class PrivacyPreferences
*/
public void updateSummaries() {
PrefServiceBridge prefServiceBridge = PrefServiceBridge.getInstance();
From edaf4c0f1713d5b4b52523a1d95b7517e9a5f032 Mon Sep 17 00:00:00 2001
From: csagan5 <32685696+csagan5@users.noreply.github.com>
Date: Mon, 23 Dec 2019 02:28:56 +0100
Subject: [PATCH 2/3] Fixes for unified consent and feed build issues
---
.../Allow-building-without-feed-support.patch | 54 ++++++++++++++-
...-consent-miscellanous-backport-fixes.patch | 65 ++++++++++++++++---
2 files changed, 109 insertions(+), 10 deletions(-)
diff --git a/build/patches/Allow-building-without-feed-support.patch b/build/patches/Allow-building-without-feed-support.patch
index 88e09d24..84f7fe1b 100644
--- a/build/patches/Allow-building-without-feed-support.patch
+++ b/build/patches/Allow-building-without-feed-support.patch
@@ -3,9 +3,59 @@ Date: Thu, 19 Dec 2019 22:52:53 +0100
Subject: Allow building without feed support
---
- .../chrome/browser/ntp/cards/ExploreOfflineCard.java | 5 +----
- 1 file changed, 1 insertion(+), 4 deletions(-)
+ .../start_surface/StartSurfaceCoordinator.java | 5 -----
+ .../start_surface/StartSurfaceMediator.java | 16 ----------------
+ .../browser/ntp/cards/ExploreOfflineCard.java | 5 +----
+ 3 files changed, 1 insertion(+), 25 deletions(-)
+diff --git a/chrome/android/features/start_surface/internal/java/src/org/chromium/chrome/features/start_surface/StartSurfaceCoordinator.java b/chrome/android/features/start_surface/internal/java/src/org/chromium/chrome/features/start_surface/StartSurfaceCoordinator.java
+--- a/chrome/android/features/start_surface/internal/java/src/org/chromium/chrome/features/start_surface/StartSurfaceCoordinator.java
++++ b/chrome/android/features/start_surface/internal/java/src/org/chromium/chrome/features/start_surface/StartSurfaceCoordinator.java
+@@ -198,11 +198,6 @@ public class StartSurfaceCoordinator implements StartSurface {
+ mBottomBarCoordinator = new BottomBarCoordinator(
+ mActivity, mActivity.getCompositorViewHolder(), mPropertyModel);
+ }
+-
+- mExploreSurfaceCoordinator = new ExploreSurfaceCoordinator(mActivity,
+- mSurfaceMode == SurfaceMode.SINGLE_PANE ? mTasksSurface.getBodyViewContainer()
+- : mActivity.getCompositorViewHolder(),
+- mPropertyModel, mSurfaceMode == SurfaceMode.SINGLE_PANE);
+ }
+
+ private TabSwitcher.Controller initializeSecondaryTasksSurface() {
+diff --git a/chrome/android/features/start_surface/internal/java/src/org/chromium/chrome/features/start_surface/StartSurfaceMediator.java b/chrome/android/features/start_surface/internal/java/src/org/chromium/chrome/features/start_surface/StartSurfaceMediator.java
+--- a/chrome/android/features/start_surface/internal/java/src/org/chromium/chrome/features/start_surface/StartSurfaceMediator.java
++++ b/chrome/android/features/start_surface/internal/java/src/org/chromium/chrome/features/start_surface/StartSurfaceMediator.java
+@@ -253,15 +253,6 @@ class StartSurfaceMediator
+ RecordUserAction.record("StartSurface.TasksOnly");
+ }
+
+- // Make sure FeedSurfaceCoordinator is built before the explore surface is showing by
+- // default.
+- if (mPropertyModel.get(IS_EXPLORE_SURFACE_VISIBLE)
+- && mPropertyModel.get(FEED_SURFACE_COORDINATOR) == null) {
+- mPropertyModel.set(FEED_SURFACE_COORDINATOR,
+- mFeedSurfaceCreator.createFeedSurfaceCoordinator(
+- mNightModeStateProvider.isInNightMode()));
+- }
+-
+ mPropertyModel.set(IS_SHOWING_OVERVIEW, true);
+ mFakeboxDelegate.addUrlFocusChangeListener(mUrlFocusChangeListener);
+ }
+@@ -361,13 +352,6 @@ class StartSurfaceMediator
+ private void setExploreSurfaceVisibility(boolean isVisible) {
+ if (isVisible == mPropertyModel.get(IS_EXPLORE_SURFACE_VISIBLE)) return;
+
+- if (isVisible && mPropertyModel.get(IS_SHOWING_OVERVIEW)
+- && mPropertyModel.get(FEED_SURFACE_COORDINATOR) == null) {
+- mPropertyModel.set(FEED_SURFACE_COORDINATOR,
+- mFeedSurfaceCreator.createFeedSurfaceCoordinator(
+- mNightModeStateProvider.isInNightMode()));
+- }
+-
+ mPropertyModel.set(IS_EXPLORE_SURFACE_VISIBLE, isVisible);
+
+ if (mSurfaceMode == SurfaceMode.TWO_PANES) {
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/ExploreOfflineCard.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/ExploreOfflineCard.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/ExploreOfflineCard.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/ExploreOfflineCard.java
diff --git a/build/patches/Unified-consent-miscellanous-backport-fixes.patch b/build/patches/Unified-consent-miscellanous-backport-fixes.patch
index a9ddd6b3..6d2db27e 100644
--- a/build/patches/Unified-consent-miscellanous-backport-fixes.patch
+++ b/build/patches/Unified-consent-miscellanous-backport-fixes.patch
@@ -3,9 +3,10 @@ Date: Wed, 18 Dec 2019 23:54:37 +0100
Subject: Unified consent miscellanous backport fixes
---
- .../privacy/PrivacyPreferences.java | 38 -------------------
- .../sync/SyncNotificationController.java | 12 ++----
- 2 files changed, 3 insertions(+), 47 deletions(-)
+ .../privacy/PrivacyPreferences.java | 52 ++-----------------
+ .../preferences/sync/SyncPreferenceUtils.java | 3 --
+ .../sync/SyncNotificationController.java | 12 ++---
+ 3 files changed, 6 insertions(+), 61 deletions(-)
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/privacy/PrivacyPreferences.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/privacy/PrivacyPreferences.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/privacy/PrivacyPreferences.java
@@ -18,7 +19,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/pri
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
-@@ -56,13 +55,10 @@ public class PrivacyPreferences
+@@ -45,7 +44,6 @@ public class PrivacyPreferences
+ private static final String PREF_CONTEXTUAL_SEARCH = "contextual_search";
+ private static final String PREF_NETWORK_PREDICTIONS = "preload_pages";
+ private static final String PREF_DO_NOT_TRACK = "do_not_track";
+- private static final String PREF_USAGE_AND_CRASH_REPORTING = "usage_and_crash_reports";
+ private static final String PREF_CLEAR_BROWSING_DATA = "clear_browsing_data";
+ private static final String PREF_SYNC_AND_SERVICES_LINK_DIVIDER =
+ "sync_and_services_link_divider";
+@@ -56,13 +54,10 @@ public class PrivacyPreferences
@Override
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
@@ -32,7 +41,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/pri
mManagedPreferenceDelegate = createManagedPreferenceDelegate();
-@@ -76,39 +72,6 @@ public class PrivacyPreferences
+@@ -76,41 +71,8 @@ public class PrivacyPreferences
networkPredictionPref.setOnPreferenceChangeListener(this);
networkPredictionPref.setManagedPreferenceDelegate(mManagedPreferenceDelegate);
@@ -69,10 +78,23 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/pri
- updateSummaries();
- return;
- }
- preferenceScreen.removePreference(findPreference(PREF_SYNC_AND_SERVICES_LINK_DIVIDER));
- preferenceScreen.removePreference(findPreference(PREF_SYNC_AND_SERVICES_LINK));
+- preferenceScreen.removePreference(findPreference(PREF_SYNC_AND_SERVICES_LINK_DIVIDER));
+- preferenceScreen.removePreference(findPreference(PREF_SYNC_AND_SERVICES_LINK));
++ getPreferenceScreen().removePreference(findPreference(PREF_SYNC_AND_SERVICES_LINK_DIVIDER));
++ getPreferenceScreen().removePreference(findPreference(PREF_SYNC_AND_SERVICES_LINK));
-@@ -176,7 +139,6 @@ public class PrivacyPreferences
+ ChromeBaseCheckBoxPreference navigationErrorPref =
+ (ChromeBaseCheckBoxPreference) findPreference(PREF_NAVIGATION_ERROR);
+@@ -123,7 +85,7 @@ public class PrivacyPreferences
+ searchSuggestionsPref.setManagedPreferenceDelegate(mManagedPreferenceDelegate);
+
+ if (!ContextualSearchFieldTrial.isEnabled()) {
+- preferenceScreen.removePreference(findPreference(PREF_CONTEXTUAL_SEARCH));
++ getPreferenceScreen().removePreference(findPreference(PREF_CONTEXTUAL_SEARCH));
+ }
+
+ // Listen to changes to the Extended Reporting pref.
+@@ -176,7 +138,6 @@ public class PrivacyPreferences
*/
public void updateSummaries() {
PrefServiceBridge prefServiceBridge = PrefServiceBridge.getInstance();
@@ -80,6 +102,33 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/pri
CharSequence textOn = getActivity().getResources().getText(R.string.text_on);
CharSequence textOff = getActivity().getResources().getText(R.string.text_off);
+@@ -226,13 +187,6 @@ public class PrivacyPreferences
+ contextualPref.setSummary(isContextualSearchEnabled ? textOn : textOff);
+ }
+
+- Preference usageAndCrashPref = findPreference(PREF_USAGE_AND_CRASH_REPORTING);
+- if (usageAndCrashPref != null) {
+- usageAndCrashPref.setSummary(
+- privacyPrefManager.isUsageAndCrashReportingPermittedByUser() ? textOn
+- : textOff);
+- }
+-
+ Preference usageStatsPref = findPreference(PREF_USAGE_STATS);
+ if (usageStatsPref != null) {
+ if (BuildInfo.isAtLeastQ() && prefServiceBridge.getBoolean(Pref.USAGE_STATS_ENABLED)) {
+diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/sync/SyncPreferenceUtils.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/sync/SyncPreferenceUtils.java
+--- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/sync/SyncPreferenceUtils.java
++++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/sync/SyncPreferenceUtils.java
+@@ -118,9 +118,6 @@ public class SyncPreferenceUtils {
+ if (profileSyncService.isPassphraseRequiredForPreferredDataTypes()) {
+ return res.getString(R.string.sync_need_passphrase);
+ }
+- if (ChromeFeatureList.isEnabled(ChromeFeatureList.UNIFIED_CONSENT)) {
+- return context.getString(R.string.sync_and_services_summary_sync_on);
+- }
+ return context.getString(R.string.account_management_sync_summary, accountName);
+ }
+ return context.getString(R.string.sync_is_disabled);
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/sync/SyncNotificationController.java b/chrome/android/java/src/org/chromium/chrome/browser/sync/SyncNotificationController.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/sync/SyncNotificationController.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/sync/SyncNotificationController.java
From d1fb4d4974513ef8343a412d2d384d7b7dbedc51 Mon Sep 17 00:00:00 2001
From: csagan5 <32685696+csagan5@users.noreply.github.com>
Date: Fri, 27 Dec 2019 16:05:14 +0100
Subject: [PATCH 3/3] Updated patches for next v79 release
---
...dd-custom-tab-intents-privacy-option.patch | 8 +-
...-to-not-persist-tabs-across-sessions.patch | 23 +++---
build/patches/Disable-safe-browsing.patch | 82 +++++++------------
build/patches/Log-DoH-timeout.patch | 27 ++++++
...e-signin-and-data-saver-integrations.patch | 45 +++-------
build/patches/User-Agent-anonymize.patch | 2 +-
6 files changed, 82 insertions(+), 105 deletions(-)
create mode 100644 build/patches/Log-DoH-timeout.patch
diff --git a/build/patches/Add-custom-tab-intents-privacy-option.patch b/build/patches/Add-custom-tab-intents-privacy-option.patch
index c359fcb0..3e9585ee 100644
--- a/build/patches/Add-custom-tab-intents-privacy-option.patch
+++ b/build/patches/Add-custom-tab-intents-privacy-option.patch
@@ -61,7 +61,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDis
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/privacy/PrivacyPreferences.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/privacy/PrivacyPreferences.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/privacy/PrivacyPreferences.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/privacy/PrivacyPreferences.java
-@@ -43,6 +43,8 @@ public class PrivacyPreferences
+@@ -42,6 +42,8 @@ public class PrivacyPreferences
private ManagedPreferenceDelegate mManagedPreferenceDelegate;
@@ -69,8 +69,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/pri
+
@Override
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
- PrivacyPreferencesManager privacyPrefManager = PrivacyPreferencesManager.getInstance();
-@@ -101,6 +103,10 @@ public class PrivacyPreferences
+ PreferenceUtils.addPreferencesFromResource(this, R.xml.privacy_preferences);
+@@ -76,6 +78,10 @@ public class PrivacyPreferences
PrefServiceBridge.getInstance().setSearchSuggestEnabled((boolean) newValue);
} else if (PREF_NETWORK_PREDICTIONS.equals(key)) {
PrefServiceBridge.getInstance().setNetworkPredictionEnabled((boolean) newValue);
@@ -81,7 +81,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/pri
} else if (PREF_CONTEXTUAL_SEARCH.equals(key)) {
PrefServiceBridge.getInstance().setContextualSearchPreference(((boolean) newValue) ? "true" : "false");
} else if (PREF_CAN_MAKE_PAYMENT.equals(key)) {
-@@ -140,6 +146,11 @@ public class PrivacyPreferences
+@@ -114,6 +120,11 @@ public class PrivacyPreferences
prefServiceBridge.getBoolean(Pref.CAN_MAKE_PAYMENT_ENABLED));
}
diff --git a/build/patches/Add-option-to-not-persist-tabs-across-sessions.patch b/build/patches/Add-option-to-not-persist-tabs-across-sessions.patch
index 8bc52024..7108dbcf 100644
--- a/build/patches/Add-option-to-not-persist-tabs-across-sessions.patch
+++ b/build/patches/Add-option-to-not-persist-tabs-across-sessions.patch
@@ -3,12 +3,12 @@ Date: Sat, 7 Sep 2019 15:07:42 +0200
Subject: Add option to not persist tabs across sessions
---
- chrome/android/java/res/values/values.xml | 3 +++
- chrome/android/java/res/xml/privacy_preferences.xml | 5 +++++
- .../chrome/browser/ChromeTabbedActivity.java | 4 +++-
- .../preferences/privacy/PrivacyPreferences.java | 12 ++++++++++++
- .../android/java/strings/android_chrome_strings.grd | 6 ++++++
- 5 files changed, 29 insertions(+), 1 deletion(-)
+ chrome/android/java/res/values/values.xml | 3 +++
+ chrome/android/java/res/xml/privacy_preferences.xml | 5 +++++
+ .../chromium/chrome/browser/ChromeTabbedActivity.java | 4 +++-
+ .../preferences/privacy/PrivacyPreferences.java | 11 +++++++++++
+ .../android/java/strings/android_chrome_strings.grd | 6 ++++++
+ 5 files changed, 28 insertions(+), 1 deletion(-)
diff --git a/chrome/android/java/res/values/values.xml b/chrome/android/java/res/values/values.xml
--- a/chrome/android/java/res/values/values.xml
@@ -64,7 +64,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/pri
import android.os.Bundle;
import android.support.graphics.drawable.VectorDrawableCompat;
import android.support.v7.preference.CheckBoxPreference;
-@@ -14,6 +15,7 @@ import android.view.Menu;
+@@ -13,6 +14,7 @@ import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
@@ -72,7 +72,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/pri
import org.chromium.base.BuildInfo;
import org.chromium.chrome.R;
import org.chromium.chrome.browser.ChromeFeatureList;
-@@ -38,6 +40,7 @@ public class PrivacyPreferences
+@@ -37,6 +39,7 @@ public class PrivacyPreferences
private static final String PREF_CAN_MAKE_PAYMENT = "can_make_payment";
private static final String PREF_CONTEXTUAL_SEARCH = "contextual_search";
private static final String PREF_NETWORK_PREDICTIONS = "preload_pages";
@@ -80,7 +80,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/pri
private static final String PREF_DO_NOT_TRACK = "do_not_track";
private static final String PREF_CLEAR_BROWSING_DATA = "clear_browsing_data";
-@@ -112,6 +115,10 @@ public class PrivacyPreferences
+@@ -87,6 +90,10 @@ public class PrivacyPreferences
} else if (PREF_CAN_MAKE_PAYMENT.equals(key)) {
PrefServiceBridge.getInstance().setBoolean(
Pref.CAN_MAKE_PAYMENT_ENABLED, (boolean) newValue);
@@ -91,11 +91,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/pri
}
return true;
-@@ -162,6 +169,11 @@ public class PrivacyPreferences
- boolean isContextualSearchEnabled = !prefServiceBridge.isContextualSearchDisabled();
+@@ -137,6 +144,10 @@ public class PrivacyPreferences
contextualPref.setSummary(isContextualSearchEnabled ? textOn : textOff);
}
-+
+
+ ChromeBaseCheckBoxPreference closeTabsOnExitPref =
+ (ChromeBaseCheckBoxPreference) findPreference(PREF_CLOSE_TABS_ON_EXIT);
+ closeTabsOnExitPref.setOnPreferenceChangeListener(this);
diff --git a/build/patches/Disable-safe-browsing.patch b/build/patches/Disable-safe-browsing.patch
index f6f0d150..9a587848 100644
--- a/build/patches/Disable-safe-browsing.patch
+++ b/build/patches/Disable-safe-browsing.patch
@@ -7,32 +7,32 @@ Contains Android-specific fixes to remove Safe Browsing
---
chrome/android/chrome_java_sources.gni | 1 -
.../java/res/xml/privacy_preferences.xml | 21 -----
- .../res/xml/sync_and_services_preferences.xml | 20 ----
- .../privacy/PrivacyPreferences.java | 94 -------------------
+ .../res/xml/sync_and_services_preferences.xml | 20 -----
+ .../privacy/PrivacyPreferences.java | 81 -------------------
.../browser/webshare/ShareServiceImpl.java | 6 --
- .../java/strings/android_chrome_strings.grd | 33 -------
+ .../java/strings/android_chrome_strings.grd | 33 --------
chrome/browser/BUILD.gn | 2 -
chrome/browser/browser_process.h | 16 ----
- chrome/browser/browser_process_impl.cc | 36 -------
+ chrome/browser/browser_process_impl.cc | 36 ---------
chrome/browser/browser_process_impl.h | 6 --
- .../chrome_browsing_data_remover_delegate.cc | 41 --------
- .../browser/chrome_content_browser_client.cc | 60 +++---------
+ .../chrome_browsing_data_remover_delegate.cc | 41 ----------
+ .../browser/chrome_content_browser_client.cc | 60 +++-----------
.../file_type_policies_component_installer.cc | 16 +---
- .../chrome_download_manager_delegate.cc | 31 +++---
+ .../chrome_download_manager_delegate.cc | 31 +++----
.../chrome_download_manager_delegate.h | 8 +-
.../browser/download/download_item_model.cc | 13 ++-
chrome/browser/download/download_item_model.h | 4 +
- chrome/browser/download/download_prefs.cc | 17 +---
- .../download/download_target_determiner.cc | 46 ++++-----
+ chrome/browser/download/download_prefs.cc | 17 ++--
+ .../download/download_target_determiner.cc | 46 +++++------
.../download/download_target_determiner.h | 6 ++
.../browser/download/download_target_info.cc | 4 +
.../browser/download/download_target_info.h | 4 +
chrome/browser/download/download_ui_model.cc | 4 +
chrome/browser/download/download_ui_model.h | 4 +
- .../extensions/api/downloads/downloads_api.cc | 39 +-------
- .../extensions/api/downloads/downloads_api.h | 10 --
- .../webstore_private/webstore_private_api.cc | 44 +--------
- .../extensions/blacklist_state_fetcher.cc | 34 +------
+ .../extensions/api/downloads/downloads_api.cc | 39 +--------
+ .../extensions/api/downloads/downloads_api.h | 10 ---
+ .../webstore_private/webstore_private_api.cc | 44 +---------
+ .../extensions/blacklist_state_fetcher.cc | 34 +-------
.../extensions/blacklist_state_fetcher.h | 3 -
.../metrics/chrome_metrics_service_client.cc | 3 -
...e_native_file_system_permission_context.cc | 5 +-
@@ -44,19 +44,18 @@ Contains Android-specific fixes to remove Safe Browsing
.../ssl/captive_portal_blocking_page.cc | 7 +-
chrome/browser/ssl/cert_report_helper.cc | 2 -
.../browser/ssl/security_state_tab_helper.cc | 2 +
- .../chrome_subresource_filter_client.cc | 10 --
+ .../chrome_subresource_filter_client.cc | 10 ---
chrome/browser/ui/BUILD.gn | 1 -
chrome/browser/ui/tab_helpers.cc | 8 --
.../ui/webui/interstitials/interstitial_ui.cc | 13 +--
- chrome/common/safe_browsing/BUILD.gn | 15 ---
+ chrome/common/safe_browsing/BUILD.gn | 15 ----
.../chrome_content_renderer_client.cc | 1 -
- .../password_manager/core/browser/BUILD.gn | 2 +-
components/safe_browsing/features.cc | 2 +-
.../unified_consent_service.cc | 2 +-
- .../native_file_system_file_writer_impl.cc | 48 +---------
- .../native_file_system_file_writer_impl.h | 15 +--
+ .../native_file_system_file_writer_impl.cc | 48 +----------
+ .../native_file_system_file_writer_impl.h | 15 +---
.../native_file_system_permission_context.h | 7 --
- 51 files changed, 128 insertions(+), 651 deletions(-)
+ 50 files changed, 127 insertions(+), 637 deletions(-)
diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni
--- a/chrome/android/chrome_java_sources.gni
@@ -149,7 +148,7 @@ diff --git a/chrome/android/java/res/xml/sync_and_services_preferences.xml b/chr
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/privacy/PrivacyPreferences.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/privacy/PrivacyPreferences.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/privacy/PrivacyPreferences.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/privacy/PrivacyPreferences.java
-@@ -17,7 +17,6 @@ import android.view.MenuItem;
+@@ -16,7 +16,6 @@ import android.view.MenuItem;
import org.chromium.base.BuildInfo;
import org.chromium.chrome.R;
import org.chromium.chrome.browser.ChromeFeatureList;
@@ -157,7 +156,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/pri
import org.chromium.chrome.browser.help.HelpAndFeedback;
import org.chromium.chrome.browser.preferences.ChromeBaseCheckBoxPreference;
import org.chromium.chrome.browser.preferences.ManagedPreferenceDelegate;
-@@ -36,21 +35,15 @@ import org.chromium.ui.text.SpanApplier;
+@@ -35,11 +34,7 @@ import org.chromium.ui.text.SpanApplier;
*/
public class PrivacyPreferences
extends PreferenceFragmentCompat implements Preference.OnPreferenceChangeListener {
@@ -169,9 +168,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/pri
private static final String PREF_CAN_MAKE_PAYMENT = "can_make_payment";
private static final String PREF_CONTEXTUAL_SEARCH = "contextual_search";
private static final String PREF_NETWORK_PREDICTIONS = "preload_pages";
- private static final String PREF_DO_NOT_TRACK = "do_not_track";
-- private static final String PREF_USAGE_AND_CRASH_REPORTING = "usage_and_crash_reports";
- private static final String PREF_CLEAR_BROWSING_DATA = "clear_browsing_data";
+@@ -48,7 +43,6 @@ public class PrivacyPreferences
private static final String PREF_SYNC_AND_SERVICES_LINK_DIVIDER =
"sync_and_services_link_divider";
private static final String PREF_SYNC_AND_SERVICES_LINK = "sync_and_services_link";
@@ -179,22 +176,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/pri
private ManagedPreferenceDelegate mManagedPreferenceDelegate;
-@@ -78,12 +71,8 @@ public class PrivacyPreferences
-
- if (ChromeFeatureList.isEnabled(ChromeFeatureList.UNIFIED_CONSENT)) {
- // Remove preferences that were migrated to SyncAndServicesPreferences.
-- preferenceScreen.removePreference(findPreference(PREF_NAVIGATION_ERROR));
- preferenceScreen.removePreference(findPreference(PREF_SEARCH_SUGGESTIONS));
-- preferenceScreen.removePreference(findPreference(PREF_SAFE_BROWSING_SCOUT_REPORTING));
-- preferenceScreen.removePreference(findPreference(PREF_SAFE_BROWSING));
- preferenceScreen.removePreference(findPreference(PREF_CONTEXTUAL_SEARCH));
-- preferenceScreen.removePreference(findPreference(PREF_USAGE_AND_CRASH_REPORTING));
-
- // TODO(https://crbug.com/846376): Update strings in XML after UNIFIED_CONSENT launch.
- networkPredictionPref.setTitle(R.string.preload_pages_title);
-@@ -112,32 +101,11 @@ public class PrivacyPreferences
- preferenceScreen.removePreference(findPreference(PREF_SYNC_AND_SERVICES_LINK_DIVIDER));
- preferenceScreen.removePreference(findPreference(PREF_SYNC_AND_SERVICES_LINK));
+@@ -74,32 +68,11 @@ public class PrivacyPreferences
+ getPreferenceScreen().removePreference(findPreference(PREF_SYNC_AND_SERVICES_LINK_DIVIDER));
+ getPreferenceScreen().removePreference(findPreference(PREF_SYNC_AND_SERVICES_LINK));
- ChromeBaseCheckBoxPreference navigationErrorPref =
- (ChromeBaseCheckBoxPreference) findPreference(PREF_NAVIGATION_ERROR);
@@ -207,7 +191,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/pri
searchSuggestionsPref.setManagedPreferenceDelegate(mManagedPreferenceDelegate);
- if (!ContextualSearchFieldTrial.isEnabled()) {
-- preferenceScreen.removePreference(findPreference(PREF_CONTEXTUAL_SEARCH));
+- getPreferenceScreen().removePreference(findPreference(PREF_CONTEXTUAL_SEARCH));
- }
-
- // Listen to changes to the Extended Reporting pref.
@@ -225,7 +209,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/pri
updateSummaries();
}
-@@ -146,15 +114,8 @@ public class PrivacyPreferences
+@@ -108,15 +81,8 @@ public class PrivacyPreferences
String key = preference.getKey();
if (PREF_SEARCH_SUGGESTIONS.equals(key)) {
PrefServiceBridge.getInstance().setSearchSuggestEnabled((boolean) newValue);
@@ -241,7 +225,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/pri
} else if (PREF_CONTEXTUAL_SEARCH.equals(key)) {
PrefServiceBridge.getInstance().setContextualSearchPreference(((boolean) newValue) ? "true" : "false");
} else if (PREF_CAN_MAKE_PAYMENT.equals(key)) {
-@@ -181,32 +142,12 @@ public class PrivacyPreferences
+@@ -142,32 +108,12 @@ public class PrivacyPreferences
CharSequence textOn = getActivity().getResources().getText(R.string.text_on);
CharSequence textOff = getActivity().getResources().getText(R.string.text_off);
@@ -274,18 +258,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/pri
CheckBoxPreference canMakePaymentPref =
(CheckBoxPreference) findPreference(PREF_CAN_MAKE_PAYMENT);
if (canMakePaymentPref != null) {
-@@ -225,50 +166,15 @@ public class PrivacyPreferences
- boolean isContextualSearchEnabled = !prefServiceBridge.isContextualSearchDisabled();
+@@ -187,42 +133,15 @@ public class PrivacyPreferences
contextualPref.setSummary(isContextualSearchEnabled ? textOn : textOff);
}
--
-- Preference usageAndCrashPref = findPreference(PREF_USAGE_AND_CRASH_REPORTING);
-- if (usageAndCrashPref != null) {
-- usageAndCrashPref.setSummary(
-- privacyPrefManager.isUsageAndCrashReportingPermittedByUser() ? textOn
-- : textOff);
-- }
--
+
- Preference usageStatsPref = findPreference(PREF_USAGE_STATS);
- if (usageStatsPref != null) {
- if (BuildInfo.isAtLeastQ() && prefServiceBridge.getBoolean(Pref.USAGE_STATS_ENABLED)) {
diff --git a/build/patches/Log-DoH-timeout.patch b/build/patches/Log-DoH-timeout.patch
new file mode 100644
index 00000000..f6d2ffa0
--- /dev/null
+++ b/build/patches/Log-DoH-timeout.patch
@@ -0,0 +1,27 @@
+From: csagan5 <32685696+csagan5@users.noreply.github.com>
+Date: Sun, 15 Dec 2019 17:59:04 +0100
+Subject: Log DoH timeout
+
+---
+ net/dns/dns_session.cc | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/net/dns/dns_session.cc b/net/dns/dns_session.cc
+--- a/net/dns/dns_session.cc
++++ b/net/dns/dns_session.cc
+@@ -325,9 +325,11 @@ base::TimeDelta DnsSession::NextTimeout(unsigned server_index, int attempt) {
+ }
+
+ base::TimeDelta DnsSession::NextDohTimeout(unsigned doh_server_index) {
+- return NextTimeoutHelper(
++ base::TimeDelta delta = NextTimeoutHelper(
+ GetServerStats(doh_server_index, true /* is _doh_server */),
+ 0 /* num_backoffs */);
++ LOG(INFO) << "DoH: using timeout: " << delta;
++ return delta;
+ }
+
+ base::TimeDelta DnsSession::NextTimeoutHelper(ServerStats* server_stats,
+--
+2.17.1
+
diff --git a/build/patches/Remove-signin-and-data-saver-integrations.patch b/build/patches/Remove-signin-and-data-saver-integrations.patch
index 1d1f7684..e8448840 100644
--- a/build/patches/Remove-signin-and-data-saver-integrations.patch
+++ b/build/patches/Remove-signin-and-data-saver-integrations.patch
@@ -22,9 +22,8 @@ ld.lld: error: undefined symbol: notifier::NotifierOptions::NotifierOptions()
.../chrome/browser/ChromeActivity.java | 34 -------
.../browser/preferences/MainPreferences.java | 86 +-----------------
.../DataReductionPreferenceFragment.java | 24 ++---
- .../privacy/PrivacyPreferences.java | 15 ----
+ .../privacy/PrivacyPreferences.java | 7 --
.../sync/SyncAndServicesPreferences.java | 8 --
- .../preferences/sync/SyncPreferenceUtils.java | 3 -
.../chrome/browser/signin/SigninManager.java | 71 ++-------------
.../java/strings/android_chrome_strings.grd | 18 ----
.../android/signin/signin_manager_android.cc | 1 -
@@ -34,7 +33,7 @@ ld.lld: error: undefined symbol: notifier::NotifierOptions::NotifierOptions()
.../components/sync/AndroidSyncSettings.java | 24 +----
.../net/HttpNegotiateAuthenticator.java | 88 +------------------
.../chromoting/base/OAuthTokenFetcher.java | 2 -
- 18 files changed, 26 insertions(+), 458 deletions(-)
+ 17 files changed, 26 insertions(+), 447 deletions(-)
diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
--- a/chrome/android/BUILD.gn
@@ -460,7 +459,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/dat
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/privacy/PrivacyPreferences.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/privacy/PrivacyPreferences.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/privacy/PrivacyPreferences.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/privacy/PrivacyPreferences.java
-@@ -24,7 +24,6 @@ import org.chromium.chrome.browser.preferences.Pref;
+@@ -23,7 +23,6 @@ import org.chromium.chrome.browser.preferences.Pref;
import org.chromium.chrome.browser.preferences.PrefServiceBridge;
import org.chromium.chrome.browser.preferences.PreferenceUtils;
import org.chromium.chrome.browser.preferences.PreferencesLauncher;
@@ -468,7 +467,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/pri
import org.chromium.chrome.browser.profiles.Profile;
import org.chromium.chrome.browser.usage_stats.UsageStatsConsentDialog;
import org.chromium.ui.text.NoUnderlineClickableSpan;
-@@ -41,9 +40,6 @@ public class PrivacyPreferences
+@@ -40,9 +39,6 @@ public class PrivacyPreferences
private static final String PREF_NETWORK_PREDICTIONS = "preload_pages";
private static final String PREF_DO_NOT_TRACK = "do_not_track";
private static final String PREF_CLEAR_BROWSING_DATA = "clear_browsing_data";
@@ -478,27 +477,16 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/pri
private ManagedPreferenceDelegate mManagedPreferenceDelegate;
-@@ -86,20 +82,9 @@ public class PrivacyPreferences
- networkPredictionPref.setOrder(canMakePaymentPref.getOrder());
- preferenceScreen.addPreference(networkPredictionPref);
+@@ -65,9 +61,6 @@ public class PrivacyPreferences
+ networkPredictionPref.setOnPreferenceChangeListener(this);
+ networkPredictionPref.setManagedPreferenceDelegate(mManagedPreferenceDelegate);
-- Preference syncAndServicesLink = findPreference(PREF_SYNC_AND_SERVICES_LINK);
-- NoUnderlineClickableSpan linkSpan = new NoUnderlineClickableSpan(getResources(), view -> {
-- PreferencesLauncher.launchSettingsPage(getActivity(), SyncAndServicesPreferences.class,
-- SyncAndServicesPreferences.createArguments(false));
-- });
-- syncAndServicesLink.setSummary(
-- SpanApplier.applySpans(getString(R.string.privacy_sync_and_services_link),
-- new SpanApplier.SpanInfo("", "", linkSpan)));
+- getPreferenceScreen().removePreference(findPreference(PREF_SYNC_AND_SERVICES_LINK_DIVIDER));
+- getPreferenceScreen().removePreference(findPreference(PREF_SYNC_AND_SERVICES_LINK));
-
- updateSummaries();
- return;
- }
-- preferenceScreen.removePreference(findPreference(PREF_SYNC_AND_SERVICES_LINK_DIVIDER));
-- preferenceScreen.removePreference(findPreference(PREF_SYNC_AND_SERVICES_LINK));
-
ChromeBaseCheckBoxPreference searchSuggestionsPref =
(ChromeBaseCheckBoxPreference) findPreference(PREF_SEARCH_SUGGESTIONS);
+ searchSuggestionsPref.setOnPreferenceChangeListener(this);
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/sync/SyncAndServicesPreferences.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/sync/SyncAndServicesPreferences.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/sync/SyncAndServicesPreferences.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/sync/SyncAndServicesPreferences.java
@@ -518,19 +506,6 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/syn
PreferenceUtils.addPreferencesFromResource(this, R.xml.sync_and_services_preferences);
-diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/sync/SyncPreferenceUtils.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/sync/SyncPreferenceUtils.java
---- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/sync/SyncPreferenceUtils.java
-+++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/sync/SyncPreferenceUtils.java
-@@ -118,9 +118,6 @@ public class SyncPreferenceUtils {
- if (profileSyncService.isPassphraseRequiredForPreferredDataTypes()) {
- return res.getString(R.string.sync_need_passphrase);
- }
-- if (ChromeFeatureList.isEnabled(ChromeFeatureList.UNIFIED_CONSENT)) {
-- return context.getString(R.string.sync_and_services_summary_sync_on);
-- }
- return context.getString(R.string.account_management_sync_summary, accountName);
- }
- return context.getString(R.string.sync_is_disabled);
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninManager.java b/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninManager.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninManager.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninManager.java
diff --git a/build/patches/User-Agent-anonymize.patch b/build/patches/User-Agent-anonymize.patch
index 14825331..641bb8e6 100644
--- a/build/patches/User-Agent-anonymize.patch
+++ b/build/patches/User-Agent-anonymize.patch
@@ -18,7 +18,7 @@ diff --git a/components/version_info/version_info.cc b/components/version_info/v
std::string GetProductNameAndVersionForUserAgent() {
- return "Chrome/" + GetVersionNumber();
+ // latest stable version
-+ return "Chrome/79.0.3945.79";
++ return "Chrome/79.0.3945.93";
}
std::string GetProductName() {