Browse Source

Update to Chromium 121.0.6167.85

Blaise 3 months ago
parent
commit
223fe76bb2
67 changed files with 1033 additions and 976 deletions
  1. 1 1
      chromium_version.txt
  2. 1 0
      docs/flags.md
  3. 114 238
      domain_substitution.list
  4. 6 6
      patches/core/bromite/disable-fetching-field-trials.patch
  5. 46 43
      patches/core/inox-patchset/0001-fix-building-without-safebrowsing.patch
  6. 10 10
      patches/core/inox-patchset/0003-disable-autofill-download-manager.patch
  7. 1 1
      patches/core/inox-patchset/0009-disable-google-ipv6-probes.patch
  8. 1 1
      patches/core/inox-patchset/0021-disable-rlz.patch
  9. 14 14
      patches/core/iridium-browser/all-add-trk-prefixes-to-possibly-evil-connections.patch
  10. 1 1
      patches/core/iridium-browser/safe_browsing-disable-incident-reporting.patch
  11. 4 4
      patches/core/ungoogled-chromium/block-trk-and-subdomains.patch
  12. 2 2
      patches/core/ungoogled-chromium/disable-crash-reporter.patch
  13. 1 1
      patches/core/ungoogled-chromium/disable-gaia.patch
  14. 25 15
      patches/core/ungoogled-chromium/disable-google-host-detection.patch
  15. 3 3
      patches/core/ungoogled-chromium/disable-mei-preload.patch
  16. 3 3
      patches/core/ungoogled-chromium/disable-privacy-sandbox.patch
  17. 0 164
      patches/core/ungoogled-chromium/disable-web-environment-integrity.patch
  18. 5 5
      patches/core/ungoogled-chromium/disable-webrtc-log-uploader.patch
  19. 6 6
      patches/core/ungoogled-chromium/disable-webstore-urls.patch
  20. 1 1
      patches/core/ungoogled-chromium/doh-changes.patch
  21. 13 12
      patches/core/ungoogled-chromium/fix-building-with-prunned-binaries.patch
  22. 190 89
      patches/core/ungoogled-chromium/fix-building-without-safebrowsing.patch
  23. 156 149
      patches/core/ungoogled-chromium/remove-unused-preferences-fields.patch
  24. 8 8
      patches/core/ungoogled-chromium/toggle-translation-via-switch.patch
  25. 16 16
      patches/extra/bromite/fingerprinting-flags-client-rects-and-measuretext.patch
  26. 8 8
      patches/extra/bromite/flag-fingerprinting-canvas-image-data-noise.patch
  27. 4 4
      patches/extra/bromite/flag-max-connections-per-host.patch
  28. 4 4
      patches/extra/inox-patchset/0006-modify-default-prefs.patch
  29. 10 5
      patches/extra/inox-patchset/0008-restore-classic-ntp.patch
  30. 1 1
      patches/extra/inox-patchset/0018-disable-first-run-behaviour.patch
  31. 1 1
      patches/extra/iridium-browser/browser-disable-profile-auto-import-on-first-run.patch
  32. 1 1
      patches/extra/iridium-browser/net-cert-increase-default-key-length-for-newly-gener.patch
  33. 1 1
      patches/extra/iridium-browser/prefs-always-prompt-for-download-directory-by-defaul.patch
  34. 0 39
      patches/extra/iridium-browser/prefs-only-keep-cookies-until-exit.patch
  35. 1 1
      patches/extra/iridium-browser/updater-disable-auto-update.patch
  36. 8 8
      patches/extra/ungoogled-chromium/add-flag-for-close-confirmation.patch
  37. 1 1
      patches/extra/ungoogled-chromium/add-flag-for-custom-ntp.patch
  38. 4 4
      patches/extra/ungoogled-chromium/add-flag-for-disabling-link-drag.patch
  39. 3 3
      patches/extra/ungoogled-chromium/add-flag-for-omnibox-autocomplete-filtering.patch
  40. 11 11
      patches/extra/ungoogled-chromium/add-flag-for-search-engine-collection.patch
  41. 2 2
      patches/extra/ungoogled-chromium/add-flag-for-tab-hover-cards.patch
  42. 1 1
      patches/extra/ungoogled-chromium/add-flag-to-close-window-with-last-tab.patch
  43. 1 1
      patches/extra/ungoogled-chromium/add-flag-to-convert-popups-to-tabs.patch
  44. 1 1
      patches/extra/ungoogled-chromium/add-flag-to-disable-local-history-expiration.patch
  45. 5 5
      patches/extra/ungoogled-chromium/add-flag-to-hide-extensions-menu.patch
  46. 2 2
      patches/extra/ungoogled-chromium/add-flag-to-hide-fullscreen-exit-ui.patch
  47. 3 3
      patches/extra/ungoogled-chromium/add-flag-to-hide-side-panel-button.patch
  48. 2 2
      patches/extra/ungoogled-chromium/add-flag-to-hide-tab-close-buttons.patch
  49. 4 4
      patches/extra/ungoogled-chromium/add-flag-to-scroll-tabs.patch
  50. 1 1
      patches/extra/ungoogled-chromium/add-flag-to-show-avatar-button.patch
  51. 6 2
      patches/extra/ungoogled-chromium/add-flags-for-existing-switches.patch
  52. 9 9
      patches/extra/ungoogled-chromium/add-flags-for-referrer-customization.patch
  53. 2 2
      patches/extra/ungoogled-chromium/add-ipv6-probing-option.patch
  54. 8 8
      patches/extra/ungoogled-chromium/add-suggestions-url-field.patch
  55. 1 1
      patches/extra/ungoogled-chromium/add-ungoogled-flag-headers.patch
  56. 7 7
      patches/extra/ungoogled-chromium/disable-download-quarantine.patch
  57. 1 1
      patches/extra/ungoogled-chromium/disable-remote-optimization-guide.patch
  58. 2 2
      patches/extra/ungoogled-chromium/disable-webgl-renderer-info.patch
  59. 1 1
      patches/extra/ungoogled-chromium/enable-default-prefetch-privacy-changes.patch
  60. 1 1
      patches/extra/ungoogled-chromium/enable-page-saving-on-more-pages.patch
  61. 2 2
      patches/extra/ungoogled-chromium/enable-paste-and-go-new-tab-button.patch
  62. 7 12
      patches/extra/ungoogled-chromium/first-run-page.patch
  63. 1 1
      patches/extra/ungoogled-chromium/prepopulated-search-engines.patch
  64. 25 9
      patches/extra/ungoogled-chromium/remove-uneeded-ui.patch
  65. 0 2
      patches/series
  66. 251 9
      pruning.list
  67. 1 0
      utils/prune_binaries.py

+ 1 - 1
chromium_version.txt

@@ -1 +1 @@
-120.0.6099.234
+121.0.6167.85

+ 1 - 0
docs/flags.md

