diff --git a/build/patches/Add-an-always-incognito-mode.patch b/build/patches/Add-an-always-incognito-mode.patch index f9172ba3..818cdfb2 100644 --- a/build/patches/Add-an-always-incognito-mode.patch +++ b/build/patches/Add-an-always-incognito-mode.patch @@ -69,7 +69,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html chrome/browser/profiles/profile_selections.h | 7 +- .../browser/ui/android/native_page/BUILD.gn | 2 + .../browser/ui/native_page/NativePage.java | 22 ++- - .../browser/omnibox/LocationBarMediator.java | 12 +- + .../browser/omnibox/LocationBarMediator.java | 10 +- .../strings/android_chrome_strings.grd | 25 +++ .../browser/toolbar/LocationBarModel.java | 5 +- chrome/browser/ui/messages/android/BUILD.gn | 1 + @@ -88,7 +88,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../add-an-always-incognito-mode.inc | 1 + .../add-an-always-incognito-mode.inc | 3 + .../add-an-always-incognito-mode.inc | 1 + - 69 files changed, 800 insertions(+), 113 deletions(-) + 69 files changed, 798 insertions(+), 113 deletions(-) create mode 100644 chrome/android/java/res/xml/incognito_preferences.xml create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/AlwaysIncognitoLinkInterceptor.java create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/IncognitoSettings.java @@ -1924,27 +1924,25 @@ diff --git a/chrome/browser/ui/android/native_page/java/src/org/chromium/chrome/ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java -@@ -89,6 +89,10 @@ import org.chromium.ui.base.WindowAndroid; +@@ -89,6 +89,11 @@ import org.chromium.ui.base.WindowAndroid; import org.chromium.ui.interpolators.Interpolators; import org.chromium.url.GURL; -+import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor; +import org.chromium.components.user_prefs.UserPrefs; +import org.chromium.components.prefs.PrefService; ++import org.chromium.chrome.browser.profiles.ProfileManager; ++import org.chromium.chrome.browser.preferences.Pref; + import java.util.ArrayList; import java.util.List; import java.util.function.BooleanSupplier; -@@ -1223,10 +1227,16 @@ class LocationBarMediator +@@ -1223,10 +1228,13 @@ class LocationBarMediator } Tab tab = mLocationBarDataProvider.getTab(); if (tab == null) return false; -+ boolean historyEnabledInIncognito = false; -+ if (AlwaysIncognitoLinkInterceptor.isAlwaysIncognito()) { -+ PrefService prefService = UserPrefs.get(ProfileManager.getLastUsedRegularProfile()); -+ historyEnabledInIncognito = ++ PrefService prefService = UserPrefs.get(ProfileManager.getLastUsedRegularProfile()); ++ boolean historyEnabledInIncognito = + prefService.getBoolean(Pref.INCOGNITO_TAB_HISTORY_ENABLED); -+ } // The save offline button should not be shown on native pages. Currently, trying to // save an offline page in incognito crashes, so don't show it on incognito either. return shouldShowPageActionButtons() diff --git a/build/patches/Add-menu-item-to-bookmark-all-tabs.patch b/build/patches/Add-menu-item-to-bookmark-all-tabs.patch index 43569e04..ce8c4274 100644 --- a/build/patches/Add-menu-item-to-bookmark-all-tabs.patch +++ b/build/patches/Add-menu-item-to-bookmark-all-tabs.patch @@ -28,8 +28,9 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../bookmarks/browser/bookmark_uuids.cc | 3 ++ components/bookmarks/browser/bookmark_uuids.h | 1 + components/bookmarks/browser/model_loader.cc | 8 +++- + ...ookmark_model_merger_comparison_metrics.cc | 4 ++ .../bookmark_specifics_conversions.cc | 1 + - 25 files changed, 241 insertions(+), 14 deletions(-) + 26 files changed, 245 insertions(+), 14 deletions(-) diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/res/menu/main_menu.xml --- a/chrome/android/java/res/menu/main_menu.xml @@ -878,6 +879,27 @@ diff --git a/components/bookmarks/browser/model_loader.cc b/components/bookmarks &sync_metadata_str)) { details->set_local_or_syncable_sync_metadata_str( std::move(sync_metadata_str)); +diff --git a/components/sync_bookmarks/bookmark_model_merger_comparison_metrics.cc b/components/sync_bookmarks/bookmark_model_merger_comparison_metrics.cc +--- a/components/sync_bookmarks/bookmark_model_merger_comparison_metrics.cc ++++ b/components/sync_bookmarks/bookmark_model_merger_comparison_metrics.cc +@@ -38,6 +38,7 @@ const char kOtherBookmarksTag[] = "other_bookmarks"; + constexpr char16_t kBookmarkBarFolderName[] = u"__Bookmarks bar__"; + constexpr char16_t kOtherBookmarksFolderName[] = u"__Other bookmarks__"; + constexpr char16_t kMobileBookmarksFolderName[] = u"__Mobile bookmarks__"; ++constexpr char16_t kTabsCollectionBookmarksFolderName[] = u"__Tabs collection__"; + + using RemoteForest = BookmarkModelMerger::RemoteForest; + using RemoteTreeNode = BookmarkModelMerger::RemoteTreeNode; +@@ -129,6 +130,9 @@ std::u16string_view GetBookmarkNodeTitle(const bookmarks::BookmarkNode* node) { + return kOtherBookmarksFolderName; + case bookmarks::BookmarkNode::MOBILE: + return kMobileBookmarksFolderName; ++ case bookmarks::BookmarkNode::TABS_COLLECTION: ++ return kTabsCollectionBookmarksFolderName; ++ + } + NOTREACHED(); + } diff --git a/components/sync_bookmarks/bookmark_specifics_conversions.cc b/components/sync_bookmarks/bookmark_specifics_conversions.cc --- a/components/sync_bookmarks/bookmark_specifics_conversions.cc +++ b/components/sync_bookmarks/bookmark_specifics_conversions.cc diff --git a/build/patches/Add-menu-item-to-view-source.patch b/build/patches/Add-menu-item-to-view-source.patch index 63d6e6d3..f2af3d95 100644 --- a/build/patches/Add-menu-item-to-view-source.patch +++ b/build/patches/Add-menu-item-to-view-source.patch @@ -10,9 +10,9 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../chrome/browser/app/ChromeActivity.java | 5 +++++ .../appmenu/AppMenuPropertiesDelegateImpl.java | 17 +++++++++++++++++ .../CustomTabAppMenuPropertiesDelegate.java | 1 + - .../TabbedAppMenuPropertiesDelegate.java | 2 +- + .../TabbedAppMenuPropertiesDelegate.java | 6 +++--- .../android/strings/android_chrome_strings.grd | 4 ++++ - 8 files changed, 36 insertions(+), 1 deletion(-) + 8 files changed, 38 insertions(+), 3 deletions(-) diff --git a/chrome/android/java/res/menu/custom_tabs_menu.xml b/chrome/android/java/res/menu/custom_tabs_menu.xml --- a/chrome/android/java/res/menu/custom_tabs_menu.xml @@ -108,6 +108,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java +@@ -133,7 +133,7 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm + if (menuGroup == MenuGroup.PAGE_MENU) { + preparePageMenu(menu, currentTab, handler, isIncognito); + } +- prepareCommonMenuItems(menu, menuGroup, isIncognito); ++ prepareCommonMenuItems(menu, menuGroup, isIncognito, currentTab); + } + + private void setMenuGroupVisibility(@MenuGroup int menuGroup, Menu menu) { @@ -296,7 +296,7 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm isNativePage, isFileScheme, isContentScheme, isIncognito, url)); @@ -117,6 +126,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab updateAutoDarkMenuItem(menu, currentTab, isNativePage); // Only display reader mode settings menu option if the current page is in reader mode. +@@ -316,7 +316,7 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm + .setVisible(ChromeFeatureList.sNewTabPageCustomization.isEnabled()); + } + +- private void prepareCommonMenuItems(Menu menu, @MenuGroup int menuGroup, boolean isIncognito) { ++ private void prepareCommonMenuItems(Menu menu, @MenuGroup int menuGroup, boolean isIncognito, Tab currentTab) { + boolean always_incognito = AlwaysIncognitoLinkInterceptor.isAlwaysIncognito(); + if (always_incognito) { + final MenuItem newTabOption = menu.findItem(R.id.new_tab_menu_id); 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/Add-setting-to-clear-data-on-exit.patch b/build/patches/Add-setting-to-clear-data-on-exit.patch index d6419c1a..4981bf60 100644 --- a/build/patches/Add-setting-to-clear-data-on-exit.patch +++ b/build/patches/Add-setting-to-clear-data-on-exit.patch @@ -999,24 +999,19 @@ diff --git a/content/browser/storage_partition_impl.cc b/content/browser/storage diff --git a/content/public/browser/browsing_data_remover.h b/content/public/browser/browsing_data_remover.h --- a/content/public/browser/browsing_data_remover.h +++ b/content/public/browser/browsing_data_remover.h -@@ -151,9 +151,11 @@ class BrowsingDataRemover { - static constexpr DataType DATA_TYPE_RELATED_WEBSITE_SETS_PERMISSIONS = 1 - << 24; +@@ -162,11 +162,16 @@ class BrowsingDataRemover { -+ static constexpr DataType DATA_TYPE_SKIP_SSL_HOST_STATE = 1 << 25; -+ - // Device bound sessions - // (https://github.com/WICG/dbsc/blob/main/README.md) -- static constexpr DataType DATA_TYPE_DEVICE_BOUND_SESSIONS = 1 << 25; -+ static constexpr DataType DATA_TYPE_DEVICE_BOUND_SESSIONS = 1 << 26; + // Clear-Site-Data Interaction with Prefetch and Prerender. + static constexpr DataType DATA_TYPE_PREFETCH_CACHE = 1 << 27; +- static constexpr DataType DATA_TYPE_PRERENDER_CACHE = 1 << 28; ++ static constexpr DataType DATA_TYPE_PRERENDER_CACHE = 1 << 29; - // Interest group data that should be cleared in response to user action, - // but not Clear-Site-Site data. -@@ -167,6 +169,9 @@ class BrowsingDataRemover { // Embedders can add more datatypes beyond this point. static constexpr DataType DATA_TYPE_CONTENT_END = DATA_TYPE_PRERENDER_CACHE; -+ static_assert(DATA_TYPE_CONTENT_END == DATA_TYPE_DEVICE_BOUND_SESSIONS, ++ static constexpr DataType DATA_TYPE_SKIP_SSL_HOST_STATE = 1 << 28; ++ ++ static_assert(DATA_TYPE_CONTENT_END == DATA_TYPE_PRERENDER_CACHE, + "Please check."); + // All data stored by the Attribution Reporting API. diff --git a/build/patches/Allow-building-without-enable_reporting.patch b/build/patches/Allow-building-without-enable_reporting.patch index b18c177a..efe24a7d 100644 --- a/build/patches/Allow-building-without-enable_reporting.patch +++ b/build/patches/Allow-building-without-enable_reporting.patch @@ -10,7 +10,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../browser/network/reporting_service_proxy.cc | 3 +++ .../renderer_host/render_frame_host_impl.cc | 6 ------ .../coop/cross_origin_opener_policy_reporter.cc | 16 +++++++--------- - .../dip/document_isolation_policy_reporter.cc | 2 ++ + .../dip/document_isolation_policy_reporter.cc | 3 +++ .../web_package/signed_exchange_reporter.cc | 2 ++ ...content_switch_dependent_feature_overrides.cc | 1 + .../Allow-building-without-enable_reporting.inc | 2 ++ @@ -26,7 +26,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../renderer/core/frame/reporting_context.cc | 9 +++++++++ .../renderer/core/frame/reporting_context.h | 7 +++++-- .../renderer/core/frame/reporting_observer.cc | 3 +-- - 22 files changed, 63 insertions(+), 25 deletions(-) + 22 files changed, 64 insertions(+), 25 deletions(-) create mode 100644 cromite_flags/services/network/public/cpp/features_cc/Allow-building-without-enable_reporting.inc diff --git a/chrome/browser/net/chrome_report_sender.cc b/chrome/browser/net/chrome_report_sender.cc @@ -219,7 +219,15 @@ diff --git a/content/browser/security/coop/cross_origin_opener_policy_reporter.c diff --git a/content/browser/security/dip/document_isolation_policy_reporter.cc b/content/browser/security/dip/document_isolation_policy_reporter.cc --- a/content/browser/security/dip/document_isolation_policy_reporter.cc +++ b/content/browser/security/dip/document_isolation_policy_reporter.cc -@@ -94,11 +94,13 @@ void DocumentIsolationPolicyReporter::QueueAndNotify( +@@ -7,6 +7,7 @@ + #include + + #include "base/values.h" ++#include "net/net_buildflags.h" + #include "content/public/browser/storage_partition.h" + #include "services/network/public/cpp/request_destination.h" + #include "services/network/public/mojom/network_context.mojom.h" +@@ -94,11 +95,13 @@ void DocumentIsolationPolicyReporter::QueueAndNotify( } body_to_pass.Set("disposition", disposition); diff --git a/build/patches/Allow-building-without-supervised-users.patch b/build/patches/Allow-building-without-supervised-users.patch index 5a9e4ce1..7417decf 100644 --- a/build/patches/Allow-building-without-supervised-users.patch +++ b/build/patches/Allow-building-without-supervised-users.patch @@ -11,13 +11,15 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html chrome/browser/profiles/profile_attributes_entry.cc | 2 +- chrome/browser/profiles/profile_impl.cc | 5 +---- chrome/browser/profiles/profile_manager.cc | 7 ------- + .../supervised_user/supervised_user_browser_utils.cc | 1 + chrome/browser/ui/webui/managed_ui_handler.cc | 4 ---- .../browser/ui/webui/management/management_ui_handler.cc | 4 ---- .../core/browser/supervised_user_pref_store.cc | 1 + .../core/browser/supervised_user_preferences.cc | 6 +++++- .../core/browser/supervised_user_service.cc | 5 +---- - components/supervised_user/core/common/features.cc | 5 ++++- - 13 files changed, 14 insertions(+), 31 deletions(-) + components/supervised_user/core/common/features.cc | 2 +- + extensions/browser/api/management/management_api.cc | 1 + + 15 files changed, 13 insertions(+), 31 deletions(-) diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn --- a/chrome/android/BUILD.gn @@ -130,6 +132,17 @@ diff --git a/chrome/browser/profiles/profile_manager.cc b/chrome/browser/profile #if BUILDFLAG(IS_CHROMEOS) user_manager::User* user = ash::ProfileHelper::Get()->GetUserByProfile(profile); +diff --git a/chrome/browser/supervised_user/supervised_user_browser_utils.cc b/chrome/browser/supervised_user/supervised_user_browser_utils.cc +--- a/chrome/browser/supervised_user/supervised_user_browser_utils.cc ++++ b/chrome/browser/supervised_user/supervised_user_browser_utils.cc +@@ -99,6 +99,7 @@ bool SupervisedUserCanSkipExtensionParentApprovals(const Profile* profile) { + } + + bool AreExtensionsPermissionsEnabled(Profile* profile) { ++ if ((true)) return false; + #if BUILDFLAG(ENABLE_EXTENSIONS_CORE) + return profile->IsChild(); + #else diff --git a/chrome/browser/ui/webui/managed_ui_handler.cc b/chrome/browser/ui/webui/managed_ui_handler.cc --- a/chrome/browser/ui/webui/managed_ui_handler.cc +++ b/chrome/browser/ui/webui/managed_ui_handler.cc @@ -225,13 +238,21 @@ diff --git a/components/supervised_user/core/common/features.cc b/components/sup #if BUILDFLAG(IS_IOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ BUILDFLAG(IS_WIN) const int kLocalWebApprovalBottomSheetLoadTimeoutDefaultValueMs = 5000; -@@ -141,4 +140,8 @@ BASE_FEATURE(kWaitUntilAccessTokenAvailableForClassifyUrl, +@@ -141,4 +140,5 @@ BASE_FEATURE(kWaitUntilAccessTokenAvailableForClassifyUrl, #endif ); +SET_CROMITE_FEATURE_DISABLED(kLocalWebApprovals); -+#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) -+SET_CROMITE_FEATURE_DISABLED(kEnableExtensionsPermissionsForSupervisedUsersOnDesktop); -+#endif } // namespace supervised_user +diff --git a/extensions/browser/api/management/management_api.cc b/extensions/browser/api/management/management_api.cc +--- a/extensions/browser/api/management/management_api.cc ++++ b/extensions/browser/api/management/management_api.cc +@@ -310,6 +310,7 @@ void AddExtensionInfo(const Extension* source_extension, + } + + bool PlatformSupportsApprovalFlowForExtensions() { ++ if ((true)) return false; + #if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ + BUILDFLAG(IS_WIN) + return true; -- diff --git a/build/patches/Ask-for-restart-on-connection-change.patch b/build/patches/Ask-for-restart-on-connection-change.patch index 7ff64dca..0d280b1f 100644 --- a/build/patches/Ask-for-restart-on-connection-change.patch +++ b/build/patches/Ask-for-restart-on-connection-change.patch @@ -32,6 +32,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../browser/tabwindow/TabWindowManager.java | 2 + .../tabwindow/TabWindowManagerImpl.java | 10 ++ .../Ask-for-restart-on-connection-change.grdp | 15 +++ + .../java/res/layout/floating_snackbar.xml | 10 ++ .../android/java/res/layout/snackbar.xml | 10 ++ .../ui/messages/snackbar/Snackbar.java | 16 +++ .../ui/messages/snackbar/SnackbarManager.java | 6 + @@ -49,7 +50,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../blink/renderer/core/frame/local_frame.cc | 2 + .../main_thread/frame_scheduler_impl.cc | 2 + .../main_thread/page_scheduler_impl.cc | 9 +- - 29 files changed, 322 insertions(+), 10 deletions(-) + 30 files changed, 332 insertions(+), 10 deletions(-) create mode 100644 chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/cromite/sAskForRestartOnConnectionChange.java create mode 100644 chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Ask-for-restart-on-connection-change.grdp create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Ask-for-restart-on-connection-change.inc @@ -98,7 +99,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/in +import org.chromium.base.supplier.ObservableSupplier; +import org.chromium.url.GURL; +import org.chromium.chrome.R; -+import org.chromium.chrome.browser.app.tabmodel.TabWindowManagerSingleton; ++import org.chromium.chrome.browser.app.tabwindow.TabWindowManagerSingleton; +import org.chromium.chrome.browser.layouts.LayoutManager; +import org.chromium.chrome.browser.compositor.layouts.Layout; +import org.chromium.chrome.browser.compositor.layouts.LayoutManagerImpl; @@ -111,7 +112,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/in +import org.chromium.chrome.browser.tab.Tab; +import org.chromium.chrome.browser.tabmodel.TabModelUtils; +import org.chromium.chrome.browser.tabmodel.TabModelSelector; -+import org.chromium.chrome.browser.tabmodel.TabWindowManager; ++import org.chromium.chrome.browser.tabwindow.TabWindowManager; +import org.chromium.chrome.browser.lifetime.ApplicationLifetime; +import org.chromium.content_public.browser.WebContentsObserver; +import org.chromium.content_public.browser.WebContents; @@ -452,6 +453,25 @@ new file mode 100644 + Not now + + +diff --git a/chrome/browser/ui/messages/android/java/res/layout/floating_snackbar.xml b/chrome/browser/ui/messages/android/java/res/layout/floating_snackbar.xml +--- a/chrome/browser/ui/messages/android/java/res/layout/floating_snackbar.xml ++++ b/chrome/browser/ui/messages/android/java/res/layout/floating_snackbar.xml +@@ -50,5 +50,15 @@ found in the LICENSE file. + android:paddingEnd="@dimen/snackbar_button_padding" + android:paddingStart="@dimen/snackbar_button_padding" + style="@style/TextButton" /> ++ ++ + + diff --git a/chrome/browser/ui/messages/android/java/res/layout/snackbar.xml b/chrome/browser/ui/messages/android/java/res/layout/snackbar.xml --- a/chrome/browser/ui/messages/android/java/res/layout/snackbar.xml +++ b/chrome/browser/ui/messages/android/java/res/layout/snackbar.xml diff --git a/build/patches/Content-settings-infrastructure.patch b/build/patches/Content-settings-infrastructure.patch index 221354ee..8eda6617 100644 --- a/build/patches/Content-settings-infrastructure.patch +++ b/build/patches/Content-settings-infrastructure.patch @@ -43,7 +43,7 @@ Require: bromite-build-utils.patch .../BromiteCustomContentSetting.java | 155 +++++++ .../BromiteCustomContentSettingImpl.java | 412 ++++++++++++++++++ ...tomTriStateSiteSettingsPreferenceImpl.java | 24 + - .../ContentSettingsResources.java | 38 +- + .../ContentSettingsResources.java | 37 +- .../site_settings/SingleCategorySettings.java | 54 ++- .../site_settings/SingleWebsiteSettings.java | 58 ++- .../site_settings/SiteSettings.java | 33 +- @@ -84,7 +84,7 @@ Require: bromite-build-utils.patch .../platform/web_content_settings_client.h | 13 + .../execution_context/execution_context.cc | 16 + .../execution_context/execution_context.h | 5 + - 73 files changed, 1964 insertions(+), 102 deletions(-) + 73 files changed, 1963 insertions(+), 102 deletions(-) create mode 100644 components/browser_ui/settings/android/java/res/layout/preference_spinner_single_widget.xml create mode 100644 components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/BromiteCustomContentSetting.java create mode 100644 components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/BromiteCustomContentSettingImpl.java @@ -2192,7 +2192,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c private final int mIcon; private final int mIconBlocked; private final int mTitle; -@@ -53,7 +53,29 @@ public class ContentSettingsResources { +@@ -53,7 +53,28 @@ public class ContentSettingsResources { private final int mDisabledPrimaryText; private int mDisabledDescriptionText; @@ -2215,7 +2215,6 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c + mSummaryOverrideForScreenReader = summaryOverrideForScreenReader; + mEnabledPrimaryText = 0; + mDisabledPrimaryText = 0; -+ mEnabledDescriptionText = 0; + mDisabledDescriptionText = 0; + } + @@ -2223,7 +2222,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c int icon, int title, @ContentSettingValues @Nullable Integer defaultEnabledValue, -@@ -629,6 +651,8 @@ public class ContentSettingsResources { +@@ -629,6 +650,8 @@ public class ContentSettingsResources { R.string.website_settings_vr_ask, R.string.website_settings_vr_block); } @@ -2232,7 +2231,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c assert false; // NOTREACHED return assumeNonNull(null); } -@@ -787,6 +811,14 @@ public class ContentSettingsResources { +@@ -787,6 +810,14 @@ public class ContentSettingsResources { return getResourceItem(contentType).getDefaultDisabledValue(); } @@ -2247,7 +2246,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c /** * Returns the string resource id for a given ContentSetting to show with a permission category. * -@@ -961,6 +993,8 @@ public class ContentSettingsResources { +@@ -961,6 +992,8 @@ public class ContentSettingsResources { */ public static int @Nullable [] getTriStateSettingDescriptionIDs( int contentType, boolean isPermissionSiteSettingsRadioButtonFeatureEnabled) { diff --git a/build/patches/Cromite-Branding--improve-settings-ui.patch b/build/patches/Cromite-Branding--improve-settings-ui.patch index 033f7074..0155b209 100644 --- a/build/patches/Cromite-Branding--improve-settings-ui.patch +++ b/build/patches/Cromite-Branding--improve-settings-ui.patch @@ -8,10 +8,10 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html --- chrome/android/chrome_java_resources.gni | 2 +- .../android/java/res/xml/main_preferences.xml | 4 +- - .../res/xml/privacy_preferences_cromite.xml | 192 ++++++++++++++++++ + .../res/xml/privacy_preferences_cromite.xml | 191 ++++++++++++++++++ .../privacy/settings/PrivacySettings.java | 12 +- .../Cromite-settings-ui.grdp | 15 ++ - 5 files changed, 217 insertions(+), 8 deletions(-) + 5 files changed, 216 insertions(+), 8 deletions(-) create mode 100644 chrome/android/java/res/xml/privacy_preferences_cromite.xml create mode 100644 chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Cromite-settings-ui.grdp @@ -52,7 +52,7 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences_cromite.xml b/chrom new file mode 100644 --- /dev/null +++ b/chrome/android/java/res/xml/privacy_preferences_cromite.xml -@@ -0,0 +1,192 @@ +@@ -0,0 +1,191 @@ + ++ + + -+ + + diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java --- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java -@@ -189,7 +189,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -188,7 +188,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment public void onCreatePreferencesCromite(Bundle savedInstanceState, String rootKey) { mPageTitle.set(getString(R.string.prefs_privacy_security)); @@ -257,7 +256,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting Preference incognitoTrackingProtectionsPreference = findPreference(PREF_INCOGNITO_TRACKING_PROTECTIONS); -@@ -280,10 +280,12 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -279,10 +279,12 @@ public class PrivacySettings extends ChromeBaseSettingsFragment ChromeSwitchPreference passwordLeakTogglePref = (ChromeSwitchPreference) findPreference(PREF_PASSWORD_LEAK_DETECTION); diff --git a/build/patches/Cromite-Branding.patch b/build/patches/Cromite-Branding.patch index 00a6ea65..e5948f8a 100644 --- a/build/patches/Cromite-Branding.patch +++ b/build/patches/Cromite-Branding.patch @@ -35,6 +35,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../theme/chromium/win/tiles/SmallLogo.png | Bin 9784 -> 12363 bytes .../chromium/product_logo_32.png | Bin 822 -> 2301 bytes chrome/browser/BUILD.gn | 1 + + .../browser/flags/ChromeFeatureList.java | 2 +- .../chrome/browser/omaha/UpdateConfigs.java | 2 +- chrome/browser/prefs/BUILD.gn | 1 + .../prefs/chrome_pref_service_factory.cc | 6 +- @@ -58,8 +59,10 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../webui/version/resources/about_version.ts | 4 +- .../resources/about_version_mobile.css | 9 ++ content/child/runtime_features.cc | 44 ++++----- + .../Cromite-Branding.inc | 1 + tools/grit/grit/grd_reader.py | 35 +++++++ - 55 files changed, 201 insertions(+), 128 deletions(-) + 57 files changed, 203 insertions(+), 129 deletions(-) + create mode 100644 cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/Cromite-Branding.inc diff --git a/build/BUILD.gn b/build/BUILD.gn --- a/build/BUILD.gn @@ -13163,6 +13166,18 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn "//cc", "//chrome:extra_resources", "//chrome:resources", +diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java +--- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java ++++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java +@@ -1073,7 +1073,7 @@ public abstract class ChromeFeatureList { + public static final MutableFlagWithSafeDefault sSuppressToolbarCapturesAtGestureEnd = + newMutableFlagWithSafeDefault(SUPPRESS_TOOLBAR_CAPTURES_AT_GESTURE_END, false); + public static final MutableFlagWithSafeDefault sSwapNewTabAndNewTabInGroupAndroid = +- newMutableFlagWithSafeDefault(SWAP_NEW_TAB_AND_NEW_TAB_IN_GROUP_ANDROID, false); ++ newMutableFlagWithSafeDefault(SWAP_NEW_TAB_AND_NEW_TAB_IN_GROUP_ANDROID, true); + public static final MutableFlagWithSafeDefault sTabGroupEntryPointsAndroid = + newMutableFlagWithSafeDefault(TAB_GROUP_ENTRY_POINTS_ANDROID, false); + public static final MutableFlagWithSafeDefault sTabGroupParityBottomSheetAndroid = diff --git a/chrome/browser/omaha/android/java/src/org/chromium/chrome/browser/omaha/UpdateConfigs.java b/chrome/browser/omaha/android/java/src/org/chromium/chrome/browser/omaha/UpdateConfigs.java --- a/chrome/browser/omaha/android/java/src/org/chromium/chrome/browser/omaha/UpdateConfigs.java +++ b/chrome/browser/omaha/android/java/src/org/chromium/chrome/browser/omaha/UpdateConfigs.java @@ -19067,6 +19082,12 @@ diff --git a/content/child/runtime_features.cc b/content/child/runtime_features. << "PermissionElement cannot be enabled in this configuration. Use --" << switches::kEnableFeatures << "=" << blink::features::kPermissionElement.name << " instead."; +diff --git a/cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/Cromite-Branding.inc b/cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/Cromite-Branding.inc +new file mode 100644 +--- /dev/null ++++ b/cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/Cromite-Branding.inc +@@ -0,0 +1 @@ ++SET_CROMITE_FEATURE_DISABLED(kSwapNewTabAndNewTabInGroupAndroid); diff --git a/tools/grit/grit/grd_reader.py b/tools/grit/grit/grd_reader.py --- a/tools/grit/grit/grd_reader.py +++ b/tools/grit/grit/grd_reader.py diff --git a/build/patches/Disable-all-predictors-code.patch b/build/patches/Disable-all-predictors-code.patch index d8876311..3e82b956 100644 --- a/build/patches/Disable-all-predictors-code.patch +++ b/build/patches/Disable-all-predictors-code.patch @@ -28,6 +28,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../read_anything/read_anything_app_controller.h | 4 ++++ chrome/utility/BUILD.gn | 2 +- chrome/utility/services.cc | 8 -------- + components/BUILD.gn | 2 +- .../autofill_optimization_guide.cc | 5 +++-- .../omnibox/browser/autocomplete_controller.cc | 4 ++++ .../omnibox/browser/base_search_provider.cc | 4 ++-- @@ -53,7 +54,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../core/html/parser/html_document_parser.cc | 1 + .../document_speculation_rules.cc | 1 + .../platform/runtime_enabled_features.json5 | 2 +- - 48 files changed, 122 insertions(+), 47 deletions(-) + 49 files changed, 123 insertions(+), 48 deletions(-) create mode 100644 cromite_flags/chrome/browser/browser_features_cc/Disable-all-predictors-code.inc create mode 100644 cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/Disable-all-predictors-code.inc create mode 100644 cromite_flags/chrome/common/chrome_features_cc/Disable-all-predictors-code.inc @@ -583,6 +584,18 @@ diff --git a/chrome/utility/services.cc b/chrome/utility/services.cc services.Add(RunScreenAIServiceFactory); #endif // !BUILDFLAG(IS_ANDROID) +diff --git a/components/BUILD.gn b/components/BUILD.gn +--- a/components/BUILD.gn ++++ b/components/BUILD.gn +@@ -597,7 +597,7 @@ test("components_unittests") { + "//components/media_router/common/providers/cast/channel:unit_tests", + "//components/page_info:unit_tests", + "//components/permissions:unit_tests", +- "//components/permissions/prediction_service:unit_tests", ++ # "//components/permissions/prediction_service:unit_tests", + "//components/privacy_sandbox:unit_tests", + "//components/privacy_sandbox/privacy_sandbox_attestations:unit_tests", + "//components/safety_check:unit_tests", diff --git a/components/autofill/core/browser/integrators/optimization_guide/autofill_optimization_guide.cc b/components/autofill/core/browser/integrators/optimization_guide/autofill_optimization_guide.cc --- a/components/autofill/core/browser/integrators/optimization_guide/autofill_optimization_guide.cc +++ b/components/autofill/core/browser/integrators/optimization_guide/autofill_optimization_guide.cc diff --git a/build/patches/Disable-privacy-issues-in-password-manager.patch b/build/patches/Disable-privacy-issues-in-password-manager.patch index d90bbb5b..b4361384 100644 --- a/build/patches/Disable-privacy-issues-in-password-manager.patch +++ b/build/patches/Disable-privacy-issues-in-password-manager.patch @@ -16,8 +16,9 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../affiliation/password_affiliation_source_adapter.cc | 4 ++++ .../leak_detection/leak_detection_check_factory_impl.cc | 5 +++++ .../browser/leak_detection/leak_detection_check_impl.cc | 3 +-- + .../password_manager/core/browser/password_manager.cc | 4 ++-- .../Disable-privacy-issues-in-password-manager.inc | 1 + - 12 files changed, 24 insertions(+), 15 deletions(-) + 13 files changed, 26 insertions(+), 17 deletions(-) create mode 100644 cromite_flags/components/password_manager/core/browser/features/password_features_cc/Disable-privacy-issues-in-password-manager.inc diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/AndroidManifest.xml @@ -168,6 +169,27 @@ diff --git a/components/password_manager/core/browser/leak_detection/leak_detect } void LeakDetectionCheckImpl::Start(LeakDetectionInitiator initiator, +diff --git a/components/password_manager/core/browser/password_manager.cc b/components/password_manager/core/browser/password_manager.cc +--- a/components/password_manager/core/browser/password_manager.cc ++++ b/components/password_manager/core/browser/password_manager.cc +@@ -498,7 +498,7 @@ void PasswordManager::RegisterProfilePrefs( + #if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_ANDROID) || \ + BUILDFLAG(IS_CHROMEOS) + registry->RegisterBooleanPref(prefs::kBiometricAuthenticationBeforeFilling, +- false); ++ true); + #endif // BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_ANDROID) || + // BUILDFLAG(IS_CHROMEOS) + #if !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_IOS) // Desktop +@@ -531,7 +531,7 @@ void PasswordManager::RegisterProfilePrefs( + registry->RegisterBooleanPref(prefs::kAccountStoreMigratedToOSCryptAsync, + false); + registry->RegisterBooleanPref( +- prefs::kAutomaticPasskeyUpgrades, true, ++ prefs::kAutomaticPasskeyUpgrades, false, + user_prefs::PrefRegistrySyncable::SYNCABLE_PRIORITY_PREF); + } + diff --git a/cromite_flags/components/password_manager/core/browser/features/password_features_cc/Disable-privacy-issues-in-password-manager.inc b/cromite_flags/components/password_manager/core/browser/features/password_features_cc/Disable-privacy-issues-in-password-manager.inc new file mode 100644 --- /dev/null diff --git a/build/patches/Disable-safety-check.patch b/build/patches/Disable-safety-check.patch index 7243dfa8..870ab60f 100644 --- a/build/patches/Disable-safety-check.patch +++ b/build/patches/Disable-safety-check.patch @@ -12,11 +12,13 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../chrome/browser/settings/MainSettings.java | 2 +- .../settings/SettingsNavigationImpl.java | 13 +---- chrome/browser/BUILD.gn | 1 - + chrome/browser/safety_check/android/BUILD.gn | 2 - + .../safety_check/SafetyCheckBridge.java | 4 +- .../suggestions/action/OmniboxPedal.java | 3 - chrome/browser/ui/tab_helpers.cc | 2 +- .../site_settings/SiteSettings.java | 2 +- .../Disable-safety-check.inc | 1 + - 12 files changed, 9 insertions(+), 113 deletions(-) + 14 files changed, 11 insertions(+), 117 deletions(-) create mode 100644 cromite_flags/chrome/common/chrome_features_cc/Disable-safety-check.inc diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn @@ -291,6 +293,46 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn "//chrome/browser/safety_hub/android", "//chrome/browser/search_resumption:jni_headers", "//chrome/browser/serial/android:jni_headers", +diff --git a/chrome/browser/safety_check/android/BUILD.gn b/chrome/browser/safety_check/android/BUILD.gn +--- a/chrome/browser/safety_check/android/BUILD.gn ++++ b/chrome/browser/safety_check/android/BUILD.gn +@@ -14,7 +14,6 @@ generate_jni("jni_headers") { + source_set("android") { + sources = [ "safety_check_bridge.cc" ] + deps = [ +- ":jni_headers", + "//chrome/browser/signin:identity_manager_provider", + "//components/password_manager/core/browser/leak_detection", + "//components/prefs", +@@ -73,7 +72,6 @@ android_library("java") { + + srcjar_deps = [ + ":bulk_leak_check_service_enums", +- ":jni_headers", + ":safety_check_enums", + ] + resources_package = "org.chromium.chrome.browser.safety_check" +diff --git a/chrome/browser/safety_check/android/java/src/org/chromium/chrome/browser/safety_check/SafetyCheckBridge.java b/chrome/browser/safety_check/android/java/src/org/chromium/chrome/browser/safety_check/SafetyCheckBridge.java +--- a/chrome/browser/safety_check/android/java/src/org/chromium/chrome/browser/safety_check/SafetyCheckBridge.java ++++ b/chrome/browser/safety_check/android/java/src/org/chromium/chrome/browser/safety_check/SafetyCheckBridge.java +@@ -26,7 +26,7 @@ public class SafetyCheckBridge { + + /** Returns whether the user is signed in for the purposes of password check. */ + boolean userSignedIn() { +- return SafetyCheckBridgeJni.get().userSignedIn(mProfile); ++ return false; + } + + /** +@@ -37,7 +37,7 @@ public class SafetyCheckBridge { + */ + @SafeBrowsingStatus + int checkSafeBrowsing() { +- return SafetyCheckBridgeJni.get().checkSafeBrowsing(mProfile); ++ return SafeBrowsingStatus.DISABLED; + } + + /** C++ method signatures. */ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/action/OmniboxPedal.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/action/OmniboxPedal.java --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/action/OmniboxPedal.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/action/OmniboxPedal.java diff --git a/build/patches/Enable-Global-Privacy-Control.patch b/build/patches/Enable-Global-Privacy-Control.patch index e651b598..92cf2bac 100644 --- a/build/patches/Enable-Global-Privacy-Control.patch +++ b/build/patches/Enable-Global-Privacy-Control.patch @@ -172,7 +172,7 @@ new file mode 100644 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java --- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java -@@ -126,6 +126,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -125,6 +125,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment private static final String PREF_HTTPS_FIRST_MODE_LEGACY = "https_first_mode_legacy"; private static final String PREF_SECURE_DNS = "secure_dns"; private static final String PREF_USAGE_STATS = "usage_stats_reporting"; @@ -180,7 +180,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting private static final String PREF_SAFE_BROWSING = "safe_browsing"; private static final String PREF_PASSWORD_LEAK_DETECTION = "password_leak_detection"; private static final String PREF_SYNC_AND_SERVICES_LINK = "sync_and_services_link"; -@@ -570,6 +571,14 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -569,6 +570,14 @@ public class PrivacySettings extends ChromeBaseSettingsFragment : R.string.text_off); } @@ -368,8 +368,8 @@ new file mode 100644 + }; + } + -+ prefs: {enable_gpc: chrome.settingsPrivate.PrefObject}; -+ private showDialog_: boolean; ++ declare prefs: {enable_gpc: chrome.settingsPrivate.PrefObject}; ++ declare private showDialog_: boolean; + + private onDomChange_() { + if (this.showDialog_) { diff --git a/build/patches/Enable-component-updater.patch b/build/patches/Enable-component-updater.patch index 25cf3f39..31a1e75b 100644 --- a/build/patches/Enable-component-updater.patch +++ b/build/patches/Enable-component-updater.patch @@ -255,8 +255,8 @@ diff --git a/components/component_updater/component_installer.cc b/components/co base::DeletePathRecursively(unpack_path); if (result.result.category != update_client::ErrorCategory::kNone) { + LOG(ERROR) << "ComponentInstaller:" -+ << " Install error " << result.result.code_ -+ << " extra " << result.result.extra_; ++ << " Install error " << result.result.code ++ << " extra " << result.result.extra; main_task_runner_->PostTask(FROM_HERE, base::BindOnce(std::move(callback), result)); return; @@ -686,7 +686,7 @@ diff --git a/components/update_client/utils.cc b/components/update_client/utils. hasher->Finish(sha256_hash); + DLOG(INFO) << "VerifyFileHash256 " -+ << "actual_hash=" << base::HexEncode(actual_hash); ++ << "sha256_hash=" << base::HexEncode(sha256_hash); + return base::span(sha256_hash) == base::span(expected_hash); } diff --git a/build/patches/Enable-gwp-asan-on-Android.patch b/build/patches/Enable-gwp-asan-on-Android.patch index 2802e300..e49ebc2f 100644 --- a/build/patches/Enable-gwp-asan-on-Android.patch +++ b/build/patches/Enable-gwp-asan-on-Android.patch @@ -248,7 +248,7 @@ diff --git a/components/memory_system/memory_system.cc b/components/memory_syste if (gwp_asan_parameters) { InitializeGwpASan(*gwp_asan_parameters, initialization_data); -+ LOG(INFO) << "MemorySystem: Gwp Asan Initialized."; ++ DLOG(INFO) << "MemorySystem: Gwp Asan Initialized."; } if (profiling_client_parameters) { diff --git a/build/patches/Enable-native-Android-autofill.patch b/build/patches/Enable-native-Android-autofill.patch index 1f0d5369..62ad7855 100644 --- a/build/patches/Enable-native-Android-autofill.patch +++ b/build/patches/Enable-native-Android-autofill.patch @@ -37,7 +37,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../browser/content_autofill_driver.cc | 11 +++ .../content/browser/content_autofill_driver.h | 10 +++ .../content_autofill_driver_factory.cc | 12 +++ - .../content/renderer/autofill_agent.cc | 4 + + .../content/renderer/autofill_agent.cc | 5 ++ .../renderer/password_autofill_agent.cc | 5 +- .../browser/foundations/autofill_driver.h | 2 + .../foundations/autofill_driver_factory.cc | 4 + @@ -48,7 +48,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../autofill/core/common/autofill_features.h | 22 ----- .../autofill/core/common/autofill_prefs.cc | 4 +- .../autofill/core/common/autofill_prefs.h | 5 ++ - 33 files changed, 275 insertions(+), 165 deletions(-) + 33 files changed, 276 insertions(+), 165 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 @@ -813,7 +813,7 @@ diff --git a/components/autofill/content/browser/content_autofill_driver_factory diff --git a/components/autofill/content/renderer/autofill_agent.cc b/components/autofill/content/renderer/autofill_agent.cc --- a/components/autofill/content/renderer/autofill_agent.cc +++ b/components/autofill/content/renderer/autofill_agent.cc -@@ -1529,14 +1529,18 @@ void AutofillAgent::ShowSuggestions( +@@ -1529,14 +1529,19 @@ void AutofillAgent::ShowSuggestions( password_generation_agent_->ShowPasswordGenerationSuggestions( input_element, form_cache)) { is_popup_possibly_visible_ = true; @@ -821,6 +821,7 @@ diff --git a/components/autofill/content/renderer/autofill_agent.cc b/components return; +#endif } ++ [[maybe_unused]] bool password_agent_handled_request = TryShowPasswordSuggestions( input_element, IsPasswordsAutofillManuallyTriggered(trigger_source), password_request); diff --git a/build/patches/Enable-search-engine-settings-desktop-ui.patch b/build/patches/Enable-search-engine-settings-desktop-ui.patch index 08d98d58..83c90568 100644 --- a/build/patches/Enable-search-engine-settings-desktop-ui.patch +++ b/build/patches/Enable-search-engine-settings-desktop-ui.patch @@ -14,6 +14,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html chrome/browser/BUILD.gn | 3 + .../chrome_browser_interface_binders.cc | 3 + .../chrome_browser_interface_binders_webui.cc | 21 ++ + chrome/browser/extensions/extension_util.h | 2 +- chrome/browser/resources/BUILD.gn | 6 + chrome/browser/resources/settings/BUILD.gn | 2 +- .../resources/settings/page_visibility.ts | 36 ++- @@ -77,7 +78,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html ui/webui/resources/images/BUILD.gn | 2 +- ui/webui/resources/js/BUILD.gn | 2 +- ui/webui/resources/js/load_time_data.ts | 17 +- - 70 files changed, 1150 insertions(+), 69 deletions(-) + 71 files changed, 1151 insertions(+), 70 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 @@ -493,6 +494,18 @@ diff --git a/chrome/browser/chrome_browser_interface_binders_webui.cc b/chrome/b RegisterWebUIControllerInterfaceBinder< help_bubble::mojom::HelpBubbleHandlerFactory, UserEducationInternalsUI, settings::SettingsUI, ReadingListUI, NewTabPageUI, CustomizeChromeUI, +diff --git a/chrome/browser/extensions/extension_util.h b/chrome/browser/extensions/extension_util.h +--- a/chrome/browser/extensions/extension_util.h ++++ b/chrome/browser/extensions/extension_util.h +@@ -13,7 +13,7 @@ + #include "extensions/buildflags/buildflags.h" + #include "extensions/common/constants.h" + +-static_assert(BUILDFLAG(ENABLE_EXTENSIONS_CORE)); ++// static_assert(BUILDFLAG(ENABLE_EXTENSIONS_CORE)); + + namespace content { + class BrowserContext; 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 @@ -929,7 +942,7 @@ diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn + "webui/favicon_source.h", + ] + deps += [ -+ "//chrome/browser/search/background:ntp_background_proto", ++ "//components/themes:ntp_background_proto", + ] } else { # !is_android diff --git a/build/patches/Experimental-user-scripts-support.patch b/build/patches/Experimental-user-scripts-support.patch index 42d65eb6..f5ebbbbf 100644 --- a/build/patches/Experimental-user-scripts-support.patch +++ b/build/patches/Experimental-user-scripts-support.patch @@ -124,7 +124,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../user_scripts/renderer/user_script_set.cc | 264 ++++++ .../user_scripts/renderer/user_script_set.h | 101 +++ .../renderer/user_script_set_manager.cc | 76 ++ - .../renderer/user_script_set_manager.h | 63 ++ + .../renderer/user_script_set_manager.h | 64 ++ .../renderer/user_scripts_dispatcher.cc | 36 + .../renderer/user_scripts_dispatcher.h | 49 ++ .../renderer/user_scripts_renderer_client.cc | 108 +++ @@ -132,10 +132,11 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../renderer/web_ui_injection_host.cc | 40 + .../renderer/web_ui_injection_host.h | 31 + .../strings/userscripts_strings.grdp | 54 ++ + content/common/features.gni | 2 +- .../Experimental-user-scripts-support.inc | 13 + ipc/ipc_message_start.h | 1 + tools/gritsettings/resource_ids.spec | 6 + - 108 files changed, 9354 insertions(+), 2 deletions(-) + 109 files changed, 9356 insertions(+), 3 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 @@ -3265,7 +3266,7 @@ new file mode 100755 + return {}; + + // Copy the pickle to shared memory. -+ memcpy(shared_memory.mapping.memory(), pickle.data(), pickle.size()); ++ shared_memory.mapping.GetMemoryAsSpan().copy_prefix_from(pickle); + return std::move(shared_memory.region); +} + @@ -9852,7 +9853,7 @@ diff --git a/components/user_scripts/renderer/user_script_set_manager.h b/compon new file mode 100755 --- /dev/null +++ b/components/user_scripts/renderer/user_script_set_manager.h -@@ -0,0 +1,63 @@ +@@ -0,0 +1,64 @@ +#ifndef USERSCRIPTS_RENDER_SET_MANAGER_H_ +#define USERSCRIPTS_RENDER_SET_MANAGER_H_ + @@ -9861,6 +9862,7 @@ new file mode 100755 +#include +#include + ++#include "ipc/ipc_message.h" +#include "base/memory/read_only_shared_memory_region.h" +#include "base/observer_list.h" +#include "content/public/renderer/render_thread_observer.h" @@ -10079,7 +10081,7 @@ new file mode 100755 +void UserScriptsRendererClient::RenderFrameCreated( + content::RenderFrame* render_frame, + service_manager::BinderRegistry* registry) { -+ ++ if (!chrome_observer_) return; + auto params = chrome_observer_->GetDynamicParams(); + enabled_ = params->allow_userscript; + if (!enabled_) return; @@ -10308,6 +10310,16 @@ new file mode 100755 + + + +diff --git a/content/common/features.gni b/content/common/features.gni +--- a/content/common/features.gni ++++ b/content/common/features.gni +@@ -20,5 +20,5 @@ declare_args() { + mbi_mode = is_linux || is_chromeos || is_mac || is_win || is_android + + # We allow legacy IPC to be enabled for Pepper usage. +- content_enable_legacy_ipc = enable_ppapi ++ content_enable_legacy_ipc = true + } diff --git a/cromite_flags/chrome/browser/about_flags_cc/Experimental-user-scripts-support.inc b/cromite_flags/chrome/browser/about_flags_cc/Experimental-user-scripts-support.inc new file mode 100644 --- /dev/null diff --git a/build/patches/Fix-chromium-build-bugs.patch b/build/patches/Fix-chromium-build-bugs.patch index f7cd5a29..a7559718 100644 --- a/build/patches/Fix-chromium-build-bugs.patch +++ b/build/patches/Fix-chromium-build-bugs.patch @@ -6,6 +6,7 @@ because of https://bugs.chromium.org/p/chromium/issues/detail?id=1491776#c10 --- BUILD.gn | 1 - + build/config/compiler/BUILD.gn | 6 +++++- .../navigation_predictor_metrics_document_data.h | 2 ++ chrome/browser/safe_browsing/BUILD.gn | 1 + .../component_updater/installer_policies/BUILD.gn | 1 + @@ -16,7 +17,7 @@ https://bugs.chromium.org/p/chromium/issues/detail?id=1491776#c10 content/browser/browser_interface_binders.cc | 1 + net/BUILD.gn | 1 + services/webnn/dml/graph_impl_dml.cc | 2 ++ - 11 files changed, 16 insertions(+), 16 deletions(-) + 12 files changed, 21 insertions(+), 17 deletions(-) diff --git a/BUILD.gn b/BUILD.gn --- a/BUILD.gn @@ -29,6 +30,22 @@ diff --git a/BUILD.gn b/BUILD.gn "//android_webview/tools/sdk_sandbox", "//android_webview/tools/system_webview_shell", "//chrome/android:chrome_junit_tests", +diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn +--- a/build/config/compiler/BUILD.gn ++++ b/build/config/compiler/BUILD.gn +@@ -1674,7 +1674,11 @@ config("clang_revision") { + _expected_clang_revision = "$_py_revision-$_py_subrevision" + + assert( +- _clang_revision == _expected_clang_revision, ++ filter_include([ _clang_revision ], ++ [ ++ _expected_clang_revision, ++ "$_expected_clang_revision,*", ++ ]) != [], + "clang_revision=\"$_clang_revision\" but update.py expected \"$_expected_clang_revision\". Did you forget to gclient sync?") + } + } diff --git a/chrome/browser/navigation_predictor/navigation_predictor_metrics_document_data.h b/chrome/browser/navigation_predictor/navigation_predictor_metrics_document_data.h --- a/chrome/browser/navigation_predictor/navigation_predictor_metrics_document_data.h +++ b/chrome/browser/navigation_predictor/navigation_predictor_metrics_document_data.h diff --git a/build/patches/Force-use-vpython3-for-some-scripts.patch b/build/patches/Force-use-vpython3-for-some-scripts.patch index 6d64f1e3..e3339a0a 100644 --- a/build/patches/Force-use-vpython3-for-some-scripts.patch +++ b/build/patches/Force-use-vpython3-for-some-scripts.patch @@ -8,11 +8,37 @@ required by the chromium build tools. License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html --- - components/search_engines/BUILD.gn | 4 +++- - components/variations/field_trial_config/BUILD.gn | 4 +++- - tools/json_to_struct/json_to_struct.gni | 4 +++- - 3 files changed, 9 insertions(+), 3 deletions(-) + components/metrics/generate_expired_histograms_array.gni | 7 +++++-- + components/search_engines/BUILD.gn | 4 +++- + components/variations/field_trial_config/BUILD.gn | 4 +++- + tools/json_to_struct/json_to_struct.gni | 4 +++- + tools/metrics/generate_allowlist_from_histograms_file.gni | 5 +++-- + 5 files changed, 17 insertions(+), 7 deletions(-) +diff --git a/components/metrics/generate_expired_histograms_array.gni b/components/metrics/generate_expired_histograms_array.gni +--- a/components/metrics/generate_expired_histograms_array.gni ++++ b/components/metrics/generate_expired_histograms_array.gni +@@ -30,7 +30,7 @@ template("generate_expired_histograms_array") { + action(target_name) { + header_filename = "$target_gen_dir/" + invoker.header_filename + +- script = "//tools/metrics/histograms/generate_expired_histograms_array.py" ++ script = "//build/gn_run_binary.py" + outputs = [ header_filename ] + + inputs = histograms_xml_files +@@ -38,7 +38,10 @@ template("generate_expired_histograms_array") { + major_branch_date_filepath = invoker.major_branch_date_filepath + milestone_filepath = invoker.milestone_filepath + +- args = [] ++ args = [ ++ rebase_path("//third_party/depot_tools/vpython3"), ++ rebase_path("//tools/metrics/histograms/generate_expired_histograms_array.py") ++ ] + + if (defined(invoker.namespace) && invoker.namespace != "") { + args += [ "-n" + invoker.namespace ] diff --git a/components/search_engines/BUILD.gn b/components/search_engines/BUILD.gn --- a/components/search_engines/BUILD.gn +++ b/components/search_engines/BUILD.gn @@ -76,4 +102,23 @@ diff --git a/tools/json_to_struct/json_to_struct.gni b/tools/json_to_struct/json rebase_path(invoker.source, root_build_dir), "--destbase=" + rebase_path(out_dir, root_build_dir), "--namespace=" + invoker.namespace, +diff --git a/tools/metrics/generate_allowlist_from_histograms_file.gni b/tools/metrics/generate_allowlist_from_histograms_file.gni +--- a/tools/metrics/generate_allowlist_from_histograms_file.gni ++++ b/tools/metrics/generate_allowlist_from_histograms_file.gni +@@ -26,12 +26,13 @@ template("generate_allowlist_from_histograms_file") { + action(target_name) { + output_file = "$target_gen_dir/" + invoker.output_file + +- script = +- "//tools/metrics/histograms/generate_allowlist_from_histograms_file.py" ++ script = "//build/gn_run_binary.py" + outputs = [ output_file ] + sources = [ invoker.input_xml_file ] + + args = [ ++ rebase_path("//third_party/depot_tools/vpython3"), ++ rebase_path("//tools/metrics/histograms/generate_allowlist_from_histograms_file.py"), + "--allow_list_name=" + invoker.allow_list_name, + "--namespace=" + invoker.namespace, + "--tag=" + invoker.tag, -- diff --git a/build/patches/History-number-of-days-privacy-setting.patch b/build/patches/History-number-of-days-privacy-setting.patch index 03f0941f..90baa3f9 100644 --- a/build/patches/History-number-of-days-privacy-setting.patch +++ b/build/patches/History-number-of-days-privacy-setting.patch @@ -64,7 +64,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting import org.chromium.components.browser_ui.site_settings.ContentSettingsResources; import org.chromium.components.browser_ui.site_settings.SingleCategorySettings; import org.chromium.components.browser_ui.site_settings.WebsitePreferenceBridge; -@@ -96,6 +97,9 @@ import org.chromium.chrome.browser.preferences.ChromeSharedPreferences; +@@ -95,6 +96,9 @@ import org.chromium.chrome.browser.preferences.ChromeSharedPreferences; import org.chromium.components.browser_ui.settings.ChromeSwitchPreference; import org.chromium.components.browser_ui.settings.ManagedPreferenceDelegate; @@ -74,7 +74,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 { -@@ -161,6 +165,8 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -160,6 +164,8 @@ public class PrivacySettings extends ChromeBaseSettingsFragment private ChromeSwitchPreference allowCustomTabIntentsPref; private ChromeSwitchPreference openExternalLinksPref; @@ -83,7 +83,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting @Override public void onCreatePreferencesCromite(Bundle savedInstanceState, String rootKey) { mPageTitle.set(getString(R.string.prefs_privacy_security)); -@@ -311,6 +317,40 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -310,6 +316,40 @@ public class PrivacySettings extends ChromeBaseSettingsFragment Preference syncAndServicesLink = findPreference(PREF_SYNC_AND_SERVICES_LINK); syncAndServicesLink.setSummary(buildFooterString()); @@ -124,7 +124,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting Preference thirdPartyCookies = findPreference(PREF_THIRD_PARTY_COOKIES); if (showTrackingProtectionUi()) { if (thirdPartyCookies != null) thirdPartyCookies.setVisible(false); -@@ -650,6 +690,29 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -649,6 +689,29 @@ public class PrivacySettings extends ChromeBaseSettingsFragment || ((System.currentTimeMillis() - updateTimeMs) < TimeUnit.DAYS.toMillis(90)); } @@ -248,7 +248,7 @@ diff --git a/chrome/browser/resources/settings/privacy_page/privacy_page.ts b/ch }; } -+ private historyExpireDaysThresholdOptions_: object[]; ++ declare private historyExpireDaysThresholdOptions_: object[]; declare private isGuest_: boolean; declare private showPersistentPermissions_: boolean; declare private showClearBrowsingDataDialog_: boolean; diff --git a/build/patches/Improve-the-browser-sandbox.patch b/build/patches/Improve-the-browser-sandbox.patch index 5ff24b48..f758b407 100644 --- a/build/patches/Improve-the-browser-sandbox.patch +++ b/build/patches/Improve-the-browser-sandbox.patch @@ -26,7 +26,7 @@ new file mode 100644 --- /dev/null +++ b/cromite_flags/content/public/common/content_features_cc/Improve-the-browser-sandbox.inc @@ -0,0 +1 @@ -+SET_CROMITE_FEATURE_ENABLED(kUseBrowserCalculatedOrigin); ++// intentionally empty 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/Internal-firewall.patch b/build/patches/Internal-firewall.patch index 09a02aab..eaa8f67a 100644 --- a/build/patches/Internal-firewall.patch +++ b/build/patches/Internal-firewall.patch @@ -1794,11 +1794,11 @@ diff --git a/services/network/public/cpp/simple_url_loader.cc b/services/network string_upload_data_pipe_getter_->GetRemoteForNewUpload()); } + if (firewall_service_ && -+ !firewall_service_->IsAllowed(annotation_tag_.unique_id_hash_code)) { -+ auto entry = firewall_service_->GetEntry(annotation_tag_.unique_id_hash_code); ++ !firewall_service_->IsAllowed(annotation_tag_->unique_id_hash_code)) { ++ auto entry = firewall_service_->GetEntry(annotation_tag_->unique_id_hash_code); + LOG(INFO) << "---ABORTED SimpleURLLoaderImpl: " + << (entry.has_value() ? entry->name : "no-name") -+ << "(" << annotation_tag_.unique_id_hash_code << ")" ++ << "(" << annotation_tag_->unique_id_hash_code << ")" + << " url: " << resource_request_->url.possibly_invalid_spec() + << " path: " << (entry.has_value() ? entry->path : "no-path"); + diff --git a/build/patches/Move-navigation-bar-to-bottom.patch b/build/patches/Move-navigation-bar-to-bottom.patch index 1a3ef35d..dee89f4f 100644 --- a/build/patches/Move-navigation-bar-to-bottom.patch +++ b/build/patches/Move-navigation-bar-to-bottom.patch @@ -27,6 +27,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../tab_management/TabSwitcherPaneBase.java | 9 + .../browser/feed/FeedSurfaceCoordinator.java | 4 + .../ChromeAccessibilitySettingsDelegate.java | 70 ++++++++ + .../HeadlessBrowserControlsStateProvider.java | 5 + .../compositor/CompositorViewHolder.java | 7 + .../layouts/LayoutManagerChrome.java | 12 +- .../layouts/LayoutManagerChromeTablet.java | 4 +- @@ -38,7 +39,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../scene_layer/TabStripSceneLayer.java | 20 ++- .../browser/findinpage/FindToolbarTablet.java | 10 +- .../fullscreen/BrowserControlsManager.java | 12 ++ - .../messages/MessageContainerCoordinator.java | 16 +- + .../messages/MessageContainerCoordinator.java | 15 +- .../modaldialog/ChromeTabModalPresenter.java | 2 +- .../chrome/browser/ntp/NewTabPage.java | 14 +- .../chrome/browser/ntp/NewTabPageLayout.java | 10 +- @@ -67,6 +68,9 @@ 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 ++ + .../EdgeToEdgeControllerFactory.java | 1 + + .../EdgeToEdgeControllerImpl.java | 1 + + .../ui/edge_to_edge/EdgeToEdgeUtils.java | 1 + ...rredIMEWindowInsetApplicationCallback.java | 7 + .../omnibox/LocationBarCoordinator.java | 1 + ...mniboxSuggestionsDropdownEmbedderImpl.java | 31 ++++ @@ -94,7 +98,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../AccessibilitySettingsDelegate.java | 9 + .../render_widget_host_view_android.cc | 3 + .../Move-navigation-bar-to-bottom.inc | 17 ++ - 81 files changed, 1039 insertions(+), 77 deletions(-) + 85 files changed, 1046 insertions(+), 77 deletions(-) create mode 100644 chrome/browser/hub/internal/android/java/src/org/chromium/chrome/browser/hub/ReversedLinearLayout.java create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Move-navigation-bar-to-bottom.inc @@ -822,6 +826,21 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/s @Override public BrowserContextHandle getBrowserContextHandle() { return mProfile; +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/tabmodel/HeadlessBrowserControlsStateProvider.java b/chrome/android/java/src/org/chromium/chrome/browser/app/tabmodel/HeadlessBrowserControlsStateProvider.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/app/tabmodel/HeadlessBrowserControlsStateProvider.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/app/tabmodel/HeadlessBrowserControlsStateProvider.java +@@ -18,6 +18,11 @@ public class HeadlessBrowserControlsStateProvider implements BrowserControlsStat + return 0; + } + ++ @Override ++ public int getTopControlsHeightRealOffset() { ++ return 0; ++ } ++ + @Override + public int getTopControlsMinHeight() { + return 0; 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 @@ -1274,14 +1293,13 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/messages/Messag mContainer.setLayoutParams(params); } -@@ -132,6 +140,12 @@ public class MessageContainerCoordinator implements BrowserControlsStateProvider +@@ -132,6 +140,11 @@ public class MessageContainerCoordinator implements BrowserControlsStateProvider /** @return Offset of the message container from the top of the screen. */ private int getContainerTopOffset() { + if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { + return mControlsManager.getContentOffset() -+ + (mControlsManager.getBottomControlsHeight() - mControlsManager.getBottomControlOffset()) -+ + mContainer.getMessageShadowTopMargin(); ++ + (mControlsManager.getBottomControlsHeight() - mControlsManager.getBottomControlOffset()); + } + if (mControlsManager.getContentOffset() == 0) return 0; @@ -2250,6 +2268,39 @@ 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/edge_to_edge/internal/java/src/org/chromium/chrome/browser/ui/edge_to_edge/EdgeToEdgeControllerFactory.java b/chrome/browser/ui/android/edge_to_edge/internal/java/src/org/chromium/chrome/browser/ui/edge_to_edge/EdgeToEdgeControllerFactory.java +--- a/chrome/browser/ui/android/edge_to_edge/internal/java/src/org/chromium/chrome/browser/ui/edge_to_edge/EdgeToEdgeControllerFactory.java ++++ b/chrome/browser/ui/android/edge_to_edge/internal/java/src/org/chromium/chrome/browser/ui/edge_to_edge/EdgeToEdgeControllerFactory.java +@@ -147,6 +147,7 @@ public class EdgeToEdgeControllerFactory { + * to the window. + */ + public static boolean isSupportedConfiguration(Activity activity) { ++ if ((true)) return false; + // Make sure we test SDK version before checking the Feature so Field Trials only collect + // from qualifying devices. + if (!EdgeToEdgeFieldTrial.getBottomChinOverrides().isEnabledForManufacturerVersion()) { +diff --git a/chrome/browser/ui/android/edge_to_edge/internal/java/src/org/chromium/chrome/browser/ui/edge_to_edge/EdgeToEdgeControllerImpl.java b/chrome/browser/ui/android/edge_to_edge/internal/java/src/org/chromium/chrome/browser/ui/edge_to_edge/EdgeToEdgeControllerImpl.java +--- a/chrome/browser/ui/android/edge_to_edge/internal/java/src/org/chromium/chrome/browser/ui/edge_to_edge/EdgeToEdgeControllerImpl.java ++++ b/chrome/browser/ui/android/edge_to_edge/internal/java/src/org/chromium/chrome/browser/ui/edge_to_edge/EdgeToEdgeControllerImpl.java +@@ -562,6 +562,7 @@ public class EdgeToEdgeControllerImpl + * the system insets due to the keyboard or the bottom controls being visible. + */ + private boolean shouldPadAdjusters() { ++ if ((true)) return false; + // Never pad the adjusters if the keyboard is visible. + if (mKeyboardInsets != null && mKeyboardInsets.bottom > 0) return false; + +diff --git a/chrome/browser/ui/android/edge_to_edge/java/src/org/chromium/chrome/browser/ui/edge_to_edge/EdgeToEdgeUtils.java b/chrome/browser/ui/android/edge_to_edge/java/src/org/chromium/chrome/browser/ui/edge_to_edge/EdgeToEdgeUtils.java +--- a/chrome/browser/ui/android/edge_to_edge/java/src/org/chromium/chrome/browser/ui/edge_to_edge/EdgeToEdgeUtils.java ++++ b/chrome/browser/ui/android/edge_to_edge/java/src/org/chromium/chrome/browser/ui/edge_to_edge/EdgeToEdgeUtils.java +@@ -327,6 +327,7 @@ public class EdgeToEdgeUtils { + * @return whether the given window's insets indicate a tappable navigation bar. + */ + static boolean hasTappableNavigationBar(Window window) { ++ if ((true)) return true; + var rootInsets = window.getDecorView().getRootWindowInsets(); + assert rootInsets != null; + Insets navigationBarInsets = diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/DeferredIMEWindowInsetApplicationCallback.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/DeferredIMEWindowInsetApplicationCallback.java --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/DeferredIMEWindowInsetApplicationCallback.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/DeferredIMEWindowInsetApplicationCallback.java diff --git a/build/patches/Move-some-account-settings-back-to-privacy-settings.patch b/build/patches/Move-some-account-settings-back-to-privacy-settings.patch index b952e561..600e2fc7 100644 --- a/build/patches/Move-some-account-settings-back-to-privacy-settings.patch +++ b/build/patches/Move-some-account-settings-back-to-privacy-settings.patch @@ -6,10 +6,10 @@ Search suggestions, autofill assistant and contextual search License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- - .../java/res/xml/privacy_preferences.xml | 13 +++++++ - .../privacy/settings/PrivacySettings.java | 34 +++++++++++++++++++ + .../java/res/xml/privacy_preferences.xml | 13 ++++++++ + .../privacy/settings/PrivacySettings.java | 33 +++++++++++++++++++ .../strings/android_chrome_strings.grd | 4 +++ - 3 files changed, 51 insertions(+) + 3 files changed, 50 insertions(+) diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml --- a/chrome/android/java/res/xml/privacy_preferences.xml @@ -37,11 +37,10 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java --- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java -@@ -76,6 +76,14 @@ import org.chromium.ui.text.SpanApplier; +@@ -76,6 +76,13 @@ import org.chromium.ui.text.SpanApplier; import java.util.concurrent.TimeUnit; import java.util.function.Consumer; -+import androidx.annotation.Nullable; +import androidx.preference.PreferenceCategory; +import org.chromium.chrome.browser.contextualsearch.ContextualSearchManager; +import org.chromium.base.shared_preferences.SharedPreferencesManager; @@ -52,7 +51,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 { -@@ -96,6 +104,16 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -96,6 +103,16 @@ public class PrivacySettings extends ChromeBaseSettingsFragment private static final String PREF_INCOGNITO_TRACKING_PROTECTIONS = "incognito_tracking_protections"; @VisibleForTesting static final String PREF_DO_NOT_TRACK = "do_not_track"; @@ -69,7 +68,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting @VisibleForTesting static final String PREF_THIRD_PARTY_COOKIES = "third_party_cookies"; @VisibleForTesting static final String PREF_TRACKING_PROTECTION = "tracking_protection"; private static final String PREF_ADVANCED_PROTECTION_INFO = "advanced_protection_info"; -@@ -211,6 +229,16 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -211,6 +228,16 @@ public class PrivacySettings extends ChromeBaseSettingsFragment passwordLeakTogglePref.setVisible(false); } @@ -86,7 +85,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting ChromeSwitchPreference canMakePaymentPref = (ChromeSwitchPreference) findPreference(PREF_CAN_MAKE_PAYMENT); canMakePaymentPref.setOnPreferenceChangeListener(this); -@@ -359,6 +387,9 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -359,6 +386,9 @@ public class PrivacySettings extends ChromeBaseSettingsFragment } else if (PREF_PASSWORD_LEAK_DETECTION.equals(key)) { UserPrefs.get(getProfile()) .setBoolean(Pref.PASSWORD_LEAK_DETECTION_ENABLED, (boolean) newValue); @@ -96,7 +95,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting } return true; } -@@ -371,6 +402,9 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -371,6 +401,9 @@ public class PrivacySettings extends ChromeBaseSettingsFragment /** Updates the preferences. */ public void updatePreferences() { diff --git a/build/patches/Partition-HSTS-cache-by-NAK.patch b/build/patches/Partition-HSTS-cache-by-NAK.patch index ae47b5c7..032508f7 100644 --- a/build/patches/Partition-HSTS-cache-by-NAK.patch +++ b/build/patches/Partition-HSTS-cache-by-NAK.patch @@ -24,9 +24,9 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../url_request_context_builder.cc | 14 --- net/url_request/url_request_http_job.cc | 5 +- services/network/network_context.cc | 37 ++++--- - services/network/network_context.h | 14 ++- + services/network/network_context.h | 15 ++- .../public/mojom/network_context.mojom | 10 +- - 22 files changed, 180 insertions(+), 104 deletions(-) + 22 files changed, 181 insertions(+), 104 deletions(-) create mode 100644 cromite_flags/net/base/features_cc/Partition-HSTS-cache-by-NAK.inc diff --git a/chrome/browser/ssl/https_upgrades_interceptor.cc b/chrome/browser/ssl/https_upgrades_interceptor.cc @@ -993,6 +993,14 @@ diff --git a/services/network/network_context.h b/services/network/network_conte const std::string& ocsp_result, const std::string& sct_list, CTVerificationMode ct_verification_mode, +@@ -975,6 +981,7 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext + VerifyCertCallback callback; + scoped_refptr certificate; + net::HostPortPair host_port; ++ net::NetworkAnonymizationKey network_anonymization_key; + }; + std::map> + cert_verifier_requests_; diff --git a/services/network/public/mojom/network_context.mojom b/services/network/public/mojom/network_context.mojom --- a/services/network/public/mojom/network_context.mojom +++ b/services/network/public/mojom/network_context.mojom diff --git a/build/patches/Partition-blobs-by-top-frame-URL.patch b/build/patches/Partition-blobs-by-top-frame-URL.patch index e4c7e70f..df9a0130 100644 --- a/build/patches/Partition-blobs-by-top-frame-URL.patch +++ b/build/patches/Partition-blobs-by-top-frame-URL.patch @@ -10,12 +10,12 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- .../renderer_host/render_frame_host_impl.cc | 2 + .../Partition-blobs-by-top-frame-URL.inc | 1 + - storage/browser/blob/blob_url_store_impl.cc | 73 ++++++++++++++++++- + storage/browser/blob/blob_url_store_impl.cc | 63 ++++++++++++++++++- storage/browser/blob/blob_url_store_impl.h | 13 ++++ storage/browser/blob/features.cc | 1 + - .../public/mojom/blob/blob_url_store.mojom | 8 +- + .../public/mojom/blob/blob_url_store.mojom | 8 ++- .../core/fileapi/public_url_manager.cc | 17 +++++ - 7 files changed, 112 insertions(+), 3 deletions(-) + 7 files changed, 101 insertions(+), 4 deletions(-) create mode 100644 cromite_flags/third_party/blink/common/features_cc/Partition-blobs-by-top-frame-URL.inc diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/browser/renderer_host/render_frame_host_impl.cc @@ -39,26 +39,7 @@ new file mode 100644 diff --git a/storage/browser/blob/blob_url_store_impl.cc b/storage/browser/blob/blob_url_store_impl.cc --- a/storage/browser/blob/blob_url_store_impl.cc +++ b/storage/browser/blob/blob_url_store_impl.cc -@@ -33,6 +33,18 @@ bool IsBlobUrlAccessCrossPartitionSameOrigin( - } - } // namespace - -+namespace { -+ -+// this code only serves to break the build in v137 -+// when https://chromium-review.googlesource.com/c/chromium/src/+/6430562 is inserted. -+// (UAZO) BlobURLStoreImpl::ShouldPartitionBlobUrlAccess => true -+[[maybe_unused]] bool IsBlobUrlAccessCrossPartitionSameOrigin( -+ BlobUrlRegistry::MappingStatus mapping_status) { -+ return false; -+} -+ -+} -+ - // Self deletes when the last binding to it is closed. - class BlobURLTokenImpl : public blink::mojom::BlobURLToken { - public: -@@ -105,6 +117,30 @@ BlobURLStoreImpl::~BlobURLStoreImpl() { +@@ -105,6 +105,30 @@ BlobURLStoreImpl::~BlobURLStoreImpl() { } } @@ -89,7 +70,7 @@ diff --git a/storage/browser/blob/blob_url_store_impl.cc b/storage/browser/blob/ void BlobURLStoreImpl::Register( mojo::PendingRemote blob, const GURL& url, -@@ -119,6 +155,14 @@ void BlobURLStoreImpl::Register( +@@ -119,6 +143,14 @@ void BlobURLStoreImpl::Register( return; } @@ -104,7 +85,16 @@ diff --git a/storage/browser/blob/blob_url_store_impl.cc b/storage/browser/blob/ if (registry_) registry_->AddUrlMapping(url, std::move(blob), storage_key_, renderer_origin_, render_process_host_id_, -@@ -155,26 +199,38 @@ bool BlobURLStoreImpl::ShouldPartitionBlobUrlAccess( +@@ -144,7 +176,7 @@ bool BlobURLStoreImpl::ShouldPartitionBlobUrlAccess( + features::kBlockCrossPartitionBlobUrlFetching) && + !partitioning_disabled_by_policy_; + +- const bool should_bypass_partitioning = ++ const bool should_bypass_partitioning = ((false)) && + has_storage_access_handle && + mapping_status == + BlobUrlRegistry::MappingStatus:: +@@ -155,26 +187,38 @@ bool BlobURLStoreImpl::ShouldPartitionBlobUrlAccess( void BlobURLStoreImpl::ResolveAsURLLoaderFactory( const GURL& url, mojo::PendingReceiver receiver, @@ -144,7 +134,7 @@ diff --git a/storage/browser/blob/blob_url_store_impl.cc b/storage/browser/blob/ partitioning_blob_url_closure_.Run(url, blink::mojom::PartitioningBlobURLInfo:: kBlockedCrossPartitionFetching); -@@ -186,6 +242,12 @@ void BlobURLStoreImpl::FinishResolveAsURLLoaderFactory( +@@ -186,6 +230,12 @@ void BlobURLStoreImpl::FinishResolveAsURLLoaderFactory( partitioning_blob_url_closure_.Run(url, std::nullopt); } @@ -157,7 +147,7 @@ diff --git a/storage/browser/blob/blob_url_store_impl.cc b/storage/browser/blob/ BlobURLLoaderFactory::Create(registry_->GetBlobFromUrl(url), url, std::move(receiver)); // When a fragment URL is present, registry_->GetUnsafeAgentClusterID(url) and -@@ -200,12 +262,15 @@ void BlobURLStoreImpl::ResolveAsBlobURLToken( +@@ -200,12 +250,15 @@ void BlobURLStoreImpl::ResolveAsBlobURLToken( const GURL& url, mojo::PendingReceiver token, bool is_top_level_navigation, @@ -173,7 +163,7 @@ diff --git a/storage/browser/blob/blob_url_store_impl.cc b/storage/browser/blob/ std::move(callback), storage_access_check_callback_.Run()); } -@@ -214,8 +279,14 @@ void BlobURLStoreImpl::FinishResolveAsBlobURLToken( +@@ -214,8 +267,14 @@ void BlobURLStoreImpl::FinishResolveAsBlobURLToken( const GURL& url, mojo::PendingReceiver token, bool is_top_level_navigation, diff --git a/build/patches/Partitioning-all-cookies-by-top-frame-domain.patch b/build/patches/Partitioning-all-cookies-by-top-frame-domain.patch index 46382e85..d52bd662 100644 --- a/build/patches/Partitioning-all-cookies-by-top-frame-domain.patch +++ b/build/patches/Partitioning-all-cookies-by-top-frame-domain.patch @@ -27,17 +27,21 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html net/cookies/cookie_deletion_info.cc | 3 +- net/cookies/cookie_monster.cc | 1 + net/cookies/cookie_util.cc | 1 + + net/cookies/cookie_util.h | 4 +- net/cookies/parsed_cookie.h | 6 +- .../sqlite/sqlite_persistent_cookie_store.cc | 8 +++ - net/url_request/url_request_http_job.cc | 10 +--- + net/url_request/url_request.cc | 3 +- + net/url_request/url_request_http_job.cc | 11 ++-- services/network/cookie_settings.cc | 6 +- + services/network/cors/cors_url_loader.cc | 1 + services/network/restricted_cookie_manager.cc | 6 ++ + services/network/url_loader.cc | 1 + .../modules/cookie_store/cookie_init.idl | 2 +- .../modules/cookie_store/cookie_store.cc | 3 + .../cookie_store_delete_options.idl | 2 +- ui/webui/webui_allowlist.cc | 1 + url/url_features.cc | 1 + - 28 files changed, 88 insertions(+), 85 deletions(-) + 32 files changed, 94 insertions(+), 89 deletions(-) create mode 100644 cromite_flags/components/content_settings/core/common/features_cc/Partitioning-all-cookies-by-top-frame-domain.inc create mode 100644 cromite_flags/components/permissions/features_cc/Partitioning-all-cookies-by-top-frame-domain.inc create mode 100644 cromite_flags/content/public/common/content_features_cc/Partitioning-all-cookies-by-top-frame-domain.inc @@ -315,7 +319,7 @@ new file mode 100644 --- /dev/null +++ b/cromite_flags/services/network/public/cpp/features_cc/Partitioning-all-cookies-by-top-frame-domain.inc @@ -0,0 +1 @@ -+SET_CROMITE_FEATURE_DISABLED(kStorageAccessHeaders); ++// intentionally empty diff --git a/net/cookies/canonical_cookie.cc b/net/cookies/canonical_cookie.cc --- a/net/cookies/canonical_cookie.cc +++ b/net/cookies/canonical_cookie.cc @@ -364,6 +368,27 @@ diff --git a/net/cookies/cookie_util.cc b/net/cookies/cookie_util.cc if (!is_partitioned) { return true; } +diff --git a/net/cookies/cookie_util.h b/net/cookies/cookie_util.h +--- a/net/cookies/cookie_util.h ++++ b/net/cookies/cookie_util.h +@@ -131,7 +131,7 @@ enum class SecFetchStorageAccessOutcome { + enum class ActivateStorageAccessLoadOutcome { + // Applies when the `Activate-Storage-Access` header behavior is not enabled + // under the existing feature flags or content settings. +- // kFailureHeaderDisabled = 0, // Deprecated (feature is always enabled). ++ kFailureHeaderDisabled = 0, // Deprecated (feature is always enabled). + // Applies when a response includes the `Activate-Storage-Access: load` + // header, but its corresponding request either has an omitted storage access + // status, or has a storage access status of `none`. +@@ -152,7 +152,7 @@ enum class ActivateStorageAccessLoadOutcome { + enum class ActivateStorageAccessRetryOutcome { + // Applies when the `Activate-Storage-Access` header behavior is not enabled + // under the existing feature flags or content settings. +- // kFailureHeaderDisabled = 0, // Deprecated (feature is always enabled). ++ kFailureHeaderDisabled = 0, // Deprecated (feature is always enabled). + // Applies when a response includes a well-formed + // `Activate-Storage-Access: retry; ..." header, but the corresponding + // request's `Sec-Fetch-Storage-Access` header is not `inactive`. diff --git a/net/cookies/parsed_cookie.h b/net/cookies/parsed_cookie.h --- a/net/cookies/parsed_cookie.h +++ b/net/cookies/parsed_cookie.h @@ -405,6 +430,19 @@ diff --git a/net/extras/sqlite/sqlite_persistent_cookie_store.cc b/net/extras/sq return true; } +diff --git a/net/url_request/url_request.cc b/net/url_request/url_request.cc +--- a/net/url_request/url_request.cc ++++ b/net/url_request/url_request.cc +@@ -1415,8 +1415,7 @@ StorageAccessStatusCache URLRequest::CalculateStorageAccessStatus() const { + // `deferred_redirect_info_` that has to be used when calculating new storage + // access status. + std::optional storage_access_status = +- network_delegate()->GetStorageAccessStatus(*this, +- deferred_redirect_info_); ++ std::nullopt; // disable storage access headers + base::UmaHistogramEnumeration( + "API.StorageAccessHeader.StorageAccessStatusOutcome", + storage_access_status diff --git a/net/url_request/url_request_http_job.cc b/net/url_request/url_request_http_job.cc --- a/net/url_request/url_request_http_job.cc +++ b/net/url_request/url_request_http_job.cc @@ -425,6 +463,14 @@ diff --git a/net/url_request/url_request_http_job.cc b/net/url_request/url_reque if (!maybe_included_cookies.empty()) { std::string cookie_line = +@@ -1614,6 +1610,7 @@ bool URLRequestHttpJob::NeedsRetryWithStorageAccess() { + auto determine_storage_access_retry_outcome = + [&]() -> cookie_util::ActivateStorageAccessRetryOutcome { + using enum cookie_util::ActivateStorageAccessRetryOutcome; ++ if ((true)) return kFailureHeaderDisabled; // disable storage access headers + if (!ShouldAddCookieHeader() || + request_->storage_access_status() != + cookie_util::StorageAccessStatus::kInactive || diff --git a/services/network/cookie_settings.cc b/services/network/cookie_settings.cc --- a/services/network/cookie_settings.cc +++ b/services/network/cookie_settings.cc @@ -448,6 +494,17 @@ diff --git a/services/network/cookie_settings.cc b/services/network/cookie_setti } // static +diff --git a/services/network/cors/cors_url_loader.cc b/services/network/cors/cors_url_loader.cc +--- a/services/network/cors/cors_url_loader.cc ++++ b/services/network/cors/cors_url_loader.cc +@@ -903,6 +903,7 @@ void CorsURLLoader::StartRequest() { + } + + if (request_.credentials_mode == mojom::CredentialsMode::kInclude && ++ ((false)) && // storage access headers disabled by default + GetStorageAccessStatus() == + net::cookie_util::StorageAccessStatus::kInactive) { + // Lower layers will add the Sec-Fetch-Storage-Access header, and the diff --git a/services/network/restricted_cookie_manager.cc b/services/network/restricted_cookie_manager.cc --- a/services/network/restricted_cookie_manager.cc +++ b/services/network/restricted_cookie_manager.cc @@ -464,6 +521,17 @@ diff --git a/services/network/restricted_cookie_manager.cc b/services/network/re net::CookieInclusionStatus status; std::unique_ptr parsed_cookie = net::CanonicalCookie::Create( +diff --git a/services/network/url_loader.cc b/services/network/url_loader.cc +--- a/services/network/url_loader.cc ++++ b/services/network/url_loader.cc +@@ -2629,6 +2629,7 @@ bool URLLoader::ShouldSetLoadWithStorageAccess() const { + + auto determine_storage_access_load_outcome = + [&]() -> net::cookie_util::ActivateStorageAccessLoadOutcome { ++ if ((true)) return net::cookie_util::ActivateStorageAccessLoadOutcome::kFailureHeaderDisabled; + if (!url_request_->storage_access_status().IsSet()) { + url_request_->set_storage_access_status( + url_request_->CalculateStorageAccessStatus()); diff --git a/third_party/blink/renderer/modules/cookie_store/cookie_init.idl b/third_party/blink/renderer/modules/cookie_store/cookie_init.idl --- a/third_party/blink/renderer/modules/cookie_store/cookie_init.idl +++ b/third_party/blink/renderer/modules/cookie_store/cookie_init.idl diff --git a/build/patches/Remove-HTTP-referrals-in-cross-origin-navigation.patch b/build/patches/Remove-HTTP-referrals-in-cross-origin-navigation.patch index e813e574..59da8633 100644 --- a/build/patches/Remove-HTTP-referrals-in-cross-origin-navigation.patch +++ b/build/patches/Remove-HTTP-referrals-in-cross-origin-navigation.patch @@ -178,7 +178,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting import org.chromium.chrome.browser.privacy.secure_dns.SecureDnsSettings; import org.chromium.chrome.browser.privacy_guide.PrivacyGuideInteractions; import org.chromium.chrome.browser.privacy_sandbox.PrivacySandboxBridge; -@@ -113,6 +114,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -112,6 +113,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment private static final String PREF_SAFE_BROWSING = "safe_browsing"; private static final String PREF_PASSWORD_LEAK_DETECTION = "password_leak_detection"; private static final String PREF_SYNC_AND_SERVICES_LINK = "sync_and_services_link"; @@ -186,7 +186,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting private static final String PREF_PRIVACY_SANDBOX = "privacy_sandbox"; private static final String PREF_PROXY_OPTIONS = "proxy"; private static final String PREF_PRIVACY_GUIDE = "privacy_guide"; -@@ -530,6 +532,10 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -529,6 +531,10 @@ public class PrivacySettings extends ChromeBaseSettingsFragment : R.string.text_off); } @@ -468,7 +468,7 @@ diff --git a/chrome/browser/resources/settings/privacy_page/privacy_page.ts b/ch declare private isPrivacySandboxRestrictedNoticeEnabled_: boolean; declare private enableAutomaticFullscreenContentSetting_: boolean; declare private enablePermissionSiteSettingsRadioButton_: boolean; -+ private referersPolicyOptions_: object[]; ++ declare private referersPolicyOptions_: object[]; private privateStateTokensEnabled_: boolean; declare private autoPictureInPictureEnabled_: boolean; declare private capturedSurfaceControlEnabled_: boolean; diff --git a/build/patches/Remove-binary-blob-integrations.patch b/build/patches/Remove-binary-blob-integrations.patch index da3f4b51..372a3e7d 100644 --- a/build/patches/Remove-binary-blob-integrations.patch +++ b/build/patches/Remove-binary-blob-integrations.patch @@ -46,6 +46,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../PasswordManagerHelper.java | 9 - ...swordSyncControllerDelegateBridgeImpl.java | 7 - .../push_messaging_service_factory.cc | 8 +- + .../notification_telemetry_service.cc | 1 + chrome/browser/ui/BUILD.gn | 3 - chrome/browser/ui/android/omnibox/BUILD.gn | 4 - .../FullscreenSigninMediator.java | 4 +- @@ -108,7 +109,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../gms/ChromiumPlayServicesAvailability.java | 10 +- third_party/androidx/customizations.gni | 14 +- third_party/cardboard/BUILD.gn | 4 - - 84 files changed, 120 insertions(+), 2179 deletions(-) + 85 files changed, 121 insertions(+), 2179 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 @@ -833,6 +834,17 @@ diff --git a/chrome/browser/push_messaging/push_messaging_service_factory.cc b/c } // static +diff --git a/chrome/browser/safe_browsing/notification_telemetry/notification_telemetry_service.cc b/chrome/browser/safe_browsing/notification_telemetry/notification_telemetry_service.cc +--- a/chrome/browser/safe_browsing/notification_telemetry/notification_telemetry_service.cc ++++ b/chrome/browser/safe_browsing/notification_telemetry/notification_telemetry_service.cc +@@ -116,6 +116,7 @@ NotificationTelemetryService::NotificationTelemetryService( + // Notification Telemetry Service is a keyed service and will outlive + // any invocations of the callback being registered with the push messaging + // service (also a keyed service). ++ if (push_messaging_service) + push_messaging_service->SetSubscribeFromWorkerCallback(base::BindRepeating( + &NotificationTelemetryService::OnNewNotificationServiceWorkerSubscription, + base::Unretained(this))); diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn --- a/chrome/browser/ui/BUILD.gn +++ b/chrome/browser/ui/BUILD.gn diff --git a/build/patches/Restore-Simplified-NTP-launch.patch b/build/patches/Restore-Simplified-NTP-launch.patch index b42112d4..a1a60dab 100644 --- a/build/patches/Restore-Simplified-NTP-launch.patch +++ b/build/patches/Restore-Simplified-NTP-launch.patch @@ -27,9 +27,9 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../suggestions/SuggestionsConfig.java | 2 +- .../SuggestionsNavigationDelegate.java | 27 +- .../tile/MostVisitedTilesCoordinator.java | 6 +- - .../tile/MostVisitedTilesGridLayout.java | 283 ++++++++++++++++++ + .../tile/MostVisitedTilesGridLayout.java | 287 ++++++++++++++++++ .../tile/MostVisitedTilesMediator.java | 4 +- - .../suggestions/tile/TileRenderer.java | 4 +- + .../suggestions/tile/TileRenderer.java | 8 +- .../suggestions/tile/TilesLinearLayout.java | 2 +- .../engagement/important_sites_util.cc | 2 +- .../flags/android/chrome_feature_list.cc | 1 + @@ -39,7 +39,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../Restore-Simplified-NTP-launch.inc | 12 + .../Restore-Simplified-NTP-launch.inc | 5 + .../Restore-Simplified-NTP-launch.inc | 1 + - 33 files changed, 528 insertions(+), 45 deletions(-) + 33 files changed, 534 insertions(+), 47 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 @@ -696,7 +696,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/til new file mode 100644 --- /dev/null +++ b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/MostVisitedTilesGridLayout.java -@@ -0,0 +1,283 @@ +@@ -0,0 +1,287 @@ +// 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. @@ -937,6 +937,10 @@ new file mode 100644 + mTileList.add(tileView); + } + ++ public void addNonTileViewWithWidth(View view, float widthDp) { ++ super.addView(view); ++ } ++ + /** + * Specialized getChildCount() for tiles. + * @@ -1022,6 +1026,24 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/til SuggestionsTileView tileView = (SuggestionsTileView) LayoutInflater.from(parent.getContext()) +@@ -316,7 +316,7 @@ public class TileRenderer { + return tileView; + } + +- View buildDivider(TilesLinearLayout parent) { ++ View buildDivider(MostVisitedTilesGridLayout parent) { + return (View) + LayoutInflater.from(parent.getContext()) + .inflate(R.layout.suggestions_tile_vertical_divider, parent, false); +@@ -343,7 +343,7 @@ public class TileRenderer { + } + + TileView buildAddCustomLinksButton( +- TilesLinearLayout parent, TileGroup.TileSetupDelegate setupDelegate) { ++ MostVisitedTilesGridLayout parent, TileGroup.TileSetupDelegate setupDelegate) { + Resources res = mContext.getResources(); + String title = res.getString(R.string.most_visited_add_new); + Drawable plusIcon = diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/TilesLinearLayout.java b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/TilesLinearLayout.java --- a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/TilesLinearLayout.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/TilesLinearLayout.java diff --git a/build/patches/Restore-adaptive-button-in-top-toolbar-customization.patch b/build/patches/Restore-adaptive-button-in-top-toolbar-customization.patch index 09bf1678..66aa3b72 100644 --- a/build/patches/Restore-adaptive-button-in-top-toolbar-customization.patch +++ b/build/patches/Restore-adaptive-button-in-top-toolbar-customization.patch @@ -189,7 +189,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow private @Nullable RadioButtonWithDescription mAddToBookmarksButton; private @Nullable RadioButtonWithDescription mReadAloudButton; private @Nullable RadioButtonWithDescription mPageSummaryButton; -+ private @NonNull RadioButtonWithDescription mReaderMode; ++ private @Nullable RadioButtonWithDescription mReaderMode; private @AdaptiveToolbarButtonVariant int mSelected; private @AdaptiveToolbarButtonVariant int mAutoButtonCaption; private @Nullable AdaptiveToolbarStatePredictor mStatePredictor; diff --git a/build/patches/Temporarily-disable-Tab-Group-Sync-Android.patch b/build/patches/Temporarily-disable-Tab-Group-Sync-Android.patch index 499276ba..787a6341 100644 --- a/build/patches/Temporarily-disable-Tab-Group-Sync-Android.patch +++ b/build/patches/Temporarily-disable-Tab-Group-Sync-Android.patch @@ -3,9 +3,9 @@ Date: Mon, 3 Mar 2025 14:33:03 +0000 Subject: Temporarily disable Tab Group Sync Android --- - .../src/org/chromium/chrome/browser/ChromeTabbedActivity.java | 2 -- - components/saved_tab_groups/public/features.cc | 3 +++ - 2 files changed, 3 insertions(+), 2 deletions(-) + .../src/org/chromium/chrome/browser/ChromeTabbedActivity.java | 2 -- + components/saved_tab_groups/public/features.cc | 2 ++ + 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java @@ -22,12 +22,11 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct diff --git a/components/saved_tab_groups/public/features.cc b/components/saved_tab_groups/public/features.cc --- a/components/saved_tab_groups/public/features.cc +++ b/components/saved_tab_groups/public/features.cc -@@ -136,4 +136,7 @@ base::TimeDelta GetOriginatingSavedGroupCleanUpTimeInterval() { +@@ -136,4 +136,6 @@ base::TimeDelta GetOriginatingSavedGroupCleanUpTimeInterval() { return base::Seconds(time_in_seconds); } +SET_CROMITE_FEATURE_DISABLED(kTabGroupSyncAndroid); -+SET_CROMITE_FEATURE_DISABLED(kTabGroupPaneAndroid); +SET_CROMITE_FEATURE_ENABLED(kTabGroupSyncDisableNetworkLayer); } // namespace tab_groups -- diff --git a/build/patches/User-agent-customization.patch b/build/patches/User-agent-customization.patch index cdccf748..071b66b0 100644 --- a/build/patches/User-agent-customization.patch +++ b/build/patches/User-agent-customization.patch @@ -24,7 +24,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../settings/UserAgentPreferences.java | 183 ++++++++++++++++++ .../browser/tab/RequestDesktopUtils.java | 1 + .../chromium/chrome/browser/tab/TabImpl.java | 64 +++++- - .../chromium/chrome/browser/tab/TabUtils.java | 11 +- + .../chromium/chrome/browser/tab/TabUtils.java | 7 +- .../browser/android/content/content_utils.cc | 32 ++- .../preferences/browser_prefs_android.cc | 7 + .../privacy_preferences_manager_impl.cc | 126 ++++++++++++ @@ -46,7 +46,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../browser/web_contents/web_contents_impl.cc | 6 +- .../framehost/NavigationControllerImpl.java | 3 +- content/renderer/render_thread_impl.cc | 1 - - 36 files changed, 798 insertions(+), 17 deletions(-) + 36 files changed, 794 insertions(+), 17 deletions(-) create mode 100644 chrome/android/java/res/layout/custom_useragent_preferences.xml create mode 100644 chrome/android/java/res/xml/useragent_preferences.xml create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/settings/UserAgentPreferences.java @@ -408,8 +408,8 @@ new file mode 100644 +import org.chromium.components.browser_ui.settings.SettingsUtils; +import org.chromium.components.content_settings.ContentSettingsType; +import org.chromium.components.browser_ui.site_settings.WebsitePreferenceBridge; -+import org.chromium.chrome.browser.app.tabmodel.TabWindowManagerSingleton; -+import org.chromium.chrome.browser.tabmodel.TabWindowManager; ++import org.chromium.chrome.browser.app.tabwindow.TabWindowManagerSingleton; ++import org.chromium.chrome.browser.tabwindow.TabWindowManager; +import org.chromium.chrome.browser.privacy.settings.PrivacyPreferencesManagerImpl; +import org.chromium.chrome.browser.profiles.Profile; +import org.chromium.chrome.browser.settings.ProfileDependentSetting; @@ -671,18 +671,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabUtils.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabUtils.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabUtils.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabUtils.java -@@ -41,6 +41,10 @@ import org.chromium.ui.display.DisplayAndroidManager; - import org.chromium.ui.display.DisplayUtil; - import org.chromium.url.GURL; - -+import org.chromium.chrome.browser.app.tabmodel.TabWindowManagerSingleton; -+import org.chromium.chrome.browser.preferences.ChromePreferenceKeys; -+import org.chromium.chrome.browser.preferences.ChromeSharedPreferences; -+ - import java.lang.annotation.Retention; - import java.lang.annotation.RetentionPolicy; - -@@ -125,11 +129,8 @@ public class TabUtils { +@@ -125,11 +125,8 @@ public class TabUtils { * @param switchToDesktop Whether switching the user agent to desktop. * @param caller The caller of this method. */ diff --git a/build/patches/add-browser-policy.patch b/build/patches/add-browser-policy.patch index d4abc25f..87f36f83 100644 --- a/build/patches/add-browser-policy.patch +++ b/build/patches/add-browser-policy.patch @@ -8,7 +8,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html chrome/android/java/AndroidManifest.xml | 4 - .../privacy_preferences_manager_impl.cc | 5 + .../metrics/chrome_feature_list_creator.cc | 12 ++ - .../search_engine_preconnector.cc | 2 + + .../search_engine_preconnector.cc | 1 + .../policy/chrome_browser_policy_connector.cc | 3 - ...nfiguration_policy_handler_list_factory.cc | 6 +- .../account_consistency_mode_manager.cc | 7 +- @@ -37,7 +37,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 + - 33 files changed, 322 insertions(+), 158 deletions(-) + 33 files changed, 321 insertions(+), 158 deletions(-) diff --git a/base/win/win_util.cc b/base/win/win_util.cc --- a/base/win/win_util.cc @@ -202,12 +202,11 @@ diff --git a/chrome/browser/metrics/chrome_feature_list_creator.cc b/chrome/brow diff --git a/chrome/browser/navigation_predictor/search_engine_preconnector.cc b/chrome/browser/navigation_predictor/search_engine_preconnector.cc --- a/chrome/browser/navigation_predictor/search_engine_preconnector.cc +++ b/chrome/browser/navigation_predictor/search_engine_preconnector.cc -@@ -55,6 +55,8 @@ BASE_FEATURE(kPreconnectFromKeyedService, +@@ -55,6 +55,7 @@ BASE_FEATURE(kPreconnectFromKeyedService, BASE_FEATURE(kPreconnectToSearch, "PreconnectToSearch", base::FEATURE_ENABLED_BY_DEFAULT); +SET_CROMITE_FEATURE_DISABLED(kPreconnectToSearch); -+SET_CROMITE_FEATURE_DISABLED(kPreconnectToSearchWithPrivacyModeEnabled); } // namespace features WebContentVisibilityManager::WebContentVisibilityManager() diff --git a/build/patches/eyeo-133.0.6943.49-base.patch b/build/patches/eyeo-133.0.6943.49-base.patch index 00888673..846d28ff 100644 --- a/build/patches/eyeo-133.0.6943.49-base.patch +++ b/build/patches/eyeo-133.0.6943.49-base.patch @@ -18691,7 +18691,7 @@ new file mode 100644 +build_webui("build") { + grd_prefix = "adblock_internals" + static_files = [ "adblock_internals.html" ] -+ non_web_component_files = [ "adblock_internals.ts" ] ++ ts_files = [ "adblock_internals.ts" ] + mojo_files_deps = [ "//components/adblock/content/browser/mojom:adblock_internals_ts__generator" ] + mojo_files = [ "$root_gen_dir/components/adblock/content/browser/mojom/adblock_internals.mojom-webui.ts" ] + ts_definitions = [ "//tools/typescript/definitions/chrome_send.d.ts" ] diff --git a/build/patches/kill-Auth.patch b/build/patches/kill-Auth.patch index 4ecbf6a9..62f18a0a 100644 --- a/build/patches/kill-Auth.patch +++ b/build/patches/kill-Auth.patch @@ -4,8 +4,8 @@ Subject: kill Auth License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- - .../signin/SystemAccountManagerDelegate.java | 77 +------------------ - 1 file changed, 3 insertions(+), 74 deletions(-) + .../signin/SystemAccountManagerDelegate.java | 78 +------------------ + 1 file changed, 4 insertions(+), 74 deletions(-) diff --git a/components/signin/public/android/java/src/org/chromium/components/signin/SystemAccountManagerDelegate.java b/components/signin/public/android/java/src/org/chromium/components/signin/SystemAccountManagerDelegate.java --- a/components/signin/public/android/java/src/org/chromium/components/signin/SystemAccountManagerDelegate.java @@ -39,7 +39,7 @@ diff --git a/components/signin/public/android/java/src/org/chromium/components/s // Don't report any accounts if we don't have permission. // TODO(crbug.com/40942462): Throw an exception if permission was denied. return new Account[] {}; -@@ -116,43 +101,12 @@ public class SystemAccountManagerDelegate implements AccountManagerDelegate { +@@ -116,43 +101,13 @@ public class SystemAccountManagerDelegate implements AccountManagerDelegate { public AccessTokenData getAccessToken(Account account, String authTokenScope) throws AuthException { ThreadUtils.assertOnBackgroundThread(); @@ -63,7 +63,8 @@ diff --git a/components/signin/public/android/java/src/org/chromium/components/s - new GoogleServiceAuthError(GoogleServiceAuthErrorState.CONNECTION_FAILED)); - } + throw new AuthException(AuthException.NONTRANSIENT, -+ "Error while getting token for scope '" + authTokenScope + "'"); ++ "Error while getting token for scope '" + authTokenScope + "'", ++ new IOException()); } @Override @@ -85,7 +86,7 @@ diff --git a/components/signin/public/android/java/src/org/chromium/components/s } protected boolean hasFeatures(Account account, String[] features) { -@@ -184,24 +138,6 @@ public class SystemAccountManagerDelegate implements AccountManagerDelegate { +@@ -184,24 +139,6 @@ public class SystemAccountManagerDelegate implements AccountManagerDelegate { @SuppressLint("MissingPermission") @Override public void createAddAccountIntent(Callback<@Nullable Intent> callback) { @@ -110,7 +111,7 @@ diff --git a/components/signin/public/android/java/src/org/chromium/components/s } // No permission is needed on 23+ and Chrome always has MANAGE_ACCOUNTS permission on lower APIs -@@ -235,14 +171,7 @@ public class SystemAccountManagerDelegate implements AccountManagerDelegate { +@@ -235,14 +172,7 @@ public class SystemAccountManagerDelegate implements AccountManagerDelegate { @Override public @Nullable GaiaId getAccountGaiaId(String accountEmail) {