diff --git a/CHANGELOG.md b/CHANGELOG.md
index 87469a71..ba878eec 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,12 @@
+# 89.0.4389.92
+* updated zh_CN translations (thanks to @zhmars, https://github.com/bromite/bromite/pull/1000)
+* introduce Alt+D hotkey to focus address bar (fixes https://github.com/bromite/bromite/issues/979)
+* use 64-bit ABI for webview processes (fixes https://github.com/bromite/bromite/issues/997)
+* use dedicated folder for bookmark all tabs
+* fix Javascript and cookies permissions missing (thanks to @uazo, fixes https://github.com/bromite/bromite/issues/990)
+* fix missing enable save data header flag (fixes https://github.com/bromite/bromite/issues/989)
+* fix menu items not properly displayed with tab overflow menu regroup (thanks to @uazo, fixes https://github.com/bromite/bromite/issues/963)
+
# 89.0.4389.78
* make all favicon requests on-demand
* restored older icon for view source menu item
diff --git a/build/RELEASE b/build/RELEASE
index 78dd1ba0..638727b1 100644
--- a/build/RELEASE
+++ b/build/RELEASE
@@ -1 +1 @@
-89.0.4389.78
+89.0.4389.92
diff --git a/build/bromite_patches_list.txt b/build/bromite_patches_list.txt
index 15a86ba1..0a36dfbf 100644
--- a/build/bromite_patches_list.txt
+++ b/build/bromite_patches_list.txt
@@ -85,6 +85,7 @@ Disable-previews-by-default.patch
Use-4-tile-rows-never-show-logo.patch
Disable-metrics-collection-for-NTP-tiles.patch
Enable-SPPI-for-devices-with-enough-memory.patch
+Use-64-bit-WebView-processes.patch
prefs-disable-signinallowed-by-default.patch
prefs-always-prompt-for-download-directory-by-default.patch
Disable-offline-pages-in-the-downloads-home-to-be-opened-in-CCT-by-default.patch
@@ -106,7 +107,7 @@ Revert-flags-remove-disable-pull-to-refresh-effect.patch
Use-dummy-DFM-installer.patch
Disable-feeds-support-by-default.patch
Disable-autofill-assistant-by-default.patch
-Show-site-settings-for-cookies.patch
+Show-site-settings-for-cookies-javascript-and-ads.patch
Restore-enable-horizontal-tab-switcher-flag.patch
Disable-DRM-media-origin-IDs-preprovisioning.patch
Disable-smart-selection-by-default.patch
@@ -146,4 +147,5 @@ Add-menu-item-to-bookmark-all-tabs.patch
Add-flag-for-save-data-header.patch
Add-option-to-force-tablet-UI.patch
Make-all-favicon-requests-on-demand.patch
+Add-Alt-D-hotkey-to-focus-address-bar.patch
Automated-domain-substitution.patch
diff --git a/build/patches/Add-Alt-D-hotkey-to-focus-address-bar.patch b/build/patches/Add-Alt-D-hotkey-to-focus-address-bar.patch
new file mode 100644
index 00000000..094c880d
--- /dev/null
+++ b/build/patches/Add-Alt-D-hotkey-to-focus-address-bar.patch
@@ -0,0 +1,23 @@
+From: csagan5 <32685696+csagan5@users.noreply.github.com>
+Date: Tue, 9 Mar 2021 19:43:00 +0100
+Subject: Add Alt+D hotkey to focus address bar
+
+---
+ .../java/src/org/chromium/chrome/browser/KeyboardShortcuts.java | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/chrome/android/java/src/org/chromium/chrome/browser/KeyboardShortcuts.java b/chrome/android/java/src/org/chromium/chrome/browser/KeyboardShortcuts.java
+--- a/chrome/android/java/src/org/chromium/chrome/browser/KeyboardShortcuts.java
++++ b/chrome/android/java/src/org/chromium/chrome/browser/KeyboardShortcuts.java
+@@ -147,6 +147,8 @@ public class KeyboardShortcuts {
+ KeyEvent.KEYCODE_F, KeyEvent.META_CTRL_ON);
+ addShortcut(context, chromeFeatureShortcutGroup, R.string.keyboard_shortcut_address_bar,
+ KeyEvent.KEYCODE_L, KeyEvent.META_CTRL_ON);
++ addShortcut(context, chromeFeatureShortcutGroup, R.string.keyboard_shortcut_address_bar,
++ KeyEvent.KEYCODE_D, KeyEvent.META_ALT_ON);
+ shortcutGroups.add(chromeFeatureShortcutGroup);
+
+ KeyboardShortcutGroup webpageShortcutGroup = new KeyboardShortcutGroup(
+--
+2.17.1
+
diff --git a/build/patches/Add-bookmark-import-export-actions.patch b/build/patches/Add-bookmark-import-export-actions.patch
index 6a196feb..b3f033ca 100644
--- a/build/patches/Add-bookmark-import-export-actions.patch
+++ b/build/patches/Add-bookmark-import-export-actions.patch
@@ -402,7 +402,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
]
configs += [
-@@ -3440,8 +3444,6 @@ static_library("browser") {
+@@ -3439,8 +3443,6 @@ static_library("browser") {
"badging/badge_manager_factory.h",
"banners/app_banner_manager_desktop.cc",
"banners/app_banner_manager_desktop.h",
diff --git a/build/patches/Add-flag-for-save-data-header.patch b/build/patches/Add-flag-for-save-data-header.patch
index 9b8cf2e9..b23a1e80 100644
--- a/build/patches/Add-flag-for-save-data-header.patch
+++ b/build/patches/Add-flag-for-save-data-header.patch
@@ -3,28 +3,27 @@ Date: Mon, 1 Feb 2021 19:18:55 +0200
Subject: Add flag for save-data-header
---
- chrome/browser/about_flags.cc | 4 ++++
+ chrome/browser/about_flags.cc | 3 +++
chrome/browser/flag_descriptions.cc | 4 ++++
chrome/browser/flag_descriptions.h | 3 +++
content/browser/loader/browser_initiated_resource_request.cc | 5 +++--
services/network/public/cpp/features.cc | 4 ++++
services/network/public/cpp/features.h | 2 ++
- 6 files changed, 20 insertions(+), 2 deletions(-)
+ 6 files changed, 19 insertions(+), 2 deletions(-)
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
--- a/chrome/browser/about_flags.cc
+++ b/chrome/browser/about_flags.cc
-@@ -4302,6 +4302,10 @@ const FeatureEntry kFeatureEntries[] = {
- kOmniboxRichAutocompletionPromisingVariations,
- "OmniboxBundledExperimentV1")},
- {"omnibox-bookmark-paths", flag_descriptions::kOmniboxBookmarkPathsName,
+@@ -4326,6 +4326,9 @@ const FeatureEntry kFeatureEntries[] = {
+ #endif // BUILDFLAG(IS_CHROMEOS_ASH)
+
+ #if defined(OS_ANDROID)
+ {"enable-save-data-header", flag_descriptions::kEnableSaveDataHeaderName,
+ flag_descriptions::kEnableSaveDataHeaderDescription, kOsAndroid,
+ FEATURE_VALUE_TYPE(network::features::kEnableSaveDataHeader)},
-+
- flag_descriptions::kOmniboxBookmarkPathsDescription, kOsDesktop,
- FEATURE_WITH_PARAMS_VALUE_TYPE(omnibox::kBookmarkPaths,
- kOmniboxBookmarkPathsVariations,
+ {"enable-command-line-on-non-rooted-devices",
+ flag_descriptions::kEnableCommandLineOnNonRootedName,
+ flag_descriptions::kEnableCommandLineOnNoRootedDescription, kOsAndroid,
diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
--- a/chrome/browser/flag_descriptions.cc
+++ b/chrome/browser/flag_descriptions.cc
diff --git a/build/patches/Add-menu-item-to-bookmark-all-tabs.patch b/build/patches/Add-menu-item-to-bookmark-all-tabs.patch
index 5ec04e86..02100081 100644
--- a/build/patches/Add-menu-item-to-bookmark-all-tabs.patch
+++ b/build/patches/Add-menu-item-to-bookmark-all-tabs.patch
@@ -6,14 +6,11 @@ Subject: Add menu item to bookmark all tabs
chrome/android/java/res/menu/main_menu.xml | 7 +++
.../java/res/menu/main_menu_regroup.xml | 4 ++
.../chrome/browser/ChromeTabbedActivity.java | 26 ++++++++
- .../AppMenuPropertiesDelegateImpl.java | 2 +-
.../browser/bookmarks/BookmarkBridge.java | 62 +++++++++++++++++++
.../browser/bookmarks/BookmarkUtils.java | 4 ++
.../android/bookmarks/bookmark_bridge.cc | 17 +++++
.../android/bookmarks/bookmark_bridge.h | 4 ++
.../bookmarks/chrome_bookmark_client.cc | 2 +
- .../java/res/layout/icon_row_menu_item.xml | 4 ++
- .../browser/ui/appmenu/AppMenuAdapter.java | 13 +++-
.../strings/android_chrome_strings.grd | 3 +
components/bookmark_bar_strings.grdp | 6 ++
.../browser/bookmark_load_details.cc | 4 ++
@@ -22,33 +19,32 @@ Subject: Add menu item to bookmark all tabs
components/bookmarks/browser/bookmark_model.h | 7 +++
components/bookmarks/browser/bookmark_node.cc | 13 ++++
components/bookmarks/browser/bookmark_node.h | 5 ++
- .../styles/android/java/res/values/dimens.xml | 2 +-
- 20 files changed, 184 insertions(+), 6 deletions(-)
+ 16 files changed, 168 insertions(+), 1 deletion(-)
diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/res/menu/main_menu.xml
--- a/chrome/android/java/res/menu/main_menu.xml
+++ b/chrome/android/java/res/menu/main_menu.xml
-@@ -28,6 +28,10 @@
- android:title="@string/accessibility_menu_bookmark"
- android:titleCondensed="@string/menu_bookmark"
- android:icon="@drawable/btn_star"/>
-+
-
+@@ -57,6 +57,10 @@
+
++
+
+@@ -134,6 +138,9 @@
+
+
-
+
diff --git a/chrome/android/java/res/menu/main_menu_regroup.xml b/chrome/android/java/res/menu/main_menu_regroup.xml
--- a/chrome/android/java/res/menu/main_menu_regroup.xml
+++ b/chrome/android/java/res/menu/main_menu_regroup.xml
@@ -113,18 +109,6 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
private void recordLauncherShortcutAction(boolean isIncognito) {
if (isIncognito) {
RecordUserAction.record("Android.LauncherShortcut.NewIncognitoTab");
-diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java
---- a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java
-+++ b/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java
-@@ -371,7 +371,7 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
- if (shouldShowThreeButtonActionBar()) {
- assert actionBar.size() == 3;
- } else {
-- assert actionBar.size() == 5;
-+ assert actionBar.size() == 6;
- }
- }
-
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkBridge.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkBridge.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkBridge.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkBridge.java
@@ -186,7 +170,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
+ // Used to bookmark all tabs in a specific folder, created if not existing
+ public BookmarkId addToTabsCollection(Context context, Tab tab) {
-+ BookmarkId parent = getMobileFolderId();
++ BookmarkId parent = getTabsCollectionFolderId();
+ long existingId = getUserBookmarkIdForTab(tab);
+ if (existingId != BookmarkId.INVALID_ID) {
+ BookmarkId existingBookmarkId = new BookmarkId(existingId, BookmarkType.NORMAL);
@@ -207,7 +191,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
+ }
+
+ public void finishedAddingToTabsCollection(Activity activity, SnackbarManager snackbarManager) {
-+ BookmarkId parent = getMobileFolderId();
++ BookmarkId parent = getTabsCollectionFolderId();
+
+ BookmarkItem bookmarkItem = getBookmarkById(parent);
+ String folderName;
@@ -327,70 +311,6 @@ diff --git a/chrome/browser/bookmarks/chrome_bookmark_client.cc b/chrome/browser
}
return false;
-diff --git a/chrome/browser/ui/android/appmenu/internal/java/res/layout/icon_row_menu_item.xml b/chrome/browser/ui/android/appmenu/internal/java/res/layout/icon_row_menu_item.xml
---- a/chrome/browser/ui/android/appmenu/internal/java/res/layout/icon_row_menu_item.xml
-+++ b/chrome/browser/ui/android/appmenu/internal/java/res/layout/icon_row_menu_item.xml
-@@ -30,4 +30,8 @@
-
-+
-+
-
-diff --git a/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/chrome/browser/ui/appmenu/AppMenuAdapter.java b/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/chrome/browser/ui/appmenu/AppMenuAdapter.java
---- a/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/chrome/browser/ui/appmenu/AppMenuAdapter.java
-+++ b/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/chrome/browser/ui/appmenu/AppMenuAdapter.java
-@@ -55,7 +55,7 @@ import java.util.Map;
- */
- class AppMenuAdapter extends BaseAdapter {
- @IntDef({MenuItemType.STANDARD, MenuItemType.TITLE_BUTTON, MenuItemType.THREE_BUTTON,
-- MenuItemType.FOUR_BUTTON, MenuItemType.FIVE_BUTTON})
-+ MenuItemType.FOUR_BUTTON, MenuItemType.FIVE_BUTTON, MenuItemType.SIX_BUTTON})
- @Retention(RetentionPolicy.SOURCE)
- @VisibleForTesting
- @interface MenuItemType {
-@@ -80,16 +80,18 @@ class AppMenuAdapter extends BaseAdapter {
- * Menu item that has five buttons. Every one of these buttons is displayed as an icon.
- */
- int FIVE_BUTTON = 4;
-+
-+ int SIX_BUTTON = 5;
- /**
- * The number of view types specified above. If you add a view type you MUST increment
- * this.
- */
-- int NUM_ENTRIES = 5;
-+ int NUM_ENTRIES = 6;
- }
-
- /** IDs of all of the buttons in icon_row_menu_item.xml. */
- private static final int[] BUTTON_IDS = {R.id.button_one, R.id.button_two, R.id.button_three,
-- R.id.button_four, R.id.button_five};
-+ R.id.button_four, R.id.button_five, R.id.button_six};
-
- /** MenuItem Animation Constants */
- private static final int ENTER_ITEM_DURATION_MS = 350;
-@@ -152,6 +154,8 @@ class AppMenuAdapter extends BaseAdapter {
- return MenuItemType.FOUR_BUTTON;
- } else if (viewCount == 5) {
- return MenuItemType.FIVE_BUTTON;
-+ } else if (viewCount == 6) {
-+ return MenuItemType.SIX_BUTTON;
- }
- return MenuItemType.STANDARD;
- }
-@@ -207,6 +211,9 @@ class AppMenuAdapter extends BaseAdapter {
- case MenuItemType.FIVE_BUTTON:
- convertView = createMenuItemRow(convertView, parent, item, 5, itemViewType);
- break;
-+ case MenuItemType.SIX_BUTTON:
-+ convertView = createMenuItemRow(convertView, parent, item, 6, itemViewType);
-+ break;
- case MenuItemType.TITLE_BUTTON: {
- assert item.hasSubMenu();
- final MenuItem titleItem = item.getSubMenu().getItem(0);
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
@@ -563,18 +483,6 @@ diff --git a/components/bookmarks/browser/bookmark_node.h b/components/bookmarks
// Constructor is private to disallow the construction of permanent nodes
// other than the well-known ones, see factory methods.
-diff --git a/components/browser_ui/styles/android/java/res/values/dimens.xml b/components/browser_ui/styles/android/java/res/values/dimens.xml
---- a/components/browser_ui/styles/android/java/res/values/dimens.xml
-+++ b/components/browser_ui/styles/android/java/res/values/dimens.xml
-@@ -5,7 +5,7 @@
-
-
-
-- 258dp
-+ 282dp
-
-
- 8dp
--
2.17.1
diff --git a/build/patches/Automated-domain-substitution.patch b/build/patches/Automated-domain-substitution.patch
index d27b9ed5..eaead174 100644
--- a/build/patches/Automated-domain-substitution.patch
+++ b/build/patches/Automated-domain-substitution.patch
@@ -1780,7 +1780,7 @@ diff --git a/PRESUBMIT.py b/PRESUBMIT.py
return results
-@@ -2965,7 +2965,7 @@ def CheckSecurityOwners(input_api, output_api):
+@@ -2967,7 +2967,7 @@ def CheckSecurityOwners(input_api, output_api):
if to_check:
# If there are any OWNERS files to check, there are IPC-related changes in
# this CL. Auto-CC the review list.
@@ -1789,7 +1789,7 @@ diff --git a/PRESUBMIT.py b/PRESUBMIT.py
# Go through the OWNERS files to check, filtering out rules that are already
# present in that OWNERS file.
-@@ -3263,7 +3263,7 @@ def _CheckAndroidToastUsage(input_api, output_api):
+@@ -3265,7 +3265,7 @@ def _CheckAndroidToastUsage(input_api, output_api):
'android.widget.Toast usage is detected. Android toasts use hardware'
' acceleration, and can be\ncostly on low-end devices. Please use'
' org.chromium.ui.widget.Toast instead.\n'
@@ -1798,7 +1798,7 @@ diff --git a/PRESUBMIT.py b/PRESUBMIT.py
errors))
return results
-@@ -3397,7 +3397,7 @@ def _CheckAndroidTestJUnitFrameworkImport(input_api, output_api):
+@@ -3399,7 +3399,7 @@ def _CheckAndroidTestJUnitFrameworkImport(input_api, output_api):
if errors:
results.append(output_api.PresubmitError(
'APIs from junit.framework.* are deprecated, please use JUnit4 framework'
@@ -1807,7 +1807,7 @@ diff --git a/PRESUBMIT.py b/PRESUBMIT.py
' if you have any question.', errors))
return results
-@@ -3428,7 +3428,7 @@ def _CheckAndroidTestJUnitInheritance(input_api, output_api):
+@@ -3430,7 +3430,7 @@ def _CheckAndroidTestJUnitInheritance(input_api, output_api):
results.append(output_api.PresubmitPromptWarning(
'The newly created files include Test classes that inherits from base'
' class. Please do not use inheritance in JUnit4 tests or add new'
@@ -1816,7 +1816,7 @@ diff --git a/PRESUBMIT.py b/PRESUBMIT.py
' questions.', errors))
return results
-@@ -3452,7 +3452,7 @@ def _CheckAndroidTestAnnotationUsage(input_api, output_api):
+@@ -3454,7 +3454,7 @@ def _CheckAndroidTestAnnotationUsage(input_api, output_api):
'Annotations in android.test.suitebuilder.annotation have been'
' deprecated since API level 24. Please use android.support.test.filters'
' from //third_party/android_support_test_runner:runner_java instead.'
@@ -1825,7 +1825,7 @@ diff --git a/PRESUBMIT.py b/PRESUBMIT.py
return results
-@@ -3472,7 +3472,7 @@ def _CheckAndroidNewMdpiAssetLocation(input_api, output_api):
+@@ -3474,7 +3474,7 @@ def _CheckAndroidNewMdpiAssetLocation(input_api, output_api):
'MDPI assets should be placed in /res/drawable-mdpi/ or '
'/res/drawable-ldrtl-mdpi/\ninstead of /res/drawable/ and'
'/res/drawable-ldrtl/.\n'
@@ -1834,7 +1834,7 @@ diff --git a/PRESUBMIT.py b/PRESUBMIT.py
return results
-@@ -4007,7 +4007,7 @@ def CheckGnGlobForward(input_api, output_api):
+@@ -4009,7 +4009,7 @@ def CheckGnGlobForward(input_api, output_api):
long_text=('The variables "visibilty" and "test_only" should be '
'explicitly listed in forward_variables_from(). For more '
'details, see:\n'
@@ -1843,7 +1843,7 @@ diff --git a/PRESUBMIT.py b/PRESUBMIT.py
'build/docs/writing_gn_templates.md'
'#Using-forward_variables_from'))]
return []
-@@ -4210,7 +4210,7 @@ def CheckFuzzTargetsOnUpload(input_api, output_api):
+@@ -4212,7 +4212,7 @@ def CheckFuzzTargetsOnUpload(input_api, output_api):
'LLVMFuzzerInitialize should not be used, unless your fuzz target needs '
'to access command line arguments passed to the fuzzer. Instead, prefer '
'static initialization and shared resources as documented in '
@@ -1852,7 +1852,7 @@ diff --git a/PRESUBMIT.py b/PRESUBMIT.py
'libfuzzer/efficient_fuzzing.md#simplifying-initialization_cleanup.\n' % (
', '.join(EXPORTED_SYMBOLS), REQUIRED_HEADER)
)
-@@ -4245,7 +4245,7 @@ def _CheckNewImagesWarning(input_api, output_api):
+@@ -4247,7 +4247,7 @@ def _CheckNewImagesWarning(input_api, output_api):
errors.append(output_api.PresubmitPromptWarning(
'It looks like you are trying to commit some images. If these are '
'non-test-only images, please make sure to read and apply the tips in '
@@ -1861,7 +1861,7 @@ diff --git a/PRESUBMIT.py b/PRESUBMIT.py
'binary_size/optimization_advice.md#optimizing-images\nThis check is '
'FYI only and will not block your CL on the CQ.', image_paths))
return errors
-@@ -4529,7 +4529,7 @@ def CheckForInvalidIfDefinedMacros(input_api, output_api):
+@@ -4531,7 +4531,7 @@ def CheckForInvalidIfDefinedMacros(input_api, output_api):
def CheckForIPCRules(input_api, output_api):
"""Check for same IPC rules described in
@@ -1870,7 +1870,7 @@ diff --git a/PRESUBMIT.py b/PRESUBMIT.py
"""
base_pattern = r'IPC_ENUM_TRAITS\('
inclusion_pattern = input_api.re.compile(r'(%s)' % base_pattern)
-@@ -4773,7 +4773,7 @@ def CheckChangeOnCommit(input_api, output_api):
+@@ -4775,7 +4775,7 @@ def CheckChangeOnCommit(input_api, output_api):
results.extend(input_api.canned_checks.CheckTreeIsOpen(
input_api,
output_api,
@@ -1879,7 +1879,7 @@ diff --git a/PRESUBMIT.py b/PRESUBMIT.py
results.extend(
input_api.canned_checks.CheckPatchFormatted(input_api, output_api))
-@@ -5105,7 +5105,7 @@ def CheckStrings(input_api, output_api):
+@@ -5107,7 +5107,7 @@ def CheckStrings(input_api, output_api):
if icu_syntax_errors:
results.append(output_api.PresubmitPromptWarning(
'ICU syntax errors were found in the following strings (problems or '
@@ -4292,7 +4292,7 @@ diff --git a/chrome/browser/browser_switcher/browser_switcher_service.cc b/chrom
diff --git a/chrome/browser/cart/cart_service.cc b/chrome/browser/cart/cart_service.cc
--- a/chrome/browser/cart/cart_service.cc
+++ b/chrome/browser/cart/cart_service.cc
-@@ -218,23 +218,23 @@ void CartService::AddCartsWithFakeData() {
+@@ -219,23 +219,23 @@ void CartService::AddCartsWithFakeData() {
// Polulate and add some carts with fake data.
double time_now = base::Time::Now().ToDoubleT();
cart_db::ChromeCartContentProto dummy_proto1;
@@ -4715,7 +4715,7 @@ diff --git a/chrome/browser/chromeos/login/screens/recommend_apps/recommend_apps
diff --git a/chrome/browser/chromeos/login/session/user_session_manager.cc b/chrome/browser/chromeos/login/session/user_session_manager.cc
--- a/chrome/browser/chromeos/login/session/user_session_manager.cc
+++ b/chrome/browser/chromeos/login/session/user_session_manager.cc
-@@ -1214,7 +1214,7 @@ void ShowSupervisedUserDeprecationNotification(Profile* profile,
+@@ -1215,7 +1215,7 @@ void ShowSupervisedUserDeprecationNotification(Profile* profile,
NavigateParams params(
profile,
@@ -22240,7 +22240,7 @@ diff --git a/ios/chrome/browser/flags/about_flags.mm b/ios/chrome/browser/flags/
diff --git a/ios/chrome/browser/geolocation/omnibox_geolocation_controller.mm b/ios/chrome/browser/geolocation/omnibox_geolocation_controller.mm
--- a/ios/chrome/browser/geolocation/omnibox_geolocation_controller.mm
+++ b/ios/chrome/browser/geolocation/omnibox_geolocation_controller.mm
-@@ -491,7 +491,7 @@ const char* const kGeolocationAuthorizationActionNewUser =
+@@ -229,7 +229,7 @@ const char* const kGeolocationAuthorizationActionNewUser =
}
- (BOOL)URLIsAuthorizationPromptingURL:(const GURL&)url {
@@ -24355,7 +24355,7 @@ diff --git a/remoting/host/it2me/it2me_native_messaging_host.cc b/remoting/host/
diff --git a/remoting/host/linux/linux_me2me_host.py b/remoting/host/linux/linux_me2me_host.py
--- a/remoting/host/linux/linux_me2me_host.py
+++ b/remoting/host/linux/linux_me2me_host.py
-@@ -1474,7 +1474,7 @@ def watch_for_resolution_changes(initial_size):
+@@ -1485,7 +1485,7 @@ def watch_for_resolution_changes(initial_size):
def main():
EPILOG = """This script is not intended for use by end-users. To configure
Chrome Remote Desktop, please install the app from the Chrome
@@ -24364,7 +24364,7 @@ diff --git a/remoting/host/linux/linux_me2me_host.py b/remoting/host/linux/linux
parser = argparse.ArgumentParser(
usage="Usage: %(prog)s [options] [ -- [ X server options ] ]",
epilog=EPILOG)
-@@ -1682,7 +1682,7 @@ Web Store: https://chrome.google.com/remotedesktop"""
+@@ -1687,7 +1687,7 @@ Web Store: https://chrome.google.com/remotedesktop"""
"WARNING: This system uses GDM. Some GDM versions have a bug that "
"prevents local login while Chrome Remote Desktop is running. If you "
"run into this issue, you can stop Chrome Remote Desktop by visiting "
diff --git a/build/patches/Block-all-connection-requests-with-qjz9zk-in-the-domain-name-or-with-a-trk-scheme.patch b/build/patches/Block-all-connection-requests-with-qjz9zk-in-the-domain-name-or-with-a-trk-scheme.patch
index 6affe995..50b1237c 100644
--- a/build/patches/Block-all-connection-requests-with-qjz9zk-in-the-domain-name-or-with-a-trk-scheme.patch
+++ b/build/patches/Block-all-connection-requests-with-qjz9zk-in-the-domain-name-or-with-a-trk-scheme.patch
@@ -100,7 +100,7 @@ diff --git a/components/url_formatter/url_fixer.cc b/components/url_formatter/ur
diff --git a/content/browser/child_process_security_policy_impl.cc b/content/browser/child_process_security_policy_impl.cc
--- a/content/browser/child_process_security_policy_impl.cc
+++ b/content/browser/child_process_security_policy_impl.cc
-@@ -762,6 +762,7 @@ ChildProcessSecurityPolicyImpl::ChildProcessSecurityPolicyImpl() {
+@@ -772,6 +772,7 @@ ChildProcessSecurityPolicyImpl::ChildProcessSecurityPolicyImpl()
#endif // BUILDFLAG(ENABLE_WEBSOCKETS)
RegisterWebSafeScheme(url::kFtpScheme);
RegisterWebSafeScheme(url::kDataScheme);
diff --git a/build/patches/Bromite-AdBlockUpdaterService.patch b/build/patches/Bromite-AdBlockUpdaterService.patch
index 94c114aa..e0ac4278 100644
--- a/build/patches/Bromite-AdBlockUpdaterService.patch
+++ b/build/patches/Bromite-AdBlockUpdaterService.patch
@@ -571,7 +571,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch
#include "chrome/browser/media/audio_service_util.h"
#include "chrome/browser/media/router/media_router_feature.h"
#include "chrome/browser/media/webrtc/audio_debug_recordings_handler.h"
-@@ -3985,16 +3984,6 @@ ChromeContentBrowserClient::CreateThrottlesForNavigation(
+@@ -3986,16 +3985,6 @@ ChromeContentBrowserClient::CreateThrottlesForNavigation(
content::NavigationHandle* handle) {
std::vector> throttles;
@@ -588,7 +588,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch
#if BUILDFLAG(IS_CHROMEOS_ASH)
MaybeAddThrottle(
chromeos::WebTimeLimitNavigationThrottle::MaybeCreateThrottleFor(handle),
-@@ -4101,10 +4090,6 @@ ChromeContentBrowserClient::CreateThrottlesForNavigation(
+@@ -4102,10 +4091,6 @@ ChromeContentBrowserClient::CreateThrottlesForNavigation(
&throttles);
#endif
diff --git a/build/patches/Disable-safe-browsing.patch b/build/patches/Disable-safe-browsing.patch
index e9671069..f25effe1 100644
--- a/build/patches/Disable-safe-browsing.patch
+++ b/build/patches/Disable-safe-browsing.patch
@@ -369,7 +369,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
"resource_coordinator/resource_coordinator_parts.cc",
"resource_coordinator/resource_coordinator_parts.h",
"resource_coordinator/session_restore_policy.cc",
-@@ -2178,8 +2165,6 @@ static_library("browser") {
+@@ -2177,8 +2164,6 @@ static_library("browser") {
"//components/reading_list/core",
"//components/reading_list/features:flags",
"//components/renderer_context_menu",
@@ -378,7 +378,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
"//components/resources",
"//components/safe_browsing/content/browser",
"//components/safe_browsing/content/password_protection",
-@@ -3173,10 +3158,6 @@ static_library("browser") {
+@@ -3172,10 +3157,6 @@ static_library("browser") {
"profiles/profile_manager_android.cc",
"profiles/profile_manager_android.h",
"query_tiles/android/tile_provider_factory.cc",
@@ -389,7 +389,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
"safe_browsing/android/password_reuse_controller_android.cc",
"safe_browsing/android/password_reuse_controller_android.h",
"safe_browsing/android/safe_browsing_referring_app_bridge_android.cc",
-@@ -3536,8 +3517,6 @@ static_library("browser") {
+@@ -3537,8 +3518,6 @@ static_library("browser") {
"download/download_commands.h",
"download/download_crx_util.cc",
"download/download_crx_util.h",
@@ -398,7 +398,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
"download/download_dir_policy_handler.cc",
"download/download_dir_policy_handler.h",
"download/download_dir_util.cc",
-@@ -6715,8 +6694,6 @@ static_library("test_support") {
+@@ -6718,8 +6697,6 @@ static_library("test_support") {
"//components/policy/core/browser:test_support",
"//components/policy/proto:reporting_record_proto",
"//components/prefs:test_support",
@@ -589,7 +589,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch
#include "chrome/browser/safe_browsing/ui_manager.h"
#include "chrome/browser/safe_browsing/url_checker_delegate_impl.h"
#include "chrome/browser/safe_browsing/url_lookup_service_factory.h"
-@@ -926,21 +928,13 @@ void SetApplicationLocaleOnIOThread(const std::string& locale) {
+@@ -927,21 +929,13 @@ void SetApplicationLocaleOnIOThread(const std::string& locale) {
class CertificateReportingServiceCertReporter : public SSLCertReporter {
public:
explicit CertificateReportingServiceCertReporter(
@@ -612,7 +612,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch
};
#if BUILDFLAG(ENABLE_EXTENSIONS)
-@@ -1490,7 +1484,9 @@ void ChromeContentBrowserClient::PostAfterStartupTask(
+@@ -1491,7 +1485,9 @@ void ChromeContentBrowserClient::PostAfterStartupTask(
InitNetworkContextsParentDirectory();
DCHECK_CURRENTLY_ON(BrowserThread::UI);
@@ -622,7 +622,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch
}
bool ChromeContentBrowserClient::IsBrowserStartupComplete() {
-@@ -2206,7 +2202,7 @@ void ChromeContentBrowserClient::AppendExtraCommandLineSwitches(
+@@ -2207,7 +2203,7 @@ void ChromeContentBrowserClient::AppendExtraCommandLineSwitches(
}
#elif defined(OS_POSIX)
#if defined(OS_ANDROID)
@@ -631,7 +631,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch
#else
bool enable_crash_reporter = false;
if (crash_reporter::IsCrashpadEnabled()) {
-@@ -2326,6 +2322,9 @@ void ChromeContentBrowserClient::AppendExtraCommandLineSwitches(
+@@ -2327,6 +2323,9 @@ void ChromeContentBrowserClient::AppendExtraCommandLineSwitches(
instant_service->IsInstantProcess(process->GetID())) {
command_line->AppendSwitch(switches::kInstantProcess);
}
@@ -641,7 +641,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch
#endif
if (prefs->HasPrefPath(prefs::kAllowDinosaurEasterEgg) &&
-@@ -4152,14 +4151,13 @@ ChromeContentBrowserClient::CreateThrottlesForNavigation(
+@@ -4153,14 +4152,13 @@ ChromeContentBrowserClient::CreateThrottlesForNavigation(
&throttles);
#endif
@@ -658,7 +658,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch
// TODO(crbug.com/1052397): Revisit the macro expression once build flag switch
// of lacros-chrome is complete.
-@@ -5341,6 +5339,7 @@ ChromeContentBrowserClient::GetSafeBrowsingUrlCheckerDelegate(
+@@ -5342,6 +5340,7 @@ ChromeContentBrowserClient::GetSafeBrowsingUrlCheckerDelegate(
bool should_check_on_sb_disabled) {
DCHECK_CURRENTLY_ON(BrowserThread::IO);
@@ -666,7 +666,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch
// Should not bypass safe browsing check if the check is for enterprise
// lookup.
if (!safe_browsing_enabled_for_profile && !should_check_on_sb_disabled)
-@@ -5355,6 +5354,9 @@ ChromeContentBrowserClient::GetSafeBrowsingUrlCheckerDelegate(
+@@ -5356,6 +5355,9 @@ ChromeContentBrowserClient::GetSafeBrowsingUrlCheckerDelegate(
}
return safe_browsing_url_checker_delegate_;
diff --git a/build/patches/Disable-text-fragments-by-default.patch b/build/patches/Disable-text-fragments-by-default.patch
index 05e3de7f..10267e9f 100644
--- a/build/patches/Disable-text-fragments-by-default.patch
+++ b/build/patches/Disable-text-fragments-by-default.patch
@@ -75,7 +75,7 @@ diff --git a/third_party/blink/common/features.cc b/third_party/blink/common/fea
diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink/renderer/core/dom/document.cc
--- a/third_party/blink/renderer/core/dom/document.cc
+++ b/third_party/blink/renderer/core/dom/document.cc
-@@ -4383,6 +4383,10 @@ void Document::SetURL(const KURL& url) {
+@@ -4384,6 +4384,10 @@ void Document::SetURL(const KURL& url) {
}
}
@@ -86,7 +86,7 @@ diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink
// Strip the fragment directive from the URL fragment. E.g. "#id:~:text=a"
// --> "#id". See https://github.com/WICG/scroll-to-text-fragment.
String fragment = new_url.FragmentIdentifier();
-@@ -4396,6 +4400,7 @@ void Document::SetURL(const KURL& url) {
+@@ -4397,6 +4401,7 @@ void Document::SetURL(const KURL& url) {
else
new_url.SetFragmentIdentifier(fragment.Substring(0, start_pos));
}
diff --git a/build/patches/Inject-scripts-for-AMP-tracking-ads-and-video.patch b/build/patches/Inject-scripts-for-AMP-tracking-ads-and-video.patch
index be0cac19..31e5d022 100644
--- a/build/patches/Inject-scripts-for-AMP-tracking-ads-and-video.patch
+++ b/build/patches/Inject-scripts-for-AMP-tracking-ads-and-video.patch
@@ -33,7 +33,7 @@ diff --git a/third_party/blink/renderer/core/dom/build.gni b/third_party/blink/r
diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink/renderer/core/dom/document.cc
--- a/third_party/blink/renderer/core/dom/document.cc
+++ b/third_party/blink/renderer/core/dom/document.cc
-@@ -272,6 +272,7 @@
+@@ -273,6 +273,7 @@
#include "third_party/blink/renderer/core/page/scrolling/root_scroller_controller.h"
#include "third_party/blink/renderer/core/page/scrolling/scroll_state_callback.h"
#include "third_party/blink/renderer/core/page/scrolling/scrolling_coordinator.h"
@@ -41,7 +41,7 @@ diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink
#include "third_party/blink/renderer/core/page/scrolling/snap_coordinator.h"
#include "third_party/blink/renderer/core/page/scrolling/text_fragment_anchor.h"
#include "third_party/blink/renderer/core/page/scrolling/text_fragment_selector_generator.h"
-@@ -337,6 +338,8 @@
+@@ -338,6 +339,8 @@
#include "third_party/blink/renderer/platform/wtf/text/string_buffer.h"
#include "third_party/blink/renderer/platform/wtf/text/text_encoding_registry.h"
@@ -50,7 +50,7 @@ diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink
#ifndef NDEBUG
using WeakDocumentSet = blink::HeapHashSet>;
static WeakDocumentSet& liveDocumentSet();
-@@ -6894,6 +6897,61 @@ void Document::setAllowDeclarativeShadowRoots(bool val) {
+@@ -6896,6 +6899,61 @@ void Document::setAllowDeclarativeShadowRoots(bool val) {
val ? AllowState::kAllow : AllowState::kDeny;
}
@@ -112,7 +112,7 @@ diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink
void Document::FinishedParsing() {
DCHECK(!GetScriptableDocumentParser() || !parser_->IsParsing());
DCHECK(!GetScriptableDocumentParser() || ready_state_ != kLoading);
-@@ -6946,6 +7004,10 @@ void Document::FinishedParsing() {
+@@ -6948,6 +7006,10 @@ void Document::FinishedParsing() {
frame->Loader().FinishedParsing();
diff --git a/build/patches/Modify-default-preferences.patch b/build/patches/Modify-default-preferences.patch
index 7669fd9c..78f3cde4 100644
--- a/build/patches/Modify-default-preferences.patch
+++ b/build/patches/Modify-default-preferences.patch
@@ -32,7 +32,7 @@ diff --git a/chrome/browser/background/background_mode_manager.cc b/chrome/brows
diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc
--- a/chrome/browser/chrome_content_browser_client.cc
+++ b/chrome/browser/chrome_content_browser_client.cc
-@@ -1363,7 +1363,7 @@ void ChromeContentBrowserClient::RegisterLocalStatePrefs(
+@@ -1364,7 +1364,7 @@ void ChromeContentBrowserClient::RegisterLocalStatePrefs(
void ChromeContentBrowserClient::RegisterProfilePrefs(
user_prefs::PrefRegistrySyncable* registry) {
registry->RegisterBooleanPref(prefs::kDisable3DAPIs, false);
diff --git a/build/patches/Multiple-fingerprinting-mitigations.patch b/build/patches/Multiple-fingerprinting-mitigations.patch
index d0564e06..51212ef7 100644
--- a/build/patches/Multiple-fingerprinting-mitigations.patch
+++ b/build/patches/Multiple-fingerprinting-mitigations.patch
@@ -56,7 +56,7 @@ Added flag --fingerprinting-canvas-image-data-noise to disable Canvas image data
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
--- a/chrome/browser/BUILD.gn
+++ b/chrome/browser/BUILD.gn
-@@ -2302,6 +2302,7 @@ static_library("browser") {
+@@ -2301,6 +2301,7 @@ static_library("browser") {
"//services/device/public/cpp:device_features",
"//services/device/public/cpp/serial:switches",
"//services/device/public/cpp/usb",
@@ -187,7 +187,7 @@ diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink
#include "base/time/time.h"
#include "cc/input/overscroll_behavior.h"
#include "cc/input/scroll_snap_data.h"
-@@ -2432,6 +2433,23 @@ void Document::UpdateStyleAndLayoutTree() {
+@@ -2433,6 +2434,23 @@ void Document::UpdateStyleAndLayoutTree() {
#if DCHECK_IS_ON()
AssertLayoutTreeUpdated(*this);
#endif
diff --git a/build/patches/Remove-signin-and-data-saver-integrations.patch b/build/patches/Remove-signin-and-data-saver-integrations.patch
index e964dd82..4cce1d89 100644
--- a/build/patches/Remove-signin-and-data-saver-integrations.patch
+++ b/build/patches/Remove-signin-and-data-saver-integrations.patch
@@ -176,15 +176,15 @@ diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/PriceTrackingUtilities.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/PriceTrackingUtilities.java
--- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/PriceTrackingUtilities.java
+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/PriceTrackingUtilities.java
-@@ -10,7 +10,6 @@ import org.chromium.chrome.browser.preferences.ChromePreferenceKeys;
- import org.chromium.chrome.browser.preferences.SharedPreferencesManager;
+@@ -11,7 +11,6 @@ import org.chromium.chrome.browser.preferences.SharedPreferencesManager;
import org.chromium.chrome.browser.profiles.Profile;
import org.chromium.chrome.browser.signin.services.IdentityServicesProvider;
+ import org.chromium.chrome.browser.signin.services.UnifiedConsentServiceBridge;
-import org.chromium.chrome.browser.sync.ProfileSyncService;
import org.chromium.components.sync.ModelType;
/**
-@@ -124,9 +123,7 @@ public class PriceTrackingUtilities {
+@@ -125,9 +124,7 @@ public class PriceTrackingUtilities {
}
private static boolean isOpenTabsSyncEnabled() {
@@ -194,7 +194,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser
+ return false;
}
- @VisibleForTesting
+ private static boolean isAnonymizedUrlDataCollectionEnabled() {
diff --git a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedSurfaceMediator.java b/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedSurfaceMediator.java
--- a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedSurfaceMediator.java
+++ b/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedSurfaceMediator.java
@@ -2227,7 +2227,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
--- a/chrome/browser/BUILD.gn
+++ b/chrome/browser/BUILD.gn
-@@ -2871,8 +2871,6 @@ static_library("browser") {
+@@ -2870,8 +2870,6 @@ static_library("browser") {
"android/service_tab_launcher.h",
"android/shortcut_helper.cc",
"android/shortcut_helper.h",
@@ -2236,7 +2236,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
"android/signin/signin_metrics_utils.cc",
"android/signin/signin_promo_util_android.cc",
"android/signin/signin_promo_util_android.h",
-@@ -3178,8 +3176,6 @@ static_library("browser") {
+@@ -3177,8 +3175,6 @@ static_library("browser") {
"sharing/sharing_service_proxy_android.h",
"shell_integration_android.cc",
"signin/identity_services_provider_android.cc",
@@ -2245,7 +2245,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
"ssl/chrome_security_state_client.cc",
"ssl/chrome_security_state_client.h",
"ssl/chrome_security_state_model_delegate.cc",
-@@ -3194,8 +3190,6 @@ static_library("browser") {
+@@ -3193,8 +3189,6 @@ static_library("browser") {
"sync/glue/synced_window_delegates_getter_android.h",
"sync/profile_sync_service_android.cc",
"sync/profile_sync_service_android.h",
@@ -2254,7 +2254,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
"sync/trusted_vault_client_android.cc",
"sync/trusted_vault_client_android.h",
"tab/web_contents_state.cc",
-@@ -5521,10 +5515,6 @@ static_library("browser") {
+@@ -5524,10 +5518,6 @@ static_library("browser") {
"signin/logout_tab_helper.h",
"signin/process_dice_header_delegate_impl.cc",
"signin/process_dice_header_delegate_impl.h",
diff --git a/build/patches/Remove-weblayer-dependency-on-Play-Services.patch b/build/patches/Remove-weblayer-dependency-on-Play-Services.patch
index 1d0af35c..72c70aa9 100644
--- a/build/patches/Remove-weblayer-dependency-on-Play-Services.patch
+++ b/build/patches/Remove-weblayer-dependency-on-Play-Services.patch
@@ -3,9 +3,21 @@ Date: Sun, 27 Sep 2020 09:24:16 +0200
Subject: Remove weblayer dependency on Play Services
---
+ weblayer/browser/java/BUILD.gn | 1 -
weblayer/shell/android/BUILD.gn | 3 ---
- 1 file changed, 3 deletions(-)
+ 2 files changed, 4 deletions(-)
+diff --git a/weblayer/browser/java/BUILD.gn b/weblayer/browser/java/BUILD.gn
+--- a/weblayer/browser/java/BUILD.gn
++++ b/weblayer/browser/java/BUILD.gn
+@@ -101,7 +101,6 @@ android_library("base_module_java") {
+ ]
+ deps = [
+ ":base_module_interfaces_java",
+- "$google_play_services_package:google_play_services_basement_java",
+ "//base:base_java",
+ "//components/embedder_support/android:application_java",
+ "//content/public/android:content_java",
diff --git a/weblayer/shell/android/BUILD.gn b/weblayer/shell/android/BUILD.gn
--- a/weblayer/shell/android/BUILD.gn
+++ b/weblayer/shell/android/BUILD.gn
diff --git a/build/patches/Revert-the-removal-of-an-option-to-block-autoplay.patch b/build/patches/Revert-the-removal-of-an-option-to-block-autoplay.patch
index 5504d48b..a177793b 100644
--- a/build/patches/Revert-the-removal-of-an-option-to-block-autoplay.patch
+++ b/build/patches/Revert-the-removal-of-an-option-to-block-autoplay.patch
@@ -226,16 +226,16 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
case ContentSettingsType.IDLE_DETECTION:
return "idle_detection_permission_list";
case ContentSettingsType.JAVASCRIPT:
-@@ -475,6 +477,8 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment
- setUpSoundPreference(preference);
- } else if (type == ContentSettingsType.JAVASCRIPT) {
- setUpJavascriptPreference(preference);
+@@ -471,6 +473,8 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment
+
+ if (type == ContentSettingsType.ADS) {
+ setUpAdsPreference(preference);
+ } else if (type == ContentSettingsType.AUTOPLAY) {
+ setUpAutoplayPreference(preference);
- } else if (type == ContentSettingsType.GEOLOCATION) {
- setUpLocationPreference(preference);
- } else if (type == ContentSettingsType.NOTIFICATIONS) {
-@@ -979,6 +983,24 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment
+ } else if (type == ContentSettingsType.SOUND) {
+ setUpSoundPreference(preference);
+ } else if (type == ContentSettingsType.JAVASCRIPT) {
+@@ -982,6 +986,24 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment
}
}
@@ -306,9 +306,9 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/Website.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/Website.java
--- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/Website.java
+++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/Website.java
-@@ -219,6 +219,14 @@ public final class Website implements Serializable {
- getAddress().getOrigin(), value, "");
- setContentSettingException(type, exception);
+@@ -216,6 +216,14 @@ public final class Website implements Serializable {
+ } else {
+ RecordUserAction.record("JavascriptContentSetting.DisableBy.SiteSettings");
}
+ } else if (type == ContentSettingsType.AUTOPLAY) {
+ // It is possible to set the permission without having an existing exception,
diff --git a/build/patches/Show-site-settings-for-cookies.patch b/build/patches/Show-site-settings-for-cookies-javascript-and-ads.patch
similarity index 65%
rename from build/patches/Show-site-settings-for-cookies.patch
rename to build/patches/Show-site-settings-for-cookies-javascript-and-ads.patch
index 04932bec..96db7f2d 100644
--- a/build/patches/Show-site-settings-for-cookies.patch
+++ b/build/patches/Show-site-settings-for-cookies-javascript-and-ads.patch
@@ -1,31 +1,29 @@
From: csagan5 <32685696+csagan5@users.noreply.github.com>
Date: Sat, 28 Dec 2019 10:23:04 +0100
-Subject: Show site settings for cookies
+Subject: Show site settings for cookies, javascript and ads
Avoid displaying info about intrusive ads
---
- .../site_settings/SingleWebsiteSettings.java | 57 +++++++++----------
- .../browser_ui/site_settings/Website.java | 9 ++-
- 2 files changed, 36 insertions(+), 30 deletions(-)
+ .../site_settings/SingleWebsiteSettings.java | 52 +++++++++----------
+ .../browser_ui/site_settings/Website.java | 14 +++--
+ 2 files changed, 35 insertions(+), 31 deletions(-)
diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java
--- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java
+++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java
-@@ -476,6 +476,8 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment
+@@ -472,6 +472,8 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment
+ setUpSoundPreference(preference);
+ } else if (type == ContentSettingsType.JAVASCRIPT) {
+ setUpJavascriptPreference(preference);
++ } else if (type == ContentSettingsType.COOKIES) {
++ setUpCookiesPreference(preference);
+ } else if (type == ContentSettingsType.GEOLOCATION) {
setUpLocationPreference(preference);
} else if (type == ContentSettingsType.NOTIFICATIONS) {
- setUpNotificationsPreference(preference, isPermissionEmbargoed(type));
-+ } else if (type == ContentSettingsType.COOKIES) {
-+ setUpCookiePreference(preference);
- } else {
- setupContentSettingsPreference(preference,
- mSite.getContentSetting(
-@@ -785,18 +787,7 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment
- }
-
+@@ -787,16 +789,8 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment
private void setUpAdsInformationalBanner() {
-- // Add the informational banner which shows at the top of the UI if ad blocking is
-- // activated on this site.
+ // Add the informational banner which shows at the top of the UI if ad blocking is
+ // activated on this site.
- boolean adBlockingActivated = SiteSettingsCategory.adsCategoryEnabled()
- && WebsitePreferenceBridge.getAdBlockingActivated(
- getSiteSettingsDelegate().getBrowserContextHandle(),
@@ -33,14 +31,13 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
- && findPreference(getPreferenceKey(ContentSettingsType.ADS)) != null;
-
- if (!adBlockingActivated) {
-- removePreferenceSafely(PREF_INTRUSIVE_ADS_INFO);
-- removePreferenceSafely(PREF_INTRUSIVE_ADS_INFO_DIVIDER);
+ removePreferenceSafely(PREF_INTRUSIVE_ADS_INFO);
+ removePreferenceSafely(PREF_INTRUSIVE_ADS_INFO_DIVIDER);
- }
-+ removePreferenceSafely(PREF_INTRUSIVE_ADS_INFO_DIVIDER);
}
private SiteSettingsCategory getWarningCategory() {
-@@ -987,15 +978,15 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment
+@@ -987,17 +981,35 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment
@Nullable
Integer currentValue =
mSite.getContentSetting(browserContextHandle, ContentSettingsType.JAVASCRIPT);
@@ -53,22 +50,47 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
+ // Always show the Javascript permission
+ if (currentValue == null) {
+ currentValue = WebsitePreferenceBridge.isCategoryEnabled(
-+ getSiteSettingsDelegate().getBrowserContextHandle(),
-+ ContentSettingsType.JAVASCRIPT)
++ browserContextHandle, ContentSettingsType.JAVASCRIPT)
+ ? ContentSettingValues.ALLOW
+ : ContentSettingValues.BLOCK;
}
-- // Not possible to embargo JAVASCRIPT.
-- setupContentSettingsPreference(preference, currentValue, false /* isEmbargoed */);
-+ setUpListPreference(preference, currentValue, false);
+ // Not possible to embargo JAVASCRIPT.
+ setupContentSettingsPreference(preference, currentValue, false /* isEmbargoed */);
}
++ private void setUpCookiesPreference(Preference preference) {
++ BrowserContextHandle browserContextHandle =
++ getSiteSettingsDelegate().getBrowserContextHandle();
++ @ContentSettingValues
++ @Nullable
++ Integer currentValue =
++ mSite.getContentSetting(browserContextHandle, ContentSettingsType.COOKIES);
++ // Always show the cookies permission
++ if (currentValue == null) {
++ currentValue = WebsitePreferenceBridge.isCategoryEnabled(
++ browserContextHandle, ContentSettingsType.COOKIES)
++ ? ContentSettingValues.ALLOW
++ : ContentSettingValues.BLOCK;
++ }
++ // Not possible to embargo COOKIES.
++ setupContentSettingsPreference(preference, currentValue, false /* isEmbargoed */);
++ }
++
/**
-@@ -1020,15 +1011,6 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment
+ * Updates the ads list preference based on whether the site is a candidate for blocking. This
+ * has some custom behavior.
+@@ -1013,22 +1025,10 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment
+ setupContentSettingsPreference(preference, null, false);
+ return;
+ }
+- // If the ad blocker is activated, then this site will have ads blocked unless there is an
+- // explicit permission disallowing the blocking.
+- boolean activated = WebsitePreferenceBridge.getAdBlockingActivated(
+- browserContextHandle, mSite.getAddress().getOrigin());
@ContentSettingValues
@Nullable
Integer permission = mSite.getContentSetting(browserContextHandle, ContentSettingsType.ADS);
--
+
- // If |permission| is null, there is no explicit (non-default) permission set for this site.
- // If the site is not considered a candidate for blocking, do the standard thing and remove
- // the preference.
@@ -80,56 +102,32 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
// However, if the blocking is activated, we still want to show the permission, even if it
// is in the default state.
if (permission == null) {
-@@ -1050,6 +1032,23 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment
- }
- }
-
-+ private void setUpCookiePreference(Preference preference) {
-+ @ContentSettingValues
-+ @Nullable
-+ Integer currentValue =
-+ mSite.getContentSetting(getSiteSettingsDelegate().getBrowserContextHandle(), ContentSettingsType.COOKIES);
-+ // Always show the cookies permission
-+ if (currentValue == null) {
-+ currentValue = WebsitePreferenceBridge.isCategoryEnabled(
-+ getSiteSettingsDelegate().getBrowserContextHandle(),
-+ ContentSettingsType.COOKIES)
-+ ? ContentSettingValues.ALLOW
-+ : ContentSettingValues.BLOCK;
-+ }
-+ // Not possible to embargo COOKIES.
-+ setupContentSettingsPreference(preference, currentValue, false /* isEmbargoed */);
-+ }
-+
- private String getDSECategorySummary(@ContentSettingValues int value) {
- return value == ContentSettingValues.ALLOW
- ? getString(R.string.website_settings_permissions_allowed_dse)
diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/Website.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/Website.java
--- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/Website.java
+++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/Website.java
-@@ -193,7 +193,7 @@ public final class Website implements Serializable {
- // permission.
+@@ -187,13 +187,17 @@ public final class Website implements Serializable {
+
+ ContentSettingException exception = getContentSettingException(type);
+ if (type == ContentSettingsType.ADS) {
+- // It is possible to set the permission without having an existing exception,
+- // because we can show the BLOCK state even when this permission is set to the
+- // default. In that case, just set an exception now to BLOCK to enable changing the
+- // permission.
++ // It is possible to set the permission without having an existing exception
if (exception == null) {
exception = new ContentSettingException(ContentSettingsType.ADS,
- getAddress().getOrigin(), ContentSettingValues.BLOCK, "");
+ getAddress().getOrigin(), value, "");
- setContentSettingException(type, exception);
- }
- } else if (type == ContentSettingsType.JAVASCRIPT) {
-@@ -212,6 +212,13 @@ public final class Website implements Serializable {
- } else {
- RecordUserAction.record("JavascriptContentSetting.DisableBy.SiteSettings");
- }
++ setContentSettingException(type, exception);
++ }
+ } else if (type == ContentSettingsType.COOKIES) {
+ // It is possible to set the permission without having an existing exception
+ if (exception == null) {
+ exception = new ContentSettingException(ContentSettingsType.COOKIES,
+ getAddress().getOrigin(), value, "");
-+ setContentSettingException(type, exception);
-+ }
- } else if (type == ContentSettingsType.SOUND) {
- // It is possible to set the permission without having an existing exception,
- // because we always show the sound permission in Site Settings.
+ setContentSettingException(type, exception);
+ }
+ } else if (type == ContentSettingsType.JAVASCRIPT) {
--
2.17.1
diff --git a/build/patches/Timezone-customization.patch b/build/patches/Timezone-customization.patch
index 7686bd49..9f2a4f18 100644
--- a/build/patches/Timezone-customization.patch
+++ b/build/patches/Timezone-customization.patch
@@ -536,7 +536,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
case ContentSettingsType.AR:
return "ar_permission_list";
case ContentSettingsType.MEDIASTREAM_CAMERA:
-@@ -864,11 +867,12 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment
+@@ -867,11 +870,12 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment
}
ChromeSwitchPreference switchPreference = (ChromeSwitchPreference) preference;
@@ -550,7 +550,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
switchPreference.setOnPreferenceChangeListener(this);
}
-@@ -881,20 +885,43 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment
+@@ -884,20 +888,43 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment
@ContentSettingValues @Nullable Integer value, boolean isEmbargoed) {
ListPreference listPreference = (ListPreference) preference;
@@ -597,7 +597,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
// TODO(crbug.com/735110): Figure out if this is the correct thing to do - here we are
// effectively treating non-ALLOW values as BLOCK.
int index = (value == ContentSettingValues.ALLOW ? 0 : 1);
-@@ -1131,7 +1158,7 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment
+@@ -1132,7 +1159,7 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment
preference.setSummary(getDSECategorySummary(permission));
} else {
preference.setSummary(
@@ -872,7 +872,7 @@ new file mode 100755
diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/Website.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/Website.java
--- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/Website.java
+++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/Website.java
-@@ -232,6 +232,16 @@ public final class Website implements Serializable {
+@@ -229,6 +229,16 @@ public final class Website implements Serializable {
} else {
RecordUserAction.record("SoundContentSetting.UnmuteBy.SiteSettings");
}
diff --git a/build/patches/Use-64-bit-WebView-processes.patch b/build/patches/Use-64-bit-WebView-processes.patch
new file mode 100644
index 00000000..910bf425
--- /dev/null
+++ b/build/patches/Use-64-bit-WebView-processes.patch
@@ -0,0 +1,38 @@
+From: Daniel Micay
+Date: Thu, 26 Jan 2017 01:30:12 -0500
+Subject: Use 64-bit WebView processes
+
+64-bit processes introduce 10% or so higher memory consumption.
+The reason for preferring 64-bit processes is providing substantially better
+exploit mitigations at the expense of slightly more memory usage.
+
+In addition to the standard mitigations, it also enables usage of
+https://github.com/AndroidHardening/hardened_malloc (where available).
+
+It will provide high entropy ASLR (24-bit to 32-bit depending on whether the
+kernel uses 3 or 4 level page tables rather than 16-bit for 32-bit processes),
+high entropy stack canaries (56/64-bit instead of 24/32-bit depending on
+whether a zero byte is used) and also features like pointer authentication and
+memory tagging when those are made available in the future.
+
+The reason why upstream started preferring 32-bit processes is to save memory,
+particularly since saving memory makes it feasible to use finer-grained
+sandboxing.
+---
+ android_webview/nonembedded/java/AndroidManifest.xml | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/android_webview/nonembedded/java/AndroidManifest.xml b/android_webview/nonembedded/java/AndroidManifest.xml
+--- a/android_webview/nonembedded/java/AndroidManifest.xml
++++ b/android_webview/nonembedded/java/AndroidManifest.xml
+@@ -28,7 +28,6 @@
+ android:icon="@{{manifest_package|default('com.android.webview')}}:drawable/icon_webview"
+ android:name="{{ application_name|default('org.chromium.android_webview.nonembedded.WebViewApkApplication') }}"
+ android:multiArch="true"
+- {{ use32bitAbi|default('android:use32bitAbi="true"') }}
+ android:extractNativeLibs="{{ trichrome_library is not defined }}">
+ {# This part is shared between stand-alone WebView and Monochrome #}
+ {% macro common(manifest_package, webview_lib) %}
+--
+2.17.1
+
diff --git a/build/patches/User-agent-customization.patch b/build/patches/User-agent-customization.patch
index c0572141..56d63b91 100644
--- a/build/patches/User-agent-customization.patch
+++ b/build/patches/User-agent-customization.patch
@@ -936,7 +936,7 @@ diff --git a/chrome/browser/android/tab_android.h b/chrome/browser/android/tab_a
diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc
--- a/chrome/browser/chrome_content_browser_client.cc
+++ b/chrome/browser/chrome_content_browser_client.cc
-@@ -1285,6 +1285,13 @@ std::string GetPlatformForUAMetadata() {
+@@ -1286,6 +1286,13 @@ std::string GetPlatformForUAMetadata() {
blink::UserAgentMetadata GetUserAgentMetadata() {
blink::UserAgentMetadata metadata;
@@ -950,7 +950,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch
metadata.brand_version_list = GetBrandVersionList();
metadata.full_version = version_info::GetVersionNumber();
metadata.platform = GetPlatformForUAMetadata();
-@@ -2378,6 +2385,7 @@ void ChromeContentBrowserClient::AppendExtraCommandLineSwitches(
+@@ -2379,6 +2386,7 @@ void ChromeContentBrowserClient::AppendExtraCommandLineSwitches(
switches::kDisableTargetBlankImpliesNoOpener);
}