@@ -88,6 +88,7 @@ Chromium contains switches that do no have corresponding entries in `chrome://fl
   `--disable-webgl` | Disable all versions of WebGL.
   `--enable-low-end-device-mode` | Force low-end device mode when set.
   `--force-dark-mode` | Forces dark mode in UI for platforms that support it.
+  `--no-default-browser-check` | Disables the default browser check.
   `--no-pings` | Don't send hyperlink auditing pings.
   `--webrtc-ip-handling-policy` | Restrict which IP addresses and interfaces WebRTC uses.
 - ### Available only on desktop

File diff suppressed because it is too large
+ 114 - 238
domain_substitution.list


+ 6 - 6
patches/core/bromite/disable-fetching-field-trials.patch

@@ -23,8 +23,8 @@ Subject: Disable fetching of all field trials
       */
      public static boolean getFieldTrialParamByFeatureAsBoolean(
              String featureName, String paramName, boolean defaultValue) {
--        return ChromeFeatureMap.getInstance().getFieldTrialParamByFeatureAsBoolean(
--                featureName, paramName, defaultValue);
+-        return ChromeFeatureMap.getInstance()
+-                .getFieldTrialParamByFeatureAsBoolean(featureName, paramName, defaultValue);
 +        return defaultValue;
      }
  
@@ -33,8 +33,8 @@ Subject: Disable fetching of all field trials
       */
      public static int getFieldTrialParamByFeatureAsInt(
              String featureName, String paramName, int defaultValue) {
--        return ChromeFeatureMap.getInstance().getFieldTrialParamByFeatureAsInt(
--                featureName, paramName, defaultValue);
+-        return ChromeFeatureMap.getInstance()
+-                .getFieldTrialParamByFeatureAsInt(featureName, paramName, defaultValue);
 +        return defaultValue;
      }
  
@@ -43,8 +43,8 @@ Subject: Disable fetching of all field trials
       */
      public static double getFieldTrialParamByFeatureAsDouble(
              String featureName, String paramName, double defaultValue) {
--        return ChromeFeatureMap.getInstance().getFieldTrialParamByFeatureAsDouble(
--                featureName, paramName, defaultValue);
+-        return ChromeFeatureMap.getInstance()
+-                .getFieldTrialParamByFeatureAsDouble(featureName, paramName, defaultValue);
 +        return defaultValue;
      }
  

+ 46 - 43
patches/core/inox-patchset/0001-fix-building-without-safebrowsing.patch

@@ -1,6 +1,6 @@
 --- a/chrome/browser/BUILD.gn
 +++ b/chrome/browser/BUILD.gn
-@@ -2388,7 +2388,6 @@ static_library("browser") {
+@@ -2358,7 +2358,6 @@ static_library("browser") {
      "//components/reporting/util:task_runner_context",
      "//components/resources",
      "//components/safe_browsing/content/browser",
@@ -8,7 +8,7 @@
      "//components/safe_browsing/content/browser:safe_browsing_service",
      "//components/safe_browsing/content/browser/password_protection",
      "//components/safe_browsing/content/browser/web_ui",
-@@ -3809,8 +3808,6 @@ static_library("browser") {
+@@ -3782,8 +3781,6 @@ static_library("browser") {
        "download/download_commands.h",
        "download/download_crx_util.cc",
        "download/download_crx_util.h",
@@ -50,7 +50,7 @@
  #include "chrome/browser/shell_integration.h"
  #include "chrome/browser/site_isolation/prefs_observer.h"
  #include "chrome/browser/ssl/secure_origin_prefs_observer.h"
-@@ -436,8 +435,6 @@ void BrowserProcessImpl::StartTearDown()
+@@ -440,8 +439,6 @@ void BrowserProcessImpl::StartTearDown()
  #endif
    metrics_services_manager_.reset();
    intranet_redirect_detector_.reset();
@@ -59,7 +59,7 @@
    network_time_tracker_.reset();
  
  #if !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_CHROMEOS_ASH)
-@@ -1084,14 +1081,6 @@ StatusTray* BrowserProcessImpl::status_t
+@@ -1088,14 +1085,6 @@ StatusTray* BrowserProcessImpl::status_t
    return status_tray_.get();
  }
  
@@ -74,7 +74,7 @@
  subresource_filter::RulesetService*
  BrowserProcessImpl::subresource_filter_ruleset_service() {
    DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
-@@ -1336,26 +1325,6 @@ void BrowserProcessImpl::CreateBackgroun
+@@ -1344,26 +1333,6 @@ void BrowserProcessImpl::CreateBackgroun
  #endif
  }
  
@@ -103,7 +103,7 @@
    created_subresource_filter_ruleset_service_ = true;
 --- a/chrome/browser/browser_process_impl.h
 +++ b/chrome/browser/browser_process_impl.h
-@@ -195,7 +195,6 @@ class BrowserProcessImpl : public Browse
+@@ -197,7 +197,6 @@ class BrowserProcessImpl : public Browse
        std::unique_ptr<BackgroundModeManager> manager) override;
  #endif
    StatusTray* status_tray() override;
@@ -111,7 +111,7 @@
    subresource_filter::RulesetService* subresource_filter_ruleset_service()
        override;
  
-@@ -355,9 +354,6 @@ class BrowserProcessImpl : public Browse
+@@ -357,9 +356,6 @@ class BrowserProcessImpl : public Browse
    std::unique_ptr<BackgroundModeManager> background_mode_manager_;
  #endif
  
@@ -123,15 +123,15 @@
        subresource_filter_ruleset_service_;
 --- a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc
 +++ b/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc
-@@ -66,7 +66,6 @@
- #include "chrome/browser/profiles/keep_alive/profile_keep_alive_types.h"
+@@ -65,7 +65,6 @@
  #include "chrome/browser/profiles/keep_alive/scoped_profile_keep_alive.h"
  #include "chrome/browser/profiles/profile.h"
+ #include "chrome/browser/reading_list/reading_list_model_factory.h"
 -#include "chrome/browser/safe_browsing/safe_browsing_service.h"
  #include "chrome/browser/safe_browsing/verdict_cache_manager_factory.h"
  #include "chrome/browser/search_engines/template_url_service_factory.h"
  #include "chrome/browser/share/share_history.h"
-@@ -627,10 +626,6 @@ void ChromeBrowsingDataRemoverDelegate::
+@@ -633,10 +632,6 @@ void ChromeBrowsingDataRemoverDelegate::
      base::RecordAction(UserMetricsAction("ClearBrowsingData_Cookies"));
  
      network::mojom::NetworkContext* safe_browsing_context = nullptr;
@@ -144,7 +144,7 @@
      browsing_data::RemoveFederatedSiteSettingsData(delete_begin_, delete_end_,
 --- a/chrome/browser/chrome_content_browser_client.cc
 +++ b/chrome/browser/chrome_content_browser_client.cc
-@@ -1063,34 +1063,6 @@ void SetApplicationLocaleOnIOThread(cons
+@@ -1060,34 +1060,6 @@ void SetApplicationLocaleOnIOThread(cons
    GetIOThreadApplicationLocale() = locale;
  }
  
@@ -178,8 +178,8 @@
 -
  #if BUILDFLAG(ENABLE_EXTENSIONS)
  
- AppLoadedInTabSource ClassifyAppLoadedInTabSource(
-@@ -5201,14 +5173,9 @@ ChromeContentBrowserClient::CreateThrott
+ // Returns true if there is is an extension matching `url` in
+@@ -5169,14 +5141,9 @@ ChromeContentBrowserClient::CreateThrott
    throttles.push_back(std::make_unique<PolicyBlocklistNavigationThrottle>(
        handle, handle->GetWebContents()->GetBrowserContext()));
  
@@ -195,7 +195,7 @@
        base::BindOnce(&HandleSSLErrorWrapper), base::BindOnce(&IsInHostedApp),
        base::BindOnce(
            &ShouldIgnoreSslInterstitialBecauseNavigationDefaultedToHttps)));
-@@ -5254,16 +5221,6 @@ ChromeContentBrowserClient::CreateThrott
+@@ -5222,16 +5189,6 @@ ChromeContentBrowserClient::CreateThrott
        &throttles);
  #endif
  
@@ -212,7 +212,7 @@
    if (base::FeatureList::IsEnabled(safe_browsing::kDelayedWarnings)) {
      throttles.push_back(
          std::make_unique<safe_browsing::DelayedWarningNavigationThrottle>(
-@@ -5542,8 +5499,6 @@ void ChromeContentBrowserClient::Overrid
+@@ -5515,8 +5472,6 @@ void ChromeContentBrowserClient::Overrid
  void ChromeContentBrowserClient::InitOnUIThread() {
    DCHECK_CURRENTLY_ON(BrowserThread::UI);
  
@@ -246,7 +246,7 @@
  }  // namespace
 --- a/chrome/browser/download/chrome_download_manager_delegate.cc
 +++ b/chrome/browser/download/chrome_download_manager_delegate.cc
-@@ -473,13 +473,6 @@ void ChromeDownloadManagerDelegate::SetD
+@@ -474,13 +474,6 @@ void ChromeDownloadManagerDelegate::SetD
  
    download_manager_ = dm;
  
@@ -260,7 +260,7 @@
    if (download_manager_) {
      download_manager_->AddObserver(this);
    }
-@@ -875,17 +868,6 @@ void ChromeDownloadManagerDelegate::Choo
+@@ -874,17 +867,6 @@ void ChromeDownloadManagerDelegate::Choo
  void ChromeDownloadManagerDelegate::SanitizeSavePackageResourceName(
      base::FilePath* filename,
      const GURL& source_url) {
@@ -298,7 +298,7 @@
        is_being_revived_(false) {}
  
  #if BUILDFLAG(FULL_SAFE_BROWSING)
-@@ -534,13 +534,13 @@ void DownloadItemModel::SetShouldPreferO
+@@ -535,13 +535,13 @@ void DownloadItemModel::SetShouldPreferO
    data->should_prefer_opening_in_browser_ = preference;
  }
  
@@ -315,7 +315,7 @@
    DownloadItemModelData* data = DownloadItemModelData::GetOrCreate(download_);
    data->danger_level_ = danger_level;
  }
-@@ -717,9 +717,6 @@ bool DownloadItemModel::IsCommandEnabled
+@@ -718,9 +718,6 @@ bool DownloadItemModel::IsCommandEnabled
        // filename. Don't base an "Always open" decision based on it. Also
        // exclude extensions.
        return download_->CanOpenDownload() &&
@@ -327,7 +327,7 @@
        return !download_->IsSavePackageDownload() &&
 --- a/chrome/browser/download/download_prefs.cc
 +++ b/chrome/browser/download/download_prefs.cc
-@@ -263,14 +263,7 @@ DownloadPrefs::DownloadPrefs(Profile* pr
+@@ -261,14 +261,7 @@ DownloadPrefs::DownloadPrefs(Profile* pr
          base::FilePath::StringType(1, base::FilePath::kExtensionSeparator) +
          extension);
  
@@ -343,7 +343,7 @@
    }
  }
  
-@@ -449,10 +442,6 @@ bool DownloadPrefs::IsAutoOpenByPolicy(c
+@@ -447,10 +440,6 @@ bool DownloadPrefs::IsAutoOpenByPolicy(c
  bool DownloadPrefs::EnableAutoOpenByUserBasedOnExtension(
      const base::FilePath& file_name) {
    base::FilePath::StringType extension = file_name.Extension();
@@ -412,7 +412,7 @@
  #include "chrome/browser/download/download_file_icon_extractor.h"
  #include "chrome/browser/download/download_open_prompt.h"
  #include "chrome/browser/download/download_prefs.h"
-@@ -1368,9 +1367,6 @@ DownloadsAcceptDangerFunction::Downloads
+@@ -1376,9 +1375,6 @@ DownloadsAcceptDangerFunction::Downloads
  
  DownloadsAcceptDangerFunction::~DownloadsAcceptDangerFunction() {}
  
@@ -422,7 +422,7 @@
  ExtensionFunction::ResponseAction DownloadsAcceptDangerFunction::Run() {
    absl::optional<downloads::AcceptDanger::Params> params =
        downloads::AcceptDanger::Params::Create(args());
-@@ -1408,42 +1404,7 @@ void DownloadsAcceptDangerFunction::Prom
+@@ -1416,42 +1412,7 @@ void DownloadsAcceptDangerFunction::Prom
      return;
    }
    RecordApiFunctions(DOWNLOADS_FUNCTION_ACCEPT_DANGER);
@@ -548,7 +548,7 @@
            referrer_entries)));
 --- a/chrome/browser/extensions/api/webstore_private/webstore_private_api.cc
 +++ b/chrome/browser/extensions/api/webstore_private/webstore_private_api.cc
-@@ -717,18 +717,6 @@ void WebstorePrivateBeginInstallWithMani
+@@ -704,18 +704,6 @@ void WebstorePrivateBeginInstallWithMani
  
  void WebstorePrivateBeginInstallWithManifest3Function::
      ReportFrictionAcceptedEvent() {
@@ -567,7 +567,7 @@
  }
  
  void WebstorePrivateBeginInstallWithManifest3Function::OnInstallPromptDone(
-@@ -1236,56 +1224,9 @@ WebstorePrivateGetReferrerChainFunction:
+@@ -1219,56 +1207,9 @@ WebstorePrivateGetReferrerChainFunction:
  
  ExtensionFunction::ResponseAction
  WebstorePrivateGetReferrerChainFunction::Run() {
@@ -745,7 +745,7 @@
    sources = [
      "chrome_controller_client.cc",
      "chrome_controller_client.h",
-@@ -68,6 +69,7 @@ static_library("safe_browsing") {
+@@ -70,6 +71,7 @@ static_library("safe_browsing") {
      "//mojo/public/cpp/system",
      "//services/preferences/public/cpp",
    ]
@@ -753,7 +753,7 @@
  
    if (safe_browsing_mode != 0) {
      # "Safe Browsing Basic" files used for safe browsing in full mode
-@@ -495,6 +497,7 @@ static_library("advanced_protection") {
+@@ -501,6 +503,7 @@ static_library("advanced_protection") {
  }
  
  source_set("metrics_collector") {
@@ -761,7 +761,7 @@
    sources = [
      "safe_browsing_metrics_collector_factory.cc",
      "safe_browsing_metrics_collector_factory.h",
-@@ -514,6 +517,7 @@ source_set("metrics_collector") {
+@@ -520,6 +523,7 @@ source_set("metrics_collector") {
      "//components/safe_browsing/core/common:safe_browsing_prefs",
      "//content/public/browser",
    ]
@@ -866,7 +866,7 @@
  
 --- a/chrome/browser/ui/BUILD.gn
 +++ b/chrome/browser/ui/BUILD.gn
-@@ -5032,7 +5032,6 @@ static_library("ui") {
+@@ -5142,7 +5142,6 @@ static_library("ui") {
        "views/download/bubble/download_dialog_view.h",
        "views/download/bubble/download_toolbar_button_view.cc",
        "views/download/bubble/download_toolbar_button_view.h",
@@ -876,7 +876,7 @@
        "views/download/download_item_view.cc",
 --- a/chrome/browser/ui/tab_helpers.cc
 +++ b/chrome/browser/ui/tab_helpers.cc
-@@ -471,22 +471,6 @@ void TabHelpers::AttachTabHelpers(WebCon
+@@ -475,22 +475,6 @@ void TabHelpers::AttachTabHelpers(WebCon
    //     See https://crbug.com/910288.
    resource_coordinator::ResourceCoordinatorTabHelper::CreateForWebContents(
        web_contents);
@@ -909,7 +909,7 @@
  #include "chrome/browser/download/download_history.h"
  #include "chrome/browser/download/download_item_model.h"
  #include "chrome/browser/download/download_item_warning_data.h"
-@@ -198,13 +197,6 @@ void DownloadsDOMHandler::SaveDangerousR
+@@ -199,13 +198,6 @@ void DownloadsDOMHandler::SaveDangerousR
    }
  
    CountDownloadsDOMEvents(DOWNLOADS_DOM_EVENT_SAVE_DANGEROUS);
@@ -923,7 +923,7 @@
  }
  
  void DownloadsDOMHandler::DiscardDangerous(const std::string& id) {
-@@ -400,12 +392,6 @@ void DownloadsDOMHandler::RemoveDownload
+@@ -401,12 +393,6 @@ void DownloadsDOMHandler::RemoveDownload
    IdSet ids;
  
    for (auto* download : to_remove) {
@@ -936,7 +936,7 @@
      DownloadItemModel item_model(download);
      if (!item_model.ShouldShowInShelf() ||
          download->GetState() == download::DownloadItem::IN_PROGRESS) {
-@@ -533,44 +519,6 @@ void DownloadsDOMHandler::FinalizeRemova
+@@ -546,44 +532,6 @@ void DownloadsDOMHandler::FinalizeRemova
    }
  }
  
@@ -1012,7 +1012,7 @@
    bool IsDeletingHistoryAllowed();
 --- a/chrome/browser/ui/webui/interstitials/interstitial_ui.cc
 +++ b/chrome/browser/ui/webui/interstitials/interstitial_ui.cc
-@@ -281,67 +281,6 @@ CreateHttpsOnlyModePage(content::WebCont
+@@ -281,68 +281,6 @@ CreateHttpsOnlyModePage(content::WebCont
        security_interstitials::https_only_mode::HttpInterstitialState{});
  }
  
@@ -1048,15 +1048,16 @@
 -      threat_type = safe_browsing::SB_THREAT_TYPE_BILLING;
 -    }
 -  }
+-  auto* primary_main_frame = web_contents->GetPrimaryMainFrame();
 -  const content::GlobalRenderFrameHostId primary_main_frame_id =
--      web_contents->GetPrimaryMainFrame()->GetGlobalId();
+-      primary_main_frame->GetGlobalId();
 -  safe_browsing::SafeBrowsingBlockingPage::UnsafeResource resource;
 -  resource.url = request_url;
 -  resource.is_subresource = request_url != main_frame_url;
 -  resource.is_subframe = false;
 -  resource.threat_type = threat_type;
 -  resource.render_process_id = primary_main_frame_id.child_id;
--  resource.render_frame_id = primary_main_frame_id.frame_routing_id;
+-  resource.render_frame_token = primary_main_frame->GetFrameToken().value();
 -  resource.threat_source =
 -      g_browser_process->safe_browsing_service()
 -          ->database_manager()
@@ -1080,7 +1081,7 @@
  std::unique_ptr<EnterpriseBlockPage> CreateEnterpriseBlockPage(
      content::WebContents* web_contents) {
    const GURL kRequestUrl("https://enterprise-block.example.net");
-@@ -351,92 +290,6 @@ std::unique_ptr<EnterpriseBlockPage> Cre
+@@ -352,94 +290,6 @@ std::unique_ptr<EnterpriseBlockPage> Cre
                                                          kRequestUrl));
  }
  
@@ -1091,15 +1092,16 @@
 -  auto* ui_manager =
 -      g_browser_process->safe_browsing_service()->ui_manager().get();
 -
+-  auto* primary_main_frame = web_contents->GetPrimaryMainFrame();
 -  const content::GlobalRenderFrameHostId primary_main_frame_id =
--      web_contents->GetPrimaryMainFrame()->GetGlobalId();
+-      primary_main_frame->GetGlobalId();
 -  safe_browsing::SafeBrowsingBlockingPage::UnsafeResource resource;
 -  resource.url = kRequestUrl;
 -  resource.is_subresource = false;
 -  resource.is_subframe = false;
 -  resource.threat_type = safe_browsing::SB_THREAT_TYPE_MANAGED_POLICY_WARN;
 -  resource.render_process_id = primary_main_frame_id.child_id;
--  resource.render_frame_id = primary_main_frame_id.frame_routing_id;
+-  resource.render_frame_token = primary_main_frame->GetFrameToken().value();
 -  resource.threat_source =
 -      g_browser_process->safe_browsing_service()
 -          ->database_manager()
@@ -1142,15 +1144,16 @@
 -      is_giant_webview = true;
 -    }
 -  }
+-  auto* primary_main_frame = web_contents->GetPrimaryMainFrame();
 -  const content::GlobalRenderFrameHostId primary_main_frame_id =
--      web_contents->GetPrimaryMainFrame()->GetGlobalId();
+-      primary_main_frame->GetGlobalId();
 -  safe_browsing::SafeBrowsingBlockingPage::UnsafeResource resource;
 -  resource.url = request_url;
 -  resource.is_subresource = request_url != main_frame_url;
 -  resource.is_subframe = false;
 -  resource.threat_type = threat_type;
 -  resource.render_process_id = primary_main_frame_id.child_id;
--  resource.render_frame_id = primary_main_frame_id.frame_routing_id;
+-  resource.render_frame_token = primary_main_frame->GetFrameToken().value();
 -  resource.threat_source =
 -      g_browser_process->safe_browsing_service()
 -          ->database_manager()
@@ -1173,7 +1176,7 @@
  #if BUILDFLAG(ENABLE_CAPTIVE_PORTAL_DETECTION)
  std::unique_ptr<CaptivePortalBlockingPage> CreateCaptivePortalBlockingPage(
      content::WebContents* web_contents) {
-@@ -543,12 +396,8 @@ void InterstitialHTMLSource::StartDataRe
+@@ -546,12 +396,8 @@ void InterstitialHTMLSource::StartDataRe
      interstitial_delegate = CreateMITMSoftwareBlockingPage(web_contents);
    } else if (path_without_query == "/blocked-interception") {
      interstitial_delegate = CreateBlockedInterceptionBlockingPage(web_contents);
@@ -1186,7 +1189,7 @@
    } else if (path_without_query == "/clock") {
      interstitial_delegate = CreateBadClockBlockingPage(web_contents);
    } else if (path_without_query == "/lookalike") {
-@@ -563,16 +412,12 @@ void InterstitialHTMLSource::StartDataRe
+@@ -566,16 +412,12 @@ void InterstitialHTMLSource::StartDataRe
      interstitial_delegate = CreateHttpsOnlyModePage(web_contents);
    }
  

+ 10 - 10
patches/core/inox-patchset/0003-disable-autofill-download-manager.patch

@@ -1,9 +1,9 @@
---- a/components/autofill/core/browser/autofill_download_manager.cc
-+++ b/components/autofill/core/browser/autofill_download_manager.cc
-@@ -758,95 +758,6 @@ std::tuple<GURL, std::string> AutofillDo
+--- a/components/autofill/core/browser/crowdsourcing/autofill_crowdsourcing_manager.cc
++++ b/components/autofill/core/browser/crowdsourcing/autofill_crowdsourcing_manager.cc
+@@ -760,95 +760,6 @@ std::tuple<GURL, std::string> AutofillCr
  }
  
- bool AutofillDownloadManager::StartRequest(FormRequestData request_data) {
+ bool AutofillCrowdsourcingManager::StartRequest(FormRequestData request_data) {
 -  // REQUEST_UPLOADs take no IsolationInfo because Password Manager uploads when
 -  // RenderFrameHostImpl::DidCommitNavigation() is called, in which case
 -  // AutofillDriver::IsolationInfo() may crash because there is no committing
@@ -11,7 +11,7 @@
 -  // information about the response is passed to the renderer, or is otherwise
 -  // visible to a page. See crbug/1176635#c22.
 -  DCHECK(
--      (request_data.request_type == AutofillDownloadManager::REQUEST_UPLOAD) ==
+-      (request_data.request_type == AutofillCrowdsourcingManager::REQUEST_UPLOAD) ==
 -      !request_data.isolation_info);
 -
 -  // Get the URL and method to use for this request.
@@ -19,9 +19,9 @@
 -
 -  // Track the URL length for GET queries because the URL length can be in the
 -  // thousands when rich metadata is enabled.
--  if (request_data.request_type == AutofillDownloadManager::REQUEST_QUERY &&
+-  if (request_data.request_type == AutofillCrowdsourcingManager::REQUEST_QUERY &&
 -      method == "GET") {
--    base::UmaHistogramCounts100000("Autofill.Query.GetUrlLength",
+-    base::UmaHistogramCounts100000(kUmaGetUrlLength,
 -                                   request_url.spec().length());
 -  }
 -
@@ -72,7 +72,7 @@
 -
 -  if (method == "POST") {
 -    static constexpr char content_type[] = "application/x-protobuf";
--    absl::optional<std::string> payload = GetAPIBodyPayload(
+-    std::optional<std::string> payload = GetAPIBodyPayload(
 -        std::move(request_data.payload), request_data.request_type);
 -    if (!payload) {
 -      return false;
@@ -84,13 +84,13 @@
 -
 -  // Transfer ownership of the loader into url_loaders_. Temporarily hang
 -  // onto the raw pointer to use it as a key and to kick off the request;
--  // transferring ownership (std::move) invalidates the |simple_loader|
+-  // transferring ownership (std::move) invalidates the `simple_loader`
 -  // variable.
 -  auto* raw_simple_loader = simple_loader.get();
 -  url_loaders_.push_back(std::move(simple_loader));
 -  raw_simple_loader->DownloadToStringOfUnboundedSizeUntilCrashAndDie(
 -      client_->GetURLLoaderFactory().get(),
--      base::BindOnce(&AutofillDownloadManager::OnSimpleLoaderComplete,
+-      base::BindOnce(&AutofillCrowdsourcingManager::OnSimpleLoaderComplete,
 -                     base::Unretained(this), std::move(--url_loaders_.end()),
 -                     std::move(request_data), AutofillTickClock::NowTicks()));
    return true;

+ 1 - 1
patches/core/inox-patchset/0009-disable-google-ipv6-probes.patch

@@ -1,6 +1,6 @@
 --- a/net/dns/host_resolver_manager.cc
 +++ b/net/dns/host_resolver_manager.cc
-@@ -159,10 +159,10 @@ const unsigned kMinimumTTLSeconds = kCac
+@@ -157,10 +157,10 @@ const unsigned kMinimumTTLSeconds = kCac
  // cached.
  const int kIPv6ProbePeriodMs = 1000;
  

+ 1 - 1
patches/core/inox-patchset/0021-disable-rlz.patch

@@ -2,7 +2,7 @@
 
 --- a/BUILD.gn
 +++ b/BUILD.gn
-@@ -447,14 +447,6 @@ group("gn_all") {
+@@ -449,14 +449,6 @@ group("gn_all") {
        deps += [ "//chromeos:chromeos_unittests" ]
      }
  

+ 14 - 14
patches/core/iridium-browser/all-add-trk-prefixes-to-possibly-evil-connections.patch

@@ -101,7 +101,7 @@ by default.
      "-----BEGIN PUBLIC KEY-----"
 --- a/chrome/browser/media/webrtc/webrtc_event_log_uploader.cc
 +++ b/chrome/browser/media/webrtc/webrtc_event_log_uploader.cc
-@@ -127,7 +127,7 @@ void OnURLLoadUploadProgress(uint64_t cu
+@@ -111,7 +111,7 @@ void OnURLLoadUploadProgress(uint64_t cu
  }  // namespace
  
  const char WebRtcEventLogUploaderImpl::kUploadURL[] =
@@ -112,7 +112,7 @@ by default.
      scoped_refptr<base::SequencedTaskRunner> task_runner)
 --- a/chrome/browser/media/webrtc/webrtc_log_uploader.cc
 +++ b/chrome/browser/media/webrtc/webrtc_log_uploader.cc
-@@ -500,7 +500,7 @@ void WebRtcLogUploader::UploadCompressed
+@@ -525,7 +525,7 @@ void WebRtcLogUploader::UploadCompressed
            }
          })");
  
@@ -227,10 +227,10 @@ by default.
  
 --- a/chrome/installer/setup/google_chrome_behaviors.cc
 +++ b/chrome/installer/setup/google_chrome_behaviors.cc
-@@ -36,7 +36,7 @@ namespace installer {
+@@ -37,7 +37,7 @@ namespace installer {
  namespace {
  
- constexpr base::WStringPiece kUninstallSurveyUrl(
+ constexpr std::wstring_view kUninstallSurveyUrl(
 -    L"https://support.google.com/chrome?p=chrome_uninstall_survey");
 +    L"trk:253:https://support.google.com/chrome?p=chrome_uninstall_survey");
  
@@ -247,17 +247,17 @@ by default.
  
  const char kVirtualChannel[] = "virtual-channel";
  
---- a/chromeos/ash/components/geolocation/simple_geolocation_provider.cc
-+++ b/chromeos/ash/components/geolocation/simple_geolocation_provider.cc
-@@ -20,7 +20,7 @@ namespace ash {
- namespace {
- 
- const char kDefaultGeolocationProviderUrl[] =
--    "https://www.googleapis.com/geolocation/v1/geolocate?";
-+    "trk:215:https://www.googleapis.com/geolocation/v1/geolocate?";
+--- a/chromeos/ash/components/geolocation/simple_geolocation_provider.h
++++ b/chromeos/ash/components/geolocation/simple_geolocation_provider.h
+@@ -91,7 +91,7 @@ class COMPONENT_EXPORT(CHROMEOS_ASH_COMP
  
- }  // namespace
+  private:
+   static constexpr char kGeolocationProviderUrl[] =
+-      "https://www.googleapis.com/geolocation/v1/geolocate?";
++      "trk:215:https://www.googleapis.com/geolocation/v1/geolocate?";
  
+   // This class is a singleton.
+   explicit SimpleGeolocationProvider(
 --- a/components/drive/service/drive_api_service.cc
 +++ b/components/drive/service/drive_api_service.cc
 @@ -77,9 +77,9 @@ namespace drive {
@@ -391,7 +391,7 @@ by default.
  
 --- a/content/browser/webauth/webauth_request_security_checker.h
 +++ b/content/browser/webauth/webauth_request_security_checker.h
-@@ -40,9 +40,9 @@ class CONTENT_EXPORT WebAuthRequestSecur
+@@ -86,9 +86,9 @@ class CONTENT_EXPORT WebAuthRequestSecur
    // Legacy App IDs, which google.com origins are allowed to assert for
    // compatibility reasons.
    static constexpr char kGstaticAppId[] =

+ 1 - 1
patches/core/iridium-browser/safe_browsing-disable-incident-reporting.patch

@@ -56,7 +56,7 @@ the URL so we get notified if this happens again in the future).
  IncidentReportingService::IncidentReportingService(
 --- a/chrome/browser/safe_browsing/safe_browsing_service.cc
 +++ b/chrome/browser/safe_browsing/safe_browsing_service.cc
-@@ -299,7 +299,7 @@ SafeBrowsingUIManager* SafeBrowsingServi
+@@ -302,7 +302,7 @@ SafeBrowsingUIManager* SafeBrowsingServi
  }
  
  void SafeBrowsingService::RegisterAllDelayedAnalysis() {

+ 4 - 4
patches/core/ungoogled-chromium/block-trk-and-subdomains.patch

@@ -47,7 +47,7 @@
      std::u16string real_url(text.substr(after_scheme_and_colon));
 --- a/components/url_formatter/url_fixer.cc
 +++ b/components/url_formatter/url_fixer.cc
-@@ -563,6 +563,10 @@ GURL FixupURL(const std::string& text, c
+@@ -576,6 +576,10 @@ GURL FixupURLInternal(const std::string&
      }
    }
  
@@ -60,7 +60,7 @@
      return GURL(parts.scheme.is_valid() ? text : FixupPath(text));
 --- a/content/browser/child_process_security_policy_impl.cc
 +++ b/content/browser/child_process_security_policy_impl.cc
-@@ -817,6 +817,7 @@ ChildProcessSecurityPolicyImpl::ChildPro
+@@ -829,6 +829,7 @@ ChildProcessSecurityPolicyImpl::ChildPro
    RegisterWebSafeScheme(url::kWssScheme);
  #endif  // BUILDFLAG(ENABLE_WEBSOCKETS)
    RegisterWebSafeScheme(url::kDataScheme);
@@ -70,7 +70,7 @@
    // other origins, so we should not treat them as web safe. Remove callers of
 --- a/net/BUILD.gn
 +++ b/net/BUILD.gn
-@@ -1042,6 +1042,8 @@ component("net") {
+@@ -979,6 +979,8 @@ component("net") {
      "url_request/report_sender.h",
      "url_request/static_http_user_agent_settings.cc",
      "url_request/static_http_user_agent_settings.h",
@@ -158,7 +158,7 @@
  
  namespace net {
  
-@@ -597,6 +599,12 @@ URLRequest::URLRequest(base::PassKey<URL
+@@ -591,6 +593,12 @@ URLRequest::URLRequest(base::PassKey<URL
    // Sanity check out environment.
    DCHECK(base::SingleThreadTaskRunner::HasCurrentDefault());
  

+ 2 - 2
patches/core/ungoogled-chromium/disable-crash-reporter.patch

@@ -2,7 +2,7 @@
 
 --- a/chrome/browser/chrome_content_browser_client.cc
 +++ b/chrome/browser/chrome_content_browser_client.cc
-@@ -2594,7 +2594,8 @@ void ChromeContentBrowserClient::AppendE
+@@ -2567,7 +2567,8 @@ void ChromeContentBrowserClient::AppendE
      command_line->AppendSwitchASCII(switches::kMetricsClientID,
                                      client_info->client_id);
    }
@@ -29,7 +29,7 @@
                              const base::FilePath& exe_path,
 --- a/components/gwp_asan/client/gwp_asan.cc
 +++ b/components/gwp_asan/client/gwp_asan.cc
-@@ -173,6 +173,11 @@ size_t AllocationSamplingFrequency(const
+@@ -203,6 +203,11 @@ size_t AllocationSamplingFrequency(const
  
  // Exported for testing.
  GWP_ASAN_EXPORT absl::optional<AllocatorSettings> GetAllocatorSettings(

+ 1 - 1
patches/core/ungoogled-chromium/disable-gaia.patch

@@ -3,7 +3,7 @@
 
 --- a/google_apis/gaia/gaia_auth_fetcher.cc
 +++ b/google_apis/gaia/gaia_auth_fetcher.cc
-@@ -259,61 +259,6 @@ void GaiaAuthFetcher::CreateAndStartGaia
+@@ -263,61 +263,6 @@ void GaiaAuthFetcher::CreateAndStartGaia
      network::mojom::CredentialsMode credentials_mode,
      const net::NetworkTrafficAnnotationTag& traffic_annotation) {
    DCHECK(!fetch_pending_) << "Tried to fetch two things at once!";

+ 25 - 15
patches/core/ungoogled-chromium/disable-google-host-detection.patch

@@ -14,7 +14,7 @@
    page_->OnSuggestRequestCreated(std::move(mojom_request));
 --- a/chrome/common/google_url_loader_throttle.cc
 +++ b/chrome/common/google_url_loader_throttle.cc
-@@ -20,10 +20,6 @@
+@@ -21,10 +21,6 @@
  #include "services/network/public/mojom/x_frame_options.mojom.h"
  #include "third_party/abseil-cpp/absl/types/optional.h"
  
@@ -23,9 +23,9 @@
 -#endif
 -
  #if BUILDFLAG(ENABLE_BOUND_SESSION_CREDENTIALS)
- #include "chrome/common/bound_session_request_throttled_listener.h"
+ #include "chrome/common/bound_session_request_throttled_handler.h"
  #include "components/signin/public/base/signin_switches.h"
-@@ -76,53 +72,6 @@ void GoogleURLLoaderThrottle::DetachFrom
+@@ -114,60 +110,6 @@ void GoogleURLLoaderThrottle::DetachFrom
  void GoogleURLLoaderThrottle::WillStartRequest(
      network::ResourceRequest* request,
      bool* defer) {
@@ -64,13 +64,20 @@
 -  }
 -#endif
 -#if BUILDFLAG(ENABLE_BOUND_SESSION_CREDENTIALS)
+-  // `network::mojom::RequestDestination::kDocument` means that this is a
+-  // navigation request.
+-  is_main_frame_navigation_ =
+-      request->is_outermost_main_frame &&
+-      request->destination == network::mojom::RequestDestination::kDocument;
 -  if (switches::IsBoundSessionCredentialsEnabled() && request->SendsCookies() &&
--      ShouldDeferRequestForBoundSession(request->url)) {
--    CHECK(bound_session_request_throttled_listener_);
+-      ShouldDeferRequestForBoundSession(
+-          request->url,
+-          dynamic_params_->bound_session_throttler_params.get())) {
+-    CHECK(bound_session_request_throttled_handler_);
 -    *defer = true;
 -    CHECK(!bound_session_request_throttled_start_time_.has_value());
 -    bound_session_request_throttled_start_time_ = base::TimeTicks::Now();
--    bound_session_request_throttled_listener_->OnRequestBlockedOnCookie(
+-    bound_session_request_throttled_handler_->HandleRequestBlockedOnCookie(
 -        base::BindOnce(
 -            &GoogleURLLoaderThrottle::OnDeferRequestForBoundSessionCompleted,
 -            weak_factory_.GetWeakPtr()));
@@ -79,7 +86,7 @@
  }
  
  void GoogleURLLoaderThrottle::WillRedirectRequest(
-@@ -132,50 +81,6 @@ void GoogleURLLoaderThrottle::WillRedire
+@@ -177,52 +119,6 @@ void GoogleURLLoaderThrottle::WillRedire
      std::vector<std::string>* to_be_removed_headers,
      net::HttpRequestHeaders* modified_headers,
      net::HttpRequestHeaders* modified_cors_exempt_headers) {
@@ -116,12 +123,14 @@
 -#endif
 -#if BUILDFLAG(ENABLE_BOUND_SESSION_CREDENTIALS)
 -  if (switches::IsBoundSessionCredentialsEnabled() &&
--      ShouldDeferRequestForBoundSession(redirect_info->new_url)) {
--    CHECK(bound_session_request_throttled_listener_);
+-      ShouldDeferRequestForBoundSession(
+-          redirect_info->new_url,
+-          dynamic_params_->bound_session_throttler_params.get())) {
+-    CHECK(bound_session_request_throttled_handler_);
 -    *defer = true;
 -    CHECK(!bound_session_request_throttled_start_time_.has_value());
 -    bound_session_request_throttled_start_time_ = base::TimeTicks::Now();
--    bound_session_request_throttled_listener_->OnRequestBlockedOnCookie(
+-    bound_session_request_throttled_handler_->HandleRequestBlockedOnCookie(
 -        base::BindOnce(
 -            &GoogleURLLoaderThrottle::OnDeferRequestForBoundSessionCompleted,
 -            weak_factory_.GetWeakPtr()));
@@ -130,7 +139,7 @@
  }
  
  #if BUILDFLAG(ENABLE_EXTENSIONS)
-@@ -183,23 +88,6 @@ void GoogleURLLoaderThrottle::WillProces
+@@ -230,23 +126,6 @@ void GoogleURLLoaderThrottle::WillProces
      const GURL& response_url,
      network::mojom::URLResponseHead* response_head,
      bool* defer) {
@@ -455,7 +464,7 @@
  
 --- a/components/page_load_metrics/browser/page_load_metrics_util.cc
 +++ b/components/page_load_metrics/browser/page_load_metrics_util.cc
-@@ -281,9 +281,7 @@ bool DidObserveLoadingBehaviorInAnyFrame
+@@ -283,9 +283,7 @@ bool DidObserveLoadingBehaviorInAnyFrame
  }
  
  bool IsGoogleSearchHostname(const GURL& url) {
@@ -629,10 +638,10 @@
  }  // namespace variations
 --- a/net/base/url_util.cc
 +++ b/net/base/url_util.cc
-@@ -489,27 +489,6 @@ bool HasGoogleHost(const GURL& url) {
+@@ -491,28 +491,6 @@ bool HasGoogleHost(const GURL& url) {
  }
  
- bool IsGoogleHost(base::StringPiece host) {
+ bool IsGoogleHost(std::string_view host) {
 -  static const char* kGoogleHostSuffixes[] = {
 -      ".google.com",
 -      ".youtube.com",
@@ -651,8 +660,9 @@
 -    // Here it's possible to get away with faster case-sensitive comparisons
 -    // because the list above is all lowercase, and a GURL's host name will
 -    // always be canonicalized to lowercase as well.
--    if (base::EndsWith(host, suffix))
+-    if (host.ends_with(suffix)) {
 -      return true;
+-    }
 -  }
    return false;
  }

+ 3 - 3
patches/core/ungoogled-chromium/disable-mei-preload.patch

@@ -7,7 +7,7 @@
 
 --- a/chrome/BUILD.gn
 +++ b/chrome/BUILD.gn
-@@ -384,7 +384,6 @@ if (!is_android && !is_mac) {
+@@ -380,7 +380,6 @@ if (!is_android && !is_mac) {
        }
  
        data_deps += [
@@ -15,11 +15,11 @@
          "//third_party/widevine/cdm",
        ]
        if (invoker.collect_inputs_only) {
-@@ -1258,7 +1257,6 @@ if (is_win) {
+@@ -1247,7 +1246,6 @@ if (is_win) {
        ":optimization_guide_library",
        ":swiftshader_library",
        ":widevine_cdm_library",
 -      "//chrome/browser/resources/media/mei_preload:component_bundle",
      ]
  
-     if (enable_ml_internal) {
+     if (is_chrome_branded) {

+ 3 - 3
patches/core/ungoogled-chromium/disable-privacy-sandbox.patch

@@ -31,7 +31,7 @@
  }
  
  // static
-@@ -753,20 +753,7 @@ bool PrivacySandboxSettingsImpl::IsPriva
+@@ -694,20 +694,7 @@ bool PrivacySandboxSettingsImpl::IsPriva
  }
  
  bool PrivacySandboxSettingsImpl::IsPrivacySandboxEnabled() const {
@@ -53,7 +53,7 @@
  }
  
  void PrivacySandboxSettingsImpl::SetAllPrivacySandboxAllowedForTesting() {
-@@ -791,11 +778,10 @@ void PrivacySandboxSettingsImpl::SetTopi
+@@ -721,11 +708,10 @@ void PrivacySandboxSettingsImpl::SetTopi
  }
  
  void PrivacySandboxSettingsImpl::SetPrivacySandboxEnabled(bool enabled) {
@@ -66,7 +66,7 @@
  }
  
  bool PrivacySandboxSettingsImpl::IsPrivacySandboxCurrentlyUnrestricted() const {
-@@ -882,11 +868,7 @@ PrivacySandboxSettingsImpl::GetPrivacySa
+@@ -798,11 +784,7 @@ PrivacySandboxSettingsImpl::GetPrivacySa
      return Status::kIncognitoProfile;
    }
  

+ 0 - 164
patches/core/ungoogled-chromium/disable-web-environment-integrity.patch

@@ -1,164 +0,0 @@
---- a/android_webview/browser/BUILD.gn
-+++ b/android_webview/browser/BUILD.gn
-@@ -235,7 +235,6 @@ source_set("browser") {
-     "//components/embedder_support:embedder_support",
-     "//components/embedder_support/android:util",
-     "//components/embedder_support/origin_trials",
--    "//components/environment_integrity/android",
-     "//components/favicon_base:favicon_base",
-     "//components/flags_ui",
-     "//components/keyed_service/content",
---- a/chrome/android/chrome_test_java_sources.gni
-+++ b/chrome/android/chrome_test_java_sources.gni
-@@ -194,7 +194,6 @@ chrome_test_java_sources = [
-   "javatests/src/org/chromium/chrome/browser/download/OMADownloadHandlerTest.java",
-   "javatests/src/org/chromium/chrome/browser/download/ServicificationDownloadTest.java",
-   "javatests/src/org/chromium/chrome/browser/download/dialogs/DownloadDialogIncognitoTest.java",
--  "javatests/src/org/chromium/chrome/browser/environment_integrity/EnvironmentIntegrityTest.java",
-   "javatests/src/org/chromium/chrome/browser/externalnav/UrlOverridingTest.java",
-   "javatests/src/org/chromium/chrome/browser/feedback/ChromeFeedbackCollectorTest.java",
-   "javatests/src/org/chromium/chrome/browser/feedback/ConnectivityCheckerTest.java",
---- a/chrome/browser/BUILD.gn
-+++ b/chrome/browser/BUILD.gn
-@@ -3556,7 +3556,6 @@ static_library("browser") {
-       "//components/embedder_support/android:util",
-       "//components/embedder_support/android:web_contents_delegate",
-       "//components/endpoint_fetcher:endpoint_fetcher",
--      "//components/environment_integrity/android",
-       "//components/external_intents/android",
-       "//components/favicon/android",
-       "//components/favicon/core:database",
---- a/components/BUILD.gn
-+++ b/components/BUILD.gn
-@@ -601,7 +601,6 @@ test("components_unittests") {
-       "//components/embedder_support/android:native_java_unittests_java",
-       "//components/embedder_support/android/metrics:test_support_java",
-       "//components/embedder_support/android/metrics:unit_tests",
--      "//components/environment_integrity/android:unit_tests",
-       "//components/gcm_driver/instance_id:test_support",
-       "//components/gcm_driver/instance_id/android:instance_id_driver_java",
-       "//components/gcm_driver/instance_id/android:instance_id_driver_test_support_java",
---- a/components/environment_integrity/android/android_environment_integrity_service.cc
-+++ b/components/environment_integrity/android/android_environment_integrity_service.cc
-@@ -83,25 +83,8 @@ AndroidEnvironmentIntegrityService::GetD
- void AndroidEnvironmentIntegrityService::GetEnvironmentIntegrity(
-     const std::vector<uint8_t>& content_binding,
-     GetEnvironmentIntegrityCallback callback) {
--  if (!base::FeatureList::IsEnabled(
--          blink::features::kWebEnvironmentIntegrity)) {
-     ReportBadMessageAndDeleteThis(
-         "Feature not enabled. IPC call not expected.");
--    return;
--  }
--  if (!integrity_service_->IsIntegrityAvailable()) {
--    std::move(callback).Run(EnvironmentIntegrityResponseCode::kInternalError,
--                            std::vector<uint8_t>());
--    return;
--  }
--
--  const url::Origin& origin =
--      render_frame_host().GetOutermostMainFrame()->GetLastCommittedOrigin();
--  GetDataManager()->GetHandle(
--      origin, base::BindOnce(&AndroidEnvironmentIntegrityService::OnGetHandle,
--                             weak_factory_.GetWeakPtr(),
--                             EnvironmentIntegrityRequest(std::move(callback),
--                                                         content_binding)));
- }
- 
- void AndroidEnvironmentIntegrityService::OnGetHandle(
---- a/content/browser/browser_interface_binders.cc
-+++ b/content/browser/browser_interface_binders.cc
-@@ -129,7 +129,6 @@
- #include "third_party/blink/public/mojom/cookie_store/cookie_store.mojom.h"
- #include "third_party/blink/public/mojom/credentialmanagement/credential_manager.mojom.h"
- #include "third_party/blink/public/mojom/device/device.mojom.h"
--#include "third_party/blink/public/mojom/environment_integrity/environment_integrity_service.mojom.h"
- #include "third_party/blink/public/mojom/feature_observer/feature_observer.mojom.h"
- #include "third_party/blink/public/mojom/file/file_utilities.mojom.h"
- #include "third_party/blink/public/mojom/file_system_access/file_system_access_manager.mojom.h"
-@@ -1150,10 +1149,6 @@ void PopulateBinderMapWithContext(
-     map->Add<blink::mojom::BrowsingTopicsDocumentService>(
-         base::BindRepeating(&BrowsingTopicsDocumentHost::CreateMojoService));
-   }
--  if (base::FeatureList::IsEnabled(blink::features::kWebEnvironmentIntegrity)) {
--    map->Add<blink::mojom::EnvironmentIntegrityService>(base::BindRepeating(
--        &EmptyBinderForFrame<blink::mojom::EnvironmentIntegrityService>));
--  }
- #if !BUILDFLAG(IS_ANDROID)
-   map->Add<blink::mojom::DirectSocketsService>(
-       base::BindRepeating(&DirectSocketsServiceImpl::CreateForFrame));
---- a/third_party/blink/public/mojom/BUILD.gn
-+++ b/third_party/blink/public/mojom/BUILD.gn
-@@ -66,7 +66,6 @@ mojom("mojom_platform") {
-     "dom_storage/session_storage_namespace.mojom",
-     "dom_storage/storage_area.mojom",
-     "drag/drag.mojom",
--    "environment_integrity/environment_integrity_service.mojom",
-     "favicon/favicon_url.mojom",
-     "feature_observer/feature_observer.mojom",
-     "fenced_frame/fenced_frame_config.mojom",
---- a/third_party/blink/renderer/bindings/generated_in_modules.gni
-+++ b/third_party/blink/renderer/bindings/generated_in_modules.gni
-@@ -1936,8 +1936,6 @@ generated_interface_sources_in_modules =
-   "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_entry.h",
-   "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_entry_sync.cc",
-   "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_entry_sync.h",
--  "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_environment_integrity.cc",
--  "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_environment_integrity.h",
-   "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_event_source.cc",
-   "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_event_source.h",
-   "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_ext_blend_func_extended.cc",
---- a/third_party/blink/renderer/bindings/idl_in_modules.gni
-+++ b/third_party/blink/renderer/bindings/idl_in_modules.gni
-@@ -244,8 +244,6 @@ static_idl_files_in_modules = [
-   "//third_party/blink/renderer/modules/encryptedmedia/media_keys_get_status_for_policy.idl",
-   "//third_party/blink/renderer/modules/encryptedmedia/media_keys_policy.idl",
-   "//third_party/blink/renderer/modules/encryptedmedia/navigator_request_media_key_system_access.idl",
--  "//third_party/blink/renderer/modules/environment_integrity/environment_integrity.idl",
--  "//third_party/blink/renderer/modules/environment_integrity/navigator_environment_integrity.idl",
-   "//third_party/blink/renderer/modules/eventsource/event_source.idl",
-   "//third_party/blink/renderer/modules/eventsource/event_source_init.idl",
-   "//third_party/blink/renderer/modules/eyedropper/color_selection_options.idl",
---- a/third_party/blink/renderer/core/origin_trials/origin_trial_context.cc
-+++ b/third_party/blink/renderer/core/origin_trials/origin_trial_context.cc
-@@ -553,10 +553,6 @@ bool OriginTrialContext::CanEnableTrialF
-     return base::FeatureList::IsEnabled(features::kComputePressure);
-   }
- 
--  if (trial_name == "WebEnvironmentIntegrity") {
--    return base::FeatureList::IsEnabled(features::kWebEnvironmentIntegrity);
--  }
--
-   return true;
- }
- 
---- a/third_party/blink/renderer/modules/BUILD.gn
-+++ b/third_party/blink/renderer/modules/BUILD.gn
-@@ -91,7 +91,6 @@ component("modules") {
-     "//third_party/blink/renderer/modules/donottrack",
-     "//third_party/blink/renderer/modules/encoding",
-     "//third_party/blink/renderer/modules/encryptedmedia",
--    "//third_party/blink/renderer/modules/environment_integrity",
-     "//third_party/blink/renderer/modules/eventsource",
-     "//third_party/blink/renderer/modules/exported",
-     "//third_party/blink/renderer/modules/eyedropper",
---- a/third_party/blink/renderer/platform/runtime_enabled_features.json5
-+++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5
-@@ -4290,17 +4290,6 @@
-       base_feature: "none",
-     },
-     {
--      name: "WebEnvironmentIntegrity",
--      status: "experimental",
--      origin_trial_feature_name: "WebEnvironmentIntegrity",
--      // base_feature is meant as kill-switch. The RuntimeFeature should follow
--      // the `status` field or Origin Trial unless explicitly overriden by
--      // Finch / command line flags.
--      base_feature_status: "enabled",
--      copied_from_base_feature_if: "overridden",
--      origin_trial_allows_third_party: true,
--    },
--    {
-       name: "WebFontResizeLCP",
-       status: "experimental",
-     },

+ 5 - 5
patches/core/ungoogled-chromium/disable-webrtc-log-uploader.patch

@@ -2,7 +2,7 @@
 
 --- a/chrome/browser/media/webrtc/webrtc_log_uploader.cc
 +++ b/chrome/browser/media/webrtc/webrtc_log_uploader.cc
-@@ -128,31 +128,13 @@ void WebRtcLogUploader::OnLoggingStopped
+@@ -175,31 +175,13 @@ void WebRtcLogUploader::OnLoggingStopped
    DCHECK(meta_data.get());
    DCHECK(!upload_done_data.paths.directory.empty());
  
@@ -35,7 +35,7 @@
    } else {
      main_task_runner_->PostTask(
          FROM_HERE,
-@@ -169,28 +151,7 @@ void WebRtcLogUploader::PrepareMultipart
+@@ -216,28 +198,7 @@ void WebRtcLogUploader::PrepareMultipart
    DCHECK(!compressed_log.empty());
    DCHECK(meta_data.get());
  
@@ -65,7 +65,7 @@
  }
  
  void WebRtcLogUploader::UploadStoredLog(
-@@ -256,50 +217,6 @@ void WebRtcLogUploader::LoggingStoppedDo
+@@ -303,50 +264,6 @@ void WebRtcLogUploader::LoggingStoppedDo
    DCHECK(log_buffer.get());
    DCHECK(!log_paths.directory.empty());
  
@@ -118,10 +118,10 @@
  
 --- a/chrome/browser/ui/browser_ui_prefs.cc
 +++ b/chrome/browser/ui/browser_ui_prefs.cc
-@@ -99,7 +99,7 @@ void RegisterBrowserUserPrefs(user_prefs
+@@ -98,7 +98,7 @@ void RegisterBrowserUserPrefs(user_prefs
+   registry->RegisterStringPref(prefs::kWebRTCUDPPortRange, std::string());
    registry->RegisterBooleanPref(prefs::kWebRtcEventLogCollectionAllowed, false);
    registry->RegisterListPref(prefs::kWebRtcLocalIpsAllowedUrls);
-   registry->RegisterBooleanPref(prefs::kWebRTCAllowLegacyTLSProtocols, false);
 -  registry->RegisterBooleanPref(prefs::kWebRtcTextLogCollectionAllowed, true);
 +  registry->RegisterBooleanPref(prefs::kWebRtcTextLogCollectionAllowed, false);
  

+ 6 - 6
patches/core/ungoogled-chromium/disable-webstore-urls.patch

@@ -2,7 +2,7 @@
 
 --- a/chrome/browser/extensions/chrome_content_browser_client_extensions_part.cc
 +++ b/chrome/browser/extensions/chrome_content_browser_client_extensions_part.cc
-@@ -655,12 +655,6 @@ std::vector<url::Origin> ChromeContentBr
+@@ -676,12 +676,6 @@ std::vector<url::Origin> ChromeContentBr
      GetOriginsRequiringDedicatedProcess() {
    std::vector<url::Origin> list;
  
@@ -17,7 +17,7 @@
  
 --- a/chrome/browser/extensions/chrome_content_verifier_delegate.cc
 +++ b/chrome/browser/extensions/chrome_content_verifier_delegate.cc
-@@ -286,17 +286,7 @@ bool ChromeContentVerifierDelegate::IsFr
+@@ -284,17 +284,7 @@ bool ChromeContentVerifierDelegate::IsFr
    // between which extensions are considered in-store.
    // See https://crbug.com/766806 for details.
    if (!InstallVerifier::IsFromStore(extension, context_)) {
@@ -109,8 +109,8 @@
  
  bool ShouldRetryRequest(const network::SimpleURLLoader* loader) {
    DCHECK(loader);
-@@ -166,7 +157,7 @@ absl::optional<GURL> SanitizeUpdateURL(c
-                                        const GURL& update_url) {
+@@ -166,7 +157,7 @@ std::optional<GURL> SanitizeUpdateURL(co
+                                       const GURL& update_url) {
    if (update_url.is_empty()) {
      // Fill in default update URL.
 -    return extension_urls::GetWebstoreUpdateUrl();
@@ -118,8 +118,8 @@
    }
  
    // Skip extensions with non-empty invalid update URLs.
-@@ -184,11 +175,6 @@ absl::optional<GURL> SanitizeUpdateURL(c
-     return absl::nullopt;
+@@ -184,11 +175,6 @@ std::optional<GURL> SanitizeUpdateURL(co
+     return std::nullopt;
    }
  
 -  // Make sure we use SSL for store-hosted extensions.

+ 1 - 1
patches/core/ungoogled-chromium/doh-changes.patch

@@ -1,6 +1,6 @@
 --- a/chrome/common/chrome_features.cc
 +++ b/chrome/common/chrome_features.cc
-@@ -365,12 +365,7 @@ BASE_FEATURE(kDisruptiveNotificationPerm
+@@ -377,12 +377,7 @@ BASE_FEATURE(kDisruptiveNotificationPerm
  // Enable DNS over HTTPS (DoH).
  BASE_FEATURE(kDnsOverHttps,
               "DnsOverHttps",

+ 13 - 12
patches/core/ungoogled-chromium/fix-building-with-prunned-binaries.patch

@@ -3,7 +3,7 @@
 
 --- a/chrome/BUILD.gn
 +++ b/chrome/BUILD.gn
-@@ -946,8 +946,6 @@ if (is_win) {
+@@ -942,8 +942,6 @@ if (is_win) {
  
    bundle_data("chrome_framework_resources") {
      sources = [
@@ -14,7 +14,7 @@
        # from disk image and Keystone promotion (if so enabled).  It
 --- a/chrome/browser/BUILD.gn
 +++ b/chrome/browser/BUILD.gn
-@@ -879,10 +879,6 @@ static_library("browser") {
+@@ -840,10 +840,6 @@ static_library("browser") {
      "navigation_predictor/navigation_predictor_metrics_document_data.h",
      "navigation_predictor/navigation_predictor_preconnect_client.cc",
      "navigation_predictor/navigation_predictor_preconnect_client.h",
@@ -48,7 +48,7 @@
  
  bool IsTargetURLTheSameAsDocument(
      const blink::mojom::AnchorElementMetricsPtr& anchor) {
-@@ -308,73 +301,6 @@ void NavigationPredictor::ProcessPointer
+@@ -310,73 +303,6 @@ void NavigationPredictor::ProcessPointer
  }
  
  void NavigationPredictor::OnMLModelExecutionTimerFired() {
@@ -124,7 +124,7 @@
  void NavigationPredictor::SetModelScoreCallbackForTesting(
 --- a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc
 +++ b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc
-@@ -92,7 +92,6 @@
+@@ -91,7 +91,6 @@
  #include "chrome/browser/media_galleries/media_galleries_preferences_factory.h"
  #include "chrome/browser/metrics/variations/google_groups_updater_service_factory.h"
  #include "chrome/browser/navigation_predictor/navigation_predictor_keyed_service_factory.h"
@@ -132,7 +132,7 @@
  #include "chrome/browser/net/dns_probe_service_factory.h"
  #include "chrome/browser/net/profile_network_context_service_factory.h"
  #include "chrome/browser/notifications/metrics/notification_metrics_logger_factory.h"
-@@ -871,7 +870,6 @@ void ChromeBrowserMainExtraPartsProfiles
+@@ -910,7 +909,6 @@ void ChromeBrowserMainExtraPartsProfiles
  #endif
    ModelTypeStoreServiceFactory::GetInstance();
    NavigationPredictorKeyedServiceFactory::GetInstance();
@@ -150,9 +150,9 @@
  #include "chrome/browser/permissions/adaptive_quiet_notification_permission_ui_enabler.h"
  #include "chrome/browser/prefs/incognito_mode_prefs.h"
  #include "chrome/browser/profiles/delete_profile_helper.h"
-@@ -1553,9 +1552,6 @@ void ProfileManager::DoFinalInitForServi
-   // Ensure NavigationPredictorKeyedService is started.
-   NavigationPredictorKeyedServiceFactory::GetForProfile(profile);
+@@ -1565,9 +1564,6 @@ void ProfileManager::DoFinalInitForServi
+   }
+ #endif  // !BUILDFLAG(IS_ANDROID)
  
 -  // Ensure PreloadingModelKeyedService is started.
 -  PreloadingModelKeyedServiceFactory::GetForProfile(profile);
@@ -170,7 +170,7 @@
  #include "components/omnibox/browser/omnibox_field_trial.h"
  #include "components/search_engines/template_url.h"
  #include "content/public/browser/web_ui.h"
-@@ -500,31 +499,12 @@ void OmniboxPageHandler::StartOmniboxQue
+@@ -500,32 +499,12 @@ void OmniboxPageHandler::StartOmniboxQue
  }
  
  void OmniboxPageHandler::GetMlModelVersion(GetMlModelVersionCallback callback) {
@@ -195,14 +195,15 @@
 -        mojo::ConvertTo<AutocompleteMatch::ScoringSignals>(mojom_signals);
 -    std::vector<AutocompleteScoringModelService::Result> result =
 -        service->BatchScoreAutocompleteUrlMatchesSync({&signals}, {""});
--    std::move(callback).Run(result.size() ? *std::get<0>(result[0]) : -1);
+-    std::move(callback).Run(result.size() ? std::get<0>(result[0]).value_or(-1)
+-                                          : -1);
 -  } else {
      std::move(callback).Run(-1);
 -  }
  }
  
  std::unique_ptr<AutocompleteController> OmniboxPageHandler::CreateController(
-@@ -549,8 +529,5 @@ OmniboxPageHandler::GetAutocompleteContr
+@@ -550,8 +529,5 @@ OmniboxPageHandler::GetAutocompleteContr
  }
  
  AutocompleteScoringModelService* OmniboxPageHandler::GetMlService() {
@@ -267,7 +268,7 @@
  fuzzer_test("update_client_protocol_serializer_fuzzer") {
 --- a/content/shell/BUILD.gn
 +++ b/content/shell/BUILD.gn
-@@ -735,10 +735,6 @@ if (is_apple) {
+@@ -739,10 +739,6 @@ if (is_apple) {
        deps = [ "//third_party/icu:icudata" ]
      }
  

+ 190 - 89
patches/core/ungoogled-chromium/fix-building-without-safebrowsing.patch

@@ -2,7 +2,7 @@
 
 --- a/chrome/browser/BUILD.gn
 +++ b/chrome/browser/BUILD.gn
-@@ -640,8 +640,6 @@ static_library("browser") {
+@@ -623,8 +623,6 @@ static_library("browser") {
      "internal_auth.h",
      "interstitials/chrome_settings_page_helper.cc",
      "interstitials/chrome_settings_page_helper.h",
@@ -11,7 +11,7 @@
      "invalidation/profile_invalidation_provider_factory.cc",
      "invalidation/profile_invalidation_provider_factory.h",
      "ip_protection/ip_protection_config_http.cc",
-@@ -3829,9 +3827,6 @@ static_library("browser") {
+@@ -3802,9 +3800,6 @@ static_library("browser") {
        "enterprise/connectors/analysis/analysis_service_settings.h",
        "enterprise/connectors/analysis/analysis_settings.cc",
        "enterprise/connectors/analysis/analysis_settings.h",
@@ -21,7 +21,7 @@
        "enterprise/connectors/analysis/content_analysis_dialog.cc",
        "enterprise/connectors/analysis/content_analysis_dialog.h",
        "enterprise/connectors/analysis/content_analysis_downloads_delegate.cc",
-@@ -4138,10 +4133,6 @@ static_library("browser") {
+@@ -4109,10 +4104,6 @@ static_library("browser") {
        "new_tab_page/modules/recipes/recipes_service_factory.h",
        "new_tab_page/modules/recipes/time_format_util.cc",
        "new_tab_page/modules/recipes/time_format_util.h",
@@ -31,16 +31,16 @@
 -      "new_tab_page/modules/safe_browsing/safe_browsing_prefs.h",
        "new_tab_page/modules/v2/history_clusters/history_clusters_page_handler_v2.cc",
        "new_tab_page/modules/v2/history_clusters/history_clusters_page_handler_v2.h",
-       "new_tab_page/new_tab_page_util.cc",
-@@ -4615,7 +4606,6 @@ static_library("browser") {
+       "new_tab_page/modules/v2/tab_resumption/tab_resumption_page_handler.cc",
+@@ -4610,7 +4601,6 @@ static_library("browser") {
        "//chrome/browser/new_tab_page/modules/history_clusters/discount:mojo_bindings",
        "//chrome/browser/new_tab_page/modules/photos:mojo_bindings",
        "//chrome/browser/new_tab_page/modules/recipes:mojo_bindings",
 -      "//chrome/browser/new_tab_page/modules/safe_browsing:mojo_bindings",
        "//chrome/browser/new_tab_page/modules/v2/history_clusters:mojo_bindings",
+       "//chrome/browser/new_tab_page/modules/v2/tab_resumption:mojo_bindings",
        "//chrome/browser/policy:path_parser",
-       "//chrome/browser/profile_resetter:profile_reset_report_proto",
-@@ -6407,10 +6397,6 @@ static_library("browser") {
+@@ -6415,10 +6405,6 @@ static_library("browser") {
      sources += [
        "enterprise/chrome_browser_main_extra_parts_enterprise.cc",
        "enterprise/chrome_browser_main_extra_parts_enterprise.h",
@@ -51,7 +51,7 @@
        "enterprise/connectors/device_trust/attestation/browser/attestation_switches.cc",
        "enterprise/connectors/device_trust/attestation/browser/attestation_switches.h",
        "enterprise/connectors/device_trust/attestation/browser/attester.h",
-@@ -7947,9 +7933,14 @@ static_library("browser") {
+@@ -7996,9 +7982,14 @@ static_library("browser") {
        "//components/safe_browsing/content/browser:safe_browsing_blocking_page",
        "//components/safe_browsing/content/browser/download:download_stats",
        "//components/safe_browsing/content/common:file_type_policies",
@@ -69,7 +69,7 @@
      sources += [
 --- a/chrome/browser/chrome_content_browser_client.cc
 +++ b/chrome/browser/chrome_content_browser_client.cc
-@@ -5222,11 +5222,13 @@ ChromeContentBrowserClient::CreateThrott
+@@ -5190,11 +5190,13 @@ ChromeContentBrowserClient::CreateThrott
        &throttles);
  #endif
  
@@ -83,7 +83,7 @@
  
  #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
    MaybeAddThrottle(browser_switcher::BrowserSwitcherNavigationThrottle::
-@@ -7017,26 +7019,7 @@ ChromeContentBrowserClient::GetSafeBrows
+@@ -7008,26 +7010,7 @@ ChromeContentBrowserClient::GetSafeBrows
            ? content::BrowserThread::UI
            : content::BrowserThread::IO);
  
@@ -111,7 +111,7 @@
  }
  
  safe_browsing::RealTimeUrlLookupServiceBase*
-@@ -7057,11 +7040,6 @@ ChromeContentBrowserClient::GetUrlLookup
+@@ -7048,11 +7031,6 @@ ChromeContentBrowserClient::GetUrlLookup
          GetForProfile(profile);
    }
  #endif
@@ -123,6 +123,29 @@
    return nullptr;
  }
  
+@@ -7063,22 +7041,7 @@ ChromeContentBrowserClient::GetAsyncChec
+     bool is_consumer_lookup_enabled,
+     safe_browsing::hash_realtime_utils::HashRealTimeSelection
+         hash_realtime_selection) {
+-  content::WebContents* contents = wc_getter.Run();
+-  if (!contents || !safe_browsing_service_ ||
+-      !safe_browsing_service_->ui_manager()) {
+-    return nullptr;
+-  }
+-  if (!is_enterprise_lookup_enabled && !is_consumer_lookup_enabled &&
+-      hash_realtime_selection ==
+-          safe_browsing::hash_realtime_utils::HashRealTimeSelection::kNone) {
+-    return nullptr;
+-  }
+-  if (!base::FeatureList::IsEnabled(
+-          safe_browsing::kSafeBrowsingAsyncRealTimeCheck)) {
+     return nullptr;
+-  }
+-  return safe_browsing::AsyncCheckTracker::GetOrCreateForWebContents(
+-      contents, safe_browsing_service_->ui_manager().get());
+ }
+ 
+ void ChromeContentBrowserClient::ReportLegacyTechEvent(
 --- a/chrome/browser/download/bubble/download_bubble_ui_controller.cc
 +++ b/chrome/browser/download/bubble/download_bubble_ui_controller.cc
 @@ -29,7 +29,6 @@
@@ -141,7 +164,7 @@
  #include "content/public/browser/download_item_utils.h"
  #include "content/public/browser/download_manager.h"
  
-@@ -267,21 +265,11 @@ void DownloadBubbleUIController::Process
+@@ -255,21 +253,11 @@ void DownloadBubbleUIController::Process
    switch (command) {
      case DownloadCommands::KEEP:
      case DownloadCommands::DISCARD:
@@ -165,7 +188,7 @@
        RetryDownload(model.get(), command);
 --- a/chrome/browser/download/chrome_download_manager_delegate.cc
 +++ b/chrome/browser/download/chrome_download_manager_delegate.cc
-@@ -142,7 +142,6 @@ using content::DownloadManager;
+@@ -143,7 +143,6 @@ using content::DownloadManager;
  using download::DownloadItem;
  using download::DownloadPathReservationTracker;
  using download::PathValidationResult;
@@ -173,7 +196,7 @@
  using ConnectionType = net::NetworkChangeNotifier::ConnectionType;
  
  #if BUILDFLAG(FULL_SAFE_BROWSING)
-@@ -604,15 +603,6 @@ bool ChromeDownloadManagerDelegate::Shou
+@@ -605,15 +604,6 @@ bool ChromeDownloadManagerDelegate::Shou
  #endif
  
    bool should_open = download_prefs_->IsAutoOpenEnabled(url, path);
@@ -189,7 +212,7 @@
  
    return should_open;
  }
-@@ -1558,7 +1548,6 @@ void ChromeDownloadManagerDelegate::OnDo
+@@ -1568,7 +1558,6 @@ void ChromeDownloadManagerDelegate::OnDo
      DownloadItemModel model(item);
      model.DetermineAndSetShouldPreferOpeningInBrowser(
          target_info->target_path, target_info->is_filetype_handled_safely);
@@ -197,7 +220,7 @@
    }
    if (ShouldBlockFile(item, target_info->danger_type)) {
      MaybeReportDangerousDownloadBlocked(
-@@ -1637,59 +1626,6 @@ bool ChromeDownloadManagerDelegate::IsOp
+@@ -1647,59 +1636,6 @@ bool ChromeDownloadManagerDelegate::IsOp
  bool ChromeDownloadManagerDelegate::ShouldBlockFile(
      download::DownloadItem* item,
      download::DownloadDangerType danger_type) const {
@@ -257,7 +280,7 @@
  
    return false;
  }
-@@ -1704,7 +1640,6 @@ void ChromeDownloadManagerDelegate::Mayb
+@@ -1714,7 +1650,6 @@ void ChromeDownloadManagerDelegate::Mayb
      service->MaybeSendDangerousDownloadOpenedReport(download,
                                                      show_download_in_folder);
    }
@@ -265,7 +288,7 @@
    if (!download->GetAutoOpened()) {
      download::DownloadContent download_content =
          download::DownloadContentFromMimeType(download->GetMimeType(), false);
-@@ -1712,6 +1647,7 @@ void ChromeDownloadManagerDelegate::Mayb
+@@ -1722,6 +1657,7 @@ void ChromeDownloadManagerDelegate::Mayb
          download->GetDangerType(), download_content, base::Time::Now(),
          download->GetEndTime(), show_download_in_folder);
    }
@@ -273,7 +296,7 @@
  }
  
  void ChromeDownloadManagerDelegate::CheckDownloadAllowed(
-@@ -1769,8 +1705,7 @@ void ChromeDownloadManagerDelegate::Chec
+@@ -1779,8 +1715,7 @@ void ChromeDownloadManagerDelegate::Chec
    DCHECK(download_item);
    DCHECK(download_item->IsSavePackageDownload());
  
@@ -285,7 +308,7 @@
  
 --- a/chrome/browser/download/download_item_model.cc
 +++ b/chrome/browser/download/download_item_model.cc
-@@ -913,80 +913,10 @@ void DownloadItemModel::ExecuteCommand(D
+@@ -913,79 +913,10 @@ void DownloadItemModel::ExecuteCommand(D
  
  DownloadItemModel::BubbleUIInfo
  DownloadItemModel::GetBubbleUIInfoForTailoredWarning() const {
@@ -338,8 +361,7 @@
  }
  
  bool DownloadItemModel::ShouldShowTailoredWarning() const {
--  if (!IsBubbleV2Enabled() ||
--      !base::FeatureList::IsEnabled(safe_browsing::kDownloadTailoredWarnings)) {
+-  if (!base::FeatureList::IsEnabled(safe_browsing::kDownloadTailoredWarnings)) {
 -    return false;
 -  }
 -
@@ -748,7 +770,7 @@
  }  // namespace utils
 --- a/chrome/browser/extensions/BUILD.gn
 +++ b/chrome/browser/extensions/BUILD.gn
-@@ -304,10 +304,6 @@ static_library("extensions") {
+@@ -305,10 +305,6 @@ static_library("extensions") {
      "api/runtime/chrome_runtime_api_delegate.h",
      "api/safe_browsing_private/safe_browsing_private_api.cc",
      "api/safe_browsing_private/safe_browsing_private_api.h",
@@ -761,8 +783,8 @@
      "api/search/search_api.cc",
 @@ -647,8 +643,6 @@ static_library("extensions") {
      "menu_manager_factory.h",
-     "navigation_observer.cc",
-     "navigation_observer.h",
+     "navigation_extension_enabler.cc",
+     "navigation_extension_enabler.h",
 -    "omaha_attributes_handler.cc",
 -    "omaha_attributes_handler.h",
      "pack_extension_job.cc",
@@ -770,8 +792,8 @@
      "pending_extension_info.cc",
 --- a/chrome/browser/extensions/api/api_browser_context_keyed_service_factories.cc
 +++ b/chrome/browser/extensions/api/api_browser_context_keyed_service_factories.cc
-@@ -114,7 +114,6 @@ void EnsureApiBrowserContextKeyedService
-   extensions::PreferenceAPI::GetFactoryInstance();
+@@ -122,7 +122,6 @@ void EnsureApiBrowserContextKeyedService
+ #endif
    extensions::ProcessesAPI::GetFactoryInstance();
    extensions::ReadingListEventRouter::GetFactoryInstance();
 -  extensions::SafeBrowsingPrivateEventRouterFactory::GetInstance();
@@ -827,19 +849,18 @@
  CookiesSetFunction::CookiesSetFunction()
 --- a/chrome/browser/extensions/api/enterprise_reporting_private/enterprise_reporting_private_api.cc
 +++ b/chrome/browser/extensions/api/enterprise_reporting_private/enterprise_reporting_private_api.cc
-@@ -91,17 +91,8 @@ api::enterprise_reporting_private::Conte
+@@ -91,16 +91,8 @@ api::enterprise_reporting_private::Conte
    info.third_party_blocking_enabled = signals.third_party_blocking_enabled;
    info.os_firewall = ToInfoSettingValue(signals.os_firewall);
    info.system_dns_servers = std::move(signals.system_dns_servers);
 -  switch (signals.realtime_url_check_mode) {
 -    case safe_browsing::REAL_TIME_CHECK_DISABLED:
        info.realtime_url_check_mode = extensions::api::
-           enterprise_reporting_private::REALTIME_URL_CHECK_MODE_DISABLED;
+           enterprise_reporting_private::RealtimeUrlCheckMode::kDisabled;
 -      break;
 -    case safe_browsing::REAL_TIME_CHECK_FOR_MAINFRAME_ENABLED:
--      info.realtime_url_check_mode =
--          extensions::api::enterprise_reporting_private::
--              REALTIME_URL_CHECK_MODE_ENABLED_MAIN_FRAME;
+-      info.realtime_url_check_mode = extensions::api::
+-          enterprise_reporting_private::RealtimeUrlCheckMode::kEnabledMainFrame;
 -      break;
 -  }
    info.browser_version = std::move(signals.browser_version);
@@ -897,7 +918,7 @@
  void Blocklist::GetMalwareIDs(const std::set<std::string>& ids,
 --- a/chrome/browser/extensions/chrome_extensions_browser_client.cc
 +++ b/chrome/browser/extensions/chrome_extensions_browser_client.cc
-@@ -734,81 +734,23 @@ void ChromeExtensionsBrowserClient::Noti
+@@ -739,81 +739,23 @@ void ChromeExtensionsBrowserClient::Noti
      content::BrowserContext* context,
      const ExtensionId& extension_id,
      const std::string& code) const {
@@ -980,7 +1001,7 @@
  }
  
  // static
-@@ -978,7 +920,6 @@ void ChromeExtensionsBrowserClient::GetW
+@@ -982,7 +924,6 @@ void ChromeExtensionsBrowserClient::GetW
  
  void ChromeExtensionsBrowserClient::CreatePasswordReuseDetectionManager(
      content::WebContents* web_contents) const {
@@ -998,7 +1019,7 @@
  #include "chrome/browser/extensions/pending_extension_manager.h"
  #include "chrome/browser/extensions/permissions_updater.h"
  #include "chrome/browser/extensions/profile_util.h"
-@@ -235,7 +234,6 @@ void ExtensionService::BlocklistExtensio
+@@ -234,7 +233,6 @@ void ExtensionService::BlocklistExtensio
    blocklist_prefs::SetSafeBrowsingExtensionBlocklistState(
        extension_id, BitMapBlocklistState::BLOCKLISTED_MALWARE,
        extension_prefs_);
@@ -1006,7 +1027,7 @@
  }
  
  bool ExtensionService::OnExternalExtensionUpdateUrlFound(
-@@ -403,9 +401,6 @@ ExtensionService::ExtensionService(
+@@ -402,9 +400,6 @@ ExtensionService::ExtensionService(
        safe_browsing_verdict_handler_(extension_prefs,
                                       ExtensionRegistry::Get(profile),
                                       this),
@@ -1016,7 +1037,7 @@
        extension_telemetry_service_verdict_handler_(
            extension_prefs,
            ExtensionRegistry::Get(profile),
-@@ -938,17 +933,6 @@ bool ExtensionService::IsExtensionEnable
+@@ -937,17 +932,6 @@ bool ExtensionService::IsExtensionEnable
    return extension_registrar_.IsExtensionEnabled(extension_id);
  }
  
@@ -1034,7 +1055,7 @@
  void ExtensionService::PerformActionBasedOnExtensionTelemetryServiceVerdicts(
      const Blocklist::BlocklistStateMap& blocklist_state_map) {
    DCHECK_CURRENTLY_ON(BrowserThread::UI);
-@@ -958,89 +942,6 @@ void ExtensionService::PerformActionBase
+@@ -957,89 +941,6 @@ void ExtensionService::PerformActionBase
    error_controller_->ShowErrorIfNeeded();
  }
  
@@ -1186,7 +1207,7 @@
  
 --- a/chrome/browser/extensions/extension_system_impl.cc
 +++ b/chrome/browser/extensions/extension_system_impl.cc
-@@ -451,8 +451,6 @@ void ExtensionSystemImpl::InstallUpdate(
+@@ -447,8 +447,6 @@ void ExtensionSystemImpl::InstallUpdate(
  void ExtensionSystemImpl::PerformActionBasedOnOmahaAttributes(
      const std::string& extension_id,
      const base::Value::Dict& attributes) {
@@ -1256,7 +1277,7 @@
  #include "chrome/browser/ui/file_system_access_dialogs.h"
  #include "chrome/common/chrome_paths.h"
  #include "chrome/common/pdf_util.h"
-@@ -409,87 +408,6 @@ bool ShouldBlockAccessToPath(const base:
+@@ -411,88 +410,6 @@ bool ShouldBlockAccessToPath(const base:
    return true;
  }
  
@@ -1327,6 +1348,7 @@
 -
 -    // This shouldn't be returned for File System Access write checks.
 -    case Result::ASYNC_SCANNING:
+-    case Result::ASYNC_LOCAL_PASSWORD_SCANNING:
 -    case Result::SENSITIVE_CONTENT_WARNING:
 -    case Result::SENSITIVE_CONTENT_BLOCK:
 -    case Result::DEEP_SCANNED_SAFE:
@@ -1344,7 +1366,7 @@
  std::string GenerateLastPickedDirectoryKey(const std::string& id) {
    return id.empty() ? kDefaultLastPickedDirectoryKey
                      : base::StrCat({kCustomLastPickedDirectoryKey, "-", id});
-@@ -509,13 +427,7 @@ std::string_view GetGrantKeyFromGrantTyp
+@@ -512,13 +429,7 @@ std::string_view GetGrantKeyFromGrantTyp
  bool FileHasDangerousExtension(const url::Origin& origin,
                                 const base::FilePath& path,
                                 Profile* profile) {
@@ -1359,7 +1381,7 @@
  }
  
  }  // namespace
-@@ -1511,29 +1423,6 @@ void ChromeFileSystemAccessPermissionCon
+@@ -1543,29 +1454,6 @@ void ChromeFileSystemAccessPermissionCon
        std::move(callback));
  }
  
@@ -1446,7 +1468,7 @@
          NotificationHandler::Type::EXTENSION,
 --- a/chrome/browser/password_manager/chrome_password_manager_client.cc
 +++ b/chrome/browser/password_manager/chrome_password_manager_client.cc
-@@ -34,7 +34,6 @@
+@@ -35,7 +35,6 @@
  #include "chrome/browser/password_manager/profile_password_store_factory.h"
  #include "chrome/browser/profiles/profile.h"
  #include "chrome/browser/profiles/profile_manager.h"
@@ -1454,7 +1476,7 @@
  #include "chrome/browser/safe_browsing/user_interaction_observer.h"
  #include "chrome/browser/signin/identity_manager_factory.h"
  #include "chrome/browser/sync/sync_service_factory.h"
-@@ -865,6 +864,7 @@ autofill::LanguageCode ChromePasswordMan
+@@ -862,6 +861,7 @@ autofill::LanguageCode ChromePasswordMan
    return autofill::LanguageCode();
  }
  
@@ -1462,7 +1484,7 @@
  safe_browsing::PasswordProtectionService*
  ChromePasswordManagerClient::GetPasswordProtectionService() const {
    return safe_browsing::ChromePasswordProtectionService::
-@@ -884,6 +884,7 @@ void ChromePasswordManagerClient::CheckS
+@@ -881,6 +881,7 @@ void ChromePasswordManagerClient::CheckS
    }
  }
  #endif  // defined(ON_FOCUS_PING_ENABLED)
@@ -1470,7 +1492,7 @@
  
  #if !BUILDFLAG(IS_ANDROID)
  void ChromePasswordManagerClient::MaybeReportEnterpriseLoginEvent(
-@@ -891,28 +892,10 @@ void ChromePasswordManagerClient::MaybeR
+@@ -888,28 +889,10 @@ void ChromePasswordManagerClient::MaybeR
      bool is_federated,
      const url::Origin& federated_origin,
      const std::u16string& login_user_name) const {
@@ -1499,7 +1521,7 @@
  }
  #endif
  
-@@ -1509,6 +1492,7 @@ bool ChromePasswordManagerClient::IsPass
+@@ -1507,6 +1490,7 @@ bool ChromePasswordManagerClient::IsPass
      is_enabled = false;
    }
  
@@ -1507,7 +1529,7 @@
    // SafeBrowsing Delayed Warnings experiment can delay some SafeBrowsing
    // warnings until user interaction. If the current page has a delayed warning,
    // it'll have a user interaction observer attached. Disable password
-@@ -1519,6 +1503,7 @@ bool ChromePasswordManagerClient::IsPass
+@@ -1517,6 +1501,7 @@ bool ChromePasswordManagerClient::IsPass
      observer->OnPasswordSaveOrAutofillDenied();
      is_enabled = false;
    }
@@ -1701,7 +1723,7 @@
  }
 --- a/chrome/browser/policy/configuration_policy_handler_list_factory.cc
 +++ b/chrome/browser/policy/configuration_policy_handler_list_factory.cc
-@@ -100,6 +100,7 @@
+@@ -104,6 +104,7 @@
  #include "components/policy/policy_constants.h"
  #include "components/privacy_sandbox/privacy_sandbox_prefs.h"
  #include "components/proxy_config/proxy_policy_handler.h"
@@ -1709,7 +1731,7 @@
  #include "components/safe_browsing/content/common/file_type_policies_prefs.h"
  #include "components/safe_browsing/core/common/safe_browsing_policy_handler.h"
  #include "components/safe_browsing/core/common/safe_browsing_prefs.h"
-@@ -2137,8 +2138,6 @@ std::unique_ptr<ConfigurationPolicyHandl
+@@ -2148,8 +2149,6 @@ std::unique_ptr<ConfigurationPolicyHandl
    handlers->AddHandler(
        std::make_unique<bookmarks::ManagedBookmarksPolicyHandler>(
            chrome_schema));
@@ -1718,7 +1740,7 @@
    handlers->AddHandler(std::make_unique<syncer::SyncPolicyHandler>());
    handlers->AddHandler(
        std::make_unique<URLBlocklistPolicyHandler>(key::kURLBlocklist));
-@@ -2215,20 +2214,6 @@ std::unique_ptr<ConfigurationPolicyHandl
+@@ -2229,20 +2228,6 @@ std::unique_ptr<ConfigurationPolicyHandl
            prefs::kSafeBrowsingEnterpriseRealTimeUrlCheckMode,
            prefs::kSafeBrowsingEnterpriseRealTimeUrlCheckScope, chrome_schema));
  
@@ -1741,7 +1763,7 @@
  
 --- a/chrome/browser/prefs/browser_prefs.cc
 +++ b/chrome/browser/prefs/browser_prefs.cc
-@@ -280,7 +280,6 @@
+@@ -288,7 +288,6 @@
  #include "chrome/browser/new_tab_page/modules/drive/drive_service.h"
  #include "chrome/browser/new_tab_page/modules/photos/photos_service.h"
  #include "chrome/browser/new_tab_page/modules/recipes/recipes_service.h"
@@ -1749,7 +1771,7 @@
  #include "chrome/browser/new_tab_page/promos/promo_service.h"
  #include "chrome/browser/policy/developer_tools_policy_handler.h"
  #include "chrome/browser/search/background/ntp_custom_background_service.h"
-@@ -1813,7 +1812,6 @@ void RegisterProfilePrefs(user_prefs::Pr
+@@ -1881,7 +1880,6 @@ void RegisterProfilePrefs(user_prefs::Pr
    NewTabPageHandler::RegisterProfilePrefs(registry);
    NewTabPageUI::RegisterProfilePrefs(registry);
    NewTabUI::RegisterProfilePrefs(registry);
@@ -1759,7 +1781,7 @@
    PinnedTabCodec::RegisterProfilePrefs(registry);
 --- a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc
 +++ b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc
-@@ -730,9 +730,6 @@ void ChromeBrowserMainExtraPartsProfiles
+@@ -767,9 +767,6 @@ void ChromeBrowserMainExtraPartsProfiles
    enterprise_connectors::DeviceTrustConnectorServiceFactory::GetInstance();
    enterprise_connectors::DeviceTrustServiceFactory::GetInstance();
  #endif
@@ -1769,7 +1791,7 @@
  #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
      BUILDFLAG(IS_ANDROID)
    enterprise_idle::IdleServiceFactory::GetInstance();
-@@ -1037,23 +1034,6 @@ void ChromeBrowserMainExtraPartsProfiles
+@@ -1074,23 +1071,6 @@ void ChromeBrowserMainExtraPartsProfiles
  #if !BUILDFLAG(IS_ANDROID)
    ResetReportUploaderFactory::GetInstance();
  #endif
@@ -1984,7 +2006,7 @@
  }  // namespace
 --- a/chrome/browser/ui/BUILD.gn
 +++ b/chrome/browser/ui/BUILD.gn
-@@ -575,7 +575,6 @@ static_library("ui") {
+@@ -581,7 +581,6 @@ static_library("ui") {
      "//components/renderer_context_menu",
      "//components/resources",
      "//components/safe_browsing/content/browser",
@@ -1992,7 +2014,7 @@
      "//components/safe_browsing/content/browser/password_protection",
      "//components/safe_browsing/content/browser/web_ui",
      "//components/safe_browsing/core/browser/db:database_manager",
-@@ -3956,8 +3955,6 @@ static_library("ui") {
+@@ -4033,8 +4032,6 @@ static_library("ui") {
        "startup/web_app_startup_utils.h",
        "tab_contents/chrome_web_contents_menu_helper.cc",
        "tab_contents/chrome_web_contents_menu_helper.h",
@@ -2001,7 +2023,7 @@
        "views/autofill/payments/virtual_card_selection_dialog_view.cc",
        "views/autofill/payments/virtual_card_selection_dialog_view.h",
        "views/autofill/payments/webauthn_dialog_view.cc",
-@@ -5566,8 +5563,6 @@ static_library("ui") {
+@@ -5685,8 +5682,6 @@ static_library("ui") {
        "views/safe_browsing/prompt_for_scanning_modal_dialog.h",
        "views/safe_browsing/tailored_security_desktop_dialog_manager.cc",
        "views/safe_browsing/tailored_security_desktop_dialog_manager.h",
@@ -2020,7 +2042,7 @@
  #include "chrome/browser/ui/color/chrome_color_id.h"
  #include "chrome/browser/ui/download/download_item_mode.h"
  #include "chrome/grit/generated_resources.h"
-@@ -517,29 +516,6 @@ void DownloadBubbleRowViewInfo::Populate
+@@ -520,29 +519,6 @@ void DownloadBubbleRowViewInfo::Populate
  }
  
  void DownloadBubbleRowViewInfo::PopulateForTailoredWarning() {
@@ -2078,7 +2100,7 @@
  void JavaScriptTabModalDialogManagerDelegateDesktop::DidCloseDialog() {
 --- a/chrome/browser/ui/tab_helpers.cc
 +++ b/chrome/browser/ui/tab_helpers.cc
-@@ -362,7 +362,6 @@ void TabHelpers::AttachTabHelpers(WebCon
+@@ -364,7 +364,6 @@ void TabHelpers::AttachTabHelpers(WebCon
    ChromeComposeClient::CreateForWebContents(web_contents);
  #endif
    ChromePasswordManagerClient::CreateForWebContents(web_contents);
@@ -2088,24 +2110,77 @@
    client_hints::ClientHintsWebContentsObserver::CreateForWebContents(
 --- a/chrome/browser/ui/views/download/bubble/download_bubble_contents_view.cc
 +++ b/chrome/browser/ui/views/download/bubble/download_bubble_contents_view.cc
-@@ -9,7 +9,6 @@
- #include "chrome/browser/download/bubble/download_bubble_prefs.h"
- #include "chrome/browser/download/bubble/download_bubble_ui_controller.h"
+@@ -13,7 +13,6 @@
+ #include "chrome/browser/download/download_core_service.h"
+ #include "chrome/browser/download/download_core_service_factory.h"
  #include "chrome/browser/download/download_item_warning_data.h"
 -#include "chrome/browser/safe_browsing/download_protection/download_protection_service.h"
+ #include "chrome/browser/safe_browsing/safe_browsing_service.h"
  #include "chrome/browser/ui/browser.h"
  #include "chrome/browser/ui/browser_element_identifiers.h"
- #include "chrome/browser/ui/download/download_bubble_info.h"
-@@ -149,10 +148,6 @@ void DownloadBubbleContentsView::AddSecu
+@@ -157,63 +156,16 @@ void DownloadBubbleContentsView::AddSecu
  void DownloadBubbleContentsView::ProcessDeepScanPress(
      const ContentId& id,
      base::optional_ref<const std::string> password) {
 -  if (DownloadUIModel* model = GetDownloadModel(id); model) {
+-    LogDeepScanEvent(model->GetDownloadItem(),
+-                     safe_browsing::DeepScanEvent::kPromptAccepted);
 -    safe_browsing::DownloadProtectionService::UploadForConsumerDeepScanning(
 -        model->GetDownloadItem(), password);
 -  }
  }
  
+ void DownloadBubbleContentsView::ProcessLocalDecryptionPress(
+     const offline_items_collection::ContentId& id,
+     base::optional_ref<const std::string> password) {
+-  if (DownloadUIModel* model = GetDownloadModel(id); model) {
+-    safe_browsing::DownloadProtectionService::CheckDownloadWithLocalDecryption(
+-        model->GetDownloadItem(), password);
+-  }
+ }
+ 
+ void DownloadBubbleContentsView::ProcessLocalPasswordInProgressClick(
+     const offline_items_collection::ContentId& id,
+     DownloadCommands::Command command) {
+-  DownloadUIModel* model = GetDownloadModel(id);
+-  if (!model) {
+-    return;
+-  }
+-
+-  download::DownloadItem* item = model->GetDownloadItem();
+-  safe_browsing::SafeBrowsingService* sb_service =
+-      g_browser_process->safe_browsing_service();
+-  if (!sb_service) {
+-    return;
+-  }
+-  safe_browsing::DownloadProtectionService* protection_service =
+-      sb_service->download_protection_service();
+-  if (!protection_service) {
+-    return;
+-  }
+-
+-  protection_service->CancelChecksForDownload(item);
+-
+-  DownloadCoreService* download_core_service =
+-      DownloadCoreServiceFactory::GetForBrowserContext(
+-          content::DownloadItemUtils::GetBrowserContext(item));
+-  DCHECK(download_core_service);
+-  ChromeDownloadManagerDelegate* delegate =
+-      download_core_service->GetDownloadManagerDelegate();
+-  DCHECK(delegate);
+-
+-  if (command == DownloadCommands::CANCEL) {
+-    delegate->CheckClientDownloadDone(
+-        item->GetId(),
+-        safe_browsing::DownloadCheckResult::PROMPT_FOR_LOCAL_PASSWORD_SCANNING);
+-  } else if (command == DownloadCommands::BYPASS_DEEP_SCANNING) {
+-    delegate->CheckClientDownloadDone(
+-        item->GetId(), safe_browsing::DownloadCheckResult::UNKNOWN);
+-  } else {
+-    NOTREACHED() << "Unexpected command: " << static_cast<int>(command);
+-  }
+ }
+ 
  bool DownloadBubbleContentsView::IsEncryptedArchive(const ContentId& id) {
 --- a/chrome/browser/ui/views/download/download_item_view.cc
 +++ b/chrome/browser/ui/views/download/download_item_view.cc
@@ -2144,7 +2219,7 @@
    open_button_->SetEnabled((mode_ == download::DownloadItemMode::kNormal) ||
                             prompt_to_scan || allow_open_during_deep_scan);
  
-@@ -1277,7 +1278,9 @@ void DownloadItemView::ShowContextMenuIm
+@@ -1278,7 +1279,9 @@ void DownloadItemView::ShowContextMenuIm
  }
  
  void DownloadItemView::OpenDownloadDuringAsyncScanning() {
@@ -2200,7 +2275,7 @@
  std::unique_ptr<RenderViewContextMenuBase>
 --- a/chrome/browser/ui/webui/downloads/downloads_dom_handler.cc
 +++ b/chrome/browser/ui/webui/downloads/downloads_dom_handler.cc
-@@ -201,55 +201,6 @@ void DownloadsDOMHandler::SaveDangerousR
+@@ -202,55 +202,6 @@ void DownloadsDOMHandler::SaveDangerousR
  
  void DownloadsDOMHandler::DiscardDangerous(const std::string& id) {
    CountDownloadsDOMEvents(DOWNLOADS_DOM_EVENT_DISCARD_DANGEROUS);
@@ -2256,7 +2331,16 @@
    RemoveDownloadInArgs(id);
  }
  
-@@ -487,12 +438,6 @@ void DownloadsDOMHandler::ReviewDangerou
+@@ -462,8 +413,6 @@ void DownloadsDOMHandler::DeepScan(const
+     return;
+   }
+ 
+-  LogDeepScanEvent(download,
+-                   safe_browsing::DeepScanEvent::kPromptAcceptedFromWebUI);
+   DownloadItemModel model(download);
+   DownloadCommands commands(model.GetWeakPtr());
+   commands.ExecuteCommand(DownloadCommands::DEEP_SCAN);
+@@ -500,12 +449,6 @@ void DownloadsDOMHandler::ReviewDangerou
      return;
    }
  
@@ -2286,15 +2370,17 @@
      AddThreatProtectionPermission(kManagementScreenCaptureEvent,
 --- a/chrome/browser/ui/webui/settings/hats_handler.cc
 +++ b/chrome/browser/ui/webui/settings/hats_handler.cc
-@@ -85,41 +85,6 @@ void HatsHandler::RegisterMessages() {
- void HatsHandler::HandleSecurityPageInteractionOccurred(
-     const base::Value::List& args) {
+@@ -84,56 +84,6 @@ void HatsHandler::RegisterMessages() {
+  */
+ void HatsHandler::HandleSecurityPageHatsRequest(const base::Value::List& args) {
    AllowJavascript();
 -
--  // There are 2 argument in the input list.
+-  // There are 3 argument in the input list.
 -  // The first one is the SecurityPageInteraction that triggered the survey.
 -  // The second one is the safe browsing setting the user was on.
--  CHECK_EQ(2U, args.size());
+-  // The third one is the total amount of time a user spent on the security page
+-  // in focus.
+-  CHECK_EQ(3U, args.size());
 -
 -  Profile* profile = Profile::FromWebUI(web_ui());
 -
@@ -2314,21 +2400,34 @@
 -    return;
 -  }
 -
+-  // Do not send the survey if the user didn't stay on the page long enough.
+-  if (args[2].GetDouble() <
+-      features::kHappinessTrackingSurveysForSecurityPageTime.Get()
+-          .InMilliseconds()) {
+-    return;
+-  }
+-
+-  auto interaction = static_cast<SecurityPageInteraction>(args[0].GetInt());
+-  if (features::kHappinessTrackingSurveysForSecurityPageRequireInteraction
+-          .Get() &&
+-      interaction == SecurityPageInteraction::NO_INTERACTION) {
+-    return;
+-  }
+-
 -  // Generate the Product Specific bits data from |profile| and |args|.
 -  SurveyStringData product_specific_string_data =
 -      GetSecurityPageProductSpecificStringData(profile, args);
 -
--  hats_service->LaunchDelayedSurveyForWebContents(
--      kHatsSurveyTriggerSettingsSecurity, web_ui()->GetWebContents(),
--      features::kHappinessTrackingSurveysForSecurityPageTime.Get()
--          .InMilliseconds(),
+-  hats_service->LaunchSurvey(
+-      kHatsSurveyTriggerSettingsSecurity,
+-      /*success_callback*/ base::DoNothing(),
+-      /*failure_callback*/ base::DoNothing(),
 -      /*product_specific_bits_data=*/{},
--      /*product_specific_string_data=*/product_specific_string_data,
--      /*require_same_origin=*/true);
+-      /*product_specific_string_data=*/product_specific_string_data);
  }
  
  /**
-@@ -180,17 +145,7 @@ SurveyStringData HatsHandler::GetSecurit
+@@ -200,17 +150,7 @@ SurveyStringData HatsHandler::GetSecurit
      }
    }
  
@@ -2390,27 +2489,29 @@
                                 std::move(callback),
 --- a/chrome/test/BUILD.gn
 +++ b/chrome/test/BUILD.gn
-@@ -1811,7 +1811,6 @@ if (!is_android) {
+@@ -1884,8 +1884,6 @@ if (!is_android) {
        "//components/resources",
        "//components/safe_browsing:buildflags",
        "//components/safe_browsing/content/browser",
 -      "//components/safe_browsing/content/browser:client_side_detection",
+-      "//components/safe_browsing/content/browser:client_side_detection_service",
        "//components/safe_browsing/content/browser:safe_browsing_service",
        "//components/safe_browsing/content/browser/password_protection",
        "//components/safe_browsing/content/browser/password_protection:test_support",
-@@ -6794,7 +6793,6 @@ test("unit_tests") {
+@@ -6938,8 +6936,6 @@ test("unit_tests") {
      "//components/resources",
      "//components/safe_browsing:buildflags",
      "//components/safe_browsing/content/browser",
 -    "//components/safe_browsing/content/browser:client_side_detection",
+-    "//components/safe_browsing/content/browser:client_side_detection_service",
      "//components/safe_browsing/content/browser/password_protection",
      "//components/safe_browsing/content/browser/password_protection:mock_password_protection",
      "//components/safe_browsing/content/browser/web_ui",
-@@ -10010,9 +10008,6 @@ test("unit_tests") {
+@@ -10229,9 +10225,6 @@ test("unit_tests") {
      ]
    }
  
--  if (is_win || is_mac || is_linux || is_chromeos) {
+-  if (enterprise_data_controls) {
 -    deps += [ "../browser/enterprise/data_controls:unit_tests" ]
 -  }
  
@@ -2447,7 +2548,7 @@
  # These two flags are equivalent, but `enable_print_content_analysis` still
 --- a/components/password_manager/content/browser/content_password_manager_driver.cc
 +++ b/components/password_manager/content/browser/content_password_manager_driver.cc
-@@ -496,7 +496,7 @@ void ContentPasswordManagerDriver::Check
+@@ -497,7 +497,7 @@ void ContentPasswordManagerDriver::Check
    if (!password_manager::bad_message::CheckFrameNotPrerendering(
            render_frame_host_))
      return;
@@ -2493,7 +2594,7 @@
 +# }
 --- a/components/safe_browsing/content/common/safe_browsing.mojom
 +++ b/components/safe_browsing/content/common/safe_browsing.mojom
-@@ -134,7 +134,6 @@ interface PhishingDetector {
+@@ -139,7 +139,6 @@ interface PhishingDetector {
      => (PhishingDetectorResult result, string request_proto);
  };
  
@@ -2654,7 +2755,7 @@
  }
  
  void FileSystemAccessSafeMoveHelper::ComputeHashForSourceFile(
-@@ -221,45 +214,6 @@ bool FileSystemAccessSafeMoveHelper::Req
+@@ -215,45 +208,6 @@ bool FileSystemAccessSafeMoveHelper::Req
    return dest_url().type() != storage::kFileSystemTypeTemporary;
  }
  
@@ -2792,7 +2893,7 @@
  
 --- a/extensions/browser/updater/update_service.cc
 +++ b/extensions/browser/updater/update_service.cc
-@@ -128,13 +128,6 @@ void UpdateService::OnCrxStateChange(Upd
+@@ -127,13 +127,6 @@ void UpdateService::OnCrxStateChange(Upd
        break;
    }
  
@@ -2808,7 +2909,7 @@
  UpdateService::UpdateService(
 --- a/printing/buildflags/buildflags.gni
 +++ b/printing/buildflags/buildflags.gni
-@@ -47,7 +47,7 @@ declare_args() {
+@@ -48,7 +48,7 @@ declare_args() {
  
    # Enable snapshotting a page when printing for its content to be analyzed for
    # sensitive content by enterprise users.

File diff suppressed because it is too large
+ 156 - 149
patches/core/ungoogled-chromium/remove-unused-preferences-fields.patch


+ 8 - 8
patches/core/ungoogled-chromium/toggle-translation-via-switch.patch

@@ -1,7 +1,7 @@
 # Disables translation and removes the "Translate to" context menu when --translate-script-url flag is not set
 --- a/chrome/browser/renderer_context_menu/render_view_context_menu.cc
 +++ b/chrome/browser/renderer_context_menu/render_view_context_menu.cc
-@@ -165,6 +165,7 @@
+@@ -166,6 +166,7 @@
  #include "components/spellcheck/spellcheck_buildflags.h"
  #include "components/strings/grit/components_strings.h"
  #include "components/supervised_user/core/common/buildflags.h"
@@ -9,14 +9,14 @@
  #include "components/translate/core/browser/translate_download_manager.h"
  #include "components/translate/core/browser/translate_manager.h"
  #include "components/translate/core/browser/translate_prefs.h"
-@@ -2044,6 +2045,7 @@ void RenderViewContextMenu::AppendPageIt
+@@ -2102,6 +2103,7 @@ void RenderViewContextMenu::AppendPageIt
      menu_model_.AddSeparator(ui::NORMAL_SEPARATOR);
  
    if (CanTranslate(/*menu_logging=*/true)) {
 +   if (base::CommandLine::ForCurrentProcess()->HasSwitch(translate::switches::kTranslateScriptURL))
-     menu_model_.AddItem(
-         IDC_CONTENT_CONTEXT_TRANSLATE,
-         l10n_util::GetStringFUTF16(
+     AppendTranslateItem();
+   }
+ }
 --- a/components/translate/core/browser/translate_language_list.cc
 +++ b/components/translate/core/browser/translate_language_list.cc
 @@ -9,6 +9,7 @@
@@ -35,7 +35,7 @@
  #include "components/translate/core/common/translate_util.h"
  #include "net/base/url_util.h"
  #include "third_party/abseil-cpp/absl/types/optional.h"
-@@ -242,6 +244,9 @@ GURL TranslateLanguageList::TranslateLan
+@@ -392,6 +394,9 @@ GURL TranslateLanguageList::TranslateLan
  }
  
  void TranslateLanguageList::RequestLanguageList() {
@@ -47,7 +47,7 @@
      request_pending_ = true;
 --- a/components/translate/core/browser/translate_manager.cc
 +++ b/components/translate/core/browser/translate_manager.cc
-@@ -832,8 +832,9 @@ void TranslateManager::FilterIsTranslate
+@@ -834,8 +834,9 @@ void TranslateManager::FilterIsTranslate
          TriggerDecision::kDisabledOffline);
    }
  
@@ -88,7 +88,7 @@
    translate_event->set_ranker_version(GetModelVersion());
 --- a/components/translate/core/browser/translate_script.cc
 +++ b/components/translate/core/browser/translate_script.cc
-@@ -137,8 +137,13 @@ void TranslateScript::OnScriptFetchCompl
+@@ -139,8 +139,13 @@ void TranslateScript::OnScriptFetchCompl
                          server_params.c_str());
  
      GURL security_origin = translate::GetTranslateSecurityOrigin();

+ 16 - 16
patches/extra/bromite/fingerprinting-flags-client-rects-and-measuretext.patch

@@ -9,7 +9,7 @@
 
 --- a/chrome/browser/BUILD.gn
 +++ b/chrome/browser/BUILD.gn
-@@ -2575,6 +2575,7 @@ static_library("browser") {
+@@ -2546,6 +2546,7 @@ static_library("browser") {
      "//third_party/libyuv",
      "//third_party/metrics_proto",
      "//third_party/re2",
@@ -44,7 +44,7 @@
  #endif  // CHROME_BROWSER_BROMITE_FLAG_ENTRIES_H_
 --- a/content/browser/BUILD.gn
 +++ b/content/browser/BUILD.gn
-@@ -247,6 +247,7 @@ source_set("browser") {
+@@ -248,6 +248,7 @@ source_set("browser") {
      "//third_party/libyuv",
      "//third_party/re2",
      "//third_party/sqlite",
@@ -62,7 +62,7 @@
  #include "components/viz/common/switches.h"
  #include "components/viz/host/gpu_client.h"
  #include "content/browser/bad_message.h"
-@@ -3420,6 +3421,8 @@ void RenderProcessHostImpl::PropagateBro
+@@ -3417,6 +3418,8 @@ void RenderProcessHostImpl::PropagateBro
      switches::kEnableWebGLImageChromium,
      switches::kEnableWebGPUDeveloperFeatures,
      switches::kFileUrlPathAlias,
@@ -73,7 +73,7 @@
      switches::kForceGpuMemAvailableMb,
 --- a/content/child/BUILD.gn
 +++ b/content/child/BUILD.gn
-@@ -103,6 +103,7 @@ target(link_target_type, "child") {
+@@ -105,6 +105,7 @@ target(link_target_type, "child") {
      "//third_party/blink/public/common:buildflags",
      "//third_party/blink/public/strings",
      "//third_party/ced",
@@ -83,7 +83,7 @@
      "//ui/events/blink",
 --- a/content/child/runtime_features.cc
 +++ b/content/child/runtime_features.cc
-@@ -40,6 +40,7 @@
+@@ -39,6 +39,7 @@
  #include "third_party/blink/public/common/loader/referrer_utils.h"
  #include "third_party/blink/public/common/switches.h"
  #include "third_party/blink/public/platform/web_runtime_features.h"
@@ -91,7 +91,7 @@
  #include "ui/accessibility/accessibility_features.h"
  #include "ui/base/ui_base_features.h"
  #include "ui/events/blink/blink_features.h"
-@@ -475,6 +476,10 @@ void SetRuntimeFeaturesFromCommandLine(c
+@@ -478,6 +479,10 @@ void SetRuntimeFeaturesFromCommandLine(c
         switches::kEnableWebGPUDeveloperFeatures, true},
        {wrf::EnableDirectSockets, switches::kEnableIsolatedWebAppsInRenderer,
         true},
@@ -124,7 +124,7 @@
  #include "base/ranges/algorithm.h"
  #include "base/task/single_thread_task_runner.h"
  #include "base/time/time.h"
-@@ -943,6 +944,14 @@ Range* Document::CreateRangeAdjustedToTr
+@@ -947,6 +948,14 @@ Range* Document::CreateRangeAdjustedToTr
                                       Position::BeforeNode(*shadow_host));
  }
  
@@ -139,7 +139,7 @@
  SelectorQueryCache& Document::GetSelectorQueryCache() {
    if (!selector_query_cache_)
      selector_query_cache_ = std::make_unique<SelectorQueryCache>();
-@@ -2318,6 +2327,15 @@ void Document::UpdateStyleAndLayoutTreeF
+@@ -2322,6 +2331,15 @@ void Document::UpdateStyleAndLayoutTreeF
  #if DCHECK_IS_ON()
    AssertLayoutTreeUpdated(*this, true /* allow_dirty_container_subtrees */);
  #endif
@@ -157,7 +157,7 @@
  void Document::InvalidateStyleAndLayoutForFontUpdates() {
 --- a/third_party/blink/renderer/core/dom/document.h
 +++ b/third_party/blink/renderer/core/dom/document.h
-@@ -511,6 +511,10 @@ class CORE_EXPORT Document : public Cont
+@@ -525,6 +525,10 @@ class CORE_EXPORT Document : public Cont
      has_xml_declaration_ = has_xml_declaration ? 1 : 0;
    }
  
@@ -168,7 +168,7 @@
    AtomicString visibilityState() const;
    bool IsPageVisible() const;
    bool hidden() const;
-@@ -2413,6 +2417,9 @@ class CORE_EXPORT Document : public Cont
+@@ -2457,6 +2461,9 @@ class CORE_EXPORT Document : public Cont
  
    base::ElapsedTimer start_time_;
  
@@ -180,7 +180,7 @@
  
 --- a/third_party/blink/renderer/core/dom/element.cc
 +++ b/third_party/blink/renderer/core/dom/element.cc
-@@ -2123,6 +2123,11 @@ DOMRectList* Element::getClientRects() {
+@@ -2162,6 +2162,11 @@ DOMRectList* Element::getClientRects() {
    DCHECK(element_layout_object);
    GetDocument().AdjustQuadsForScrollAndAbsoluteZoom(quads,
                                                      *element_layout_object);
@@ -192,7 +192,7 @@
    return MakeGarbageCollected<DOMRectList>(quads);
  }
  
-@@ -2150,6 +2155,9 @@ gfx::RectF Element::GetBoundingClientRec
+@@ -2189,6 +2194,9 @@ gfx::RectF Element::GetBoundingClientRec
    DCHECK(element_layout_object);
    GetDocument().AdjustRectForScrollAndAbsoluteZoom(result,
                                                     *element_layout_object);
@@ -267,7 +267,7 @@
                const TextDirection&,
 --- a/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc
 +++ b/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc
-@@ -56,6 +56,9 @@
+@@ -61,6 +61,9 @@
  #include "ui/gfx/geometry/quad_f.h"
  #include "ui/gfx/geometry/skia_conversions.h"
  
@@ -277,7 +277,7 @@
  namespace blink {
  
  BASE_FEATURE(kDisableCanvasOverdrawOptimization,
-@@ -2892,9 +2895,22 @@ TextMetrics* BaseRenderingContext2D::mea
+@@ -2908,9 +2911,22 @@ TextMetrics* BaseRenderingContext2D::mea
  
    TextDirection direction = ToTextDirection(GetState().GetDirection(), canvas);
  
@@ -303,7 +303,7 @@
  void BaseRenderingContext2D::SnapshotStateForFilter() {
 --- a/third_party/blink/renderer/platform/BUILD.gn
 +++ b/third_party/blink/renderer/platform/BUILD.gn
-@@ -1702,6 +1702,7 @@ component("platform") {
+@@ -1704,6 +1704,7 @@ component("platform") {
      "//cc/mojo_embedder",
      "//components/paint_preview/common",
      "//components/search_engines:search_engine_utils",
@@ -328,7 +328,7 @@
  }  // namespace blink
 --- a/third_party/blink/renderer/platform/runtime_enabled_features.json5
 +++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5
-@@ -1887,6 +1887,12 @@
+@@ -1816,6 +1816,12 @@
        origin_trial_feature_name: "Focusgroup",
      },
      {

+ 8 - 8
patches/extra/bromite/flag-fingerprinting-canvas-image-data-noise.patch

@@ -34,7 +34,7 @@ approach to change color components.
  #endif  // CHROME_BROWSER_BROMITE_FLAG_ENTRIES_H_
 --- a/content/browser/renderer_host/render_process_host_impl.cc
 +++ b/content/browser/renderer_host/render_process_host_impl.cc
-@@ -3423,6 +3423,7 @@ void RenderProcessHostImpl::PropagateBro
+@@ -3420,6 +3420,7 @@ void RenderProcessHostImpl::PropagateBro
      switches::kFileUrlPathAlias,
      switches::kFingerprintingClientRectsNoise,
      switches::kFingerprintingCanvasMeasureTextNoise,
@@ -44,7 +44,7 @@ approach to change color components.
      switches::kForceGpuMemAvailableMb,
 --- a/content/child/runtime_features.cc
 +++ b/content/child/runtime_features.cc
-@@ -480,6 +480,8 @@ void SetRuntimeFeaturesFromCommandLine(c
+@@ -483,6 +483,8 @@ void SetRuntimeFeaturesFromCommandLine(c
         switches::kFingerprintingClientRectsNoise, true},
        {wrf::EnableFingerprintingCanvasMeasureTextNoise,
         switches::kFingerprintingCanvasMeasureTextNoise, true},
@@ -65,15 +65,15 @@ approach to change color components.
  };
 --- a/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc
 +++ b/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc
-@@ -48,6 +48,7 @@
- #include "third_party/blink/renderer/platform/graphics/filters/paint_filter_builder.h"
- #include "third_party/blink/renderer/platform/graphics/graphics_context.h"
+@@ -52,6 +52,7 @@
+ #include "third_party/blink/renderer/platform/graphics/graphics_types.h"
+ #include "third_party/blink/renderer/platform/graphics/image_data_buffer.h"
  #include "third_party/blink/renderer/platform/graphics/skia/skia_utils.h"
 +#include "third_party/blink/renderer/platform/graphics/static_bitmap_image.h"
  #include "third_party/blink/renderer/platform/graphics/stroke_data.h"
  #include "third_party/blink/renderer/platform/graphics/video_frame_image_util.h"
  #include "third_party/blink/renderer/platform/heap/garbage_collected.h"
-@@ -2211,6 +2212,9 @@ ImageData* BaseRenderingContext2D::getIm
+@@ -2232,6 +2233,9 @@ ImageData* BaseRenderingContext2D::getIm
            snapshot->PaintImageForCurrentFrame().GetSkImageInfo().bounds();
        DCHECK(!bounds.intersect(SkIRect::MakeXYWH(sx, sy, sw, sh)));
      }
@@ -85,7 +85,7 @@ approach to change color components.
    return image_data;
 --- a/third_party/blink/renderer/platform/BUILD.gn
 +++ b/third_party/blink/renderer/platform/BUILD.gn
-@@ -1657,7 +1657,9 @@ component("platform") {
+@@ -1659,7 +1659,9 @@ component("platform") {
      "//third_party/blink/renderer:non_test_config",
    ]
  
@@ -322,7 +322,7 @@ approach to change color components.
    // Methods overridden by all sub-classes
 --- a/third_party/blink/renderer/platform/runtime_enabled_features.json5
 +++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5
-@@ -1893,6 +1893,9 @@
+@@ -1822,6 +1822,9 @@
        name: "FingerprintingCanvasMeasureTextNoise",
      },
      {

+ 4 - 4
patches/extra/bromite/flag-max-connections-per-host.patch

@@ -17,7 +17,7 @@ with limited CPU/memory resources and it is disabled by default.
 
 --- a/chrome/browser/BUILD.gn
 +++ b/chrome/browser/BUILD.gn
-@@ -2295,6 +2295,7 @@ static_library("browser") {
+@@ -2265,6 +2265,7 @@ static_library("browser") {
      "//components/net_log",
      "//components/network_hints/common:mojo_bindings",
      "//components/network_session_configurator/browser",
@@ -79,7 +79,7 @@ with limited CPU/memory resources and it is disabled by default.
  #include "ppapi/buildflags/buildflags.h"
  #include "printing/buildflags/buildflags.h"
  #include "services/network/public/cpp/features.h"
-@@ -367,6 +371,18 @@ void BrowserProcessImpl::Init() {
+@@ -371,6 +375,18 @@ void BrowserProcessImpl::Init() {
    pref_change_registrar_.Add(metrics::prefs::kMetricsReportingEnabled,
                               base::BindRepeating(&ApplyMetricsReportingPolicy));
  
@@ -100,7 +100,7 @@ with limited CPU/memory resources and it is disabled by default.
  
 --- a/chrome/browser/flag_descriptions.cc
 +++ b/chrome/browser/flag_descriptions.cc
-@@ -2194,6 +2194,10 @@ const char kUnthrottledNestedTimeoutDesc
+@@ -2299,6 +2299,10 @@ const char kUnthrottledNestedTimeoutDesc
      "websites abusing the API will still eventually have their setTimeouts "
      "clamped.";
  
@@ -113,7 +113,7 @@ with limited CPU/memory resources and it is disabled by default.
  const char kMediaRouterCastAllowAllIPsDescription[] =
 --- a/chrome/browser/flag_descriptions.h
 +++ b/chrome/browser/flag_descriptions.h
-@@ -1252,6 +1252,9 @@ extern const char kUndoAutofillDescripti
+@@ -1298,6 +1298,9 @@ extern const char kUndoAutofillDescripti
  extern const char kUnthrottledNestedTimeoutName[];
  extern const char kUnthrottledNestedTimeoutDescription[];
  

+ 4 - 4
patches/extra/inox-patchset/0006-modify-default-prefs.patch

@@ -12,7 +12,7 @@
  void BackgroundModeManager::RegisterProfile(Profile* profile) {
 --- a/chrome/browser/chrome_content_browser_client.cc
 +++ b/chrome/browser/chrome_content_browser_client.cc
-@@ -1572,7 +1572,7 @@ void ChromeContentBrowserClient::Registe
+@@ -1541,7 +1541,7 @@ void ChromeContentBrowserClient::Registe
  void ChromeContentBrowserClient::RegisterProfilePrefs(
      user_prefs::PrefRegistrySyncable* registry) {
    registry->RegisterBooleanPref(prefs::kDisable3DAPIs, false);
@@ -23,7 +23,7 @@
    // used for mapping the command-line flags).
 --- a/chrome/browser/net/profile_network_context_service.cc
 +++ b/chrome/browser/net/profile_network_context_service.cc
-@@ -363,7 +363,7 @@ void ProfileNetworkContextService::Updat
+@@ -359,7 +359,7 @@ void ProfileNetworkContextService::Updat
  void ProfileNetworkContextService::RegisterProfilePrefs(
      user_prefs::PrefRegistrySyncable* registry) {
    registry->RegisterBooleanPref(embedder_support::kAlternateErrorPagesEnabled,
@@ -45,7 +45,7 @@
  // Enum representing possible values of the Preload Pages opt-in state. These
 --- a/chrome/browser/profiles/profile.cc
 +++ b/chrome/browser/profiles/profile.cc
-@@ -310,7 +310,7 @@ const char Profile::kProfileKey[] = "__P
+@@ -314,7 +314,7 @@ const char Profile::kProfileKey[] = "__P
  void Profile::RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) {
    registry->RegisterBooleanPref(
        prefs::kSearchSuggestEnabled,
@@ -109,7 +109,7 @@
    registry->RegisterBooleanPref(
 --- a/components/content_settings/core/browser/cookie_settings.cc
 +++ b/components/content_settings/core/browser/cookie_settings.cc
-@@ -81,7 +81,7 @@ void CookieSettings::RegisterProfilePref
+@@ -86,7 +86,7 @@ void CookieSettings::RegisterProfilePref
      user_prefs::PrefRegistrySyncable* registry) {
    registry->RegisterIntegerPref(
        prefs::kCookieControlsMode,

+ 10 - 5
patches/extra/inox-patchset/0008-restore-classic-ntp.patch

@@ -1,6 +1,6 @@
 --- a/chrome/browser/search/search.cc
 +++ b/chrome/browser/search/search.cc
-@@ -178,28 +178,8 @@ struct NewTabURLDetails {
+@@ -184,33 +184,8 @@ struct NewTabURLDetails {
      const GURL local_url(default_is_google
                               ? chrome::kChromeUINewTabPageURL
                               : chrome::kChromeUINewTabPageThirdPartyURL);
@@ -11,19 +11,24 @@
 -
 -    const TemplateURL* template_url =
 -        GetDefaultSearchProviderTemplateURL(profile);
--    if (!profile || !template_url)
+-    if (!profile || !template_url) {
 -      return NewTabURLDetails(local_url, NEW_TAB_URL_BAD);
+-    }
 -
 -    GURL search_provider_url(template_url->new_tab_url_ref().ReplaceSearchTerms(
 -        TemplateURLRef::SearchTermsArgs(std::u16string()),
 -        UIThreadSearchTermsData()));
 -
--    if (!search_provider_url.is_valid())
+-    if (!search_provider_url.is_valid()) {
 -      return NewTabURLDetails(local_url, NEW_TAB_URL_NOT_SET);
--    if (!search_provider_url.SchemeIsCryptographic())
+-    }
+-    if (!search_provider_url.SchemeIsCryptographic()) {
 -      return NewTabURLDetails(local_url, NEW_TAB_URL_INSECURE);
--    if (!IsURLAllowedForSupervisedUser(search_provider_url, profile))
+-    }
+-    if (!IsURLAllowedForSupervisedUser(search_provider_url,
+-                                       CHECK_DEREF(profile))) {
 -      return NewTabURLDetails(local_url, NEW_TAB_URL_BLOCKED);
+-    }
 -
 -    return NewTabURLDetails(search_provider_url, NEW_TAB_URL_VALID);
 +    return NewTabURLDetails(local_url, NEW_TAB_URL_VALID);

+ 1 - 1
patches/extra/inox-patchset/0018-disable-first-run-behaviour.patch

@@ -1,6 +1,6 @@
 --- a/chrome/browser/ui/startup/startup_tab_provider.cc
 +++ b/chrome/browser/ui/startup/startup_tab_provider.cc
-@@ -138,7 +138,7 @@ bool IsChromeControlledNtpUrl(const GURL
+@@ -137,7 +137,7 @@ bool IsChromeControlledNtpUrl(const GURL
  
  StartupTabs StartupTabProviderImpl::GetOnboardingTabs(Profile* profile) const {
  // Chrome OS has its own welcome flow provided by OOBE.

+ 1 - 1
patches/extra/iridium-browser/browser-disable-profile-auto-import-on-first-run.patch

@@ -5,7 +5,7 @@ Subject: [PATCH 56/66] browser: disable profile auto-import on first run
 
 --- a/chrome/browser/chrome_browser_main.cc
 +++ b/chrome/browser/chrome_browser_main.cc
-@@ -1595,11 +1595,6 @@ int ChromeBrowserMainParts::PreMainMessa
+@@ -1635,11 +1635,6 @@ int ChromeBrowserMainParts::PreMainMessa
    // and preferences have been registered since some of the import code depends
    // on preferences.
    if (first_run::IsChromeFirstRun()) {

+ 1 - 1
patches/extra/iridium-browser/net-cert-increase-default-key-length-for-newly-gener.patch

@@ -12,7 +12,7 @@ it as hidden as it was before?
 
 --- a/net/cert/x509_util.cc
 +++ b/net/cert/x509_util.cc
-@@ -254,7 +254,7 @@ bool GetTLSServerEndPointChannelBinding(
+@@ -255,7 +255,7 @@ bool GetTLSServerEndPointChannelBinding(
  }
  
  // RSA keys created by CreateKeyAndSelfSignedCert will be of this length.

+ 1 - 1
patches/extra/iridium-browser/prefs-always-prompt-for-download-directory-by-defaul.patch

@@ -29,7 +29,7 @@ TLDR: Do not let files sneak onto the disk too easily.
 
 --- a/chrome/browser/download/download_prefs.cc
 +++ b/chrome/browser/download/download_prefs.cc
-@@ -274,7 +274,7 @@ void DownloadPrefs::RegisterProfilePrefs
+@@ -272,7 +272,7 @@ void DownloadPrefs::RegisterProfilePrefs
      user_prefs::PrefRegistrySyncable* registry) {
    registry->RegisterBooleanPref(
        prefs::kPromptForDownload,

+ 0 - 39
patches/extra/iridium-browser/prefs-only-keep-cookies-until-exit.patch

@@ -1,39 +0,0 @@
-From 0839326fb1b7ff7937cee0efa45f5a4ba23c2f78 Mon Sep 17 00:00:00 2001
-From: Jan Engelhardt <jengelh@inai.de>
-Date: Sat, 13 Sep 2014 17:25:47 +0200
-Subject: [PATCH 27/66] prefs: only keep cookies until exit
-
-Out with all those tracking cookies!
----
- components/content_settings/core/browser/content_settings_registry.cc | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/chrome/browser/resources/settings/privacy_page/cookies_page.html
-+++ b/chrome/browser/resources/settings/privacy_page/cookies_page.html
-@@ -344,6 +344,7 @@
-           </settings-collapse-radio-button>
-         </settings-radio-group>
-       </div>
-+    </template>
-       <settings-toggle-button id="clearOnExit" class="hr"
-           pref="{{prefs.generated.cookie_session_only}}"
-           label="$i18n{cookiePageClearOnExit}"
-@@ -352,7 +353,6 @@
-   </if>
-           on-settings-boolean-control-change="onClearOnExitChange_">
-       </settings-toggle-button>
--    </template>
-     <settings-do-not-track-toggle id="doNotTrack"
-         prefs="{{prefs}}"
-         hidden="[[is3pcdRedesignEnabled_]]">
---- a/components/content_settings/core/browser/content_settings_registry.cc
-+++ b/components/content_settings/core/browser/content_settings_registry.cc
-@@ -78,7 +78,7 @@ void ContentSettingsRegistry::Init() {
-   // DefaultProvider::DiscardOrMigrateObsoletePreferences() accordingly.
- 
-   Register(
--      ContentSettingsType::COOKIES, "cookies", CONTENT_SETTING_ALLOW,
-+      ContentSettingsType::COOKIES, "cookies", CONTENT_SETTING_SESSION_ONLY,
-       WebsiteSettingsInfo::SYNCABLE,
-       /*allowlisted_schemes=*/{kChromeUIScheme, kChromeDevToolsScheme},
-       /*valid_settings=*/

+ 1 - 1
patches/extra/iridium-browser/updater-disable-auto-update.patch

@@ -16,7 +16,7 @@ the case anyway, since we are based off Chromium, not Chrome.
 
 --- a/chrome/browser/app_controller_mac.mm
 +++ b/chrome/browser/app_controller_mac.mm
-@@ -934,7 +934,7 @@ class AppControllerNativeThemeObserver :
+@@ -931,7 +931,7 @@ class AppControllerNativeThemeObserver :
    CFStringRef checkInterval = CFSTR("checkInterval");
    CFPropertyListRef plist = CFPreferencesCopyAppValue(checkInterval, app);
    if (!plist) {

+ 8 - 8
patches/extra/ungoogled-chromium/add-flag-for-close-confirmation.patch

@@ -1,6 +1,6 @@
 --- a/chrome/browser/ui/browser.cc
 +++ b/chrome/browser/ui/browser.cc
-@@ -139,6 +139,8 @@
+@@ -137,6 +137,8 @@
  #include "chrome/browser/ui/tabs/tab_strip_model.h"
  #include "chrome/browser/ui/tabs/tab_utils.h"
  #include "chrome/browser/ui/ui_features.h"
@@ -9,7 +9,7 @@
  #include "chrome/browser/ui/web_applications/app_browser_controller.h"
  #include "chrome/browser/ui/web_applications/web_app_launch_utils.h"
  #include "chrome/browser/ui/webui/signin/login_ui_service.h"
-@@ -474,6 +476,7 @@ Browser::Browser(const CreateParams& par
+@@ -473,6 +475,7 @@ Browser::Browser(const CreateParams& par
        omit_from_session_restore_(params.omit_from_session_restore),
        should_trigger_session_restore_(params.should_trigger_session_restore),
        cancel_download_confirmation_state_(NOT_PROMPTED),
@@ -17,7 +17,7 @@
        override_bounds_(params.initial_bounds),
        initial_show_state_(params.initial_show_state),
        initial_workspace_(params.initial_workspace),
-@@ -858,6 +861,7 @@ Browser::WarnBeforeClosingResult Browser
+@@ -861,6 +864,7 @@ Browser::WarnBeforeClosingResult Browser
    // true or there are no pending downloads we need to prompt about) then
    // there's no need to warn.
    if (force_skip_warning_user_on_close_ || CanCloseWithInProgressDownloads())
@@ -25,7 +25,7 @@
      return WarnBeforeClosingResult::kOkToClose;
  
    DCHECK(!warn_before_closing_callback_)
-@@ -892,6 +896,7 @@ bool Browser::TryToCloseWindow(
+@@ -895,6 +899,7 @@ bool Browser::TryToCloseWindow(
  
  void Browser::ResetTryToCloseWindow() {
    cancel_download_confirmation_state_ = NOT_PROMPTED;
@@ -33,7 +33,7 @@
    unload_controller_.ResetTryToCloseWindow();
  }
  
-@@ -2922,6 +2927,62 @@ bool Browser::CanCloseWithInProgressDown
+@@ -2895,6 +2900,62 @@ bool Browser::CanCloseWithInProgressDown
    return false;
  }
  
@@ -96,7 +96,7 @@
  void Browser::InProgressDownloadResponse(bool cancel_downloads) {
    if (cancel_downloads) {
      cancel_download_confirmation_state_ = RESPONSE_RECEIVED;
-@@ -2940,6 +3001,22 @@ void Browser::InProgressDownloadResponse
+@@ -2913,6 +2974,22 @@ void Browser::InProgressDownloadResponse
  
    std::move(warn_before_closing_callback_)
        .Run(WarnBeforeClosingResult::kDoNotClose);
@@ -129,7 +129,7 @@
  #include "chrome/browser/ui/signin/signin_view_controller.h"
  #include "chrome/browser/ui/tabs/tab_strip_model_observer.h"
  #include "chrome/browser/ui/unload_controller.h"
-@@ -1108,12 +1109,17 @@ class Browser : public TabStripModelObse
+@@ -1100,12 +1101,17 @@ class Browser : public TabStripModelObse
    // Returns true if the window can close, false otherwise.
    bool CanCloseWithInProgressDownloads();
  
@@ -147,7 +147,7 @@
    // Called when all warnings have completed when attempting to close the
    // browser directly (e.g. via hotkey, close button, terminate signal, etc.)
    // Used as a WarnBeforeClosingCallback by ShouldCloseWindow().
-@@ -1284,6 +1290,8 @@ class Browser : public TabStripModelObse
+@@ -1276,6 +1282,8 @@ class Browser : public TabStripModelObse
    // when the browser is closed with in-progress downloads.
    CancelDownloadConfirmationState cancel_download_confirmation_state_;
  

+ 1 - 1
patches/extra/ungoogled-chromium/add-flag-for-custom-ntp.patch

@@ -1,6 +1,6 @@
 --- a/chrome/browser/chrome_content_browser_client.cc
 +++ b/chrome/browser/chrome_content_browser_client.cc
-@@ -884,10 +884,14 @@ bool HandleNewTabPageLocationOverride(
+@@ -881,10 +881,14 @@ bool HandleNewTabPageLocationOverride(
  
    // Don't change the URL when incognito mode.
    if (profile->IsOffTheRecord())

+ 4 - 4
patches/extra/ungoogled-chromium/add-flag-for-disabling-link-drag.patch

@@ -11,9 +11,9 @@
  #endif  // CHROME_BROWSER_UNGOOGLED_FLAG_ENTRIES_H_
 --- a/third_party/blink/common/features.cc
 +++ b/third_party/blink/common/features.cc
-@@ -155,6 +155,8 @@ BASE_FEATURE(kAutofillUseDomNodeIdForRen
+@@ -151,6 +151,8 @@ BASE_FEATURE(kAutofillUseDomNodeIdForRen
               "AutofillUseDomNodeIdForRendererId",
-              base::FEATURE_DISABLED_BY_DEFAULT);
+              base::FEATURE_ENABLED_BY_DEFAULT);
  
 +BASE_FEATURE(kDisableLinkDrag, "DisableLinkDrag", base::FEATURE_DISABLED_BY_DEFAULT);
 +
@@ -33,7 +33,7 @@
  //
 --- a/third_party/blink/renderer/core/editing/selection_controller.cc
 +++ b/third_party/blink/renderer/core/editing/selection_controller.cc
-@@ -1433,10 +1433,14 @@ FrameSelection& SelectionController::Sel
+@@ -1438,10 +1438,14 @@ FrameSelection& SelectionController::Sel
  }
  
  bool IsSelectionOverLink(const MouseEventWithHitTestResults& event) {
@@ -50,7 +50,7 @@
    Node* inner_node = event.InnerNode();
 --- a/third_party/blink/renderer/core/input/mouse_event_manager.cc
 +++ b/third_party/blink/renderer/core/input/mouse_event_manager.cc
-@@ -621,8 +621,14 @@ WebInputEventResult MouseEventManager::H
+@@ -648,8 +648,14 @@ WebInputEventResult MouseEventManager::H
  
    bool single_click = event.Event().click_count <= 1;
  

+ 3 - 3
patches/extra/ungoogled-chromium/add-flag-for-omnibox-autocomplete-filtering.patch

@@ -41,7 +41,7 @@
  #include "base/feature_list.h"
  #include "base/format_macros.h"
  #include "base/functional/bind.h"
-@@ -334,6 +335,15 @@ AutocompleteController::AutocompleteCont
+@@ -336,6 +337,15 @@ AutocompleteController::AutocompleteCont
        steady_state_omnibox_position_(
            metrics::OmniboxEventProto::UNKNOWN_POSITION) {
    provider_types &= ~OmniboxFieldTrial::GetDisabledProviderTypes();
@@ -79,7 +79,7 @@
  #include "base/feature_list.h"
  #include "base/functional/bind.h"
  #include "base/functional/callback.h"
-@@ -650,6 +651,9 @@ void SearchProvider::Run(bool query_is_p
+@@ -636,6 +637,9 @@ void SearchProvider::Run(bool query_is_p
  }
  
  void SearchProvider::DoHistoryQuery(bool minimal_changes) {
@@ -100,7 +100,7 @@
  #include "base/files/file_path.h"
  #include "base/files/file_util.h"
  #include "base/i18n/char_iterator.h"
-@@ -608,6 +610,8 @@ GURL FixupURL(const std::string& text, c
+@@ -621,6 +623,8 @@ GURL FixupURLInternal(const std::string&
  
      FixupHost(trimmed, parts.host, parts.scheme.is_valid(), desired_tld, &url);
      if (chrome_url && !parts.host.is_valid())

+ 11 - 11
patches/extra/ungoogled-chromium/add-flag-for-search-engine-collection.patch

@@ -13,7 +13,7 @@
  #endif  // CHROME_BROWSER_UNGOOGLED_FLAG_ENTRIES_H_
 --- a/chrome/renderer/chrome_render_frame_observer.cc
 +++ b/chrome/renderer/chrome_render_frame_observer.cc
-@@ -256,14 +256,16 @@ void ChromeRenderFrameObserver::DidFinis
+@@ -252,14 +252,16 @@ void ChromeRenderFrameObserver::DidFinis
    if (frame->Parent() || frame->IsInFencedFrameTree())
      return;
  
@@ -40,7 +40,7 @@
  
 --- a/components/search_engines/template_url_service.cc
 +++ b/components/search_engines/template_url_service.cc
-@@ -8,6 +8,7 @@
+@@ -9,6 +9,7 @@
  #include "base/base64.h"
  #include "base/base64url.h"
  #include "base/check_is_test.h"
@@ -48,7 +48,7 @@
  #include "base/containers/contains.h"
  #include "base/debug/crash_logging.h"
  #include "base/feature_list.h"
-@@ -165,6 +166,12 @@ bool IsCreatedByExtension(const Template
+@@ -168,6 +169,12 @@ bool IsCreatedByExtension(const Template
           template_url->type() == TemplateURL::OMNIBOX_API_EXTENSION;
  }
  
@@ -61,15 +61,15 @@
  }  // namespace
  
  // TemplateURLService::LessWithPrefix -----------------------------------------
-@@ -249,6 +256,7 @@ TemplateURLService::TemplateURLService(
-     std::unique_ptr<TemplateURLServiceClient> client,
-     const base::RepeatingClosure& dsp_change_callback)
+@@ -256,6 +263,7 @@ TemplateURLService::TemplateURLService(
+ #endif  // BUILDFLAG(IS_CHROMEOS_LACROS)
+     )
      : prefs_(prefs),
 +      should_autocollect_(true),
        search_terms_data_(std::move(search_terms_data)),
        web_data_service_(web_data_service),
        client_(std::move(client)),
-@@ -331,8 +339,8 @@ bool TemplateURLService::CanAddAutogener
+@@ -351,8 +359,8 @@ bool TemplateURLService::CanAddAutogener
    // that may interfere with search queries).  An easy heuristic for this is
    // whether the user has a TemplateURL that has been manually modified (e.g.,
    // renamed) connected to the same host.
@@ -79,8 +79,8 @@
 +      CanAddAutogeneratedKeywordForHost(url.host()));
  }
  
- bool TemplateURLService::IsPrepopulatedOrCreatedByPolicy(
-@@ -1634,6 +1642,8 @@ SyncDataMap TemplateURLService::CreateGU
+ bool TemplateURLService::IsPrepopulatedOrDefaultProviderByPolicy(
+@@ -1661,6 +1669,8 @@ SyncDataMap TemplateURLService::CreateGU
  
  void TemplateURLService::Init(const Initializer* initializers,
                                int num_initializers) {
@@ -89,7 +89,7 @@
    if (client_)
      client_->SetOwner(this);
  
-@@ -1785,6 +1795,9 @@ void TemplateURLService::ChangeToLoadedS
+@@ -1812,6 +1822,9 @@ void TemplateURLService::ChangeToLoadedS
  
  bool TemplateURLService::CanAddAutogeneratedKeywordForHost(
      const std::string& host) const {
@@ -101,7 +101,7 @@
      return true;
 --- a/components/search_engines/template_url_service.h
 +++ b/components/search_engines/template_url_service.h
-@@ -768,6 +768,8 @@ class TemplateURLService : public WebDat
+@@ -788,6 +788,8 @@ class TemplateURLService : public WebDat
    // ---------- Browser state related members ---------------------------------
    raw_ptr<PrefService> prefs_ = nullptr;
  

+ 2 - 2
patches/extra/ungoogled-chromium/add-flag-for-tab-hover-cards.patch

@@ -8,7 +8,7 @@
  #include "base/debug/alias.h"
  #include "base/functional/bind.h"
  #include "base/i18n/rtl.h"
-@@ -685,6 +686,8 @@ void Tab::OnGestureEvent(ui::GestureEven
+@@ -683,6 +684,8 @@ void Tab::OnGestureEvent(ui::GestureEven
  }
  
  std::u16string Tab::GetTooltipText(const gfx::Point& p) const {
@@ -27,7 +27,7 @@
  #include "base/compiler_specific.h"
  #include "base/containers/adapters.h"
  #include "base/containers/contains.h"
-@@ -1669,6 +1670,8 @@ void TabStrip::OnMouseEventInTab(views::
+@@ -1667,6 +1668,8 @@ void TabStrip::OnMouseEventInTab(views::
  }
  
  void TabStrip::UpdateHoverCard(Tab* tab, HoverCardUpdateType update_type) {

+ 1 - 1
patches/extra/ungoogled-chromium/add-flag-to-close-window-with-last-tab.patch

@@ -8,7 +8,7 @@
  #include "base/containers/adapters.h"
  #include "base/containers/contains.h"
  #include "base/containers/flat_map.h"
-@@ -1910,6 +1911,10 @@ void TabStripModel::CloseTabs(base::span
+@@ -1923,6 +1924,10 @@ void TabStripModel::CloseTabs(base::span
      return;
    }
  

+ 1 - 1
patches/extra/ungoogled-chromium/add-flag-to-convert-popups-to-tabs.patch

@@ -13,7 +13,7 @@
  #endif  // CHROME_BROWSER_UNGOOGLED_FLAG_ENTRIES_H_
 --- a/content/renderer/render_frame_impl.cc
 +++ b/content/renderer/render_frame_impl.cc
-@@ -1193,6 +1193,8 @@ WindowOpenDisposition NavigationPolicyTo
+@@ -1201,6 +1201,8 @@ WindowOpenDisposition NavigationPolicyTo
      case blink::kWebNavigationPolicyNewWindow:
        return WindowOpenDisposition::NEW_WINDOW;
      case blink::kWebNavigationPolicyNewPopup:

+ 1 - 1
patches/extra/ungoogled-chromium/add-flag-to-disable-local-history-expiration.patch

@@ -21,7 +21,7 @@
  #include "base/compiler_specific.h"
  #include "base/containers/flat_set.h"
  #include "base/feature_list.h"
-@@ -1312,7 +1313,8 @@ void HistoryBackend::InitImpl(
+@@ -1316,7 +1317,8 @@ void HistoryBackend::InitImpl(
    db_->GetStartDate(&first_recorded_time_);
  
    // Start expiring old stuff.

+ 5 - 5
patches/extra/ungoogled-chromium/add-flag-to-hide-extensions-menu.patch

@@ -8,15 +8,15 @@
  #include "base/feature_list.h"
  #include "base/functional/bind.h"
  #include "base/functional/callback_helpers.h"
-@@ -32,6 +33,7 @@
+@@ -35,6 +36,7 @@
  #include "chrome/browser/ui/views/frame/toolbar_button_provider.h"
  #include "chrome/browser/ui/views/toolbar/toolbar_action_hover_card_controller.h"
  #include "chrome/browser/ui/views/toolbar/toolbar_actions_bar_bubble_views.h"
 +#include "chrome/browser/ui/views/toolbar/toolbar_view.h"
+ #include "chrome/common/pref_names.h"
+ #include "chrome/grit/generated_resources.h"
  #include "components/feature_engagement/public/event_constants.h"
- #include "content/public/browser/web_contents.h"
- #include "extensions/common/extension_features.h"
-@@ -367,6 +369,17 @@ void ExtensionsToolbarContainer::AnchorA
+@@ -400,6 +402,17 @@ void ExtensionsToolbarContainer::AnchorA
    widget->widget_delegate()->AsBubbleDialogDelegate()->SetAnchorView(
        anchor_view && anchor_view->GetVisible() ? anchor_view
                                                 : GetExtensionsButton());
@@ -34,7 +34,7 @@
    widget->Show();
  }
  
-@@ -913,6 +926,9 @@ void ExtensionsToolbarContainer::UpdateC
+@@ -948,6 +961,9 @@ void ExtensionsToolbarContainer::UpdateC
  }
  
  bool ExtensionsToolbarContainer::ShouldContainerBeVisible() const {

+ 2 - 2
patches/extra/ungoogled-chromium/add-flag-to-hide-fullscreen-exit-ui.patch

@@ -1,6 +1,6 @@
 --- a/chrome/browser/ui/views/frame/browser_view.cc
 +++ b/chrome/browser/ui/views/frame/browser_view.cc
-@@ -1902,6 +1902,10 @@ void BrowserView::UpdateExclusiveAccessE
+@@ -1884,6 +1884,10 @@ void BrowserView::UpdateExclusiveAccessE
      ExclusiveAccessBubbleHideCallback bubble_first_hide_callback,
      bool notify_download,
      bool force_update) {
@@ -13,7 +13,7 @@
        platform_util::IsBrowserLockedFullscreen(browser_.get());
 --- a/chrome/browser/ui/views/fullscreen_control/fullscreen_control_host.cc
 +++ b/chrome/browser/ui/views/fullscreen_control/fullscreen_control_host.cc
-@@ -71,6 +71,10 @@ bool IsExitUiEnabled() {
+@@ -72,6 +72,10 @@ bool IsExitUiEnabled() {
    // menu and controls reveal when the cursor is moved to the top.
    return false;
  #else

+ 3 - 3
patches/extra/ungoogled-chromium/add-flag-to-hide-side-panel-button.patch

@@ -1,11 +1,11 @@
 --- a/chrome/browser/ui/views/toolbar/toolbar_view.cc
 +++ b/chrome/browser/ui/views/toolbar/toolbar_view.cc
-@@ -446,7 +446,8 @@ void ToolbarView::Init() {
+@@ -443,7 +443,8 @@ void ToolbarView::Init() {
      send_tab_to_self_button_ =
          container_view_->AddChildView(std::move(send_tab_to_self_button));
  
--  if (!base::FeatureList::IsEnabled(features::kSidePanelPinning)) {
-+  if (!base::FeatureList::IsEnabled(features::kSidePanelPinning) &&
+-  if (!features::IsSidePanelPinningEnabled()) {
++  if (!features::IsSidePanelPinningEnabled() &&
 +      !base::CommandLine::ForCurrentProcess()->HasSwitch("hide-sidepanel-button")) {
      if (companion::IsCompanionFeatureEnabled()) {
        side_panel_container_ = container_view_->AddChildView(

+ 2 - 2
patches/extra/ungoogled-chromium/add-flag-to-hide-tab-close-buttons.patch

@@ -1,6 +1,6 @@
 --- a/chrome/browser/ui/views/tabs/tab.cc
 +++ b/chrome/browser/ui/views/tabs/tab.cc
-@@ -1042,7 +1042,11 @@ void Tab::UpdateIconVisibility() {
+@@ -1040,7 +1040,11 @@ void Tab::UpdateIconVisibility() {
    if (IsActive()) {
      // Close button is shown on active tabs regardless of the size.
      showing_close_button_ = true;
@@ -12,7 +12,7 @@
  
      showing_alert_indicator_ =
          has_alert_icon && alert_icon_width <= available_width;
-@@ -1063,6 +1067,8 @@ void Tab::UpdateIconVisibility() {
+@@ -1061,6 +1065,8 @@ void Tab::UpdateIconVisibility() {
        available_width -= favicon_width;
  
      showing_close_button_ = large_enough_for_close_button;

+ 4 - 4
patches/extra/ungoogled-chromium/add-flag-to-scroll-tabs.patch

@@ -8,7 +8,7 @@
  #include "base/functional/bind.h"
  #include "base/functional/callback_helpers.h"
  #include "base/metrics/user_metrics.h"
-@@ -114,6 +115,18 @@ DragOperation GetDropEffect(const ui::Dr
+@@ -113,6 +114,18 @@ DragOperation GetDropEffect(const ui::Dr
    return DragOperation::kMove;
  }
  
@@ -27,7 +27,7 @@
  }  // namespace
  
  BrowserRootView::DropInfo::DropInfo() = default;
-@@ -125,7 +138,9 @@ BrowserRootView::DropInfo::~DropInfo() {
+@@ -124,7 +137,9 @@ BrowserRootView::DropInfo::~DropInfo() {
  
  BrowserRootView::BrowserRootView(BrowserView* browser_view,
                                   views::Widget* widget)
@@ -38,7 +38,7 @@
  
  BrowserRootView::~BrowserRootView() {
    // It's possible to destroy the browser while a drop is active.  In this case,
-@@ -252,7 +267,7 @@ bool BrowserRootView::OnMouseWheel(const
+@@ -251,7 +266,7 @@ bool BrowserRootView::OnMouseWheel(const
  
    // Scroll-event-changes-tab is incompatible with scrolling tabstrip, so
    // disable it if the latter feature is enabled.
@@ -49,7 +49,7 @@
      // tabstrip, or the empty space beside the tabstrip.
 --- a/chrome/browser/ui/views/frame/browser_root_view.h
 +++ b/chrome/browser/ui/views/frame/browser_root_view.h
-@@ -145,6 +145,8 @@ class BrowserRootView : public views::in
+@@ -143,6 +143,8 @@ class BrowserRootView : public views::in
    int scroll_remainder_x_ = 0;
    int scroll_remainder_y_ = 0;
  

+ 1 - 1
patches/extra/ungoogled-chromium/add-flag-to-show-avatar-button.patch

@@ -1,6 +1,6 @@
 --- a/chrome/browser/ui/views/toolbar/toolbar_view.cc
 +++ b/chrome/browser/ui/views/toolbar/toolbar_view.cc
-@@ -470,6 +470,17 @@ void ToolbarView::Init() {
+@@ -467,6 +467,17 @@ void ToolbarView::Init() {
  #elif BUILDFLAG(IS_CHROMEOS_LACROS)
    show_avatar_toolbar_button = !chromeos::IsManagedGuestSession();
  #endif

+ 6 - 2
patches/extra/ungoogled-chromium/add-flags-for-existing-switches.patch

@@ -1,6 +1,6 @@
 --- a/chrome/browser/about_flags.cc
 +++ b/chrome/browser/about_flags.cc
-@@ -4060,10 +4060,12 @@ const flags_ui::FeatureEntry::FeatureVar
+@@ -3974,10 +3974,12 @@ const flags_ui::FeatureEntry::FeatureVar
  #include "chrome/browser/ungoogled_flag_choices.h"
  #include "chrome/browser/bromite_flag_choices.h"
  #include "chrome/browser/ungoogled_platform_flag_choices.h"
@@ -39,7 +39,7 @@
 +#endif  // CHROME_BROWSER_EXISTING_SWITCH_FLAG_CHOICES_H_
 --- /dev/null
 +++ b/chrome/browser/existing_switch_flag_entries.h
-@@ -0,0 +1,39 @@
+@@ -0,0 +1,43 @@
 +// Copyright (c) 2023 The ungoogled-chromium Authors. All rights reserved.
 +// Use of this source code is governed by a BSD-style license that can be
 +// found in the LICENSE file.
@@ -66,6 +66,10 @@
 +     "Start in incognito",
 +     "Start in Incognito. Chromium feature, ungoogled-chromium flag.",
 +     kOsDesktop, SINGLE_VALUE_TYPE("incognito")},
++    {"no-default-browser-check",
++     "No default browser check",
++     "Disables the default browser check. Chromium feature, ungoogled-chromium flag.",
++     kOsDesktop, SINGLE_VALUE_TYPE("no-default-browser-check")},
 +    {"no-pings",
 +     "No Pings",
 +     "Don't send hyperlink auditing pings. Chromium feature, ungoogled-chromium flag.",

+ 9 - 9
patches/extra/ungoogled-chromium/add-flags-for-referrer-customization.patch

@@ -19,7 +19,7 @@
  #endif  // CHROME_BROWSER_UNGOOGLED_FLAG_ENTRIES_H_
 --- a/chrome/common/BUILD.gn
 +++ b/chrome/common/BUILD.gn
-@@ -153,6 +153,8 @@ static_library("common_lib") {
+@@ -152,6 +152,8 @@ static_library("common_lib") {
      "pref_names_util.cc",
      "pref_names_util.h",
      "ref_counted_util.h",
@@ -28,7 +28,7 @@
      "search/instant_mojom_traits.h",
      "search/instant_types.cc",
      "search/instant_types.h",
-@@ -260,6 +262,7 @@ static_library("common_lib") {
+@@ -259,6 +261,7 @@ static_library("common_lib") {
      "//components/no_state_prefetch/common",
      "//components/no_state_prefetch/common:mojo_bindings",
      "//components/page_load_metrics/common:common",
@@ -38,7 +38,7 @@
    if (is_android || enable_library_cdms) {
 --- a/chrome/common/chrome_features.cc
 +++ b/chrome/common/chrome_features.cc
-@@ -999,6 +999,14 @@ BASE_FEATURE(kNewFilesPolicyUX,
+@@ -1031,6 +1031,14 @@ BASE_FEATURE(kNewFilesPolicyUX,
  // referrers instead of their ordinary behavior.
  BASE_FEATURE(kNoReferrers, "NoReferrers", base::FEATURE_DISABLED_BY_DEFAULT);
  
@@ -55,7 +55,7 @@
  // on-screen until dismissed, they are instead shown for a very long time.
 --- a/chrome/common/chrome_features.h
 +++ b/chrome/common/chrome_features.h
-@@ -576,6 +576,10 @@ BASE_DECLARE_FEATURE(kNewFilesPolicyUX);
+@@ -611,6 +611,10 @@ BASE_DECLARE_FEATURE(kNewFilesPolicyUX);
  
  COMPONENT_EXPORT(CHROME_FEATURES) BASE_DECLARE_FEATURE(kNoReferrers);
  
@@ -173,7 +173,7 @@
    disallowed_extension_deps_ = [
      # Components should largely not depend on //extensions. Since // extensions
      # is not a component target and is linked with //chrome, depending on most
-@@ -810,7 +810,7 @@ test("components_unittests") {
+@@ -819,7 +819,7 @@ test("components_unittests") {
    # On other platforms, no components should depend on Chrome.
    # Since //chrome depends on //extensions, we also only assert_no_deps on
    # extensions targets for non-lacros builds.
@@ -182,7 +182,7 @@
      assert_no_deps = [ "//chrome/*" ]
      assert_no_deps += disallowed_extension_deps_
    }
-@@ -1098,7 +1098,7 @@ if (use_blink) {
+@@ -1107,7 +1107,7 @@ if (use_blink) {
      # dependency. On other platforms, no components should depend on Chrome.
      # Since //chrome depends on //extensions, we also only assert_no_deps on
      # extensions targets for non-lacros builds.
@@ -201,7 +201,7 @@
  #include "content/browser/blob_storage/chrome_blob_storage_context.h"
  #include "content/browser/browsing_topics/header_util.h"
  #include "content/browser/child_process_security_policy_impl.h"
-@@ -389,10 +390,10 @@ void AddAdditionalRequestHeaders(
+@@ -393,10 +394,10 @@ void AddAdditionalRequestHeaders(
        net::HttpRequestHeaders::kUserAgent,
        ComputeUserAgentValue(*headers, user_agent_override, browser_context));
  
@@ -226,7 +226,7 @@
  #include "content/common/associated_interfaces.mojom.h"
  #include "content/common/content_navigation_policy.h"
  #include "content/common/content_switches_internal.h"
-@@ -4420,10 +4421,13 @@ void RenderFrameImpl::WillSendRequestInt
+@@ -4441,10 +4442,13 @@ void RenderFrameImpl::WillSendRequestInt
  
    request.SetHasUserGesture(frame_->HasTransientUserActivation());
  
@@ -334,7 +334,7 @@
  #include "third_party/blink/public/platform/url_loader_throttle_provider.h"
  #include "third_party/blink/public/platform/weak_wrapper_resource_load_info_notifier.h"
  #include "third_party/blink/public/platform/web_security_origin.h"
-@@ -380,10 +382,13 @@ void DedicatedOrSharedWorkerFetchContext
+@@ -381,10 +383,13 @@ void DedicatedOrSharedWorkerFetchContext
    if (g_rewrite_url)
      request.SetUrl(g_rewrite_url(request.Url().GetString().Utf8(), false));
  

+ 2 - 2
patches/extra/ungoogled-chromium/add-ipv6-probing-option.patch

@@ -35,7 +35,7 @@
  // https://vasilvv.github.io/httpbis-alps/draft-vvv-httpbis-alps.html.
 --- a/net/dns/host_resolver_manager.cc
 +++ b/net/dns/host_resolver_manager.cc
-@@ -159,11 +159,6 @@ const unsigned kMinimumTTLSeconds = kCac
+@@ -157,11 +157,6 @@ const unsigned kMinimumTTLSeconds = kCac
  // cached.
  const int kIPv6ProbePeriodMs = 1000;
  
@@ -47,7 +47,7 @@
  // ICANN uses this localhost address to indicate a name collision.
  //
  // The policy in Chromium is to fail host resolving if it resolves to
-@@ -3903,33 +3898,10 @@ int HostResolverManager::StartIPv6Reacha
+@@ -3899,33 +3894,10 @@ int HostResolverManager::StartIPv6Reacha
      return OK;
    }
  

+ 8 - 8
patches/extra/ungoogled-chromium/add-suggestions-url-field.patch

@@ -333,7 +333,7 @@
    void ReloadIcon(size_t index);
 --- a/chrome/browser/ui/webui/settings/search_engines_handler.cc
 +++ b/chrome/browser/ui/webui/settings/search_engines_handler.cc
-@@ -46,6 +46,7 @@ namespace {
+@@ -45,6 +45,7 @@ namespace {
  const char kSearchEngineField[] = "searchEngine";
  const char kKeywordField[] = "keyword";
  const char kQueryUrlField[] = "queryUrl";
@@ -341,7 +341,7 @@
  
  // Dummy number used for indicating that a new search engine is added.
  const int kNewSearchEngineIndex = -1;
-@@ -221,6 +222,8 @@ base::Value::Dict SearchEnginesHandler::
+@@ -220,6 +221,8 @@ base::Value::Dict SearchEnginesHandler::
    Profile* profile = Profile::FromWebUI(web_ui());
    dict.Set("url",
             template_url->url_ref().DisplayURL(UIThreadSearchTermsData()));
@@ -350,7 +350,7 @@
    dict.Set("urlLocked", ((template_url->prepopulate_id() > 0) ||
                           (template_url->starter_pack_id() > 0)));
    GURL icon_url = template_url->favicon_url();
-@@ -357,12 +360,14 @@ void SearchEnginesHandler::HandleSearchE
+@@ -361,12 +364,14 @@ void SearchEnginesHandler::HandleSearchE
  void SearchEnginesHandler::OnEditedKeyword(TemplateURL* template_url,
                                             const std::u16string& title,
                                             const std::u16string& keyword,
@@ -368,7 +368,7 @@
  
    edit_controller_.reset();
  }
-@@ -390,6 +395,8 @@ bool SearchEnginesHandler::CheckFieldVal
+@@ -394,6 +399,8 @@ bool SearchEnginesHandler::CheckFieldVal
      is_valid = edit_controller_->IsKeywordValid(base::UTF8ToUTF16(field_value));
    else if (field_name.compare(kQueryUrlField) == 0)
      is_valid = edit_controller_->IsURLValid(field_value);
@@ -377,7 +377,7 @@
    else
      NOTREACHED();
  
-@@ -409,18 +416,21 @@ void SearchEnginesHandler::HandleSearchE
+@@ -413,18 +420,21 @@ void SearchEnginesHandler::HandleSearchE
    if (!edit_controller_.get())
      return;
  
@@ -427,7 +427,7 @@
  
 --- a/components/search_engines/template_url_service.cc
 +++ b/components/search_engines/template_url_service.cc
-@@ -636,7 +636,8 @@ void TemplateURLService::IncrementUsageC
+@@ -658,7 +658,8 @@ void TemplateURLService::IncrementUsageC
  void TemplateURLService::ResetTemplateURL(TemplateURL* url,
                                            const std::u16string& title,
                                            const std::u16string& keyword,
@@ -437,7 +437,7 @@
    DCHECK(!IsCreatedByExtension(url));
    DCHECK(!keyword.empty());
    DCHECK(!search_url.empty());
-@@ -651,6 +652,7 @@ void TemplateURLService::ResetTemplateUR
+@@ -673,6 +674,7 @@ void TemplateURLService::ResetTemplateUR
    data.safe_for_autoreplace = false;
    data.last_modified = clock_->Now();
    data.is_active = TemplateURLData::ActiveStatus::kTrue;
@@ -447,7 +447,7 @@
  }
 --- a/components/search_engines/template_url_service.h
 +++ b/components/search_engines/template_url_service.h
-@@ -246,7 +246,8 @@ class TemplateURLService : public WebDat
+@@ -256,7 +256,8 @@ class TemplateURLService : public WebDat
    void ResetTemplateURL(TemplateURL* url,
                          const std::u16string& title,
                          const std::u16string& keyword,

+ 1 - 1
patches/extra/ungoogled-chromium/add-ungoogled-flag-headers.patch

@@ -1,6 +1,6 @@
 --- a/chrome/browser/about_flags.cc
 +++ b/chrome/browser/about_flags.cc
-@@ -4056,7 +4056,13 @@ const flags_ui::FeatureEntry::FeatureVar
+@@ -3970,7 +3970,13 @@ const flags_ui::FeatureEntry::FeatureVar
  // calculate and verify checksum.
  //
  // When adding a new choice, add it to the end of the list.

+ 7 - 7
patches/extra/ungoogled-chromium/disable-download-quarantine.patch

@@ -142,7 +142,7 @@
  }  // namespace download
 --- a/content/browser/BUILD.gn
 +++ b/content/browser/BUILD.gn
-@@ -95,7 +95,6 @@ source_set("browser") {
+@@ -96,7 +96,6 @@ source_set("browser") {
      "//components/payments/mojom",
      "//components/power_monitor",
      "//components/services/filesystem:lib",
@@ -160,7 +160,7 @@
  #include "content/browser/file_system_access/features.h"
  #include "content/browser/file_system_access/file_system_access_error.h"
  #include "content/public/browser/content_browser_client.h"
-@@ -236,22 +235,9 @@ void FileSystemAccessSafeMoveHelper::Did
+@@ -230,22 +229,9 @@ void FileSystemAccessSafeMoveHelper::Did
    // not exist anymore. In case of error, the source file URL will point to a
    // valid filesystem location.
    base::OnceCallback<void(base::File::Error)> result_callback;
@@ -183,7 +183,7 @@
    manager_->DoFileSystemOperation(
        FROM_HERE, &storage::FileSystemOperationRunner::Move,
        std::move(result_callback), source_url(), dest_url(), options_,
-@@ -268,7 +254,6 @@ void FileSystemAccessSafeMoveHelper::Did
+@@ -262,7 +248,6 @@ void FileSystemAccessSafeMoveHelper::Did
  void FileSystemAccessSafeMoveHelper::DidFileDoQuarantine(
      const storage::FileSystemURL& target_url,
      const GURL& referrer_url,
@@ -191,7 +191,7 @@
      base::File::Error result) {
    DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
  
-@@ -299,37 +284,9 @@ void FileSystemAccessSafeMoveHelper::Did
+@@ -293,37 +278,9 @@ void FileSystemAccessSafeMoveHelper::Did
        referrer_url.is_valid() && referrer_url.SchemeIsHTTPOrHTTPS()
            ? referrer_url
            : GURL();
@@ -244,7 +244,7 @@
    void ComputeHashForSourceFile(HashCallback callback);
 --- a/content/browser/renderer_host/pepper/pepper_file_io_host.cc
 +++ b/content/browser/renderer_host/pepper/pepper_file_io_host.cc
-@@ -455,7 +455,7 @@ void PepperFileIOHost::OnLocalFileOpened
+@@ -462,7 +462,7 @@ void PepperFileIOHost::OnLocalFileOpened
      ppapi::host::ReplyMessageContext reply_context,
      const base::FilePath& path,
      base::File::Error error_code) {
@@ -253,7 +253,7 @@
    // Quarantining a file before its contents are available is only supported on
    // Windows and Linux.
    if (!FileOpenForWrite(open_flags_) || error_code != base::File::FILE_OK) {
-@@ -489,7 +489,7 @@ void PepperFileIOHost::OnLocalFileOpened
+@@ -496,7 +496,7 @@ void PepperFileIOHost::OnLocalFileOpened
  #endif
  }
  
@@ -272,7 +272,7 @@
  #include "content/browser/renderer_host/pepper/browser_ppapi_host_impl.h"
  #include "ipc/ipc_listener.h"
  #include "ipc/ipc_platform_file.h"
-@@ -94,12 +93,6 @@ class PepperFileIOHost : public ppapi::h
+@@ -93,12 +92,6 @@ class PepperFileIOHost final : public pp
                           const base::FilePath& path,
                           base::File::Error error_code);
  

+ 1 - 1
patches/extra/ungoogled-chromium/disable-remote-optimization-guide.patch

@@ -1,6 +1,6 @@
 --- a/components/optimization_guide/core/optimization_guide_features.cc
 +++ b/components/optimization_guide/core/optimization_guide_features.cc
-@@ -155,7 +155,7 @@ BASE_FEATURE(kOptimizationHints,
+@@ -138,7 +138,7 @@ BASE_FEATURE(kOptimizationHints,
  // Enables fetching from a remote Optimization Guide Service.
  BASE_FEATURE(kRemoteOptimizationGuideFetching,
               "OptimizationHintsFetching",

+ 2 - 2
patches/extra/ungoogled-chromium/disable-webgl-renderer-info.patch

@@ -3,7 +3,7 @@
 
 --- a/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc
 +++ b/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc
-@@ -3816,8 +3816,7 @@ ScriptValue WebGLRenderingContextBase::g
+@@ -3862,8 +3862,7 @@ ScriptValue WebGLRenderingContextBase::g
                pname, IdentifiabilityBenignStringToken(
                           String(ContextGL()->GetString(GL_RENDERER))));
          }
@@ -13,7 +13,7 @@
        }
        SynthesizeGLError(
            GL_INVALID_ENUM, "getParameter",
-@@ -3831,8 +3830,7 @@ ScriptValue WebGLRenderingContextBase::g
+@@ -3877,8 +3876,7 @@ ScriptValue WebGLRenderingContextBase::g
                pname, IdentifiabilityBenignStringToken(
                           String(ContextGL()->GetString(GL_VENDOR))));
          }

+ 1 - 1
patches/extra/ungoogled-chromium/enable-default-prefetch-privacy-changes.patch

@@ -2,7 +2,7 @@
 
 --- a/third_party/blink/common/features.cc
 +++ b/third_party/blink/common/features.cc
-@@ -1406,7 +1406,7 @@ BASE_FEATURE(kPrefetchFontLookupTables,
+@@ -1438,7 +1438,7 @@ BASE_FEATURE(kPrefetchFontLookupTables,
  // crbug.com/988956.
  BASE_FEATURE(kPrefetchPrivacyChanges,
               "PrefetchPrivacyChanges",

+ 1 - 1
patches/extra/ungoogled-chromium/enable-page-saving-on-more-pages.patch

@@ -14,7 +14,7 @@
    }
    return content_restrictions;
  }
-@@ -1648,8 +1643,7 @@ bool CanSavePage(const Browser* browser)
+@@ -1652,8 +1647,7 @@ bool CanSavePage(const Browser* browser)
        DownloadPrefs::DownloadRestriction::ALL_FILES) {
      return false;
    }

+ 2 - 2
patches/extra/ungoogled-chromium/enable-paste-and-go-new-tab-button.patch

@@ -15,7 +15,7 @@
    reserved_grab_handle_space_ =
 --- a/chrome/browser/ui/views/tabs/tab_strip.cc
 +++ b/chrome/browser/ui/views/tabs/tab_strip.cc
-@@ -1902,8 +1902,6 @@ void TabStrip::NewTabButtonPressed(const
+@@ -1900,8 +1900,6 @@ void TabStrip::NewTabButtonPressed(const
  
      const ui::MouseEvent& mouse = static_cast<const ui::MouseEvent&>(event);
      if (mouse.IsOnlyMiddleMouseButton()) {
@@ -24,7 +24,7 @@
          ui::Clipboard* clipboard = ui::Clipboard::GetForCurrentThread();
          CHECK(clipboard);
          std::u16string clipboard_text;
-@@ -1911,7 +1909,6 @@ void TabStrip::NewTabButtonPressed(const
+@@ -1909,7 +1907,6 @@ void TabStrip::NewTabButtonPressed(const
                              /* data_dst = */ nullptr, &clipboard_text);
          if (!clipboard_text.empty())
            controller_->CreateNewTabWithLocation(clipboard_text);

+ 7 - 12
patches/extra/ungoogled-chromium/first-run-page.patch

@@ -1,6 +1,6 @@
 --- a/chrome/browser/chrome_browser_main.cc
 +++ b/chrome/browser/chrome_browser_main.cc
-@@ -1036,6 +1036,7 @@ int ChromeBrowserMainParts::PreCreateThr
+@@ -1064,6 +1064,7 @@ int ChromeBrowserMainParts::PreCreateThr
    if (first_run::IsChromeFirstRun()) {
      if (!base::CommandLine::ForCurrentProcess()->HasSwitch(switches::kApp) &&
          !base::CommandLine::ForCurrentProcess()->HasSwitch(switches::kAppId)) {
@@ -10,7 +10,7 @@
  
 --- a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc
 +++ b/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc
-@@ -65,6 +65,7 @@
+@@ -63,6 +63,7 @@
  #include "chrome/browser/ui/webui/suggest_internals/suggest_internals_ui.h"
  #include "chrome/browser/ui/webui/sync_internals/sync_internals_ui.h"
  #include "chrome/browser/ui/webui/translate_internals/translate_internals_ui.h"
@@ -18,9 +18,9 @@
  #include "chrome/browser/ui/webui/usb_internals/usb_internals_ui.h"
  #include "chrome/browser/ui/webui/user_actions/user_actions_ui.h"
  #include "chrome/browser/ui/webui/version/version_ui.h"
-@@ -891,6 +892,8 @@ WebUIFactoryFunction GetWebUIFactoryFunc
-   }
- #endif
+@@ -867,6 +868,8 @@ WebUIFactoryFunction GetWebUIFactoryFunc
+     return &NewWebUI<PrivacySandboxDialogUI>;
+ #endif  // !BUILDFLAG(IS_ANDROID)
  
 + if (url.host() == "ungoogled-first-run") return &NewWebUI<UngoogledFirstRun>;
 +
@@ -29,7 +29,7 @@
  
 --- /dev/null
 +++ b/chrome/browser/ui/webui/ungoogled_first_run.h
-@@ -0,0 +1,142 @@
+@@ -0,0 +1,137 @@
 +#ifndef CHROME_BROWSER_UI_WEBUI_UNGOOGLED_FIRST_RUN_H_
 +#define CHROME_BROWSER_UI_WEBUI_UNGOOGLED_FIRST_RUN_H_
 +
@@ -101,11 +101,6 @@
 +  without the ability to easily update them. In this case, please refer to the entry on the wiki for
 +  <a href="https://ungoogled-software.github.io/ungoogled-chromium-wiki/faq#downloading-the-crx-file">
 +   installing extensions manually</a>.</details>
-+ <details><summary><b>Keep login and session data</b></summary><br>
-+  By default ungoogled-chromium has <code>Clear cookies and site data when you close all windows</code> enabled.<br>
-+  This option can be changed in
-+  <a href="chrome://settings/cookies?search=Clear+cookies+and+site+data+when+you+close+all+windows">
-+   chrome://settings/cookies</a>.</details>
 + <details><summary><b>Enable spellcheck</b></summary>
 +  <ol>
 +   <li>Go to <a href="https://chromium.googlesource.com/chromium/deps/hunspell_dictionaries/+/main">
@@ -174,7 +169,7 @@
 +#endif  // CHROME_BROWSER_UI_WEBUI_UNGOOGLED_FIRST_RUN_H_
 --- a/chrome/common/webui_url_constants.cc
 +++ b/chrome/common/webui_url_constants.cc
-@@ -680,6 +680,7 @@ const char kExtensionConfigureCommandsSu
+@@ -667,6 +667,7 @@ const char kExtensionConfigureCommandsSu
  // Add hosts here to be included in chrome://chrome-urls (about:about).
  // These hosts will also be suggested by BuiltinProvider.
  const char* const kChromeHostURLs[] = {

+ 1 - 1
patches/extra/ungoogled-chromium/prepopulated-search-engines.patch

@@ -3,7 +3,7 @@
 #
 --- a/components/search_engines/template_url_prepopulate_data.cc
 +++ b/components/search_engines/template_url_prepopulate_data.cc
-@@ -59,6 +59,7 @@ constexpr EngineAndTier engines_default[
+@@ -64,6 +64,7 @@ constexpr EngineAndTier engines_default[
      {SearchEngineTier::kTopEngines, &google},
      {SearchEngineTier::kTopEngines, &bing},
      {SearchEngineTier::kTopEngines, &yahoo},

+ 25 - 9
patches/extra/ungoogled-chromium/remove-uneeded-ui.patch

@@ -19,6 +19,7 @@
 # the (?) learn more button on many settings pages
 # the 'Vist Chrome Web Store' entry in the extensions section of the main menu
 # the side panel entry in All Bookmarks
+# the feedback entry in the third party cookie popup
 # unneeded elements from the profile menu
 # the 'Learn more' link on crashed tabs
 # disable LiveCaption flag by default, this also removes non-functional Live Caption checkbox from media controls
@@ -216,7 +217,7 @@
    <template is="dom-if"
 --- a/chrome/browser/resources/settings/basic_page/basic_page.html
 +++ b/chrome/browser/resources/settings/basic_page/basic_page.html
-@@ -40,7 +40,7 @@
+@@ -48,7 +48,7 @@
          </settings-section>
          <!-- TODO(crbug/1469277): Remove after SafetyHub launched. -->
          <template is="dom-if"
@@ -227,8 +228,8 @@
                id="safetyCheckSettingsSection">
 --- a/chrome/browser/resources/settings/basic_page/basic_page.ts
 +++ b/chrome/browser/resources/settings/basic_page/basic_page.ts
-@@ -12,7 +12,6 @@ import 'chrome://resources/cr_elements/c
- import 'chrome://resources/polymer/v3_0/iron-flex-layout/iron-flex-layout-classes.js';
+@@ -13,7 +13,6 @@ import 'chrome://resources/polymer/v3_0/
+ import '../ai_page/ai_page.js';
  import '../appearance_page/appearance_page.js';
  import '../privacy_page/preloading_page.js';
 -import '../privacy_page/privacy_guide/privacy_guide_promo.js';
@@ -279,7 +280,7 @@
                start-icon="settings:visibility-off"
 --- a/chrome/browser/resources/settings/privacy_page/security_page.html
 +++ b/chrome/browser/resources/settings/privacy_page/security_page.html
-@@ -140,10 +140,3 @@
+@@ -190,10 +190,3 @@
            on-click="onChromeCertificatesClick_"></cr-link-row>
      </template>
  
@@ -292,7 +293,7 @@
 -    </cr-link-row>
 --- a/chrome/browser/resources/settings/search_page/search_page.html
 +++ b/chrome/browser/resources/settings/search_page/search_page.html
-@@ -36,11 +36,6 @@
+@@ -44,11 +44,6 @@
            $i18n{searchPageTitle}
            <div class="secondary">
              $i18n{searchEngineChoiceEntryPointSubtitle}
@@ -313,11 +314,11 @@
 -      <template is="dom-if" if="[[learnMoreUrl]]">
 +      <template is="dom-if" if="[[false]]">
          <cr-icon-button iron-icon="cr:help-outline" dir="ltr"
-             aria-label="[[getLearnMoreAriaLabel_(pageTitle)]]" on-click="onHelpClick_">
-         </cr-icon-button>
+             aria-label="[[getLearnMoreAriaLabel_(pageTitle)]]"
+             aria-description="$i18n{opensInNewTab}" on-click="onHelpClick_">
 --- a/chrome/browser/ui/toolbar/app_menu_model.cc
 +++ b/chrome/browser/ui/toolbar/app_menu_model.cc
-@@ -723,19 +723,9 @@ void ExtensionsMenuModel::Build(Browser*
+@@ -729,19 +729,9 @@ void ExtensionsMenuModel::Build(Browser*
    SetElementIdentifierAt(
        GetIndexOfCommandId(IDC_EXTENSIONS_SUBMENU_MANAGE_EXTENSIONS).value(),
        kManageExtensionsMenuItem);
@@ -353,6 +354,21 @@
    }
    const ui::ImageModel folder_icon = chrome::GetBookmarkFolderIcon(
        chrome::BookmarkFolderIconType::kNormal, ui::kColorMenuIcon);
+--- a/chrome/browser/ui/views/location_bar/cookie_controls/cookie_controls_content_view.cc
++++ b/chrome/browser/ui/views/location_bar/cookie_controls/cookie_controls_content_view.cc
+@@ -147,12 +147,7 @@ void CookieControlsContentView::SetEnfor
+ }
+ 
+ void CookieControlsContentView::SetFeedbackSectionVisibility(bool visible) {
+-  if (visible && base::FeatureList::IsEnabled(
+-                     content_settings::features::kUserBypassFeedback)) {
+-    feedback_section_->SetVisible(true);
+-  } else {
+     feedback_section_->SetVisible(false);
+-  }
+   PreferredSizeChanged();
+ }
+ 
 --- a/chrome/browser/ui/views/profiles/profile_menu_view.cc
 +++ b/chrome/browser/ui/views/profiles/profile_menu_view.cc
 @@ -172,6 +172,7 @@ void ProfileMenuView::BuildMenu() {
@@ -414,7 +430,7 @@
    // Specify the maximum message and title width explicitly.
 --- a/media/base/media_switches.cc
 +++ b/media/base/media_switches.cc
-@@ -913,7 +913,7 @@ const base::FeatureParam<std::string> kM
+@@ -916,7 +916,7 @@ const base::FeatureParam<std::string> kM
  #endif  // BUILDFLAG(IS_WIN)
  
  // Enables the Live Caption feature on supported devices.

+ 0 - 2
patches/series

@@ -29,7 +29,6 @@ core/ungoogled-chromium/remove-unused-preferences-fields.patch
 core/ungoogled-chromium/block-requests.patch
 core/ungoogled-chromium/disable-privacy-sandbox.patch
 core/ungoogled-chromium/doh-changes.patch
-core/ungoogled-chromium/disable-web-environment-integrity.patch
 core/bromite/disable-fetching-field-trials.patch
 
 extra/ungoogled-chromium/add-ungoogled-flag-headers.patch
@@ -42,7 +41,6 @@ extra/inox-patchset/0019-disable-battery-status-service.patch
 extra/debian/disable/google-api-warning.patch
 extra/iridium-browser/net-cert-increase-default-key-length-for-newly-gener.patch
 extra/iridium-browser/mime_util-force-text-x-suse-ymp-to-be-downloaded.patch
-extra/iridium-browser/prefs-only-keep-cookies-until-exit.patch
 extra/iridium-browser/prefs-always-prompt-for-download-directory-by-defaul.patch
 extra/iridium-browser/updater-disable-auto-update.patch
 extra/iridium-browser/Remove-EV-certificates.patch

+ 251 - 9
pruning.list

@@ -42,6 +42,7 @@ chrome/app/etw_events/chrome_events_winTEMP.BIN
 chrome/browser/ash/power/ml/smart_dim/20190521_example_preprocessor_config.pb
 chrome/browser/navigation_predictor/test/preloading_heuristics.tflite
 chrome/browser/resources/chromeos/accessibility/accessibility_common/dictation/parse/pumpkin/pumpkin-3.0.tar.xz
+chrome/browser/resources/chromeos/accessibility/accessibility_common/facegaze/mediapipe_task_vision/mediapipe_task_vision.tar.xz
 chrome/browser/resources/chromeos/accessibility/chromevox/earcons/alert_modal.ogg
 chrome/browser/resources/chromeos/accessibility/chromevox/earcons/alert_nonmodal.ogg
 chrome/browser/resources/chromeos/accessibility/chromevox/earcons/button.ogg
@@ -406,10 +407,6 @@ mojo/public/tools/fuzzers/message_corpus/message_6.mojomsg
 mojo/public/tools/fuzzers/message_corpus/message_7.mojomsg
 mojo/public/tools/fuzzers/message_corpus/message_8.mojomsg
 mojo/public/tools/fuzzers/message_corpus/message_9.mojomsg
-native_client/src/shared/gio/premade_binary_file
-native_client/tools/hermetic_cygwin/MkLink/Release Unicode/MkLink.dll
-native_client/tools/hermetic_cygwin/MkLink/Release/MkLink.dll
-native_client/tools/redirector.exe
 native_client_sdk/src/examples/api/graphics_3d/hello.raw
 native_client_sdk/src/examples/demo/flock/images/flock_green.raw
 native_client_sdk/src/libraries/xray/xray.odt
@@ -7844,6 +7841,110 @@ third_party/dawn/third_party/khronos/OpenGL-Registry/specs/katex/fonts/KaTeX_Siz
 third_party/dawn/third_party/khronos/OpenGL-Registry/specs/katex/fonts/KaTeX_Size4-Regular.eot
 third_party/dawn/third_party/khronos/OpenGL-Registry/specs/katex/fonts/KaTeX_Typewriter-Regular.eot
 third_party/dawn/third_party/webgpu-cts/deploy_key.enc
+third_party/dawn/third_party/webgpu-cts/src/resources/cache/webgpu/shader/execution/abs.bin
+third_party/dawn/third_party/webgpu-cts/src/resources/cache/webgpu/shader/execution/acos.bin
+third_party/dawn/third_party/webgpu-cts/src/resources/cache/webgpu/shader/execution/acosh.bin
+third_party/dawn/third_party/webgpu-cts/src/resources/cache/webgpu/shader/execution/asin.bin
+third_party/dawn/third_party/webgpu-cts/src/resources/cache/webgpu/shader/execution/asinh.bin
+third_party/dawn/third_party/webgpu-cts/src/resources/cache/webgpu/shader/execution/atan.bin
+third_party/dawn/third_party/webgpu-cts/src/resources/cache/webgpu/shader/execution/atan2.bin
+third_party/dawn/third_party/webgpu-cts/src/resources/cache/webgpu/shader/execution/atanh.bin
+third_party/dawn/third_party/webgpu-cts/src/resources/cache/webgpu/shader/execution/binary/af_addition.bin
+third_party/dawn/third_party/webgpu-cts/src/resources/cache/webgpu/shader/execution/binary/af_division.bin
+third_party/dawn/third_party/webgpu-cts/src/resources/cache/webgpu/shader/execution/binary/af_logical.bin
+third_party/dawn/third_party/webgpu-cts/src/resources/cache/webgpu/shader/execution/binary/af_matrix_addition.bin
+third_party/dawn/third_party/webgpu-cts/src/resources/cache/webgpu/shader/execution/binary/af_matrix_subtraction.bin
+third_party/dawn/third_party/webgpu-cts/src/resources/cache/webgpu/shader/execution/binary/af_multiplication.bin
+third_party/dawn/third_party/webgpu-cts/src/resources/cache/webgpu/shader/execution/binary/af_remainder.bin
+third_party/dawn/third_party/webgpu-cts/src/resources/cache/webgpu/shader/execution/binary/af_subtraction.bin
+third_party/dawn/third_party/webgpu-cts/src/resources/cache/webgpu/shader/execution/binary/f16_addition.bin
+third_party/dawn/third_party/webgpu-cts/src/resources/cache/webgpu/shader/execution/binary/f16_division.bin
+third_party/dawn/third_party/webgpu-cts/src/resources/cache/webgpu/shader/execution/binary/f16_logical.bin
+third_party/dawn/third_party/webgpu-cts/src/resources/cache/webgpu/shader/execution/binary/f16_matrix_addition.bin
+third_party/dawn/third_party/webgpu-cts/src/resources/cache/webgpu/shader/execution/binary/f16_matrix_matrix_multiplication.bin
+third_party/dawn/third_party/webgpu-cts/src/resources/cache/webgpu/shader/execution/binary/f16_matrix_scalar_multiplication.bin
+third_party/dawn/third_party/webgpu-cts/src/resources/cache/webgpu/shader/execution/binary/f16_matrix_subtraction.bin
+third_party/dawn/third_party/webgpu-cts/src/resources/cache/webgpu/shader/execution/binary/f16_matrix_vector_multiplication.bin
+third_party/dawn/third_party/webgpu-cts/src/resources/cache/webgpu/shader/execution/binary/f16_multiplication.bin
+third_party/dawn/third_party/webgpu-cts/src/resources/cache/webgpu/shader/execution/binary/f16_remainder.bin
+third_party/dawn/third_party/webgpu-cts/src/resources/cache/webgpu/shader/execution/binary/f16_subtraction.bin
+third_party/dawn/third_party/webgpu-cts/src/resources/cache/webgpu/shader/execution/binary/f32_addition.bin
+third_party/dawn/third_party/webgpu-cts/src/resources/cache/webgpu/shader/execution/binary/f32_division.bin
+third_party/dawn/third_party/webgpu-cts/src/resources/cache/webgpu/shader/execution/binary/f32_logical.bin
+third_party/dawn/third_party/webgpu-cts/src/resources/cache/webgpu/shader/execution/binary/f32_matrix_addition.bin
+third_party/dawn/third_party/webgpu-cts/src/resources/cache/webgpu/shader/execution/binary/f32_matrix_matrix_multiplication.bin
+third_party/dawn/third_party/webgpu-cts/src/resources/cache/webgpu/shader/execution/binary/f32_matrix_scalar_multiplication.bin
+third_party/dawn/third_party/webgpu-cts/src/resources/cache/webgpu/shader/execution/binary/f32_matrix_subtraction.bin
+third_party/dawn/third_party/webgpu-cts/src/resources/cache/webgpu/shader/execution/binary/f32_matrix_vector_multiplication.bin
+third_party/dawn/third_party/webgpu-cts/src/resources/cache/webgpu/shader/execution/binary/f32_multiplication.bin
+third_party/dawn/third_party/webgpu-cts/src/resources/cache/webgpu/shader/execution/binary/f32_remainder.bin
+third_party/dawn/third_party/webgpu-cts/src/resources/cache/webgpu/shader/execution/binary/f32_subtraction.bin
+third_party/dawn/third_party/webgpu-cts/src/resources/cache/webgpu/shader/execution/binary/i32_arithmetic.bin
+third_party/dawn/third_party/webgpu-cts/src/resources/cache/webgpu/shader/execution/binary/i32_comparison.bin
+third_party/dawn/third_party/webgpu-cts/src/resources/cache/webgpu/shader/execution/binary/u32_arithmetic.bin
+third_party/dawn/third_party/webgpu-cts/src/resources/cache/webgpu/shader/execution/binary/u32_comparison.bin
+third_party/dawn/third_party/webgpu-cts/src/resources/cache/webgpu/shader/execution/bitcast.bin
+third_party/dawn/third_party/webgpu-cts/src/resources/cache/webgpu/shader/execution/ceil.bin
+third_party/dawn/third_party/webgpu-cts/src/resources/cache/webgpu/shader/execution/clamp.bin
+third_party/dawn/third_party/webgpu-cts/src/resources/cache/webgpu/shader/execution/cos.bin
+third_party/dawn/third_party/webgpu-cts/src/resources/cache/webgpu/shader/execution/cosh.bin
+third_party/dawn/third_party/webgpu-cts/src/resources/cache/webgpu/shader/execution/cross.bin
+third_party/dawn/third_party/webgpu-cts/src/resources/cache/webgpu/shader/execution/degrees.bin
+third_party/dawn/third_party/webgpu-cts/src/resources/cache/webgpu/shader/execution/determinant.bin
+third_party/dawn/third_party/webgpu-cts/src/resources/cache/webgpu/shader/execution/distance.bin
+third_party/dawn/third_party/webgpu-cts/src/resources/cache/webgpu/shader/execution/dot.bin
+third_party/dawn/third_party/webgpu-cts/src/resources/cache/webgpu/shader/execution/exp.bin
+third_party/dawn/third_party/webgpu-cts/src/resources/cache/webgpu/shader/execution/exp2.bin
+third_party/dawn/third_party/webgpu-cts/src/resources/cache/webgpu/shader/execution/faceForward.bin
+third_party/dawn/third_party/webgpu-cts/src/resources/cache/webgpu/shader/execution/floor.bin
+third_party/dawn/third_party/webgpu-cts/src/resources/cache/webgpu/shader/execution/fma.bin
+third_party/dawn/third_party/webgpu-cts/src/resources/cache/webgpu/shader/execution/fract.bin
+third_party/dawn/third_party/webgpu-cts/src/resources/cache/webgpu/shader/execution/frexp.bin
+third_party/dawn/third_party/webgpu-cts/src/resources/cache/webgpu/shader/execution/inverseSqrt.bin
+third_party/dawn/third_party/webgpu-cts/src/resources/cache/webgpu/shader/execution/ldexp.bin
+third_party/dawn/third_party/webgpu-cts/src/resources/cache/webgpu/shader/execution/length.bin
+third_party/dawn/third_party/webgpu-cts/src/resources/cache/webgpu/shader/execution/log.bin
+third_party/dawn/third_party/webgpu-cts/src/resources/cache/webgpu/shader/execution/log2.bin
+third_party/dawn/third_party/webgpu-cts/src/resources/cache/webgpu/shader/execution/max.bin
+third_party/dawn/third_party/webgpu-cts/src/resources/cache/webgpu/shader/execution/min.bin
+third_party/dawn/third_party/webgpu-cts/src/resources/cache/webgpu/shader/execution/mix.bin
+third_party/dawn/third_party/webgpu-cts/src/resources/cache/webgpu/shader/execution/modf.bin
+third_party/dawn/third_party/webgpu-cts/src/resources/cache/webgpu/shader/execution/normalize.bin
+third_party/dawn/third_party/webgpu-cts/src/resources/cache/webgpu/shader/execution/pack2x16float.bin
+third_party/dawn/third_party/webgpu-cts/src/resources/cache/webgpu/shader/execution/pow.bin
+third_party/dawn/third_party/webgpu-cts/src/resources/cache/webgpu/shader/execution/quantizeToF16.bin
+third_party/dawn/third_party/webgpu-cts/src/resources/cache/webgpu/shader/execution/radians.bin
+third_party/dawn/third_party/webgpu-cts/src/resources/cache/webgpu/shader/execution/reflect.bin
+third_party/dawn/third_party/webgpu-cts/src/resources/cache/webgpu/shader/execution/refract.bin
+third_party/dawn/third_party/webgpu-cts/src/resources/cache/webgpu/shader/execution/round.bin
+third_party/dawn/third_party/webgpu-cts/src/resources/cache/webgpu/shader/execution/saturate.bin
+third_party/dawn/third_party/webgpu-cts/src/resources/cache/webgpu/shader/execution/sign.bin
+third_party/dawn/third_party/webgpu-cts/src/resources/cache/webgpu/shader/execution/sin.bin
+third_party/dawn/third_party/webgpu-cts/src/resources/cache/webgpu/shader/execution/sinh.bin
+third_party/dawn/third_party/webgpu-cts/src/resources/cache/webgpu/shader/execution/smoothstep.bin
+third_party/dawn/third_party/webgpu-cts/src/resources/cache/webgpu/shader/execution/sqrt.bin
+third_party/dawn/third_party/webgpu-cts/src/resources/cache/webgpu/shader/execution/step.bin
+third_party/dawn/third_party/webgpu-cts/src/resources/cache/webgpu/shader/execution/tan.bin
+third_party/dawn/third_party/webgpu-cts/src/resources/cache/webgpu/shader/execution/tanh.bin
+third_party/dawn/third_party/webgpu-cts/src/resources/cache/webgpu/shader/execution/transpose.bin
+third_party/dawn/third_party/webgpu-cts/src/resources/cache/webgpu/shader/execution/trunc.bin
+third_party/dawn/third_party/webgpu-cts/src/resources/cache/webgpu/shader/execution/unary/af_arithmetic.bin
+third_party/dawn/third_party/webgpu-cts/src/resources/cache/webgpu/shader/execution/unary/af_assignment.bin
+third_party/dawn/third_party/webgpu-cts/src/resources/cache/webgpu/shader/execution/unary/bool_conversion.bin
+third_party/dawn/third_party/webgpu-cts/src/resources/cache/webgpu/shader/execution/unary/f16_arithmetic.bin
+third_party/dawn/third_party/webgpu-cts/src/resources/cache/webgpu/shader/execution/unary/f16_conversion.bin
+third_party/dawn/third_party/webgpu-cts/src/resources/cache/webgpu/shader/execution/unary/f32_arithmetic.bin
+third_party/dawn/third_party/webgpu-cts/src/resources/cache/webgpu/shader/execution/unary/f32_conversion.bin
+third_party/dawn/third_party/webgpu-cts/src/resources/cache/webgpu/shader/execution/unary/i32_arithmetic.bin
+third_party/dawn/third_party/webgpu-cts/src/resources/cache/webgpu/shader/execution/unary/i32_complement.bin
+third_party/dawn/third_party/webgpu-cts/src/resources/cache/webgpu/shader/execution/unary/i32_conversion.bin
+third_party/dawn/third_party/webgpu-cts/src/resources/cache/webgpu/shader/execution/unary/u32_complement.bin
+third_party/dawn/third_party/webgpu-cts/src/resources/cache/webgpu/shader/execution/unary/u32_conversion.bin
+third_party/dawn/third_party/webgpu-cts/src/resources/cache/webgpu/shader/execution/unpack2x16float.bin
+third_party/dawn/third_party/webgpu-cts/src/resources/cache/webgpu/shader/execution/unpack2x16snorm.bin
+third_party/dawn/third_party/webgpu-cts/src/resources/cache/webgpu/shader/execution/unpack2x16unorm.bin
+third_party/dawn/third_party/webgpu-cts/src/resources/cache/webgpu/shader/execution/unpack4x8snorm.bin
+third_party/dawn/third_party/webgpu-cts/src/resources/cache/webgpu/shader/execution/unpack4x8unorm.bin
 third_party/dawn/third_party/webgpu-cts/src/resources/four-colors-h264-bt601-rotate-180.mp4
 third_party/dawn/third_party/webgpu-cts/src/resources/four-colors-h264-bt601-rotate-270.mp4
 third_party/dawn/third_party/webgpu-cts/src/resources/four-colors-h264-bt601-rotate-90.mp4
@@ -7898,6 +7999,7 @@ third_party/devtools-frontend/src/test/unittests/fixtures/traces/multiple-lcp-ma
 third_party/devtools-frontend/src/test/unittests/fixtures/traces/multiple-navigations-with-iframes.json.gz
 third_party/devtools-frontend/src/test/unittests/fixtures/traces/multiple-navigations.json.gz
 third_party/devtools-frontend/src/test/unittests/fixtures/traces/multiple-top-level-renderers.json.gz
+third_party/devtools-frontend/src/test/unittests/fixtures/traces/nested-initiators.json.gz
 third_party/devtools-frontend/src/test/unittests/fixtures/traces/nested-interactions.json.gz
 third_party/devtools-frontend/src/test/unittests/fixtures/traces/node-fibonacci-website.cpuprofile.gz
 third_party/devtools-frontend/src/test/unittests/fixtures/traces/one-second-interaction.json.gz
@@ -7909,6 +8011,7 @@ third_party/devtools-frontend/src/test/unittests/fixtures/traces/redirects.json.
 third_party/devtools-frontend/src/test/unittests/fixtures/traces/reload-and-trace-page.json.gz
 third_party/devtools-frontend/src/test/unittests/fixtures/traces/reload-no-tti.json.gz
 third_party/devtools-frontend/src/test/unittests/fixtures/traces/request-with-query-param.json.gz
+third_party/devtools-frontend/src/test/unittests/fixtures/traces/set-timeout-long-task.json.gz
 third_party/devtools-frontend/src/test/unittests/fixtures/traces/simple-js-program.json.gz
 third_party/devtools-frontend/src/test/unittests/fixtures/traces/slow-interaction-button-click.json.gz
 third_party/devtools-frontend/src/test/unittests/fixtures/traces/slow-interaction-keydown.json.gz
@@ -7916,11 +8019,16 @@ third_party/devtools-frontend/src/test/unittests/fixtures/traces/style-invalidat
 third_party/devtools-frontend/src/test/unittests/fixtures/traces/style-invalidation-change-id.json.gz
 third_party/devtools-frontend/src/test/unittests/fixtures/traces/sync-like-timings.json.gz
 third_party/devtools-frontend/src/test/unittests/fixtures/traces/threejs-gpu.json.gz
+third_party/devtools-frontend/src/test/unittests/fixtures/traces/timer-initiators.json.gz
 third_party/devtools-frontend/src/test/unittests/fixtures/traces/timings-track.json.gz
+third_party/devtools-frontend/src/test/unittests/fixtures/traces/two-functions-recursion.json.gz
 third_party/devtools-frontend/src/test/unittests/fixtures/traces/two-workers.json.gz
 third_party/devtools-frontend/src/test/unittests/fixtures/traces/user-timings-complex.json.gz
 third_party/devtools-frontend/src/test/unittests/fixtures/traces/user-timings.json.gz
+third_party/devtools-frontend/src/test/unittests/fixtures/traces/web-dev-with-advanced-instrumentation.json.gz
+third_party/devtools-frontend/src/test/unittests/fixtures/traces/web-dev-with-commit.json.gz
 third_party/devtools-frontend/src/test/unittests/fixtures/traces/web-dev.json.gz
+third_party/devtools-frontend/src/test/unittests/fixtures/traces/web-sockets.json.gz
 third_party/devtools-frontend/src/third_party/image_diff/linux/image_diff
 third_party/devtools-frontend/src/third_party/image_diff/linux/libbase.so
 third_party/devtools-frontend/src/third_party/image_diff/linux/libboringssl.so
@@ -8261,7 +8369,6 @@ third_party/freetype-testing/src/fuzzing/corpora/windowsfnt/oss-fuzz/48818602985
 third_party/freetype-testing/src/fuzzing/corpora/windowsfnt/oss-fuzz/5120086263201792-timeout
 third_party/google-closure-library/scripts/ci/CloseAdobeDialog.exe
 third_party/google-java-format/chromium-overrides.jar
-third_party/google-java-format/google-java-format.jar
 third_party/gradle_wrapper/gradle/wrapper/gradle-wrapper.jar
 third_party/grpc/src/examples/android/helloworld/gradle/wrapper/gradle-wrapper.jar
 third_party/grpc/src/examples/php/GPBMetadata/Helloworld.php
@@ -14080,6 +14187,7 @@ third_party/openh264/src/res/test_qcif_cabac.264
 third_party/openh264/src/res/test_scalinglist_jm.264
 third_party/openh264/src/res/test_vd_1d.264
 third_party/openh264/src/res/test_vd_rc.264
+third_party/openscreen/src/buildtools/third_party/eu-strip/bin/eu-strip
 third_party/openscreen/src/cast/common/channel/message_framer_fuzzer_seeds/03d4b4028b559489768e2cccd6015c907f70a2c0
 third_party/openscreen/src/cast/common/channel/message_framer_fuzzer_seeds/333be5dfffb2c6eeadf31be2dc219ef841c99ea0
 third_party/openscreen/src/cast/common/channel/message_framer_fuzzer_seeds/b03aaebaa88ca4f4b8d63c7a63fc55ba402cfbb4
@@ -14285,10 +14393,36 @@ third_party/pywebsocket3/src/test/cert/client_cert.p12
 third_party/quic_trace/src/examples/example.json.gz
 third_party/quic_trace/src/examples/example.qtr
 third_party/r8/custom_d8.jar
-third_party/rust/regex/v1/crate/src/testdata/basic.dat
-third_party/rust/regex/v1/crate/tests/fowler.rs
-third_party/rust/unicode_ident/v1/crate/tests/fst/xid_continue.fst
-third_party/rust/unicode_ident/v1/crate/tests/fst/xid_start.fst
+third_party/rust/chromium_crates_io/vendor/regex-1.10.2/testdata/fowler/dat/basic.dat
+third_party/rust/chromium_crates_io/vendor/regex-1.10.2/tests/fuzz/testdata/crash-7eb3351f0965e5d6c1cb98aa8585949ef96531ff
+third_party/rust/chromium_crates_io/vendor/regex-1.10.2/tests/fuzz/testdata/crash-8760b19b25d74e3603d4c643e9c7404fdd3631f9
+third_party/rust/chromium_crates_io/vendor/regex-1.10.2/tests/fuzz/testdata/crash-cd33b13df59ea9d74503986f9d32a270dd43cc04
+third_party/rust/chromium_crates_io/vendor/regex-1.10.2/tests/fuzz/testdata/minimized-from-8760b19b25d74e3603d4c643e9c7404fdd3631f9
+third_party/rust/chromium_crates_io/vendor/regex-1.10.2/tests/fuzz/testdata/slow-unit-3ab758ea520027fefd3f00e1384d9aeef155739e
+third_party/rust/chromium_crates_io/vendor/regex-1.10.2/tests/fuzz/testdata/slow-unit-5345fccadf3812c53c3ccc7af5aa2741b7b2106c
+third_party/rust/chromium_crates_io/vendor/regex-1.10.2/tests/fuzz/testdata/slow-unit-6bd643eec330166e4ada91da2d3f284268481085
+third_party/rust/chromium_crates_io/vendor/regex-1.10.2/tests/fuzz/testdata/slow-unit-93c73a43581f205f9aaffd9c17e52b34b17becd0
+third_party/rust/chromium_crates_io/vendor/regex-1.10.2/tests/fuzz/testdata/slow-unit-9ca9cc9929fee1fcbb847a78384effb8b98ea18a
+third_party/rust/chromium_crates_io/vendor/regex-1.10.2/tests/fuzz/testdata/slow-unit-b8a052f4254802edbe5f569b6ce6e9b6c927e9d6
+third_party/rust/chromium_crates_io/vendor/regex-automata-0.4.3/tests/fuzz/testdata/deserialize_dense_crash-9486fb7c8a93b12c12a62166b43d31640c0208a9
+third_party/rust/chromium_crates_io/vendor/regex-automata-0.4.3/tests/fuzz/testdata/deserialize_dense_minimized-from-9486fb7c8a93b12c12a62166b43d31640c0208a9
+third_party/rust/chromium_crates_io/vendor/regex-automata-0.4.3/tests/fuzz/testdata/deserialize_sparse_crash-0da59c0434eaf35e5a6b470fa9244bb79c72b000
+third_party/rust/chromium_crates_io/vendor/regex-automata-0.4.3/tests/fuzz/testdata/deserialize_sparse_crash-18cfc246f2ddfc3dfc92b0c7893178c7cf65efa9
+third_party/rust/chromium_crates_io/vendor/regex-automata-0.4.3/tests/fuzz/testdata/deserialize_sparse_crash-61fd8e3003bf9d99f6c1e5a8488727eefd234b98
+third_party/rust/chromium_crates_io/vendor/regex-automata-0.4.3/tests/fuzz/testdata/deserialize_sparse_crash-a1b839d899ced76d5d7d0f78f9edb7a421505838
+third_party/rust/chromium_crates_io/vendor/regex-automata-0.4.3/tests/fuzz/testdata/deserialize_sparse_crash-c383ae07ec5e191422eadc492117439011816570
+third_party/rust/chromium_crates_io/vendor/regex-automata-0.4.3/tests/fuzz/testdata/deserialize_sparse_crash-d07703ceb94b10dcd9e4acb809f2051420449e2b
+third_party/rust/chromium_crates_io/vendor/regex-automata-0.4.3/tests/fuzz/testdata/deserialize_sparse_crash-dbb8172d3984e7e7d03f4b5f8bb86ecd1460eff9
+third_party/rust/chromium_crates_io/vendor/regex-automata-0.4.3/tests/gen/dense/multi_pattern_v2_fwd.bigendian.dfa
+third_party/rust/chromium_crates_io/vendor/regex-automata-0.4.3/tests/gen/dense/multi_pattern_v2_fwd.littleendian.dfa
+third_party/rust/chromium_crates_io/vendor/regex-automata-0.4.3/tests/gen/dense/multi_pattern_v2_rev.bigendian.dfa
+third_party/rust/chromium_crates_io/vendor/regex-automata-0.4.3/tests/gen/dense/multi_pattern_v2_rev.littleendian.dfa
+third_party/rust/chromium_crates_io/vendor/regex-automata-0.4.3/tests/gen/sparse/multi_pattern_v2_fwd.bigendian.dfa
+third_party/rust/chromium_crates_io/vendor/regex-automata-0.4.3/tests/gen/sparse/multi_pattern_v2_fwd.littleendian.dfa
+third_party/rust/chromium_crates_io/vendor/regex-automata-0.4.3/tests/gen/sparse/multi_pattern_v2_rev.bigendian.dfa
+third_party/rust/chromium_crates_io/vendor/regex-automata-0.4.3/tests/gen/sparse/multi_pattern_v2_rev.littleendian.dfa
+third_party/rust/chromium_crates_io/vendor/unicode-ident-1.0.12/tests/fst/xid_continue.fst
+third_party/rust/chromium_crates_io/vendor/unicode-ident-1.0.12/tests/fst/xid_start.fst
 third_party/skia/demos.skia.org/demos/mesh2d/canvaskit.wasm
 third_party/skia/modules/canvaskit/tests/assets/Roboto-Regular.otf
 third_party/skia/modules/canvaskit/tests/assets/red_line.skp
@@ -14321,6 +14455,10 @@ third_party/skia/resources/images/iphone_13_pro.jpeg
 third_party/skia/resources/images/mandrill.wbmp
 third_party/skia/resources/images/sample_1mp.dng
 third_party/skia/resources/images/sample_1mp_rotated.dng
+third_party/skia/resources/images/test0-hdr.exif
+third_party/skia/resources/images/test1-pixel32.exif
+third_party/skia/resources/images/test2-nonuniform.exif
+third_party/skia/resources/images/test3-little-endian.exif
 third_party/skia/resources/images/wide_gamut_yellow_224_224_64.jpeg
 third_party/skia/resources/invalid_images/ossfuzz6347
 third_party/skia/resources/rivs/bullet_man_game.riv
@@ -15288,6 +15426,110 @@ third_party/webgl/src/sdk/tests/resources/video-rotation-270.vp9.mp4
 third_party/webgl/src/sdk/tests/resources/video-rotation-90.mp4
 third_party/webgl/src/sdk/tests/resources/video-rotation-90.vp9.mp4
 third_party/webgpu-cts/src/deploy_key.enc
+third_party/webgpu-cts/src/src/resources/cache/webgpu/shader/execution/abs.bin
+third_party/webgpu-cts/src/src/resources/cache/webgpu/shader/execution/acos.bin
+third_party/webgpu-cts/src/src/resources/cache/webgpu/shader/execution/acosh.bin
+third_party/webgpu-cts/src/src/resources/cache/webgpu/shader/execution/asin.bin
+third_party/webgpu-cts/src/src/resources/cache/webgpu/shader/execution/asinh.bin
+third_party/webgpu-cts/src/src/resources/cache/webgpu/shader/execution/atan.bin
+third_party/webgpu-cts/src/src/resources/cache/webgpu/shader/execution/atan2.bin
+third_party/webgpu-cts/src/src/resources/cache/webgpu/shader/execution/atanh.bin
+third_party/webgpu-cts/src/src/resources/cache/webgpu/shader/execution/binary/af_addition.bin
+third_party/webgpu-cts/src/src/resources/cache/webgpu/shader/execution/binary/af_division.bin
+third_party/webgpu-cts/src/src/resources/cache/webgpu/shader/execution/binary/af_logical.bin
+third_party/webgpu-cts/src/src/resources/cache/webgpu/shader/execution/binary/af_matrix_addition.bin
+third_party/webgpu-cts/src/src/resources/cache/webgpu/shader/execution/binary/af_matrix_subtraction.bin
+third_party/webgpu-cts/src/src/resources/cache/webgpu/shader/execution/binary/af_multiplication.bin
+third_party/webgpu-cts/src/src/resources/cache/webgpu/shader/execution/binary/af_remainder.bin
+third_party/webgpu-cts/src/src/resources/cache/webgpu/shader/execution/binary/af_subtraction.bin
+third_party/webgpu-cts/src/src/resources/cache/webgpu/shader/execution/binary/f16_addition.bin
+third_party/webgpu-cts/src/src/resources/cache/webgpu/shader/execution/binary/f16_division.bin
+third_party/webgpu-cts/src/src/resources/cache/webgpu/shader/execution/binary/f16_logical.bin
+third_party/webgpu-cts/src/src/resources/cache/webgpu/shader/execution/binary/f16_matrix_addition.bin
+third_party/webgpu-cts/src/src/resources/cache/webgpu/shader/execution/binary/f16_matrix_matrix_multiplication.bin
+third_party/webgpu-cts/src/src/resources/cache/webgpu/shader/execution/binary/f16_matrix_scalar_multiplication.bin
+third_party/webgpu-cts/src/src/resources/cache/webgpu/shader/execution/binary/f16_matrix_subtraction.bin
+third_party/webgpu-cts/src/src/resources/cache/webgpu/shader/execution/binary/f16_matrix_vector_multiplication.bin
+third_party/webgpu-cts/src/src/resources/cache/webgpu/shader/execution/binary/f16_multiplication.bin
+third_party/webgpu-cts/src/src/resources/cache/webgpu/shader/execution/binary/f16_remainder.bin
+third_party/webgpu-cts/src/src/resources/cache/webgpu/shader/execution/binary/f16_subtraction.bin
+third_party/webgpu-cts/src/src/resources/cache/webgpu/shader/execution/binary/f32_addition.bin
+third_party/webgpu-cts/src/src/resources/cache/webgpu/shader/execution/binary/f32_division.bin
+third_party/webgpu-cts/src/src/resources/cache/webgpu/shader/execution/binary/f32_logical.bin
+third_party/webgpu-cts/src/src/resources/cache/webgpu/shader/execution/binary/f32_matrix_addition.bin
+third_party/webgpu-cts/src/src/resources/cache/webgpu/shader/execution/binary/f32_matrix_matrix_multiplication.bin
+third_party/webgpu-cts/src/src/resources/cache/webgpu/shader/execution/binary/f32_matrix_scalar_multiplication.bin
+third_party/webgpu-cts/src/src/resources/cache/webgpu/shader/execution/binary/f32_matrix_subtraction.bin
+third_party/webgpu-cts/src/src/resources/cache/webgpu/shader/execution/binary/f32_matrix_vector_multiplication.bin
+third_party/webgpu-cts/src/src/resources/cache/webgpu/shader/execution/binary/f32_multiplication.bin
+third_party/webgpu-cts/src/src/resources/cache/webgpu/shader/execution/binary/f32_remainder.bin
+third_party/webgpu-cts/src/src/resources/cache/webgpu/shader/execution/binary/f32_subtraction.bin
+third_party/webgpu-cts/src/src/resources/cache/webgpu/shader/execution/binary/i32_arithmetic.bin
+third_party/webgpu-cts/src/src/resources/cache/webgpu/shader/execution/binary/i32_comparison.bin
+third_party/webgpu-cts/src/src/resources/cache/webgpu/shader/execution/binary/u32_arithmetic.bin
+third_party/webgpu-cts/src/src/resources/cache/webgpu/shader/execution/binary/u32_comparison.bin
+third_party/webgpu-cts/src/src/resources/cache/webgpu/shader/execution/bitcast.bin
+third_party/webgpu-cts/src/src/resources/cache/webgpu/shader/execution/ceil.bin
+third_party/webgpu-cts/src/src/resources/cache/webgpu/shader/execution/clamp.bin
+third_party/webgpu-cts/src/src/resources/cache/webgpu/shader/execution/cos.bin
+third_party/webgpu-cts/src/src/resources/cache/webgpu/shader/execution/cosh.bin
+third_party/webgpu-cts/src/src/resources/cache/webgpu/shader/execution/cross.bin
+third_party/webgpu-cts/src/src/resources/cache/webgpu/shader/execution/degrees.bin
+third_party/webgpu-cts/src/src/resources/cache/webgpu/shader/execution/determinant.bin
+third_party/webgpu-cts/src/src/resources/cache/webgpu/shader/execution/distance.bin
+third_party/webgpu-cts/src/src/resources/cache/webgpu/shader/execution/dot.bin
+third_party/webgpu-cts/src/src/resources/cache/webgpu/shader/execution/exp.bin
+third_party/webgpu-cts/src/src/resources/cache/webgpu/shader/execution/exp2.bin
+third_party/webgpu-cts/src/src/resources/cache/webgpu/shader/execution/faceForward.bin
+third_party/webgpu-cts/src/src/resources/cache/webgpu/shader/execution/floor.bin
+third_party/webgpu-cts/src/src/resources/cache/webgpu/shader/execution/fma.bin
+third_party/webgpu-cts/src/src/resources/cache/webgpu/shader/execution/fract.bin
+third_party/webgpu-cts/src/src/resources/cache/webgpu/shader/execution/frexp.bin
+third_party/webgpu-cts/src/src/resources/cache/webgpu/shader/execution/inverseSqrt.bin
+third_party/webgpu-cts/src/src/resources/cache/webgpu/shader/execution/ldexp.bin
+third_party/webgpu-cts/src/src/resources/cache/webgpu/shader/execution/length.bin
+third_party/webgpu-cts/src/src/resources/cache/webgpu/shader/execution/log.bin
+third_party/webgpu-cts/src/src/resources/cache/webgpu/shader/execution/log2.bin
+third_party/webgpu-cts/src/src/resources/cache/webgpu/shader/execution/max.bin
+third_party/webgpu-cts/src/src/resources/cache/webgpu/shader/execution/min.bin
+third_party/webgpu-cts/src/src/resources/cache/webgpu/shader/execution/mix.bin
+third_party/webgpu-cts/src/src/resources/cache/webgpu/shader/execution/modf.bin
+third_party/webgpu-cts/src/src/resources/cache/webgpu/shader/execution/normalize.bin
+third_party/webgpu-cts/src/src/resources/cache/webgpu/shader/execution/pack2x16float.bin
+third_party/webgpu-cts/src/src/resources/cache/webgpu/shader/execution/pow.bin
+third_party/webgpu-cts/src/src/resources/cache/webgpu/shader/execution/quantizeToF16.bin
+third_party/webgpu-cts/src/src/resources/cache/webgpu/shader/execution/radians.bin
+third_party/webgpu-cts/src/src/resources/cache/webgpu/shader/execution/reflect.bin
+third_party/webgpu-cts/src/src/resources/cache/webgpu/shader/execution/refract.bin
+third_party/webgpu-cts/src/src/resources/cache/webgpu/shader/execution/round.bin
+third_party/webgpu-cts/src/src/resources/cache/webgpu/shader/execution/saturate.bin
+third_party/webgpu-cts/src/src/resources/cache/webgpu/shader/execution/sign.bin
+third_party/webgpu-cts/src/src/resources/cache/webgpu/shader/execution/sin.bin
+third_party/webgpu-cts/src/src/resources/cache/webgpu/shader/execution/sinh.bin
+third_party/webgpu-cts/src/src/resources/cache/webgpu/shader/execution/smoothstep.bin
+third_party/webgpu-cts/src/src/resources/cache/webgpu/shader/execution/sqrt.bin
+third_party/webgpu-cts/src/src/resources/cache/webgpu/shader/execution/step.bin
+third_party/webgpu-cts/src/src/resources/cache/webgpu/shader/execution/tan.bin
+third_party/webgpu-cts/src/src/resources/cache/webgpu/shader/execution/tanh.bin
+third_party/webgpu-cts/src/src/resources/cache/webgpu/shader/execution/transpose.bin
+third_party/webgpu-cts/src/src/resources/cache/webgpu/shader/execution/trunc.bin
+third_party/webgpu-cts/src/src/resources/cache/webgpu/shader/execution/unary/af_arithmetic.bin
+third_party/webgpu-cts/src/src/resources/cache/webgpu/shader/execution/unary/af_assignment.bin
+third_party/webgpu-cts/src/src/resources/cache/webgpu/shader/execution/unary/bool_conversion.bin
+third_party/webgpu-cts/src/src/resources/cache/webgpu/shader/execution/unary/f16_arithmetic.bin
+third_party/webgpu-cts/src/src/resources/cache/webgpu/shader/execution/unary/f16_conversion.bin
+third_party/webgpu-cts/src/src/resources/cache/webgpu/shader/execution/unary/f32_arithmetic.bin
+third_party/webgpu-cts/src/src/resources/cache/webgpu/shader/execution/unary/f32_conversion.bin
+third_party/webgpu-cts/src/src/resources/cache/webgpu/shader/execution/unary/i32_arithmetic.bin
+third_party/webgpu-cts/src/src/resources/cache/webgpu/shader/execution/unary/i32_complement.bin
+third_party/webgpu-cts/src/src/resources/cache/webgpu/shader/execution/unary/i32_conversion.bin
+third_party/webgpu-cts/src/src/resources/cache/webgpu/shader/execution/unary/u32_complement.bin
+third_party/webgpu-cts/src/src/resources/cache/webgpu/shader/execution/unary/u32_conversion.bin
+third_party/webgpu-cts/src/src/resources/cache/webgpu/shader/execution/unpack2x16float.bin
+third_party/webgpu-cts/src/src/resources/cache/webgpu/shader/execution/unpack2x16snorm.bin
+third_party/webgpu-cts/src/src/resources/cache/webgpu/shader/execution/unpack2x16unorm.bin
+third_party/webgpu-cts/src/src/resources/cache/webgpu/shader/execution/unpack4x8snorm.bin
+third_party/webgpu-cts/src/src/resources/cache/webgpu/shader/execution/unpack4x8unorm.bin
 third_party/webgpu-cts/src/src/resources/four-colors-h264-bt601-rotate-180.mp4
 third_party/webgpu-cts/src/src/resources/four-colors-h264-bt601-rotate-270.mp4
 third_party/webgpu-cts/src/src/resources/four-colors-h264-bt601-rotate-90.mp4

+ 1 - 0
utils/prune_binaries.py

@@ -31,6 +31,7 @@ CONTINGENT_PATHS = (
     'third_party/dawn/tools/golang/',
     'third_party/depot_tools/external_bin/',
     'third_party/devtools-frontend/src/third_party/esbuild/',
+    'third_party/google-java-format/'
     'third_party/libei/',
     'third_party/llvm-build-tools/',
     'third_party/ninja/',

Some files were not shown because too many files changed in this diff