From eea4b62c6ceabd8d949bc1c75453832d47e06ae8 Mon Sep 17 00:00:00 2001 From: Carmelo Messina Date: Tue, 23 Jul 2024 17:06:49 +0200 Subject: [PATCH] Patches (fixed) for v127 (#1293) --- build/cromite_patches_list.txt | 1 - .../Add-a-proxy-configuration-page.patch | 9 +- .../Add-bookmark-import-export-actions.patch | 14 +- build/patches/Add-cromite-flags-support.patch | 27 +- ...Add-lifetime-options-for-permissions.patch | 15 +- .../Add-option-to-disable-snapshots.patch | 2 +- .../Add-option-to-force-tablet-UI.patch | 13 +- .../Add-setting-to-clear-data-on-exit.patch | 19 +- ...Block-gateway-attacks-via-websockets.patch | 9 +- .../Bookmarks-select-all-menu-entry.patch | 8 +- build/patches/Bromite-auto-updater.patch | 35 +- build/patches/Cromite-Branding.patch | 13 +- build/patches/Disable-GSA-by-default.patch | 67 ++- .../Disable-conversion-measurement-api.patch | 20 +- build/patches/Disable-safety-check.patch | 13 +- .../Enable-native-Android-autofill.patch | 15 +- .../Enable-network-isolation-features.patch | 12 +- ...le-search-engine-settings-desktop-ui.patch | 111 ++++- .../Experimental-user-scripts-support.patch | 19 +- build/patches/Eyeo-Adblock-for-Cromite.patch | 73 +-- .../patches/Improve-the-browser-sandbox.patch | 12 +- .../Move-navigation-bar-to-bottom.patch | 287 +++++------- .../Multiple-fingerprinting-mitigations.patch | 11 +- .../patches/Partition-HSTS-cache-by-NAK.patch | 26 +- .../Remove-binary-blob-integrations.patch | 11 +- ...ore-BookmarkToolbar-setCurrentFolder.patch | 90 +++- .../Restore-LastTabStandingTracker.patch | 2 +- .../Restore-Simplified-NTP-launch.patch | 434 +++++++++++++++++- ...l-of-execution-context-address-space.patch | 46 +- .../Use-4-tile-rows-never-show-logo.patch | 70 --- build/patches/add-browser-policy.patch | 7 +- ...eta-118.0.5993.48-chrome_integration.patch | 2 +- ...ed-chromium-no-special-hosts-domains.patch | 32 +- 33 files changed, 1051 insertions(+), 474 deletions(-) delete mode 100644 build/patches/Use-4-tile-rows-never-show-logo.patch diff --git a/build/cromite_patches_list.txt b/build/cromite_patches_list.txt index 41181e43..3b10f6e8 100644 --- a/build/cromite_patches_list.txt +++ b/build/cromite_patches_list.txt @@ -70,7 +70,6 @@ autofill-miscellaneous.patch Enable-native-Android-autofill.patch translate-disable-fetching-of-languages-from-server.patch Offer-builtin-autocomplete-for-chrome-flags.patch -Use-4-tile-rows-never-show-logo.patch Disable-various-metrics.patch Enable-StrictOriginIsolation-and-SitePerProcess.patch Use-64-bit-WebView-processes.patch diff --git a/build/patches/Add-a-proxy-configuration-page.patch b/build/patches/Add-a-proxy-configuration-page.patch index 552e5299..354cb3b0 100644 --- a/build/patches/Add-a-proxy-configuration-page.patch +++ b/build/patches/Add-a-proxy-configuration-page.patch @@ -30,7 +30,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html chrome/browser/resources/proxy_config.js | 278 +++++++++++++ chrome/browser/ui/BUILD.gn | 2 + .../webui/chrome_web_ui_controller_factory.cc | 3 + - chrome/browser/ui/webui/proxy_config_ui.cc | 393 ++++++++++++++++++ + chrome/browser/ui/webui/proxy_config_ui.cc | 392 ++++++++++++++++++ chrome/browser/ui/webui/proxy_config_ui.h | 31 ++ chrome/common/webui_url_constants.cc | 4 + chrome/common/webui_url_constants.h | 2 + @@ -40,7 +40,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../proxy_config/proxy_policy_handler.cc | 2 +- net/proxy_resolution/proxy_config.cc | 51 ++- net/proxy_resolution/proxy_config.h | 3 + - 25 files changed, 980 insertions(+), 17 deletions(-) + 25 files changed, 979 insertions(+), 17 deletions(-) create mode 100644 chrome/browser/resources/proxy_config.css create mode 100644 chrome/browser/resources/proxy_config.html create mode 100644 chrome/browser/resources/proxy_config.js @@ -694,7 +694,7 @@ diff --git a/chrome/browser/ui/webui/proxy_config_ui.cc b/chrome/browser/ui/webu new file mode 100644 --- /dev/null +++ b/chrome/browser/ui/webui/proxy_config_ui.cc -@@ -0,0 +1,393 @@ +@@ -0,0 +1,392 @@ +/* + This file is part of Bromite. + @@ -895,8 +895,7 @@ new file mode 100644 + state.SetByDottedPath("config.rules.fallback_proxies", base::Value(omitDirect(rules.fallback_proxies.ToPacString()))); + break; + default: -+ NOTREACHED(); -+ break; ++ NOTREACHED_NORETURN(); + } + state.SetByDottedPath("config.rules.type", base::Value(type)); + state.SetByDottedPath("config.rules.bypass_rules", base::Value(rules.bypass_rules.ToString())); diff --git a/build/patches/Add-bookmark-import-export-actions.patch b/build/patches/Add-bookmark-import-export-actions.patch index da9c1aae..4467b17c 100644 --- a/build/patches/Add-bookmark-import-export-actions.patch +++ b/build/patches/Add-bookmark-import-export-actions.patch @@ -645,7 +645,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbar.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbar.java --- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbar.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbar.java -@@ -95,6 +95,17 @@ public class BookmarkToolbar extends SelectableListToolbar +@@ -101,6 +101,17 @@ public class BookmarkToolbar extends SelectableListToolbar setOnMenuItemClickListener(dragEnabled ? null : this); } @@ -663,7 +663,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm void setEditButtonVisible(boolean visible) { mEditButtonVisible = visible; getMenu().findItem(R.id.edit_menu_id).setVisible(visible); -@@ -171,6 +182,13 @@ public class BookmarkToolbar extends SelectableListToolbar +@@ -177,6 +188,13 @@ public class BookmarkToolbar extends SelectableListToolbar void setCurrentFolder(BookmarkId folder) { mCurrentFolder = mBookmarkModel.getBookmarkById(folder); @@ -677,7 +677,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm } void setNavigateBackRunnable(Runnable navigateBackRunnable) { -@@ -190,6 +208,13 @@ public class BookmarkToolbar extends SelectableListToolbar +@@ -196,6 +214,13 @@ public class BookmarkToolbar extends SelectableListToolbar @Override public boolean onMenuItemClick(MenuItem menuItem) { hideOverflowMenu(); @@ -691,7 +691,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm return mMenuIdClickedFunction.apply(menuItem.getItemId()); } -@@ -205,6 +230,9 @@ public class BookmarkToolbar extends SelectableListToolbar +@@ -211,6 +236,9 @@ public class BookmarkToolbar extends SelectableListToolbar protected void showNormalView() { super.showNormalView(); @@ -718,7 +718,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarProperties.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarProperties.java --- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarProperties.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarProperties.java -@@ -74,6 +74,10 @@ class BookmarkToolbarProperties { +@@ -81,6 +81,10 @@ class BookmarkToolbarProperties { static final WritableObjectPropertyKey NAVIGATE_BACK_RUNNABLE = new WritableObjectPropertyKey<>(); @@ -729,7 +729,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm static final PropertyKey[] ALL_KEYS = { BOOKMARK_OPENER, -@@ -101,6 +105,8 @@ class BookmarkToolbarProperties { +@@ -108,6 +112,8 @@ class BookmarkToolbarProperties { SELECTION_MODE_SHOW_OPEN_IN_INCOGNITO, SELECTION_MODE_SHOW_MOVE, SELECTION_MODE_SHOW_MARK_READ, @@ -742,7 +742,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarViewBinder.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarViewBinder.java --- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarViewBinder.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarViewBinder.java -@@ -54,6 +54,12 @@ class BookmarkToolbarViewBinder { +@@ -56,6 +56,12 @@ class BookmarkToolbarViewBinder { model.get(BookmarkToolbarProperties.CHECKED_VIEW_MENU_ID)); } else if (key == BookmarkToolbarProperties.CURRENT_FOLDER) { bookmarkToolbar.setCurrentFolder(model.get(BookmarkToolbarProperties.CURRENT_FOLDER)); diff --git a/build/patches/Add-cromite-flags-support.patch b/build/patches/Add-cromite-flags-support.patch index c3f7bb7a..fb9a1b65 100644 --- a/build/patches/Add-cromite-flags-support.patch +++ b/build/patches/Add-cromite-flags-support.patch @@ -17,7 +17,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html base/BUILD.gn | 4 +- base/android/feature_map.cc | 5 + .../base/cached_flags/CachedFlag.java | 8 +- - base/feature_list.cc | 78 +++++++++ + base/feature_list.cc | 76 +++++++++ base/feature_list.h | 72 ++++++++- build/android/gyp/java_cpp_features.py | 17 ++ chrome/android/java/res/values/values.xml | 3 + @@ -46,7 +46,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html components/components_strings.grd | 1 + .../content_settings/core/common/features.cc | 1 + .../placeholder.txt | 1 + - components/flags_ui/flags_state.cc | 56 ++++++- + components/flags_ui/flags_state.cc | 55 ++++++- components/flags_ui/resources/app.html | 42 ++++- components/flags_ui/resources/app.ts | 41 ++++- components/flags_ui/resources/experiment.html | 7 +- @@ -90,7 +90,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html services/network/public/cpp/features.h | 1 + third_party/blink/common/features.cc | 1 + third_party/blink/public/common/features.h | 1 + - 76 files changed, 741 insertions(+), 22 deletions(-) + 76 files changed, 738 insertions(+), 22 deletions(-) create mode 100644 chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/cromite/include_all_directory.java create mode 100644 chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/cromite/java_template/CromiteCachedFlag.java.tmpl create mode 100644 chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/placeholder.txt @@ -215,7 +215,7 @@ diff --git a/base/feature_list.cc b/base/feature_list.cc namespace { // Pointer to the FeatureList instance singleton that was set via -@@ -472,6 +497,48 @@ bool FeatureList::IsEnabled(const Feature& feature) { +@@ -472,6 +497,46 @@ bool FeatureList::IsEnabled(const Feature& feature) { return g_feature_list_instance->IsFeatureEnabled(feature); } @@ -236,8 +236,7 @@ diff --git a/base/feature_list.cc b/base/feature_list.cc + return key; + } + } -+ NOTREACHED(); -+ return nullptr; ++ NOTREACHED_NORETURN(); +} + +// static @@ -257,14 +256,13 @@ diff --git a/base/feature_list.cc b/base/feature_list.cc + return value == base::FEATURE_ENABLED_BY_DEFAULT; + } + } -+ NOTREACHED(); -+ return false; ++ NOTREACHED_NORETURN(); +} + // static bool FeatureList::IsValidFeatureOrFieldTrialName(std::string_view name) { return IsStringASCII(name) && name.find_first_of(",<*") == std::string::npos; -@@ -718,6 +785,17 @@ void FeatureList::VisitFeaturesAndParams(FeatureVisitor& visitor) { +@@ -718,6 +783,17 @@ void FeatureList::VisitFeaturesAndParams(FeatureVisitor& visitor) { void FeatureList::FinalizeInitialization() { DCHECK(!initialized_); @@ -971,7 +969,7 @@ new file mode 100644 diff --git a/components/flags_ui/flags_state.cc b/components/flags_ui/flags_state.cc --- a/components/flags_ui/flags_state.cc +++ b/components/flags_ui/flags_state.cc -@@ -359,7 +359,22 @@ void FlagsState::GetSwitchesAndFeaturesFromFlags( +@@ -359,7 +359,21 @@ void FlagsState::GetSwitchesAndFeaturesFromFlags( for (const std::string& entry_name : enabled_entries) { const auto& entry_it = name_to_switch_map.find(entry_name); @@ -989,13 +987,12 @@ diff --git a/components/flags_ui/flags_state.cc b/components/flags_ui/flags_stat + continue; + } + } -+ NOTREACHED(); -+ continue; ++ NOTREACHED_NORETURN(); + } const SwitchEntry& entry = entry_it->second; if (!entry.switch_name.empty()) -@@ -676,6 +691,27 @@ void FlagsState::GetFlagFeatureEntries( +@@ -676,6 +690,27 @@ void FlagsState::GetFlagFeatureEntries( data.Set("links", std::move(links)); } @@ -1023,7 +1020,7 @@ diff --git a/components/flags_ui/flags_state.cc b/components/flags_ui/flags_stat switch (entry.type) { case FeatureEntry::SINGLE_VALUE: case FeatureEntry::SINGLE_DISABLE_VALUE: -@@ -804,6 +840,16 @@ void FlagsState::AddSwitchesToCommandLine( +@@ -804,6 +839,16 @@ void FlagsState::AddSwitchesToCommandLine( for (const std::string& entry_name : enabled_entries) { const auto& entry_it = name_to_switch_map.find(entry_name); if (entry_it == name_to_switch_map.end()) { @@ -1040,7 +1037,7 @@ diff --git a/components/flags_ui/flags_state.cc b/components/flags_ui/flags_stat NOTREACHED_IN_MIGRATION(); continue; } -@@ -1056,6 +1102,14 @@ const FeatureEntry* FlagsState::FindFeatureEntryByName( +@@ -1056,6 +1101,14 @@ const FeatureEntry* FlagsState::FindFeatureEntryByName( bool FlagsState::IsSupportedFeature(const FlagsStorage* storage, const std::string& name, int platform_mask) const { diff --git a/build/patches/Add-lifetime-options-for-permissions.patch b/build/patches/Add-lifetime-options-for-permissions.patch index c5fb6909..df6a08fd 100644 --- a/build/patches/Add-lifetime-options-for-permissions.patch +++ b/build/patches/Add-lifetime-options-for-permissions.patch @@ -57,6 +57,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../one_time_permissions_tracker.h | 5 +- .../one_time_permissions_tracker_factory.cc | 2 +- .../permissions/embedded_permission_prompt.cc | 2 +- + ...exclusive_access_permission_prompt_view.cc | 2 +- .../permission_prompt_bubble_base_view.cc | 2 +- .../site_settings/PermissionInfo.java | 1 + .../site_settings/SingleWebsiteSettings.java | 9 ++ @@ -86,7 +87,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html components/permissions/permission_request.h | 16 +++- .../permissions/permission_request_manager.cc | 45 ++++++---- .../permissions/permission_request_manager.h | 11 ++- - 34 files changed, 488 insertions(+), 61 deletions(-) + 35 files changed, 489 insertions(+), 62 deletions(-) diff --git a/chrome/browser/permissions/last_tab_standing_tracker.cc b/chrome/browser/permissions/last_tab_standing_tracker.cc --- a/chrome/browser/permissions/last_tab_standing_tracker.cc @@ -237,6 +238,18 @@ diff --git a/chrome/browser/ui/views/permissions/embedded_permission_prompt.cc b break; case Action::kDeny: delegate_->Deny(); +diff --git a/chrome/browser/ui/views/permissions/exclusive_access_permission_prompt_view.cc b/chrome/browser/ui/views/permissions/exclusive_access_permission_prompt_view.cc +--- a/chrome/browser/ui/views/permissions/exclusive_access_permission_prompt_view.cc ++++ b/chrome/browser/ui/views/permissions/exclusive_access_permission_prompt_view.cc +@@ -99,7 +99,7 @@ void ExclusiveAccessPermissionPromptView::RunButtonCallback(int button_id) { + } + ButtonType button = GetButtonType(button_id); + if (button == ButtonType::kAllowThisTime) { +- delegate_->AcceptThisTime(); ++ delegate_->AcceptThisTime(content_settings::mojom::LifetimeMode::ONLY_THIS_TIME); + } else if (button == ButtonType::kAlwaysAllow) { + delegate_->Accept(); + } else if (button == ButtonType::kNeverAllow) { diff --git a/chrome/browser/ui/views/permissions/permission_prompt_bubble_base_view.cc b/chrome/browser/ui/views/permissions/permission_prompt_bubble_base_view.cc --- a/chrome/browser/ui/views/permissions/permission_prompt_bubble_base_view.cc +++ b/chrome/browser/ui/views/permissions/permission_prompt_bubble_base_view.cc diff --git a/build/patches/Add-option-to-disable-snapshots.patch b/build/patches/Add-option-to-disable-snapshots.patch index d9a9b992..60c1eb9f 100644 --- a/build/patches/Add-option-to-disable-snapshots.patch +++ b/build/patches/Add-option-to-disable-snapshots.patch @@ -122,7 +122,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting /** Fragment to keep track of the all the privacy related preferences. */ public class PrivacySettings extends ChromeBaseSettingsFragment - implements Preference.OnPreferenceChangeListener, FragmentSettingsLauncher { -+ implements Preference.OnPreferenceChangeListener, FragmentSettingsLauncher, INeedSnackbarManage { ++ implements Preference.OnPreferenceChangeListener, FragmentSettingsLauncher, INeedSnackbarManager { + + private SnackbarManager mSnackbarManager; + private Snackbar mSnackbar; diff --git a/build/patches/Add-option-to-force-tablet-UI.patch b/build/patches/Add-option-to-force-tablet-UI.patch index c6982282..7fde5ed0 100644 --- a/build/patches/Add-option-to-force-tablet-UI.patch +++ b/build/patches/Add-option-to-force-tablet-UI.patch @@ -21,7 +21,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../preferences/ChromePreferenceKeys.java | 1 + .../preferences/ChromeSharedPreferences.java | 8 ++++++ .../LegacyChromePreferenceKeys.java | 1 + - .../SingleTabSwitcherOnNtpMediator.java | 3 +- + .../SingleTabSwitcherOnNtpMediator.java | 1 + .../omnibox/LocationBarCoordinator.java | 2 +- .../strings/android_chrome_strings.grd | 7 +++++ .../java/res/layout/control_container.xml | 12 ++++---- @@ -36,7 +36,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../res/xml/accessibility_preferences.xml | 5 ++++ .../AccessibilitySettingsDelegate.java | 11 ++++++++ .../chromium/ui/base/DeviceFormFactor.java | 9 ++++++ - 32 files changed, 168 insertions(+), 33 deletions(-) + 32 files changed, 167 insertions(+), 32 deletions(-) diff --git a/chrome/android/features/start_surface/java/src/org/chromium/chrome/features/start_surface/StartSurfaceMediator.java b/chrome/android/features/start_surface/java/src/org/chromium/chrome/features/start_surface/StartSurfaceMediator.java --- a/chrome/android/features/start_surface/java/src/org/chromium/chrome/features/start_surface/StartSurfaceMediator.java @@ -385,15 +385,6 @@ diff --git a/chrome/browser/single_tab/android/java/src/org/chromium/chrome/brow import org.chromium.ui.modelutil.PropertyModel; import org.chromium.url.GURL; -@@ -87,7 +88,7 @@ public class SingleTabSwitcherOnNtpMediator { - mSingleTabCardClickedCallback = singleTabCardClickedCallback; - mSeeMoreLinkClickedCallback = seeMoreLinkClickedCallback; - mUiConfig = uiConfig; -- mIsTablet = isTablet; -+ mIsTablet = isTablet && !DeviceFormFactor.isForceTabletUI(); - mModuleDelegate = moduleDelegate; - - mMarginForPhoneAndNarrowWindowOnTablet = diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java diff --git a/build/patches/Add-setting-to-clear-data-on-exit.patch b/build/patches/Add-setting-to-clear-data-on-exit.patch index d57938cb..9b26147d 100644 --- a/build/patches/Add-setting-to-clear-data-on-exit.patch +++ b/build/patches/Add-setting-to-clear-data-on-exit.patch @@ -22,6 +22,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../clear_browsing_data_dialog.ts | 2 + .../strings/android_chrome_strings.grd | 3 + .../settings_localized_strings_provider.cc | 1 + + .../content/browsing_data_helper.cc | 5 +- .../core/browsing_data_policies_utils.cc | 20 ++--- .../core/browsing_data_policies_utils.h | 11 +++ .../browsing_data/core/browsing_data_utils.cc | 31 ++++++++ @@ -30,7 +31,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html components/browsing_data/core/pref_names.h | 10 +++ .../search_engines/template_url_service.cc | 1 + content/browser/storage_partition_impl.cc | 1 + - 26 files changed, 312 insertions(+), 17 deletions(-) + 27 files changed, 316 insertions(+), 18 deletions(-) create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFragmentAtStart.java diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni @@ -534,6 +535,22 @@ diff --git a/chrome/browser/ui/webui/settings/settings_localized_strings_provide {"titleAndCount", IDS_SETTINGS_TITLE_AND_COUNT}, {"safeBrowsingEnableExtendedReportingDesc", IDS_SETTINGS_SAFEBROWSING_ENABLE_REPORTING_DESC}, +diff --git a/components/browsing_data/content/browsing_data_helper.cc b/components/browsing_data/content/browsing_data_helper.cc +--- a/components/browsing_data/content/browsing_data_helper.cc ++++ b/components/browsing_data/content/browsing_data_helper.cc +@@ -40,8 +40,11 @@ bool WebsiteSettingsFilterAdapter( + // this filter is used for is DURABLE_STORAGE, which also only uses + // origin-scoped patterns. Such patterns can be directly translated to a GURL. + GURL url(primary_pattern.ToString()); +- DCHECK(url.is_valid()) << "url: '" << url.possibly_invalid_spec() << "' " ++ if (!url.is_valid()) { ++ LOG(INFO) << "url: '" << url.possibly_invalid_spec() << "' " + << "pattern: '" << primary_pattern.ToString() << "'"; ++ return true; ++ } + return predicate.Run(url); + } + diff --git a/components/browsing_data/core/browsing_data_policies_utils.cc b/components/browsing_data/core/browsing_data_policies_utils.cc --- a/components/browsing_data/core/browsing_data_policies_utils.cc +++ b/components/browsing_data/core/browsing_data_policies_utils.cc diff --git a/build/patches/Block-gateway-attacks-via-websockets.patch b/build/patches/Block-gateway-attacks-via-websockets.patch index f858c10f..d99bb1c8 100644 --- a/build/patches/Block-gateway-attacks-via-websockets.patch +++ b/build/patches/Block-gateway-attacks-via-websockets.patch @@ -7,7 +7,7 @@ This approach is not comprehensive, see also: License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- - .../execution_context/execution_context.cc | 16 ++++++++++ + .../execution_context/execution_context.cc | 15 +++++++++ .../execution_context/execution_context.h | 1 + .../renderer/core/loader/base_fetch_context.h | 1 + .../core/loader/frame_fetch_context.cc | 20 ++++++++++++ @@ -19,12 +19,12 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../websockets/websocket_channel_impl.cc | 5 +++ .../modules/websockets/websocket_common.cc | 30 ++++++++++++++++++ .../modules/websockets/websocket_common.h | 4 +++ - 12 files changed, 133 insertions(+), 2 deletions(-) + 12 files changed, 132 insertions(+), 2 deletions(-) diff --git a/third_party/blink/renderer/core/execution_context/execution_context.cc b/third_party/blink/renderer/core/execution_context/execution_context.cc --- a/third_party/blink/renderer/core/execution_context/execution_context.cc +++ b/third_party/blink/renderer/core/execution_context/execution_context.cc -@@ -709,6 +709,22 @@ void ExecutionContext::WriteIntoTrace( +@@ -709,6 +709,21 @@ void ExecutionContext::WriteIntoTrace( proto->set_world_type(GetWorldType(*this)); } @@ -40,8 +40,7 @@ diff --git a/third_party/blink/renderer/core/execution_context/execution_context + case network::mojom::IPAddressSpace::kLocal: + return "local"; + } -+ NOTREACHED(); -+ return "public"; ++ NOTREACHED_NORETURN(); +} + bool ExecutionContext::CrossOriginIsolatedCapabilityOrDisabledWebSecurity() diff --git a/build/patches/Bookmarks-select-all-menu-entry.patch b/build/patches/Bookmarks-select-all-menu-entry.patch index 797b3b31..b7cce407 100644 --- a/build/patches/Bookmarks-select-all-menu-entry.patch +++ b/build/patches/Bookmarks-select-all-menu-entry.patch @@ -31,7 +31,7 @@ diff --git a/chrome/android/java/res/menu/bookmark_toolbar_menu_improved.xml b/c diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbar.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbar.java --- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbar.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbar.java -@@ -25,6 +25,8 @@ import java.util.ArrayList; +@@ -26,6 +26,8 @@ import java.util.ArrayList; import java.util.List; import java.util.function.Function; @@ -40,7 +40,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm /** * Main toolbar of bookmark UI. It is responsible for displaying title and buttons associated with * the current context. -@@ -183,12 +185,16 @@ public class BookmarkToolbar extends SelectableListToolbar +@@ -189,12 +191,16 @@ public class BookmarkToolbar extends SelectableListToolbar void setCurrentFolder(BookmarkId folder) { mCurrentFolder = mBookmarkModel.getBookmarkById(folder); enableImportExportMenu(); @@ -57,7 +57,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm } void setNavigateBackRunnable(Runnable navigateBackRunnable) { -@@ -215,6 +221,17 @@ public class BookmarkToolbar extends SelectableListToolbar +@@ -221,6 +227,17 @@ public class BookmarkToolbar extends SelectableListToolbar mExportBookmarkRunnable.run(); return true; } @@ -75,7 +75,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm return mMenuIdClickedFunction.apply(menuItem.getItemId()); } -@@ -232,6 +249,7 @@ public class BookmarkToolbar extends SelectableListToolbar +@@ -238,6 +255,7 @@ public class BookmarkToolbar extends SelectableListToolbar getMenu().findItem(R.id.import_menu_id).setVisible(mCurrentFolder != null); getMenu().findItem(R.id.export_menu_id).setVisible(mCurrentFolder != null); diff --git a/build/patches/Bromite-auto-updater.patch b/build/patches/Bromite-auto-updater.patch index eec13c92..2fdffa73 100644 --- a/build/patches/Bromite-auto-updater.patch +++ b/build/patches/Bromite-auto-updater.patch @@ -33,12 +33,13 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../browser/omaha/UpdateStatusProvider.java | 168 +++++++---- .../browser/omaha/VersionNumberGetter.java | 3 +- .../omaha/inline/InlineUpdateController.java | 57 ++++ + .../safety_hub/SafetyHubFetchService.java | 5 - .../strings/android_chrome_strings.grd | 23 +- .../endpoint_fetcher/endpoint_fetcher.cc | 101 ++++++- .../endpoint_fetcher/endpoint_fetcher.h | 23 +- .../Bromite-auto-updater.inc | 3 + .../Bromite-auto-updater.inc | 1 + - 30 files changed, 1225 insertions(+), 69 deletions(-) + 31 files changed, 1225 insertions(+), 74 deletions(-) create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/omaha/CromiteUpdateStatusProvider.java create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/omaha/inline/BromiteInlineUpdateController.java create mode 100644 chrome/browser/endpoint_fetcher/BUILD.gn @@ -752,7 +753,7 @@ new file mode 100644 +#include "chrome/browser/endpoint_fetcher/jni_headers/EndpointFetcher_jni.h" +#include "chrome/browser/endpoint_fetcher/jni_headers/EndpointResponse_jni.h" +#include "chrome/browser/endpoint_fetcher/jni_headers/EndpointHeaderResponse_jni.h" -+#include "chrome/browser/profiles/profile_android.h" ++#include "chrome/browser/profiles/profile.h" +#include "chrome/browser/signin/identity_manager_factory.h" +#include "chrome/common/channel_info.h" +#include "components/signin/public/base/consent_level.h" @@ -812,7 +813,7 @@ new file mode 100644 + std::vector scopes; + base::android::AppendJavaStringArrayToStringVector(env, jscopes, &scopes); + auto endpoint_fetcher = std::make_unique( -+ ProfileAndroid::FromProfileAndroid(jprofile) ++ Profile::FromJavaObject(jprofile) + ->GetDefaultStoragePartition() + ->GetURLLoaderFactoryForBrowserProcess(), + base::android::ConvertJavaStringToUTF8(env, joauth_consumer_name), @@ -823,7 +824,7 @@ new file mode 100644 + net::NetworkTrafficAnnotationTag::FromJavaAnnotation( + jannotation_hash_code), + IdentityManagerFactory::GetForProfile( -+ ProfileAndroid::FromProfileAndroid(jprofile)), ++ Profile::FromJavaObject(jprofile)), + // TODO(crbug.com/1466445): ConsentLevel::kSync is deprecated and should + // be removed. See ConsentLevel::kSync documentation for details. + signin::ConsentLevel::kSync); @@ -844,7 +845,7 @@ new file mode 100644 + jint jannotation_hash_code, + const base::android::JavaParamRef& jcallback) { + auto endpoint_fetcher = std::make_unique( -+ ProfileAndroid::FromProfileAndroid(jprofile) ++ Profile::FromJavaObject(jprofile) + ->GetDefaultStoragePartition() + ->GetURLLoaderFactoryForBrowserProcess(), + GURL(base::android::ConvertJavaStringToUTF8(env, jurl)), @@ -871,7 +872,7 @@ new file mode 100644 + jint jannotation_hash_code, + const base::android::JavaParamRef& jcallback) { + auto endpoint_fetcher = std::make_unique( -+ ProfileAndroid::FromProfileAndroid(jprofile) ++ Profile::FromJavaObject(jprofile) + ->GetDefaultStoragePartition() + ->GetURLLoaderFactoryForBrowserProcess(), + GURL(base::android::ConvertJavaStringToUTF8(env, jurl)), @@ -1645,6 +1646,28 @@ new file mode 100644 + */ + void completeUpdate(); +} +diff --git a/chrome/browser/safety_hub/android/java/src/org/chromium/chrome/browser/safety_hub/SafetyHubFetchService.java b/chrome/browser/safety_hub/android/java/src/org/chromium/chrome/browser/safety_hub/SafetyHubFetchService.java +--- a/chrome/browser/safety_hub/android/java/src/org/chromium/chrome/browser/safety_hub/SafetyHubFetchService.java ++++ b/chrome/browser/safety_hub/android/java/src/org/chromium/chrome/browser/safety_hub/SafetyHubFetchService.java +@@ -53,9 +53,6 @@ public class SafetyHubFetchService implements SyncService.SyncStateChangedListen + if (syncService != null) { + syncService.addSyncStateChangedListener(this); + } +- +- // Fetch latest update status. +- UpdateStatusProvider.getInstance().addObserver(mUpdateCallback); + } + + @Override +@@ -64,8 +61,6 @@ public class SafetyHubFetchService implements SyncService.SyncStateChangedListen + if (syncService != null) { + syncService.removeSyncStateChangedListener(this); + } +- +- UpdateStatusProvider.getInstance().removeObserver(mUpdateCallback); + } + + /** See {@link ChromeActivitySessionTracker#onForegroundSessionStart()}. */ 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 diff --git a/build/patches/Cromite-Branding.patch b/build/patches/Cromite-Branding.patch index 86aecef9..26505ba2 100644 --- a/build/patches/Cromite-Branding.patch +++ b/build/patches/Cromite-Branding.patch @@ -53,8 +53,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../chromium/product_logo_white.png | Bin 2512 -> 6790 bytes content/child/runtime_features.cc | 23 +++-- tools/grit/grit/grd_reader.py | 35 +++++++ - ui/base/ui_base_features.cc | 2 + - 50 files changed, 174 insertions(+), 111 deletions(-) + 49 files changed, 172 insertions(+), 111 deletions(-) diff --git a/build/BUILD.gn b/build/BUILD.gn --- a/build/BUILD.gn @@ -19003,14 +19002,4 @@ diff --git a/tools/grit/grit/grd_reader.py b/tools/grit/grit/grd_reader.py class GrdPartContentHandler(xml.sax.handler.ContentHandler): def __init__(self, parent): -diff --git a/ui/base/ui_base_features.cc b/ui/base/ui_base_features.cc ---- a/ui/base/ui_base_features.cc -+++ b/ui/base/ui_base_features.cc -@@ -529,4 +529,6 @@ BASE_FEATURE(kEnableGestureBeginEndTypes, - "EnableGestureBeginEndTypes", - base::FEATURE_DISABLED_BY_DEFAULT); - -+SET_CROMITE_FEATURE_ENABLED(kChromeRefresh2023); -+SET_CROMITE_FEATURE_ENABLED(kChromeRefreshSecondary2023); - } // namespace features -- diff --git a/build/patches/Disable-GSA-by-default.patch b/build/patches/Disable-GSA-by-default.patch index 01809ba1..cc9c29f8 100644 --- a/build/patches/Disable-GSA-by-default.patch +++ b/build/patches/Disable-GSA-by-default.patch @@ -4,11 +4,12 @@ Subject: Disable GSA by default License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html --- - .../org/chromium/chrome/browser/IntentHandler.java | 5 ----- - .../chromium/chrome/browser/share/LensUtils.java | 14 ++------------ - .../org/chromium/chrome/browser/gsa/GSAState.java | 14 +++++--------- - .../Disable-GSA-by-default.inc | 1 + - 4 files changed, 8 insertions(+), 26 deletions(-) + .../chrome/browser/IntentHandler.java | 5 ----- + .../chrome/browser/share/LensUtils.java | 14 ++------------ + .../chromium/chrome/browser/gsa/GSAState.java | 14 +++++--------- + .../GoogleBottomBarActionsHandler.java | 19 ++----------------- + .../Disable-GSA-by-default.inc | 1 + + 5 files changed, 10 insertions(+), 43 deletions(-) create mode 100644 cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/Disable-GSA-by-default.inc diff --git a/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.java b/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.java @@ -141,6 +142,62 @@ diff --git a/chrome/browser/gsa/java/src/org/chromium/chrome/browser/gsa/GSAStat return packageInfo == null ? null : packageInfo.versionName; } +diff --git a/chrome/browser/ui/android/google_bottom_bar/java/src/org/chromium/chrome/browser/ui/google_bottom_bar/GoogleBottomBarActionsHandler.java b/chrome/browser/ui/android/google_bottom_bar/java/src/org/chromium/chrome/browser/ui/google_bottom_bar/GoogleBottomBarActionsHandler.java +--- a/chrome/browser/ui/android/google_bottom_bar/java/src/org/chromium/chrome/browser/ui/google_bottom_bar/GoogleBottomBarActionsHandler.java ++++ b/chrome/browser/ui/android/google_bottom_bar/java/src/org/chromium/chrome/browser/ui/google_bottom_bar/GoogleBottomBarActionsHandler.java +@@ -4,9 +4,6 @@ + + package org.chromium.chrome.browser.ui.google_bottom_bar; + +-import static org.chromium.chrome.browser.gsa.GSAState.GOOGLE_APP_CLASS_NAME; +-import static org.chromium.chrome.browser.gsa.GSAState.PACKAGE_NAME; +-import static org.chromium.chrome.browser.gsa.GSAState.VOICE_SEARCH_INTENT_ACTION; + import static org.chromium.chrome.browser.ui.google_bottom_bar.GoogleBottomBarLogger.GoogleBottomBarButtonEvent.SEARCHBOX_HOME; + import static org.chromium.chrome.browser.ui.google_bottom_bar.GoogleBottomBarLogger.GoogleBottomBarButtonEvent.SEARCHBOX_LENS; + import static org.chromium.chrome.browser.ui.google_bottom_bar.GoogleBottomBarLogger.GoogleBottomBarButtonEvent.SEARCHBOX_SEARCH; +@@ -106,11 +103,6 @@ class GoogleBottomBarActionsHandler { + } + + void onSearchboxMicTap() { +- GoogleBottomBarLogger.logButtonClicked(SEARCHBOX_VOICE_SEARCH); +- Intent intent = new Intent(VOICE_SEARCH_INTENT_ACTION); +- intent.setPackage(PACKAGE_NAME); +- +- startGoogleAppActivityForResult(intent, "openGoogleAppVoiceSearch"); + } + + void onSearchboxLensTap() { +@@ -148,21 +140,13 @@ class GoogleBottomBarActionsHandler { + } + + private void openGoogleAppSearch() { +- Intent intent = new Intent(SearchManager.INTENT_ACTION_GLOBAL_SEARCH); +- intent.setPackage(PACKAGE_NAME); +- +- startGoogleAppActivityForResult(intent, "openGoogleAppSearch"); + } + + private void openGoogleAppHome() { +- Intent intent = new Intent(Intent.ACTION_MAIN); +- intent.addCategory(Intent.CATEGORY_INFO); +- intent.setClassName(PACKAGE_NAME, GOOGLE_APP_CLASS_NAME); +- +- startGoogleAppActivityForResult(intent, "openGoogleAppHome"); + } + + private void startGoogleAppActivityForResult(Intent intent, String actionName) { ++ if ((true)) return; + intent.putExtra(EXTRA_IS_LAUNCHED_FROM_CHROME_SEARCH_ENTRYPOINT, true); + + if (PackageManagerUtils.canResolveActivity(intent)) { +@@ -285,6 +269,7 @@ class GoogleBottomBarActionsHandler { + } + + private void sendPendingIntentWithUrl(PendingIntent pendingIntent) { ++ if ((true)) return; + Tab tab = mTabProvider.get(); + if (tab == null) { + Log.e(TAG, "Can't send pending intent as tab is null."); diff --git a/cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/Disable-GSA-by-default.inc b/cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/Disable-GSA-by-default.inc new file mode 100644 --- /dev/null diff --git a/build/patches/Disable-conversion-measurement-api.patch b/build/patches/Disable-conversion-measurement-api.patch index 76a37e28..de3225bc 100644 --- a/build/patches/Disable-conversion-measurement-api.patch +++ b/build/patches/Disable-conversion-measurement-api.patch @@ -14,7 +14,8 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../browser/aw_content_browser_client.cc | 3 + .../chromium/android_webview/AwSettings.java | 4 +- chrome/android/java/AndroidManifest.xml | 4 - - components/attribution_reporting/features.cc | 2 + + .../aggregatable_trigger_config.cc | 2 +- + components/attribution_reporting/features.cc | 1 + .../origin_trials/features.cc | 2 + .../render_view_context_menu_base.cc | 3 - .../aggregatable_report_sender.cc | 15 +- @@ -38,7 +39,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html third_party/blink/renderer/core/page/page.cc | 2 +- .../platform/runtime_enabled_features.json5 | 1 + ui/events/android/motion_event_android.cc | 6 +- - 27 files changed, 73 insertions(+), 375 deletions(-) + 28 files changed, 73 insertions(+), 376 deletions(-) create mode 100644 cromite_flags/content/common/features_cc/Disable-conversion-measurement-api.inc create mode 100644 cromite_flags/content/public/common/content_features_cc/Disable-conversion-measurement-api.inc create mode 100644 cromite_flags/services/network/public/cpp/features_cc/Disable-conversion-measurement-api.inc @@ -106,15 +107,26 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro {% set enable_openxr = enable_openxr|default(0) %} {% if enable_openxr == "true" %} +diff --git a/components/attribution_reporting/aggregatable_trigger_config.cc b/components/attribution_reporting/aggregatable_trigger_config.cc +--- a/components/attribution_reporting/aggregatable_trigger_config.cc ++++ b/components/attribution_reporting/aggregatable_trigger_config.cc +@@ -86,7 +86,7 @@ bool IsValid(SourceRegistrationTimeConfig source_registration_time_config, + + base::expected, TriggerRegistrationError> + ParseTriggerContextId(base::Value* value) { +- if (!value) { ++ if ((true)) { + return std::nullopt; + } + diff --git a/components/attribution_reporting/features.cc b/components/attribution_reporting/features.cc --- a/components/attribution_reporting/features.cc +++ b/components/attribution_reporting/features.cc -@@ -17,4 +17,6 @@ BASE_FEATURE(kAttributionAggregatableDebugReporting, +@@ -17,4 +17,5 @@ BASE_FEATURE(kAttributionAggregatableDebugReporting, "AttributionAggregatableDebugReporting", base::FEATURE_ENABLED_BY_DEFAULT); +SET_CROMITE_FEATURE_DISABLED(kConversionMeasurement); -+SET_CROMITE_FEATURE_DISABLED(kAttributionReportingTriggerContextId); } // namespace attribution_reporting::features diff --git a/components/embedder_support/origin_trials/features.cc b/components/embedder_support/origin_trials/features.cc --- a/components/embedder_support/origin_trials/features.cc diff --git a/build/patches/Disable-safety-check.patch b/build/patches/Disable-safety-check.patch index 743b7dd8..391fdd55 100644 --- a/build/patches/Disable-safety-check.patch +++ b/build/patches/Disable-safety-check.patch @@ -8,10 +8,10 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html chrome/android/chrome_java_sources.gni | 1 - .../android/java/res/xml/main_preferences.xml | 5 ----- .../browser/settings/SettingsActivity.java | 19 ------------------- - .../settings/SettingsLauncherImpl.java | 4 +--- + .../settings/SettingsLauncherImpl.java | 6 ++---- chrome/browser/BUILD.gn | 1 - .../suggestions/action/OmniboxPedal.java | 3 --- - 7 files changed, 1 insertion(+), 37 deletions(-) + 7 files changed, 2 insertions(+), 38 deletions(-) diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn --- a/chrome/android/BUILD.gn @@ -125,6 +125,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Settin case SettingsFragment.MAIN: case SettingsFragment.PAYMENT_METHODS: case SettingsFragment.SITE: +@@ -132,7 +130,7 @@ public class SettingsLauncherImpl implements SettingsLauncher { + case SettingsFragment.PAYMENT_METHODS: + return AutofillPaymentMethodsFragment.class; + case SettingsFragment.SAFETY_CHECK: +- return SafetyCheckSettingsFragment.class; ++ return null; + case SettingsFragment.SITE: + return SiteSettings.class; + case SettingsFragment.ACCESSIBILITY: diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn diff --git a/build/patches/Enable-native-Android-autofill.patch b/build/patches/Enable-native-Android-autofill.patch index e4e4c066..e9ef1f27 100644 --- a/build/patches/Enable-native-Android-autofill.patch +++ b/build/patches/Enable-native-Android-autofill.patch @@ -34,7 +34,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../autofill/AutofillManagerWrapper.java | 5 +- .../components/autofill/AutofillProvider.java | 7 ++ .../BrowserSelectionActionMenuDelegate.java | 62 ++++++++++++++ - .../browser/content_autofill_driver.cc | 12 +++ + .../browser/content_autofill_driver.cc | 13 +++ .../content/browser/content_autofill_driver.h | 10 +++ .../content_autofill_driver_factory.cc | 12 +++ .../content/renderer/autofill_agent.cc | 6 ++ @@ -47,7 +47,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../autofill/core/common/autofill_features.h | 4 - .../autofill/core/common/autofill_prefs.cc | 4 +- .../autofill/core/common/autofill_prefs.h | 5 ++ - 32 files changed, 267 insertions(+), 96 deletions(-) + 32 files changed, 268 insertions(+), 96 deletions(-) create mode 100644 components/android_autofill/browser/java/src/org/chromium/components/autofill/BrowserSelectionActionMenuDelegate.java diff --git a/chrome/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordSettings.java b/chrome/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordSettings.java @@ -671,20 +671,21 @@ new file mode 100644 diff --git a/components/autofill/content/browser/content_autofill_driver.cc b/components/autofill/content/browser/content_autofill_driver.cc --- a/components/autofill/content/browser/content_autofill_driver.cc +++ b/components/autofill/content/browser/content_autofill_driver.cc -@@ -247,6 +247,12 @@ void RouteToManager(ContentAutofillDriver& source, +@@ -247,6 +247,13 @@ void RouteToManager(ContentAutofillDriver& source, AutofillManager& manager = target.GetAutofillManager(); (manager.* manager_fun)(WithNewVersion(std::forward(args))...); + -+ AutofillManager& secondary_autofill_manager = target.secondary_autofill_manager(); ++ raw_ptr secondary_autofill_manager = ++ target.secondary_autofill_manager(); + if (secondary_autofill_manager) { -+ (secondary_autofill_manager.* ++ (secondary_autofill_manager->* + manager_fun)(WithNewVersion(std::forward(args))...); + } }, source, Lift(source, std::forward(args))...); } -@@ -589,6 +595,8 @@ void ContentAutofillDriver::JavaScriptChangedAutofilledValue( +@@ -589,6 +596,8 @@ void ContentAutofillDriver::JavaScriptChangedAutofilledValue( void ContentAutofillDriver::Reset() { owner_->router().UnregisterDriver(*this, /*driver_is_dying=*/false); autofill_manager_->Reset(); @@ -693,7 +694,7 @@ diff --git a/components/autofill/content/browser/content_autofill_driver.cc b/co } const mojo::AssociatedRemote& -@@ -601,6 +609,10 @@ ContentAutofillDriver::GetAutofillAgent() { +@@ -601,6 +610,10 @@ ContentAutofillDriver::GetAutofillAgent() { return autofill_agent_; } diff --git a/build/patches/Enable-network-isolation-features.patch b/build/patches/Enable-network-isolation-features.patch index 33f66f43..c66b6fe3 100644 --- a/build/patches/Enable-network-isolation-features.patch +++ b/build/patches/Enable-network-isolation-features.patch @@ -9,9 +9,9 @@ PartitionNelAndReportingByNetworkIsolationKey License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- - .../features_cc/Enable-network-isolation-features.inc | 10 ++++++++++ - .../features_cc/Enable-network-isolation-features.inc | 1 + - 2 files changed, 11 insertions(+) + .../base/features_cc/Enable-network-isolation-features.inc | 6 ++++++ + .../cpp/features_cc/Enable-network-isolation-features.inc | 1 + + 2 files changed, 7 insertions(+) create mode 100644 cromite_flags/net/base/features_cc/Enable-network-isolation-features.inc create mode 100644 cromite_flags/services/network/public/cpp/features_cc/Enable-network-isolation-features.inc @@ -19,14 +19,10 @@ diff --git a/cromite_flags/net/base/features_cc/Enable-network-isolation-feature new file mode 100644 --- /dev/null +++ b/cromite_flags/net/base/features_cc/Enable-network-isolation-features.inc -@@ -0,0 +1,10 @@ +@@ -0,0 +1,6 @@ +SET_CROMITE_FEATURE_ENABLED(kSplitCacheByNetworkIsolationKey); +SET_CROMITE_FEATURE_ENABLED(kSplitCodeCacheByNetworkIsolationKey); -+SET_CROMITE_FEATURE_ENABLED(kSplitHostCacheByNetworkIsolationKey); +SET_CROMITE_FEATURE_ENABLED(kPartitionConnectionsByNetworkIsolationKey); -+SET_CROMITE_FEATURE_ENABLED(kPartitionHttpServerPropertiesByNetworkIsolationKey); -+SET_CROMITE_FEATURE_ENABLED(kPartitionSSLSessionsByNetworkIsolationKey); -+SET_CROMITE_FEATURE_ENABLED(kPartitionNelAndReportingByNetworkIsolationKey); + +SET_CROMITE_FEATURE_DISABLED(kEnableCrossSiteFlagNetworkIsolationKey); +SET_CROMITE_FEATURE_DISABLED(kEnableFrameSiteSharedOpaqueNetworkIsolationKey); diff --git a/build/patches/Enable-search-engine-settings-desktop-ui.patch b/build/patches/Enable-search-engine-settings-desktop-ui.patch index adb7f895..aac64460 100644 --- a/build/patches/Enable-search-engine-settings-desktop-ui.patch +++ b/build/patches/Enable-search-engine-settings-desktop-ui.patch @@ -12,6 +12,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html chrome/app/settings_strings.grdp | 3 + chrome/app/settings_strings_android.grdp | 260 ++++++++++++++++++ chrome/browser/BUILD.gn | 3 + + .../chrome_browser_interface_binders.cc | 12 + chrome/browser/resources/BUILD.gn | 6 + chrome/browser/resources/settings/BUILD.gn | 2 +- .../resources/settings/page_visibility.ts | 30 +- @@ -24,7 +25,8 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../browser/resources/settings/settings.html | 8 +- .../settings/settings_ui/settings_ui.html | 6 + .../resources/settings_shared/BUILD.gn | 2 +- - .../browser/search_engines/android/BUILD.gn | 1 + + chrome/browser/search/background/BUILD.gn | 4 +- + .../browser/search_engines/android/BUILD.gn | 2 + .../java/res/layout/search_engine_layout.xml | 25 ++ .../settings/SearchEngineSettings.java | 19 ++ chrome/browser/ui/BUILD.gn | 12 + @@ -43,11 +45,12 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html ...ings_localized_strings_provider_android.cc | 198 +++++++++++++ ...tings_localized_strings_provider_android.h | 19 ++ .../ui/webui/settings/settings_ui_android.cc | 134 +++++++++ - .../ui/webui/settings/settings_ui_android.h | 127 +++++++++ + .../ui/webui/settings/settings_ui_android.h | 119 ++++++++ chrome/chrome_paks.gni | 11 + .../browser_ui/settings/SettingsLauncher.java | 2 + .../search_engine_desktop_ui.grdp | 6 + .../android/template_url_service_android.cc | 2 +- + .../search_engines/search_engines_switches.cc | 1 + .../search_engines/template_url_service.cc | 8 +- .../search_engines/template_url_service.h | 6 +- content/browser/webui/web_ui_impl.cc | 14 +- @@ -67,7 +70,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html ui/webui/resources/include_polymer.gni | 2 +- ui/webui/resources/js/BUILD.gn | 2 +- ui/webui/resources/js/load_time_data.ts | 17 +- - 60 files changed, 1097 insertions(+), 61 deletions(-) + 63 files changed, 1106 insertions(+), 62 deletions(-) create mode 100644 chrome/app/settings_strings_android.grdp create mode 100644 chrome/browser/search_engines/android/java/res/layout/search_engine_layout.xml create mode 100644 chrome/browser/ui/webui/settings/settings_localized_strings_provider_android.cc @@ -418,6 +421,35 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn } else { #!is_android sources += [ +diff --git a/chrome/browser/chrome_browser_interface_binders.cc b/chrome/browser/chrome_browser_interface_binders.cc +--- a/chrome/browser/chrome_browser_interface_binders.cc ++++ b/chrome/browser/chrome_browser_interface_binders.cc +@@ -145,6 +145,9 @@ + #endif + + #if BUILDFLAG(IS_ANDROID) ++#include "ui/webui/resources/cr_components/help_bubble/help_bubble.mojom.h" ++#include "ui/webui/resources/cr_components/customize_color_scheme_mode/customize_color_scheme_mode.mojom.h" ++#include "chrome/browser/ui/webui/settings/settings_ui_android.h" + #include "chrome/browser/android/dom_distiller/distiller_ui_handle_android.h" + #include "chrome/browser/offline_pages/android/offline_page_auto_fetcher.h" + #include "chrome/browser/ui/webui/feed_internals/feed_internals.mojom.h" +@@ -1168,6 +1171,15 @@ void PopulateChromeWebUIFrameBinders( + app_management::mojom::PageHandlerFactory, WebAppSettingsUI>(map); + #endif + ++#if BUILDFLAG(IS_ANDROID) ++ RegisterWebUIControllerInterfaceBinder< ++ help_bubble::mojom::HelpBubbleHandlerFactory, settings::SettingsUI>(map); ++ ++ RegisterWebUIControllerInterfaceBinder< ++ customize_color_scheme_mode::mojom:: ++ CustomizeColorSchemeModeHandlerFactory, settings::SettingsUI>(map); ++#endif ++ + #if !BUILDFLAG(IS_ANDROID) + if (search_engines::IsChoiceScreenFlagEnabled( + search_engines::ChoicePromo::kAny)) { diff --git a/chrome/browser/resources/BUILD.gn b/chrome/browser/resources/BUILD.gn --- a/chrome/browser/resources/BUILD.gn +++ b/chrome/browser/resources/BUILD.gn @@ -705,6 +737,30 @@ diff --git a/chrome/browser/resources/settings_shared/BUILD.gn b/chrome/browser/ build_webui("build") { grd_prefix = "settings_shared" +diff --git a/chrome/browser/search/background/BUILD.gn b/chrome/browser/search/background/BUILD.gn +--- a/chrome/browser/search/background/BUILD.gn ++++ b/chrome/browser/search/background/BUILD.gn +@@ -2,10 +2,11 @@ + # Use of this source code is governed by a BSD-style license that can be + # found in the LICENSE file. + +-assert(is_win || is_mac || is_linux || is_chromeos) ++# assert(is_win || is_mac || is_linux || is_chromeos) + + import("//third_party/protobuf/proto_library.gni") + ++if (!is_android) { + source_set("background") { + public = [ + "ntp_background_data.h", +@@ -61,6 +62,7 @@ source_set("background") { + "//ui/gfx/codec", + ] + } ++} + + proto_library("ntp_background_proto") { + sources = [ "ntp_background.proto" ] diff --git a/chrome/browser/search_engines/android/BUILD.gn b/chrome/browser/search_engines/android/BUILD.gn --- a/chrome/browser/search_engines/android/BUILD.gn +++ b/chrome/browser/search_engines/android/BUILD.gn @@ -716,6 +772,14 @@ diff --git a/chrome/browser/search_engines/android/BUILD.gn b/chrome/browser/sea "java/res/layout/search_engine_choice_item.xml", "java/res/layout/search_engine_choice_view.xml", "java/res/layout/search_engine_recent_title.xml", +@@ -86,6 +87,7 @@ android_resources("java_resources") { + "java/res/values/ids.xml", + ] + deps = [ ++ "//chrome/browser/search/background:ntp_background_proto", + "//chrome/browser/ui/android/strings:ui_strings_grd", + "//components/browser_ui/styles/android:java_resources", + "//components/browser_ui/widget/android:java_resources", diff --git a/chrome/browser/search_engines/android/java/res/layout/search_engine_layout.xml b/chrome/browser/search_engines/android/java/res/layout/search_engine_layout.xml new file mode 100644 --- /dev/null @@ -1005,7 +1069,7 @@ diff --git a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc b/chrom #include "chrome/browser/ui/webui/webapks/webapks_ui.h" #include "components/feed/buildflags.h" #include "components/feed/feed_feature_list.h" -+#include "chrome/browser/ui/webui/settings/settings_ui.h" ++#include "chrome/browser/ui/webui/settings/settings_ui_android.h" +#include "chrome/browser/ui/webui/settings/settings_utils.h" #else // BUILDFLAG(IS_ANDROID) #include "chrome/browser/media/router/discovery/access_code/access_code_cast_feature.h" @@ -1516,7 +1580,7 @@ new file mode 100644 +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + -+#include "chrome/browser/ui/webui/settings/settings_ui.h" ++#include "chrome/browser/ui/webui/settings/settings_ui_android.h" + +#include + @@ -1634,14 +1698,14 @@ new file mode 100644 + mojo::PendingReceiver handler) { +} + -+void SettingsUI::CreateCustomizeColorSchemeModeHandler( -+ mojo::PendingRemote< -+ customize_color_scheme_mode::mojom::CustomizeColorSchemeModeClient> -+ client, -+ mojo::PendingReceiver< -+ customize_color_scheme_mode::mojom::CustomizeColorSchemeModeHandler> -+ handler) { -+} ++void SettingsUI::BindInterface( ++ mojo::PendingReceiver ++ pending_receiver) {} ++ ++void SettingsUI::BindInterface( ++ mojo::PendingReceiver ++ pending_receiver) {} + +WEB_UI_CONTROLLER_TYPE_IMPL(SettingsUI) + @@ -1650,7 +1714,7 @@ diff --git a/chrome/browser/ui/webui/settings/settings_ui_android.h b/chrome/bro new file mode 100644 --- /dev/null +++ b/chrome/browser/ui/webui/settings/settings_ui_android.h -@@ -0,0 +1,127 @@ +@@ -0,0 +1,119 @@ +#ifndef CHROME_BROWSER_UI_WEBUI_SETTINGS_SETTINGS_UI_ANDROID_H_ +#define CHROME_BROWSER_UI_WEBUI_SETTINGS_SETTINGS_UI_ANDROID_H_ + @@ -1764,14 +1828,6 @@ new file mode 100644 + mojo::PendingReceiver handler) + override; + -+ void CreateCustomizeColorSchemeModeHandler( -+ mojo::PendingRemote< -+ customize_color_scheme_mode::mojom::CustomizeColorSchemeModeClient> -+ client, -+ mojo::PendingReceiver< -+ customize_color_scheme_mode::mojom::CustomizeColorSchemeModeHandler> -+ handler) override; -+ + WEB_UI_CONTROLLER_TYPE_DECL(); +}; + @@ -1834,6 +1890,17 @@ diff --git a/components/search_engines/android/template_url_service_android.cc b } // Only one search engine can be marked as coming from Play at a time. +diff --git a/components/search_engines/search_engines_switches.cc b/components/search_engines/search_engines_switches.cc +--- a/components/search_engines/search_engines_switches.cc ++++ b/components/search_engines/search_engines_switches.cc +@@ -36,6 +36,7 @@ COMPONENT_EXPORT(SEARCH_ENGINES_SWITCHES) + BASE_FEATURE(kSearchEngineChoiceTrigger, + "SearchEngineChoiceTrigger", + base::FEATURE_ENABLED_BY_DEFAULT); ++SET_CROMITE_FEATURE_DISABLED(kSearchEngineChoiceTrigger); + + COMPONENT_EXPORT(SEARCH_ENGINES_SWITCHES) + BASE_FEATURE(kSearchEngineChoiceAttribution, diff --git a/components/search_engines/template_url_service.cc b/components/search_engines/template_url_service.cc --- a/components/search_engines/template_url_service.cc +++ b/components/search_engines/template_url_service.cc diff --git a/build/patches/Experimental-user-scripts-support.patch b/build/patches/Experimental-user-scripts-support.patch index dbd8c6fe..e6087174 100644 --- a/build/patches/Experimental-user-scripts-support.patch +++ b/build/patches/Experimental-user-scripts-support.patch @@ -114,7 +114,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../user_scripts/renderer/script_context.h | 67 ++ .../user_scripts/renderer/script_injection.cc | 295 +++++++ .../user_scripts/renderer/script_injection.h | 155 ++++ - .../renderer/script_injection_manager.cc | 415 +++++++++ + .../renderer/script_injection_manager.cc | 414 +++++++++ .../renderer/script_injection_manager.h | 100 +++ .../user_scripts/renderer/script_injector.h | 96 +++ .../user_scripts/renderer/scripts_run_info.cc | 31 + @@ -123,7 +123,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../renderer/user_script_injector.h | 86 ++ .../user_scripts/renderer/user_script_set.cc | 264 ++++++ .../user_scripts/renderer/user_script_set.h | 101 +++ - .../renderer/user_script_set_manager.cc | 77 ++ + .../renderer/user_script_set_manager.cc | 76 ++ .../renderer/user_script_set_manager.h | 63 ++ .../renderer/user_scripts_dispatcher.cc | 36 + .../renderer/user_scripts_dispatcher.h | 49 ++ @@ -135,7 +135,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../Experimental-user-scripts-support.inc | 13 + ipc/ipc_message_start.h | 1 + tools/gritsettings/resource_ids.spec | 6 + - 108 files changed, 9494 insertions(+), 2 deletions(-) + 108 files changed, 9492 insertions(+), 2 deletions(-) create mode 100644 components/user_scripts/README.md create mode 100755 components/user_scripts/android/BUILD.gn create mode 100644 components/user_scripts/android/java/res/layout/accept_script_item.xml @@ -1299,7 +1299,7 @@ new file mode 100755 + + SettingsLauncher settingsLauncher = new SettingsLauncherImpl(); + Intent intent = settingsLauncher.createSettingsActivityIntent( -+ context, UserScriptsPreferences.class.getName(), ++ context, UserScriptsPreferences.class, + UserScriptsPreferences.createFragmentArgsForInstall(filePath)); + IntentUtils.safeStartActivity(context, intent); + @@ -8483,7 +8483,7 @@ diff --git a/components/user_scripts/renderer/script_injection_manager.cc b/comp new file mode 100755 --- /dev/null +++ b/components/user_scripts/renderer/script_injection_manager.cc -@@ -0,0 +1,415 @@ +@@ -0,0 +1,414 @@ +// Copyright 2014 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. @@ -8538,8 +8538,7 @@ new file mode 100755 + case UserScript::RUN_LOCATION_LAST: + break; + } -+ NOTREACHED(); -+ return UserScript::RUN_LOCATION_LAST; ++ NOTREACHED_NORETURN(); +} + +} // namespace @@ -9917,7 +9916,7 @@ diff --git a/components/user_scripts/renderer/user_script_set_manager.cc b/compo new file mode 100755 --- /dev/null +++ b/components/user_scripts/renderer/user_script_set_manager.cc -@@ -0,0 +1,77 @@ +@@ -0,0 +1,76 @@ +#include "user_script_set_manager.h" + +#include "base/logging.h" @@ -9971,8 +9970,7 @@ new file mode 100755 +void UserScriptSetManager::OnUpdateUserScripts( + base::ReadOnlySharedMemoryRegion shared_memory) { + if (!shared_memory.IsValid()) { -+ NOTREACHED() << "Bad scripts handle"; -+ return; ++ NOTREACHED_NORETURN() << "Bad scripts handle"; + } + + UserScriptSet* scripts = NULL; @@ -9995,7 +9993,6 @@ new file mode 100755 +} + +} -\ No newline at end of file diff --git a/components/user_scripts/renderer/user_script_set_manager.h b/components/user_scripts/renderer/user_script_set_manager.h new file mode 100755 --- /dev/null diff --git a/build/patches/Eyeo-Adblock-for-Cromite.patch b/build/patches/Eyeo-Adblock-for-Cromite.patch index 827d9ffc..1bc8f607 100644 --- a/build/patches/Eyeo-Adblock-for-Cromite.patch +++ b/build/patches/Eyeo-Adblock-for-Cromite.patch @@ -12,8 +12,8 @@ deactivation of all pop-ups (default disabled) --- .../android/java/res/xml/main_preferences.xml | 19 +- chrome/browser/BUILD.gn | 2 - - .../adblock/adblock_content_browser_client.cc | 285 +- - .../adblock/adblock_content_browser_client.h | 48 +- + .../adblock/adblock_content_browser_client.cc | 291 +- + .../adblock/adblock_content_browser_client.h | 54 +- .../browser/chrome_content_browser_client.cc | 6 +- .../browser/chrome_content_browser_client.h | 6 +- .../adblock_private/adblock_private_api.cc | 74 +- @@ -32,7 +32,7 @@ deactivation of all pop-ups (default disabled) chrome/browser/resources/settings/settings.ts | 1 + .../settings/settings_menu/settings_menu.html | 5 + chrome/browser/ui/tab_helpers.cc | 6 +- - .../adblock_internals_page_handler_impl.cc | 20 +- + .../adblock_internals_page_handler_impl.cc | 23 +- .../common/extensions/api/_api_features.json | 4 +- .../extensions/api/_permission_features.json | 8 - .../common/extensions/api/adblock_private.idl | 8 + @@ -51,7 +51,7 @@ deactivation of all pop-ups (default disabled) .../settings/AdblockSettingsFragment.java | 51 +- components/adblock/content/browser/BUILD.gn | 18 +- .../adblock_controller_factory_base.cc | 5 +- - .../browser/adblock_url_loader_factory.cc | 65 +- + .../browser/adblock_url_loader_factory.cc | 68 +- .../browser/adblock_url_loader_factory.h | 7 +- .../browser/adblock_webcontents_observer.cc | 25 +- .../browser/adblock_webcontents_observer.h | 5 +- @@ -95,7 +95,7 @@ deactivation of all pop-ups (default disabled) .../filtering_configuration_maintainer_impl.h | 4 +- .../ongoing_subscription_request_impl.cc | 33 +- .../preloaded_subscription_provider_impl.cc | 4 +- - .../adblock/core/subscription/subscription.cc | 19 + + .../adblock/core/subscription/subscription.cc | 18 + .../adblock/core/subscription/subscription.h | 3 + .../subscription_collection_impl.cc | 1 + .../core/subscription/subscription_config.cc | 20 +- @@ -130,7 +130,7 @@ deactivation of all pop-ups (default disabled) .../blink/renderer/core/css/style_engine.h | 1 + .../renderer/core/exported/web_document.cc | 15 +- .../definitions/adblock_private.d.ts | 14 + - 120 files changed, 6140 insertions(+), 1299 deletions(-) + 120 files changed, 6147 insertions(+), 1309 deletions(-) create mode 100644 chrome/browser/resources/settings/adblock_page/adblock_page.html create mode 100644 chrome/browser/resources/settings/adblock_page/adblock_page.ts rename components/adblock/android/java/res/xml/{adblock_preferences.xml => eyeo_adblock_preferences.xml} (56%) @@ -350,7 +350,8 @@ diff --git a/chrome/browser/adblock/adblock_content_browser_client.cc b/chrome/b const GURL& url, + const url::Origin& initiator_origin, const net::SiteForCookies& site_for_cookies, - const absl::optional& user_agent, +- const absl::optional& user_agent, ++ const std::optional& user_agent, mojo::PendingRemote handshake_client) { - if (IsFilteringNeeded(frame)) { @@ -377,7 +378,8 @@ diff --git a/chrome/browser/adblock/adblock_content_browser_client.cc b/chrome/b const GURL& url, + const url::Origin& initiator_origin, const net::SiteForCookies& site_for_cookies, - const absl::optional& user_agent, +- const absl::optional& user_agent, ++ const std::optional& user_agent, mojo::PendingRemote handshake_client) { - auto* frame = content::RenderFrameHost::FromID(render_frame_host_id); @@ -411,7 +413,8 @@ diff --git a/chrome/browser/adblock/adblock_content_browser_client.cc b/chrome/b const GURL& url, + const url::Origin& initiator_origin, const net::SiteForCookies& site_for_cookies, - const absl::optional& user_agent, +- const absl::optional& user_agent, ++ const std::optional& user_agent, mojo::PendingRemote handshake_client, adblock::FilterMatchResult result) { @@ -640,7 +643,8 @@ diff --git a/chrome/browser/adblock/adblock_content_browser_client.h b/chrome/br const GURL& url, + const url::Origin& initiator_origin, const net::SiteForCookies& site_for_cookies, - const absl::optional& user_agent, +- const absl::optional& user_agent, ++ const std::optional& user_agent, mojo::PendingRemote handshake_client) override; @@ -695,7 +699,8 @@ diff --git a/chrome/browser/adblock/adblock_content_browser_client.h b/chrome/br const GURL& url, + const url::Origin& initiator_origin, const net::SiteForCookies& site_for_cookies, - const absl::optional& user_agent, +- const absl::optional& user_agent, ++ const std::optional& user_agent, mojo::PendingRemote handshake_client); void OnWebSocketFilterCheckCompleted( @@ -705,7 +710,8 @@ diff --git a/chrome/browser/adblock/adblock_content_browser_client.h b/chrome/br const GURL& url, + const url::Origin& initiator_origin, const net::SiteForCookies& site_for_cookies, - const absl::optional& user_agent, +- const absl::optional& user_agent, ++ const std::optional& user_agent, mojo::PendingRemote handshake_client, adblock::FilterMatchResult result); @@ -1706,7 +1712,17 @@ diff --git a/chrome/browser/ui/webui/adblock_internals/adblock_internals_page_ha #include "components/adblock/core/session_stats.h" #include "components/adblock/core/subscription/subscription_config.h" #include "components/adblock/core/subscription/subscription_service.h" -@@ -53,6 +52,13 @@ std::string DebugLine(std::string name, int value, int level) { +@@ -41,8 +40,7 @@ std::string SubscriptionInstallationStateToString( + case State::Unknown: + return "Unknown"; + } +- NOTREACHED(); +- return ""; ++ NOTREACHED_NORETURN(); + } + + std::string DebugLine(std::string name, std::string value, int level) { +@@ -53,6 +51,13 @@ std::string DebugLine(std::string name, int value, int level) { return DebugLine(name, std::to_string(value), level); } @@ -1720,7 +1736,7 @@ diff --git a/chrome/browser/ui/webui/adblock_internals/adblock_internals_page_ha } // namespace AdblockInternalsPageHandlerImpl::AdblockInternalsPageHandlerImpl( -@@ -90,17 +96,13 @@ void AdblockInternalsPageHandlerImpl::GetDebugInfo( +@@ -90,17 +95,13 @@ void AdblockInternalsPageHandlerImpl::GetDebugInfo( content += DebugLine("Title", it->GetTitle(), 2); content += DebugLine("Version", it->GetCurrentVersion(), 2); content += DebugLine("Last update", @@ -2614,7 +2630,7 @@ diff --git a/components/adblock/content/browser/adblock_url_loader_factory.cc b/ return ContentType::Script; case network::mojom::RequestDestination::kImage: return ContentType::Image; -@@ -101,11 +103,10 @@ ContentType ToAdblockResourceType(const network::ResourceRequest& request) { +@@ -101,16 +103,14 @@ ContentType ToAdblockResourceType(const network::ResourceRequest& request) { return ContentType::Other; case network::mojom::RequestDestination::kWebBundle: return ContentType::WebBundle; @@ -2627,7 +2643,13 @@ diff --git a/components/adblock/content/browser/adblock_url_loader_factory.cc b/ case network::mojom::RequestDestination::kWebIdentity: return ContentType::Other; } -@@ -186,8 +187,13 @@ class AdblockURLLoaderFactory::InProgressRequest +- NOTREACHED(); +- return ContentType::Other; ++ NOTREACHED_NORETURN(); + } + + } // namespace +@@ -186,8 +186,13 @@ class AdblockURLLoaderFactory::InProgressRequest void OnRequestError(int error_code); void CheckFilterMatch(CheckFilterMatchCallback callback); void ProcessResponseHeaders( @@ -2641,7 +2663,7 @@ diff --git a/components/adblock/content/browser/adblock_url_loader_factory.cc b/ void CheckRewriteFilterMatch(CheckRewriteFilterMatchCallback callback); void OnRequestUrlClassified(CheckFilterMatchCallback callback, FilterMatchResult result); -@@ -307,7 +313,9 @@ void AdblockURLLoaderFactory::InProgressRequest::OnReceiveResponse( +@@ -307,7 +312,9 @@ void AdblockURLLoaderFactory::InProgressRequest::OnReceiveResponse( VLOG(1) << "[eyeo] Sending headers for processing: " << request_url_; client_receiver_.Pause(); const scoped_refptr& headers = head->headers; @@ -2651,7 +2673,7 @@ diff --git a/components/adblock/content/browser/adblock_url_loader_factory.cc b/ headers, base::BindOnce(&InProgressRequest::OnProcessHeadersResult, weak_factory_.GetWeakPtr(), std::move(head), std::move(body), std::move(cached_metadata))); -@@ -344,12 +352,6 @@ void AdblockURLLoaderFactory::InProgressRequest::OnRequestError( +@@ -344,12 +351,6 @@ void AdblockURLLoaderFactory::InProgressRequest::OnRequestError( void AdblockURLLoaderFactory::InProgressRequest::CheckFilterMatch( CheckFilterMatchCallback callback) { @@ -2664,7 +2686,7 @@ diff --git a/components/adblock/content/browser/adblock_url_loader_factory.cc b/ auto subscription_service = factory_->config_.subscription_service; if (is_document_request_) { auto* host = content::RenderFrameHost::FromID(factory_->host_id_); -@@ -386,9 +388,10 @@ void AdblockURLLoaderFactory::InProgressRequest::CheckFilterMatch( +@@ -386,9 +387,10 @@ void AdblockURLLoaderFactory::InProgressRequest::CheckFilterMatch( FilterMatchResult::kNoRule); } } else { @@ -2677,7 +2699,7 @@ diff --git a/components/adblock/content/browser/adblock_url_loader_factory.cc b/ base::BindOnce( &AdblockURLLoaderFactory::InProgressRequest::OnRequestUrlClassified, weak_factory_.GetWeakPtr(), -@@ -399,6 +402,7 @@ void AdblockURLLoaderFactory::InProgressRequest::CheckFilterMatch( +@@ -399,6 +401,7 @@ void AdblockURLLoaderFactory::InProgressRequest::CheckFilterMatch( } void AdblockURLLoaderFactory::InProgressRequest::ProcessResponseHeaders( @@ -2685,7 +2707,7 @@ diff --git a/components/adblock/content/browser/adblock_url_loader_factory.cc b/ const scoped_refptr& headers, ProcessResponseHeadersCallback callback) { if (!factory_->CheckHostValid()) { -@@ -407,6 +411,36 @@ void AdblockURLLoaderFactory::InProgressRequest::ProcessResponseHeaders( +@@ -407,6 +410,36 @@ void AdblockURLLoaderFactory::InProgressRequest::ProcessResponseHeaders( return; } @@ -2722,7 +2744,7 @@ diff --git a/components/adblock/content/browser/adblock_url_loader_factory.cc b/ auto subscription_service = factory_->config_.subscription_service; factory_->config_.resource_classifier->CheckResponseFilterMatch( subscription_service->GetCurrentSnapshot(), request_url_, -@@ -677,12 +711,13 @@ void AdblockURLLoaderFactory::InProgressRequest::OnRequestFilterMatchResult( +@@ -677,12 +710,13 @@ void AdblockURLLoaderFactory::InProgressRequest::OnRequestFilterMatchResult( AdblockURLLoaderFactory::AdblockURLLoaderFactory( AdblockURLLoaderFactoryConfig config, @@ -2738,7 +2760,7 @@ diff --git a/components/adblock/content/browser/adblock_url_loader_factory.cc b/ host_id_(host_id), user_agent_string_(std::move(user_agent_string)), on_disconnect_(std::move(on_disconnect)) { -@@ -691,10 +726,12 @@ AdblockURLLoaderFactory::AdblockURLLoaderFactory( +@@ -691,10 +725,12 @@ AdblockURLLoaderFactory::AdblockURLLoaderFactory( DCHECK(config_.element_hider); DCHECK(config_.sitekey_storage); DCHECK(config_.csp_injector); @@ -4902,7 +4924,7 @@ diff --git a/components/adblock/core/subscription/preloaded_subscription_provide diff --git a/components/adblock/core/subscription/subscription.cc b/components/adblock/core/subscription/subscription.cc --- a/components/adblock/core/subscription/subscription.cc +++ b/components/adblock/core/subscription/subscription.cc -@@ -16,9 +16,28 @@ +@@ -16,9 +16,27 @@ */ #include "components/adblock/core/subscription/subscription.h" @@ -4926,8 +4948,7 @@ diff --git a/components/adblock/core/subscription/subscription.cc b/components/a + case State::Unknown: + return "Unknown"; + } -+ NOTREACHED(); -+ return ""; ++ NOTREACHED_NORETURN(); +} + } // namespace adblock diff --git a/build/patches/Improve-the-browser-sandbox.patch b/build/patches/Improve-the-browser-sandbox.patch index 44d7a808..2bc1a3ce 100644 --- a/build/patches/Improve-the-browser-sandbox.patch +++ b/build/patches/Improve-the-browser-sandbox.patch @@ -7,17 +7,9 @@ using the new flags on android License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html --- - .../common/features_cc/Improve-the-browser-sandbox.inc | 1 + - sandbox/policy/features.cc | 8 ++++++++ - 2 files changed, 9 insertions(+) - create mode 100644 cromite_flags/third_party/blink/common/features_cc/Improve-the-browser-sandbox.inc + sandbox/policy/features.cc | 8 ++++++++ + 1 file changed, 8 insertions(+) -diff --git a/cromite_flags/third_party/blink/common/features_cc/Improve-the-browser-sandbox.inc b/cromite_flags/third_party/blink/common/features_cc/Improve-the-browser-sandbox.inc -new file mode 100644 ---- /dev/null -+++ b/cromite_flags/third_party/blink/common/features_cc/Improve-the-browser-sandbox.inc -@@ -0,0 +1 @@ -+SET_CROMITE_FEATURE_ENABLED(kEnableMojoJSProtectedMemory); diff --git a/sandbox/policy/features.cc b/sandbox/policy/features.cc --- a/sandbox/policy/features.cc +++ b/sandbox/policy/features.cc diff --git a/build/patches/Move-navigation-bar-to-bottom.patch b/build/patches/Move-navigation-bar-to-bottom.patch index 4f55ae94..667ee2e1 100644 --- a/build/patches/Move-navigation-bar-to-bottom.patch +++ b/build/patches/Move-navigation-bar-to-bottom.patch @@ -24,13 +24,13 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../tab_management/TabGroupUiToolbarView.java | 17 ++ .../tab_management/TabGroupUiViewBinder.java | 3 + .../TabListContainerViewBinder.java | 15 +- - .../tab_management/TabListCoordinator.java | 151 +++++++++++++++++- - .../TabListEmptyCoordinator.java | 8 + + .../tab_management/TabListCoordinator.java | 153 +++++++++++++++++- + .../TabListEmptyCoordinator.java | 15 +- .../tab_management/TabListRecyclerView.java | 19 ++- .../tab_management/TabSwitcherMediator.java | 27 +++- .../settings/AccessibilitySettings.java | 26 +++ .../ChromeAccessibilitySettingsDelegate.java | 69 ++++++++ - .../chrome/browser/app/ChromeActivity.java | 13 ++ + .../chrome/browser/app/ChromeActivity.java | 3 + .../compositor/CompositorViewHolder.java | 8 + .../layouts/LayoutManagerChrome.java | 19 ++- .../layouts/LayoutManagerChromeTablet.java | 4 +- @@ -45,17 +45,18 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../messages/MessageContainerCoordinator.java | 16 +- .../modaldialog/ChromeTabModalPresenter.java | 2 +- .../chrome/browser/ntp/NewTabPage.java | 14 +- - .../chrome/browser/ntp/NewTabPageLayout.java | 8 + + .../chrome/browser/ntp/NewTabPageLayout.java | 9 ++ .../chrome/browser/ntp/RecentTabsPage.java | 30 +++- - .../browser/searchwidget/SearchActivity.java | 13 +- + .../browser/searchwidget/SearchActivity.java | 11 ++ .../browser/settings/SettingsActivity.java | 5 + .../StatusIndicatorCoordinator.java | 9 ++ .../StatusIndicatorSceneLayer.java | 6 +- - .../browser/toolbar/ToolbarManager.java | 46 +++++- + .../browser/toolbar/ToolbarManager.java | 44 ++++- .../chrome/browser/ui/BottomContainer.java | 18 +++ .../ui/system/StatusBarColorController.java | 9 ++ .../android/compositor/layer/toolbar_layer.cc | 10 +- .../scene_layer/tab_strip_scene_layer.cc | 16 +- + .../BottomControlsStacker.java | 2 +- .../BrowserControlsMarginSupplier.java | 5 + .../BrowserControlsStateProvider.java | 6 + .../browser/feed/FeedListContentManager.java | 6 +- @@ -64,13 +65,12 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html chrome/browser/prefs/browser_prefs.cc | 2 +- .../chrome/browser/ui/appmenu/AppMenu.java | 40 ++++- .../ui/appmenu/AppMenuHandlerImpl.java | 10 ++ - .../omnibox/LocationBarCoordinator.java | 7 +- - ...mniboxSuggestionsDropdownEmbedderImpl.java | 18 ++- + ...mniboxSuggestionsDropdownEmbedderImpl.java | 18 +++ .../suggestions/AutocompleteCoordinator.java | 13 ++ .../suggestions/AutocompleteMediator.java | 6 +- .../DropdownItemViewInfoListManager.java | 7 +- - .../OmniboxSuggestionsDropdown.java | 39 ++++- - .../OmniboxSuggestionsDropdownEmbedder.java | 8 + + .../OmniboxSuggestionsDropdown.java | 11 +- + .../OmniboxSuggestionsDropdownEmbedder.java | 4 + .../strings/android_chrome_strings.grd | 6 + chrome/browser/ui/android/toolbar/BUILD.gn | 1 + .../toolbar/LocationBarFocusScrimHandler.java | 5 + @@ -88,7 +88,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../AccessibilitySettingsDelegate.java | 7 + .../render_widget_host_view_android.cc | 3 + .../Move-navigation-bar-to-bottom.inc | 17 ++ - 75 files changed, 1023 insertions(+), 86 deletions(-) + 75 files changed, 987 insertions(+), 81 deletions(-) create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Move-navigation-bar-to-bottom.inc diff --git a/cc/base/features.cc b/cc/base/features.cc @@ -621,7 +621,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser checkAwaitingLayout(); } }; -+ if (titleProvider != null && ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { ++ if (actionOnRelatedTabs && ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { + gridLayoutManager = + new GridLayoutManagerDockBottom(context, GRID_LAYOUT_SPAN_COUNT_COMPACT); + ((GridLayoutManagerDockBottom)gridLayoutManager) @@ -658,6 +658,15 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser } mMediator.setRecyclerViewItemAnimationToggle(mRecyclerView::setDisableItemAnimations); } +@@ -397,7 +541,7 @@ public class TabListCoordinator + + mHasEmptyView = hasEmptyView; + if (mHasEmptyView) { +- mTabListEmptyCoordinator = new TabListEmptyCoordinator(parentView, mModel); ++ mTabListEmptyCoordinator = new TabListEmptyCoordinator(parentView, mModel, mBrowserControlsStateProvider); + mEmptyStateHeadingResId = emptyHeadingStringResId; + mEmptyStateSubheadingResId = emptySubheadingStringResId; + mEmptyStateImageResId = emptyImageResId; @@ -708,6 +852,9 @@ public class TabListCoordinator void prepareTabSwitcherView() { registerLayoutChangeListener(); @@ -671,7 +680,13 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListEmptyCoordinator.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListEmptyCoordinator.java --- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListEmptyCoordinator.java +++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListEmptyCoordinator.java -@@ -13,6 +13,7 @@ import android.widget.TextView; +@@ -9,10 +9,13 @@ import android.view.View; + import android.view.ViewGroup; + import android.widget.ImageView; + import android.widget.TextView; ++import android.widget.FrameLayout; + ++import org.chromium.chrome.browser.browser_controls.BrowserControlsStateProvider; import org.chromium.chrome.tab_ui.R; import org.chromium.ui.modelutil.ListObservable; import org.chromium.ui.modelutil.ListObservable.ListObserver; @@ -679,7 +694,25 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser /** * Empty coordinator that is responsible for showing an empty state view in tab switcher when we are -@@ -121,6 +122,13 @@ class TabListEmptyCoordinator { +@@ -30,13 +33,16 @@ class TabListEmptyCoordinator { + private ListObserver mListObserver; + private boolean mIsTabSwitcherShowing; + private boolean mIsListObserverAttached; ++ private BrowserControlsStateProvider mBrowserControlsStateProvider; + +- public TabListEmptyCoordinator(ViewGroup rootView, TabListModel model) { ++ public TabListEmptyCoordinator(ViewGroup rootView, TabListModel model, ++ BrowserControlsStateProvider browserControlsStateProvider) { + mRootView = rootView; + mContext = rootView.getContext(); + + // Observe TabListModel to determine when to add / remove empty state view. + mModel = model; ++ mBrowserControlsStateProvider = browserControlsStateProvider; + mListObserver = + new ListObserver() { + @Override +@@ -121,6 +127,13 @@ class TabListEmptyCoordinator { public void attachEmptyView() { if (mEmptyView != null && mEmptyView.getParent() == null) { mRootView.addView(mEmptyView); @@ -989,23 +1022,6 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv /** * A {@link AsyncInitializationActivity} that builds and manages a {@link CompositorViewHolder} * and associated classes. -@@ -866,6 +869,16 @@ public abstract class ChromeActivity - controlContainer.initWithToolbar(toolbarLayoutId, - DeviceFormFactor.isForceTabletUI() - ? R.dimen.control_container_height_tabletui : 0); -+ ImageView shadowImage = findViewById(R.id.toolbar_hairline); -+ if (shadowImage != null) { -+ // Invert the shadown if the top toolbar is at the bottom -+ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { -+ ViewGroup.MarginLayoutParams marginParams = (ViewGroup.MarginLayoutParams)shadowImage.getLayoutParams(); -+ marginParams.setMargins(marginParams.leftMargin, 0, -+ marginParams.rightMargin, marginParams.bottomMargin); -+ shadowImage.setLayoutParams(marginParams); -+ } -+ } - } - onInitialLayoutInflationComplete(); - } diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorViewHolder.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorViewHolder.java --- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorViewHolder.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorViewHolder.java @@ -1554,16 +1570,17 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage. diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageLayout.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageLayout.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageLayout.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageLayout.java -@@ -17,6 +17,8 @@ import android.util.AttributeSet; +@@ -17,6 +17,9 @@ import android.util.AttributeSet; import android.view.DragEvent; import android.view.LayoutInflater; import android.view.ViewStub; +import android.view.ViewGroup.LayoutParams; +import android.widget.FrameLayout; ++import android.view.Gravity; import android.view.View; import android.view.ViewGroup; import android.widget.LinearLayout; -@@ -176,6 +178,12 @@ public class NewTabPageLayout extends LinearLayout { +@@ -176,6 +179,12 @@ public class NewTabPageLayout extends LinearLayout { mMiddleSpacer = findViewById(R.id.ntp_middle_spacer); mFakeSearchBoxLayout = findViewById(R.id.search_box); insertSiteSectionView(); @@ -1679,15 +1696,6 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/Se // Update the status bar's color based on the toolbar color. Drawable anchorViewBackground = anchorView.getBackground(); -@@ -306,7 +317,7 @@ public class SearchActivity extends AsyncInitializationActivity - - mLocationBarCoordinator = - new LocationBarCoordinator( -- mSearchBox, -+ mSearchBox, anchorView, - anchorView, - mProfileSupplier, - PrivacyPreferencesManagerImpl.getInstance(), diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java @@ -1765,15 +1773,6 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar /** * Contains logic for managing the toolbar visual component. This class manages the interactions * with the rest of the application to ensure the toolbar is always visually up to date. -@@ -863,7 +866,7 @@ public class ToolbarManager - LocationBarCoordinator locationBarCoordinator = - new LocationBarCoordinator( - mActivity.findViewById(R.id.location_bar), -- toolbarLayout, -+ toolbarLayout, controlContainer, - profileSupplier, - PrivacyPreferencesManagerImpl.getInstance(), - mLocationBarModel, @@ -1176,6 +1179,7 @@ public class ToolbarManager // the height won't be measured by the background image. if (mControlContainer.getBackground() == null) { @@ -1815,7 +1814,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar + ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { + // move up the container view of the ui + // below there is the toolbar -+ mBottomRoot.setTranslationY(-mBrowserControlsSizer.getTopControlsHeight()); ++ mBottomRoot.setTranslationY(-mBrowserControlsVisibilityManager.getTopControlsHeight()); + } + } + @@ -2020,6 +2019,18 @@ diff --git a/chrome/browser/android/compositor/scene_layer/tab_strip_scene_layer content_tree_->layer()->SetPosition(gfx::PointF(0, -y_offset)); // Update left and right padding layers as required. +diff --git a/chrome/browser/browser_controls/android/java/src/org/chromium/chrome/browser/browser_controls/BottomControlsStacker.java b/chrome/browser/browser_controls/android/java/src/org/chromium/chrome/browser/browser_controls/BottomControlsStacker.java +--- a/chrome/browser/browser_controls/android/java/src/org/chromium/chrome/browser/browser_controls/BottomControlsStacker.java ++++ b/chrome/browser/browser_controls/android/java/src/org/chromium/chrome/browser/browser_controls/BottomControlsStacker.java +@@ -106,7 +106,7 @@ public class BottomControlsStacker implements BrowserControlsStateProvider.Obser + /** + * @return {@link BrowserControlsStateProvider} instance in the current Activity. + */ +- public BrowserControlsStateProvider getBrowserControls() { ++ public BrowserControlsSizer getBrowserControls() { + return mBrowserControlsSizer; + } + diff --git a/chrome/browser/browser_controls/android/java/src/org/chromium/chrome/browser/browser_controls/BrowserControlsMarginSupplier.java b/chrome/browser/browser_controls/android/java/src/org/chromium/chrome/browser/browser_controls/BrowserControlsMarginSupplier.java --- a/chrome/browser/browser_controls/android/java/src/org/chromium/chrome/browser/browser_controls/BrowserControlsMarginSupplier.java +++ b/chrome/browser/browser_controls/android/java/src/org/chromium/chrome/browser/browser_controls/BrowserControlsMarginSupplier.java @@ -2286,48 +2297,18 @@ diff --git a/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/ch ContextThemeWrapper wrapper = new ContextThemeWrapper(mContext, R.style.OverflowMenuThemeOverlay); -diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java ---- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java -+++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java -@@ -92,6 +92,7 @@ public class LocationBarCoordinator - private StatusCoordinator mStatusCoordinator; - private WindowDelegate mWindowDelegate; - private WindowAndroid mWindowAndroid; -+ private View mContainerView; - private LocationBarMediator mLocationBarMediator; - private View mUrlBar; - private View mDeleteButton; -@@ -149,7 +150,7 @@ public class LocationBarCoordinator - */ - public LocationBarCoordinator( - View locationBarLayout, -- View autocompleteAnchorView, -+ View autocompleteAnchorView, View containerView, - ObservableSupplier profileObservableSupplier, - PrivacyPreferencesManager privacyPreferencesManager, - LocationBarDataProvider locationBarDataProvider, -@@ -187,6 +188,7 @@ public class LocationBarCoordinator - mWindowAndroid = windowAndroid; - mActivityLifecycleDispatcher = activityLifecycleDispatcher; - mActivityLifecycleDispatcher.register(this); -+ mContainerView = containerView; - Context context = mLocationBarLayout.getContext(); - OneshotSupplierImpl templateUrlServiceSupplier = - new OneshotSupplierImpl<>(); -@@ -200,7 +202,8 @@ public class LocationBarCoordinator - mLocationBarLayout, - uiOverrides.isForcedPhoneStyleOmnibox(), - baseChromeLayout, -- deferredIMEWindowInsetApplicationCallback::getCurrentKeyboardHeight); -+ deferredIMEWindowInsetApplicationCallback::getCurrentKeyboardHeight, -+ mContainerView); - - mUrlBar = mLocationBarLayout.findViewById(R.id.url_bar); - // TODO(crbug.com/40733049): Inject LocaleManager instance to LocationBarCoordinator instead diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/OmniboxSuggestionsDropdownEmbedderImpl.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/OmniboxSuggestionsDropdownEmbedderImpl.java --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/OmniboxSuggestionsDropdownEmbedderImpl.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/OmniboxSuggestionsDropdownEmbedderImpl.java -@@ -23,6 +23,7 @@ import org.chromium.base.supplier.ObservableSupplierImpl; +@@ -15,6 +15,7 @@ import android.view.WindowInsets; + import androidx.annotation.NonNull; + import androidx.annotation.Nullable; + import androidx.core.graphics.Insets; ++import androidx.core.view.ViewCompat; + import androidx.core.view.WindowInsetsCompat; + + import org.chromium.base.BuildInfo; +@@ -23,6 +24,7 @@ import org.chromium.base.supplier.ObservableSupplierImpl; import org.chromium.base.supplier.Supplier; import org.chromium.chrome.browser.omnibox.styles.OmniboxResourceProvider; import org.chromium.chrome.browser.omnibox.suggestions.OmniboxSuggestionsDropdownEmbedder; @@ -2335,28 +2316,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow import org.chromium.ui.base.DeviceFormFactor; import org.chromium.ui.base.ViewUtils; import org.chromium.ui.base.WindowAndroid; -@@ -42,6 +43,7 @@ class OmniboxSuggestionsDropdownEmbedderImpl - private final @NonNull WindowAndroid mWindowAndroid; - private final @NonNull View mAnchorView; - private final @NonNull View mAlignmentView; -+ private final @NonNull View mContainerView; - private final boolean mForcePhoneStyleOmnibox; - private final Supplier mKeyboardHeightSupplier; - private final @NonNull Context mContext; -@@ -72,9 +74,11 @@ class OmniboxSuggestionsDropdownEmbedderImpl - @NonNull View alignmentView, - boolean forcePhoneStyleOmnibox, - @Nullable View baseChromeLayout, -- Supplier keyboardHeightSupplier) { -+ Supplier keyboardHeightSupplier, -+ @NonNull View containerView) { - mWindowAndroid = windowAndroid; - mAnchorView = anchorView; -+ mContainerView = containerView; - mAlignmentView = alignmentView; - mForcePhoneStyleOmnibox = forcePhoneStyleOmnibox; - mKeyboardHeightSupplier = keyboardHeightSupplier; -@@ -97,6 +101,16 @@ class OmniboxSuggestionsDropdownEmbedderImpl +@@ -97,6 +99,11 @@ class OmniboxSuggestionsDropdownEmbedderImpl mOmniboxAlignmentSupplier.removeObserver(obs); } @@ -2364,24 +2324,42 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow + public View getAnchorView() { + return mAnchorView; + } -+ -+ @Override -+ public View getAnchorContainerView() { -+ return mContainerView; -+ } + @Nullable @Override public OmniboxAlignment getCurrentAlignment() { -@@ -243,6 +257,8 @@ class OmniboxSuggestionsDropdownEmbedderImpl - } +@@ -121,6 +128,9 @@ class OmniboxSuggestionsDropdownEmbedderImpl - int keyboardHeight = mKeyboardHeightSupplier.get(); + @Override + public void onDetachedFromWindow() { ++ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { ++ recalculateOmniboxAlignment(); ++ } + mAnchorView.removeOnLayoutChangeListener(this); + mAlignmentView.removeOnLayoutChangeListener(this); + mAnchorView.getViewTreeObserver().removeOnGlobalLayoutListener(this); +@@ -211,6 +221,8 @@ class OmniboxSuggestionsDropdownEmbedderImpl + ViewUtils.getRelativeLayoutPosition(baseRelativeLayout, mAnchorView, mPositionArray); + + int top = mPositionArray[1] + mAnchorView.getMeasuredHeight() - contentViewTopPadding; + if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) -+ keyboardHeight = 0; ++ top -= mPositionArray[1]; + int left; + int width; + int paddingLeft; +@@ -277,6 +289,12 @@ class OmniboxSuggestionsDropdownEmbedderImpl + : contentView.getMeasuredHeight() - keyboardHeight; + int height = Math.min(windowSpace, contentSpace) - top; - int windowHeight; - if (BuildInfo.getInstance().isAutomotive ++ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { ++ ViewCompat.setPaddingRelative( ++ contentView, 0, 0, 0, keyboardHeight); ++ top = 0; ++ } ++ + // TODO(pnoland@, https://crbug.com/1416985): avoid pushing changes that are identical to + // the previous alignment value. + OmniboxAlignment omniboxAlignment = diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteCoordinator.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteCoordinator.java --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteCoordinator.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteCoordinator.java @@ -2486,17 +2464,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow /** A widget for showing a list of omnibox suggestions. */ public class OmniboxSuggestionsDropdown extends RecyclerView { /** -@@ -232,7 +235,8 @@ public class OmniboxSuggestionsDropdown extends RecyclerView { - * - * @param context Context used for contained views. - */ -- public OmniboxSuggestionsDropdown(@NonNull Context context, AttributeSet attrs) { -+ public OmniboxSuggestionsDropdown(@NonNull Context context, AttributeSet attrs, -+ @NonNull OmniboxSuggestionsDropdownEmbedder embedder) { - super(context, attrs, android.R.attr.dropDownListViewStyle); - setFocusable(true); - setFocusableInTouchMode(true); -@@ -242,7 +246,6 @@ public class OmniboxSuggestionsDropdown extends RecyclerView { +@@ -242,7 +245,6 @@ public class OmniboxSuggestionsDropdown extends RecyclerView { setItemAnimator(null); mLayoutScrollListener = new SuggestionLayoutScrollListener(context); @@ -2504,7 +2472,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow mSelectionController = new RecyclerViewSelectionController(mLayoutScrollListener); addOnChildAttachStateChangeListener(mSelectionController); -@@ -251,6 +254,20 @@ public class OmniboxSuggestionsDropdown extends RecyclerView { +@@ -251,6 +253,13 @@ public class OmniboxSuggestionsDropdown extends RecyclerView { resources.getDimensionPixelOffset(R.dimen.omnibox_suggestion_list_padding_bottom); int paddingTop = resources.getDimensionPixelOffset(R.dimen.omnibox_suggestion_list_padding_top); @@ -2512,51 +2480,12 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow + // reverse the layout so that the items are at the bottom (in reverse order) + // and anchored to the bottom edge + mLayoutScrollListener.setReverseLayout(true); -+ -+ if (!embedder.isTablet()) { -+ ViewGroup.MarginLayoutParams embedderParams = (ViewGroup.MarginLayoutParams) -+ embedder.getAnchorContainerView().getLayoutParams(); -+ paddingBottom = resources.getDimensionPixelOffset(R.dimen.toolbar_height_no_shadow) + -+ embedderParams.bottomMargin; -+ } + paddingTop = 0; + } + setLayoutManager(mLayoutScrollListener); ViewCompat.setPaddingRelative(this, 0, paddingTop, 0, paddingBottom); if (OmniboxFeatures.sAsyncViewInflation.isEnabled()) { -@@ -417,8 +434,16 @@ public class OmniboxSuggestionsDropdown extends RecyclerView { - try (TraceEvent tracing = TraceEvent.scoped("OmniboxSuggestionsList.Measure"); - TimingMetric metric = OmniboxMetrics.recordSuggestionListMeasureTime(); - TimingMetric metric2 = OmniboxMetrics.recordSuggestionListMeasureWallTime()) { -- maybeUpdateLayoutParams(mOmniboxAlignment.top); -- int availableViewportHeight = mOmniboxAlignment.height; -+ int top = mOmniboxAlignment.top; -+ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { -+ top = 0; -+ } -+ maybeUpdateLayoutParams(top); -+ boolean useAlignmentSpecifiedHeight = -+ !ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled(); -+ int availableViewportHeight = useAlignmentSpecifiedHeight -+ ? mOmniboxAlignment.height -+ : calculateAvailableViewportHeight() - top; - int desiredWidth = mOmniboxAlignment.width; - adjustHorizontalPosition(); - notifyObserversIfViewportHeightChanged(availableViewportHeight); -@@ -438,6 +463,12 @@ public class OmniboxSuggestionsDropdown extends RecyclerView { - } - } - -+ private int calculateAvailableViewportHeight() { -+ Rect mTempRect = new Rect(); -+ mEmbedder.getWindowDelegate().getWindowVisibleDisplayFrame(mTempRect); -+ return mTempRect.height(); -+ } -+ - private void maybeUpdateLayoutParams(int topMargin) { - // Update the layout params to ensure the parent correctly positions the suggestions - // under the anchor view. diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/OmniboxSuggestionsDropdownEmbedder.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/OmniboxSuggestionsDropdownEmbedder.java --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/OmniboxSuggestionsDropdownEmbedder.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/OmniboxSuggestionsDropdownEmbedder.java @@ -2568,16 +2497,12 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow import androidx.annotation.NonNull; import androidx.annotation.Nullable; -@@ -109,6 +110,13 @@ public interface OmniboxSuggestionsDropdownEmbedder { +@@ -109,6 +110,9 @@ public interface OmniboxSuggestionsDropdownEmbedder { @NonNull OmniboxAlignment getCurrentAlignment(); + @NonNull + View getAnchorView(); -+ -+ /** Return the container view the suggestion list should be drawn in. */ -+ @NonNull -+ View getAnchorContainerView(); + /** Return whether the suggestions are being rendered in the tablet UI. */ boolean isTablet(); @@ -2722,7 +2647,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow + && mIsBottomControlsVisible == false + && ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { + // always show the toolbar if the bottom controls are visible, so as not to leave the hole below. -+ mBrowserControlsSizer.getBrowserVisibilityDelegate().showControlsTransient(); ++ mBottomControlsStacker.getBrowserControls().getBrowserVisibilityDelegate().showControlsTransient(); + } mIsBottomControlsVisible = visible; updateCompositedViewVisibility(); diff --git a/build/patches/Multiple-fingerprinting-mitigations.patch b/build/patches/Multiple-fingerprinting-mitigations.patch index 7c59510a..526369f6 100644 --- a/build/patches/Multiple-fingerprinting-mitigations.patch +++ b/build/patches/Multiple-fingerprinting-mitigations.patch @@ -46,14 +46,14 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../canvas2d/base_rendering_context_2d.cc | 25 ++- third_party/blink/renderer/platform/BUILD.gn | 5 +- .../platform/exported/web_runtime_features.cc | 13 ++ - .../platform/graphics/image_data_buffer.cc | 7 + + .../platform/graphics/image_data_buffer.cc | 8 + .../platform/graphics/static_bitmap_image.cc | 155 ++++++++++++++++++ .../platform/graphics/static_bitmap_image.h | 2 + .../platform/runtime_enabled_features.json5 | 9 + third_party/ungoogled/BUILD.gn | 10 ++ third_party/ungoogled/ungoogled_switches.cc | 18 ++ third_party/ungoogled/ungoogled_switches.h | 18 ++ - 27 files changed, 392 insertions(+), 8 deletions(-) + 27 files changed, 393 insertions(+), 8 deletions(-) create mode 100755 cromite_flags/chrome/browser/about_flags_cc/Multiple-fingerprinting-mitigations.inc create mode 100644 third_party/ungoogled/BUILD.gn create mode 100644 third_party/ungoogled/ungoogled_switches.cc @@ -562,7 +562,7 @@ diff --git a/third_party/blink/renderer/platform/exported/web_runtime_features.c diff --git a/third_party/blink/renderer/platform/graphics/image_data_buffer.cc b/third_party/blink/renderer/platform/graphics/image_data_buffer.cc --- a/third_party/blink/renderer/platform/graphics/image_data_buffer.cc +++ b/third_party/blink/renderer/platform/graphics/image_data_buffer.cc -@@ -36,6 +36,8 @@ +@@ -36,8 +36,11 @@ #include "base/compiler_specific.h" #include "base/memory/ptr_util.h" @@ -570,8 +570,11 @@ diff --git a/third_party/blink/renderer/platform/graphics/image_data_buffer.cc b +#include "base/logging.h" #include "third_party/blink/renderer/platform/graphics/static_bitmap_image.h" #include "third_party/blink/renderer/platform/image-encoders/image_encoder.h" ++#include "third_party/blink/renderer/platform/runtime_enabled_features.h" #include "third_party/blink/renderer/platform/wtf/text/base64.h" -@@ -145,6 +147,11 @@ bool ImageDataBuffer::EncodeImageInternal(const ImageEncodingMimeType mime_type, + #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h" + #include "third_party/blink/renderer/platform/wtf/vector.h" +@@ -145,6 +148,11 @@ bool ImageDataBuffer::EncodeImageInternal(const ImageEncodingMimeType mime_type, const SkPixmap& pixmap) const { DCHECK(is_valid_); diff --git a/build/patches/Partition-HSTS-cache-by-NAK.patch b/build/patches/Partition-HSTS-cache-by-NAK.patch index 589c70bc..213bd2e1 100644 --- a/build/patches/Partition-HSTS-cache-by-NAK.patch +++ b/build/patches/Partition-HSTS-cache-by-NAK.patch @@ -11,7 +11,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../web_package/signed_exchange_handler.h | 2 + .../web_package/signed_exchange_loader.cc | 2 +- net/http/transport_security_state.cc | 109 ++++++++++++------ - net/http/transport_security_state.h | 38 +++--- + net/http/transport_security_state.h | 39 ++++--- net/quic/crypto/proof_verifier_chromium.cc | 5 +- net/quic/quic_chromium_client_session.cc | 2 +- net/socket/ssl_client_socket_impl.cc | 5 +- @@ -22,7 +22,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html services/network/network_context.cc | 31 +++-- services/network/network_context.h | 13 ++- .../public/mojom/network_context.mojom | 9 +- - 18 files changed, 172 insertions(+), 102 deletions(-) + 18 files changed, 173 insertions(+), 102 deletions(-) diff --git a/chrome/browser/ssl/https_upgrades_interceptor.cc b/chrome/browser/ssl/https_upgrades_interceptor.cc --- a/chrome/browser/ssl/https_upgrades_interceptor.cc @@ -448,7 +448,15 @@ diff --git a/net/http/transport_security_state.cc b/net/http/transport_security_ diff --git a/net/http/transport_security_state.h b/net/http/transport_security_state.h --- a/net/http/transport_security_state.h +++ b/net/http/transport_security_state.h -@@ -297,13 +297,14 @@ class NET_EXPORT TransportSecurityState { +@@ -289,6 +289,7 @@ class NET_EXPORT TransportSecurityState { + // As ShouldUpgradeToSSL(), but also returns whether the decision came from + // static or dynamic state, for metrics. + SSLUpgradeDecision GetSSLUpgradeDecision( ++ const NetworkAnonymizationKey& nak, + const std::string& host, + const NetLogWithSource& net_log = NetLogWithSource()); + +@@ -297,13 +298,14 @@ class NET_EXPORT TransportSecurityState { // primary public interface; direct access to STS and PKP states is best // left to tests. The caller needs to handle the optional pinning override // when is_issued_by_known_root is false. @@ -467,7 +475,7 @@ diff --git a/net/http/transport_security_state.h b/net/http/transport_security_s // Returns CT_REQUIREMENTS_NOT_MET if a connection violates CT policy // requirements: that is, if a connection to |host|, using the validated -@@ -387,7 +388,7 @@ class NET_EXPORT TransportSecurityState { +@@ -387,7 +389,7 @@ class NET_EXPORT TransportSecurityState { // // If an entry is deleted, the new state will be persisted through // the Delegate (if any). @@ -476,7 +484,7 @@ diff --git a/net/http/transport_security_state.h b/net/http/transport_security_s // Returns true and updates |*result| if |host| has dynamic or static // HSTS/HPKP (respectively) state. If multiple entries match |host|, dynamic -@@ -397,8 +398,8 @@ class NET_EXPORT TransportSecurityState { +@@ -397,8 +399,8 @@ class NET_EXPORT TransportSecurityState { // // Note that these methods are not const because they opportunistically remove // entries that have expired. @@ -487,7 +495,7 @@ diff --git a/net/http/transport_security_state.h b/net/http/transport_security_s // Returns true and updates |*result| iff |host| has static HSTS/HPKP // (respectively) state. If multiple entries match |host|, the most specific -@@ -412,22 +413,24 @@ class NET_EXPORT TransportSecurityState { +@@ -412,22 +414,24 @@ class NET_EXPORT TransportSecurityState { // // Note that these methods are not const because they opportunistically remove // entries that have expired. @@ -517,7 +525,7 @@ diff --git a/net/http/transport_security_state.h b/net/http/transport_security_s const base::Time& expiry, bool include_subdomains, const HashValueVector& hashes); -@@ -465,7 +468,7 @@ class NET_EXPORT TransportSecurityState { +@@ -465,7 +469,7 @@ class NET_EXPORT TransportSecurityState { typedef std::map STSStateMap; typedef std::map PKPStateMap; @@ -526,7 +534,7 @@ diff --git a/net/http/transport_security_state.h b/net/http/transport_security_s // IsBuildTimely returns true if the current build is new enough ensure that // built in security information (i.e. HSTS preloading and pinning -@@ -475,7 +478,8 @@ class NET_EXPORT TransportSecurityState { +@@ -475,7 +479,8 @@ class NET_EXPORT TransportSecurityState { // Helper method for actually checking pins. PKPStatus CheckPublicKeyPinsImpl(const HostPortPair& host_port_pair, bool is_issued_by_known_root, @@ -536,7 +544,7 @@ diff --git a/net/http/transport_security_state.h b/net/http/transport_security_s // If a Delegate is present, notify it that the internal state has // changed. -@@ -485,11 +489,13 @@ class NET_EXPORT TransportSecurityState { +@@ -485,11 +490,13 @@ class NET_EXPORT TransportSecurityState { // any previous state for the |host|, including static entries. // // The new state for |host| is persisted using the Delegate (if any). diff --git a/build/patches/Remove-binary-blob-integrations.patch b/build/patches/Remove-binary-blob-integrations.patch index 2f12fdc2..4bb3d66d 100644 --- a/build/patches/Remove-binary-blob-integrations.patch +++ b/build/patches/Remove-binary-blob-integrations.patch @@ -53,7 +53,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html chrome/browser/ui/BUILD.gn | 3 - chrome/browser/ui/android/omnibox/BUILD.gn | 4 - .../FullscreenSigninMediator.java | 12 +- - chrome/browser/ui/webauthn/sheet_models.cc | 8 +- + chrome/browser/ui/webauthn/sheet_models.cc | 9 +- .../webui/chrome_web_ui_controller_factory.cc | 3 - chrome/browser/webauthn/android/BUILD.gn | 1 - .../CableAuthenticatorModuleProvider.java | 35 +- @@ -108,7 +108,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../preconditions/javatests/BUILD.gn | 1 - .../gms/ChromiumPlayServicesAvailability.java | 10 +- third_party/cardboard/BUILD.gn | 4 - - 84 files changed, 116 insertions(+), 2227 deletions(-) + 84 files changed, 116 insertions(+), 2228 deletions(-) create mode 100644 components/webauthn/android/java/src/org/chromium/components/webauthn/ConditionalUiState.java diff --git a/android_webview/expectations/system_webview_bundle.AndroidManifest.expected b/android_webview/expectations/system_webview_bundle.AndroidManifest.expected @@ -1173,8 +1173,11 @@ diff --git a/chrome/browser/ui/android/signin/java/src/org/chromium/chrome/brows diff --git a/chrome/browser/ui/webauthn/sheet_models.cc b/chrome/browser/ui/webauthn/sheet_models.cc --- a/chrome/browser/ui/webauthn/sheet_models.cc +++ b/chrome/browser/ui/webauthn/sheet_models.cc -@@ -1608,13 +1608,7 @@ bool AuthenticatorMultiSourcePickerSheetModel::IsManageDevicesButtonVisible() - using Mechanism = AuthenticatorRequestDialogModel::Mechanism; +@@ -1605,16 +1605,9 @@ AuthenticatorMultiSourcePickerSheetModel:: + + bool AuthenticatorMultiSourcePickerSheetModel::IsManageDevicesButtonVisible() + const { +- using Mechanism = AuthenticatorRequestDialogModel::Mechanism; // If any phones or passkeys from a phone are shown then also show a button // that goes to the settings page to manage them. - return base::ranges::any_of( diff --git a/build/patches/Restore-BookmarkToolbar-setCurrentFolder.patch b/build/patches/Restore-BookmarkToolbar-setCurrentFolder.patch index 034996fb..c465b8b7 100644 --- a/build/patches/Restore-BookmarkToolbar-setCurrentFolder.patch +++ b/build/patches/Restore-BookmarkToolbar-setCurrentFolder.patch @@ -6,16 +6,17 @@ restore https://chromium-review.googlesource.com/c/chromium/src/+/5554182 License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html --- - .../chromium/chrome/browser/bookmarks/BookmarkToolbar.java | 6 ++++++ - .../chrome/browser/bookmarks/BookmarkToolbarMediator.java | 1 + - .../chrome/browser/bookmarks/BookmarkToolbarProperties.java | 1 + - .../chrome/browser/bookmarks/BookmarkToolbarViewBinder.java | 2 ++ - 4 files changed, 10 insertions(+) + .../chrome/browser/bookmarks/BookmarkToolbar.java | 12 ++++++++++++ + .../bookmarks/BookmarkToolbarCoordinator.java | 1 + + .../browser/bookmarks/BookmarkToolbarMediator.java | 1 + + .../browser/bookmarks/BookmarkToolbarProperties.java | 8 ++++++++ + .../browser/bookmarks/BookmarkToolbarViewBinder.java | 4 ++++ + 5 files changed, 26 insertions(+) diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbar.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbar.java --- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbar.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbar.java -@@ -10,6 +10,7 @@ import android.view.MenuItem; +@@ -10,11 +10,13 @@ import android.view.MenuItem; import android.view.View.OnClickListener; import androidx.annotation.IdRes; @@ -23,7 +24,17 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm import androidx.appcompat.widget.Toolbar.OnMenuItemClickListener; import androidx.core.view.MenuCompat; -@@ -33,6 +34,7 @@ public class BookmarkToolbar extends SelectableListToolbar + import org.chromium.chrome.R; + import org.chromium.chrome.browser.bookmarks.BookmarkUiState.BookmarkUiMode; ++import org.chromium.components.bookmarks.BookmarkItem; + import org.chromium.components.bookmarks.BookmarkId; + import org.chromium.components.browser_ui.util.ToolbarUtils; + import org.chromium.components.browser_ui.widget.selectable_list.SelectableListToolbar; +@@ -30,9 +32,11 @@ import java.util.function.Function; + */ + public class BookmarkToolbar extends SelectableListToolbar + implements OnMenuItemClickListener, OnClickListener { ++ private BookmarkModel mBookmarkModel; private BookmarkOpener mBookmarkOpener; private SelectionDelegate mSelectionDelegate; @@ -31,7 +42,18 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm private boolean mEditButtonVisible; private boolean mNewFolderButtonVisible; private boolean mNewFolderButtonEnabled; -@@ -167,6 +169,10 @@ public class BookmarkToolbar extends SelectableListToolbar +@@ -60,6 +64,10 @@ public class BookmarkToolbar extends SelectableListToolbar + setOnMenuItemClickListener(this); + } + ++ void setBookmarkModel(BookmarkModel bookmarkModel) { ++ mBookmarkModel = bookmarkModel; ++ } ++ + void setBookmarkOpener(BookmarkOpener bookmarkOpener) { + mBookmarkOpener = bookmarkOpener; + } +@@ -167,6 +175,10 @@ public class BookmarkToolbar extends SelectableListToolbar getMenu().findItem(id).setChecked(true); } @@ -42,6 +64,17 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm void setNavigateBackRunnable(Runnable navigateBackRunnable) { mNavigateBackRunnable = navigateBackRunnable; } +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarCoordinator.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarCoordinator.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarCoordinator.java +@@ -55,6 +55,7 @@ public class BookmarkToolbarCoordinator { + searchDelegate, R.string.bookmark_toolbar_search, R.id.search_menu_id); + + mModel = new PropertyModel.Builder(BookmarkToolbarProperties.ALL_KEYS).build(); ++ mModel.set(BookmarkToolbarProperties.BOOKMARK_MODEL, bookmarkModel); + mModel.set(BookmarkToolbarProperties.BOOKMARK_OPENER, bookmarkOpener); + mModel.set(BookmarkToolbarProperties.SELECTION_DELEGATE, selectionDelegate); + mModel.set(BookmarkToolbarProperties.BOOKMARK_UI_MODE, BookmarkUiMode.LOADING); diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarMediator.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarMediator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarMediator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarMediator.java @@ -56,7 +89,35 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarProperties.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarProperties.java --- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarProperties.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarProperties.java -@@ -88,6 +88,7 @@ class BookmarkToolbarProperties { +@@ -4,6 +4,7 @@ + + package org.chromium.chrome.browser.bookmarks; + ++import org.chromium.components.bookmarks.BookmarkId; + import org.chromium.components.browser_ui.widget.selectable_list.SelectionDelegate; + import org.chromium.ui.modelutil.PropertyKey; + import org.chromium.ui.modelutil.PropertyModel.WritableBooleanPropertyKey; +@@ -19,6 +20,8 @@ import java.util.function.Function; + */ + class BookmarkToolbarProperties { + /** Dependencies */ ++ static final WritableObjectPropertyKey BOOKMARK_MODEL = ++ new WritableObjectPropertyKey<>(); + static final WritableObjectPropertyKey BOOKMARK_OPENER = + new WritableObjectPropertyKey<>(); + +@@ -68,6 +71,10 @@ class BookmarkToolbarProperties { + static final WritableObjectPropertyKey FAKE_SELECTION_STATE_CHANGE = + new WritableObjectPropertyKey<>(/* skipEquality= */ true); + ++ /** Bookmark state properties. */ ++ static final WritableObjectPropertyKey CURRENT_FOLDER = ++ new WritableObjectPropertyKey<>(/* skipEquality= */ true); ++ + /** Callables to delegate business logic back to the mediator */ + static final WritableObjectPropertyKey> MENU_ID_CLICKED_FUNCTION = + new WritableObjectPropertyKey<>(); +@@ -88,6 +95,7 @@ class BookmarkToolbarProperties { NEW_FOLDER_BUTTON_VISIBLE, NEW_FOLDER_BUTTON_ENABLED, NAVIGATION_BUTTON_STATE, @@ -67,7 +128,16 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarViewBinder.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarViewBinder.java --- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarViewBinder.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarViewBinder.java -@@ -52,6 +52,8 @@ class BookmarkToolbarViewBinder { +@@ -13,6 +13,8 @@ class BookmarkToolbarViewBinder { + public static void bind(PropertyModel model, BookmarkToolbar bookmarkToolbar, PropertyKey key) { + if (key == BookmarkToolbarProperties.BOOKMARK_OPENER) { + bookmarkToolbar.setBookmarkOpener(model.get(BookmarkToolbarProperties.BOOKMARK_OPENER)); ++ } else if (key == BookmarkToolbarProperties.BOOKMARK_MODEL) { ++ bookmarkToolbar.setBookmarkModel(model.get(BookmarkToolbarProperties.BOOKMARK_MODEL)); + } else if (key == BookmarkToolbarProperties.SELECTION_DELEGATE) { + bookmarkToolbar.setSelectionDelegate( + model.get(BookmarkToolbarProperties.SELECTION_DELEGATE)); +@@ -52,6 +54,8 @@ class BookmarkToolbarViewBinder { } else if (key == BookmarkToolbarProperties.CHECKED_VIEW_MENU_ID) { bookmarkToolbar.setCheckedViewMenuId( model.get(BookmarkToolbarProperties.CHECKED_VIEW_MENU_ID)); diff --git a/build/patches/Restore-LastTabStandingTracker.patch b/build/patches/Restore-LastTabStandingTracker.patch index 9a177d82..a8dd5bca 100644 --- a/build/patches/Restore-LastTabStandingTracker.patch +++ b/build/patches/Restore-LastTabStandingTracker.patch @@ -372,7 +372,7 @@ new file mode 100644 + private: + explicit LastTabStandingTrackerTabHelper(content::WebContents* webContents); + friend class content::WebContentsUserData; -+ absl::optional last_committed_origin_; ++ std::optional last_committed_origin_; + + WEB_CONTENTS_USER_DATA_KEY_DECL(); +}; diff --git a/build/patches/Restore-Simplified-NTP-launch.patch b/build/patches/Restore-Simplified-NTP-launch.patch index 3e461121..4c8a14c9 100644 --- a/build/patches/Restore-Simplified-NTP-launch.patch +++ b/build/patches/Restore-Simplified-NTP-launch.patch @@ -6,24 +6,34 @@ This reverts commit 4d0e4483c5f77c66a8b6193e8a3bec5d0624d6ad. License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- - chrome/android/chrome_java_resources.gni | 1 + - chrome/android/chrome_java_sources.gni | 1 + - .../java/res/layout/new_tab_page_layout.xml | 7 ++ - .../android/java/res/layout/ntp_shortcuts.xml | 65 +++++++++++++++++++ - .../feedback/ChromeFeedbackCollector.java | 1 + - .../feedback/SimplifiedNtpFeedbackSource.java | 38 +++++++++++ - .../identity_disc/IdentityDiscController.java | 5 +- - .../NativePageNavigationDelegateImpl.java | 4 +- - .../chrome/browser/ntp/NewTabPageLayout.java | 21 ++++++ - .../SuggestionsNavigationDelegate.java | 17 +++++ - .../flags/android/chrome_feature_list.cc | 1 + - .../browser/flags/ChromeFeatureList.java | 3 +- - .../Restore-Simplified-NTP-launch.inc | 12 ++++ - .../Restore-Simplified-NTP-launch.inc | 5 ++ - .../Restore-Simplified-NTP-launch.inc | 1 + - 15 files changed, 178 insertions(+), 4 deletions(-) + chrome/android/chrome_java_resources.gni | 1 + + chrome/android/chrome_java_sources.gni | 2 + + .../java/res/layout/mv_tiles_layout.xml | 13 +- + .../java/res/layout/new_tab_page_layout.xml | 7 + + .../android/java/res/layout/ntp_shortcuts.xml | 65 ++++++ + chrome/android/java/res/values/attrs.xml | 4 + + chrome/android/java/res/values/dimens.xml | 2 + + .../feedback/ChromeFeedbackCollector.java | 1 + + .../feedback/SimplifiedNtpFeedbackSource.java | 38 ++++ + .../identity_disc/IdentityDiscController.java | 5 +- + .../NativePageNavigationDelegateImpl.java | 4 +- + .../chrome/browser/ntp/NewTabPageLayout.java | 25 ++- + .../SuggestionsNavigationDelegate.java | 17 ++ + .../mostvisited/MostVisitedSitesBridge.java | 2 +- + .../tile/MostVisitedTilesCoordinator.java | 10 +- + .../tile/MostVisitedTilesGridLayout.java | 194 ++++++++++++++++++ + .../tile/MostVisitedTilesMediator.java | 9 +- + .../engagement/important_sites_util.cc | 2 +- + .../flags/android/chrome_feature_list.cc | 1 + + .../browser/flags/ChromeFeatureList.java | 5 +- + .../history/core/browser/top_sites_impl.h | 2 +- + .../Restore-Simplified-NTP-launch.inc | 12 ++ + .../Restore-Simplified-NTP-launch.inc | 6 + + .../Restore-Simplified-NTP-launch.inc | 1 + + 24 files changed, 397 insertions(+), 31 deletions(-) create mode 100644 chrome/android/java/res/layout/ntp_shortcuts.xml create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/feedback/SimplifiedNtpFeedbackSource.java + create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/MostVisitedTilesGridLayout.java create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Restore-Simplified-NTP-launch.inc create mode 100644 cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/Restore-Simplified-NTP-launch.inc create mode 100644 cromite_flags/chrome/browser/flags/android/chrome_feature_list_h/Restore-Simplified-NTP-launch.inc @@ -50,6 +60,36 @@ diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java "java/src/org/chromium/chrome/browser/findinpage/FindToolbar.java", "java/src/org/chromium/chrome/browser/findinpage/FindToolbarManager.java", "java/src/org/chromium/chrome/browser/findinpage/FindToolbarObserver.java", +@@ -1058,6 +1059,7 @@ chrome_java_sources = [ + "java/src/org/chromium/chrome/browser/suggestions/mostvisited/MostVisitedSitesMetadataUtils.java", + "java/src/org/chromium/chrome/browser/suggestions/tile/MostVisitedTilesCoordinator.java", + "java/src/org/chromium/chrome/browser/suggestions/tile/MostVisitedTilesLayout.java", ++ "java/src/org/chromium/chrome/browser/suggestions/tile/MostVisitedTilesGridLayout.java", + "java/src/org/chromium/chrome/browser/suggestions/tile/MostVisitedTilesMediator.java", + "java/src/org/chromium/chrome/browser/suggestions/tile/MostVisitedTilesProperties.java", + "java/src/org/chromium/chrome/browser/suggestions/tile/MostVisitedTilesViewBinder.java", +diff --git a/chrome/android/java/res/layout/mv_tiles_layout.xml b/chrome/android/java/res/layout/mv_tiles_layout.xml +--- a/chrome/android/java/res/layout/mv_tiles_layout.xml ++++ b/chrome/android/java/res/layout/mv_tiles_layout.xml +@@ -5,14 +5,9 @@ Use of this source code is governed by a BSD-style license that can be + found in the LICENSE file. + --> + +- +- +- +- ++ android:layout_gravity="center_horizontal" /> diff --git a/chrome/android/java/res/layout/new_tab_page_layout.xml b/chrome/android/java/res/layout/new_tab_page_layout.xml --- a/chrome/android/java/res/layout/new_tab_page_layout.xml +++ b/chrome/android/java/res/layout/new_tab_page_layout.xml @@ -137,6 +177,32 @@ new file mode 100644 + app:chromeDrawableTint="@color/default_icon_color_light" /> + + +diff --git a/chrome/android/java/res/values/attrs.xml b/chrome/android/java/res/values/attrs.xml +--- a/chrome/android/java/res/values/attrs.xml ++++ b/chrome/android/java/res/values/attrs.xml +@@ -15,6 +15,10 @@ found in the LICENSE file. + + + ++ ++ ++ ++ + + + +diff --git a/chrome/android/java/res/values/dimens.xml b/chrome/android/java/res/values/dimens.xml +--- a/chrome/android/java/res/values/dimens.xml ++++ b/chrome/android/java/res/values/dimens.xml +@@ -129,6 +129,8 @@ found in the LICENSE file. + 62dp + + ++ 6dp ++ 4dp + 20dp + @dimen/signin_promo_lateral_paddings + 17dp diff --git a/chrome/android/java/src/org/chromium/chrome/browser/feedback/ChromeFeedbackCollector.java b/chrome/android/java/src/org/chromium/chrome/browser/feedback/ChromeFeedbackCollector.java --- a/chrome/android/java/src/org/chromium/chrome/browser/feedback/ChromeFeedbackCollector.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/feedback/ChromeFeedbackCollector.java @@ -250,6 +316,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageL /** * Whether the tiles shown in the layout have finished loading. * With {@link #mHasShownView}, it's one of the 2 flags used to track initialisation progress. +@@ -104,7 +108,7 @@ public class NewTabPageLayout extends LinearLayout { + */ + private boolean mHasShownView; + +- private boolean mSearchProviderHasLogo = true; ++ private boolean mSearchProviderHasLogo = false; + private boolean mSearchProviderIsGoogle; + private boolean mShowingNonStandardGoogleLogo; + @@ -278,6 +282,7 @@ public class NewTabPageLayout extends LinearLayout { initializeMostVisitedTilesCoordinator( mProfile, lifecycleDispatcher, tileGroupDelegate, touchEnabledDelegate); @@ -258,6 +333,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageL initializeSearchBoxTextView(); initializeVoiceSearchButton(); initializeLensButton(); +@@ -645,7 +650,7 @@ public class NewTabPageLayout extends LinearLayout { + && mInitialized) { + return; + } +- mSearchProviderHasLogo = hasLogo; ++ mSearchProviderHasLogo = false; + mSearchProviderIsGoogle = isGoogle; + + boolean isSearchProviderMarginUpdated = @@ -1017,6 +1022,22 @@ public class NewTabPageLayout extends LinearLayout { return mMostVisitedTilesCoordinator; } @@ -315,6 +399,300 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/Sug /** * Opens the suggestions page without recording metrics. * +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/mostvisited/MostVisitedSitesBridge.java b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/mostvisited/MostVisitedSitesBridge.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/mostvisited/MostVisitedSitesBridge.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/mostvisited/MostVisitedSitesBridge.java +@@ -21,7 +21,7 @@ public class MostVisitedSitesBridge implements MostVisitedSites { + * Maximum number of tiles that is explicitly supported. UMA relies on this value, so even if + * the UI supports it, getting more can raise unexpected issues. + */ +- public static final int MAX_TILE_COUNT = 12; ++ public static final int MAX_TILE_COUNT = 12 * 2; + + private long mNativeMostVisitedSitesBridge; + +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/MostVisitedTilesCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/MostVisitedTilesCoordinator.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/MostVisitedTilesCoordinator.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/MostVisitedTilesCoordinator.java +@@ -38,7 +38,7 @@ public class MostVisitedTilesCoordinator implements ConfigurationChangedObserver + private final MostVisitedTilesMediator mMediator; + private final WindowAndroid mWindowAndroid; + private final UiConfig mUiConfig; +- private final PropertyModelChangeProcessor mModelChangeProcessor; ++ private PropertyModelChangeProcessor mModelChangeProcessor; + private TileRenderer mRenderer; + private ContextMenuManager mContextMenuManager; + private OfflinePageBridge mOfflinePageBridge; +@@ -66,17 +66,11 @@ public class MostVisitedTilesCoordinator implements ConfigurationChangedObserver + mWindowAndroid = windowAndroid; + + ((ViewStub) mvTilesContainerLayout.findViewById(R.id.mv_tiles_layout_stub)).inflate(); +- MostVisitedTilesLayout tilesLayout = ++ MostVisitedTilesGridLayout tilesLayout = + mvTilesContainerLayout.findViewById(R.id.mv_tiles_layout); + + mUiConfig = new UiConfig(tilesLayout); + PropertyModel propertyModel = new PropertyModel(MostVisitedTilesProperties.ALL_KEYS); +- mModelChangeProcessor = +- PropertyModelChangeProcessor.create( +- propertyModel, +- new MostVisitedTilesViewBinder.ViewHolder( +- mvTilesContainerLayout, tilesLayout), +- MostVisitedTilesViewBinder::bind); + mRenderer = + new TileRenderer( + mActivity, SuggestionsConfig.getTileStyle(mUiConfig), TITLE_LINES, null); +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/MostVisitedTilesGridLayout.java b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/MostVisitedTilesGridLayout.java +new file mode 100644 +--- /dev/null ++++ b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/MostVisitedTilesGridLayout.java +@@ -0,0 +1,194 @@ ++// Copyright 2015 The Chromium Authors ++// Use of this source code is governed by a BSD-style license that can be ++// found in the LICENSE file. ++ ++package org.chromium.chrome.browser.suggestions.tile; ++ ++import android.content.Context; ++import android.content.res.Configuration; ++import android.content.res.Resources; ++import android.content.res.TypedArray; ++import android.util.AttributeSet; ++import android.util.Pair; ++import android.view.View; ++import android.widget.FrameLayout; ++ ++import androidx.annotation.Nullable; ++import androidx.annotation.VisibleForTesting; ++ ++import org.chromium.base.MathUtils; ++import org.chromium.base.library_loader.LibraryLoader; ++import org.chromium.chrome.R; ++import org.chromium.chrome.browser.flags.ChromeFeatureList; ++import org.chromium.chrome.browser.ntp.FeedPositionUtils; ++import org.chromium.chrome.browser.suggestions.SiteSuggestion; ++import org.chromium.ui.base.DeviceFormFactor; ++ ++/** A layout that arranges tiles in a grid. */ ++public class MostVisitedTilesGridLayout extends FrameLayout { ++ private final int mMinHorizontalSpacing; ++ private final int mMaxHorizontalSpacing; ++ private final int mMaxWidth; ++ ++ private int mVerticalSpacing; ++ private int mMaxRows = 4; ++ private int mMaxColumns = 4; ++ ++ /** ++ * Constructor for inflating from XML. ++ * ++ * @param context The view context in which this item will be shown. ++ * @param attrs The attributes of the XML tag that is inflating the view. ++ */ ++ public MostVisitedTilesGridLayout(Context context, AttributeSet attrs) { ++ super(context, attrs); ++ ++ Resources res = getResources(); ++ mVerticalSpacing = ++ getResources().getDimensionPixelOffset(getGridMVTVerticalSpacingResourcesId()); ++ TypedArray styledAttrs = ++ context.obtainStyledAttributes(attrs, R.styleable.MostVisitedTilesGridLayout); ++ mMinHorizontalSpacing = ++ styledAttrs.getDimensionPixelOffset( ++ R.styleable.MostVisitedTilesGridLayout_minHorizontalSpacing, ++ res.getDimensionPixelOffset( ++ R.dimen.tile_grid_layout_min_horizontal_spacing)); ++ styledAttrs.recycle(); ++ mMaxHorizontalSpacing = Integer.MAX_VALUE; ++ mMaxWidth = Integer.MAX_VALUE; ++ } ++ ++ /** Sets the maximum number of rows to display. Any items that don't fit will be hidden. */ ++ public void setMaxRows(int rows) { ++ mMaxRows = rows; ++ } ++ ++ /** Sets the maximum number of columns to display. Any items that don't fit will be hidden. */ ++ public void setMaxColumns(int columns) { ++ mMaxColumns = columns; ++ } ++ ++ @Override ++ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { ++ int totalWidth = Math.min(MeasureSpec.getSize(widthMeasureSpec), mMaxWidth); ++ int childCount = getChildCount(); ++ if (childCount == 0) { ++ setMeasuredDimension(totalWidth, resolveSize(0, heightMeasureSpec)); ++ return; ++ } ++ ++ // Measure the children. We don't use the ViewGroup.measureChildren() method here because ++ // it only measures visible children. In a situation where a child is invisible before ++ // this measurement and we decide to show it after the measurement, it will not have its ++ // dimensions and will not be displayed. ++ for (int i = 0; i < childCount; i++) { ++ measureChild(getChildAt(i), MeasureSpec.UNSPECIFIED, MeasureSpec.UNSPECIFIED); ++ } ++ ++ // Determine the number of columns that will fit. ++ int childHeight = getChildAt(0).getMeasuredHeight(); ++ int childWidth = getChildAt(0).getMeasuredWidth(); ++ int numColumns = ++ MathUtils.clamp( ++ (totalWidth + mMinHorizontalSpacing) / (childWidth + mMinHorizontalSpacing), ++ 1, ++ mMaxColumns); ++ ++ // Determine how much padding to use between and around the tiles. ++ int gridWidthMinusColumns = Math.max(0, totalWidth - numColumns * childWidth); ++ Pair gridProperties = ++ computeHorizontalDimensions(gridWidthMinusColumns, numColumns); ++ int gridStart = gridProperties.first; ++ int horizontalSpacing = gridProperties.second; ++ ++ // Limit the number of rows to mMaxRows. ++ int visibleChildCount = Math.min(childCount, mMaxRows * numColumns); ++ ++ // Arrange the visible children in a grid. ++ int numRows = (visibleChildCount + numColumns - 1) / numColumns; ++ int paddingTop = getPaddingTop(); ++ boolean isRtl = getLayoutDirection() == LAYOUT_DIRECTION_RTL; ++ ++ for (int i = 0; i < visibleChildCount; i++) { ++ View child = getChildAt(i); ++ child.setVisibility(View.VISIBLE); ++ int row = i / numColumns; ++ int column = i % numColumns; ++ int childTop = row * (childHeight + mVerticalSpacing); ++ int childStart = gridStart + (column * (childWidth + horizontalSpacing)); ++ MarginLayoutParams layoutParams = (MarginLayoutParams) child.getLayoutParams(); ++ layoutParams.setMargins(isRtl ? 0 : childStart, childTop, isRtl ? childStart : 0, 0); ++ child.setLayoutParams(layoutParams); ++ } ++ ++ // Hide any extra children in case there are more than needed for the maximum number of ++ // rows. ++ for (int i = visibleChildCount; i < childCount; i++) { ++ getChildAt(i).setVisibility(View.GONE); ++ } ++ ++ int totalHeight = ++ paddingTop ++ + getPaddingBottom() ++ + numRows * childHeight ++ + (numRows - 1) * mVerticalSpacing; ++ ++ setMeasuredDimension(totalWidth, resolveSize(totalHeight, heightMeasureSpec)); ++ } ++ ++ /** ++ * @param availableWidth The space available to spread between and around the tiles. ++ * @param numColumns The number of columns to be organised. ++ * @return The [gridStart, horizontalSpacing] pair of dimensions. ++ */ ++ @VisibleForTesting ++ Pair computeHorizontalDimensions(int availableWidth, int numColumns) { ++ int gridStart; ++ float horizontalSpacing; ++ ++ // Identically sized spacers are added both between and around the tiles. ++ int spacerCount = numColumns + 1; ++ horizontalSpacing = (float) availableWidth / spacerCount; ++ gridStart = Math.round(horizontalSpacing); ++ ++ if (horizontalSpacing < mMinHorizontalSpacing ++ || horizontalSpacing > mMaxHorizontalSpacing) { ++ // Ensure column spacing isn't greater than mMaxHorizontalSpacing. ++ long gridSidePadding = availableWidth - (long) mMaxHorizontalSpacing * (numColumns - 1); ++ if (gridSidePadding > 0) { ++ horizontalSpacing = mMaxHorizontalSpacing; ++ gridStart = (int) (gridSidePadding / 2); ++ } else { ++ horizontalSpacing = (float) availableWidth / Math.max(1, numColumns - 1); ++ gridStart = 0; ++ } ++ } ++ int screenWidth = getResources().getDisplayMetrics().widthPixels; ++ int screenHeight = getResources().getDisplayMetrics().heightPixels; ++ String logMessage = ++ "|horizontalSpacing| = " ++ + horizontalSpacing ++ + " |numColumns| = " ++ + numColumns ++ + " |availableWidth| = " ++ + availableWidth ++ + " |screenWidth| = " ++ + screenWidth ++ + " |screenHeight| = " ++ + screenHeight ++ + "."; ++ assert horizontalSpacing >= mMinHorizontalSpacing ++ : "Horizontal spacing shouldn't be smaller than minimal horizontal spacing: " ++ + logMessage; ++ assert horizontalSpacing <= mMaxHorizontalSpacing ++ : "Horizontal spacing shouldn't be larger than maximal horizontal spacing: " ++ + logMessage; ++ ++ return Pair.create(gridStart, Math.round(horizontalSpacing)); ++ } ++ ++ // TODO(crbug.com/40226731): Remove this method when the Feed position experiment is cleaned up. ++ private int getGridMVTVerticalSpacingResourcesId() { ++ return R.dimen.tile_grid_layout_vertical_spacing; ++ } ++} +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/MostVisitedTilesMediator.java b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/MostVisitedTilesMediator.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/MostVisitedTilesMediator.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/MostVisitedTilesMediator.java +@@ -12,6 +12,7 @@ import static org.chromium.chrome.browser.suggestions.tile.MostVisitedTilesPrope + + import android.content.res.Configuration; + import android.content.res.Resources; ++import android.view.ViewGroup; + import android.view.ViewStub; + + import androidx.annotation.Nullable; +@@ -37,7 +38,7 @@ public class MostVisitedTilesMediator implements TileGroup.Observer, TemplateUrl + + private final Resources mResources; + private final UiConfig mUiConfig; +- private final MostVisitedTilesLayout mMvTilesLayout; ++ private final ViewGroup mMvTilesLayout; + private final ViewStub mNoMvPlaceholderStub; + private final PropertyModel mModel; + private final boolean mIsTablet; +@@ -59,7 +60,7 @@ public class MostVisitedTilesMediator implements TileGroup.Observer, TemplateUrl + public MostVisitedTilesMediator( + Resources resources, + UiConfig uiConfig, +- MostVisitedTilesLayout mvTilesLayout, ++ ViewGroup mvTilesLayout, + ViewStub noMvPlaceholderStub, + TileRenderer renderer, + PropertyModel propertyModel, +@@ -166,8 +167,8 @@ public class MostVisitedTilesMediator implements TileGroup.Observer, TemplateUrl + } + + public void destroy() { +- if (mMvTilesLayout != null) { +- mMvTilesLayout.destroy(); ++ if (mMvTilesLayout instanceof MostVisitedTilesLayout) { ++ ((MostVisitedTilesLayout)mMvTilesLayout).destroy(); + } + + if (mTileGroup != null) { +diff --git a/chrome/browser/engagement/important_sites_util.cc b/chrome/browser/engagement/important_sites_util.cc +--- a/chrome/browser/engagement/important_sites_util.cc ++++ b/chrome/browser/engagement/important_sites_util.cc +@@ -66,7 +66,7 @@ static const int kTimesIgnoredForSuppression = 3; + // These are the maximum # of bookmarks we can use as signals. If the user has + // <= kMaxBookmarks, then we just use those bookmarks. Otherwise we filter all + // bookmarks on site engagement > 0, sort, and trim to kMaxBookmarks. +-static const int kMaxBookmarks = 5; ++static const int kMaxBookmarks = 4 * 4 + 2; + + // We need this to be a macro, as the histogram macros cache their pointers + // after the first call, so when we change the uma name we check fail if we're diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc --- a/chrome/browser/flags/android/chrome_feature_list.cc +++ b/chrome/browser/flags/android/chrome_feature_list.cc @@ -337,6 +715,15 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f public static final String SEARCH_READY_OMNIBOX = "SearchReadyOmnibox"; public static final String MIGRATE_ACCOUNT_MANAGEMENT_SETTINGS_TO_CAPABILITIES = "MigrateAccountManagementSettingsToCapabilities"; +@@ -625,7 +626,7 @@ public abstract class ChromeFeatureList { + public static final CachedFlag sIncognitoReauthenticationForAndroid = + newCachedFlag(INCOGNITO_REAUTHENTICATION_FOR_ANDROID, true); + public static final CachedFlag sLogoPolish = newCachedFlag(LOGO_POLISH, false); +- public static final CachedFlag sMagicStackAndroid = newCachedFlag(MAGIC_STACK_ANDROID, true); ++ public static final CachedFlag sMagicStackAndroid = newCachedFlag(MAGIC_STACK_ANDROID, false); + public static final CachedFlag sMultiInstanceApplicationStatusCleanup = + newCachedFlag(MUlTI_INSTANCE_APPLICATION_STATUS_CLEANUP, false); + public static final CachedFlag sNavBarColorMatchesTabBackground = @@ -658,7 +659,7 @@ public abstract class ChromeFeatureList { newCachedFlag(START_SURFACE_RETURN_TIME, true); public static final CachedFlag sStopAppIndexingReport = @@ -346,6 +733,18 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f public static final CachedFlag sSurfacePolishForToolbarKillSwitch = newCachedFlag(SURFACE_POLISH_FOR_TOOLBAR_KILL_SWITCH, true); public static final CachedFlag sTabDragDropAsWindowAndroid = +diff --git a/components/history/core/browser/top_sites_impl.h b/components/history/core/browser/top_sites_impl.h +--- a/components/history/core/browser/top_sites_impl.h ++++ b/components/history/core/browser/top_sites_impl.h +@@ -40,7 +40,7 @@ class TopSitesImplTest; + struct SitesAndQueriesRequest; + + // How many top sites to store in the cache. +-static constexpr size_t kTopSitesNumber = 10; ++static constexpr size_t kTopSitesNumber = 4 * 4 + 2; + + // This class allows requests for most visited urls on any thread. All other + // methods must be invoked on the UI thread. All mutations to internal state diff --git a/cromite_flags/chrome/browser/about_flags_cc/Restore-Simplified-NTP-launch.inc b/cromite_flags/chrome/browser/about_flags_cc/Restore-Simplified-NTP-launch.inc new file mode 100644 --- /dev/null @@ -367,12 +766,13 @@ diff --git a/cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/R new file mode 100644 --- /dev/null +++ b/cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/Restore-Simplified-NTP-launch.inc -@@ -0,0 +1,5 @@ +@@ -0,0 +1,6 @@ +CROMITE_FEATURE(kSimplifiedNTP, + "SimplifiedNTP", + base::FEATURE_ENABLED_BY_DEFAULT); + +SET_CROMITE_FEATURE_DISABLED(kSurfacePolish); ++SET_CROMITE_FEATURE_DISABLED(kMagicStackAndroid); diff --git a/cromite_flags/chrome/browser/flags/android/chrome_feature_list_h/Restore-Simplified-NTP-launch.inc b/cromite_flags/chrome/browser/flags/android/chrome_feature_list_h/Restore-Simplified-NTP-launch.inc new file mode 100644 --- /dev/null diff --git a/build/patches/Revert-removal-of-execution-context-address-space.patch b/build/patches/Revert-removal-of-execution-context-address-space.patch index 3d57d01c..f724288f 100644 --- a/build/patches/Revert-removal-of-execution-context-address-space.patch +++ b/build/patches/Revert-removal-of-execution-context-address-space.patch @@ -28,8 +28,8 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html ...ed_service_worker_module_script_fetcher.cc | 1 + .../modulescript/module_script_loader_test.cc | 1 + .../worker_module_script_fetcher.cc | 3 +- - .../renderer/core/workers/dedicated_worker.cc | 11 ++++-- - .../renderer/core/workers/dedicated_worker.h | 4 ++- + .../renderer/core/workers/dedicated_worker.cc | 14 ++++++-- + .../renderer/core/workers/dedicated_worker.h | 5 ++- .../workers/dedicated_worker_global_scope.cc | 9 ++++- .../workers/dedicated_worker_global_scope.h | 1 + .../workers/global_scope_creation_params.cc | 2 ++ @@ -53,7 +53,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../audio_worklet_global_scope_test.cc | 1 + .../webaudio/audio_worklet_thread_test.cc | 1 + .../worklet/worklet_thread_test_common.cc | 2 +- - 36 files changed, 187 insertions(+), 18 deletions(-) + 36 files changed, 191 insertions(+), 18 deletions(-) create mode 100644 cromite_flags/content/public/common/content_features_cc/Revert-removal-of-execution-context-address-space.inc diff --git a/cromite_flags/content/public/common/content_features_cc/Revert-removal-of-execution-context-address-space.inc b/cromite_flags/content/public/common/content_features_cc/Revert-removal-of-execution-context-address-space.inc @@ -300,7 +300,31 @@ diff --git a/third_party/blink/renderer/core/workers/dedicated_worker.cc b/third const String& source_code, RejectCoepUnsafeNone reject_coep_unsafe_none, mojo::PendingRemote -@@ -495,7 +499,8 @@ void DedicatedWorker::ContinueStartInternal( +@@ -465,6 +469,7 @@ void DedicatedWorker::ContinueStart( + std::move(worker_main_script_load_params), + std::move(referrer_policy), + std::move(response_content_security_policies), ++ response_address_space, + source_code, reject_coep_unsafe_none, + std::move(back_forward_cache_controller_host)), + base::Milliseconds(features::kDedicatedWorkerStartDelayInMs.Get())); +@@ -473,6 +478,7 @@ void DedicatedWorker::ContinueStart( + ContinueStartInternal(script_url, std::move(worker_main_script_load_params), + std::move(referrer_policy), + std::move(response_content_security_policies), ++ response_address_space, + source_code, reject_coep_unsafe_none, + std::move(back_forward_cache_controller_host)); + } +@@ -484,6 +490,7 @@ void DedicatedWorker::ContinueStartInternal( + network::mojom::ReferrerPolicy referrer_policy, + Vector + response_content_security_policies, ++ std::optional response_address_space, + const String& source_code, + RejectCoepUnsafeNone reject_coep_unsafe_none, + mojo::PendingRemote +@@ -495,7 +502,8 @@ void DedicatedWorker::ContinueStartInternal( context_proxy_->StartWorkerGlobalScope( CreateGlobalScopeCreationParams( script_url, referrer_policy, @@ -310,7 +334,7 @@ diff --git a/third_party/blink/renderer/core/workers/dedicated_worker.cc b/third std::move(worker_main_script_load_params), options_, script_url, *outside_fetch_client_settings_object_, v8_stack_trace_id_, source_code, reject_coep_unsafe_none, token_, -@@ -532,7 +537,8 @@ DedicatedWorker::CreateGlobalScopeCreationParams( +@@ -532,7 +540,8 @@ DedicatedWorker::CreateGlobalScopeCreationParams( const KURL& script_url, network::mojom::ReferrerPolicy referrer_policy, Vector @@ -320,7 +344,7 @@ diff --git a/third_party/blink/renderer/core/workers/dedicated_worker.cc b/third base::UnguessableToken parent_devtools_token; std::unique_ptr settings; ExecutionContext* execution_context = GetExecutionContext(); -@@ -581,6 +587,7 @@ DedicatedWorker::CreateGlobalScopeCreationParams( +@@ -581,6 +590,7 @@ DedicatedWorker::CreateGlobalScopeCreationParams( execution_context->GetSecurityOrigin(), execution_context->IsSecureContext(), execution_context->GetHttpsState(), MakeGarbageCollected(), CreateWebContentSettingsClient(), @@ -339,7 +363,15 @@ diff --git a/third_party/blink/renderer/core/workers/dedicated_worker.h b/third_ const String& source_code, RejectCoepUnsafeNone reject_coep_unsafe_none, mojo::PendingRemote -@@ -156,7 +157,8 @@ class CORE_EXPORT DedicatedWorker final +@@ -148,6 +149,7 @@ class CORE_EXPORT DedicatedWorker final + network::mojom::ReferrerPolicy, + Vector + response_content_security_policies, ++ std::optional response_address_space, + const String& source_code, + RejectCoepUnsafeNone reject_coep_unsafe_none, + mojo::PendingRemote +@@ -156,7 +158,8 @@ class CORE_EXPORT DedicatedWorker final const KURL& script_url, network::mojom::ReferrerPolicy, Vector diff --git a/build/patches/Use-4-tile-rows-never-show-logo.patch b/build/patches/Use-4-tile-rows-never-show-logo.patch deleted file mode 100644 index 18f379b0..00000000 --- a/build/patches/Use-4-tile-rows-never-show-logo.patch +++ /dev/null @@ -1,70 +0,0 @@ -From: csagan5 <32685696+csagan5@users.noreply.github.com> -Date: Wed, 21 Feb 2018 00:32:09 +0100 -Subject: Use 4 tile rows, never show logo - -License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html ---- - .../src/org/chromium/chrome/browser/ntp/NewTabPageLayout.java | 4 ++-- - .../suggestions/mostvisited/MostVisitedSitesBridge.java | 2 +- - chrome/browser/engagement/important_sites_util.cc | 2 +- - components/history/core/browser/top_sites_impl.h | 2 +- - 4 files changed, 5 insertions(+), 5 deletions(-) - -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageLayout.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageLayout.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageLayout.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageLayout.java -@@ -104,7 +104,7 @@ public class NewTabPageLayout extends LinearLayout { - */ - private boolean mHasShownView; - -- private boolean mSearchProviderHasLogo = true; -+ private boolean mSearchProviderHasLogo = false; - private boolean mSearchProviderIsGoogle; - private boolean mShowingNonStandardGoogleLogo; - -@@ -645,7 +645,7 @@ public class NewTabPageLayout extends LinearLayout { - && mInitialized) { - return; - } -- mSearchProviderHasLogo = hasLogo; -+ mSearchProviderHasLogo = false; - mSearchProviderIsGoogle = isGoogle; - - boolean isSearchProviderMarginUpdated = -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/mostvisited/MostVisitedSitesBridge.java b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/mostvisited/MostVisitedSitesBridge.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/mostvisited/MostVisitedSitesBridge.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/mostvisited/MostVisitedSitesBridge.java -@@ -21,7 +21,7 @@ public class MostVisitedSitesBridge implements MostVisitedSites { - * Maximum number of tiles that is explicitly supported. UMA relies on this value, so even if - * the UI supports it, getting more can raise unexpected issues. - */ -- public static final int MAX_TILE_COUNT = 12; -+ public static final int MAX_TILE_COUNT = 12 * 2; - - private long mNativeMostVisitedSitesBridge; - -diff --git a/chrome/browser/engagement/important_sites_util.cc b/chrome/browser/engagement/important_sites_util.cc ---- a/chrome/browser/engagement/important_sites_util.cc -+++ b/chrome/browser/engagement/important_sites_util.cc -@@ -66,7 +66,7 @@ static const int kTimesIgnoredForSuppression = 3; - // These are the maximum # of bookmarks we can use as signals. If the user has - // <= kMaxBookmarks, then we just use those bookmarks. Otherwise we filter all - // bookmarks on site engagement > 0, sort, and trim to kMaxBookmarks. --static const int kMaxBookmarks = 5; -+static const int kMaxBookmarks = 4 * 4 + 2; - - // We need this to be a macro, as the histogram macros cache their pointers - // after the first call, so when we change the uma name we check fail if we're -diff --git a/components/history/core/browser/top_sites_impl.h b/components/history/core/browser/top_sites_impl.h ---- a/components/history/core/browser/top_sites_impl.h -+++ b/components/history/core/browser/top_sites_impl.h -@@ -40,7 +40,7 @@ class TopSitesImplTest; - struct SitesAndQueriesRequest; - - // How many top sites to store in the cache. --static constexpr size_t kTopSitesNumber = 10; -+static constexpr size_t kTopSitesNumber = 4 * 4 + 2; - - // This class allows requests for most visited urls on any thread. All other - // methods must be invoked on the UI thread. All mutations to internal state --- diff --git a/build/patches/add-browser-policy.patch b/build/patches/add-browser-policy.patch index d12c1b33..41958a95 100644 --- a/build/patches/add-browser-policy.patch +++ b/build/patches/add-browser-policy.patch @@ -22,7 +22,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../commerce/core/commerce_feature_list.cc | 65 ++------- .../core/browser/browser_policy_connector.cc | 3 + .../common/command_line_policy_provider.cc | 3 + - .../core/common/policy_loader_command_line.cc | 133 +++++++++++++++--- + .../core/common/policy_loader_command_line.cc | 132 +++++++++++++++--- .../policy/core/common/policy_pref_names.cc | 3 + .../policy/core/common/policy_pref_names.h | 1 + .../policy/core/common/policy_service_impl.cc | 3 + @@ -36,7 +36,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../gaia_cookie_manager_service.cc | 4 + google_apis/gaia/gaia_auth_fetcher.cc | 1 + net/socket/ssl_client_socket_impl.cc | 3 + - 32 files changed, 319 insertions(+), 150 deletions(-) + 32 files changed, 318 insertions(+), 150 deletions(-) diff --git a/base/win/win_util.cc b/base/win/win_util.cc --- a/base/win/win_util.cc @@ -674,7 +674,7 @@ diff --git a/components/policy/core/common/policy_loader_command_line.cc b/compo namespace policy { -@@ -21,25 +46,101 @@ PolicyLoaderCommandLine::~PolicyLoaderCommandLine() = default; +@@ -21,25 +46,100 @@ PolicyLoaderCommandLine::~PolicyLoaderCommandLine() = default; PolicyBundle PolicyLoaderCommandLine::Load() { PolicyBundle bundle; @@ -764,7 +764,6 @@ diff --git a/components/policy/core/common/policy_loader_command_line.cc b/compo + AddPolicy(disabled_policies_list, policy_map, policy::key::kSideSearchEnabled, base::Value(false)); +#endif + -+ AddPolicy(disabled_policies_list, policy_map, policy::key::kBlockTruncatedCookies, base::Value(true)); + // kFirstPartySetsEnabled + // kLensCameraAssistedSearchEnabled + // kPasswordLeakDetectionEnabled diff --git a/build/patches/eyeo-beta-118.0.5993.48-chrome_integration.patch b/build/patches/eyeo-beta-118.0.5993.48-chrome_integration.patch index d49fc76e..aef91c21 100644 --- a/build/patches/eyeo-beta-118.0.5993.48-chrome_integration.patch +++ b/build/patches/eyeo-beta-118.0.5993.48-chrome_integration.patch @@ -2047,7 +2047,7 @@ diff --git a/chrome/browser/chrome_browser_interface_binders.cc b/chrome/browser #include "chrome/browser/ui/webui/browsing_topics/browsing_topics_internals_ui.h" #include "chrome/browser/ui/webui/data_sharing_internals/data_sharing_internals_ui.h" #include "chrome/browser/ui/webui/engagement/site_engagement_ui.h" -@@ -1118,6 +1123,10 @@ void PopulateChromeWebUIFrameBinders( +@@ -1121,6 +1126,10 @@ void PopulateChromeWebUIFrameBinders( media::mojom::MediaEngagementScoreDetailsProvider, MediaEngagementUI>( map); diff --git a/build/patches/ungoogled-chromium-no-special-hosts-domains.patch b/build/patches/ungoogled-chromium-no-special-hosts-domains.patch index c92a3828..85d8d38c 100644 --- a/build/patches/ungoogled-chromium-no-special-hosts-domains.patch +++ b/build/patches/ungoogled-chromium-no-special-hosts-domains.patch @@ -30,11 +30,12 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../from_gws_page_load_metrics_observer.cc | 6 +- .../page_load_metrics_initialize.cc | 2 - chrome/browser/safe_browsing/BUILD.gn | 1 - + chrome/browser/search_engines/BUILD.gn | 1 - .../ui_thread_search_terms_data.cc | 4 - chrome/browser/ui/BUILD.gn | 1 - chrome/browser/ui/android/omnibox/BUILD.gn | 2 - .../omnibox/LocationBarCoordinator.java | 2 - - .../browser/omnibox/LocationBarMediator.java | 22 -- + .../browser/omnibox/LocationBarMediator.java | 25 -- .../ui/webui/new_tab_page/new_tab_page_ui.cc | 5 - .../webui/settings/reset_settings_handler.cc | 1 - .../upgrade_detector/upgrade_detector_impl.cc | 6 - @@ -63,7 +64,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html ...gled-chromium-no-special-hosts-domains.inc | 1 + net/base/url_util.cc | 25 +- services/network/network_context.cc | 2 +- - 56 files changed, 57 insertions(+), 841 deletions(-) + 57 files changed, 57 insertions(+), 845 deletions(-) create mode 100644 cromite_flags/content/public/common/content_features_cc/ungoogled-chromium-no-special-hosts-domains.inc diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java @@ -707,6 +708,17 @@ diff --git a/chrome/browser/safe_browsing/BUILD.gn b/chrome/browser/safe_browsin "//chrome/browser/profiles", "//chrome/browser/profiles:profile", "//chrome/browser/sync", +diff --git a/chrome/browser/search_engines/BUILD.gn b/chrome/browser/search_engines/BUILD.gn +--- a/chrome/browser/search_engines/BUILD.gn ++++ b/chrome/browser/search_engines/BUILD.gn +@@ -32,7 +32,6 @@ source_set("search_engines") { + + deps = [ + "//chrome/browser:browser_process", +- "//chrome/browser/google", + "//chrome/common:channel_info", + "//chrome/common:non_code_constants", + "//components/google/core/common", diff --git a/chrome/browser/search_engines/ui_thread_search_terms_data.cc b/chrome/browser/search_engines/ui_thread_search_terms_data.cc --- a/chrome/browser/search_engines/ui_thread_search_terms_data.cc +++ b/chrome/browser/search_engines/ui_thread_search_terms_data.cc @@ -816,6 +828,22 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow } loadUrlParams.setTransitionType( omniboxLoadUrlParams.transitionType | PageTransition.FROM_ADDRESS_BAR); +@@ -1549,15 +1527,12 @@ class LocationBarMediator + if (OmniboxFeatures.sUseFusedLocationProvider.isEnabled() + && mProfileSupplier.hasValue() + && mTemplateUrlServiceSupplier.hasValue()) { +- GeolocationHeader.primeLocationForGeoHeaderIfEnabled( +- mProfileSupplier.get(), mTemplateUrlServiceSupplier.get()); + } + } + + @Override + public void onPauseWithNative() { + if (OmniboxFeatures.sUseFusedLocationProvider.isEnabled()) { +- GeolocationHeader.stopListeningForLocationUpdates(); + } + } + diff --git a/chrome/browser/ui/webui/new_tab_page/new_tab_page_ui.cc b/chrome/browser/ui/webui/new_tab_page/new_tab_page_ui.cc --- a/chrome/browser/ui/webui/new_tab_page/new_tab_page_ui.cc +++ b/chrome/browser/ui/webui/new_tab_page/new_tab_page_ui.cc