Browse Source

Release 89.0.4389.92

csagan5 4 years ago
parent
commit
aa0b4b6b59

+ 9 - 0
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
 # 89.0.4389.78
 * make all favicon requests on-demand
 * make all favicon requests on-demand
 * restored older icon for view source menu item
 * restored older icon for view source menu item

+ 1 - 1
build/RELEASE

@@ -1 +1 @@
-89.0.4389.78
+89.0.4389.92

+ 3 - 1
build/bromite_patches_list.txt

@@ -85,6 +85,7 @@ Disable-previews-by-default.patch
 Use-4-tile-rows-never-show-logo.patch
 Use-4-tile-rows-never-show-logo.patch
 Disable-metrics-collection-for-NTP-tiles.patch
 Disable-metrics-collection-for-NTP-tiles.patch
 Enable-SPPI-for-devices-with-enough-memory.patch
 Enable-SPPI-for-devices-with-enough-memory.patch
+Use-64-bit-WebView-processes.patch
 prefs-disable-signinallowed-by-default.patch
 prefs-disable-signinallowed-by-default.patch
 prefs-always-prompt-for-download-directory-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
 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
 Use-dummy-DFM-installer.patch
 Disable-feeds-support-by-default.patch
 Disable-feeds-support-by-default.patch
 Disable-autofill-assistant-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
 Restore-enable-horizontal-tab-switcher-flag.patch
 Disable-DRM-media-origin-IDs-preprovisioning.patch
 Disable-DRM-media-origin-IDs-preprovisioning.patch
 Disable-smart-selection-by-default.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-flag-for-save-data-header.patch
 Add-option-to-force-tablet-UI.patch
 Add-option-to-force-tablet-UI.patch
 Make-all-favicon-requests-on-demand.patch
 Make-all-favicon-requests-on-demand.patch
+Add-Alt-D-hotkey-to-focus-address-bar.patch
 Automated-domain-substitution.patch
 Automated-domain-substitution.patch

+ 23 - 0
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
+

