From f7ea98e526591a6bfd446d6648651204eb9a7be0 Mon Sep 17 00:00:00 2001 From: quh4gko8 <88831734+quh4gko8@users.noreply.github.com> Date: Wed, 13 May 2026 16:26:03 +0000 Subject: [PATCH 1/8] Rearrange patchset and refactor site settings UI hooks --- ...for-hooking-site-settings-UI-changes.patch | 148 ++++++++---------- ...0023-disable-first-run-welcome-page.patch} | 0 ...024-disable-seed-based-field-trials.patch} | 0 ...=> 0025-disable-fetching-variations.patch} | 0 ...-disable-WebView-variations-support.patch} | 0 ...egrity-blink-extension-API-on-webvi.patch} | 0 ...igation-error-correction-by-default.patch} | 0 ...isable-contextual-search-by-default.patch} | 0 ...sable-network-prediction-by-default.patch} | 0 ... => 0031-disable-metrics-by-default.patch} | 0 ...sable-hyperlink-auditing-by-default.patch} | 0 ...le-showing-popular-sites-by-default.patch} | 0 ...icle-suggestions-feature-by-default.patch} | 0 ...content-feed-suggestions-by-default.patch} | 0 ...6-disable-sensors-access-by-default.patch} | 2 +- ...-playing-protected-media-by-default.patch} | 2 +- ...able-third-party-cookies-by-default.patch} | 0 ...-disable-background-sync-by-default.patch} | 2 +- ...-disable-payment-support-by-default.patch} | 0 ...ia-router-media-remoting-by-default.patch} | 0 ...042-disable-media-router-by-default.patch} | 0 ...le-offering-translations-by-default.patch} | 0 ...-browser-sign-in-feature-by-default.patch} | 0 ...rowsing-reporting-opt-in-by-default.patch} | 0 ...sed-safe-browsing-option-by-default.patch} | 0 ...edia-DRM-preprovisioning-by-default.patch} | 0 ...ill-server-communication-by-default.patch} | 0 ...-component-updater-pings-by-default.patch} | 0 ...> 0050-disable-search-provider-logo.patch} | 0 ...51-disable-trivial-subdomain-hiding.patch} | 0 ...earn-more-link-in-incognito-new-tab.patch} | 0 ...-disable-Omaha-update-check-support.patch} | 0 ...uthFetcher-code-due-to-upstream-bug.patch} | 0 ...signed-out-avatar-on-new-tab-pages-.patch} | 0 ...privacy-sandbox-features-by-default.patch} | 0 ...isable-WebGPU-in-Android-by-default.patch} | 0 ...ar-button-Translate-option-by-defau.patch} | 0 ... 0059-always-use-local-new-tab-page.patch} | 0 ...ark-non-secure-origins-as-dangerous.patch} | 0 ...ebRTC-IP-handling-policy-by-default.patch} | 0 ...062-stub-out-the-battery-status-API.patch} | 0 ...ng-download-location-prompt-setting.patch} | 0 ...ow-download-prompt-again-by-default.patch} | 0 ...-privacy-aware-analytics-advertisin.patch} | 0 ...6-disable-using-Play-services-fonts.patch} | 0 ...disable-appending-variations-header.patch} | 0 ...tailed-language-settings-by-default.patch} | 0 ...hing-optimization-guides-by-default.patch} | 0 ...b-group-sync-settings-UI-by-default.patch} | 0 ...ching-optimization-hints-by-default.patch} | 0 ...mization-guides-features-by-default.patch} | 0 ...ble-network-time-tracker-by-default.patch} | 0 ...e-opening-PDF-in-the-app-by-default.patch} | 0 ...default-search-engine-to-DuckDuckGo.patch} | 0 ...inal-package-to-org.chromium.chrome.patch} | 0 ...77-Make-HTTPS-only-mode-the-default.patch} | 0 ...require-HTTPS-for-component-updates.patch} | 0 ...-vanadium.app-for-component-updates.patch} | 0 ...ble-memory-tagging-in-all-processes.patch} | 0 ... 0081-enable-split-cache-by-default.patch} | 0 ...partitioning-connections-by-default.patch} | 0 ...ous-Do-Not-Track-feature-by-default.patch} | 0 ...ite-isolation-by-default-on-Android.patch} | 0 ...-strict-origin-isolation-by-default.patch} | 0 ...e-accept-language-header-by-default.patch} | 0 ...le-Chrome-branding-for-client-hints.patch} | 0 ...8-add-trichrome-browser-apk-targets.patch} | 0 ...089-Remove-logo-from-chrome-version.patch} | 0 ...=> 0090-redirect-settings-help-icon.patch} | 0 ...-prefix-from-storage-settings-label.patch} | 0 ...092-remove-Help-feedback-menu-entry.patch} | 0 ...chrome_library_apk-expectation-file.patch} | 0 ...g-null-check-for-updating-preferenc.patch} | 0 ...d-system-for-java-files-in-base-lay.patch} | 0 ...s-for-adding-shared-preference-keys.patch} | 0 ...per-class-for-modifying-preferences.patch} | 0 ...tream-changes-in-dependencies-sourc.patch} | 0 ...tream-strings-in-a-separate-file-fo.patch} | 0 ...-modifying-preferences-at-Privacy-s.patch} | 0 ...icable-additional-terms-of-services.patch} | 0 ...gle-terms-of-use-and-privacy-policy.patch} | 0 ...ngs-preference-keys-declaration-pac.patch} | 0 ...ove-unwanted-sync-and-services-link.patch} | 0 ...ch => 0105-remove-safety-check-menu.patch} | 0 ...wanted-account-and-services-section.patch} | 0 ...7-remove-translate-offer-preference.patch} | 0 ...-Sign-In-preference-when-disallowed.patch} | 0 ...de-currently-no-op-preload-settings.patch} | 0 ...Remove-privacy-trials-preference-UI.patch} | 0 ...Remove-privacy-guides-preference-UI.patch} | 0 ...suggestions-back-to-privacy-section.patch} | 0 ...113-Toggle-for-closing-tabs-on-exit.patch} | 0 ...ng-external-links-in-incognito-tabs.patch} | 0 ...-more-web-search-intents-in-browser.patch} | 0 ...ng-external-web-search-in-incognito.patch} | 0 ...opening-links-in-incognito-for-cust.patch} | 0 ...opening-links-in-incognito-for-sear.patch} | 0 ...opening-links-in-incognito-for-shar.patch} | 0 ...0120-Implement-UI-for-WebRTC-toggle.patch} | 0 ...igin-referrer-behavior-configurable.patch} | 0 ...py-client-hints-with-reduced-user-a.patch} | 0 ...check-for-password-manager-autofill.patch} | 0 ...ith-android-autofill-in-compatibili.patch} | 0 ...sage-of-Android-Autofill-by-default.patch} | 0 ...ices-dependent-password-manager-pre.patch} | 0 ...-supported-languages-for-Language-s.patch} | 0 ...ensible-way-to-reference-targets-ea.patch} | 0 ...rt-of-atomic-file-and-scoped-file-d.patch} | 0 ...config-like-apk-target-for-building.patch} | 0 ...y-reference-config-apk-build-target.patch} | 0 ...Generate-ConfigInfo-from-config-apk.patch} | 0 ...rgets-for-linking-and-inclusion-of-.patch} | 0 ...e-ConfigInfo-class-for-Monochrome-a.patch} | 0 ...e-ConfigInfo-class-for-WebView-targ.patch} | 0 ...onfigInfo-on-necessary-test-targets.patch} | 0 ...definitions-for-feature-flags-and-o.patch} | 0 ...uf-generator-parser-for-config-apk-.patch} | 0 ...Initial-configuration-for-config-ap.patch} | 0 ...-config-parser-for-browser-and-webv.patch} | 9 +- ...er-script-for-fetching-content-filt.patch} | 0 ...w-needed-deps-to-fetch-filter-lists.patch} | 0 ...et-for-android-assets-including-the.patch} | 0 ...et-for-android-assets-for-config-fi.patch} | 0 ...eded-component-and-protobuf-file-fo.patch} | 0 ...pstream-file-based-parsing-of-unind.patch} | 2 +- ...-applying-flags-features-at-runtime.patch} | 0 ...raryLoader-on-early-initialization-.patch} | 0 ...tializing-contents-of-VanadiumConfi.patch} | 20 ++- ...d-system-at-android-specific-subres.patch} | 0 ...onfig-state-for-content-filtering-t.patch} | 0 ...om-config-apk-whenever-it-s-present.patch} | 0 ...-Add-update-handling-of-subresource.patch} | 0 ...r-calling-added-APIs-from-custom-OS.patch} | 0 ...evert-clearing-javascript-JIT-site-.patch} | 0 ...d-processes-in-jitless-mode-when-ex.patch} | 0 ...terprter-mode-when-per-site-JIT-is-.patch} | 0 ...terprter-mode-when-OS-JIT-is-restri.patch} | 0 ...-Implement-UI-for-JIT-site-settings.patch} | 78 +++------ ...d-system-for-static-library-deps-at.patch} | 0 ...-subresource-filter-from-config-apk.patch} | 0 ...iltering-from-config-app-when-avail.patch} | 0 ...g-version-on-about-Vanadium-setting.patch} | 0 ...show-subresource-filter-UI-for-site.patch} | 0 ...ble-subresource-filter-on-all-sites.patch} | 0 ...g-convention-of-Ads-in-ads-site-set.patch} | 4 +- ...Manager-APIs-for-all-apps-supportin.patch} | 0 ...te-script-to-also-include-saving-sh.patch} | 0 ...te-Password-Manager-to-Google-Passw.patch} | 0 ...mpatibility-check-default-value-che.patch} | 0 ...cut-default-to-new-tab-instead-of-a.patch} | 0 ...ook-at-Application.attachBaseContex.patch} | 0 ...omeApplicationImpl-to-initialize-co.patch} | 0 ...-Add-support-for-updating-content-f.patch} | 0 ...onditional-content-filtering-compon.patch} | 0 ...ther-language-content-filtering-dep.patch} | 0 ...and-Configuration-generated-protobu.patch} | 0 ...t-more-needed-removals-for-protobuf.patch} | 0 ...ndboxed-iframes-per-site-by-default.patch} | 0 ...-generation-when-skip_secondary_abi.patch} | 0 ...redictive-back-gesture-for-Vanadium.patch} | 0 ...Support-restriction-of-dynamic-code.patch} | 0 ...namic-code-execution-via-seccomp-bp.patch} | 0 ...-declare-queries-to-config-package-.patch} | 0 ...e-config-holder-app-with-forceQuery.patch} | 0 ...able-Safety-Hub-features-by-default.patch} | 0 ...des-for-top-level-navigation-only-b.patch} | 0 ...-agent-and-client-hints-for-webview.patch} | 0 ...upstream-code-disabling-WebView-MTE.patch} | 0 ...ng-category-visibility-check-on-sin.patch} | 4 +- ...ove-debug-dump-when-MTE-is-disabled.patch} | 0 ...-optimizer-settings-UI-link-on-Priv.patch} | 0 ...ve-javascript-optimizer-settings-UI.patch} | 0 ...d-javascript-optimizer-site-setting.patch} | 0 ...-arguments-declared-for-chrome-laye.patch} | 0 ...ding-crashpad-in-compiling-chrome-t.patch} | 0 ...form-CredentialManager-calls-for-An.patch} | 0 ...-versionCode-for-64-bit-only-builds.patch} | 0 ...k-to-33-trichrome-apk-build-targets.patch} | 0 ...-disable-domain-reliability-feature.patch} | 0 ...-password-leak-detection-by-default.patch} | 0 ...able-password-leak-detection-checks.patch} | 0 ...no-op-password-leak-detection-toggl.patch} | 0 ...e-transparency-feature-by-default-f.patch} | 0 ...-Network-Access-coverage-checks-by-.patch} | 0 ...tch-icons-for-search-engine-setting.patch} | 0 ...-database-for-local-password-manage.patch} | 0 ...s-of-using-login-database-as-backen.patch} | 0 ...-for-using-login-database-as-backen.patch} | 0 ...-refs-for-password-manager-local-da.patch} | 0 ...-prefs-for-local-backend-password-m.patch} | 0 ...f-login-database-backend-for-Androi.patch} | 0 ...android-Move-reduce-visibility-of-s.patch} | 0 ...owser-password_entry_edit-for-local.patch} | 0 ...5-Restore-local-password-manager-UI.patch} | 0 ...kend-based-password-manager-setting.patch} | 0 ...ling-motion-sensors-site-settings-pe.patch | 128 +++++++++++++++ ...tically-apply-patches-to-some-subpr.patch} | 0 ...t-applying-patches-to-v8-subproject.patch} | 0 ...et-for-wasm-in-interpreter-mode-sup.patch} | 0 ...patches-to-search-engine-data-resou.patch} | 0 ...a-patches-to-always-include-DuckDuc.patch} | 0 ...nt-top-search-engine-threshold-to-7.patch} | 0 ...ndroidManifest-expected-libs-and-as.patch} | 0 ...oidManifest-expected-libs-and-asset.patch} | 0 ...-keyed-process-isolation-by-default.patch} | 0 ...n-of-passkeys-regardless-of-residen.patch} | 0 ...misleading-new-tab-cards-by-default.patch} | 0 ...l-buttons-below-search-bar-in-new-t.patch} | 0 ...opening-links-in-incognito-for-expl.patch} | 0 ...ove-unused-separate-autofill-status.patch} | 0 ...ofill-screens-regardless-of-autofil.patch} | 0 ...for-toggling-Sensors-site-settings-p.patch | 77 --------- ...d-by-removing-Google-services-setti.patch} | 0 213 files changed, 243 insertions(+), 233 deletions(-) rename patches/{0024-disable-first-run-welcome-page.patch => 0023-disable-first-run-welcome-page.patch} (100%) rename patches/{0025-disable-seed-based-field-trials.patch => 0024-disable-seed-based-field-trials.patch} (100%) rename patches/{0026-disable-fetching-variations.patch => 0025-disable-fetching-variations.patch} (100%) rename patches/{0027-disable-WebView-variations-support.patch => 0026-disable-WebView-variations-support.patch} (100%) rename patches/{0028-disable-Media-Integrity-blink-extension-API-on-webvi.patch => 0027-disable-Media-Integrity-blink-extension-API-on-webvi.patch} (100%) rename patches/{0029-disable-navigation-error-correction-by-default.patch => 0028-disable-navigation-error-correction-by-default.patch} (100%) rename patches/{0030-disable-contextual-search-by-default.patch => 0029-disable-contextual-search-by-default.patch} (100%) rename patches/{0031-disable-network-prediction-by-default.patch => 0030-disable-network-prediction-by-default.patch} (100%) rename patches/{0032-disable-metrics-by-default.patch => 0031-disable-metrics-by-default.patch} (100%) rename patches/{0033-disable-hyperlink-auditing-by-default.patch => 0032-disable-hyperlink-auditing-by-default.patch} (100%) rename patches/{0034-disable-showing-popular-sites-by-default.patch => 0033-disable-showing-popular-sites-by-default.patch} (100%) rename patches/{0035-disable-article-suggestions-feature-by-default.patch => 0034-disable-article-suggestions-feature-by-default.patch} (100%) rename patches/{0036-disable-content-feed-suggestions-by-default.patch => 0035-disable-content-feed-suggestions-by-default.patch} (100%) rename patches/{0037-disable-sensors-access-by-default.patch => 0036-disable-sensors-access-by-default.patch} (96%) rename patches/{0038-ask-before-playing-protected-media-by-default.patch => 0037-ask-before-playing-protected-media-by-default.patch} (96%) rename patches/{0039-disable-third-party-cookies-by-default.patch => 0038-disable-third-party-cookies-by-default.patch} (100%) rename patches/{0040-disable-background-sync-by-default.patch => 0039-disable-background-sync-by-default.patch} (96%) rename patches/{0041-disable-payment-support-by-default.patch => 0040-disable-payment-support-by-default.patch} (100%) rename patches/{0042-disable-media-router-media-remoting-by-default.patch => 0041-disable-media-router-media-remoting-by-default.patch} (100%) rename patches/{0043-disable-media-router-by-default.patch => 0042-disable-media-router-by-default.patch} (100%) rename patches/{0044-disable-offering-translations-by-default.patch => 0043-disable-offering-translations-by-default.patch} (100%) rename patches/{0045-disable-browser-sign-in-feature-by-default.patch => 0044-disable-browser-sign-in-feature-by-default.patch} (100%) rename patches/{0046-disable-safe-browsing-reporting-opt-in-by-default.patch => 0045-disable-safe-browsing-reporting-opt-in-by-default.patch} (100%) rename patches/{0047-disable-unused-safe-browsing-option-by-default.patch => 0046-disable-unused-safe-browsing-option-by-default.patch} (100%) rename patches/{0048-disable-media-DRM-preprovisioning-by-default.patch => 0047-disable-media-DRM-preprovisioning-by-default.patch} (100%) rename patches/{0049-disable-autofill-server-communication-by-default.patch => 0048-disable-autofill-server-communication-by-default.patch} (100%) rename patches/{0050-disable-component-updater-pings-by-default.patch => 0049-disable-component-updater-pings-by-default.patch} (100%) rename patches/{0051-disable-search-provider-logo.patch => 0050-disable-search-provider-logo.patch} (100%) rename patches/{0052-disable-trivial-subdomain-hiding.patch => 0051-disable-trivial-subdomain-hiding.patch} (100%) rename patches/{0053-disable-learn-more-link-in-incognito-new-tab.patch => 0052-disable-learn-more-link-in-incognito-new-tab.patch} (100%) rename patches/{0054-disable-Omaha-update-check-support.patch => 0053-disable-Omaha-update-check-support.patch} (100%) rename patches/{0055-disable-GaiaAuthFetcher-code-due-to-upstream-bug.patch => 0054-disable-GaiaAuthFetcher-code-due-to-upstream-bug.patch} (100%) rename patches/{0056-Disable-adding-a-signed-out-avatar-on-new-tab-pages-.patch => 0055-Disable-adding-a-signed-out-avatar-on-new-tab-pages-.patch} (100%) rename patches/{0057-Disable-newer-privacy-sandbox-features-by-default.patch => 0056-Disable-newer-privacy-sandbox-features-by-default.patch} (100%) rename patches/{0058-Disable-WebGPU-in-Android-by-default.patch => 0057-Disable-WebGPU-in-Android-by-default.patch} (100%) rename patches/{0059-Disable-top-toolbar-button-Translate-option-by-defau.patch => 0058-Disable-top-toolbar-button-Translate-option-by-defau.patch} (100%) rename patches/{0060-always-use-local-new-tab-page.patch => 0059-always-use-local-new-tab-page.patch} (100%) rename patches/{0061-mark-non-secure-origins-as-dangerous.patch => 0060-mark-non-secure-origins-as-dangerous.patch} (100%) rename patches/{0062-most-private-WebRTC-IP-handling-policy-by-default.patch => 0061-most-private-WebRTC-IP-handling-policy-by-default.patch} (100%) rename patches/{0063-stub-out-the-battery-status-API.patch => 0062-stub-out-the-battery-status-API.patch} (100%) rename patches/{0064-stop-ignoring-download-location-prompt-setting.patch => 0063-stop-ignoring-download-location-prompt-setting.patch} (100%) rename patches/{0065-show-download-prompt-again-by-default.patch => 0064-show-download-prompt-again-by-default.patch} (100%) rename patches/{0066-disable-trials-of-privacy-aware-analytics-advertisin.patch => 0065-disable-trials-of-privacy-aware-analytics-advertisin.patch} (100%) rename patches/{0067-disable-using-Play-services-fonts.patch => 0066-disable-using-Play-services-fonts.patch} (100%) rename patches/{0068-disable-appending-variations-header.patch => 0067-disable-appending-variations-header.patch} (100%) rename patches/{0069-Disable-detailed-language-settings-by-default.patch => 0068-Disable-detailed-language-settings-by-default.patch} (100%) rename patches/{0070-disable-fetching-optimization-guides-by-default.patch => 0069-disable-fetching-optimization-guides-by-default.patch} (100%) rename patches/{0071-Disable-tab-group-sync-settings-UI-by-default.patch => 0070-Disable-tab-group-sync-settings-UI-by-default.patch} (100%) rename patches/{0072-disable-fetching-optimization-hints-by-default.patch => 0071-disable-fetching-optimization-hints-by-default.patch} (100%) rename patches/{0073-disable-more-optimization-guides-features-by-default.patch => 0072-disable-more-optimization-guides-features-by-default.patch} (100%) rename patches/{0074-disable-network-time-tracker-by-default.patch => 0073-disable-network-time-tracker-by-default.patch} (100%) rename patches/{0075-Disable-opening-PDF-in-the-app-by-default.patch => 0074-Disable-opening-PDF-in-the-app-by-default.patch} (100%) rename patches/{0076-set-default-search-engine-to-DuckDuckGo.patch => 0075-set-default-search-engine-to-DuckDuckGo.patch} (100%) rename patches/{0077-set-original-package-to-org.chromium.chrome.patch => 0076-set-original-package-to-org.chromium.chrome.patch} (100%) rename patches/{0078-Make-HTTPS-only-mode-the-default.patch => 0077-Make-HTTPS-only-mode-the-default.patch} (100%) rename patches/{0079-require-HTTPS-for-component-updates.patch => 0078-require-HTTPS-for-component-updates.patch} (100%) rename patches/{0080-use-vanadium.app-for-component-updates.patch => 0079-use-vanadium.app-for-component-updates.patch} (100%) rename patches/{0081-enable-memory-tagging-in-all-processes.patch => 0080-enable-memory-tagging-in-all-processes.patch} (100%) rename patches/{0082-enable-split-cache-by-default.patch => 0081-enable-split-cache-by-default.patch} (100%) rename patches/{0083-enable-partitioning-connections-by-default.patch => 0082-enable-partitioning-connections-by-default.patch} (100%) rename patches/{0084-enable-dubious-Do-Not-Track-feature-by-default.patch => 0083-enable-dubious-Do-Not-Track-feature-by-default.patch} (100%) rename patches/{0085-enable-strict-site-isolation-by-default-on-Android.patch => 0084-enable-strict-site-isolation-by-default-on-Android.patch} (100%) rename patches/{0086-Enable-strict-origin-isolation-by-default.patch => 0085-Enable-strict-origin-isolation-by-default.patch} (100%) rename patches/{0087-Enable-reduce-accept-language-header-by-default.patch => 0086-Enable-reduce-accept-language-header-by-default.patch} (100%) rename patches/{0088-use-Google-Chrome-branding-for-client-hints.patch => 0087-use-Google-Chrome-branding-for-client-hints.patch} (100%) rename patches/{0089-add-trichrome-browser-apk-targets.patch => 0088-add-trichrome-browser-apk-targets.patch} (100%) rename patches/{0090-Remove-logo-from-chrome-version.patch => 0089-Remove-logo-from-chrome-version.patch} (100%) rename patches/{0091-redirect-settings-help-icon.patch => 0090-redirect-settings-help-icon.patch} (100%) rename patches/{0092-remove-Google-prefix-from-storage-settings-label.patch => 0091-remove-Google-prefix-from-storage-settings-label.patch} (100%) rename patches/{0093-remove-Help-feedback-menu-entry.patch => 0092-remove-Help-feedback-menu-entry.patch} (100%) rename patches/{0094-update-trichrome_library_apk-expectation-file.patch => 0093-update-trichrome_library_apk-expectation-file.patch} (100%) rename patches/{0095-bugfix-add-missing-null-check-for-updating-preferenc.patch => 0094-bugfix-add-missing-null-check-for-updating-preferenc.patch} (100%) rename patches/{0096-Extension-of-build-system-for-java-files-in-base-lay.patch => 0095-Extension-of-build-system-for-java-files-in-base-lay.patch} (100%) rename patches/{0097-Utility-class-for-adding-shared-preference-keys.patch => 0096-Utility-class-for-adding-shared-preference-keys.patch} (100%) rename patches/{0098-Helper-class-for-modifying-preferences.patch => 0097-Helper-class-for-modifying-preferences.patch} (100%) rename patches/{0099-Consolidate-downstream-changes-in-dependencies-sourc.patch => 0098-Consolidate-downstream-changes-in-dependencies-sourc.patch} (100%) rename patches/{0100-Consolidate-downstream-strings-in-a-separate-file-fo.patch => 0099-Consolidate-downstream-strings-in-a-separate-file-fo.patch} (100%) rename patches/{0101-Utility-class-for-modifying-preferences-at-Privacy-s.patch => 0100-Utility-class-for-modifying-preferences-at-Privacy-s.patch} (100%) rename patches/{0102-Remove-not-applicable-additional-terms-of-services.patch => 0101-Remove-not-applicable-additional-terms-of-services.patch} (100%) rename patches/{0103-remove-Google-terms-of-use-and-privacy-policy.patch => 0102-remove-Google-terms-of-use-and-privacy-policy.patch} (100%) rename patches/{0104-Make-PrivacySettings-preference-keys-declaration-pac.patch => 0103-Make-PrivacySettings-preference-keys-declaration-pac.patch} (100%) rename patches/{0105-remove-unwanted-sync-and-services-link.patch => 0104-remove-unwanted-sync-and-services-link.patch} (100%) rename patches/{0106-remove-safety-check-menu.patch => 0105-remove-safety-check-menu.patch} (100%) rename patches/{0107-remove-unwanted-account-and-services-section.patch => 0106-remove-unwanted-account-and-services-section.patch} (100%) rename patches/{0108-remove-translate-offer-preference.patch => 0107-remove-translate-offer-preference.patch} (100%) rename patches/{0109-Hide-Sign-In-preference-when-disallowed.patch => 0108-Hide-Sign-In-preference-when-disallowed.patch} (100%) rename patches/{0110-Hide-currently-no-op-preload-settings.patch => 0109-Hide-currently-no-op-preload-settings.patch} (100%) rename patches/{0111-Remove-privacy-trials-preference-UI.patch => 0110-Remove-privacy-trials-preference-UI.patch} (100%) rename patches/{0112-Remove-privacy-guides-preference-UI.patch => 0111-Remove-privacy-guides-preference-UI.patch} (100%) rename patches/{0113-Move-search-suggestions-back-to-privacy-section.patch => 0112-Move-search-suggestions-back-to-privacy-section.patch} (100%) rename patches/{0114-Toggle-for-closing-tabs-on-exit.patch => 0113-Toggle-for-closing-tabs-on-exit.patch} (100%) rename patches/{0115-Toggle-for-opening-external-links-in-incognito-tabs.patch => 0114-Toggle-for-opening-external-links-in-incognito-tabs.patch} (100%) rename patches/{0116-Handle-more-web-search-intents-in-browser.patch => 0115-Handle-more-web-search-intents-in-browser.patch} (100%) rename patches/{0117-Support-opening-external-web-search-in-incognito.patch => 0116-Support-opening-external-web-search-in-incognito.patch} (100%) rename patches/{0118-Apply-toggle-for-opening-links-in-incognito-for-cust.patch => 0117-Apply-toggle-for-opening-links-in-incognito-for-cust.patch} (100%) rename patches/{0119-Apply-toggle-for-opening-links-in-incognito-for-sear.patch => 0118-Apply-toggle-for-opening-links-in-incognito-for-sear.patch} (100%) rename patches/{0120-Apply-toggle-for-opening-links-in-incognito-for-shar.patch => 0119-Apply-toggle-for-opening-links-in-incognito-for-shar.patch} (100%) rename patches/{0121-Implement-UI-for-WebRTC-toggle.patch => 0120-Implement-UI-for-WebRTC-toggle.patch} (100%) rename patches/{0122-make-cross-origin-referrer-behavior-configurable.patch => 0121-make-cross-origin-referrer-behavior-configurable.patch} (100%) rename patches/{0123-Derive-high-entropy-client-hints-with-reduced-user-a.patch => 0122-Derive-high-entropy-client-hints-with-reduced-user-a.patch} (100%) rename patches/{0124-Add-missing-null-check-for-password-manager-autofill.patch => 0123-Add-missing-null-check-for-password-manager-autofill.patch} (100%) rename patches/{0125-Drop-workaround-with-android-autofill-in-compatibili.patch => 0124-Drop-workaround-with-android-autofill-in-compatibili.patch} (100%) rename patches/{0126-Enable-usage-of-Android-Autofill-by-default.patch => 0125-Enable-usage-of-Android-Autofill-by-default.patch} (100%) rename patches/{0127-Disable-Play-services-dependent-password-manager-pre.patch => 0126-Disable-Play-services-dependent-password-manager-pre.patch} (100%) rename patches/{0128-Use-local-list-of-supported-languages-for-Language-s.patch => 0127-Use-local-list-of-supported-languages-for-Language-s.patch} (100%) rename patches/{0129-Add-an-easily-extensible-way-to-reference-targets-ea.patch => 0128-Add-an-easily-extensible-way-to-reference-targets-ea.patch} (100%) rename patches/{0130-Include-a-java-port-of-atomic-file-and-scoped-file-d.patch => 0129-Include-a-java-port-of-atomic-file-and-scoped-file-d.patch} (100%) rename patches/{0131-Add-a-new-config-like-apk-target-for-building.patch => 0130-Add-a-new-config-like-apk-target-for-building.patch} (100%) rename patches/{0132-config-Directly-reference-config-apk-build-target.patch => 0131-config-Directly-reference-config-apk-build-target.patch} (100%) rename patches/{0133-config-Generate-ConfigInfo-from-config-apk.patch => 0132-config-Generate-ConfigInfo-from-config-apk.patch} (100%) rename patches/{0134-config-Provide-targets-for-linking-and-inclusion-of-.patch => 0133-config-Provide-targets-for-linking-and-inclusion-of-.patch} (100%) rename patches/{0135-config-Include-the-ConfigInfo-class-for-Monochrome-a.patch => 0134-config-Include-the-ConfigInfo-class-for-Monochrome-a.patch} (100%) rename patches/{0136-config-Include-the-ConfigInfo-class-for-WebView-targ.patch => 0135-config-Include-the-ConfigInfo-class-for-WebView-targ.patch} (100%) rename patches/{0137-config-test-Add-ConfigInfo-on-necessary-test-targets.patch => 0136-config-test-Add-ConfigInfo-on-necessary-test-targets.patch} (100%) rename patches/{0138-config-Add-proto-definitions-for-feature-flags-and-o.patch => 0137-config-Add-proto-definitions-for-feature-flags-and-o.patch} (100%) rename patches/{0139-config-Add-protobuf-generator-parser-for-config-apk-.patch => 0138-config-Add-protobuf-generator-parser-for-config-apk-.patch} (100%) rename patches/{0140-config-generator-Initial-configuration-for-config-ap.patch => 0139-config-generator-Initial-configuration-for-config-ap.patch} (100%) rename patches/{0141-config-parser-Add-config-parser-for-browser-and-webv.patch => 0140-config-parser-Add-config-parser-for-browser-and-webv.patch} (99%) rename patches/{0142-filter-lists-Helper-script-for-fetching-content-filt.patch => 0141-filter-lists-Helper-script-for-fetching-content-filt.patch} (100%) rename patches/{0143-config-add-new-needed-deps-to-fetch-filter-lists.patch => 0142-config-add-new-needed-deps-to-fetch-filter-lists.patch} (100%) rename patches/{0144-config-Build-target-for-android-assets-including-the.patch => 0143-config-Build-target-for-android-assets-including-the.patch} (100%) rename patches/{0145-config-Build-target-for-android-assets-for-config-fi.patch => 0144-config-Build-target-for-android-assets-for-config-fi.patch} (100%) rename patches/{0146-config-Add-the-needed-component-and-protobuf-file-fo.patch => 0145-config-Add-the-needed-component-and-protobuf-file-fo.patch} (100%) rename patches/{0147-Add-support-for-upstream-file-based-parsing-of-unind.patch => 0146-Add-support-for-upstream-file-based-parsing-of-unind.patch} (99%) rename patches/{0148-Add-hooks-for-applying-flags-features-at-runtime.patch => 0147-Add-hooks-for-applying-flags-features-at-runtime.patch} (100%) rename patches/{0149-Add-hooks-for-LibraryLoader-on-early-initialization-.patch => 0148-Add-hooks-for-LibraryLoader-on-early-initialization-.patch} (100%) rename patches/{0150-Add-hooks-for-initializing-contents-of-VanadiumConfi.patch => 0149-Add-hooks-for-initializing-contents-of-VanadiumConfi.patch} (92%) rename patches/{0151-Extension-of-build-system-at-android-specific-subres.patch => 0150-Extension-of-build-system-at-android-specific-subres.patch} (100%) rename patches/{0152-Expose-fetching-config-state-for-content-filtering-t.patch => 0151-Expose-fetching-config-state-for-content-filtering-t.patch} (100%) rename patches/{0153-Use-ruleset-from-config-apk-whenever-it-s-present.patch => 0152-Use-ruleset-from-config-apk-whenever-it-s-present.patch} (100%) rename patches/{0154-content-filtering-Add-update-handling-of-subresource.patch => 0153-content-filtering-Add-update-handling-of-subresource.patch} (100%) rename patches/{0163-Add-support-for-calling-added-APIs-from-custom-OS.patch => 0154-Add-support-for-calling-added-APIs-from-custom-OS.patch} (100%) rename patches/{0183-revert-upstream-Revert-clearing-javascript-JIT-site-.patch => 0155-revert-upstream-Revert-clearing-javascript-JIT-site-.patch} (100%) rename patches/{0177-Always-start-child-processes-in-jitless-mode-when-ex.patch => 0156-Always-start-child-processes-in-jitless-mode-when-ex.patch} (100%) rename patches/{0215-enable-wasm-in-interprter-mode-when-per-site-JIT-is-.patch => 0157-enable-wasm-in-interprter-mode-when-per-site-JIT-is-.patch} (100%) rename patches/{0216-enable-wasm-in-interprter-mode-when-OS-JIT-is-restri.patch => 0158-enable-wasm-in-interprter-mode-when-OS-JIT-is-restri.patch} (100%) rename patches/{0023-Implement-UI-for-JIT-site-settings.patch => 0159-Implement-UI-for-JIT-site-settings.patch} (87%) rename patches/{0155-Extension-of-build-system-for-static-library-deps-at.patch => 0160-Extension-of-build-system-for-static-library-deps-at.patch} (100%) rename patches/{0156-Update-subresource-filter-from-config-apk.patch => 0161-Update-subresource-filter-from-config-apk.patch} (100%) rename patches/{0157-Use-the-content-filtering-from-config-app-when-avail.patch => 0162-Use-the-content-filtering-from-config-app-when-avail.patch} (100%) rename patches/{0158-Add-VanadiumConfig-version-on-about-Vanadium-setting.patch => 0163-Add-VanadiumConfig-version-on-about-Vanadium-setting.patch} (100%) rename patches/{0159-don-t-show-subresource-filter-UI-for-site.patch => 0164-don-t-show-subresource-filter-UI-for-site.patch} (100%) rename patches/{0160-enable-subresource-filter-on-all-sites.patch => 0165-enable-subresource-filter-on-all-sites.patch} (100%) rename patches/{0161-Use-the-old-naming-convention-of-Ads-in-ads-site-set.patch => 0166-Use-the-old-naming-convention-of-Ads-in-ads-site-set.patch} (98%) rename patches/{0162-Enable-CredentialManager-APIs-for-all-apps-supportin.patch => 0167-Enable-CredentialManager-APIs-for-all-apps-supportin.patch} (100%) rename patches/{0164-filter-lists-Update-script-to-also-include-saving-sh.patch => 0168-filter-lists-Update-script-to-also-include-saving-sh.patch} (100%) rename patches/{0165-Revert-Fixit-Update-Password-Manager-to-Google-Passw.patch => 0169-Revert-Fixit-Update-Password-Manager-to-Google-Passw.patch} (100%) rename patches/{0166-Match-skipping-compatibility-check-default-value-che.patch => 0170-Match-skipping-compatibility-check-default-value-che.patch} (100%) rename patches/{0167-Set-Toolbar-shortcut-default-to-new-tab-instead-of-a.patch => 0171-Set-Toolbar-shortcut-default-to-new-tab-instead-of-a.patch} (100%) rename patches/{0168-Add-a-method-to-hook-at-Application.attachBaseContex.patch => 0172-Add-a-method-to-hook-at-Application.attachBaseContex.patch} (100%) rename patches/{0169-Add-hooks-for-ChromeApplicationImpl-to-initialize-co.patch => 0173-Add-hooks-for-ChromeApplicationImpl-to-initialize-co.patch} (100%) rename patches/{0170-content-filtering-Add-support-for-updating-content-f.patch => 0174-content-filtering-Add-support-for-updating-content-f.patch} (100%) rename patches/{0171-Add-support-for-conditional-content-filtering-compon.patch => 0175-Add-support-for-conditional-content-filtering-compon.patch} (100%) rename patches/{0172-add-support-for-other-language-content-filtering-dep.patch => 0176-add-support-for-other-language-content-filtering-dep.patch} (100%) rename patches/{0173-Update-Resources-and-Configuration-generated-protobu.patch => 0177-Update-Resources-and-Configuration-generated-protobu.patch} (100%) rename patches/{0174-Document-more-needed-removals-for-protobuf.patch => 0178-Document-more-needed-removals-for-protobuf.patch} (100%) rename patches/{0175-Isolate-sandboxed-iframes-per-site-by-default.patch => 0179-Isolate-sandboxed-iframes-per-site-by-default.patch} (100%) rename patches/{0176-Fix-chrome-target-generation-when-skip_secondary_abi.patch => 0180-Fix-chrome-target-generation-when-skip_secondary_abi.patch} (100%) rename patches/{0178-Disable-predictive-back-gesture-for-Vanadium.patch => 0181-Disable-predictive-back-gesture-for-Vanadium.patch} (100%) rename patches/{0179-Support-restriction-of-dynamic-code.patch => 0182-Support-restriction-of-dynamic-code.patch} (100%) rename patches/{0180-Restriction-of-dynamic-code-execution-via-seccomp-bp.patch => 0183-Restriction-of-dynamic-code-execution-via-seccomp-bp.patch} (100%) rename patches/{0181-config-Explicitly-declare-queries-to-config-package-.patch => 0184-config-Explicitly-declare-queries-to-config-package-.patch} (100%) rename patches/{0182-config-Compile-the-config-holder-app-with-forceQuery.patch => 0185-config-Compile-the-config-holder-app-with-forceQuery.patch} (100%) rename patches/{0184-tmp-Disable-Safety-Hub-features-by-default.patch => 0186-tmp-Disable-Safety-Hub-features-by-default.patch} (100%) rename patches/{0185-Enable-HSTS-upgrades-for-top-level-navigation-only-b.patch => 0187-Enable-HSTS-upgrades-for-top-level-navigation-only-b.patch} (100%) rename patches/{0186-Reduce-user-agent-and-client-hints-for-webview.patch => 0188-Reduce-user-agent-and-client-hints-for-webview.patch} (100%) rename patches/{0187-remove-upstream-code-disabling-WebView-MTE.patch => 0189-remove-upstream-code-disabling-WebView-MTE.patch} (100%) rename patches/{0188-Extend-site-setting-category-visibility-check-on-sin.patch => 0190-Extend-site-setting-category-visibility-check-on-sin.patch} (93%) rename patches/{0189-remove-debug-dump-when-MTE-is-disabled.patch => 0191-remove-debug-dump-when-MTE-is-disabled.patch} (100%) rename patches/{0190-Remove-javascript-optimizer-settings-UI-link-on-Priv.patch => 0192-Remove-javascript-optimizer-settings-UI-link-on-Priv.patch} (100%) rename patches/{0191-Remove-javascript-optimizer-settings-UI.patch => 0193-Remove-javascript-optimizer-settings-UI.patch} (100%) rename patches/{0192-Reset-saved-javascript-optimizer-site-setting.patch => 0194-Reset-saved-javascript-optimizer-site-setting.patch} (100%) rename patches/{0193-Support-for-extra-arguments-declared-for-chrome-laye.patch => 0195-Support-for-extra-arguments-declared-for-chrome-laye.patch} (100%) rename patches/{0194-Support-for-excluding-crashpad-in-compiling-chrome-t.patch => 0196-Support-for-excluding-crashpad-in-compiling-chrome-t.patch} (100%) rename patches/{0195-Always-allow-platform-CredentialManager-calls-for-An.patch => 0197-Always-allow-platform-CredentialManager-calls-for-An.patch} (100%) rename patches/{0196-Fix-versionCode-for-64-bit-only-builds.patch => 0198-Fix-versionCode-for-64-bit-only-builds.patch} (100%) rename patches/{0197-Increment-minSdk-to-33-trichrome-apk-build-targets.patch => 0199-Increment-minSdk-to-33-trichrome-apk-build-targets.patch} (100%) rename patches/{0198-config-disable-domain-reliability-feature.patch => 0200-config-disable-domain-reliability-feature.patch} (100%) rename patches/{0199-Disable-password-leak-detection-by-default.patch => 0201-Disable-password-leak-detection-by-default.patch} (100%) rename patches/{0200-Further-disable-password-leak-detection-checks.patch => 0202-Further-disable-password-leak-detection-checks.patch} (100%) rename patches/{0201-Hide-potentially-no-op-password-leak-detection-toggl.patch => 0203-Hide-potentially-no-op-password-leak-detection-toggl.patch} (100%) rename patches/{0202-enable-certificate-transparency-feature-by-default-f.patch => 0204-enable-certificate-transparency-feature-by-default-f.patch} (100%) rename patches/{0203-enable-more-Local-Network-Access-coverage-checks-by-.patch => 0205-enable-more-Local-Network-Access-coverage-checks-by-.patch} (100%) rename patches/{0204-hide-and-don-t-fetch-icons-for-search-engine-setting.patch => 0206-hide-and-don-t-fetch-icons-for-search-engine-setting.patch} (100%) rename patches/{0205-Revert-removal-of-database-for-local-password-manage.patch => 0207-Revert-removal-of-database-for-local-password-manage.patch} (100%) rename patches/{0206-Restore-build-args-of-using-login-database-as-backen.patch => 0208-Restore-build-args-of-using-login-database-as-backen.patch} (100%) rename patches/{0207-Restore-buildflag-for-using-login-database-as-backen.patch => 0209-Restore-buildflag-for-using-login-database-as-backen.patch} (100%) rename patches/{0208-Restore-file-name-refs-for-password-manager-local-da.patch => 0210-Restore-file-name-refs-for-password-manager-local-da.patch} (100%) rename patches/{0209-Restore-necessary-prefs-for-local-backend-password-m.patch => 0211-Restore-necessary-prefs-for-local-backend-password-m.patch} (100%) rename patches/{0210-Restore-support-of-login-database-backend-for-Androi.patch => 0212-Restore-support-of-login-database-backend-for-Androi.patch} (100%) rename patches/{0211-Revert-passwords-android-Move-reduce-visibility-of-s.patch => 0213-Revert-passwords-android-Move-reduce-visibility-of-s.patch} (100%) rename patches/{0212-Restore-chrome-browser-password_entry_edit-for-local.patch => 0214-Restore-chrome-browser-password_entry_edit-for-local.patch} (100%) rename patches/{0213-Restore-local-password-manager-UI.patch => 0215-Restore-local-password-manager-UI.patch} (100%) rename patches/{0214-restore-local-backend-based-password-manager-setting.patch => 0216-restore-local-backend-based-password-manager-setting.patch} (100%) create mode 100644 patches/0217-Support-for-toggling-motion-sensors-site-settings-pe.patch rename patches/{0217-Support-to-automatically-apply-patches-to-some-subpr.patch => 0218-Support-to-automatically-apply-patches-to-some-subpr.patch} (100%) rename patches/{0218-Suppport-applying-patches-to-v8-subproject.patch => 0219-Suppport-applying-patches-to-v8-subproject.patch} (100%) rename patches/{0219-initial-v8-patchset-for-wasm-in-interpreter-mode-sup.patch => 0220-initial-v8-patchset-for-wasm-in-interpreter-mode-sup.patch} (100%) rename patches/{0220-Support-applying-patches-to-search-engine-data-resou.patch => 0221-Support-applying-patches-to-search-engine-data-resou.patch} (100%) rename patches/{0221-Search-engine-data-patches-to-always-include-DuckDuc.patch => 0222-Search-engine-data-patches-to-always-include-DuckDuc.patch} (100%) rename patches/{0222-Increment-top-search-engine-threshold-to-7.patch => 0223-Increment-top-search-engine-threshold-to-7.patch} (100%) rename patches/{0223-Add-missing-x64-AndroidManifest-expected-libs-and-as.patch => 0224-Add-missing-x64-AndroidManifest-expected-libs-and-as.patch} (100%) rename patches/{0224-Update-arm64-AndroidManifest-expected-libs-and-asset.patch => 0225-Update-arm64-AndroidManifest-expected-libs-and-asset.patch} (100%) rename patches/{0225-Enable-origin-keyed-process-isolation-by-default.patch => 0226-Enable-origin-keyed-process-isolation-by-default.patch} (100%) rename patches/{0226-Allow-registration-of-passkeys-regardless-of-residen.patch => 0227-Allow-registration-of-passkeys-regardless-of-residen.patch} (100%) rename patches/{0227-disable-misleading-new-tab-cards-by-default.patch => 0228-disable-misleading-new-tab-cards-by-default.patch} (100%) rename patches/{0228-disable-additional-buttons-below-search-bar-in-new-t.patch => 0229-disable-additional-buttons-below-search-bar-in-new-t.patch} (100%) rename patches/{0229-Apply-toggle-for-opening-links-in-incognito-for-expl.patch => 0230-Apply-toggle-for-opening-links-in-incognito-for-expl.patch} (100%) rename patches/{0230-remove-unused-separate-autofill-status.patch => 0231-remove-unused-separate-autofill-status.patch} (100%) rename patches/{0231-always-enable-autofill-screens-regardless-of-autofil.patch => 0232-always-enable-autofill-screens-regardless-of-autofil.patch} (100%) delete mode 100644 patches/0233-Initial-support-for-toggling-Sensors-site-settings-p.patch rename patches/{0232-fix-crashes-caused-by-removing-Google-services-setti.patch => 0233-fix-crashes-caused-by-removing-Google-services-setti.patch} (100%) diff --git a/patches/0022-Initial-support-for-hooking-site-settings-UI-changes.patch b/patches/0022-Initial-support-for-hooking-site-settings-UI-changes.patch index f35f6d63d..ddc6ad8c7 100644 --- a/patches/0022-Initial-support-for-hooking-site-settings-UI-changes.patch +++ b/patches/0022-Initial-support-for-hooking-site-settings-UI-changes.patch @@ -4,23 +4,23 @@ Date: Tue, 7 Apr 2026 09:10:53 +0000 Subject: [PATCH] Initial support for hooking site settings UI changes --- - .../ContentSettingsResources.java | 83 ++++++++++++ - .../site_settings/SingleCategorySettings.java | 35 +++++ - .../SingleCategorySettingsHooks.java | 61 +++++++++ - .../site_settings/SingleWebsiteSettings.java | 18 +++ - .../SingleWebsiteSettingsHooks.java | 60 +++++++++ + .../ContentSettingsResources.java | 83 +++++++++++++ + .../site_settings/SingleCategorySettings.java | 35 ++++++ + .../SingleCategorySettingsHooks.java | 61 ++++++++++ + .../site_settings/SingleWebsiteSettings.java | 20 ++++ + .../SingleWebsiteSettingsHooks.java | 53 ++++++++ .../site_settings/SiteSettings.java | 13 ++ - .../site_settings/SiteSettingsCategory.java | 60 ++++++++- - .../SiteSettingsCategoryHooks.java | 48 +++++++ - .../SiteSettingsHooksRegistry.java | 125 ++++++++++++++++++ - .../SiteSettingsResourcesHooks.java | 75 +++++++++++ - .../SiteSettingsScreenHooks.java | 111 ++++++++++++++++ + .../site_settings/SiteSettingsCategory.java | 51 +++++++- + .../SiteSettingsCategoryHooks.java | 48 ++++++++ + .../SiteSettingsHooksRegistry.java | 113 ++++++++++++++++++ + .../SiteSettingsResourcesHooks.java | 75 ++++++++++++ + .../SiteSettingsScreenHooks.java | 111 +++++++++++++++++ .../site_settings/SiteSettingsUtil.java | 4 +- - .../browser_ui/site_settings/Website.java | 36 +++++ + .../browser_ui/site_settings/Website.java | 36 ++++++ .../WebsitePermissionsFetcher.java | 19 +++ - .../WebsitePermissionsFetcherHooks.java | 55 ++++++++ - ...site_settings_android_java_ext_sources.gni | 7 + - 16 files changed, 806 insertions(+), 4 deletions(-) + .../WebsitePermissionsFetcherHooks.java | 55 +++++++++ + ...site_settings_android_java_ext_sources.gni | 7 ++ + 16 files changed, 780 insertions(+), 4 deletions(-) create mode 100644 components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleCategorySettingsHooks.java create mode 100644 components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettingsHooks.java create mode 100644 components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettingsCategoryHooks.java @@ -251,7 +251,7 @@ index 0000000000000..e681344f6243a + } +} diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java -index 0fd4b9c345d93..76a8468578198 100644 +index 0fd4b9c345d93..8278042cfa409 100644 --- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java +++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java @@ -143,6 +143,15 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment @@ -270,7 +270,7 @@ index 0fd4b9c345d93..76a8468578198 100644 switch (type) { case ContentSettingsType.ADS: return "ads_permission_list"; -@@ -659,6 +668,15 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment +@@ -659,6 +668,17 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment for (@ContentSettingsType.EnumType int type : SiteSettingsUtil.SETTINGS_ORDER) { Preference preference = getPermissionPreference(type); preference.setKey(getPreferenceKey(type)); @@ -282,25 +282,26 @@ index 0fd4b9c345d93..76a8468578198 100644 + hooks.getContentSettingForSetup(getBrowserContextHandle(), mSite, type), + mSite.isEmbargoed(type), + isOneTime(type)); ++ hooks.setupOrModifyPreference(this, getBrowserContextHandle(), preference); ++ continue; + } if (type == ContentSettingsType.ADS) { setUpAdsPreference(preference); diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettingsHooks.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettingsHooks.java new file mode 100644 -index 0000000000000..5737bb2acebdd +index 0000000000000..01d8582a63027 --- /dev/null +++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettingsHooks.java -@@ -0,0 +1,60 @@ +@@ -0,0 +1,53 @@ +package org.chromium.components.browser_ui.site_settings; + +import androidx.preference.Preference; + -+import org.chromium.build.annotations.AlwaysInline; +import org.chromium.build.annotations.NonNull; +import org.chromium.build.annotations.NullMarked; +import org.chromium.build.annotations.Nullable; -+import org.chromium.components.browser_ui.settings.ChromeBasePreference; ++import org.chromium.components.content_settings.ContentSetting; +import org.chromium.components.content_settings.ContentSettingsType; +import org.chromium.content_public.browser.BrowserContextHandle; + @@ -331,6 +332,7 @@ index 0000000000000..5737bb2acebdd + } + + @Nullable ++ @ContentSetting + protected Integer getContentSettingForSetup( + @NonNull BrowserContextHandle browserContextHandle, + @NonNull Website website, @@ -338,19 +340,12 @@ index 0000000000000..5737bb2acebdd + return null; + } + -+ /** -+ * Has to be of following types for now: -+ * org.chromium.components.browser_ui.settings.ChromeImageViewPreference -+ * org.chromium.components.browser_ui.settings.ChromeSwitchPreference -+ * currently disabled until further notice -+ @Nullable -+ protected Preference getOverridenPreference( -+ @NonNull SiteSettings siteSettingsFragment, -+ @NonNull SiteSettingsDelegate siteSettingsDelegate, -+ @ContentSettingsType.EnumType int contentType) { -+ return null; ++ // Return true if preference set is overridden in subclass. ++ protected void setupOrModifyPreference( ++ @NonNull SingleWebsiteSettings siteSettingsFragment, ++ @NonNull BrowserContextHandle browserContextHandle, ++ @NonNull Preference preference) { + } -+ */ +} diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettings.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettings.java index fc9f116ff6544..6843ee392312a 100644 @@ -384,7 +379,7 @@ index fc9f116ff6544..6843ee392312a 100644 // For AllSiteSettings options. diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettingsCategory.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettingsCategory.java -index d335c6e2ea9ed..b51d43d085ab4 100644 +index d335c6e2ea9ed..c5c26f7c7049c 100644 --- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettingsCategory.java +++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettingsCategory.java @@ -83,7 +83,13 @@ public class SiteSettingsCategory { @@ -402,7 +397,7 @@ index d335c6e2ea9ed..b51d43d085ab4 100644 }) @Retention(RetentionPolicy.SOURCE) public @interface Type { -@@ -130,7 +136,28 @@ public class SiteSettingsCategory { +@@ -130,7 +136,19 @@ public class SiteSettingsCategory { int LOOPBACK_NETWORK = 38; /** Number of handled categories used for calculating array sizes. */ @@ -412,27 +407,18 @@ index d335c6e2ea9ed..b51d43d085ab4 100644 + // Three lines of placeholder comment to minimize cascading conflicts. + // Three lines of placeholder comment to minimize cascading conflicts. + // Three lines of placeholder comment to minimize cascading conflicts. -+ int NUM_ENTRIES = NUM_ENTRIES_CHROMIUM + ExtType.NUM_ENTRIES; -+ // Three lines of placeholder comment to minimize cascading conflicts. -+ // Three lines of placeholder comment to minimize cascading conflicts. -+ // Three lines of placeholder comment to minimize cascading conflicts. -+ } -+ -+ @IntDef({ -+ ExtType.NUM_ENTRIES, -+ }) -+ @interface ExtType { ++ int NUM_ENTRIES_EXT = 0; + // Three lines of placeholder comment to minimize cascading conflicts. + // Three lines of placeholder comment to minimize cascading conflicts. + // Three lines of placeholder comment to minimize cascading conflicts. -+ int NUM_ENTRIES = 0; ++ int NUM_ENTRIES = NUM_ENTRIES_CHROMIUM + NUM_ENTRIES_EXT; + // Three lines of placeholder comment to minimize cascading conflicts. + // Three lines of placeholder comment to minimize cascading conflicts. + // Three lines of placeholder comment to minimize cascading conflicts. } private final BrowserContextHandle mBrowserContextHandle; -@@ -167,6 +194,16 @@ public class SiteSettingsCategory { +@@ -167,6 +185,16 @@ public class SiteSettingsCategory { /** Construct a SiteSettingsCategory from a type. */ public static SiteSettingsCategory createFromType( BrowserContextHandle browserContextHandle, @Type int type) { @@ -449,7 +435,7 @@ index d335c6e2ea9ed..b51d43d085ab4 100644 if (type == Type.DEVICE_LOCATION) { return new LocationCategory(browserContextHandle, /* forPreciseLocation= */ true); } -@@ -218,6 +255,16 @@ public class SiteSettingsCategory { +@@ -218,6 +246,16 @@ public class SiteSettingsCategory { /** Convert Type into {@link ContentSettingsType}. */ public static @ContentSettingsType.EnumType int contentSettingsType(@Type int type) { @@ -466,7 +452,7 @@ index d335c6e2ea9ed..b51d43d085ab4 100644 // This switch statement is ordered by types alphabetically. switch (type) { case Type.ADS: -@@ -319,6 +366,15 @@ public class SiteSettingsCategory { +@@ -319,6 +357,15 @@ public class SiteSettingsCategory { /** Convert Type into preference String */ public static String preferenceKey(@Type int type) { @@ -538,10 +524,10 @@ index 0000000000000..d4f611ebaeefa +} diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettingsHooksRegistry.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettingsHooksRegistry.java new file mode 100644 -index 0000000000000..e35725146caeb +index 0000000000000..113bdb933cd4b --- /dev/null +++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettingsHooksRegistry.java -@@ -0,0 +1,125 @@ +@@ -0,0 +1,113 @@ +package org.chromium.components.browser_ui.site_settings; + +import org.chromium.build.annotations.NonNull; @@ -549,24 +535,15 @@ index 0000000000000..e35725146caeb +import org.chromium.components.content_settings.ContentSettingsType; + +import java.util.LinkedHashMap; ++import java.util.Map; + +@NullMarked +public final class SiteSettingsHooksRegistry { + -+ @SiteSettingsCategory.ExtType -+ public static int getExtTypeFromCategoryType( -+ @SiteSettingsCategory.Type int categoryType) { -+ return switch (categoryType) { -+ default -> SiteSettingsCategory.ExtType.NUM_ENTRIES; -+ }; -+ } -+ + @NonNull + public static SingleCategorySettingsHooks getSingleCategorySettingsHooks( + @SiteSettingsCategory.Type int categoryType) { -+ @SiteSettingsCategory.ExtType -+ int extType = getExtTypeFromCategoryType(categoryType); -+ return switch (extType) { ++ return switch (categoryType) { + default -> SingleCategorySettingsHooks.getDefaultInstance(); + }; + } @@ -582,9 +559,7 @@ index 0000000000000..e35725146caeb + @NonNull + public static SiteSettingsCategoryHooks getCategoryHooks( + @SiteSettingsCategory.Type int categoryType) { -+ @SiteSettingsCategory.ExtType -+ int extType = getExtTypeFromCategoryType(categoryType); -+ return switch (extType) { ++ return switch (categoryType) { + default -> SiteSettingsCategoryHooks.getDefaultInstance(); + }; + } @@ -600,9 +575,7 @@ index 0000000000000..e35725146caeb + @NonNull + public static SiteSettingsScreenHooks getSiteSettingsScreenHooks( + @SiteSettingsCategory.Type int categoryType) { -+ @SiteSettingsCategory.ExtType -+ int extType = getExtTypeFromCategoryType(categoryType); -+ return switch (extType) { ++ return switch (categoryType) { + default -> SiteSettingsScreenHooks.getDefaultInstance(); + }; + } @@ -621,23 +594,28 @@ index 0000000000000..e35725146caeb + @NonNull @ContentSettingsType.EnumType int[] existingOrder) { + LinkedHashMap> + prevToNextContentTypeMap = new LinkedHashMap<>(); -+ for (int i = SiteSettingsCategory.Type.NUM_ENTRIES_CHROMIUM; -+ i < SiteSettingsCategory.Type.NUM_ENTRIES; ++i) { -+ SiteSettingsScreenHooks hooks = getSiteSettingsScreenHooks(i); ++ for (int typeExt = SiteSettingsCategory.Type.NUM_ENTRIES_CHROMIUM; ++ typeExt < SiteSettingsCategory.Type.NUM_ENTRIES; ++typeExt) { ++ SiteSettingsScreenHooks hooks = getSiteSettingsScreenHooks(typeExt); + if (!hooks.isDefaultInstance()) { -+ int contentSettingsType = SiteSettingsCategory.contentSettingsType(i); ++ int contentSettingsType = SiteSettingsCategory.contentSettingsType(typeExt); + if (contentSettingsType == ContentSettingsType.DEFAULT) { + continue; + } + int prevContentType = hooks.getPreviousContentSettings(); + LinkedHashMap nextContentTypes = -+ prevToNextContentTypeMap.getOrDefault(prevContentType, new LinkedHashMap<>()); ++ prevToNextContentTypeMap.getOrDefault( ++ prevContentType, new LinkedHashMap<>()); + nextContentTypes.put(contentSettingsType, true); + prevToNextContentTypeMap.put(prevContentType, nextContentTypes); + } + } + -+ var newOrder = new LinkedHashMap(); ++ LinkedHashMap newOrder = new LinkedHashMap<>(); ++ LinkedHashMap firstEntries = ++ prevToNextContentTypeMap.getOrDefault( ++ ContentSettingsType.MIN_VALUE, new LinkedHashMap<>()); ++ newOrder.putAll(firstEntries); + for (int contentType: existingOrder) { + newOrder.put(contentType, true); + LinkedHashMap nextContentTypes = @@ -645,23 +623,19 @@ index 0000000000000..e35725146caeb + new LinkedHashMap<>()); + newOrder.putAll(nextContentTypes); + } ++ LinkedHashMap lastEntries = ++ prevToNextContentTypeMap.getOrDefault( ++ ContentSettingsType.MAX_VALUE, new LinkedHashMap<>()); ++ newOrder.putAll(lastEntries); + + int newOrderSize = newOrder.size(); + @ContentSettingsType.EnumType -+ int[] newOrderArr = new int[newOrder.size()]; -+ { -+ int[] index = new int[1]; -+ index[0] = 0; -+ newOrder.forEach((contentType, unused) -> { -+ int i = index[0]; -+ if (i >= newOrderSize) { -+ return; -+ } -+ newOrderArr[i] = contentType; -+ i++; -+ index[0] = i; -+ }); -+ index[0] = 0; ++ int[] newOrderArr = new int[newOrderSize]; ++ int i = 0; ++ for (Map.Entry entry: newOrder.entrySet()) { ++ int contentType = entry.getKey(); ++ newOrderArr[i] = contentType; ++ i++; + } + + return newOrderArr; diff --git a/patches/0024-disable-first-run-welcome-page.patch b/patches/0023-disable-first-run-welcome-page.patch similarity index 100% rename from patches/0024-disable-first-run-welcome-page.patch rename to patches/0023-disable-first-run-welcome-page.patch diff --git a/patches/0025-disable-seed-based-field-trials.patch b/patches/0024-disable-seed-based-field-trials.patch similarity index 100% rename from patches/0025-disable-seed-based-field-trials.patch rename to patches/0024-disable-seed-based-field-trials.patch diff --git a/patches/0026-disable-fetching-variations.patch b/patches/0025-disable-fetching-variations.patch similarity index 100% rename from patches/0026-disable-fetching-variations.patch rename to patches/0025-disable-fetching-variations.patch diff --git a/patches/0027-disable-WebView-variations-support.patch b/patches/0026-disable-WebView-variations-support.patch similarity index 100% rename from patches/0027-disable-WebView-variations-support.patch rename to patches/0026-disable-WebView-variations-support.patch diff --git a/patches/0028-disable-Media-Integrity-blink-extension-API-on-webvi.patch b/patches/0027-disable-Media-Integrity-blink-extension-API-on-webvi.patch similarity index 100% rename from patches/0028-disable-Media-Integrity-blink-extension-API-on-webvi.patch rename to patches/0027-disable-Media-Integrity-blink-extension-API-on-webvi.patch diff --git a/patches/0029-disable-navigation-error-correction-by-default.patch b/patches/0028-disable-navigation-error-correction-by-default.patch similarity index 100% rename from patches/0029-disable-navigation-error-correction-by-default.patch rename to patches/0028-disable-navigation-error-correction-by-default.patch diff --git a/patches/0030-disable-contextual-search-by-default.patch b/patches/0029-disable-contextual-search-by-default.patch similarity index 100% rename from patches/0030-disable-contextual-search-by-default.patch rename to patches/0029-disable-contextual-search-by-default.patch diff --git a/patches/0031-disable-network-prediction-by-default.patch b/patches/0030-disable-network-prediction-by-default.patch similarity index 100% rename from patches/0031-disable-network-prediction-by-default.patch rename to patches/0030-disable-network-prediction-by-default.patch diff --git a/patches/0032-disable-metrics-by-default.patch b/patches/0031-disable-metrics-by-default.patch similarity index 100% rename from patches/0032-disable-metrics-by-default.patch rename to patches/0031-disable-metrics-by-default.patch diff --git a/patches/0033-disable-hyperlink-auditing-by-default.patch b/patches/0032-disable-hyperlink-auditing-by-default.patch similarity index 100% rename from patches/0033-disable-hyperlink-auditing-by-default.patch rename to patches/0032-disable-hyperlink-auditing-by-default.patch diff --git a/patches/0034-disable-showing-popular-sites-by-default.patch b/patches/0033-disable-showing-popular-sites-by-default.patch similarity index 100% rename from patches/0034-disable-showing-popular-sites-by-default.patch rename to patches/0033-disable-showing-popular-sites-by-default.patch diff --git a/patches/0035-disable-article-suggestions-feature-by-default.patch b/patches/0034-disable-article-suggestions-feature-by-default.patch similarity index 100% rename from patches/0035-disable-article-suggestions-feature-by-default.patch rename to patches/0034-disable-article-suggestions-feature-by-default.patch diff --git a/patches/0036-disable-content-feed-suggestions-by-default.patch b/patches/0035-disable-content-feed-suggestions-by-default.patch similarity index 100% rename from patches/0036-disable-content-feed-suggestions-by-default.patch rename to patches/0035-disable-content-feed-suggestions-by-default.patch diff --git a/patches/0037-disable-sensors-access-by-default.patch b/patches/0036-disable-sensors-access-by-default.patch similarity index 96% rename from patches/0037-disable-sensors-access-by-default.patch rename to patches/0036-disable-sensors-access-by-default.patch index 6458eef9f..9dae79868 100644 --- a/patches/0037-disable-sensors-access-by-default.patch +++ b/patches/0036-disable-sensors-access-by-default.patch @@ -8,7 +8,7 @@ Subject: [PATCH] disable sensors access by default 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/content_settings/core/browser/content_settings_registry.cc b/components/content_settings/core/browser/content_settings_registry.cc -index 73701662ea02a..b135d39e3b796 100644 +index 22c06c3a0825f..05f4bcca28443 100644 --- a/components/content_settings/core/browser/content_settings_registry.cc +++ b/components/content_settings/core/browser/content_settings_registry.cc @@ -359,7 +359,7 @@ void ContentSettingsRegistry::Init() { diff --git a/patches/0038-ask-before-playing-protected-media-by-default.patch b/patches/0037-ask-before-playing-protected-media-by-default.patch similarity index 96% rename from patches/0038-ask-before-playing-protected-media-by-default.patch rename to patches/0037-ask-before-playing-protected-media-by-default.patch index c3277ac0f..11bc22f19 100644 --- a/patches/0038-ask-before-playing-protected-media-by-default.patch +++ b/patches/0037-ask-before-playing-protected-media-by-default.patch @@ -8,7 +8,7 @@ Subject: [PATCH] ask before playing protected media by default 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/content_settings/core/browser/content_settings_registry.cc b/components/content_settings/core/browser/content_settings_registry.cc -index b135d39e3b796..7378a0e6dbddc 100644 +index 05f4bcca28443..cfe792f8f47df 100644 --- a/components/content_settings/core/browser/content_settings_registry.cc +++ b/components/content_settings/core/browser/content_settings_registry.cc @@ -217,7 +217,7 @@ void ContentSettingsRegistry::Init() { diff --git a/patches/0039-disable-third-party-cookies-by-default.patch b/patches/0038-disable-third-party-cookies-by-default.patch similarity index 100% rename from patches/0039-disable-third-party-cookies-by-default.patch rename to patches/0038-disable-third-party-cookies-by-default.patch diff --git a/patches/0040-disable-background-sync-by-default.patch b/patches/0039-disable-background-sync-by-default.patch similarity index 96% rename from patches/0040-disable-background-sync-by-default.patch rename to patches/0039-disable-background-sync-by-default.patch index ba6d6f883..d7bba6add 100644 --- a/patches/0040-disable-background-sync-by-default.patch +++ b/patches/0039-disable-background-sync-by-default.patch @@ -8,7 +8,7 @@ Subject: [PATCH] disable background sync by default 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/content_settings/core/browser/content_settings_registry.cc b/components/content_settings/core/browser/content_settings_registry.cc -index 7378a0e6dbddc..625d38d8eee31 100644 +index cfe792f8f47df..d0b10fda002da 100644 --- a/components/content_settings/core/browser/content_settings_registry.cc +++ b/components/content_settings/core/browser/content_settings_registry.cc @@ -244,7 +244,7 @@ void ContentSettingsRegistry::Init() { diff --git a/patches/0041-disable-payment-support-by-default.patch b/patches/0040-disable-payment-support-by-default.patch similarity index 100% rename from patches/0041-disable-payment-support-by-default.patch rename to patches/0040-disable-payment-support-by-default.patch diff --git a/patches/0042-disable-media-router-media-remoting-by-default.patch b/patches/0041-disable-media-router-media-remoting-by-default.patch similarity index 100% rename from patches/0042-disable-media-router-media-remoting-by-default.patch rename to patches/0041-disable-media-router-media-remoting-by-default.patch diff --git a/patches/0043-disable-media-router-by-default.patch b/patches/0042-disable-media-router-by-default.patch similarity index 100% rename from patches/0043-disable-media-router-by-default.patch rename to patches/0042-disable-media-router-by-default.patch diff --git a/patches/0044-disable-offering-translations-by-default.patch b/patches/0043-disable-offering-translations-by-default.patch similarity index 100% rename from patches/0044-disable-offering-translations-by-default.patch rename to patches/0043-disable-offering-translations-by-default.patch diff --git a/patches/0045-disable-browser-sign-in-feature-by-default.patch b/patches/0044-disable-browser-sign-in-feature-by-default.patch similarity index 100% rename from patches/0045-disable-browser-sign-in-feature-by-default.patch rename to patches/0044-disable-browser-sign-in-feature-by-default.patch diff --git a/patches/0046-disable-safe-browsing-reporting-opt-in-by-default.patch b/patches/0045-disable-safe-browsing-reporting-opt-in-by-default.patch similarity index 100% rename from patches/0046-disable-safe-browsing-reporting-opt-in-by-default.patch rename to patches/0045-disable-safe-browsing-reporting-opt-in-by-default.patch diff --git a/patches/0047-disable-unused-safe-browsing-option-by-default.patch b/patches/0046-disable-unused-safe-browsing-option-by-default.patch similarity index 100% rename from patches/0047-disable-unused-safe-browsing-option-by-default.patch rename to patches/0046-disable-unused-safe-browsing-option-by-default.patch diff --git a/patches/0048-disable-media-DRM-preprovisioning-by-default.patch b/patches/0047-disable-media-DRM-preprovisioning-by-default.patch similarity index 100% rename from patches/0048-disable-media-DRM-preprovisioning-by-default.patch rename to patches/0047-disable-media-DRM-preprovisioning-by-default.patch diff --git a/patches/0049-disable-autofill-server-communication-by-default.patch b/patches/0048-disable-autofill-server-communication-by-default.patch similarity index 100% rename from patches/0049-disable-autofill-server-communication-by-default.patch rename to patches/0048-disable-autofill-server-communication-by-default.patch diff --git a/patches/0050-disable-component-updater-pings-by-default.patch b/patches/0049-disable-component-updater-pings-by-default.patch similarity index 100% rename from patches/0050-disable-component-updater-pings-by-default.patch rename to patches/0049-disable-component-updater-pings-by-default.patch diff --git a/patches/0051-disable-search-provider-logo.patch b/patches/0050-disable-search-provider-logo.patch similarity index 100% rename from patches/0051-disable-search-provider-logo.patch rename to patches/0050-disable-search-provider-logo.patch diff --git a/patches/0052-disable-trivial-subdomain-hiding.patch b/patches/0051-disable-trivial-subdomain-hiding.patch similarity index 100% rename from patches/0052-disable-trivial-subdomain-hiding.patch rename to patches/0051-disable-trivial-subdomain-hiding.patch diff --git a/patches/0053-disable-learn-more-link-in-incognito-new-tab.patch b/patches/0052-disable-learn-more-link-in-incognito-new-tab.patch similarity index 100% rename from patches/0053-disable-learn-more-link-in-incognito-new-tab.patch rename to patches/0052-disable-learn-more-link-in-incognito-new-tab.patch diff --git a/patches/0054-disable-Omaha-update-check-support.patch b/patches/0053-disable-Omaha-update-check-support.patch similarity index 100% rename from patches/0054-disable-Omaha-update-check-support.patch rename to patches/0053-disable-Omaha-update-check-support.patch diff --git a/patches/0055-disable-GaiaAuthFetcher-code-due-to-upstream-bug.patch b/patches/0054-disable-GaiaAuthFetcher-code-due-to-upstream-bug.patch similarity index 100% rename from patches/0055-disable-GaiaAuthFetcher-code-due-to-upstream-bug.patch rename to patches/0054-disable-GaiaAuthFetcher-code-due-to-upstream-bug.patch diff --git a/patches/0056-Disable-adding-a-signed-out-avatar-on-new-tab-pages-.patch b/patches/0055-Disable-adding-a-signed-out-avatar-on-new-tab-pages-.patch similarity index 100% rename from patches/0056-Disable-adding-a-signed-out-avatar-on-new-tab-pages-.patch rename to patches/0055-Disable-adding-a-signed-out-avatar-on-new-tab-pages-.patch diff --git a/patches/0057-Disable-newer-privacy-sandbox-features-by-default.patch b/patches/0056-Disable-newer-privacy-sandbox-features-by-default.patch similarity index 100% rename from patches/0057-Disable-newer-privacy-sandbox-features-by-default.patch rename to patches/0056-Disable-newer-privacy-sandbox-features-by-default.patch diff --git a/patches/0058-Disable-WebGPU-in-Android-by-default.patch b/patches/0057-Disable-WebGPU-in-Android-by-default.patch similarity index 100% rename from patches/0058-Disable-WebGPU-in-Android-by-default.patch rename to patches/0057-Disable-WebGPU-in-Android-by-default.patch diff --git a/patches/0059-Disable-top-toolbar-button-Translate-option-by-defau.patch b/patches/0058-Disable-top-toolbar-button-Translate-option-by-defau.patch similarity index 100% rename from patches/0059-Disable-top-toolbar-button-Translate-option-by-defau.patch rename to patches/0058-Disable-top-toolbar-button-Translate-option-by-defau.patch diff --git a/patches/0060-always-use-local-new-tab-page.patch b/patches/0059-always-use-local-new-tab-page.patch similarity index 100% rename from patches/0060-always-use-local-new-tab-page.patch rename to patches/0059-always-use-local-new-tab-page.patch diff --git a/patches/0061-mark-non-secure-origins-as-dangerous.patch b/patches/0060-mark-non-secure-origins-as-dangerous.patch similarity index 100% rename from patches/0061-mark-non-secure-origins-as-dangerous.patch rename to patches/0060-mark-non-secure-origins-as-dangerous.patch diff --git a/patches/0062-most-private-WebRTC-IP-handling-policy-by-default.patch b/patches/0061-most-private-WebRTC-IP-handling-policy-by-default.patch similarity index 100% rename from patches/0062-most-private-WebRTC-IP-handling-policy-by-default.patch rename to patches/0061-most-private-WebRTC-IP-handling-policy-by-default.patch diff --git a/patches/0063-stub-out-the-battery-status-API.patch b/patches/0062-stub-out-the-battery-status-API.patch similarity index 100% rename from patches/0063-stub-out-the-battery-status-API.patch rename to patches/0062-stub-out-the-battery-status-API.patch diff --git a/patches/0064-stop-ignoring-download-location-prompt-setting.patch b/patches/0063-stop-ignoring-download-location-prompt-setting.patch similarity index 100% rename from patches/0064-stop-ignoring-download-location-prompt-setting.patch rename to patches/0063-stop-ignoring-download-location-prompt-setting.patch diff --git a/patches/0065-show-download-prompt-again-by-default.patch b/patches/0064-show-download-prompt-again-by-default.patch similarity index 100% rename from patches/0065-show-download-prompt-again-by-default.patch rename to patches/0064-show-download-prompt-again-by-default.patch diff --git a/patches/0066-disable-trials-of-privacy-aware-analytics-advertisin.patch b/patches/0065-disable-trials-of-privacy-aware-analytics-advertisin.patch similarity index 100% rename from patches/0066-disable-trials-of-privacy-aware-analytics-advertisin.patch rename to patches/0065-disable-trials-of-privacy-aware-analytics-advertisin.patch diff --git a/patches/0067-disable-using-Play-services-fonts.patch b/patches/0066-disable-using-Play-services-fonts.patch similarity index 100% rename from patches/0067-disable-using-Play-services-fonts.patch rename to patches/0066-disable-using-Play-services-fonts.patch diff --git a/patches/0068-disable-appending-variations-header.patch b/patches/0067-disable-appending-variations-header.patch similarity index 100% rename from patches/0068-disable-appending-variations-header.patch rename to patches/0067-disable-appending-variations-header.patch diff --git a/patches/0069-Disable-detailed-language-settings-by-default.patch b/patches/0068-Disable-detailed-language-settings-by-default.patch similarity index 100% rename from patches/0069-Disable-detailed-language-settings-by-default.patch rename to patches/0068-Disable-detailed-language-settings-by-default.patch diff --git a/patches/0070-disable-fetching-optimization-guides-by-default.patch b/patches/0069-disable-fetching-optimization-guides-by-default.patch similarity index 100% rename from patches/0070-disable-fetching-optimization-guides-by-default.patch rename to patches/0069-disable-fetching-optimization-guides-by-default.patch diff --git a/patches/0071-Disable-tab-group-sync-settings-UI-by-default.patch b/patches/0070-Disable-tab-group-sync-settings-UI-by-default.patch similarity index 100% rename from patches/0071-Disable-tab-group-sync-settings-UI-by-default.patch rename to patches/0070-Disable-tab-group-sync-settings-UI-by-default.patch diff --git a/patches/0072-disable-fetching-optimization-hints-by-default.patch b/patches/0071-disable-fetching-optimization-hints-by-default.patch similarity index 100% rename from patches/0072-disable-fetching-optimization-hints-by-default.patch rename to patches/0071-disable-fetching-optimization-hints-by-default.patch diff --git a/patches/0073-disable-more-optimization-guides-features-by-default.patch b/patches/0072-disable-more-optimization-guides-features-by-default.patch similarity index 100% rename from patches/0073-disable-more-optimization-guides-features-by-default.patch rename to patches/0072-disable-more-optimization-guides-features-by-default.patch diff --git a/patches/0074-disable-network-time-tracker-by-default.patch b/patches/0073-disable-network-time-tracker-by-default.patch similarity index 100% rename from patches/0074-disable-network-time-tracker-by-default.patch rename to patches/0073-disable-network-time-tracker-by-default.patch diff --git a/patches/0075-Disable-opening-PDF-in-the-app-by-default.patch b/patches/0074-Disable-opening-PDF-in-the-app-by-default.patch similarity index 100% rename from patches/0075-Disable-opening-PDF-in-the-app-by-default.patch rename to patches/0074-Disable-opening-PDF-in-the-app-by-default.patch diff --git a/patches/0076-set-default-search-engine-to-DuckDuckGo.patch b/patches/0075-set-default-search-engine-to-DuckDuckGo.patch similarity index 100% rename from patches/0076-set-default-search-engine-to-DuckDuckGo.patch rename to patches/0075-set-default-search-engine-to-DuckDuckGo.patch diff --git a/patches/0077-set-original-package-to-org.chromium.chrome.patch b/patches/0076-set-original-package-to-org.chromium.chrome.patch similarity index 100% rename from patches/0077-set-original-package-to-org.chromium.chrome.patch rename to patches/0076-set-original-package-to-org.chromium.chrome.patch diff --git a/patches/0078-Make-HTTPS-only-mode-the-default.patch b/patches/0077-Make-HTTPS-only-mode-the-default.patch similarity index 100% rename from patches/0078-Make-HTTPS-only-mode-the-default.patch rename to patches/0077-Make-HTTPS-only-mode-the-default.patch diff --git a/patches/0079-require-HTTPS-for-component-updates.patch b/patches/0078-require-HTTPS-for-component-updates.patch similarity index 100% rename from patches/0079-require-HTTPS-for-component-updates.patch rename to patches/0078-require-HTTPS-for-component-updates.patch diff --git a/patches/0080-use-vanadium.app-for-component-updates.patch b/patches/0079-use-vanadium.app-for-component-updates.patch similarity index 100% rename from patches/0080-use-vanadium.app-for-component-updates.patch rename to patches/0079-use-vanadium.app-for-component-updates.patch diff --git a/patches/0081-enable-memory-tagging-in-all-processes.patch b/patches/0080-enable-memory-tagging-in-all-processes.patch similarity index 100% rename from patches/0081-enable-memory-tagging-in-all-processes.patch rename to patches/0080-enable-memory-tagging-in-all-processes.patch diff --git a/patches/0082-enable-split-cache-by-default.patch b/patches/0081-enable-split-cache-by-default.patch similarity index 100% rename from patches/0082-enable-split-cache-by-default.patch rename to patches/0081-enable-split-cache-by-default.patch diff --git a/patches/0083-enable-partitioning-connections-by-default.patch b/patches/0082-enable-partitioning-connections-by-default.patch similarity index 100% rename from patches/0083-enable-partitioning-connections-by-default.patch rename to patches/0082-enable-partitioning-connections-by-default.patch diff --git a/patches/0084-enable-dubious-Do-Not-Track-feature-by-default.patch b/patches/0083-enable-dubious-Do-Not-Track-feature-by-default.patch similarity index 100% rename from patches/0084-enable-dubious-Do-Not-Track-feature-by-default.patch rename to patches/0083-enable-dubious-Do-Not-Track-feature-by-default.patch diff --git a/patches/0085-enable-strict-site-isolation-by-default-on-Android.patch b/patches/0084-enable-strict-site-isolation-by-default-on-Android.patch similarity index 100% rename from patches/0085-enable-strict-site-isolation-by-default-on-Android.patch rename to patches/0084-enable-strict-site-isolation-by-default-on-Android.patch diff --git a/patches/0086-Enable-strict-origin-isolation-by-default.patch b/patches/0085-Enable-strict-origin-isolation-by-default.patch similarity index 100% rename from patches/0086-Enable-strict-origin-isolation-by-default.patch rename to patches/0085-Enable-strict-origin-isolation-by-default.patch diff --git a/patches/0087-Enable-reduce-accept-language-header-by-default.patch b/patches/0086-Enable-reduce-accept-language-header-by-default.patch similarity index 100% rename from patches/0087-Enable-reduce-accept-language-header-by-default.patch rename to patches/0086-Enable-reduce-accept-language-header-by-default.patch diff --git a/patches/0088-use-Google-Chrome-branding-for-client-hints.patch b/patches/0087-use-Google-Chrome-branding-for-client-hints.patch similarity index 100% rename from patches/0088-use-Google-Chrome-branding-for-client-hints.patch rename to patches/0087-use-Google-Chrome-branding-for-client-hints.patch diff --git a/patches/0089-add-trichrome-browser-apk-targets.patch b/patches/0088-add-trichrome-browser-apk-targets.patch similarity index 100% rename from patches/0089-add-trichrome-browser-apk-targets.patch rename to patches/0088-add-trichrome-browser-apk-targets.patch diff --git a/patches/0090-Remove-logo-from-chrome-version.patch b/patches/0089-Remove-logo-from-chrome-version.patch similarity index 100% rename from patches/0090-Remove-logo-from-chrome-version.patch rename to patches/0089-Remove-logo-from-chrome-version.patch diff --git a/patches/0091-redirect-settings-help-icon.patch b/patches/0090-redirect-settings-help-icon.patch similarity index 100% rename from patches/0091-redirect-settings-help-icon.patch rename to patches/0090-redirect-settings-help-icon.patch diff --git a/patches/0092-remove-Google-prefix-from-storage-settings-label.patch b/patches/0091-remove-Google-prefix-from-storage-settings-label.patch similarity index 100% rename from patches/0092-remove-Google-prefix-from-storage-settings-label.patch rename to patches/0091-remove-Google-prefix-from-storage-settings-label.patch diff --git a/patches/0093-remove-Help-feedback-menu-entry.patch b/patches/0092-remove-Help-feedback-menu-entry.patch similarity index 100% rename from patches/0093-remove-Help-feedback-menu-entry.patch rename to patches/0092-remove-Help-feedback-menu-entry.patch diff --git a/patches/0094-update-trichrome_library_apk-expectation-file.patch b/patches/0093-update-trichrome_library_apk-expectation-file.patch similarity index 100% rename from patches/0094-update-trichrome_library_apk-expectation-file.patch rename to patches/0093-update-trichrome_library_apk-expectation-file.patch diff --git a/patches/0095-bugfix-add-missing-null-check-for-updating-preferenc.patch b/patches/0094-bugfix-add-missing-null-check-for-updating-preferenc.patch similarity index 100% rename from patches/0095-bugfix-add-missing-null-check-for-updating-preferenc.patch rename to patches/0094-bugfix-add-missing-null-check-for-updating-preferenc.patch diff --git a/patches/0096-Extension-of-build-system-for-java-files-in-base-lay.patch b/patches/0095-Extension-of-build-system-for-java-files-in-base-lay.patch similarity index 100% rename from patches/0096-Extension-of-build-system-for-java-files-in-base-lay.patch rename to patches/0095-Extension-of-build-system-for-java-files-in-base-lay.patch diff --git a/patches/0097-Utility-class-for-adding-shared-preference-keys.patch b/patches/0096-Utility-class-for-adding-shared-preference-keys.patch similarity index 100% rename from patches/0097-Utility-class-for-adding-shared-preference-keys.patch rename to patches/0096-Utility-class-for-adding-shared-preference-keys.patch diff --git a/patches/0098-Helper-class-for-modifying-preferences.patch b/patches/0097-Helper-class-for-modifying-preferences.patch similarity index 100% rename from patches/0098-Helper-class-for-modifying-preferences.patch rename to patches/0097-Helper-class-for-modifying-preferences.patch diff --git a/patches/0099-Consolidate-downstream-changes-in-dependencies-sourc.patch b/patches/0098-Consolidate-downstream-changes-in-dependencies-sourc.patch similarity index 100% rename from patches/0099-Consolidate-downstream-changes-in-dependencies-sourc.patch rename to patches/0098-Consolidate-downstream-changes-in-dependencies-sourc.patch diff --git a/patches/0100-Consolidate-downstream-strings-in-a-separate-file-fo.patch b/patches/0099-Consolidate-downstream-strings-in-a-separate-file-fo.patch similarity index 100% rename from patches/0100-Consolidate-downstream-strings-in-a-separate-file-fo.patch rename to patches/0099-Consolidate-downstream-strings-in-a-separate-file-fo.patch diff --git a/patches/0101-Utility-class-for-modifying-preferences-at-Privacy-s.patch b/patches/0100-Utility-class-for-modifying-preferences-at-Privacy-s.patch similarity index 100% rename from patches/0101-Utility-class-for-modifying-preferences-at-Privacy-s.patch rename to patches/0100-Utility-class-for-modifying-preferences-at-Privacy-s.patch diff --git a/patches/0102-Remove-not-applicable-additional-terms-of-services.patch b/patches/0101-Remove-not-applicable-additional-terms-of-services.patch similarity index 100% rename from patches/0102-Remove-not-applicable-additional-terms-of-services.patch rename to patches/0101-Remove-not-applicable-additional-terms-of-services.patch diff --git a/patches/0103-remove-Google-terms-of-use-and-privacy-policy.patch b/patches/0102-remove-Google-terms-of-use-and-privacy-policy.patch similarity index 100% rename from patches/0103-remove-Google-terms-of-use-and-privacy-policy.patch rename to patches/0102-remove-Google-terms-of-use-and-privacy-policy.patch diff --git a/patches/0104-Make-PrivacySettings-preference-keys-declaration-pac.patch b/patches/0103-Make-PrivacySettings-preference-keys-declaration-pac.patch similarity index 100% rename from patches/0104-Make-PrivacySettings-preference-keys-declaration-pac.patch rename to patches/0103-Make-PrivacySettings-preference-keys-declaration-pac.patch diff --git a/patches/0105-remove-unwanted-sync-and-services-link.patch b/patches/0104-remove-unwanted-sync-and-services-link.patch similarity index 100% rename from patches/0105-remove-unwanted-sync-and-services-link.patch rename to patches/0104-remove-unwanted-sync-and-services-link.patch diff --git a/patches/0106-remove-safety-check-menu.patch b/patches/0105-remove-safety-check-menu.patch similarity index 100% rename from patches/0106-remove-safety-check-menu.patch rename to patches/0105-remove-safety-check-menu.patch diff --git a/patches/0107-remove-unwanted-account-and-services-section.patch b/patches/0106-remove-unwanted-account-and-services-section.patch similarity index 100% rename from patches/0107-remove-unwanted-account-and-services-section.patch rename to patches/0106-remove-unwanted-account-and-services-section.patch diff --git a/patches/0108-remove-translate-offer-preference.patch b/patches/0107-remove-translate-offer-preference.patch similarity index 100% rename from patches/0108-remove-translate-offer-preference.patch rename to patches/0107-remove-translate-offer-preference.patch diff --git a/patches/0109-Hide-Sign-In-preference-when-disallowed.patch b/patches/0108-Hide-Sign-In-preference-when-disallowed.patch similarity index 100% rename from patches/0109-Hide-Sign-In-preference-when-disallowed.patch rename to patches/0108-Hide-Sign-In-preference-when-disallowed.patch diff --git a/patches/0110-Hide-currently-no-op-preload-settings.patch b/patches/0109-Hide-currently-no-op-preload-settings.patch similarity index 100% rename from patches/0110-Hide-currently-no-op-preload-settings.patch rename to patches/0109-Hide-currently-no-op-preload-settings.patch diff --git a/patches/0111-Remove-privacy-trials-preference-UI.patch b/patches/0110-Remove-privacy-trials-preference-UI.patch similarity index 100% rename from patches/0111-Remove-privacy-trials-preference-UI.patch rename to patches/0110-Remove-privacy-trials-preference-UI.patch diff --git a/patches/0112-Remove-privacy-guides-preference-UI.patch b/patches/0111-Remove-privacy-guides-preference-UI.patch similarity index 100% rename from patches/0112-Remove-privacy-guides-preference-UI.patch rename to patches/0111-Remove-privacy-guides-preference-UI.patch diff --git a/patches/0113-Move-search-suggestions-back-to-privacy-section.patch b/patches/0112-Move-search-suggestions-back-to-privacy-section.patch similarity index 100% rename from patches/0113-Move-search-suggestions-back-to-privacy-section.patch rename to patches/0112-Move-search-suggestions-back-to-privacy-section.patch diff --git a/patches/0114-Toggle-for-closing-tabs-on-exit.patch b/patches/0113-Toggle-for-closing-tabs-on-exit.patch similarity index 100% rename from patches/0114-Toggle-for-closing-tabs-on-exit.patch rename to patches/0113-Toggle-for-closing-tabs-on-exit.patch diff --git a/patches/0115-Toggle-for-opening-external-links-in-incognito-tabs.patch b/patches/0114-Toggle-for-opening-external-links-in-incognito-tabs.patch similarity index 100% rename from patches/0115-Toggle-for-opening-external-links-in-incognito-tabs.patch rename to patches/0114-Toggle-for-opening-external-links-in-incognito-tabs.patch diff --git a/patches/0116-Handle-more-web-search-intents-in-browser.patch b/patches/0115-Handle-more-web-search-intents-in-browser.patch similarity index 100% rename from patches/0116-Handle-more-web-search-intents-in-browser.patch rename to patches/0115-Handle-more-web-search-intents-in-browser.patch diff --git a/patches/0117-Support-opening-external-web-search-in-incognito.patch b/patches/0116-Support-opening-external-web-search-in-incognito.patch similarity index 100% rename from patches/0117-Support-opening-external-web-search-in-incognito.patch rename to patches/0116-Support-opening-external-web-search-in-incognito.patch diff --git a/patches/0118-Apply-toggle-for-opening-links-in-incognito-for-cust.patch b/patches/0117-Apply-toggle-for-opening-links-in-incognito-for-cust.patch similarity index 100% rename from patches/0118-Apply-toggle-for-opening-links-in-incognito-for-cust.patch rename to patches/0117-Apply-toggle-for-opening-links-in-incognito-for-cust.patch diff --git a/patches/0119-Apply-toggle-for-opening-links-in-incognito-for-sear.patch b/patches/0118-Apply-toggle-for-opening-links-in-incognito-for-sear.patch similarity index 100% rename from patches/0119-Apply-toggle-for-opening-links-in-incognito-for-sear.patch rename to patches/0118-Apply-toggle-for-opening-links-in-incognito-for-sear.patch diff --git a/patches/0120-Apply-toggle-for-opening-links-in-incognito-for-shar.patch b/patches/0119-Apply-toggle-for-opening-links-in-incognito-for-shar.patch similarity index 100% rename from patches/0120-Apply-toggle-for-opening-links-in-incognito-for-shar.patch rename to patches/0119-Apply-toggle-for-opening-links-in-incognito-for-shar.patch diff --git a/patches/0121-Implement-UI-for-WebRTC-toggle.patch b/patches/0120-Implement-UI-for-WebRTC-toggle.patch similarity index 100% rename from patches/0121-Implement-UI-for-WebRTC-toggle.patch rename to patches/0120-Implement-UI-for-WebRTC-toggle.patch diff --git a/patches/0122-make-cross-origin-referrer-behavior-configurable.patch b/patches/0121-make-cross-origin-referrer-behavior-configurable.patch similarity index 100% rename from patches/0122-make-cross-origin-referrer-behavior-configurable.patch rename to patches/0121-make-cross-origin-referrer-behavior-configurable.patch diff --git a/patches/0123-Derive-high-entropy-client-hints-with-reduced-user-a.patch b/patches/0122-Derive-high-entropy-client-hints-with-reduced-user-a.patch similarity index 100% rename from patches/0123-Derive-high-entropy-client-hints-with-reduced-user-a.patch rename to patches/0122-Derive-high-entropy-client-hints-with-reduced-user-a.patch diff --git a/patches/0124-Add-missing-null-check-for-password-manager-autofill.patch b/patches/0123-Add-missing-null-check-for-password-manager-autofill.patch similarity index 100% rename from patches/0124-Add-missing-null-check-for-password-manager-autofill.patch rename to patches/0123-Add-missing-null-check-for-password-manager-autofill.patch diff --git a/patches/0125-Drop-workaround-with-android-autofill-in-compatibili.patch b/patches/0124-Drop-workaround-with-android-autofill-in-compatibili.patch similarity index 100% rename from patches/0125-Drop-workaround-with-android-autofill-in-compatibili.patch rename to patches/0124-Drop-workaround-with-android-autofill-in-compatibili.patch diff --git a/patches/0126-Enable-usage-of-Android-Autofill-by-default.patch b/patches/0125-Enable-usage-of-Android-Autofill-by-default.patch similarity index 100% rename from patches/0126-Enable-usage-of-Android-Autofill-by-default.patch rename to patches/0125-Enable-usage-of-Android-Autofill-by-default.patch diff --git a/patches/0127-Disable-Play-services-dependent-password-manager-pre.patch b/patches/0126-Disable-Play-services-dependent-password-manager-pre.patch similarity index 100% rename from patches/0127-Disable-Play-services-dependent-password-manager-pre.patch rename to patches/0126-Disable-Play-services-dependent-password-manager-pre.patch diff --git a/patches/0128-Use-local-list-of-supported-languages-for-Language-s.patch b/patches/0127-Use-local-list-of-supported-languages-for-Language-s.patch similarity index 100% rename from patches/0128-Use-local-list-of-supported-languages-for-Language-s.patch rename to patches/0127-Use-local-list-of-supported-languages-for-Language-s.patch diff --git a/patches/0129-Add-an-easily-extensible-way-to-reference-targets-ea.patch b/patches/0128-Add-an-easily-extensible-way-to-reference-targets-ea.patch similarity index 100% rename from patches/0129-Add-an-easily-extensible-way-to-reference-targets-ea.patch rename to patches/0128-Add-an-easily-extensible-way-to-reference-targets-ea.patch diff --git a/patches/0130-Include-a-java-port-of-atomic-file-and-scoped-file-d.patch b/patches/0129-Include-a-java-port-of-atomic-file-and-scoped-file-d.patch similarity index 100% rename from patches/0130-Include-a-java-port-of-atomic-file-and-scoped-file-d.patch rename to patches/0129-Include-a-java-port-of-atomic-file-and-scoped-file-d.patch diff --git a/patches/0131-Add-a-new-config-like-apk-target-for-building.patch b/patches/0130-Add-a-new-config-like-apk-target-for-building.patch similarity index 100% rename from patches/0131-Add-a-new-config-like-apk-target-for-building.patch rename to patches/0130-Add-a-new-config-like-apk-target-for-building.patch diff --git a/patches/0132-config-Directly-reference-config-apk-build-target.patch b/patches/0131-config-Directly-reference-config-apk-build-target.patch similarity index 100% rename from patches/0132-config-Directly-reference-config-apk-build-target.patch rename to patches/0131-config-Directly-reference-config-apk-build-target.patch diff --git a/patches/0133-config-Generate-ConfigInfo-from-config-apk.patch b/patches/0132-config-Generate-ConfigInfo-from-config-apk.patch similarity index 100% rename from patches/0133-config-Generate-ConfigInfo-from-config-apk.patch rename to patches/0132-config-Generate-ConfigInfo-from-config-apk.patch diff --git a/patches/0134-config-Provide-targets-for-linking-and-inclusion-of-.patch b/patches/0133-config-Provide-targets-for-linking-and-inclusion-of-.patch similarity index 100% rename from patches/0134-config-Provide-targets-for-linking-and-inclusion-of-.patch rename to patches/0133-config-Provide-targets-for-linking-and-inclusion-of-.patch diff --git a/patches/0135-config-Include-the-ConfigInfo-class-for-Monochrome-a.patch b/patches/0134-config-Include-the-ConfigInfo-class-for-Monochrome-a.patch similarity index 100% rename from patches/0135-config-Include-the-ConfigInfo-class-for-Monochrome-a.patch rename to patches/0134-config-Include-the-ConfigInfo-class-for-Monochrome-a.patch diff --git a/patches/0136-config-Include-the-ConfigInfo-class-for-WebView-targ.patch b/patches/0135-config-Include-the-ConfigInfo-class-for-WebView-targ.patch similarity index 100% rename from patches/0136-config-Include-the-ConfigInfo-class-for-WebView-targ.patch rename to patches/0135-config-Include-the-ConfigInfo-class-for-WebView-targ.patch diff --git a/patches/0137-config-test-Add-ConfigInfo-on-necessary-test-targets.patch b/patches/0136-config-test-Add-ConfigInfo-on-necessary-test-targets.patch similarity index 100% rename from patches/0137-config-test-Add-ConfigInfo-on-necessary-test-targets.patch rename to patches/0136-config-test-Add-ConfigInfo-on-necessary-test-targets.patch diff --git a/patches/0138-config-Add-proto-definitions-for-feature-flags-and-o.patch b/patches/0137-config-Add-proto-definitions-for-feature-flags-and-o.patch similarity index 100% rename from patches/0138-config-Add-proto-definitions-for-feature-flags-and-o.patch rename to patches/0137-config-Add-proto-definitions-for-feature-flags-and-o.patch diff --git a/patches/0139-config-Add-protobuf-generator-parser-for-config-apk-.patch b/patches/0138-config-Add-protobuf-generator-parser-for-config-apk-.patch similarity index 100% rename from patches/0139-config-Add-protobuf-generator-parser-for-config-apk-.patch rename to patches/0138-config-Add-protobuf-generator-parser-for-config-apk-.patch diff --git a/patches/0140-config-generator-Initial-configuration-for-config-ap.patch b/patches/0139-config-generator-Initial-configuration-for-config-ap.patch similarity index 100% rename from patches/0140-config-generator-Initial-configuration-for-config-ap.patch rename to patches/0139-config-generator-Initial-configuration-for-config-ap.patch diff --git a/patches/0141-config-parser-Add-config-parser-for-browser-and-webv.patch b/patches/0140-config-parser-Add-config-parser-for-browser-and-webv.patch similarity index 99% rename from patches/0141-config-parser-Add-config-parser-for-browser-and-webv.patch rename to patches/0140-config-parser-Add-config-parser-for-browser-and-webv.patch index 79d29c772..ac18ef32a 100644 --- a/patches/0141-config-parser-Add-config-parser-for-browser-and-webv.patch +++ b/patches/0140-config-parser-Add-config-parser-for-browser-and-webv.patch @@ -14,8 +14,8 @@ Changes since: --- vanadium/android_config/proto/BUILD.gn | 11 + .../config/VanadiumConfConditionals.java | 42 ++ - .../vanadium/config/VanadiumConfParser.java | 487 ++++++++++++++++++ - 3 files changed, 540 insertions(+) + .../vanadium/config/VanadiumConfParser.java | 486 ++++++++++++++++++ + 3 files changed, 539 insertions(+) create mode 100644 vanadium/android_config/proto/java/src/app/vanadium/config/VanadiumConfConditionals.java create mode 100644 vanadium/android_config/proto/java/src/app/vanadium/config/VanadiumConfParser.java @@ -88,10 +88,10 @@ index 0000000000000..39d8de8b26056 +} diff --git a/vanadium/android_config/proto/java/src/app/vanadium/config/VanadiumConfParser.java b/vanadium/android_config/proto/java/src/app/vanadium/config/VanadiumConfParser.java new file mode 100644 -index 0000000000000..bf72c17a87bbc +index 0000000000000..91897eb883c71 --- /dev/null +++ b/vanadium/android_config/proto/java/src/app/vanadium/config/VanadiumConfParser.java -@@ -0,0 +1,487 @@ +@@ -0,0 +1,486 @@ +package app.vanadium.config; + +import android.content.Context; @@ -473,7 +473,6 @@ index 0000000000000..bf72c17a87bbc + } + + { -+ boolean hasOtherComponentApks = false; + final SparseArray pendingFlags = new SparseArray<>(); + final SparseArray pendingComponents = new SparseArray<>(); + diff --git a/patches/0142-filter-lists-Helper-script-for-fetching-content-filt.patch b/patches/0141-filter-lists-Helper-script-for-fetching-content-filt.patch similarity index 100% rename from patches/0142-filter-lists-Helper-script-for-fetching-content-filt.patch rename to patches/0141-filter-lists-Helper-script-for-fetching-content-filt.patch diff --git a/patches/0143-config-add-new-needed-deps-to-fetch-filter-lists.patch b/patches/0142-config-add-new-needed-deps-to-fetch-filter-lists.patch similarity index 100% rename from patches/0143-config-add-new-needed-deps-to-fetch-filter-lists.patch rename to patches/0142-config-add-new-needed-deps-to-fetch-filter-lists.patch diff --git a/patches/0144-config-Build-target-for-android-assets-including-the.patch b/patches/0143-config-Build-target-for-android-assets-including-the.patch similarity index 100% rename from patches/0144-config-Build-target-for-android-assets-including-the.patch rename to patches/0143-config-Build-target-for-android-assets-including-the.patch diff --git a/patches/0145-config-Build-target-for-android-assets-for-config-fi.patch b/patches/0144-config-Build-target-for-android-assets-for-config-fi.patch similarity index 100% rename from patches/0145-config-Build-target-for-android-assets-for-config-fi.patch rename to patches/0144-config-Build-target-for-android-assets-for-config-fi.patch diff --git a/patches/0146-config-Add-the-needed-component-and-protobuf-file-fo.patch b/patches/0145-config-Add-the-needed-component-and-protobuf-file-fo.patch similarity index 100% rename from patches/0146-config-Add-the-needed-component-and-protobuf-file-fo.patch rename to patches/0145-config-Add-the-needed-component-and-protobuf-file-fo.patch diff --git a/patches/0147-Add-support-for-upstream-file-based-parsing-of-unind.patch b/patches/0146-Add-support-for-upstream-file-based-parsing-of-unind.patch similarity index 99% rename from patches/0147-Add-support-for-upstream-file-based-parsing-of-unind.patch rename to patches/0146-Add-support-for-upstream-file-based-parsing-of-unind.patch index a1aa12e8e..162446dd9 100644 --- a/patches/0147-Add-support-for-upstream-file-based-parsing-of-unind.patch +++ b/patches/0146-Add-support-for-upstream-file-based-parsing-of-unind.patch @@ -116,7 +116,7 @@ index 0000000000000..a42d38734d266 + } +} diff --git a/vanadium/android_config/proto/java/src/app/vanadium/config/VanadiumConfParser.java b/vanadium/android_config/proto/java/src/app/vanadium/config/VanadiumConfParser.java -index bf72c17a87bbc..b4bc1463030bf 100644 +index 91897eb883c71..5d7d00cefd311 100644 --- a/vanadium/android_config/proto/java/src/app/vanadium/config/VanadiumConfParser.java +++ b/vanadium/android_config/proto/java/src/app/vanadium/config/VanadiumConfParser.java @@ -317,6 +317,9 @@ public final class VanadiumConfParser { diff --git a/patches/0148-Add-hooks-for-applying-flags-features-at-runtime.patch b/patches/0147-Add-hooks-for-applying-flags-features-at-runtime.patch similarity index 100% rename from patches/0148-Add-hooks-for-applying-flags-features-at-runtime.patch rename to patches/0147-Add-hooks-for-applying-flags-features-at-runtime.patch diff --git a/patches/0149-Add-hooks-for-LibraryLoader-on-early-initialization-.patch b/patches/0148-Add-hooks-for-LibraryLoader-on-early-initialization-.patch similarity index 100% rename from patches/0149-Add-hooks-for-LibraryLoader-on-early-initialization-.patch rename to patches/0148-Add-hooks-for-LibraryLoader-on-early-initialization-.patch diff --git a/patches/0150-Add-hooks-for-initializing-contents-of-VanadiumConfi.patch b/patches/0149-Add-hooks-for-initializing-contents-of-VanadiumConfi.patch similarity index 92% rename from patches/0150-Add-hooks-for-initializing-contents-of-VanadiumConfi.patch rename to patches/0149-Add-hooks-for-initializing-contents-of-VanadiumConfi.patch index 9fed9a576..18fab79cd 100644 --- a/patches/0150-Add-hooks-for-initializing-contents-of-VanadiumConfi.patch +++ b/patches/0149-Add-hooks-for-initializing-contents-of-VanadiumConfi.patch @@ -4,19 +4,19 @@ Date: Thu, 14 Dec 2023 16:54:04 +0000 Subject: [PATCH] Add hooks for initializing contents of VanadiumConfig app --- - .../base/config/VanadiumConfigBridge.java | 102 ++++++++++++++++++ + .../base/config/VanadiumConfigBridge.java | 114 ++++++++++++++++++ .../library_loader/LibraryLoaderHooks.java | 5 + base/base_library_loader_java_ext_deps.gni | 1 + base/base_library_loader_java_ext_sources.gni | 1 + - 4 files changed, 109 insertions(+) + 4 files changed, 121 insertions(+) create mode 100644 base/android/java/src/org/chromium/base/config/VanadiumConfigBridge.java diff --git a/base/android/java/src/org/chromium/base/config/VanadiumConfigBridge.java b/base/android/java/src/org/chromium/base/config/VanadiumConfigBridge.java new file mode 100644 -index 0000000000000..f214548ae9e57 +index 0000000000000..8043d64761a01 --- /dev/null +++ b/base/android/java/src/org/chromium/base/config/VanadiumConfigBridge.java -@@ -0,0 +1,102 @@ +@@ -0,0 +1,114 @@ +package org.chromium.base.config; + +import static org.chromium.base.command_line.VanadiumCommandLineUtils.getCommaDelimitedSwitchValue; @@ -57,6 +57,18 @@ index 0000000000000..f214548ae9e57 + } + + public static void applyFlagFromConfigs(Context appCtx, @LibraryProcessType int libraryProcessType) { ++ switch (libraryProcessType) { ++ case LibraryProcessType.PROCESS_BROWSER: ++ case LibraryProcessType.PROCESS_WEBVIEW: ++ break; ++ case LibraryProcessType.PROCESS_CHILD: ++ case LibraryProcessType.PROCESS_WEBVIEW_NONEMBEDDED: ++ case LibraryProcessType.PROCESS_WEBVIEW_CHILD: ++ return; ++ default: ++ throw new IllegalStateException(); ++ } ++ + if (!VanadiumConfParser.isInitialized()) { + Log.e(TAG, "Config app not parsed nor initialized, returning early"); + return; diff --git a/patches/0151-Extension-of-build-system-at-android-specific-subres.patch b/patches/0150-Extension-of-build-system-at-android-specific-subres.patch similarity index 100% rename from patches/0151-Extension-of-build-system-at-android-specific-subres.patch rename to patches/0150-Extension-of-build-system-at-android-specific-subres.patch diff --git a/patches/0152-Expose-fetching-config-state-for-content-filtering-t.patch b/patches/0151-Expose-fetching-config-state-for-content-filtering-t.patch similarity index 100% rename from patches/0152-Expose-fetching-config-state-for-content-filtering-t.patch rename to patches/0151-Expose-fetching-config-state-for-content-filtering-t.patch diff --git a/patches/0153-Use-ruleset-from-config-apk-whenever-it-s-present.patch b/patches/0152-Use-ruleset-from-config-apk-whenever-it-s-present.patch similarity index 100% rename from patches/0153-Use-ruleset-from-config-apk-whenever-it-s-present.patch rename to patches/0152-Use-ruleset-from-config-apk-whenever-it-s-present.patch diff --git a/patches/0154-content-filtering-Add-update-handling-of-subresource.patch b/patches/0153-content-filtering-Add-update-handling-of-subresource.patch similarity index 100% rename from patches/0154-content-filtering-Add-update-handling-of-subresource.patch rename to patches/0153-content-filtering-Add-update-handling-of-subresource.patch diff --git a/patches/0163-Add-support-for-calling-added-APIs-from-custom-OS.patch b/patches/0154-Add-support-for-calling-added-APIs-from-custom-OS.patch similarity index 100% rename from patches/0163-Add-support-for-calling-added-APIs-from-custom-OS.patch rename to patches/0154-Add-support-for-calling-added-APIs-from-custom-OS.patch diff --git a/patches/0183-revert-upstream-Revert-clearing-javascript-JIT-site-.patch b/patches/0155-revert-upstream-Revert-clearing-javascript-JIT-site-.patch similarity index 100% rename from patches/0183-revert-upstream-Revert-clearing-javascript-JIT-site-.patch rename to patches/0155-revert-upstream-Revert-clearing-javascript-JIT-site-.patch diff --git a/patches/0177-Always-start-child-processes-in-jitless-mode-when-ex.patch b/patches/0156-Always-start-child-processes-in-jitless-mode-when-ex.patch similarity index 100% rename from patches/0177-Always-start-child-processes-in-jitless-mode-when-ex.patch rename to patches/0156-Always-start-child-processes-in-jitless-mode-when-ex.patch diff --git a/patches/0215-enable-wasm-in-interprter-mode-when-per-site-JIT-is-.patch b/patches/0157-enable-wasm-in-interprter-mode-when-per-site-JIT-is-.patch similarity index 100% rename from patches/0215-enable-wasm-in-interprter-mode-when-per-site-JIT-is-.patch rename to patches/0157-enable-wasm-in-interprter-mode-when-per-site-JIT-is-.patch diff --git a/patches/0216-enable-wasm-in-interprter-mode-when-OS-JIT-is-restri.patch b/patches/0158-enable-wasm-in-interprter-mode-when-OS-JIT-is-restri.patch similarity index 100% rename from patches/0216-enable-wasm-in-interprter-mode-when-OS-JIT-is-restri.patch rename to patches/0158-enable-wasm-in-interprter-mode-when-OS-JIT-is-restri.patch diff --git a/patches/0023-Implement-UI-for-JIT-site-settings.patch b/patches/0159-Implement-UI-for-JIT-site-settings.patch similarity index 87% rename from patches/0023-Implement-UI-for-JIT-site-settings.patch rename to patches/0159-Implement-UI-for-JIT-site-settings.patch index f61b9b202..b6b69b6e1 100644 --- a/patches/0023-Implement-UI-for-JIT-site-settings.patch +++ b/patches/0159-Implement-UI-for-JIT-site-settings.patch @@ -5,8 +5,8 @@ Subject: [PATCH] Implement UI for JIT site settings --- .../JavascriptJitSettingsHooks.java | 171 ++++++++++++++++++ - .../site_settings/SiteSettingsCategory.java | 15 +- - .../SiteSettingsHooksRegistry.java | 7 + + .../site_settings/SiteSettingsCategory.java | 10 +- + .../SiteSettingsHooksRegistry.java | 6 + ...site_settings_android_java_ext_sources.gni | 1 + .../android/website_preference_bridge.cc | 1 + .../strings/android/site_settings_ext.grdp | 22 +++ @@ -15,7 +15,7 @@ Subject: [PATCH] Implement UI for JIT site settings components/page_info/page_info.cc | 6 + components/page_info/page_info_ui.cc | 2 + components/site_settings_strings_ext.grdp | 6 + - 11 files changed, 234 insertions(+), 2 deletions(-) + 11 files changed, 228 insertions(+), 2 deletions(-) create mode 100644 components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/JavascriptJitSettingsHooks.java diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/JavascriptJitSettingsHooks.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/JavascriptJitSettingsHooks.java @@ -196,7 +196,7 @@ index 0000000000000..6e7c250268f65 + } +} diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettingsCategory.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettingsCategory.java -index b51d43d085ab4..05b8ef43302e4 100644 +index c5c26f7c7049c..ddfea3fd63f61 100644 --- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettingsCategory.java +++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettingsCategory.java @@ -86,6 +86,10 @@ public class SiteSettingsCategory { @@ -210,58 +210,32 @@ index b51d43d085ab4..05b8ef43302e4 100644 Type.NUM_ENTRIES, // Three lines of placeholder comment to minimize cascading conflicts. // Three lines of placeholder comment to minimize cascading conflicts. -@@ -138,6 +142,10 @@ public class SiteSettingsCategory { - /** Number of handled categories used for calculating array sizes. */ - int NUM_ENTRIES_CHROMIUM = 39; - -+ // Three lines of placeholder comment to minimize cascading conflicts. -+ // Three lines of placeholder comment to minimize cascading conflicts. -+ // Three lines of placeholder comment to minimize cascading conflicts. -+ int JAVASCRIPT_JIT = SiteSettingsCategory.Type.NUM_ENTRIES_CHROMIUM + SiteSettingsCategory.ExtType.JAVASCRIPT_JIT; +@@ -141,7 +145,11 @@ public class SiteSettingsCategory { // Three lines of placeholder comment to minimize cascading conflicts. // Three lines of placeholder comment to minimize cascading conflicts. // Three lines of placeholder comment to minimize cascading conflicts. -@@ -148,13 +156,18 @@ public class SiteSettingsCategory { - } - - @IntDef({ -+ ExtType.JAVASCRIPT_JIT, - ExtType.NUM_ENTRIES, - }) - @interface ExtType { - // Three lines of placeholder comment to minimize cascading conflicts. - // Three lines of placeholder comment to minimize cascading conflicts. - // Three lines of placeholder comment to minimize cascading conflicts. -- int NUM_ENTRIES = 0; -+ int JAVASCRIPT_JIT = 0; +- int NUM_ENTRIES_EXT = 0; ++ int JAVASCRIPT_JIT = NUM_ENTRIES_CHROMIUM + 0; + // Three lines of placeholder comment to minimize cascading conflicts. + // Three lines of placeholder comment to minimize cascading conflicts. + // Three lines of placeholder comment to minimize cascading conflicts. -+ int NUM_ENTRIES = 1; ++ int NUM_ENTRIES_EXT = 1; // Three lines of placeholder comment to minimize cascading conflicts. // Three lines of placeholder comment to minimize cascading conflicts. // Three lines of placeholder comment to minimize cascading conflicts. diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettingsHooksRegistry.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettingsHooksRegistry.java -index e35725146caeb..9639018faf7ca 100644 +index 113bdb933cd4b..b5b24f05ef0be 100644 --- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettingsHooksRegistry.java +++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettingsHooksRegistry.java -@@ -13,6 +13,7 @@ public final class SiteSettingsHooksRegistry { - public static int getExtTypeFromCategoryType( +@@ -14,6 +14,7 @@ public final class SiteSettingsHooksRegistry { + public static SingleCategorySettingsHooks getSingleCategorySettingsHooks( @SiteSettingsCategory.Type int categoryType) { return switch (categoryType) { -+ case SiteSettingsCategory.Type.JAVASCRIPT_JIT -> SiteSettingsCategory.ExtType.JAVASCRIPT_JIT; - default -> SiteSettingsCategory.ExtType.NUM_ENTRIES; - }; - } -@@ -23,6 +24,7 @@ public final class SiteSettingsHooksRegistry { - @SiteSettingsCategory.ExtType - int extType = getExtTypeFromCategoryType(categoryType); - return switch (extType) { -+ case SiteSettingsCategory.ExtType.JAVASCRIPT_JIT -> new JavascriptJitSettingsHooks.SingleCategorySettingsHooksImpl(); ++ case SiteSettingsCategory.Type.JAVASCRIPT_JIT -> new JavascriptJitSettingsHooks.SingleCategorySettingsHooksImpl(); default -> SingleCategorySettingsHooks.getDefaultInstance(); }; } -@@ -31,6 +33,7 @@ public final class SiteSettingsHooksRegistry { +@@ -22,6 +23,7 @@ public final class SiteSettingsHooksRegistry { public static SingleWebsiteSettingsHooks getSingleWebsiteSettingsHooks( @ContentSettingsType.EnumType int contentType) { return switch (contentType) { @@ -269,15 +243,15 @@ index e35725146caeb..9639018faf7ca 100644 default -> SingleWebsiteSettingsHooks.getDefaultInstance(); }; } -@@ -41,6 +44,7 @@ public final class SiteSettingsHooksRegistry { - @SiteSettingsCategory.ExtType - int extType = getExtTypeFromCategoryType(categoryType); - return switch (extType) { -+ case SiteSettingsCategory.ExtType.JAVASCRIPT_JIT -> new JavascriptJitSettingsHooks.CategoryHooksImpl(); +@@ -30,6 +32,7 @@ public final class SiteSettingsHooksRegistry { + public static SiteSettingsCategoryHooks getCategoryHooks( + @SiteSettingsCategory.Type int categoryType) { + return switch (categoryType) { ++ case SiteSettingsCategory.Type.JAVASCRIPT_JIT -> new JavascriptJitSettingsHooks.CategoryHooksImpl(); default -> SiteSettingsCategoryHooks.getDefaultInstance(); }; } -@@ -49,6 +53,7 @@ public final class SiteSettingsHooksRegistry { +@@ -38,6 +41,7 @@ public final class SiteSettingsHooksRegistry { public static SiteSettingsResourcesHooks getResourcesHooks( @ContentSettingsType.EnumType int contentType) { return switch (contentType) { @@ -285,15 +259,15 @@ index e35725146caeb..9639018faf7ca 100644 default -> SiteSettingsResourcesHooks.getDefaultInstance(); }; } -@@ -59,6 +64,7 @@ public final class SiteSettingsHooksRegistry { - @SiteSettingsCategory.ExtType - int extType = getExtTypeFromCategoryType(categoryType); - return switch (extType) { -+ case SiteSettingsCategory.ExtType.JAVASCRIPT_JIT -> new JavascriptJitSettingsHooks.SiteSettingsScreenHooksImpl(); +@@ -46,6 +50,7 @@ public final class SiteSettingsHooksRegistry { + public static SiteSettingsScreenHooks getSiteSettingsScreenHooks( + @SiteSettingsCategory.Type int categoryType) { + return switch (categoryType) { ++ case SiteSettingsCategory.Type.JAVASCRIPT_JIT -> new JavascriptJitSettingsHooks.SiteSettingsScreenHooksImpl(); default -> SiteSettingsScreenHooks.getDefaultInstance(); }; } -@@ -67,6 +73,7 @@ public final class SiteSettingsHooksRegistry { +@@ -54,6 +59,7 @@ public final class SiteSettingsHooksRegistry { public static WebsitePermissionsFetcherHooks getWebsitePermissionsFetcherHooks( @ContentSettingsType.EnumType int contentType) { return switch (contentType) { @@ -356,7 +330,7 @@ index 4f00e4661d3cf..3a51bad2da3a7 100644 + diff --git a/components/content_settings/core/browser/content_settings_registry.cc b/components/content_settings/core/browser/content_settings_registry.cc -index 22c06c3a0825f..73701662ea02a 100644 +index d0b10fda002da..625d38d8eee31 100644 --- a/components/content_settings/core/browser/content_settings_registry.cc +++ b/components/content_settings/core/browser/content_settings_registry.cc @@ -579,7 +579,7 @@ void ContentSettingsRegistry::Init() { diff --git a/patches/0155-Extension-of-build-system-for-static-library-deps-at.patch b/patches/0160-Extension-of-build-system-for-static-library-deps-at.patch similarity index 100% rename from patches/0155-Extension-of-build-system-for-static-library-deps-at.patch rename to patches/0160-Extension-of-build-system-for-static-library-deps-at.patch diff --git a/patches/0156-Update-subresource-filter-from-config-apk.patch b/patches/0161-Update-subresource-filter-from-config-apk.patch similarity index 100% rename from patches/0156-Update-subresource-filter-from-config-apk.patch rename to patches/0161-Update-subresource-filter-from-config-apk.patch diff --git a/patches/0157-Use-the-content-filtering-from-config-app-when-avail.patch b/patches/0162-Use-the-content-filtering-from-config-app-when-avail.patch similarity index 100% rename from patches/0157-Use-the-content-filtering-from-config-app-when-avail.patch rename to patches/0162-Use-the-content-filtering-from-config-app-when-avail.patch diff --git a/patches/0158-Add-VanadiumConfig-version-on-about-Vanadium-setting.patch b/patches/0163-Add-VanadiumConfig-version-on-about-Vanadium-setting.patch similarity index 100% rename from patches/0158-Add-VanadiumConfig-version-on-about-Vanadium-setting.patch rename to patches/0163-Add-VanadiumConfig-version-on-about-Vanadium-setting.patch diff --git a/patches/0159-don-t-show-subresource-filter-UI-for-site.patch b/patches/0164-don-t-show-subresource-filter-UI-for-site.patch similarity index 100% rename from patches/0159-don-t-show-subresource-filter-UI-for-site.patch rename to patches/0164-don-t-show-subresource-filter-UI-for-site.patch diff --git a/patches/0160-enable-subresource-filter-on-all-sites.patch b/patches/0165-enable-subresource-filter-on-all-sites.patch similarity index 100% rename from patches/0160-enable-subresource-filter-on-all-sites.patch rename to patches/0165-enable-subresource-filter-on-all-sites.patch diff --git a/patches/0161-Use-the-old-naming-convention-of-Ads-in-ads-site-set.patch b/patches/0166-Use-the-old-naming-convention-of-Ads-in-ads-site-set.patch similarity index 98% rename from patches/0161-Use-the-old-naming-convention-of-Ads-in-ads-site-set.patch rename to patches/0166-Use-the-old-naming-convention-of-Ads-in-ads-site-set.patch index 3b4906364..e5d596ac8 100644 --- a/patches/0161-Use-the-old-naming-convention-of-Ads-in-ads-site-set.patch +++ b/patches/0166-Use-the-old-naming-convention-of-Ads-in-ads-site-set.patch @@ -42,10 +42,10 @@ index 7558180af3f65..d07f11f4debee 100644 case ContentSettingsType.ANTI_ABUSE: return new ResourceItem( diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java -index 76a8468578198..7c8a9246315a7 100644 +index 8278042cfa409..9a4ec4a9f52e1 100644 --- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java +++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java -@@ -1259,10 +1259,8 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment +@@ -1261,10 +1261,8 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment && findPreference(assumeNonNull(getPreferenceKey(ContentSettingsType.ADS))) != null; diff --git a/patches/0162-Enable-CredentialManager-APIs-for-all-apps-supportin.patch b/patches/0167-Enable-CredentialManager-APIs-for-all-apps-supportin.patch similarity index 100% rename from patches/0162-Enable-CredentialManager-APIs-for-all-apps-supportin.patch rename to patches/0167-Enable-CredentialManager-APIs-for-all-apps-supportin.patch diff --git a/patches/0164-filter-lists-Update-script-to-also-include-saving-sh.patch b/patches/0168-filter-lists-Update-script-to-also-include-saving-sh.patch similarity index 100% rename from patches/0164-filter-lists-Update-script-to-also-include-saving-sh.patch rename to patches/0168-filter-lists-Update-script-to-also-include-saving-sh.patch diff --git a/patches/0165-Revert-Fixit-Update-Password-Manager-to-Google-Passw.patch b/patches/0169-Revert-Fixit-Update-Password-Manager-to-Google-Passw.patch similarity index 100% rename from patches/0165-Revert-Fixit-Update-Password-Manager-to-Google-Passw.patch rename to patches/0169-Revert-Fixit-Update-Password-Manager-to-Google-Passw.patch diff --git a/patches/0166-Match-skipping-compatibility-check-default-value-che.patch b/patches/0170-Match-skipping-compatibility-check-default-value-che.patch similarity index 100% rename from patches/0166-Match-skipping-compatibility-check-default-value-che.patch rename to patches/0170-Match-skipping-compatibility-check-default-value-che.patch diff --git a/patches/0167-Set-Toolbar-shortcut-default-to-new-tab-instead-of-a.patch b/patches/0171-Set-Toolbar-shortcut-default-to-new-tab-instead-of-a.patch similarity index 100% rename from patches/0167-Set-Toolbar-shortcut-default-to-new-tab-instead-of-a.patch rename to patches/0171-Set-Toolbar-shortcut-default-to-new-tab-instead-of-a.patch diff --git a/patches/0168-Add-a-method-to-hook-at-Application.attachBaseContex.patch b/patches/0172-Add-a-method-to-hook-at-Application.attachBaseContex.patch similarity index 100% rename from patches/0168-Add-a-method-to-hook-at-Application.attachBaseContex.patch rename to patches/0172-Add-a-method-to-hook-at-Application.attachBaseContex.patch diff --git a/patches/0169-Add-hooks-for-ChromeApplicationImpl-to-initialize-co.patch b/patches/0173-Add-hooks-for-ChromeApplicationImpl-to-initialize-co.patch similarity index 100% rename from patches/0169-Add-hooks-for-ChromeApplicationImpl-to-initialize-co.patch rename to patches/0173-Add-hooks-for-ChromeApplicationImpl-to-initialize-co.patch diff --git a/patches/0170-content-filtering-Add-support-for-updating-content-f.patch b/patches/0174-content-filtering-Add-support-for-updating-content-f.patch similarity index 100% rename from patches/0170-content-filtering-Add-support-for-updating-content-f.patch rename to patches/0174-content-filtering-Add-support-for-updating-content-f.patch diff --git a/patches/0171-Add-support-for-conditional-content-filtering-compon.patch b/patches/0175-Add-support-for-conditional-content-filtering-compon.patch similarity index 100% rename from patches/0171-Add-support-for-conditional-content-filtering-compon.patch rename to patches/0175-Add-support-for-conditional-content-filtering-compon.patch diff --git a/patches/0172-add-support-for-other-language-content-filtering-dep.patch b/patches/0176-add-support-for-other-language-content-filtering-dep.patch similarity index 100% rename from patches/0172-add-support-for-other-language-content-filtering-dep.patch rename to patches/0176-add-support-for-other-language-content-filtering-dep.patch diff --git a/patches/0173-Update-Resources-and-Configuration-generated-protobu.patch b/patches/0177-Update-Resources-and-Configuration-generated-protobu.patch similarity index 100% rename from patches/0173-Update-Resources-and-Configuration-generated-protobu.patch rename to patches/0177-Update-Resources-and-Configuration-generated-protobu.patch diff --git a/patches/0174-Document-more-needed-removals-for-protobuf.patch b/patches/0178-Document-more-needed-removals-for-protobuf.patch similarity index 100% rename from patches/0174-Document-more-needed-removals-for-protobuf.patch rename to patches/0178-Document-more-needed-removals-for-protobuf.patch diff --git a/patches/0175-Isolate-sandboxed-iframes-per-site-by-default.patch b/patches/0179-Isolate-sandboxed-iframes-per-site-by-default.patch similarity index 100% rename from patches/0175-Isolate-sandboxed-iframes-per-site-by-default.patch rename to patches/0179-Isolate-sandboxed-iframes-per-site-by-default.patch diff --git a/patches/0176-Fix-chrome-target-generation-when-skip_secondary_abi.patch b/patches/0180-Fix-chrome-target-generation-when-skip_secondary_abi.patch similarity index 100% rename from patches/0176-Fix-chrome-target-generation-when-skip_secondary_abi.patch rename to patches/0180-Fix-chrome-target-generation-when-skip_secondary_abi.patch diff --git a/patches/0178-Disable-predictive-back-gesture-for-Vanadium.patch b/patches/0181-Disable-predictive-back-gesture-for-Vanadium.patch similarity index 100% rename from patches/0178-Disable-predictive-back-gesture-for-Vanadium.patch rename to patches/0181-Disable-predictive-back-gesture-for-Vanadium.patch diff --git a/patches/0179-Support-restriction-of-dynamic-code.patch b/patches/0182-Support-restriction-of-dynamic-code.patch similarity index 100% rename from patches/0179-Support-restriction-of-dynamic-code.patch rename to patches/0182-Support-restriction-of-dynamic-code.patch diff --git a/patches/0180-Restriction-of-dynamic-code-execution-via-seccomp-bp.patch b/patches/0183-Restriction-of-dynamic-code-execution-via-seccomp-bp.patch similarity index 100% rename from patches/0180-Restriction-of-dynamic-code-execution-via-seccomp-bp.patch rename to patches/0183-Restriction-of-dynamic-code-execution-via-seccomp-bp.patch diff --git a/patches/0181-config-Explicitly-declare-queries-to-config-package-.patch b/patches/0184-config-Explicitly-declare-queries-to-config-package-.patch similarity index 100% rename from patches/0181-config-Explicitly-declare-queries-to-config-package-.patch rename to patches/0184-config-Explicitly-declare-queries-to-config-package-.patch diff --git a/patches/0182-config-Compile-the-config-holder-app-with-forceQuery.patch b/patches/0185-config-Compile-the-config-holder-app-with-forceQuery.patch similarity index 100% rename from patches/0182-config-Compile-the-config-holder-app-with-forceQuery.patch rename to patches/0185-config-Compile-the-config-holder-app-with-forceQuery.patch diff --git a/patches/0184-tmp-Disable-Safety-Hub-features-by-default.patch b/patches/0186-tmp-Disable-Safety-Hub-features-by-default.patch similarity index 100% rename from patches/0184-tmp-Disable-Safety-Hub-features-by-default.patch rename to patches/0186-tmp-Disable-Safety-Hub-features-by-default.patch diff --git a/patches/0185-Enable-HSTS-upgrades-for-top-level-navigation-only-b.patch b/patches/0187-Enable-HSTS-upgrades-for-top-level-navigation-only-b.patch similarity index 100% rename from patches/0185-Enable-HSTS-upgrades-for-top-level-navigation-only-b.patch rename to patches/0187-Enable-HSTS-upgrades-for-top-level-navigation-only-b.patch diff --git a/patches/0186-Reduce-user-agent-and-client-hints-for-webview.patch b/patches/0188-Reduce-user-agent-and-client-hints-for-webview.patch similarity index 100% rename from patches/0186-Reduce-user-agent-and-client-hints-for-webview.patch rename to patches/0188-Reduce-user-agent-and-client-hints-for-webview.patch diff --git a/patches/0187-remove-upstream-code-disabling-WebView-MTE.patch b/patches/0189-remove-upstream-code-disabling-WebView-MTE.patch similarity index 100% rename from patches/0187-remove-upstream-code-disabling-WebView-MTE.patch rename to patches/0189-remove-upstream-code-disabling-WebView-MTE.patch diff --git a/patches/0188-Extend-site-setting-category-visibility-check-on-sin.patch b/patches/0190-Extend-site-setting-category-visibility-check-on-sin.patch similarity index 93% rename from patches/0188-Extend-site-setting-category-visibility-check-on-sin.patch rename to patches/0190-Extend-site-setting-category-visibility-check-on-sin.patch index cbf2eb4c2..7811d08a8 100644 --- a/patches/0188-Extend-site-setting-category-visibility-check-on-sin.patch +++ b/patches/0190-Extend-site-setting-category-visibility-check-on-sin.patch @@ -9,10 +9,10 @@ Subject: [PATCH] Extend site setting category visibility check on single 1 file changed, 7 insertions(+) diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java -index 7c8a9246315a7..93ed7e4912414 100644 +index 9a4ec4a9f52e1..46fc44b804d8b 100644 --- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java +++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java -@@ -1431,6 +1431,13 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment +@@ -1433,6 +1433,13 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment Preference preference, @ContentSetting @Nullable Integer value) { @ContentSettingsType.EnumType int contentType = getContentSettingsTypeFromPreferenceKey(preference.getKey()); diff --git a/patches/0189-remove-debug-dump-when-MTE-is-disabled.patch b/patches/0191-remove-debug-dump-when-MTE-is-disabled.patch similarity index 100% rename from patches/0189-remove-debug-dump-when-MTE-is-disabled.patch rename to patches/0191-remove-debug-dump-when-MTE-is-disabled.patch diff --git a/patches/0190-Remove-javascript-optimizer-settings-UI-link-on-Priv.patch b/patches/0192-Remove-javascript-optimizer-settings-UI-link-on-Priv.patch similarity index 100% rename from patches/0190-Remove-javascript-optimizer-settings-UI-link-on-Priv.patch rename to patches/0192-Remove-javascript-optimizer-settings-UI-link-on-Priv.patch diff --git a/patches/0191-Remove-javascript-optimizer-settings-UI.patch b/patches/0193-Remove-javascript-optimizer-settings-UI.patch similarity index 100% rename from patches/0191-Remove-javascript-optimizer-settings-UI.patch rename to patches/0193-Remove-javascript-optimizer-settings-UI.patch diff --git a/patches/0192-Reset-saved-javascript-optimizer-site-setting.patch b/patches/0194-Reset-saved-javascript-optimizer-site-setting.patch similarity index 100% rename from patches/0192-Reset-saved-javascript-optimizer-site-setting.patch rename to patches/0194-Reset-saved-javascript-optimizer-site-setting.patch diff --git a/patches/0193-Support-for-extra-arguments-declared-for-chrome-laye.patch b/patches/0195-Support-for-extra-arguments-declared-for-chrome-laye.patch similarity index 100% rename from patches/0193-Support-for-extra-arguments-declared-for-chrome-laye.patch rename to patches/0195-Support-for-extra-arguments-declared-for-chrome-laye.patch diff --git a/patches/0194-Support-for-excluding-crashpad-in-compiling-chrome-t.patch b/patches/0196-Support-for-excluding-crashpad-in-compiling-chrome-t.patch similarity index 100% rename from patches/0194-Support-for-excluding-crashpad-in-compiling-chrome-t.patch rename to patches/0196-Support-for-excluding-crashpad-in-compiling-chrome-t.patch diff --git a/patches/0195-Always-allow-platform-CredentialManager-calls-for-An.patch b/patches/0197-Always-allow-platform-CredentialManager-calls-for-An.patch similarity index 100% rename from patches/0195-Always-allow-platform-CredentialManager-calls-for-An.patch rename to patches/0197-Always-allow-platform-CredentialManager-calls-for-An.patch diff --git a/patches/0196-Fix-versionCode-for-64-bit-only-builds.patch b/patches/0198-Fix-versionCode-for-64-bit-only-builds.patch similarity index 100% rename from patches/0196-Fix-versionCode-for-64-bit-only-builds.patch rename to patches/0198-Fix-versionCode-for-64-bit-only-builds.patch diff --git a/patches/0197-Increment-minSdk-to-33-trichrome-apk-build-targets.patch b/patches/0199-Increment-minSdk-to-33-trichrome-apk-build-targets.patch similarity index 100% rename from patches/0197-Increment-minSdk-to-33-trichrome-apk-build-targets.patch rename to patches/0199-Increment-minSdk-to-33-trichrome-apk-build-targets.patch diff --git a/patches/0198-config-disable-domain-reliability-feature.patch b/patches/0200-config-disable-domain-reliability-feature.patch similarity index 100% rename from patches/0198-config-disable-domain-reliability-feature.patch rename to patches/0200-config-disable-domain-reliability-feature.patch diff --git a/patches/0199-Disable-password-leak-detection-by-default.patch b/patches/0201-Disable-password-leak-detection-by-default.patch similarity index 100% rename from patches/0199-Disable-password-leak-detection-by-default.patch rename to patches/0201-Disable-password-leak-detection-by-default.patch diff --git a/patches/0200-Further-disable-password-leak-detection-checks.patch b/patches/0202-Further-disable-password-leak-detection-checks.patch similarity index 100% rename from patches/0200-Further-disable-password-leak-detection-checks.patch rename to patches/0202-Further-disable-password-leak-detection-checks.patch diff --git a/patches/0201-Hide-potentially-no-op-password-leak-detection-toggl.patch b/patches/0203-Hide-potentially-no-op-password-leak-detection-toggl.patch similarity index 100% rename from patches/0201-Hide-potentially-no-op-password-leak-detection-toggl.patch rename to patches/0203-Hide-potentially-no-op-password-leak-detection-toggl.patch diff --git a/patches/0202-enable-certificate-transparency-feature-by-default-f.patch b/patches/0204-enable-certificate-transparency-feature-by-default-f.patch similarity index 100% rename from patches/0202-enable-certificate-transparency-feature-by-default-f.patch rename to patches/0204-enable-certificate-transparency-feature-by-default-f.patch diff --git a/patches/0203-enable-more-Local-Network-Access-coverage-checks-by-.patch b/patches/0205-enable-more-Local-Network-Access-coverage-checks-by-.patch similarity index 100% rename from patches/0203-enable-more-Local-Network-Access-coverage-checks-by-.patch rename to patches/0205-enable-more-Local-Network-Access-coverage-checks-by-.patch diff --git a/patches/0204-hide-and-don-t-fetch-icons-for-search-engine-setting.patch b/patches/0206-hide-and-don-t-fetch-icons-for-search-engine-setting.patch similarity index 100% rename from patches/0204-hide-and-don-t-fetch-icons-for-search-engine-setting.patch rename to patches/0206-hide-and-don-t-fetch-icons-for-search-engine-setting.patch diff --git a/patches/0205-Revert-removal-of-database-for-local-password-manage.patch b/patches/0207-Revert-removal-of-database-for-local-password-manage.patch similarity index 100% rename from patches/0205-Revert-removal-of-database-for-local-password-manage.patch rename to patches/0207-Revert-removal-of-database-for-local-password-manage.patch diff --git a/patches/0206-Restore-build-args-of-using-login-database-as-backen.patch b/patches/0208-Restore-build-args-of-using-login-database-as-backen.patch similarity index 100% rename from patches/0206-Restore-build-args-of-using-login-database-as-backen.patch rename to patches/0208-Restore-build-args-of-using-login-database-as-backen.patch diff --git a/patches/0207-Restore-buildflag-for-using-login-database-as-backen.patch b/patches/0209-Restore-buildflag-for-using-login-database-as-backen.patch similarity index 100% rename from patches/0207-Restore-buildflag-for-using-login-database-as-backen.patch rename to patches/0209-Restore-buildflag-for-using-login-database-as-backen.patch diff --git a/patches/0208-Restore-file-name-refs-for-password-manager-local-da.patch b/patches/0210-Restore-file-name-refs-for-password-manager-local-da.patch similarity index 100% rename from patches/0208-Restore-file-name-refs-for-password-manager-local-da.patch rename to patches/0210-Restore-file-name-refs-for-password-manager-local-da.patch diff --git a/patches/0209-Restore-necessary-prefs-for-local-backend-password-m.patch b/patches/0211-Restore-necessary-prefs-for-local-backend-password-m.patch similarity index 100% rename from patches/0209-Restore-necessary-prefs-for-local-backend-password-m.patch rename to patches/0211-Restore-necessary-prefs-for-local-backend-password-m.patch diff --git a/patches/0210-Restore-support-of-login-database-backend-for-Androi.patch b/patches/0212-Restore-support-of-login-database-backend-for-Androi.patch similarity index 100% rename from patches/0210-Restore-support-of-login-database-backend-for-Androi.patch rename to patches/0212-Restore-support-of-login-database-backend-for-Androi.patch diff --git a/patches/0211-Revert-passwords-android-Move-reduce-visibility-of-s.patch b/patches/0213-Revert-passwords-android-Move-reduce-visibility-of-s.patch similarity index 100% rename from patches/0211-Revert-passwords-android-Move-reduce-visibility-of-s.patch rename to patches/0213-Revert-passwords-android-Move-reduce-visibility-of-s.patch diff --git a/patches/0212-Restore-chrome-browser-password_entry_edit-for-local.patch b/patches/0214-Restore-chrome-browser-password_entry_edit-for-local.patch similarity index 100% rename from patches/0212-Restore-chrome-browser-password_entry_edit-for-local.patch rename to patches/0214-Restore-chrome-browser-password_entry_edit-for-local.patch diff --git a/patches/0213-Restore-local-password-manager-UI.patch b/patches/0215-Restore-local-password-manager-UI.patch similarity index 100% rename from patches/0213-Restore-local-password-manager-UI.patch rename to patches/0215-Restore-local-password-manager-UI.patch diff --git a/patches/0214-restore-local-backend-based-password-manager-setting.patch b/patches/0216-restore-local-backend-based-password-manager-setting.patch similarity index 100% rename from patches/0214-restore-local-backend-based-password-manager-setting.patch rename to patches/0216-restore-local-backend-based-password-manager-setting.patch diff --git a/patches/0217-Support-for-toggling-motion-sensors-site-settings-pe.patch b/patches/0217-Support-for-toggling-motion-sensors-site-settings-pe.patch new file mode 100644 index 000000000..167e80a90 --- /dev/null +++ b/patches/0217-Support-for-toggling-motion-sensors-site-settings-pe.patch @@ -0,0 +1,128 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: quh4gko8 <88831734+quh4gko8@users.noreply.github.com> +Date: Mon, 19 Jan 2026 14:36:41 +0000 +Subject: [PATCH] Support for toggling motion sensors site settings per-site + +--- + .../site_settings/SensorsSettingsHooks.java | 54 +++++++++++++++++++ + .../SiteSettingsHooksRegistry.java | 3 ++ + ...site_settings_android_java_ext_sources.gni | 1 + + .../strings/android/site_settings_ext.grdp | 6 +++ + 4 files changed, 64 insertions(+) + create mode 100644 components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SensorsSettingsHooks.java + +diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SensorsSettingsHooks.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SensorsSettingsHooks.java +new file mode 100644 +index 0000000000000..a3ce6a91b3134 +--- /dev/null ++++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SensorsSettingsHooks.java +@@ -0,0 +1,54 @@ ++package org.chromium.components.browser_ui.site_settings; ++ ++import org.chromium.build.annotations.NonNull; ++import org.chromium.build.annotations.Nullable; ++import org.chromium.components.content_settings.ContentSetting; ++import org.chromium.components.content_settings.ContentSettingsType; ++import org.chromium.content_public.browser.BrowserContextHandle; ++ ++public final class SensorsSettingsHooks { ++ ++ static final class WebsitePermissionsFetcherHooksImpl extends WebsitePermissionsFetcherHooks { ++ ++ @Override ++ protected int getPermissionTypeOverride() { ++ return PERMISSION_INFO; ++ } ++ ++ @Override ++ protected boolean shouldCreateExceptionIfNull() { ++ return true; ++ } ++ } ++ ++ static final class SingleCategorySettingsHooksImpl extends SingleCategorySettingsHooks { ++ ++ @Override ++ protected Boolean shouldAddExceptionButton(boolean isCategoryEnabled) { ++ return true; ++ } ++ ++ @Override ++ protected int getAddExceptionDialogMessageResourceId(boolean isCategoryEnabled) { ++ return isCategoryEnabled ? R.string.website_settings_add_site_description_motion_sensors_block ++ : R.string.website_settings_add_site_description_motion_sensors_allow; ++ } ++ } ++ ++ static final class SingleWebsiteSettingsHooksImpl extends SingleWebsiteSettingsHooks { ++ ++ @Override ++ protected @Nullable Integer getContentSettingForSetup( ++ @NonNull BrowserContextHandle browserContextHandle, ++ @NonNull Website website, ++ @ContentSettingsType.EnumType int contentType) { ++ Integer curValue = website.getContentSetting(browserContextHandle, contentType); ++ if (curValue == null) { ++ boolean isEnabled = WebsitePreferenceBridge.isContentSettingEnabled(browserContextHandle, contentType); ++ curValue = isEnabled ? ContentSetting.ALLOW : ContentSetting.BLOCK; ++ } ++ return curValue; ++ } ++ ++ } ++} +diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettingsHooksRegistry.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettingsHooksRegistry.java +index b5b24f05ef0be..e752cd8df5343 100644 +--- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettingsHooksRegistry.java ++++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettingsHooksRegistry.java +@@ -15,6 +15,7 @@ public final class SiteSettingsHooksRegistry { + @SiteSettingsCategory.Type int categoryType) { + return switch (categoryType) { + case SiteSettingsCategory.Type.JAVASCRIPT_JIT -> new JavascriptJitSettingsHooks.SingleCategorySettingsHooksImpl(); ++ case SiteSettingsCategory.Type.SENSORS -> new SensorsSettingsHooks.SingleCategorySettingsHooksImpl(); + default -> SingleCategorySettingsHooks.getDefaultInstance(); + }; + } +@@ -24,6 +25,7 @@ public final class SiteSettingsHooksRegistry { + @ContentSettingsType.EnumType int contentType) { + return switch (contentType) { + case ContentSettingsType.JAVASCRIPT_JIT -> new JavascriptJitSettingsHooks.SingleWebsiteSettingsHooksImpl(); ++ case ContentSettingsType.SENSORS -> new SensorsSettingsHooks.SingleWebsiteSettingsHooksImpl(); + default -> SingleWebsiteSettingsHooks.getDefaultInstance(); + }; + } +@@ -60,6 +62,7 @@ public final class SiteSettingsHooksRegistry { + @ContentSettingsType.EnumType int contentType) { + return switch (contentType) { + case ContentSettingsType.JAVASCRIPT_JIT -> new JavascriptJitSettingsHooks.WebsitePermissionsFetcherHooksImpl(); ++ case ContentSettingsType.SENSORS -> new SensorsSettingsHooks.WebsitePermissionsFetcherHooksImpl(); + default -> WebsitePermissionsFetcherHooks.getDefaultInstance(); + }; + } +diff --git a/components/browser_ui/site_settings/android/site_settings_android_java_ext_sources.gni b/components/browser_ui/site_settings/android/site_settings_android_java_ext_sources.gni +index 3b6555a695933..8027d179c412e 100644 +--- a/components/browser_ui/site_settings/android/site_settings_android_java_ext_sources.gni ++++ b/components/browser_ui/site_settings/android/site_settings_android_java_ext_sources.gni +@@ -4,6 +4,7 @@ + + site_settings_android_java_ext_sources = [ + "java/src/org/chromium/components/browser_ui/site_settings/JavascriptJitSettingsHooks.java", ++ "java/src/org/chromium/components/browser_ui/site_settings/SensorsSettingsHooks.java", + "java/src/org/chromium/components/browser_ui/site_settings/SingleCategorySettingsHooks.java", + "java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettingsHooks.java", + "java/src/org/chromium/components/browser_ui/site_settings/SiteSettingsCategoryHooks.java", +diff --git a/components/browser_ui/strings/android/site_settings_ext.grdp b/components/browser_ui/strings/android/site_settings_ext.grdp +index 3a51bad2da3a7..ad779ee9eeaa2 100644 +--- a/components/browser_ui/strings/android/site_settings_ext.grdp ++++ b/components/browser_ui/strings/android/site_settings_ext.grdp +@@ -22,4 +22,10 @@ + + Don't allow sites to use JavaScript JIT + ++ ++ Allow motion sensors for a specific site. ++ ++ ++ Block motion sensors for a specific site. ++ + diff --git a/patches/0217-Support-to-automatically-apply-patches-to-some-subpr.patch b/patches/0218-Support-to-automatically-apply-patches-to-some-subpr.patch similarity index 100% rename from patches/0217-Support-to-automatically-apply-patches-to-some-subpr.patch rename to patches/0218-Support-to-automatically-apply-patches-to-some-subpr.patch diff --git a/patches/0218-Suppport-applying-patches-to-v8-subproject.patch b/patches/0219-Suppport-applying-patches-to-v8-subproject.patch similarity index 100% rename from patches/0218-Suppport-applying-patches-to-v8-subproject.patch rename to patches/0219-Suppport-applying-patches-to-v8-subproject.patch diff --git a/patches/0219-initial-v8-patchset-for-wasm-in-interpreter-mode-sup.patch b/patches/0220-initial-v8-patchset-for-wasm-in-interpreter-mode-sup.patch similarity index 100% rename from patches/0219-initial-v8-patchset-for-wasm-in-interpreter-mode-sup.patch rename to patches/0220-initial-v8-patchset-for-wasm-in-interpreter-mode-sup.patch diff --git a/patches/0220-Support-applying-patches-to-search-engine-data-resou.patch b/patches/0221-Support-applying-patches-to-search-engine-data-resou.patch similarity index 100% rename from patches/0220-Support-applying-patches-to-search-engine-data-resou.patch rename to patches/0221-Support-applying-patches-to-search-engine-data-resou.patch diff --git a/patches/0221-Search-engine-data-patches-to-always-include-DuckDuc.patch b/patches/0222-Search-engine-data-patches-to-always-include-DuckDuc.patch similarity index 100% rename from patches/0221-Search-engine-data-patches-to-always-include-DuckDuc.patch rename to patches/0222-Search-engine-data-patches-to-always-include-DuckDuc.patch diff --git a/patches/0222-Increment-top-search-engine-threshold-to-7.patch b/patches/0223-Increment-top-search-engine-threshold-to-7.patch similarity index 100% rename from patches/0222-Increment-top-search-engine-threshold-to-7.patch rename to patches/0223-Increment-top-search-engine-threshold-to-7.patch diff --git a/patches/0223-Add-missing-x64-AndroidManifest-expected-libs-and-as.patch b/patches/0224-Add-missing-x64-AndroidManifest-expected-libs-and-as.patch similarity index 100% rename from patches/0223-Add-missing-x64-AndroidManifest-expected-libs-and-as.patch rename to patches/0224-Add-missing-x64-AndroidManifest-expected-libs-and-as.patch diff --git a/patches/0224-Update-arm64-AndroidManifest-expected-libs-and-asset.patch b/patches/0225-Update-arm64-AndroidManifest-expected-libs-and-asset.patch similarity index 100% rename from patches/0224-Update-arm64-AndroidManifest-expected-libs-and-asset.patch rename to patches/0225-Update-arm64-AndroidManifest-expected-libs-and-asset.patch diff --git a/patches/0225-Enable-origin-keyed-process-isolation-by-default.patch b/patches/0226-Enable-origin-keyed-process-isolation-by-default.patch similarity index 100% rename from patches/0225-Enable-origin-keyed-process-isolation-by-default.patch rename to patches/0226-Enable-origin-keyed-process-isolation-by-default.patch diff --git a/patches/0226-Allow-registration-of-passkeys-regardless-of-residen.patch b/patches/0227-Allow-registration-of-passkeys-regardless-of-residen.patch similarity index 100% rename from patches/0226-Allow-registration-of-passkeys-regardless-of-residen.patch rename to patches/0227-Allow-registration-of-passkeys-regardless-of-residen.patch diff --git a/patches/0227-disable-misleading-new-tab-cards-by-default.patch b/patches/0228-disable-misleading-new-tab-cards-by-default.patch similarity index 100% rename from patches/0227-disable-misleading-new-tab-cards-by-default.patch rename to patches/0228-disable-misleading-new-tab-cards-by-default.patch diff --git a/patches/0228-disable-additional-buttons-below-search-bar-in-new-t.patch b/patches/0229-disable-additional-buttons-below-search-bar-in-new-t.patch similarity index 100% rename from patches/0228-disable-additional-buttons-below-search-bar-in-new-t.patch rename to patches/0229-disable-additional-buttons-below-search-bar-in-new-t.patch diff --git a/patches/0229-Apply-toggle-for-opening-links-in-incognito-for-expl.patch b/patches/0230-Apply-toggle-for-opening-links-in-incognito-for-expl.patch similarity index 100% rename from patches/0229-Apply-toggle-for-opening-links-in-incognito-for-expl.patch rename to patches/0230-Apply-toggle-for-opening-links-in-incognito-for-expl.patch diff --git a/patches/0230-remove-unused-separate-autofill-status.patch b/patches/0231-remove-unused-separate-autofill-status.patch similarity index 100% rename from patches/0230-remove-unused-separate-autofill-status.patch rename to patches/0231-remove-unused-separate-autofill-status.patch diff --git a/patches/0231-always-enable-autofill-screens-regardless-of-autofil.patch b/patches/0232-always-enable-autofill-screens-regardless-of-autofil.patch similarity index 100% rename from patches/0231-always-enable-autofill-screens-regardless-of-autofil.patch rename to patches/0232-always-enable-autofill-screens-regardless-of-autofil.patch diff --git a/patches/0233-Initial-support-for-toggling-Sensors-site-settings-p.patch b/patches/0233-Initial-support-for-toggling-Sensors-site-settings-p.patch deleted file mode 100644 index a8ffad27b..000000000 --- a/patches/0233-Initial-support-for-toggling-Sensors-site-settings-p.patch +++ /dev/null @@ -1,77 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: quh4gko8 <88831734+quh4gko8@users.noreply.github.com> -Date: Mon, 19 Jan 2026 14:36:41 +0000 -Subject: [PATCH] Initial support for toggling Sensors site settings per-site - ---- - .../site_settings/SingleWebsiteSettings.java | 23 +++++++++++++++++++ - .../browser_ui/site_settings/Website.java | 15 ++++++++++++ - 2 files changed, 38 insertions(+) - -diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java -index 93ed7e4912414..28c80d0de0437 100644 ---- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java -+++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java -@@ -695,6 +695,8 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment - // state as ALLOW in regular mode and BLOCK in incognito. This logic should - // be removed when a prompt is implemented for parity with desktop. - setUpAutoPictureInPicturePreference(preference); -+ } else if (type == ContentSettingsType.SENSORS) { -+ setUpSensorsPreference(preference); - } else { - setupContentSettingsPreference( - preference, -@@ -1599,6 +1601,27 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment - isOneTime(ContentSettingsType.AUTO_PICTURE_IN_PICTURE)); - } - -+ @RequiresNonNull({"mSite"}) -+ private void setUpSensorsPreference(Preference preference) { -+ BrowserContextHandle browserContextHandle = -+ getSiteSettingsDelegate().getBrowserContextHandle(); -+ @ContentSetting -+ @Nullable -+ Integer currentValue = -+ mSite.getContentSetting(browserContextHandle, ContentSettingsType.SENSORS); -+ if (currentValue == null) { -+ currentValue = WebsitePreferenceBridge.isCategoryEnabled( -+ browserContextHandle, ContentSettingsType.SENSORS) -+ ? ContentSetting.ALLOW -+ : ContentSetting.BLOCK; -+ } -+ // Not possible to embargo SENSORS. -+ setupContentSettingsPreference(preference, -+ currentValue, -+ /* isEmbargoed= */ false, -+ isOneTime(ContentSettingsType.SENSORS)); -+ } -+ - @RequiresNonNull({"mSite"}) - private void setUpJavascriptPreference(Preference preference) { - BrowserContextHandle browserContextHandle = getBrowserContextHandle(); -diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/Website.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/Website.java -index 5ae70b46ce927..2717f587db1c2 100644 ---- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/Website.java -+++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/Website.java -@@ -370,6 +370,21 @@ public final class Website implements WebsiteEntry { - SessionModel.DURABLE); - setPermissionInfo(permissionInfo); - } -+ } else if (type == ContentSettingsType.SENSORS) { -+ // The Sensors permission is defaulted to allowed/denied based on the -+ // incognito status. When the user explicitly sets the permission for the first time, no -+ // PermissionInfo object has been created for Sensors yet. This logic -+ // should be removed when a prompt is implemented for parity with desktop. -+ if (permissionInfo == null) { -+ permissionInfo = -+ new PermissionInfo( -+ type, -+ mOrigin.getOrigin(), -+ /* embedder= */ null, -+ /* isEmbargoed= */ false, -+ SessionModel.DURABLE); -+ setPermissionInfo(permissionInfo); -+ } - } - if (permissionInfo != null) { - permissionInfo.setContentSetting(browserContextHandle, value); diff --git a/patches/0232-fix-crashes-caused-by-removing-Google-services-setti.patch b/patches/0233-fix-crashes-caused-by-removing-Google-services-setti.patch similarity index 100% rename from patches/0232-fix-crashes-caused-by-removing-Google-services-setti.patch rename to patches/0233-fix-crashes-caused-by-removing-Google-services-setti.patch From c3997f6fcf5d0182bf31af70d9615b707184b98f Mon Sep 17 00:00:00 2001 From: quh4gko8 <88831734+quh4gko8@users.noreply.github.com> Date: Wed, 13 May 2026 16:30:24 +0000 Subject: [PATCH 2/8] Utility class for caching members such as methods, to use for reflection --- ...r-caching-members-to-invoke-via-refl.patch | 83 +++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 patches/0252-Utility-class-for-caching-members-to-invoke-via-refl.patch diff --git a/patches/0252-Utility-class-for-caching-members-to-invoke-via-refl.patch b/patches/0252-Utility-class-for-caching-members-to-invoke-via-refl.patch new file mode 100644 index 000000000..2015abfb7 --- /dev/null +++ b/patches/0252-Utility-class-for-caching-members-to-invoke-via-refl.patch @@ -0,0 +1,83 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: quh4gko8 <88831734+quh4gko8@users.noreply.github.com> +Date: Tue, 5 May 2026 13:43:18 +0000 +Subject: [PATCH] Utility class for caching members to invoke via reflection + +--- + vanadium/ext/utils/BUILD.gn | 8 ++++ + .../ext/utils/reflect/MemberCache.java | 48 +++++++++++++++++++ + 2 files changed, 56 insertions(+) + create mode 100644 vanadium/ext/utils/java/src/app/vanadium/ext/utils/reflect/MemberCache.java + +diff --git a/vanadium/ext/utils/BUILD.gn b/vanadium/ext/utils/BUILD.gn +index bc05f3660d5b3..a21fd64d19c92 100644 +--- a/vanadium/ext/utils/BUILD.gn ++++ b/vanadium/ext/utils/BUILD.gn +@@ -11,4 +11,12 @@ android_library("file_utils_java") { + ] + deps = [ + ] ++} ++ ++android_library("member_cache_utils_java") { ++ sources = [ ++ "java/src/app/vanadium/ext/utils/reflect/MemberCache.java", ++ ] ++ deps = [ ++ ] + } +\ No newline at end of file +diff --git a/vanadium/ext/utils/java/src/app/vanadium/ext/utils/reflect/MemberCache.java b/vanadium/ext/utils/java/src/app/vanadium/ext/utils/reflect/MemberCache.java +new file mode 100644 +index 0000000000000..69646e130eb72 +--- /dev/null ++++ b/vanadium/ext/utils/java/src/app/vanadium/ext/utils/reflect/MemberCache.java +@@ -0,0 +1,48 @@ ++package app.vanadium.ext.utils.reflect; ++ ++import org.chromium.build.annotations.NullMarked; ++import org.chromium.build.annotations.Nullable; ++ ++import java.lang.reflect.Member; ++ ++@NullMarked ++public final class MemberCache { ++ ++ public static MemberCache of( ++ Fetcher Fetcher) { ++ return new MemberCache<>(Fetcher); ++ } ++ ++ public interface Fetcher { ++ MemberType getMember() throws ReflectiveOperationException; ++ void logOrThrow(ReflectiveOperationException e); ++ } ++ ++ private final Fetcher mFetcher; ++ ++ @Nullable ++ private MemberType mMember; ++ private volatile boolean mMemberCached; ++ ++ private MemberCache(Fetcher Fetcher) { ++ mFetcher = Fetcher; ++ } ++ ++ @Nullable ++ public MemberType getMember() { ++ if (mMemberCached) { ++ return mMember; ++ } ++ ++ try { ++ mMember = mFetcher.getMember(); ++ return mMember; ++ } catch (ReflectiveOperationException e) { ++ mFetcher.logOrThrow(e); ++ } finally { ++ mMemberCached = true; ++ } ++ ++ return null; ++ } ++} From 02452fbfa4f55ee5991b9648286f721ef0f6d57c Mon Sep 17 00:00:00 2001 From: quh4gko8 <88831734+quh4gko8@users.noreply.github.com> Date: Wed, 13 May 2026 16:32:15 +0000 Subject: [PATCH 3/8] Set jitless mode earlier to support native-only isolated services --- ...t-for-calling-added-APIs-from-custom.patch | 133 +++++++++++++ ...rt-child-processes-in-jitless-mode-w.patch | 42 ++++ ...d-lines-needed-for-isolated-services.patch | 184 ++++++++++++++++++ 3 files changed, 359 insertions(+) create mode 100644 patches/0253-fixup-Add-support-for-calling-added-APIs-from-custom.patch create mode 100644 patches/0254-fixup-Always-start-child-processes-in-jitless-mode-w.patch create mode 100644 patches/0255-Modify-command-lines-needed-for-isolated-services.patch diff --git a/patches/0253-fixup-Add-support-for-calling-added-APIs-from-custom.patch b/patches/0253-fixup-Add-support-for-calling-added-APIs-from-custom.patch new file mode 100644 index 000000000..54f9ca2a0 --- /dev/null +++ b/patches/0253-fixup-Add-support-for-calling-added-APIs-from-custom.patch @@ -0,0 +1,133 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: quh4gko8 <88831734+quh4gko8@users.noreply.github.com> +Date: Wed, 13 May 2026 09:05:42 +0000 +Subject: [PATCH] fixup! Add support for calling added APIs from custom OS + +--- + vanadium/ext/custom_os/BUILD.gn | 1 + + .../src/app/vanadium/ext/CustomOSApis.java | 92 ++++++++++++++++--- + 2 files changed, 82 insertions(+), 11 deletions(-) + +diff --git a/vanadium/ext/custom_os/BUILD.gn b/vanadium/ext/custom_os/BUILD.gn +index ea3c3995a44e5..65cbd2b060f33 100644 +--- a/vanadium/ext/custom_os/BUILD.gn ++++ b/vanadium/ext/custom_os/BUILD.gn +@@ -9,5 +9,6 @@ android_library("custom_os_apis_java") { + "java/src/app/vanadium/ext/CustomOSApis.java", + ] + deps = [ ++ "//vanadium/ext/utils:member_cache_utils_java", + ] + } +\ No newline at end of file +diff --git a/vanadium/ext/custom_os/java/src/app/vanadium/ext/CustomOSApis.java b/vanadium/ext/custom_os/java/src/app/vanadium/ext/CustomOSApis.java +index beaf2b4576207..383722327df21 100644 +--- a/vanadium/ext/custom_os/java/src/app/vanadium/ext/CustomOSApis.java ++++ b/vanadium/ext/custom_os/java/src/app/vanadium/ext/CustomOSApis.java +@@ -6,24 +6,94 @@ import android.util.Log; + import java.lang.reflect.InvocationTargetException; + import java.lang.reflect.Method; + ++import app.vanadium.ext.utils.reflect.MemberCache; ++ + public class CustomOSApis { + + private static final String TAG = "cr_CustomOSApis"; + +- public static boolean isExecmemBlocked() { +- try { +- Method isExecmemBlocked = Environment.class.getDeclaredMethod("isExecmemBlocked"); +- if (isExecmemBlocked.getReturnType() != Boolean.TYPE) { +- Log.e(TAG, "Unexpected return type: isExecmemBlocked must return boolean"); +- return false; ++ private static final class EnvBoolMethodCacheWrapper { ++ private final String methodName; ++ private final MemberCache methodCache; ++ ++ private EnvBoolMethodCacheWrapper(String methodName) { ++ this.methodName = methodName; ++ this.methodCache = MemberCache.of(new MemberCache.Fetcher<>() { ++ ++ @Override ++ public Method getMember() throws NoSuchMethodException { ++ return Environment.class.getDeclaredMethod(methodName); ++ } ++ ++ @Override ++ public void logOrThrow(ReflectiveOperationException e) { ++ Log.e(TAG, "", e); ++ } ++ }); ++ } ++ ++ private Boolean invoke(Object obj, Object... args) { ++ Method method = methodCache.getMember(); ++ if (method == null) { ++ Log.e(TAG, String.format("Methood %s not found", methodName)); ++ return null; ++ } ++ ++ if (method.getReturnType() != Boolean.TYPE) { ++ Log.e(TAG, String.format("Method %s must return boolean", methodName)); ++ return null; + } + +- var res = isExecmemBlocked.invoke(null); +- return (boolean) res; +- } catch (NoSuchMethodException | InvocationTargetException | IllegalAccessException e) { +- Log.e(TAG, "", e); +- return false; ++ try { ++ return (Boolean) method.invoke(obj, args); ++ } catch (InvocationTargetException | IllegalAccessException e) { ++ Log.e(TAG, "", e); ++ return null; ++ } + } + } + ++ private static final EnvBoolMethodCacheWrapper sIsExecmemBlockedMethodCacheWrapper = ++ new EnvBoolMethodCacheWrapper("isExecmemBlocked"); ++ ++ /** ++ * Checks if execmem is blocked in current process. Method obsoleted since 2026050400 release. ++ * @return true or false if method exists and returns boolean type, null otherwise. ++ */ ++ public static Boolean isExecmemBlocked() { ++ return sIsExecmemBlockedMethodCacheWrapper.invoke(null); ++ } ++ ++ private static final EnvBoolMethodCacheWrapper sIsMemoryDclRestrictedMethodCacheWrapper = ++ new EnvBoolMethodCacheWrapper("isMemoryDclRestricted"); ++ ++ /** ++ * Checks if memory DCL is restricted. Method added since 2026050400 release. ++ * @return true or false if method exists and returns boolean type, null otherwise. ++ */ ++ public static Boolean isMemoryDclRestricted() { ++ return sIsMemoryDclRestrictedMethodCacheWrapper.invoke(null); ++ } ++ ++ private static final EnvBoolMethodCacheWrapper sIsStorageDclRestrictedMethodCacheWrapper = ++ new EnvBoolMethodCacheWrapper("isStorageDclRestricted"); ++ ++ /** ++ * Checks if storage DCL is restricted. Method added since 2026050400 release. ++ * @return true or false if method exists and returns boolean type, null otherwise. ++ */ ++ public static Boolean isStorageDclRestricted() { ++ return sIsStorageDclRestrictedMethodCacheWrapper.invoke(null); ++ } ++ ++ private static final EnvBoolMethodCacheWrapper sIsWebViewDclRestrictedMethodCacheWrapper = ++ new EnvBoolMethodCacheWrapper("isWebViewDclRestricted"); ++ ++ /** ++ * Checks if WebView DCL is restricted. Method added since 2026050400 release. ++ * @return true or false if method exists and returns boolean type, null otherwise. ++ */ ++ public static Boolean isWebViewDclRestricted() { ++ return sIsWebViewDclRestrictedMethodCacheWrapper.invoke(null); ++ } + } +\ No newline at end of file diff --git a/patches/0254-fixup-Always-start-child-processes-in-jitless-mode-w.patch b/patches/0254-fixup-Always-start-child-processes-in-jitless-mode-w.patch new file mode 100644 index 000000000..99c500af9 --- /dev/null +++ b/patches/0254-fixup-Always-start-child-processes-in-jitless-mode-w.patch @@ -0,0 +1,42 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: quh4gko8 <88831734+quh4gko8@users.noreply.github.com> +Date: Wed, 13 May 2026 09:16:11 +0000 +Subject: [PATCH] fixup! Always start child processes in jitless mode when + execmem is blocked + +--- + .../base/library_loader/LibraryLoaderHooks.java | 12 ++++++++---- + 1 file changed, 8 insertions(+), 4 deletions(-) + +diff --git a/base/android/java/src/org/chromium/base/library_loader/LibraryLoaderHooks.java b/base/android/java/src/org/chromium/base/library_loader/LibraryLoaderHooks.java +index 68a4829fdcb17..e31db1b3106e5 100644 +--- a/base/android/java/src/org/chromium/base/library_loader/LibraryLoaderHooks.java ++++ b/base/android/java/src/org/chromium/base/library_loader/LibraryLoaderHooks.java +@@ -9,8 +9,11 @@ import org.chromium.base.config.VanadiumConfigBridge; + import java.util.ArrayList; + import java.util.LinkedHashSet; + ++import app.vanadium.config.VanadiumConfParser; + import app.vanadium.ext.CustomOSApis; + ++import static app.vanadium.config.proto.VanadiumConfigProto.Flag.FlagType.DISABLED_FEATURE; ++ + class LibraryLoaderHooks { + + static void onSetLibraryProcessType(Context appContext, @LibraryProcessType int type) { +@@ -27,10 +30,11 @@ class LibraryLoaderHooks { + case LibraryProcessType.PROCESS_CHILD: + case LibraryProcessType.PROCESS_WEBVIEW_CHILD: + if (CommandLine.getInstance() != null) { +- boolean checkForOSConfigForJitless = +- !VanadiumCommandLineUtils.getCommaDelimitedSwitchValue( +- "disabled-features").contains("CheckOsConfigsForIsolatedProcessV1"); +- if (checkForOSConfigForJitless && CustomOSApis.isExecmemBlocked()) { ++ if (VanadiumConfParser.getFlagsFor(DISABLED_FEATURE) ++ .containsKey("CheckOsConfigsForIsolatedProcessV1")) { ++ return; ++ } ++ if (CustomOSApis.isExecmemBlocked()) { + String jsFlagsName = "js-flags"; + LinkedHashSet jsFlags = new LinkedHashSet<>( + VanadiumCommandLineUtils.getCommaDelimitedSwitchValue(jsFlagsName)); diff --git a/patches/0255-Modify-command-lines-needed-for-isolated-services.patch b/patches/0255-Modify-command-lines-needed-for-isolated-services.patch new file mode 100644 index 000000000..9f407a846 --- /dev/null +++ b/patches/0255-Modify-command-lines-needed-for-isolated-services.patch @@ -0,0 +1,184 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: quh4gko8 <88831734+quh4gko8@users.noreply.github.com> +Date: Mon, 27 Apr 2026 16:16:14 +0000 +Subject: [PATCH] Modify command lines needed for isolated services + +This commit applies the needed configs, specifically command line for +javascript flags, based on OS DCL restriction state, whether to run +javascript and wasm in JITless mode. +--- + content/public/android/BUILD.gn | 5 + + .../android/content_full_java_ext_deps.gni | 4 + + .../android/content_full_java_ext_sources.gni | 3 + + .../ChildProcessLauncherHelperImpl.java | 6 + + .../ChildProcessLauncherHelperImplHooks.java | 105 ++++++++++++++++++ + 5 files changed, 123 insertions(+) + create mode 100644 content/public/android/content_full_java_ext_deps.gni + create mode 100644 content/public/android/content_full_java_ext_sources.gni + create mode 100644 content/public/android/java/src/org/chromium/content/browser/ChildProcessLauncherHelperImplHooks.java + +diff --git a/content/public/android/BUILD.gn b/content/public/android/BUILD.gn +index 20dcf02151fee..da5b0ecf7a368 100644 +--- a/content/public/android/BUILD.gn ++++ b/content/public/android/BUILD.gn +@@ -449,6 +449,11 @@ android_library("content_full_java") { + } + + public_deps = [ "//ui/base/mojom:ui_base_types_java" ] ++ ++ import("content_full_java_ext_sources.gni") ++ sources += content_full_java_ext_sources ++ import("content_full_java_ext_deps.gni") ++ deps += content_full_java_ext_deps + } + + android_library("content_util_java") { +diff --git a/content/public/android/content_full_java_ext_deps.gni b/content/public/android/content_full_java_ext_deps.gni +new file mode 100644 +index 0000000000000..2fd3ab79d6294 +--- /dev/null ++++ b/content/public/android/content_full_java_ext_deps.gni +@@ -0,0 +1,4 @@ ++content_full_java_ext_deps = [ ++ "//vanadium/android_config/proto:browser_config_parser_java", ++ "//vanadium/ext/custom_os:custom_os_apis_java", ++] +\ No newline at end of file +diff --git a/content/public/android/content_full_java_ext_sources.gni b/content/public/android/content_full_java_ext_sources.gni +new file mode 100644 +index 0000000000000..91af33e868fac +--- /dev/null ++++ b/content/public/android/content_full_java_ext_sources.gni +@@ -0,0 +1,3 @@ ++content_full_java_ext_sources = [ ++ "java/src/org/chromium/content/browser/ChildProcessLauncherHelperImplHooks.java", ++] +\ No newline at end of file +diff --git a/content/public/android/java/src/org/chromium/content/browser/ChildProcessLauncherHelperImpl.java b/content/public/android/java/src/org/chromium/content/browser/ChildProcessLauncherHelperImpl.java +index 29bf415192f65..975d7ae703208 100644 +--- a/content/public/android/java/src/org/chromium/content/browser/ChildProcessLauncherHelperImpl.java ++++ b/content/public/android/java/src/org/chromium/content/browser/ChildProcessLauncherHelperImpl.java +@@ -429,6 +429,12 @@ public final class ChildProcessLauncherHelperImpl { + } + } + ++ String[] newCommandLine = ChildProcessLauncherHelperImplHooks.maybeModifyCommandLine( ++ commandLine, sandboxed); ++ if (newCommandLine != null) { ++ commandLine = newCommandLine; ++ } ++ + IBinder binderCallback = + ContentSwitches.SWITCH_GPU_PROCESS.equals(processType) + ? new GpuProcessCallback() +diff --git a/content/public/android/java/src/org/chromium/content/browser/ChildProcessLauncherHelperImplHooks.java b/content/public/android/java/src/org/chromium/content/browser/ChildProcessLauncherHelperImplHooks.java +new file mode 100644 +index 0000000000000..32a060edcbda5 +--- /dev/null ++++ b/content/public/android/java/src/org/chromium/content/browser/ChildProcessLauncherHelperImplHooks.java +@@ -0,0 +1,105 @@ ++package org.chromium.content.browser; ++ ++import android.text.TextUtils; ++ ++import org.chromium.base.library_loader.LibraryLoader; ++import org.chromium.base.library_loader.LibraryProcessType; ++import org.chromium.build.annotations.NonNull; ++import org.chromium.build.annotations.NullMarked; ++import org.chromium.build.annotations.Nullable; ++ ++import app.vanadium.config.VanadiumConfParser; ++import app.vanadium.ext.CustomOSApis; ++ ++import java.util.Arrays; ++import java.util.LinkedHashSet; ++import java.util.Set; ++ ++import static app.vanadium.config.proto.VanadiumConfigProto.Flag.FlagType.DISABLED_FEATURE; ++ ++@NullMarked ++final class ChildProcessLauncherHelperImplHooks { ++ ++ private ChildProcessLauncherHelperImplHooks() { ++ } ++ ++ private static boolean isDisabled() { ++ String featureKey = "CheckOsConfigsForIsolatedProcessV2"; ++ if (VanadiumConfParser.getFlagsFor(DISABLED_FEATURE).containsKey(featureKey)) { ++ return true; ++ } ++ ++ return false; ++ } ++ ++ @Nullable ++ static String[] maybeModifyCommandLine( ++ @NonNull final String[] commandLine, final boolean sandboxed) { ++ if (isDisabled()) { ++ return null; ++ } ++ ++ if (!sandboxed) { ++ return null; ++ } ++ ++ switch (LibraryLoader.getInstance().getLibraryProcessType()) { ++ case LibraryProcessType.PROCESS_BROWSER -> { ++ Boolean isMemoryDclRestricted = CustomOSApis.isMemoryDclRestricted(); ++ if (isMemoryDclRestricted != null && isMemoryDclRestricted) { ++ break; ++ } ++ ++ return null; ++ } ++ ++ case LibraryProcessType.PROCESS_WEBVIEW -> { ++ Boolean isWebViewDclRestricted = CustomOSApis.isWebViewDclRestricted(); ++ if (isWebViewDclRestricted != null && isWebViewDclRestricted) { ++ break; ++ } ++ ++ return null; ++ } ++ ++ default -> { ++ return null; ++ } ++ } ++ ++ String[] newCommandLine = commandLine; ++ boolean alreadySet = false; ++ String jsFlagsPrefix = "--js-flags="; ++ Set jsFlagValuesToRemove = ++ new LinkedHashSet<>(Arrays.asList("--no-jitless", "--no_jitless", ++ "--no-wasm-jitless", "--no-wasm_jitless", ++ "--no_wasm_jitless", "--no_wasm_jitless")); ++ Set jsFlagValuesToAppend = ++ new LinkedHashSet<>(Arrays.asList("--jitless", "--wasm_jitless")); ++ String delimiter = ","; ++ for (int i = newCommandLine.length - 1; i >= 0; --i) { ++ final String command = newCommandLine[i]; ++ if (command == null) { ++ continue; ++ } ++ ++ if (command.startsWith(jsFlagsPrefix)) { ++ String values = command.substring(jsFlagsPrefix.length()); ++ Set valueSet = new LinkedHashSet<>(Arrays.asList(values.split(delimiter))); ++ valueSet.removeAll(jsFlagValuesToRemove); ++ valueSet.addAll(jsFlagValuesToAppend); ++ newCommandLine[i] = jsFlagsPrefix + TextUtils.join(delimiter, valueSet); ++ alreadySet = true; ++ break; ++ } ++ } ++ ++ if (!alreadySet) { ++ newCommandLine = Arrays.copyOf(newCommandLine, newCommandLine.length + 1); ++ newCommandLine[newCommandLine.length - 1] = ++ jsFlagsPrefix + TextUtils.join(delimiter, jsFlagValuesToAppend); ++ } ++ ++ return newCommandLine; ++ } ++} From 4de026bdfd0004bc1980a244573a52cb8edacd27 Mon Sep 17 00:00:00 2001 From: quh4gko8 <88831734+quh4gko8@users.noreply.github.com> Date: Wed, 13 May 2026 16:32:31 +0000 Subject: [PATCH 4/8] Refactor connectivity check reflection usage --- ...for-fetching-OS-connectivity-check-s.patch | 106 ++++++++++++++++++ 1 file changed, 106 insertions(+) create mode 100644 patches/0256-fixup-net-layer-for-fetching-OS-connectivity-check-s.patch diff --git a/patches/0256-fixup-net-layer-for-fetching-OS-connectivity-check-s.patch b/patches/0256-fixup-net-layer-for-fetching-OS-connectivity-check-s.patch new file mode 100644 index 000000000..3201425ab --- /dev/null +++ b/patches/0256-fixup-net-layer-for-fetching-OS-connectivity-check-s.patch @@ -0,0 +1,106 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: quh4gko8 <88831734+quh4gko8@users.noreply.github.com> +Date: Wed, 13 May 2026 11:22:53 +0000 +Subject: [PATCH] fixup! net layer for fetching OS connectivity check settings + +--- + net/downstream/conn_checks/android/BUILD.gn | 1 + + .../net/conn_checks/ConnChecksUtil.java | 50 +++++++++---------- + 2 files changed, 25 insertions(+), 26 deletions(-) + +diff --git a/net/downstream/conn_checks/android/BUILD.gn b/net/downstream/conn_checks/android/BUILD.gn +index 5ad9a89fa5040..2ede53a383695 100644 +--- a/net/downstream/conn_checks/android/BUILD.gn ++++ b/net/downstream/conn_checks/android/BUILD.gn +@@ -83,6 +83,7 @@ android_library("conn_checks_util_java") { + "//base:base_java", + "//build/android:build_java", + "//third_party/jni_zero:jni_zero_java", ++ "//vanadium/ext/utils:member_cache_utils_java", + ] + + srcjar_deps = [ +diff --git a/net/downstream/conn_checks/android/java/src/org/chromium/net/conn_checks/ConnChecksUtil.java b/net/downstream/conn_checks/android/java/src/org/chromium/net/conn_checks/ConnChecksUtil.java +index a88a868275cc2..9458ba699b5e1 100644 +--- a/net/downstream/conn_checks/android/java/src/org/chromium/net/conn_checks/ConnChecksUtil.java ++++ b/net/downstream/conn_checks/android/java/src/org/chromium/net/conn_checks/ConnChecksUtil.java +@@ -1,14 +1,16 @@ + package org.chromium.net.conn_checks; + ++import org.chromium.build.annotations.NonNull; + import org.jni_zero.CalledByNative; + import org.jni_zero.JNINamespace; + + import org.chromium.base.Log; + import org.chromium.build.annotations.NullMarked; +-import org.chromium.build.annotations.Nullable; + +-import java.lang.reflect.Method; + import java.lang.reflect.InvocationTargetException; ++import java.lang.reflect.Method; ++ ++import app.vanadium.ext.utils.reflect.MemberCache; + + /** Class to access DNS server configuration. */ + @JNINamespace("net::android") +@@ -32,40 +34,36 @@ public final class ConnChecksUtil { + return switch (connChecksSettingVal) { + case ConnChecksOsSetting.GRAPHENEOS, + ConnChecksOsSetting.STANDARD, +- ConnChecksOsSetting.DISABLED -> { +- yield connChecksSettingVal; +- } +- default -> { +- yield ConnChecksOsSetting.DEFAULT; +- } ++ ConnChecksOsSetting.DISABLED -> connChecksSettingVal; ++ default -> ConnChecksOsSetting.DEFAULT; + }; + } + +- private static volatile boolean sConnChecksSettingGetMethodInited; +- private static @Nullable Method sConnChecksSettingGetMethod; ++ @NonNull ++ private static final MemberCache sConnChecksSettingGetMethodCache = ++ MemberCache.of(new MemberCache.Fetcher<>() { ++ @Override ++ public Method getMember() throws ClassNotFoundException, NoSuchMethodException { ++ Class clazz = Class.forName("android.ext.settings.ConnChecksSetting"); ++ return clazz.getDeclaredMethod("get"); ++ } + +- private static int getInner() { +- if (!sConnChecksSettingGetMethodInited) { +- try { +- Class connChecksSettingClass = +- Class.forName("android.ext.settings.ConnChecksSetting"); +- sConnChecksSettingGetMethod = +- connChecksSettingClass.getDeclaredMethod("get"); +- } catch (ClassNotFoundException | NoSuchMethodException e) { +- Log.e(TAG, "", e); +- } ++ @Override ++ public void logOrThrow(ReflectiveOperationException e) { ++ Log.e(TAG, "", e); ++ } ++ }); + +- sConnChecksSettingGetMethodInited = true; +- } +- +- Method method = sConnChecksSettingGetMethod; ++ private static int getInner() { ++ Method method = sConnChecksSettingGetMethodCache.getMember(); + if (method == null) { + return ConnChecksOsSetting.DEFAULT; + } + + try { +- return (int) method.invoke(null); +- } catch (InvocationTargetException | IllegalAccessException e) { ++ Integer res = (Integer) method.invoke(null); ++ return res != null ? res : ConnChecksOsSetting.DEFAULT; ++ } catch (IllegalAccessException | InvocationTargetException e) { + Log.e(TAG, "", e); + return ConnChecksOsSetting.DEFAULT; + } From 946b54be3f30db619d2e09d0e1114508148b0654 Mon Sep 17 00:00:00 2001 From: quh4gko8 <88831734+quh4gko8@users.noreply.github.com> Date: Wed, 13 May 2026 16:33:33 +0000 Subject: [PATCH 5/8] Reflect DCL state on Javascript JIT site settings UI --- ...p-Implement-UI-for-JIT-site-settings.patch | 166 ++++++++++++++++++ ...pt-JIT-state-also-dependent-on-OS-co.patch | 24 +++ 2 files changed, 190 insertions(+) create mode 100644 patches/0257-fixup-Implement-UI-for-JIT-site-settings.patch create mode 100644 patches/0258-Reflect-Javascript-JIT-state-also-dependent-on-OS-co.patch diff --git a/patches/0257-fixup-Implement-UI-for-JIT-site-settings.patch b/patches/0257-fixup-Implement-UI-for-JIT-site-settings.patch new file mode 100644 index 000000000..267c93ed4 --- /dev/null +++ b/patches/0257-fixup-Implement-UI-for-JIT-site-settings.patch @@ -0,0 +1,166 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: quh4gko8 <88831734+quh4gko8@users.noreply.github.com> +Date: Wed, 13 May 2026 11:46:12 +0000 +Subject: [PATCH] fixup! Implement UI for JIT site settings + +--- + .../JavascriptJitSettingsHooks.java | 84 +++++++++++++++++-- + .../strings/android/site_settings_ext.grdp | 6 ++ + 2 files changed, 83 insertions(+), 7 deletions(-) + +diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/JavascriptJitSettingsHooks.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/JavascriptJitSettingsHooks.java +index 6e7c250268f65..f49d078bbea0f 100644 +--- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/JavascriptJitSettingsHooks.java ++++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/JavascriptJitSettingsHooks.java +@@ -2,18 +2,41 @@ package org.chromium.components.browser_ui.site_settings; + + import androidx.preference.Preference; + ++import org.chromium.base.ApiCompatibilityUtils; + import org.chromium.build.annotations.AlwaysInline; + import org.chromium.build.annotations.NonNull; + import org.chromium.build.annotations.NullMarked; + import org.chromium.build.annotations.Nullable; + import org.chromium.components.browser_ui.settings.ChromeBasePreference; ++import org.chromium.components.browser_ui.styles.SemanticColorUtils; + import org.chromium.components.content_settings.ContentSetting; + import org.chromium.components.content_settings.ContentSettingsType; + import org.chromium.content_public.browser.BrowserContextHandle; + ++import app.vanadium.config.VanadiumConfParser; ++import app.vanadium.ext.CustomOSApis; ++ ++import static app.vanadium.config.proto.VanadiumConfigProto.Flag.FlagType.DISABLED_FEATURE; ++ ++import android.content.Context; ++import android.graphics.ColorFilter; ++import android.graphics.PorterDuff; ++import android.graphics.PorterDuffColorFilter; ++import android.graphics.drawable.Drawable; ++ + @NullMarked + public final class JavascriptJitSettingsHooks { + ++ public static boolean isSettingsDisabled() { ++ String featureKey = "CheckOsConfigsForJavascriptJitSiteSettings"; ++ if (VanadiumConfParser.getFlagsFor(DISABLED_FEATURE).containsKey(featureKey)) { ++ return false; ++ } ++ ++ Boolean isMemoryDclRestricted = CustomOSApis.isMemoryDclRestricted(); ++ return isMemoryDclRestricted != null && isMemoryDclRestricted; ++ } ++ + @NonNull + @AlwaysInline + private static String commonPrefKey() { +@@ -73,11 +96,6 @@ public final class JavascriptJitSettingsHooks { + public int getDisabledPrimaryTextRes() { + return R.string.website_settings_javascript_jit_block; + } +- +- @Override +- public int getDisabledDescriptionTextRes() { +- return super.getDisabledDescriptionTextRes(); +- } + } + + static final class CategoryHooksImpl extends SiteSettingsCategoryHooks { +@@ -95,7 +113,46 @@ public final class JavascriptJitSettingsHooks { + @Override + @NonNull + protected SiteSettingsCategory getSiteSettingsCategory(@NonNull BrowserContextHandle bch) { +- return new SiteSettingsCategory(bch, SiteSettingsCategory.Type.JAVASCRIPT_JIT, ""); ++ return new JavascriptJitSiteSettingsCategory(bch); ++ } ++ } ++ ++ static final class JavascriptJitSiteSettingsCategory extends SiteSettingsCategory { ++ ++ JavascriptJitSiteSettingsCategory(@NonNull BrowserContextHandle bch) { ++ super(bch, SiteSettingsCategory.Type.JAVASCRIPT_JIT, ""); ++ } ++ ++ @Override ++ protected boolean enabledForChrome(Context context) { ++ return !isSettingsDisabled(); ++ } ++ ++ @Override ++ protected boolean shouldDisableToggle() { ++ return isSettingsDisabled(); ++ } ++ ++ @Override ++ protected String getMessageForEnablingOsPerAppPermission(Context context, String appName) { ++ return context.getString(R.string.browser_dcl_memory_restricted_with_link, appName); ++ } ++ ++ @Override ++ protected @Nullable String getMessageWhyToggleIsDisabled(Context context) { ++ return context.getString(R.string.browser_dcl_memory_restricted); ++ } ++ ++ @Override ++ Drawable getDisabledInAndroidIcon(Context context) { ++ Drawable icon = ApiCompatibilityUtils.getDrawable( ++ context.getResources(), R.drawable.secured_by_brand_shield_24); ++ icon.mutate(); ++ int disabledColor = SemanticColorUtils.getDefaultControlColorActive(context); ++ ColorFilter colorFilter = ++ new PorterDuffColorFilter(disabledColor, PorterDuff.Mode.SRC_IN); ++ icon.setColorFilter(colorFilter); ++ return icon; + } + } + +@@ -139,7 +196,7 @@ public final class JavascriptJitSettingsHooks { + + @Override + protected @Nullable Boolean shouldAddExceptionButton(boolean isCategoryEnabled) { +- return true; ++ return !isSettingsDisabled(); + } + + @Override +@@ -160,6 +217,9 @@ public final class JavascriptJitSettingsHooks { + @NonNull BrowserContextHandle browserContextHandle, + @NonNull Website website, + @ContentSettingsType.EnumType int contentType) { ++ if (isSettingsDisabled()) { ++ return ContentSetting.BLOCK; ++ } + Integer curValue = website.getContentSetting(browserContextHandle, contentType); + if (curValue == null) { + boolean isEnabled = WebsitePreferenceBridge.isContentSettingEnabled(browserContextHandle, contentType); +@@ -167,5 +227,15 @@ public final class JavascriptJitSettingsHooks { + } + return curValue; + } ++ ++ @Override ++ protected void setupOrModifyPreference( ++ @NonNull SingleWebsiteSettings siteSettingsFragment, ++ @NonNull BrowserContextHandle browserContextHandle, ++ @NonNull Preference preference) { ++ if (isSettingsDisabled()) { ++ preference.setEnabled(false); ++ } ++ } + } + } +diff --git a/components/browser_ui/strings/android/site_settings_ext.grdp b/components/browser_ui/strings/android/site_settings_ext.grdp +index ad779ee9eeaa2..900acd447c7b1 100644 +--- a/components/browser_ui/strings/android/site_settings_ext.grdp ++++ b/components/browser_ui/strings/android/site_settings_ext.grdp +@@ -28,4 +28,10 @@ + + Block motion sensors for a specific site. + ++ ++ Dynamic code loading via memory is restricted. ++ ++ ++ Dynamic code loading via memory for %1$sVanadium is currently restricted, which can be allowed at <link>Android Settings</link>. ++ + diff --git a/patches/0258-Reflect-Javascript-JIT-state-also-dependent-on-OS-co.patch b/patches/0258-Reflect-Javascript-JIT-state-also-dependent-on-OS-co.patch new file mode 100644 index 000000000..ace2ac6f0 --- /dev/null +++ b/patches/0258-Reflect-Javascript-JIT-state-also-dependent-on-OS-co.patch @@ -0,0 +1,24 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: quh4gko8 <88831734+quh4gko8@users.noreply.github.com> +Date: Wed, 13 May 2026 16:23:37 +0000 +Subject: [PATCH] Reflect Javascript JIT state also dependent on OS configs + +--- + .../components/page_info/PageInfoPermissionsController.java | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/components/page_info/android/java/src/org/chromium/components/page_info/PageInfoPermissionsController.java b/components/page_info/android/java/src/org/chromium/components/page_info/PageInfoPermissionsController.java +index 50e641f74d54f..84e33182f3334 100644 +--- a/components/page_info/android/java/src/org/chromium/components/page_info/PageInfoPermissionsController.java ++++ b/components/page_info/android/java/src/org/chromium/components/page_info/PageInfoPermissionsController.java +@@ -58,6 +58,10 @@ public class PageInfoPermissionsController extends PageInfoPreferenceSubpageCont + boolean allowed, + int warningTextResource, + boolean requested) { ++ if (type == ContentSettingsType.JAVASCRIPT_JIT ++ && org.chromium.components.browser_ui.site_settings.JavascriptJitSettingsHooks.isSettingsDisabled()) { ++ allowed = false; ++ } + this.type = type; + this.name = name; + this.nameMidSentence = nameMidSentence; From 1077e69ee195c2337cc0d413793441ad273a23f2 Mon Sep 17 00:00:00 2001 From: quh4gko8 <88831734+quh4gko8@users.noreply.github.com> Date: Wed, 13 May 2026 16:34:06 +0000 Subject: [PATCH 6/8] Add config flags state to enable usage of new jitless checks --- ...nitial-checks-from-OS-to-apply-on-br.patch | 34 +++++++++++++++++++ ...le-new-checks-for-isolated-processes.patch | 31 +++++++++++++++++ ...w-checks-for-Javascript-JIT-site-set.patch | 31 +++++++++++++++++ 3 files changed, 96 insertions(+) create mode 100644 patches/0259-config-Disable-initial-checks-from-OS-to-apply-on-br.patch create mode 100644 patches/0260-config-Enable-new-checks-for-isolated-processes.patch create mode 100644 patches/0261-config-Enable-new-checks-for-Javascript-JIT-site-set.patch diff --git a/patches/0259-config-Disable-initial-checks-from-OS-to-apply-on-br.patch b/patches/0259-config-Disable-initial-checks-from-OS-to-apply-on-br.patch new file mode 100644 index 000000000..04f1c7208 --- /dev/null +++ b/patches/0259-config-Disable-initial-checks-from-OS-to-apply-on-br.patch @@ -0,0 +1,34 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: quh4gko8 <88831734+quh4gko8@users.noreply.github.com> +Date: Wed, 29 Apr 2026 08:43:51 +0000 +Subject: [PATCH] [config] Disable initial checks from OS to apply on browser + +This disables the old approach of applying needed configurations, +including JITless mode if execmem is blocked upon each initialization of +isolated processes. +--- + .../app/vanadium/config/host/ConfigGenerator.java | 11 +++++++++++ + 1 file changed, 11 insertions(+) + +diff --git a/vanadium/android_config/proto/java/src_host/app/vanadium/config/host/ConfigGenerator.java b/vanadium/android_config/proto/java/src_host/app/vanadium/config/host/ConfigGenerator.java +index 970f812f89598..6b51a0f034ad8 100644 +--- a/vanadium/android_config/proto/java/src_host/app/vanadium/config/host/ConfigGenerator.java ++++ b/vanadium/android_config/proto/java/src_host/app/vanadium/config/host/ConfigGenerator.java +@@ -209,6 +209,17 @@ public class ConfigGenerator { + ) + )) + )); ++ configList.add(config(configParams -> configParams.setSpec( ++ spec(specParams -> specParams.setSpecTypes( ++ getSpecTypes(SpecType.BROWSER, SpecType.WEBVIEW)) ++ .setMinVersion(7778_168_00L) ++ )) ++ .addAllFlags(flags( ++ flag(flagParams -> flagParams.setFlagName("CheckOsConfigsForIsolatedProcessV1") ++ .setFlagType(FlagType.DISABLED_FEATURE) ++ ) ++ )) ++ )); + return sortConfigs(configList); + } + diff --git a/patches/0260-config-Enable-new-checks-for-isolated-processes.patch b/patches/0260-config-Enable-new-checks-for-isolated-processes.patch new file mode 100644 index 000000000..782804134 --- /dev/null +++ b/patches/0260-config-Enable-new-checks-for-isolated-processes.patch @@ -0,0 +1,31 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: quh4gko8 <88831734+quh4gko8@users.noreply.github.com> +Date: Fri, 1 May 2026 16:50:54 +0000 +Subject: [PATCH] [config] Enable new checks for isolated processes + +--- + .../app/vanadium/config/host/ConfigGenerator.java | 11 +++++++++++ + 1 file changed, 11 insertions(+) + +diff --git a/vanadium/android_config/proto/java/src_host/app/vanadium/config/host/ConfigGenerator.java b/vanadium/android_config/proto/java/src_host/app/vanadium/config/host/ConfigGenerator.java +index 6b51a0f034ad8..3abfc6893b9db 100644 +--- a/vanadium/android_config/proto/java/src_host/app/vanadium/config/host/ConfigGenerator.java ++++ b/vanadium/android_config/proto/java/src_host/app/vanadium/config/host/ConfigGenerator.java +@@ -220,6 +220,17 @@ public class ConfigGenerator { + ) + )) + )); ++ configList.add(config(configParams -> configParams.setSpec( ++ spec(specParams -> specParams.setSpecTypes( ++ getSpecTypes(SpecType.BROWSER, SpecType.WEBVIEW)) ++ .setMinVersion(7778_168_00L) ++ )) ++ .addAllFlags(flags( ++ flag(flagParams -> flagParams.setFlagName("CheckOsConfigsForIsolatedProcessV2") ++ .setFlagType(FlagType.ENABLED_FEATURE) ++ ) ++ )) ++ )); + return sortConfigs(configList); + } + diff --git a/patches/0261-config-Enable-new-checks-for-Javascript-JIT-site-set.patch b/patches/0261-config-Enable-new-checks-for-Javascript-JIT-site-set.patch new file mode 100644 index 000000000..ed8fe7e7c --- /dev/null +++ b/patches/0261-config-Enable-new-checks-for-Javascript-JIT-site-set.patch @@ -0,0 +1,31 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: quh4gko8 <88831734+quh4gko8@users.noreply.github.com> +Date: Fri, 1 May 2026 16:50:54 +0000 +Subject: [PATCH] [config] Enable new checks for Javascript JIT site settings + +--- + .../app/vanadium/config/host/ConfigGenerator.java | 11 +++++++++++ + 1 file changed, 11 insertions(+) + +diff --git a/vanadium/android_config/proto/java/src_host/app/vanadium/config/host/ConfigGenerator.java b/vanadium/android_config/proto/java/src_host/app/vanadium/config/host/ConfigGenerator.java +index 3abfc6893b9db..53c1944a36a16 100644 +--- a/vanadium/android_config/proto/java/src_host/app/vanadium/config/host/ConfigGenerator.java ++++ b/vanadium/android_config/proto/java/src_host/app/vanadium/config/host/ConfigGenerator.java +@@ -231,6 +231,17 @@ public class ConfigGenerator { + ) + )) + )); ++ configList.add(config(configParams -> configParams.setSpec( ++ spec(specParams -> specParams.setSpecTypes( ++ getSpecTypes(SpecType.BROWSER)) ++ .setMinVersion(7778_168_00L) ++ )) ++ .addAllFlags(flags( ++ flag(flagParams -> flagParams.setFlagName("CheckOsConfigsForJavascriptJitSiteSettings") ++ .setFlagType(FlagType.ENABLED_FEATURE) ++ ) ++ )) ++ )); + return sortConfigs(configList); + } + From 235dd938866412007ff42dc090bb4080a0d38507 Mon Sep 17 00:00:00 2001 From: quh4gko8 <88831734+quh4gko8@users.noreply.github.com> Date: Wed, 13 May 2026 16:44:10 +0000 Subject: [PATCH 7/8] Increment extended version to 1 --- args.gn | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/args.gn b/args.gn index 6668432b6..e299322fd 100644 --- a/args.gn +++ b/args.gn @@ -8,7 +8,7 @@ android_default_version_name = "148.0.7778.167" android_default_version_code = "777816700" ext_version_enabled = true -ext_version_increment = "0" +ext_version_increment = "1" is_component_build = false is_debug = false From 22653fe9295fe798120d77cf53143f12e0c27b8b Mon Sep 17 00:00:00 2001 From: quh4gko8 <88831734+quh4gko8@users.noreply.github.com> Date: Wed, 13 May 2026 16:46:00 +0000 Subject: [PATCH 8/8] Increment config version to 179 --- args.gn | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/args.gn b/args.gn index e299322fd..a1048d701 100644 --- a/args.gn +++ b/args.gn @@ -49,8 +49,8 @@ trichrome_library_package = "app.vanadium.trichromelibrary" config_apk_package = "app.vanadium.config" config_apk_certdigest = "c6adb8b83c6d4c17d292afde56fd488a51d316ff8f2c11c5410223bff8a7dbb3" -config_apk_version_name = "178" -config_apk_version_code = "178" +config_apk_version_name = "179" +config_apk_version_code = "179" config_apk_is_debug = false # Explicitly disable static analysis as intended for official builds.