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); }