+ 1 - 1
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 += [
    configs += [
-@@ -3440,8 +3444,6 @@ static_library("browser") {
+@@ -3439,8 +3443,6 @@ static_library("browser") {
        "badging/badge_manager_factory.h",
        "badging/badge_manager_factory.h",
        "banners/app_banner_manager_desktop.cc",
        "banners/app_banner_manager_desktop.cc",
        "banners/app_banner_manager_desktop.h",
        "banners/app_banner_manager_desktop.h",

+ 9 - 10
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
 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.cc                          | 4 ++++
  chrome/browser/flag_descriptions.h                           | 3 +++
  chrome/browser/flag_descriptions.h                           | 3 +++
  content/browser/loader/browser_initiated_resource_request.cc | 5 +++--
  content/browser/loader/browser_initiated_resource_request.cc | 5 +++--
  services/network/public/cpp/features.cc                      | 4 ++++
  services/network/public/cpp/features.cc                      | 4 ++++
  services/network/public/cpp/features.h                       | 2 ++
  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
 diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
 --- a/chrome/browser/about_flags.cc
 --- a/chrome/browser/about_flags.cc
 +++ b/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,
 +    {"enable-save-data-header", flag_descriptions::kEnableSaveDataHeaderName,
 +     flag_descriptions::kEnableSaveDataHeaderDescription, kOsAndroid,
 +     flag_descriptions::kEnableSaveDataHeaderDescription, kOsAndroid,
 +     FEATURE_VALUE_TYPE(network::features::kEnableSaveDataHeader)},
 +     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
 diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
 --- a/chrome/browser/flag_descriptions.cc
 --- a/chrome/browser/flag_descriptions.cc
 +++ b/chrome/browser/flag_descriptions.cc
 +++ b/chrome/browser/flag_descriptions.cc

+ 21 - 113
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 +++
  chrome/android/java/res/menu/main_menu.xml    |  7 +++
  .../java/res/menu/main_menu_regroup.xml       |  4 ++
  .../java/res/menu/main_menu_regroup.xml       |  4 ++
  .../chrome/browser/ChromeTabbedActivity.java  | 26 ++++++++
  .../chrome/browser/ChromeTabbedActivity.java  | 26 ++++++++
- .../AppMenuPropertiesDelegateImpl.java        |  2 +-
  .../browser/bookmarks/BookmarkBridge.java     | 62 +++++++++++++++++++
  .../browser/bookmarks/BookmarkBridge.java     | 62 +++++++++++++++++++
  .../browser/bookmarks/BookmarkUtils.java      |  4 ++
  .../browser/bookmarks/BookmarkUtils.java      |  4 ++
  .../android/bookmarks/bookmark_bridge.cc      | 17 +++++
  .../android/bookmarks/bookmark_bridge.cc      | 17 +++++
  .../android/bookmarks/bookmark_bridge.h       |  4 ++
  .../android/bookmarks/bookmark_bridge.h       |  4 ++
  .../bookmarks/chrome_bookmark_client.cc       |  2 +
  .../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 +
  .../strings/android_chrome_strings.grd        |  3 +
  components/bookmark_bar_strings.grdp          |  6 ++
  components/bookmark_bar_strings.grdp          |  6 ++
  .../browser/bookmark_load_details.cc          |  4 ++
  .../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_model.h |  7 +++
  components/bookmarks/browser/bookmark_node.cc | 13 ++++
  components/bookmarks/browser/bookmark_node.cc | 13 ++++
  components/bookmarks/browser/bookmark_node.h  |  5 ++
  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
 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
 --- a/chrome/android/java/res/menu/main_menu.xml
 +++ b/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"/>
-+              <item android:id="@+id/bookmark_all_tabs_menu_id"
-+                android:title="@string/accessibility_menu_bookmark"
-+                android:titleCondensed="@string/menu_bookmark_all_tabs"
-+                android:icon="@drawable/ic_folder_blue_24dp" />
-               <item android:id="@+id/offline_page_id"
-                 android:title="@string/download_page"
-                 android:titleCondensed="@string/menu_download"
-@@ -146,6 +150,9 @@
-         <item android:id="@+id/track_prices_row_menu_id"
-             android:title="@string/menu_track_prices"
-             android:icon="@drawable/ic_trending_down_black" />
+@@ -57,6 +57,10 @@
+         <item android:id="@+id/all_bookmarks_menu_id"
+             android:title="@string/menu_bookmarks"
+             android:icon="@drawable/btn_star_filled" />
++        <item android:id="@+id/bookmark_all_tabs_menu_id"
++            android:title="@string/accessibility_menu_bookmark"
++            android:titleCondensed="@string/menu_bookmark_all_tabs"
++            android:icon="@drawable/ic_folder_blue_24dp" />
+         <item android:id="@+id/recent_tabs_menu_id"
+             android:title="@string/menu_recent_tabs"
+             android:icon="@drawable/devices_black_24dp" />
+@@ -134,6 +138,9 @@
+         <item android:id="@id/new_incognito_tab_menu_id"
+             android:title="@string/menu_new_incognito_tab"
+             android:icon="@drawable/incognito_simple" />
 +        <item android:id="@+id/bookmark_all_tabs_menu_id"
 +        <item android:id="@+id/bookmark_all_tabs_menu_id"
 +            android:title="@string/menu_bookmark_all_tabs"
 +            android:title="@string/menu_bookmark_all_tabs"
 +            android:icon="@drawable/ic_folder_blue_24dp" />
 +            android:icon="@drawable/ic_folder_blue_24dp" />
-         <item android:id="@id/preferences_id"
-             android:title="@string/menu_settings"
-             android:icon="@drawable/settings_cog" />
+         <item android:id="@+id/close_all_tabs_menu_id"
+             android:title="@string/menu_close_all_tabs"
+             android:icon="@drawable/btn_close_white" />
 diff --git a/chrome/android/java/res/menu/main_menu_regroup.xml b/chrome/android/java/res/menu/main_menu_regroup.xml
 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
 --- a/chrome/android/java/res/menu/main_menu_regroup.xml
 +++ b/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) {
      private void recordLauncherShortcutAction(boolean isIncognito) {
          if (isIncognito) {
          if (isIncognito) {
              RecordUserAction.record("Android.LauncherShortcut.NewIncognitoTab");
              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
 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
 --- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkBridge.java
 +++ b/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
 +    // Used to bookmark all tabs in a specific folder, created if not existing
 +    public BookmarkId addToTabsCollection(Context context, Tab tab) {
 +    public BookmarkId addToTabsCollection(Context context, Tab tab) {
-+        BookmarkId parent = getMobileFolderId();
++        BookmarkId parent = getTabsCollectionFolderId();
 +        long existingId = getUserBookmarkIdForTab(tab);
 +        long existingId = getUserBookmarkIdForTab(tab);
 +        if (existingId != BookmarkId.INVALID_ID) {
 +        if (existingId != BookmarkId.INVALID_ID) {
 +            BookmarkId existingBookmarkId = new BookmarkId(existingId, BookmarkType.NORMAL);
 +            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) {
 +     public void finishedAddingToTabsCollection(Activity activity, SnackbarManager snackbarManager) {
-+        BookmarkId parent = getMobileFolderId();
++        BookmarkId parent = getTabsCollectionFolderId();
 +
 +
 +        BookmarkItem bookmarkItem = getBookmarkById(parent);
 +        BookmarkItem bookmarkItem = getBookmarkById(parent);
 +        String folderName;
 +        String folderName;
@@ -327,70 +311,6 @@ diff --git a/chrome/browser/bookmarks/chrome_bookmark_client.cc b/chrome/browser
    }
    }
  
  
    return false;
    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 @@
-     <org.chromium.ui.widget.ChromeImageButton
-         android:id="@+id/button_five"
-         style="@style/OverflowMenuButton" />
-+
-+    <org.chromium.ui.widget.ChromeImageButton
-+        android:id="@+id/button_six"
-+        style="@style/OverflowMenuButton" />
- </LinearLayout>
-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
 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
 --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
 +++ b/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
    // Constructor is private to disallow the construction of permanent nodes
    // other than the well-known ones, see factory methods.
    // 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 @@
- 
- <resources>
-     <!-- Standard width for overflow menu in Chrome. -->
--    <dimen name="menu_width">258dp</dimen>
-+    <dimen name="menu_width">282dp</dimen>
- 
-     <!-- Button bar dimensions -->
-     <dimen name="button_bar_stacked_margin">8dp</dimen>
 -- 
 -- 
 2.17.1
 2.17.1
 
 

+ 17 - 17
build/patches/Automated-domain-substitution.patch

@@ -1780,7 +1780,7 @@ diff --git a/PRESUBMIT.py b/PRESUBMIT.py
    return results
    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 to_check:
      # If there are any OWNERS files to check, there are IPC-related changes in
      # If there are any OWNERS files to check, there are IPC-related changes in
      # this CL. Auto-CC the review list.
      # 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
    # Go through the OWNERS files to check, filtering out rules that are already
    # present in that OWNERS file.
    # 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'
          'android.widget.Toast usage is detected. Android toasts use hardware'
          ' acceleration, and can be\ncostly on low-end devices. Please use'
          ' acceleration, and can be\ncostly on low-end devices. Please use'
          ' org.chromium.ui.widget.Toast instead.\n'
          ' org.chromium.ui.widget.Toast instead.\n'
@@ -1798,7 +1798,7 @@ diff --git a/PRESUBMIT.py b/PRESUBMIT.py
          errors))
          errors))
  
  
    return results
    return results
-@@ -3397,7 +3397,7 @@ def _CheckAndroidTestJUnitFrameworkImport(input_api, output_api):
+@@ -3399,7 +3399,7 @@ def _CheckAndroidTestJUnitFrameworkImport(input_api, output_api):
    if errors:
    if errors:
      results.append(output_api.PresubmitError(
      results.append(output_api.PresubmitError(
        'APIs from junit.framework.* are deprecated, please use JUnit4 framework'
        '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))
        ' if you have any question.', errors))
    return results
    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(
      results.append(output_api.PresubmitPromptWarning(
        'The newly created files include Test classes that inherits from base'
        'The newly created files include Test classes that inherits from base'
        ' class. Please do not use inheritance in JUnit4 tests or add new'
        ' 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))
        ' questions.', errors))
    return results
    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'
        'Annotations in android.test.suitebuilder.annotation have been'
        ' deprecated since API level 24. Please use android.support.test.filters'
        ' deprecated since API level 24. Please use android.support.test.filters'
        ' from //third_party/android_support_test_runner:runner_java instead.'
        ' from //third_party/android_support_test_runner:runner_java instead.'
@@ -1825,7 +1825,7 @@ diff --git a/PRESUBMIT.py b/PRESUBMIT.py
    return results
    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 '
          'MDPI assets should be placed in /res/drawable-mdpi/ or '
          '/res/drawable-ldrtl-mdpi/\ninstead of /res/drawable/ and'
          '/res/drawable-ldrtl-mdpi/\ninstead of /res/drawable/ and'
          '/res/drawable-ldrtl/.\n'
          '/res/drawable-ldrtl/.\n'
@@ -1834,7 +1834,7 @@ diff --git a/PRESUBMIT.py b/PRESUBMIT.py
    return results
    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 '
          long_text=('The variables "visibilty" and "test_only" should be '
                     'explicitly listed in forward_variables_from(). For more '
                     'explicitly listed in forward_variables_from(). For more '
                     'details, see:\n'
                     'details, see:\n'
@@ -1843,7 +1843,7 @@ diff --git a/PRESUBMIT.py b/PRESUBMIT.py
                     'build/docs/writing_gn_templates.md'
                     'build/docs/writing_gn_templates.md'
                     '#Using-forward_variables_from'))]
                     '#Using-forward_variables_from'))]
    return []
    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 '
        'LLVMFuzzerInitialize should not be used, unless your fuzz target needs '
        'to access command line arguments passed to the fuzzer. Instead, prefer '
        'to access command line arguments passed to the fuzzer. Instead, prefer '
        'static initialization and shared resources as documented in '
        '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' % (
        'libfuzzer/efficient_fuzzing.md#simplifying-initialization_cleanup.\n' % (
            ', '.join(EXPORTED_SYMBOLS), REQUIRED_HEADER)
            ', '.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(
      errors.append(output_api.PresubmitPromptWarning(
          'It looks like you are trying to commit some images. If these are '
          '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 '
          '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 '
          'binary_size/optimization_advice.md#optimizing-images\nThis check is '
          'FYI only and will not block your CL on the CQ.', image_paths))
          'FYI only and will not block your CL on the CQ.', image_paths))
    return errors
    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):
  def CheckForIPCRules(input_api, output_api):
    """Check for same IPC rules described in
    """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\('
    base_pattern = r'IPC_ENUM_TRAITS\('
    inclusion_pattern = input_api.re.compile(r'(%s)' % base_pattern)
    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(
    results.extend(input_api.canned_checks.CheckTreeIsOpen(
        input_api,
        input_api,
        output_api,
        output_api,
@@ -1879,7 +1879,7 @@ diff --git a/PRESUBMIT.py b/PRESUBMIT.py
  
  
    results.extend(
    results.extend(
        input_api.canned_checks.CheckPatchFormatted(input_api, output_api))
        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:
    if icu_syntax_errors:
      results.append(output_api.PresubmitPromptWarning(
      results.append(output_api.PresubmitPromptWarning(
        'ICU syntax errors were found in the following strings (problems or '
        '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
 diff --git a/chrome/browser/cart/cart_service.cc b/chrome/browser/cart/cart_service.cc
 --- a/chrome/browser/cart/cart_service.cc
 --- a/chrome/browser/cart/cart_service.cc
 +++ b/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.
    // Polulate and add some carts with fake data.
    double time_now = base::Time::Now().ToDoubleT();
    double time_now = base::Time::Now().ToDoubleT();
    cart_db::ChromeCartContentProto dummy_proto1;
    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
 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
 --- a/chrome/browser/chromeos/login/session/user_session_manager.cc
 +++ b/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(
                NavigateParams params(
                    profile,
                    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
 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
 --- a/ios/chrome/browser/geolocation/omnibox_geolocation_controller.mm
 +++ b/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 {
  - (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
 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
 --- a/remoting/host/linux/linux_me2me_host.py
 +++ b/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():
  def main():
    EPILOG = """This script is not intended for use by end-users.  To configure
    EPILOG = """This script is not intended for use by end-users.  To configure
  Chrome Remote Desktop, please install the app from the Chrome
  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(
    parser = argparse.ArgumentParser(
        usage="Usage: %(prog)s [options] [ -- [ X server options ] ]",
        usage="Usage: %(prog)s [options] [ -- [ X server options ] ]",
        epilog=EPILOG)
        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 "
          "WARNING: This system uses GDM. Some GDM versions have a bug that "
          "prevents local login while Chrome Remote Desktop is running. If you "
          "prevents local login while Chrome Remote Desktop is running. If you "
          "run into this issue, you can stop Chrome Remote Desktop by visiting "
          "run into this issue, you can stop Chrome Remote Desktop by visiting "

+ 1 - 1
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
 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
 --- a/content/browser/child_process_security_policy_impl.cc
 +++ b/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)
  #endif  // BUILDFLAG(ENABLE_WEBSOCKETS)
    RegisterWebSafeScheme(url::kFtpScheme);
    RegisterWebSafeScheme(url::kFtpScheme);
    RegisterWebSafeScheme(url::kDataScheme);
    RegisterWebSafeScheme(url::kDataScheme);

+ 2 - 2
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/audio_service_util.h"
  #include "chrome/browser/media/router/media_router_feature.h"
  #include "chrome/browser/media/router/media_router_feature.h"
  #include "chrome/browser/media/webrtc/audio_debug_recordings_handler.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) {
      content::NavigationHandle* handle) {
    std::vector<std::unique_ptr<content::NavigationThrottle>> throttles;
    std::vector<std::unique_ptr<content::NavigationThrottle>> throttles;
  
  
@@ -588,7 +588,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch
  #if BUILDFLAG(IS_CHROMEOS_ASH)
  #if BUILDFLAG(IS_CHROMEOS_ASH)
    MaybeAddThrottle(
    MaybeAddThrottle(
        chromeos::WebTimeLimitNavigationThrottle::MaybeCreateThrottleFor(handle),
        chromeos::WebTimeLimitNavigationThrottle::MaybeCreateThrottleFor(handle),
-@@ -4101,10 +4090,6 @@ ChromeContentBrowserClient::CreateThrottlesForNavigation(
+@@ -4102,10 +4091,6 @@ ChromeContentBrowserClient::CreateThrottlesForNavigation(
                     &throttles);
                     &throttles);
  #endif
  #endif
  
  

+ 11 - 11
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.cc",
      "resource_coordinator/resource_coordinator_parts.h",
      "resource_coordinator/resource_coordinator_parts.h",
      "resource_coordinator/session_restore_policy.cc",
      "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/core",
      "//components/reading_list/features:flags",
      "//components/reading_list/features:flags",
      "//components/renderer_context_menu",
      "//components/renderer_context_menu",
@@ -378,7 +378,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
      "//components/resources",
      "//components/resources",
      "//components/safe_browsing/content/browser",
      "//components/safe_browsing/content/browser",
      "//components/safe_browsing/content/password_protection",
      "//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.cc",
        "profiles/profile_manager_android.h",
        "profiles/profile_manager_android.h",
        "query_tiles/android/tile_provider_factory.cc",
        "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.cc",
        "safe_browsing/android/password_reuse_controller_android.h",
        "safe_browsing/android/password_reuse_controller_android.h",
        "safe_browsing/android/safe_browsing_referring_app_bridge_android.cc",
        "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_commands.h",
        "download/download_crx_util.cc",
        "download/download_crx_util.cc",
        "download/download_crx_util.h",
        "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.cc",
        "download/download_dir_policy_handler.h",
        "download/download_dir_policy_handler.h",
        "download/download_dir_util.cc",
        "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/core/browser:test_support",
      "//components/policy/proto:reporting_record_proto",
      "//components/policy/proto:reporting_record_proto",
      "//components/prefs:test_support",
      "//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/ui_manager.h"
  #include "chrome/browser/safe_browsing/url_checker_delegate_impl.h"
  #include "chrome/browser/safe_browsing/url_checker_delegate_impl.h"
  #include "chrome/browser/safe_browsing/url_lookup_service_factory.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 {
  class CertificateReportingServiceCertReporter : public SSLCertReporter {
   public:
   public:
    explicit CertificateReportingServiceCertReporter(
    explicit CertificateReportingServiceCertReporter(
@@ -612,7 +612,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch
  };
  };
  
  
  #if BUILDFLAG(ENABLE_EXTENSIONS)
  #if BUILDFLAG(ENABLE_EXTENSIONS)
-@@ -1490,7 +1484,9 @@ void ChromeContentBrowserClient::PostAfterStartupTask(
+@@ -1491,7 +1485,9 @@ void ChromeContentBrowserClient::PostAfterStartupTask(
    InitNetworkContextsParentDirectory();
    InitNetworkContextsParentDirectory();
  
  
    DCHECK_CURRENTLY_ON(BrowserThread::UI);
    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() {
  bool ChromeContentBrowserClient::IsBrowserStartupComplete() {
-@@ -2206,7 +2202,7 @@ void ChromeContentBrowserClient::AppendExtraCommandLineSwitches(
+@@ -2207,7 +2203,7 @@ void ChromeContentBrowserClient::AppendExtraCommandLineSwitches(
    }
    }
  #elif defined(OS_POSIX)
  #elif defined(OS_POSIX)
  #if defined(OS_ANDROID)
  #if defined(OS_ANDROID)
@@ -631,7 +631,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch
  #else
  #else
    bool enable_crash_reporter = false;
    bool enable_crash_reporter = false;
    if (crash_reporter::IsCrashpadEnabled()) {
    if (crash_reporter::IsCrashpadEnabled()) {
-@@ -2326,6 +2322,9 @@ void ChromeContentBrowserClient::AppendExtraCommandLineSwitches(
+@@ -2327,6 +2323,9 @@ void ChromeContentBrowserClient::AppendExtraCommandLineSwitches(
            instant_service->IsInstantProcess(process->GetID())) {
            instant_service->IsInstantProcess(process->GetID())) {
          command_line->AppendSwitch(switches::kInstantProcess);
          command_line->AppendSwitch(switches::kInstantProcess);
        }
        }
@@ -641,7 +641,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch
  #endif
  #endif
  
  
        if (prefs->HasPrefPath(prefs::kAllowDinosaurEasterEgg) &&
        if (prefs->HasPrefPath(prefs::kAllowDinosaurEasterEgg) &&
-@@ -4152,14 +4151,13 @@ ChromeContentBrowserClient::CreateThrottlesForNavigation(
+@@ -4153,14 +4152,13 @@ ChromeContentBrowserClient::CreateThrottlesForNavigation(
                     &throttles);
                     &throttles);
  #endif
  #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
  // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch
  // of lacros-chrome is complete.
  // of lacros-chrome is complete.
-@@ -5341,6 +5339,7 @@ ChromeContentBrowserClient::GetSafeBrowsingUrlCheckerDelegate(
+@@ -5342,6 +5340,7 @@ ChromeContentBrowserClient::GetSafeBrowsingUrlCheckerDelegate(
      bool should_check_on_sb_disabled) {
      bool should_check_on_sb_disabled) {
    DCHECK_CURRENTLY_ON(BrowserThread::IO);
    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
    // Should not bypass safe browsing check if the check is for enterprise
    // lookup.
    // lookup.
    if (!safe_browsing_enabled_for_profile && !should_check_on_sb_disabled)
    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_;
    return safe_browsing_url_checker_delegate_;

+ 2 - 2
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
 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
 --- a/third_party/blink/renderer/core/dom/document.cc
 +++ b/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"
    // Strip the fragment directive from the URL fragment. E.g. "#id:~:text=a"
    // --> "#id". See https://github.com/WICG/scroll-to-text-fragment.
    // --> "#id". See https://github.com/WICG/scroll-to-text-fragment.
    String fragment = new_url.FragmentIdentifier();
    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
      else
        new_url.SetFragmentIdentifier(fragment.Substring(0, start_pos));
        new_url.SetFragmentIdentifier(fragment.Substring(0, start_pos));
    }
    }

+ 4 - 4
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
 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
 --- a/third_party/blink/renderer/core/dom/document.cc
 +++ b/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/root_scroller_controller.h"
  #include "third_party/blink/renderer/core/page/scrolling/scroll_state_callback.h"
  #include "third_party/blink/renderer/core/page/scrolling/scroll_state_callback.h"
  #include "third_party/blink/renderer/core/page/scrolling/scrolling_coordinator.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/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_anchor.h"
  #include "third_party/blink/renderer/core/page/scrolling/text_fragment_selector_generator.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/string_buffer.h"
  #include "third_party/blink/renderer/platform/wtf/text/text_encoding_registry.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
  #ifndef NDEBUG
  using WeakDocumentSet = blink::HeapHashSet<blink::WeakMember<blink::Document>>;
  using WeakDocumentSet = blink::HeapHashSet<blink::WeakMember<blink::Document>>;
  static WeakDocumentSet& liveDocumentSet();
  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;
        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() {
  void Document::FinishedParsing() {
    DCHECK(!GetScriptableDocumentParser() || !parser_->IsParsing());
    DCHECK(!GetScriptableDocumentParser() || !parser_->IsParsing());
    DCHECK(!GetScriptableDocumentParser() || ready_state_ != kLoading);
    DCHECK(!GetScriptableDocumentParser() || ready_state_ != kLoading);
-@@ -6946,6 +7004,10 @@ void Document::FinishedParsing() {
+@@ -6948,6 +7006,10 @@ void Document::FinishedParsing() {
  
  
      frame->Loader().FinishedParsing();
      frame->Loader().FinishedParsing();
  
  

+ 1 - 1
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
 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
 --- a/chrome/browser/chrome_content_browser_client.cc
 +++ b/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(
  void ChromeContentBrowserClient::RegisterProfilePrefs(
      user_prefs::PrefRegistrySyncable* registry) {
      user_prefs::PrefRegistrySyncable* registry) {
    registry->RegisterBooleanPref(prefs::kDisable3DAPIs, false);
    registry->RegisterBooleanPref(prefs::kDisable3DAPIs, false);

+ 2 - 2
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
 diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
 --- a/chrome/browser/BUILD.gn
 --- a/chrome/browser/BUILD.gn
 +++ b/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:device_features",
      "//services/device/public/cpp/serial:switches",
      "//services/device/public/cpp/serial:switches",
      "//services/device/public/cpp/usb",
      "//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 "base/time/time.h"
  #include "cc/input/overscroll_behavior.h"
  #include "cc/input/overscroll_behavior.h"
  #include "cc/input/scroll_snap_data.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()
  #if DCHECK_IS_ON()
    AssertLayoutTreeUpdated(*this);
    AssertLayoutTreeUpdated(*this);
  #endif
  #endif

+ 8 - 8
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
 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
 --- 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
 +++ 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.profiles.Profile;
  import org.chromium.chrome.browser.signin.services.IdentityServicesProvider;
  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.chrome.browser.sync.ProfileSyncService;
  import org.chromium.components.sync.ModelType;
  import org.chromium.components.sync.ModelType;
  
  
  /**
  /**
-@@ -124,9 +123,7 @@ public class PriceTrackingUtilities {
+@@ -125,9 +124,7 @@ public class PriceTrackingUtilities {
      }
      }
  
  
      private static boolean isOpenTabsSyncEnabled() {
      private static boolean isOpenTabsSyncEnabled() {
@@ -194,7 +194,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser
 +        return false;
 +        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
 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
 --- 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
 +++ 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
 diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
 --- a/chrome/browser/BUILD.gn
 --- a/chrome/browser/BUILD.gn
 +++ b/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/service_tab_launcher.h",
        "android/shortcut_helper.cc",
        "android/shortcut_helper.cc",
        "android/shortcut_helper.h",
        "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_metrics_utils.cc",
        "android/signin/signin_promo_util_android.cc",
        "android/signin/signin_promo_util_android.cc",
        "android/signin/signin_promo_util_android.h",
        "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",
        "sharing/sharing_service_proxy_android.h",
        "shell_integration_android.cc",
        "shell_integration_android.cc",
        "signin/identity_services_provider_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.cc",
        "ssl/chrome_security_state_client.h",
        "ssl/chrome_security_state_client.h",
        "ssl/chrome_security_state_model_delegate.cc",
        "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/glue/synced_window_delegates_getter_android.h",
        "sync/profile_sync_service_android.cc",
        "sync/profile_sync_service_android.cc",
        "sync/profile_sync_service_android.h",
        "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.cc",
        "sync/trusted_vault_client_android.h",
        "sync/trusted_vault_client_android.h",
        "tab/web_contents_state.cc",
        "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/logout_tab_helper.h",
        "signin/process_dice_header_delegate_impl.cc",
        "signin/process_dice_header_delegate_impl.cc",
        "signin/process_dice_header_delegate_impl.h",
        "signin/process_dice_header_delegate_impl.h",

+ 13 - 1
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
 Subject: Remove weblayer dependency on Play Services
 
 
 ---
 ---
+ weblayer/browser/java/BUILD.gn  | 1 -
  weblayer/shell/android/BUILD.gn | 3 ---
  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
 diff --git a/weblayer/shell/android/BUILD.gn b/weblayer/shell/android/BUILD.gn
 --- a/weblayer/shell/android/BUILD.gn
 --- a/weblayer/shell/android/BUILD.gn
 +++ b/weblayer/shell/android/BUILD.gn
 +++ b/weblayer/shell/android/BUILD.gn

+ 11 - 11
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:
              case ContentSettingsType.IDLE_DETECTION:
                  return "idle_detection_permission_list";
                  return "idle_detection_permission_list";
              case ContentSettingsType.JAVASCRIPT:
              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) {
 +            } else if (type == ContentSettingsType.AUTOPLAY) {
 +               setUpAutoplayPreference(preference);
 +               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
 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
 --- 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
 +++ 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) {
 +        } else if (type == ContentSettingsType.AUTOPLAY) {
 +            // It is possible to set the permission without having an existing exception,
 +            // It is possible to set the permission without having an existing exception,

+ 63 - 65
build/patches/Show-site-settings-for-cookies.patch → build/patches/Show-site-settings-for-cookies-javascript-and-ads.patch

@@ -1,31 +1,29 @@
 From: csagan5 <32685696+csagan5@users.noreply.github.com>
 From: csagan5 <32685696+csagan5@users.noreply.github.com>
 Date: Sat, 28 Dec 2019 10:23:04 +0100
 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
 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
 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
 --- 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
 +++ 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);
                  setUpLocationPreference(preference);
              } else if (type == ContentSettingsType.NOTIFICATIONS) {
              } 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() {
      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()
 -        boolean adBlockingActivated = SiteSettingsCategory.adsCategoryEnabled()
 -                && WebsitePreferenceBridge.getAdBlockingActivated(
 -                && WebsitePreferenceBridge.getAdBlockingActivated(
 -                        getSiteSettingsDelegate().getBrowserContextHandle(),
 -                        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;
 -                && findPreference(getPreferenceKey(ContentSettingsType.ADS)) != null;
 -
 -
 -        if (!adBlockingActivated) {
 -        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() {
      private SiteSettingsCategory getWarningCategory() {
-@@ -987,15 +978,15 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment
+@@ -987,17 +981,35 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment
          @Nullable
          @Nullable
          Integer currentValue =
          Integer currentValue =
                  mSite.getContentSetting(browserContextHandle, ContentSettingsType.JAVASCRIPT);
                  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
 +        // Always show the Javascript permission
 +        if (currentValue == null) {
 +        if (currentValue == null) {
 +            currentValue = WebsitePreferenceBridge.isCategoryEnabled(
 +            currentValue = WebsitePreferenceBridge.isCategoryEnabled(
-+                                   getSiteSettingsDelegate().getBrowserContextHandle(),
-+                                   ContentSettingsType.JAVASCRIPT)
++                                   browserContextHandle, ContentSettingsType.JAVASCRIPT)
 +                    ? ContentSettingValues.ALLOW
 +                    ? ContentSettingValues.ALLOW
 +                    : ContentSettingValues.BLOCK;
 +                    : 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
          @ContentSettingValues
          @Nullable
          @Nullable
          Integer permission = mSite.getContentSetting(browserContextHandle, ContentSettingsType.ADS);
          Integer permission = mSite.getContentSetting(browserContextHandle, ContentSettingsType.ADS);
--
+ 
 -        // If |permission| is null, there is no explicit (non-default) permission set for this site.
 -        // 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
 -        // If the site is not considered a candidate for blocking, do the standard thing and remove
 -        // the preference.
 -        // 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
          // However, if the blocking is activated, we still want to show the permission, even if it
          // is in the default state.
          // is in the default state.
          if (permission == null) {
          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
 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
 --- 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
 +++ 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) {
              if (exception == null) {
                  exception = new ContentSettingException(ContentSettingsType.ADS,
                  exception = new ContentSettingException(ContentSettingsType.ADS,
 -                        getAddress().getOrigin(), ContentSettingValues.BLOCK, "");
 -                        getAddress().getOrigin(), ContentSettingValues.BLOCK, "");
 +                        getAddress().getOrigin(), value, "");
 +                        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) {
 +        } else if (type == ContentSettingsType.COOKIES) {
 +            // It is possible to set the permission without having an existing exception
 +            // It is possible to set the permission without having an existing exception
 +            if (exception == null) {
 +            if (exception == null) {
 +                exception = new ContentSettingException(ContentSettingsType.COOKIES,
 +                exception = new ContentSettingException(ContentSettingsType.COOKIES,
 +                        getAddress().getOrigin(), value, "");
 +                        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
 2.17.1
 
 

+ 4 - 4
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:
              case ContentSettingsType.AR:
                  return "ar_permission_list";
                  return "ar_permission_list";
              case ContentSettingsType.MEDIASTREAM_CAMERA:
              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;
          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);
          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) {
              @ContentSettingValues @Nullable Integer value, boolean isEmbargoed) {
          ListPreference listPreference = (ListPreference) preference;
          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
          // TODO(crbug.com/735110): Figure out if this is the correct thing to do - here we are
          // effectively treating non-ALLOW values as BLOCK.
          // effectively treating non-ALLOW values as BLOCK.
          int index = (value == ContentSettingValues.ALLOW ? 0 : 1);
          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));
              preference.setSummary(getDSECategorySummary(permission));
          } else {
          } else {
              preference.setSummary(
              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
 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
 --- 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
 +++ 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 {
              } else {
                  RecordUserAction.record("SoundContentSetting.UnmuteBy.SiteSettings");
                  RecordUserAction.record("SoundContentSetting.UnmuteBy.SiteSettings");
              }
              }

+ 38 - 0
build/patches/Use-64-bit-WebView-processes.patch

@@ -0,0 +1,38 @@
+From: Daniel Micay <danielmicay@gmail.com>
+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
+

+ 2 - 2
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
 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
 --- a/chrome/browser/chrome_content_browser_client.cc
 +++ b/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 GetUserAgentMetadata() {
    blink::UserAgentMetadata metadata;
    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.brand_version_list = GetBrandVersionList();
    metadata.full_version = version_info::GetVersionNumber();
    metadata.full_version = version_info::GetVersionNumber();
    metadata.platform = GetPlatformForUAMetadata();
    metadata.platform = GetPlatformForUAMetadata();
-@@ -2378,6 +2385,7 @@ void ChromeContentBrowserClient::AppendExtraCommandLineSwitches(
+@@ -2379,6 +2386,7 @@ void ChromeContentBrowserClient::AppendExtraCommandLineSwitches(
              switches::kDisableTargetBlankImpliesNoOpener);
              switches::kDisableTargetBlankImpliesNoOpener);
        }
        }