Browse Source

Update to Chromium 122.0.6261.57

Blaise 2 months ago
parent
commit
eb9cb496a2
68 changed files with 1197 additions and 1053 deletions
  1. 1 1
      chromium_version.txt
  2. 122 84
      domain_substitution.list
  3. 5 5
      patches/core/bromite/disable-fetching-field-trials.patch
  4. 69 125
      patches/core/inox-patchset/0001-fix-building-without-safebrowsing.patch
  5. 8 9
      patches/core/inox-patchset/0003-disable-autofill-download-manager.patch
  6. 3 3
      patches/core/inox-patchset/0009-disable-google-ipv6-probes.patch
  7. 2 2
      patches/core/inox-patchset/0015-disable-update-pings.patch
  8. 1 1
      patches/core/inox-patchset/0021-disable-rlz.patch
  9. 4 4
      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. 1 1
      patches/core/iridium-browser/safe_browsing-disable-reporting-of-safebrowsing-over.patch
  12. 2 15
      patches/core/ungoogled-chromium/block-requests.patch
  13. 6 6
      patches/core/ungoogled-chromium/block-trk-and-subdomains.patch
  14. 3 3
      patches/core/ungoogled-chromium/disable-crash-reporter.patch
  15. 55 36
      patches/core/ungoogled-chromium/disable-google-host-detection.patch
  16. 2 2
      patches/core/ungoogled-chromium/disable-mei-preload.patch
  17. 1 1
      patches/core/ungoogled-chromium/disable-network-time-tracker.patch
  18. 3 29
      patches/core/ungoogled-chromium/disable-privacy-sandbox.patch
  19. 4 6
      patches/core/ungoogled-chromium/disable-webrtc-log-uploader.patch
  20. 8 8
      patches/core/ungoogled-chromium/disable-webstore-urls.patch
  21. 1 1
      patches/core/ungoogled-chromium/doh-changes.patch
  22. 115 37
      patches/core/ungoogled-chromium/fix-building-with-prunned-binaries.patch
  23. 346 265
      patches/core/ungoogled-chromium/fix-building-without-safebrowsing.patch
  24. 146 168
      patches/core/ungoogled-chromium/remove-unused-preferences-fields.patch
  25. 1 1
      patches/core/ungoogled-chromium/replace-google-search-engine-with-nosearch.patch
  26. 2 2
      patches/core/ungoogled-chromium/toggle-translation-via-switch.patch
  27. 31 27
      patches/extra/bromite/fingerprinting-flags-client-rects-and-measuretext.patch
  28. 9 9
      patches/extra/bromite/flag-fingerprinting-canvas-image-data-noise.patch
  29. 10 10
      patches/extra/bromite/flag-max-connections-per-host.patch
  30. 9 9
      patches/extra/inox-patchset/0006-modify-default-prefs.patch
  31. 1 1
      patches/extra/iridium-browser/Remove-EV-certificates.patch
  32. 1 1
      patches/extra/iridium-browser/browser-disable-profile-auto-import-on-first-run.patch
  33. 1 1
      patches/extra/iridium-browser/net-cert-increase-default-key-length-for-newly-gener.patch
  34. 1 1
      patches/extra/iridium-browser/prefs-always-prompt-for-download-directory-by-defaul.patch
  35. 1 1
      patches/extra/iridium-browser/updater-disable-auto-update.patch
  36. 10 10
      patches/extra/ungoogled-chromium/add-flag-for-close-confirmation.patch
  37. 2 2
      patches/extra/ungoogled-chromium/add-flag-for-disabling-link-drag.patch
  38. 1 1
      patches/extra/ungoogled-chromium/add-flag-for-grab-handle.patch
  39. 1 1
      patches/extra/ungoogled-chromium/add-flag-for-incognito-themes.patch
  40. 4 4
      patches/extra/ungoogled-chromium/add-flag-for-omnibox-autocomplete-filtering.patch
  41. 1 1
      patches/extra/ungoogled-chromium/add-flag-for-qr-generator.patch
  42. 15 15
      patches/extra/ungoogled-chromium/add-flag-for-search-engine-collection.patch
  43. 2 2
      patches/extra/ungoogled-chromium/add-flag-for-tab-hover-cards.patch
  44. 1 1
      patches/extra/ungoogled-chromium/add-flag-for-tabsearch-button.patch
  45. 1 1
      patches/extra/ungoogled-chromium/add-flag-to-close-window-with-last-tab.patch
  46. 1 1
      patches/extra/ungoogled-chromium/add-flag-to-configure-extension-downloading.patch
  47. 1 1
      patches/extra/ungoogled-chromium/add-flag-to-convert-popups-to-tabs.patch
  48. 1 1
      patches/extra/ungoogled-chromium/add-flag-to-disable-tls-grease.patch
  49. 2 2
      patches/extra/ungoogled-chromium/add-flag-to-hide-extensions-menu.patch
  50. 1 1
      patches/extra/ungoogled-chromium/add-flag-to-hide-fullscreen-exit-ui.patch
  51. 1 1
      patches/extra/ungoogled-chromium/add-flag-to-hide-side-panel-button.patch
  52. 5 5
      patches/extra/ungoogled-chromium/add-flag-to-hide-tab-close-buttons.patch
  53. 1 1
      patches/extra/ungoogled-chromium/add-flag-to-show-avatar-button.patch
  54. 1 1
      patches/extra/ungoogled-chromium/add-flags-for-existing-switches.patch
  55. 17 16
      patches/extra/ungoogled-chromium/add-flags-for-referrer-customization.patch
  56. 5 5
      patches/extra/ungoogled-chromium/add-ipv6-probing-option.patch
  57. 30 30
      patches/extra/ungoogled-chromium/add-suggestions-url-field.patch
  58. 1 1
      patches/extra/ungoogled-chromium/add-ungoogled-flag-headers.patch
  59. 1 1
      patches/extra/ungoogled-chromium/disable-remote-optimization-guide.patch
  60. 2 2
      patches/extra/ungoogled-chromium/disable-webgl-renderer-info.patch
  61. 1 1
      patches/extra/ungoogled-chromium/enable-default-prefetch-privacy-changes.patch
  62. 1 1
      patches/extra/ungoogled-chromium/enable-menu-on-reload-button.patch
  63. 2 2
      patches/extra/ungoogled-chromium/enable-page-saving-on-more-pages.patch
  64. 5 5
      patches/extra/ungoogled-chromium/enable-paste-and-go-new-tab-button.patch
  65. 5 5
      patches/extra/ungoogled-chromium/first-run-page.patch
  66. 1 1
      patches/extra/ungoogled-chromium/prepopulated-search-engines.patch
  67. 22 8
      patches/extra/ungoogled-chromium/remove-uneeded-ui.patch
  68. 76 47
      pruning.list

+ 1 - 1
chromium_version.txt

@@ -1 +1 @@
-121.0.6167.184
+122.0.6261.57

File diff suppressed because it is too large
+ 122 - 84
domain_substitution.list


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

@@ -10,7 +10,7 @@ Subject: Disable fetching of all field trials
 
 --- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
 +++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
-@@ -44,7 +44,7 @@ public abstract class ChromeFeatureList
+@@ -50,7 +50,7 @@ public abstract class ChromeFeatureList
       * |kFeaturesExposedToJava| in chrome/browser/flags/android/chrome_feature_list.cc
       */
      public static String getFieldTrialParamByFeature(String featureName, String paramName) {
@@ -19,7 +19,7 @@ Subject: Disable fetching of all field trials
      }
  
      /**
-@@ -56,8 +56,7 @@ public abstract class ChromeFeatureList
+@@ -62,8 +62,7 @@ public abstract class ChromeFeatureList
       */
      public static boolean getFieldTrialParamByFeatureAsBoolean(
              String featureName, String paramName, boolean defaultValue) {
@@ -29,7 +29,7 @@ Subject: Disable fetching of all field trials
      }
  
      /**
-@@ -69,8 +68,7 @@ public abstract class ChromeFeatureList
+@@ -75,8 +74,7 @@ public abstract class ChromeFeatureList
       */
      public static int getFieldTrialParamByFeatureAsInt(
              String featureName, String paramName, int defaultValue) {
@@ -39,7 +39,7 @@ Subject: Disable fetching of all field trials
      }
  
      /**
-@@ -82,8 +80,7 @@ public abstract class ChromeFeatureList
+@@ -88,8 +86,7 @@ public abstract class ChromeFeatureList
       */
      public static double getFieldTrialParamByFeatureAsDouble(
              String featureName, String paramName, double defaultValue) {
@@ -51,7 +51,7 @@ Subject: Disable fetching of all field trials
      /**
 --- a/components/variations/service/variations_service.cc
 +++ b/components/variations/service/variations_service.cc
-@@ -221,17 +221,7 @@ bool GetInstanceManipulations(const net:
+@@ -223,17 +223,7 @@ bool GetInstanceManipulations(const net:
  // Variations seed fetching is only enabled in official Chrome builds, if a URL
  // is specified on the command line, and for testing.
  bool IsFetchingEnabled() {

+ 69 - 125
patches/core/inox-patchset/0001-fix-building-without-safebrowsing.patch

@@ -1,6 +1,6 @@
 --- a/chrome/browser/BUILD.gn
 +++ b/chrome/browser/BUILD.gn
-@@ -2358,7 +2358,6 @@ static_library("browser") {
+@@ -2352,7 +2352,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",
-@@ -3782,8 +3781,6 @@ static_library("browser") {
+@@ -3744,8 +3743,6 @@ static_library("browser") {
        "download/download_commands.h",
        "download/download_crx_util.cc",
        "download/download_crx_util.h",
@@ -42,7 +42,7 @@
    virtual subresource_filter::RulesetService*
 --- a/chrome/browser/browser_process_impl.cc
 +++ b/chrome/browser/browser_process_impl.cc
-@@ -71,7 +71,6 @@
+@@ -72,7 +72,6 @@
  #include "chrome/browser/printing/print_job_manager.h"
  #include "chrome/browser/profiles/profile_manager.h"
  #include "chrome/browser/resource_coordinator/resource_coordinator_parts.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"
-@@ -440,8 +439,6 @@ void BrowserProcessImpl::StartTearDown()
+@@ -439,8 +438,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)
-@@ -1088,14 +1085,6 @@ StatusTray* BrowserProcessImpl::status_t
+@@ -1097,14 +1094,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_);
-@@ -1344,26 +1333,6 @@ void BrowserProcessImpl::CreateBackgroun
+@@ -1370,26 +1359,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
-@@ -197,7 +197,6 @@ class BrowserProcessImpl : public Browse
+@@ -196,7 +196,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;
  
-@@ -357,9 +356,6 @@ class BrowserProcessImpl : public Browse
+@@ -356,9 +355,6 @@ class BrowserProcessImpl : public Browse
    std::unique_ptr<BackgroundModeManager> background_mode_manager_;
  #endif
  
@@ -131,7 +131,7 @@
  #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"
-@@ -633,10 +632,6 @@ void ChromeBrowsingDataRemoverDelegate::
+@@ -635,10 +634,6 @@ void ChromeBrowsingDataRemoverDelegate::
      base::RecordAction(UserMetricsAction("ClearBrowsingData_Cookies"));
  
      network::mojom::NetworkContext* safe_browsing_context = nullptr;
@@ -144,42 +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
-@@ -1060,34 +1060,6 @@ void SetApplicationLocaleOnIOThread(cons
-   GetIOThreadApplicationLocale() = locale;
- }
- 
--// An implementation of the SSLCertReporter interface used by
--// SSLErrorHandler. Uses CertificateReportingService to send reports. The
--// service handles queueing and re-sending of failed reports. Each certificate
--// error creates a new instance of this class.
--class CertificateReportingServiceCertReporter : public SSLCertReporter {
-- public:
--  explicit CertificateReportingServiceCertReporter(
--      content::WebContents* web_contents)
--      : service_(CertificateReportingServiceFactory::GetForBrowserContext(
--            web_contents->GetBrowserContext())) {}
--
--  CertificateReportingServiceCertReporter(
--      const CertificateReportingServiceCertReporter&) = delete;
--  CertificateReportingServiceCertReporter& operator=(
--      const CertificateReportingServiceCertReporter&) = delete;
--
--  ~CertificateReportingServiceCertReporter() override {}
--
--  // SSLCertReporter implementation
--  void ReportInvalidCertificateChain(
--      const std::string& serialized_report) override {
--    service_->Send(serialized_report);
--  }
--
-- private:
--  raw_ptr<CertificateReportingService> service_;
--};
--
- #if BUILDFLAG(ENABLE_EXTENSIONS)
- 
- // Returns true if there is is an extension matching `url` in
-@@ -5169,14 +5141,9 @@ ChromeContentBrowserClient::CreateThrott
+@@ -5019,10 +5019,6 @@ ChromeContentBrowserClient::CreateThrott
    throttles.push_back(std::make_unique<PolicyBlocklistNavigationThrottle>(
        handle, handle->GetWebContents()->GetBrowserContext()));
  
@@ -187,15 +152,10 @@
 -  // the relevant extension API whenever an SSL interstitial is shown.
 -  SSLErrorHandler::SetClientCallbackOnInterstitialsShown(
 -      base::BindRepeating(&MaybeTriggerSecurityInterstitialShownEvent));
--  content::WebContents* web_contents = handle->GetWebContents();
    throttles.push_back(std::make_unique<SSLErrorNavigationThrottle>(
        handle,
--      std::make_unique<CertificateReportingServiceCertReporter>(web_contents),
-+      nullptr,
        base::BindOnce(&HandleSSLErrorWrapper), base::BindOnce(&IsInHostedApp),
-       base::BindOnce(
-           &ShouldIgnoreSslInterstitialBecauseNavigationDefaultedToHttps)));
-@@ -5222,16 +5189,6 @@ ChromeContentBrowserClient::CreateThrott
+@@ -5070,16 +5066,6 @@ ChromeContentBrowserClient::CreateThrott
        &throttles);
  #endif
  
@@ -212,7 +172,7 @@
    if (base::FeatureList::IsEnabled(safe_browsing::kDelayedWarnings)) {
      throttles.push_back(
          std::make_unique<safe_browsing::DelayedWarningNavigationThrottle>(
-@@ -5515,8 +5472,6 @@ void ChromeContentBrowserClient::Overrid
+@@ -5344,8 +5330,6 @@ bool ChromeContentBrowserClient::IsPlugi
  void ChromeContentBrowserClient::InitOnUIThread() {
    DCHECK_CURRENTLY_ON(BrowserThread::UI);
  
@@ -223,12 +183,13 @@
    base::PathService::Get(chrome::DIR_USER_DATA, &user_data_dir);
 --- a/chrome/browser/component_updater/file_type_policies_component_installer.cc
 +++ b/chrome/browser/component_updater/file_type_policies_component_installer.cc
-@@ -38,20 +38,6 @@ const uint8_t kFileTypePoliciesPublicKey
+@@ -38,21 +38,6 @@ const uint8_t kFileTypePoliciesPublicKey
  const char kFileTypePoliciesManifestName[] = "File Type Policies";
  
  void LoadFileTypesFromDisk(const base::FilePath& pb_path) {
--  if (pb_path.empty())
+-  if (pb_path.empty()) {
 -    return;
+-  }
 -
 -  VLOG(1) << "Reading Download File Types from file: " << pb_path.value();
 -  std::string binary_pb;
@@ -246,7 +207,7 @@
  }  // namespace
 --- a/chrome/browser/download/chrome_download_manager_delegate.cc
 +++ b/chrome/browser/download/chrome_download_manager_delegate.cc
-@@ -474,13 +474,6 @@ void ChromeDownloadManagerDelegate::SetD
+@@ -498,13 +498,6 @@ void ChromeDownloadManagerDelegate::SetD
  
    download_manager_ = dm;
  
@@ -260,7 +221,7 @@
    if (download_manager_) {
      download_manager_->AddObserver(this);
    }
-@@ -874,17 +867,6 @@ void ChromeDownloadManagerDelegate::Choo
+@@ -898,17 +891,6 @@ void ChromeDownloadManagerDelegate::Choo
  void ChromeDownloadManagerDelegate::SanitizeSavePackageResourceName(
      base::FilePath* filename,
      const GURL& source_url) {
@@ -280,25 +241,16 @@
  void ChromeDownloadManagerDelegate::SanitizeDownloadParameters(
 --- a/chrome/browser/download/download_item_model.cc
 +++ b/chrome/browser/download/download_item_model.cc
-@@ -109,7 +109,7 @@ class DownloadItemModelData : public bas
+@@ -110,7 +110,7 @@ class DownloadItemModelData : public bas
  
    // Danger level of the file determined based on the file type and whether
    // there was a user action associated with the download.
--  DownloadFileType::DangerLevel danger_level_;
-+  safe_browsing::DownloadFileType::DangerLevel danger_level_;
+-  DownloadFileType::DangerLevel danger_level_ = DownloadFileType::NOT_DANGEROUS;
++  safe_browsing::DownloadFileType::DangerLevel danger_level_ = safe_browsing::DownloadFileType::NOT_DANGEROUS;
  
    // Whether the download is currently being revived.
-   bool is_being_revived_;
-@@ -159,7 +159,7 @@ DownloadItemModelData* DownloadItemModel
- DownloadItemModelData::DownloadItemModelData()
-     : should_show_in_shelf_(true),
-       was_ui_notified_(false),
--      danger_level_(DownloadFileType::NOT_DANGEROUS),
-+      danger_level_(safe_browsing::DownloadFileType::NOT_DANGEROUS),
-       is_being_revived_(false) {}
- 
- #if BUILDFLAG(FULL_SAFE_BROWSING)
-@@ -535,13 +535,13 @@ void DownloadItemModel::SetShouldPreferO
+   bool is_being_revived_ = false;
+@@ -526,13 +526,13 @@ void DownloadItemModel::SetShouldPreferO
    data->should_prefer_opening_in_browser_ = preference;
  }
  
@@ -315,7 +267,7 @@
    DownloadItemModelData* data = DownloadItemModelData::GetOrCreate(download_);
    data->danger_level_ = danger_level;
  }
-@@ -718,9 +718,6 @@ bool DownloadItemModel::IsCommandEnabled
+@@ -709,9 +709,6 @@ bool DownloadItemModel::IsCommandEnabled
        // filename. Don't base an "Always open" decision based on it. Also
        // exclude extensions.
        return download_->CanOpenDownload() &&
@@ -327,7 +279,7 @@
        return !download_->IsSavePackageDownload() &&
 --- a/chrome/browser/download/download_prefs.cc
 +++ b/chrome/browser/download/download_prefs.cc
-@@ -261,14 +261,7 @@ DownloadPrefs::DownloadPrefs(Profile* pr
+@@ -262,14 +262,7 @@ DownloadPrefs::DownloadPrefs(Profile* pr
          base::FilePath::StringType(1, base::FilePath::kExtensionSeparator) +
          extension);
  
@@ -356,7 +308,7 @@
    extension.erase(0, 1);
 --- a/chrome/browser/download/download_target_determiner.cc
 +++ b/chrome/browser/download/download_target_determiner.cc
-@@ -323,13 +323,6 @@ base::FilePath DownloadTargetDeterminer:
+@@ -324,13 +324,6 @@ base::FilePath DownloadTargetDeterminer:
        download_->GetURL(), download_->GetContentDisposition(), referrer_charset,
        suggested_filename, sniffed_mime_type, default_filename);
  
@@ -370,7 +322,7 @@
    // If no mime type or explicitly specified a name, don't replace file
    // extension.
    if (sniffed_mime_type.empty() || !suggested_filename.empty())
-@@ -1272,30 +1265,7 @@ DownloadFileType::DangerLevel DownloadTa
+@@ -1287,30 +1280,7 @@ DownloadFileType::DangerLevel DownloadTa
        download_->HasUserGesture())
      return DownloadFileType::NOT_DANGEROUS;
  
@@ -401,10 +353,10 @@
 +  return DownloadFileType::NOT_DANGEROUS;
  }
  
- absl::optional<base::Time>
+ std::optional<base::Time>
 --- a/chrome/browser/extensions/api/downloads/downloads_api.cc
 +++ b/chrome/browser/extensions/api/downloads/downloads_api.cc
-@@ -37,7 +37,6 @@
+@@ -38,7 +38,6 @@
  #include "chrome/browser/download/bubble/download_bubble_ui_controller.h"
  #include "chrome/browser/download/download_core_service.h"
  #include "chrome/browser/download/download_core_service_factory.h"
@@ -412,7 +364,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"
-@@ -1376,9 +1375,6 @@ DownloadsAcceptDangerFunction::Downloads
+@@ -1377,9 +1376,6 @@ DownloadsAcceptDangerFunction::Downloads
  
  DownloadsAcceptDangerFunction::~DownloadsAcceptDangerFunction() {}
  
@@ -420,9 +372,9 @@
 -    DownloadsAcceptDangerFunction::on_prompt_created_ = nullptr;
 -
  ExtensionFunction::ResponseAction DownloadsAcceptDangerFunction::Run() {
-   absl::optional<downloads::AcceptDanger::Params> params =
+   std::optional<downloads::AcceptDanger::Params> params =
        downloads::AcceptDanger::Params::Create(args());
-@@ -1416,42 +1412,7 @@ void DownloadsAcceptDangerFunction::Prom
+@@ -1417,42 +1413,7 @@ void DownloadsAcceptDangerFunction::Prom
      return;
    }
    RecordApiFunctions(DOWNLOADS_FUNCTION_ACCEPT_DANGER);
@@ -567,7 +519,7 @@
  }
  
  void WebstorePrivateBeginInstallWithManifest3Function::OnInstallPromptDone(
-@@ -1219,56 +1207,9 @@ WebstorePrivateGetReferrerChainFunction:
+@@ -1219,54 +1207,9 @@ WebstorePrivateGetReferrerChainFunction:
  
  ExtensionFunction::ResponseAction
  WebstorePrivateGetReferrerChainFunction::Run() {
@@ -614,13 +566,11 @@
 -  request.mutable_referrer_chain_options()->set_recent_navigations_to_collect(
 -      recent_navigations_to_collect);
 -
--  std::string serialized_referrer_proto = request.SerializeAsString();
--  // Base64 encode the proto to avoid issues with base::Value rejecting strings
--  // which are not valid UTF8.
--  base::Base64Encode(serialized_referrer_proto, &serialized_referrer_proto);
+-  // Base64 encode the request to avoid issues with base::Value rejecting
+-  // strings which are not valid UTF8.
    return RespondNow(
        ArgumentList(api::webstore_private::GetReferrerChain::Results::Create(
--          serialized_referrer_proto)));
+-          base::Base64Encode(request.SerializeAsString()))));
 +          "")));
  }
  
@@ -663,7 +613,7 @@
    net::NetworkTrafficAnnotationTag traffic_annotation =
        net::DefineNetworkTrafficAnnotation("extension_blacklist", R"(
          semantics {
-@@ -126,12 +110,6 @@ void BlocklistStateFetcher::SendRequest(
+@@ -121,12 +105,6 @@ void BlocklistStateFetcher::SendRequest(
                       base::Unretained(this), fetcher));
  }
  
@@ -705,7 +655,7 @@
  #include "chrome/browser/sessions/exit_type_service.h"
  #include "chrome/browser/sharing/sharing_service_factory.h"
  #include "chrome/browser/signin/identity_manager_factory.h"
-@@ -646,17 +645,6 @@ void ProfileImpl::LoadPrefsForNormalStar
+@@ -633,17 +632,6 @@ void ProfileImpl::LoadPrefsForNormalStar
  
    mojo::PendingRemote<prefs::mojom::TrackedPreferenceValidationDelegate>
        pref_validation_delegate;
@@ -725,7 +675,7 @@
        CreatePrefService(pref_registry_, CreateExtensionPrefStore(this, false),
 --- a/chrome/browser/profiles/profiles_state.cc
 +++ b/chrome/browser/profiles/profiles_state.cc
-@@ -261,9 +261,6 @@ void RemoveBrowsingDataForProfile(const
+@@ -274,9 +274,6 @@ void RemoveBrowsingDataForProfile(const
    // The BrowsingDataRemover relies on many objects that aren't created in unit
    // tests. Previously this code would depend on content::ResourceDispatcherHost
    // but that's gone, so do a similar hack for now.
@@ -745,15 +695,15 @@
    sources = [
      "chrome_controller_client.cc",
      "chrome_controller_client.h",
-@@ -70,6 +71,7 @@ static_library("safe_browsing") {
+@@ -69,6 +70,7 @@ static_library("safe_browsing") {
      "//mojo/public/cpp/system",
      "//services/preferences/public/cpp",
    ]
 +  }
  
-   if (safe_browsing_mode != 0) {
-     # "Safe Browsing Basic" files used for safe browsing in full mode
-@@ -501,6 +503,7 @@ static_library("advanced_protection") {
+   if (is_android) {
+     deps += [ "//chrome/browser/password_manager/android:utils" ]
+@@ -499,6 +501,7 @@ static_library("advanced_protection") {
  }
  
  source_set("metrics_collector") {
@@ -761,7 +711,7 @@
    sources = [
      "safe_browsing_metrics_collector_factory.cc",
      "safe_browsing_metrics_collector_factory.h",
-@@ -520,6 +523,7 @@ source_set("metrics_collector") {
+@@ -518,6 +521,7 @@ source_set("metrics_collector") {
      "//components/safe_browsing/core/common:safe_browsing_prefs",
      "//content/public/browser",
    ]
@@ -794,7 +744,6 @@
 -      case safe_browsing::SB_THREAT_TYPE_URL_CLIENT_SIDE_PHISHING:
 -        return security_state::MALICIOUS_CONTENT_STATUS_SOCIAL_ENGINEERING;
 -      case safe_browsing::SB_THREAT_TYPE_URL_MALWARE:
--      case safe_browsing::SB_THREAT_TYPE_URL_CLIENT_SIDE_MALWARE:
 -        return security_state::MALICIOUS_CONTENT_STATUS_MALWARE;
 -      case safe_browsing::SB_THREAT_TYPE_URL_UNWANTED:
 -        return security_state::MALICIOUS_CONTENT_STATUS_UNWANTED_SOFTWARE;
@@ -842,6 +791,7 @@
 -        return security_state::MALICIOUS_CONTENT_STATUS_MANAGED_POLICY_WARN;
 -      case safe_browsing::
 -          DEPRECATED_SB_THREAT_TYPE_URL_PASSWORD_PROTECTION_PHISHING:
+-      case safe_browsing::DEPRECATED_SB_THREAT_TYPE_URL_CLIENT_SIDE_MALWARE:
 -      case safe_browsing::SB_THREAT_TYPE_URL_BINARY_MALWARE:
 -      case safe_browsing::SB_THREAT_TYPE_EXTENSION:
 -      case safe_browsing::SB_THREAT_TYPE_BLOCKLISTED_RESOURCE:
@@ -866,7 +816,7 @@
  
 --- a/chrome/browser/ui/BUILD.gn
 +++ b/chrome/browser/ui/BUILD.gn
-@@ -5142,7 +5142,6 @@ static_library("ui") {
+@@ -5212,7 +5212,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 +826,7 @@
        "views/download/download_item_view.cc",
 --- a/chrome/browser/ui/tab_helpers.cc
 +++ b/chrome/browser/ui/tab_helpers.cc
-@@ -475,22 +475,6 @@ void TabHelpers::AttachTabHelpers(WebCon
+@@ -479,22 +479,6 @@ void TabHelpers::AttachTabHelpers(WebCon
    //     See https://crbug.com/910288.
    resource_coordinator::ResourceCoordinatorTabHelper::CreateForWebContents(
        web_contents);
@@ -901,7 +851,7 @@
    SecurityStateTabHelper::CreateForWebContents(web_contents);
 --- a/chrome/browser/ui/webui/downloads/downloads_dom_handler.cc
 +++ b/chrome/browser/ui/webui/downloads/downloads_dom_handler.cc
-@@ -24,7 +24,6 @@
+@@ -25,7 +25,6 @@
  #include "base/values.h"
  #include "chrome/browser/browser_process.h"
  #include "chrome/browser/download/bubble/download_bubble_ui_controller.h"
@@ -909,7 +859,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"
-@@ -199,13 +198,6 @@ void DownloadsDOMHandler::SaveDangerousR
+@@ -280,13 +279,6 @@ void DownloadsDOMHandler::SaveDangerousR
    }
  
    CountDownloadsDOMEvents(DOWNLOADS_DOM_EVENT_SAVE_DANGEROUS);
@@ -922,11 +872,11 @@
 -  }
  }
  
- void DownloadsDOMHandler::DiscardDangerous(const std::string& id) {
-@@ -401,12 +393,6 @@ void DownloadsDOMHandler::RemoveDownload
+ // "Suspicious" in this context applies to insecure as well as dangerous
+@@ -540,12 +532,6 @@ void DownloadsDOMHandler::RemoveDownload
    IdSet ids;
  
-   for (auto* download : to_remove) {
+   for (download::DownloadItem* download : to_remove) {
 -    if (download->IsDangerous() || download->IsInsecure()) {
 -      // Don't allow users to revive dangerous downloads; just nuke 'em.
 -      download->Remove();
@@ -936,10 +886,12 @@
      DownloadItemModel item_model(download);
      if (!item_model.ShouldShowInShelf() ||
          download->GetState() == download::DownloadItem::IN_PROGRESS) {
-@@ -546,44 +532,6 @@ void DownloadsDOMHandler::FinalizeRemova
+@@ -685,50 +671,6 @@ void DownloadsDOMHandler::FinalizeRemova
    }
  }
  
+-// TODO(chlily): This is obsoleted by ImprovedDownloadPageWarnings. Clean this
+-// up.
 -void DownloadsDOMHandler::ShowDangerPrompt(
 -    download::DownloadItem* dangerous_item) {
 -  DownloadDangerPrompt* danger_prompt = DownloadDangerPrompt::Create(
@@ -950,6 +902,8 @@
 -  DCHECK(danger_prompt);
 -}
 -
+-// TODO(chlily): This is obsoleted by ImprovedDownloadPageWarnings. Clean this
+-// up.
 -void DownloadsDOMHandler::DangerPromptDone(
 -    int download_id,
 -    DownloadDangerPrompt::Action action) {
@@ -975,6 +929,8 @@
 -    return;
 -  }
 -
+-  RecordDownloadsPageValidatedHistogram(item);
+-
 -  item->ValidateDangerousDownload();
 -}
 -
@@ -991,7 +947,7 @@
  #include "chrome/browser/ui/webui/downloads/downloads.mojom-forward.h"
  #include "chrome/browser/ui/webui/downloads/downloads_list_tracker.h"
  #include "content/public/browser/web_contents_observer.h"
-@@ -97,18 +96,6 @@ class DownloadsDOMHandler : public conte
+@@ -102,18 +101,6 @@ class DownloadsDOMHandler : public conte
    // null-checking |original_notifier_|.
    content::DownloadManager* GetOriginalNotifierManager() const;
  
@@ -1012,11 +968,11 @@
    bool IsDeletingHistoryAllowed();
 --- a/chrome/browser/ui/webui/interstitials/interstitial_ui.cc
 +++ b/chrome/browser/ui/webui/interstitials/interstitial_ui.cc
-@@ -281,68 +281,6 @@ CreateHttpsOnlyModePage(content::WebCont
+@@ -280,66 +280,6 @@ CreateHttpsOnlyModePage(content::WebCont
        security_interstitials::https_only_mode::HttpInterstitialState{});
  }
  
--std::unique_ptr<safe_browsing::SafeBrowsingBlockingPage>
+-std::unique_ptr<security_interstitials::SecurityInterstitialPage>
 -CreateSafeBrowsingBlockingPage(content::WebContents* web_contents) {
 -  safe_browsing::SBThreatType threat_type =
 -      safe_browsing::SB_THREAT_TYPE_URL_MALWARE;
@@ -1040,8 +996,6 @@
 -      threat_type = safe_browsing::SB_THREAT_TYPE_URL_PHISHING;
 -    } else if (type_param == "unwanted") {
 -      threat_type = safe_browsing::SB_THREAT_TYPE_URL_UNWANTED;
--    } else if (type_param == "clientside_malware") {
--      threat_type = safe_browsing::SB_THREAT_TYPE_URL_CLIENT_SIDE_MALWARE;
 -    } else if (type_param == "clientside_phishing") {
 -      threat_type = safe_browsing::SB_THREAT_TYPE_URL_CLIENT_SIDE_PHISHING;
 -    } else if (type_param == "billing") {
@@ -1073,15 +1027,15 @@
 -  // parts which depend on the NavigationEntry are not hit.
 -  auto* ui_manager =
 -      g_browser_process->safe_browsing_service()->ui_manager().get();
--  return base::WrapUnique<safe_browsing::SafeBrowsingBlockingPage>(
--      ui_manager->blocking_page_factory()->CreateSafeBrowsingPage(
--          ui_manager, web_contents, main_frame_url, {resource}, true));
+-  return base::WrapUnique<security_interstitials::SecurityInterstitialPage>(
+-      ui_manager->CreateBlockingPage(web_contents, main_frame_url, {resource},
+-                                     /*forward_extension_event=*/false));
 -}
 -
  std::unique_ptr<EnterpriseBlockPage> CreateEnterpriseBlockPage(
      content::WebContents* web_contents) {
    const GURL kRequestUrl("https://enterprise-block.example.net");
-@@ -352,94 +290,6 @@ std::unique_ptr<EnterpriseBlockPage> Cre
+@@ -349,94 +289,6 @@ std::unique_ptr<EnterpriseBlockPage> Cre
                                                          kRequestUrl));
  }
  
@@ -1176,7 +1130,7 @@
  #if BUILDFLAG(ENABLE_CAPTIVE_PORTAL_DETECTION)
  std::unique_ptr<CaptivePortalBlockingPage> CreateCaptivePortalBlockingPage(
      content::WebContents* web_contents) {
-@@ -546,12 +396,8 @@ void InterstitialHTMLSource::StartDataRe
+@@ -543,12 +395,8 @@ void InterstitialHTMLSource::StartDataRe
      interstitial_delegate = CreateMITMSoftwareBlockingPage(web_contents);
    } else if (path_without_query == "/blocked-interception") {
      interstitial_delegate = CreateBlockedInterceptionBlockingPage(web_contents);
@@ -1189,7 +1143,7 @@
    } else if (path_without_query == "/clock") {
      interstitial_delegate = CreateBadClockBlockingPage(web_contents);
    } else if (path_without_query == "/lookalike") {
-@@ -566,16 +412,12 @@ void InterstitialHTMLSource::StartDataRe
+@@ -563,16 +411,12 @@ void InterstitialHTMLSource::StartDataRe
      interstitial_delegate = CreateHttpsOnlyModePage(web_contents);
    }
  
@@ -1211,7 +1165,7 @@
      html = ui::ResourceBundle::GetSharedInstance().LoadDataResourceString(
 --- a/chrome/renderer/chrome_content_renderer_client.cc
 +++ b/chrome/renderer/chrome_content_renderer_client.cc
-@@ -100,7 +100,6 @@
+@@ -102,7 +102,6 @@
  #include "components/password_manager/core/common/password_manager_features.h"
  #include "components/permissions/features.h"
  #include "components/safe_browsing/buildflags.h"
@@ -1219,7 +1173,7 @@
  #include "components/spellcheck/spellcheck_buildflags.h"
  #include "components/subresource_filter/content/renderer/subresource_filter_agent.h"
  #include "components/subresource_filter/content/renderer/unverified_ruleset_dealer.h"
-@@ -440,12 +439,8 @@ void ChromeContentRendererClient::Render
+@@ -453,12 +452,8 @@ void ChromeContentRendererClient::Render
    subresource_filter_ruleset_dealer_ =
        std::make_unique<subresource_filter::UnverifiedRulesetDealer>();
  
@@ -1232,13 +1186,3 @@
  
    blink::WebScriptController::RegisterExtension(
        extensions_v8::LoadTimesExtension::Get());
---- a/components/security_interstitials/content/cert_report_helper.cc
-+++ b/components/security_interstitials/content/cert_report_helper.cc
-@@ -177,7 +177,6 @@ void CertReportHelper::FinishCertCollect
-     return;
-   }
- 
--  ssl_cert_reporter_->ReportInvalidCertificateChain(serialized_report);
- }
- 
- bool CertReportHelper::ShouldShowCertificateReporterCheckbox() {

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

@@ -1,25 +1,24 @@
 --- 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
+@@ -800,94 +800,6 @@ std::tuple<GURL, std::string> AutofillCr
  }
  
  bool AutofillCrowdsourcingManager::StartRequest(FormRequestData request_data) {
--  // REQUEST_UPLOADs take no IsolationInfo because Password Manager uploads when
+-  // kRequestUploads take no IsolationInfo because Password Manager uploads when
 -  // RenderFrameHostImpl::DidCommitNavigation() is called, in which case
 -  // AutofillDriver::IsolationInfo() may crash because there is no committing
 -  // NavigationRequest. Not setting an IsolationInfo is safe because no
 -  // 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 == AutofillCrowdsourcingManager::REQUEST_UPLOAD) ==
--      !request_data.isolation_info);
+-  DCHECK((request_data.request_type == RequestType::kRequestUpload) ==
+-         !request_data.isolation_info);
 -
 -  // Get the URL and method to use for this request.
 -  auto [request_url, method] = GetRequestURLAndMethod(request_data);
 -
 -  // 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 == AutofillCrowdsourcingManager::REQUEST_QUERY &&
+-  if (request_data.request_type == RequestType::kRequestQuery &&
 -      method == "GET") {
 -    base::UmaHistogramCounts100000(kUmaGetUrlLength,
 -                                   request_url.spec().length());
@@ -72,8 +71,8 @@
 -
 -  if (method == "POST") {
 -    static constexpr char content_type[] = "application/x-protobuf";
--    std::optional<std::string> payload = GetAPIBodyPayload(
--        std::move(request_data.payload), request_data.request_type);
+-    std::optional<std::string> payload =
+-        GetAPIBodyPayload(request_data.payload, request_data.request_type);
 -    if (!payload) {
 -      return false;
 -    }
@@ -92,7 +91,7 @@
 -      client_->GetURLLoaderFactory().get(),
 -      base::BindOnce(&AutofillCrowdsourcingManager::OnSimpleLoaderComplete,
 -                     base::Unretained(this), std::move(--url_loaders_.end()),
--                     std::move(request_data), AutofillTickClock::NowTicks()));
+-                     std::move(request_data), base::TimeTicks::Now()));
    return true;
  }
  

+ 3 - 3
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
-@@ -157,10 +157,10 @@ const unsigned kMinimumTTLSeconds = kCac
+@@ -151,10 +151,10 @@ const size_t kMaxHostLength = 4096;
  // cached.
  const int kIPv6ProbePeriodMs = 1000;
  
@@ -12,5 +12,5 @@
 -                                     0x00, 0x00, 0x88, 0x88};
 +                                     0x00, 0x00, 0x00, 0x01};
  
- // ICANN uses this localhost address to indicate a name collision.
- //
+ // True if |hostname| ends with either ".local" or ".local.".
+ bool ResemblesMulticastDNSName(base::StringPiece hostname) {

+ 2 - 2
patches/core/inox-patchset/0015-disable-update-pings.patch

@@ -1,9 +1,9 @@
 --- a/chrome/updater/configurator.cc
 +++ b/chrome/updater/configurator.cc
-@@ -96,7 +96,7 @@ base::TimeDelta Configurator::UpdateDela
- }
+@@ -106,7 +106,7 @@ base::TimeDelta Configurator::UpdateDela
  
  std::vector<GURL> Configurator::UpdateUrl() const {
+   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
 -  return external_constants_->UpdateURL();
 +  return std::vector<GURL>();
  }

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

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

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

@@ -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
-@@ -525,7 +525,7 @@ void WebRtcLogUploader::UploadCompressed
+@@ -523,7 +523,7 @@ void WebRtcLogUploader::UploadCompressed
            }
          })");
  
@@ -156,7 +156,7 @@ by default.
  
 --- a/chrome/browser/safe_browsing/download_protection/download_feedback.cc
 +++ b/chrome/browser/safe_browsing/download_protection/download_feedback.cc
-@@ -197,7 +197,7 @@ const int64_t DownloadFeedback::kMaxUplo
+@@ -192,7 +192,7 @@ const int64_t DownloadFeedback::kMaxUplo
  
  // static
  const char DownloadFeedback::kSbFeedbackURL[] =
@@ -416,7 +416,7 @@ by default.
    GURL url(base::WideToUTF16(args[0]));
 --- a/extensions/common/extension_urls.cc
 +++ b/extensions/common/extension_urls.cc
-@@ -27,10 +27,10 @@ bool IsSourceFromAnExtension(const std::
+@@ -29,10 +29,10 @@ bool IsSourceFromAnExtension(const std::
  
  namespace extension_urls {
  
@@ -634,7 +634,7 @@ by default.
  const char kFeedOAuth2Scope[] = "https://www.googleapis.com/auth/googlenow";
 --- a/google_apis/gaia/gaia_urls.cc
 +++ b/google_apis/gaia/gaia_urls.cc
-@@ -23,6 +23,7 @@
+@@ -24,6 +24,7 @@
  namespace {
  
  // Gaia service constants

+ 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
-@@ -302,7 +302,7 @@ SafeBrowsingUIManager* SafeBrowsingServi
+@@ -318,7 +318,7 @@ SafeBrowsingUIManager* SafeBrowsingServi
  }
  
  void SafeBrowsingService::RegisterAllDelayedAnalysis() {

+ 1 - 1
patches/core/iridium-browser/safe_browsing-disable-reporting-of-safebrowsing-over.patch

@@ -24,7 +24,7 @@ This prevents trk:148 (phishing) and trk:149 (malware).
    std::string request_data;
    request->SerializeToString(&request_data);
  
-@@ -327,6 +331,7 @@ void ClientSideDetectionService::StartCl
+@@ -322,6 +326,7 @@ void ClientSideDetectionService::StartCl
        base::BindOnce(&WebUIInfoSingleton::AddToClientPhishingRequestsSent,
                       base::Unretained(WebUIInfoSingleton::GetInstance()),
                       std::move(request), access_token));

+ 2 - 15
patches/core/ungoogled-chromium/block-requests.patch

@@ -18,7 +18,7 @@
    // Note: If there is an ongoing request, abandon it. It's possible that
 --- a/chrome/browser/new_tab_page/promos/promo_service.cc
 +++ b/chrome/browser/new_tab_page/promos/promo_service.cc
-@@ -171,6 +171,7 @@ PromoService::PromoService(
+@@ -170,6 +170,7 @@ PromoService::PromoService(
  PromoService::~PromoService() = default;
  
  void PromoService::Refresh() {
@@ -26,19 +26,6 @@
    std::string command_id;
    // Replace the promo URL with "command:<id>" if such a command ID is set
    // via the feature params.
---- a/chrome/browser/resources/discards/graph_doc_template.html
-+++ b/chrome/browser/resources/discards/graph_doc_template.html
-@@ -82,10 +82,6 @@ URL. As result, this document needs to b
-       }
- 
-     </style>
--  <script src="https://ajax.googleapis.com/ajax/libs/d3js/5.7.0/d3.min.js"
--      integrity="sha384-HL96dun1KbYEq6UT/ZlsspAODCyQ+Zp4z318ajUPBPSMzy5dvxl6ziwmnil8/Cpd"
--      crossorigin="anonymous">
--  </script>
-   <script type="application/javascript">
- ${javascript_file}
-   </script>
 --- a/chrome/browser/search/background/ntp_background_service.cc
 +++ b/chrome/browser/search/background/ntp_background_service.cc
 @@ -97,6 +97,7 @@ void NtpBackgroundService::Shutdown() {
@@ -93,7 +80,7 @@
    const std::vector<FacetURI>& GetRequestedFacetURIs() const override;
 --- a/components/update_client/update_checker.cc
 +++ b/components/update_client/update_checker.cc
-@@ -100,6 +100,7 @@ void UpdateCheckerImpl::CheckForUpdates(
+@@ -102,6 +102,7 @@ void UpdateCheckerImpl::CheckForUpdates(
      scoped_refptr<UpdateContext> context,
      const base::flat_map<std::string, std::string>& additional_attributes,
      UpdateCheckCallback update_check_callback) {

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

@@ -70,8 +70,8 @@
    // other origins, so we should not treat them as web safe. Remove callers of
 --- a/net/BUILD.gn
 +++ b/net/BUILD.gn
-@@ -979,6 +979,8 @@ component("net") {
-     "url_request/report_sender.h",
+@@ -974,6 +974,8 @@ component("net") {
+     "url_request/referrer_policy.h",
      "url_request/static_http_user_agent_settings.cc",
      "url_request/static_http_user_agent_settings.h",
 +    "url_request/trk_protocol_handler.cc",
@@ -173,7 +173,7 @@
      return NetLogURLRequestConstructorParams(url, priority_,
 --- a/net/url_request/url_request_context_builder.cc
 +++ b/net/url_request/url_request_context_builder.cc
-@@ -48,6 +48,7 @@
+@@ -47,6 +47,7 @@
  #include "net/socket/network_binding_client_socket_factory.h"
  #include "net/ssl/ssl_config_service_defaults.h"
  #include "net/url_request/static_http_user_agent_settings.h"
@@ -181,7 +181,7 @@
  #include "net/url_request/url_request_context.h"
  #include "net/url_request/url_request_job_factory.h"
  #include "net/url_request/url_request_throttler_manager.h"
-@@ -576,6 +577,9 @@ std::unique_ptr<URLRequestContext> URLRe
+@@ -567,6 +568,9 @@ std::unique_ptr<URLRequestContext> URLRe
    }
    protocol_handlers_.clear();
  
@@ -215,7 +215,7 @@
  COMPONENT_EXPORT(URL) extern const char kUuidInPackageScheme[];
 --- a/url/url_util.cc
 +++ b/url/url_util.cc
-@@ -77,6 +77,7 @@ struct SchemeRegistry {
+@@ -78,6 +78,7 @@ struct SchemeRegistry {
        kWssScheme,
        kDataScheme,
        kAboutScheme,
@@ -223,7 +223,7 @@
    };
  
    // Schemes that normal pages cannot link to or access (i.e., with the same
-@@ -91,6 +92,7 @@ struct SchemeRegistry {
+@@ -92,6 +93,7 @@ struct SchemeRegistry {
        kAboutScheme,
        kJavaScriptScheme,
        kDataScheme,

+ 3 - 3
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
-@@ -2567,7 +2567,8 @@ void ChromeContentBrowserClient::AppendE
+@@ -2482,7 +2482,8 @@ void ChromeContentBrowserClient::AppendE
      command_line->AppendSwitchASCII(switches::kMetricsClientID,
                                      client_info->client_id);
    }
@@ -34,10 +34,10 @@
  // Exported for testing.
  GWP_ASAN_EXPORT absl::optional<AllocatorSettings> GetAllocatorSettings(
 +    const base::Feature& a, bool b, const char* c) {
-+  return absl::nullopt;
++  return std::nullopt;
 +}
 +[[maybe_unused]]
-+absl::optional<AllocatorSettings> DeadGetAllocatorSettings(
++std::optional<AllocatorSettings> DeadGetAllocatorSettings(
      const base::Feature& feature,
      bool boost_sampling,
      const char* process_type) {

+ 55 - 36
patches/core/ungoogled-chromium/disable-google-host-detection.patch

@@ -14,9 +14,9 @@
    page_->OnSuggestRequestCreated(std::move(mojom_request));
 --- a/chrome/common/google_url_loader_throttle.cc
 +++ b/chrome/common/google_url_loader_throttle.cc
-@@ -21,10 +21,6 @@
+@@ -22,10 +22,6 @@
+ #include "services/network/public/mojom/url_response_head.mojom.h"
  #include "services/network/public/mojom/x_frame_options.mojom.h"
- #include "third_party/abseil-cpp/absl/types/optional.h"
  
 -#if BUILDFLAG(ENABLE_EXTENSIONS)
 -#include "extensions/common/extension_urls.h"
@@ -25,7 +25,7 @@
  #if BUILDFLAG(ENABLE_BOUND_SESSION_CREDENTIALS)
  #include "chrome/common/bound_session_request_throttled_handler.h"
  #include "components/signin/public/base/signin_switches.h"
-@@ -114,60 +110,6 @@ void GoogleURLLoaderThrottle::DetachFrom
+@@ -152,65 +148,6 @@ void GoogleURLLoaderThrottle::DetachFrom
  void GoogleURLLoaderThrottle::WillStartRequest(
      network::ResourceRequest* request,
      bool* defer) {
@@ -69,24 +69,29 @@
 -  is_main_frame_navigation_ =
 -      request->is_outermost_main_frame &&
 -      request->destination == network::mojom::RequestDestination::kDocument;
--  if (switches::IsBoundSessionCredentialsEnabled() && request->SendsCookies() &&
--      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_handler_->HandleRequestBlockedOnCookie(
--        base::BindOnce(
--            &GoogleURLLoaderThrottle::OnDeferRequestForBoundSessionCompleted,
--            weak_factory_.GetWeakPtr()));
+-  if (switches::IsBoundSessionCredentialsEnabled() && request->SendsCookies()) {
+-    RequestBoundSessionStatus status = GetRequestBoundSessionStatus(
+-        request->url, dynamic_params_->bound_session_throttler_params.get());
+-    if (IsCoveredRequestBoundSessionStatus(status)) {
+-      is_covered_by_bound_session_ = true;
+-    }
+-    if (status == RequestBoundSessionStatus::kCoveredWithMissingCookie) {
+-      CHECK(bound_session_request_throttled_handler_);
+-      *defer = true;
+-      is_deferred_for_bound_session_ = true;
+-      CHECK(!bound_session_request_throttled_start_time_.has_value());
+-      bound_session_request_throttled_start_time_ = base::TimeTicks::Now();
+-      bound_session_request_throttled_handler_->HandleRequestBlockedOnCookie(
+-          base::BindOnce(
+-              &GoogleURLLoaderThrottle::OnDeferRequestForBoundSessionCompleted,
+-              weak_factory_.GetWeakPtr()));
+-    }
 -  }
 -#endif
  }
  
  void GoogleURLLoaderThrottle::WillRedirectRequest(
-@@ -177,52 +119,6 @@ void GoogleURLLoaderThrottle::WillRedire
+@@ -220,90 +157,12 @@ void GoogleURLLoaderThrottle::WillRedire
      std::vector<std::string>* to_be_removed_headers,
      net::HttpRequestHeaders* modified_headers,
      net::HttpRequestHeaders* modified_cors_exempt_headers) {
@@ -122,30 +127,43 @@
 -  }
 -#endif
 -#if BUILDFLAG(ENABLE_BOUND_SESSION_CREDENTIALS)
--  if (switches::IsBoundSessionCredentialsEnabled() &&
--      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_handler_->HandleRequestBlockedOnCookie(
--        base::BindOnce(
--            &GoogleURLLoaderThrottle::OnDeferRequestForBoundSessionCompleted,
--            weak_factory_.GetWeakPtr()));
+-  if (switches::IsBoundSessionCredentialsEnabled()) {
+-    RequestBoundSessionStatus status = GetRequestBoundSessionStatus(
+-        redirect_info->new_url,
+-        dynamic_params_->bound_session_throttler_params.get());
+-    if (IsCoveredRequestBoundSessionStatus(status)) {
+-      is_covered_by_bound_session_ = true;
+-    }
+-    if (status == RequestBoundSessionStatus::kCoveredWithMissingCookie) {
+-      CHECK(bound_session_request_throttled_handler_);
+-      *defer = true;
+-      is_deferred_for_bound_session_ = true;
+-      CHECK(!bound_session_request_throttled_start_time_.has_value());
+-      bound_session_request_throttled_start_time_ = base::TimeTicks::Now();
+-      bound_session_request_throttled_handler_->HandleRequestBlockedOnCookie(
+-          base::BindOnce(
+-              &GoogleURLLoaderThrottle::OnDeferRequestForBoundSessionCompleted,
+-              weak_factory_.GetWeakPtr()));
+-    }
 -  }
 -#endif
  }
  
- #if BUILDFLAG(ENABLE_EXTENSIONS)
-@@ -230,23 +126,6 @@ void GoogleURLLoaderThrottle::WillProces
+ void GoogleURLLoaderThrottle::WillProcessResponse(
      const GURL& response_url,
      network::mojom::URLResponseHead* response_head,
      bool* defer) {
--  // Built-in additional protection for the chrome web store origin by ensuring
--  // that the X-Frame-Options protection mechanism is set to either DENY or
--  // SAMEORIGIN.
+-#if BUILDFLAG(ENABLE_BOUND_SESSION_CREDENTIALS)
+-  if (is_covered_by_bound_session_) {
+-    RecordBoundSessionStatusMetrics(is_deferred_for_bound_session_,
+-                                    is_main_frame_navigation_);
+-  }
+-#endif  // BUILDFLAG(ENABLE_BOUND_SESSION_CREDENTIALS)
+-
+-#if BUILDFLAG(ENABLE_EXTENSIONS)
+-  // Built-in additional protection for the chrome web store origin by
+-  // ensuring that the X-Frame-Options protection mechanism is set to either
+-  // DENY or SAMEORIGIN.
 -  if (response_url.SchemeIsHTTPOrHTTPS() &&
 -      extension_urls::IsWebstoreDomain(response_url)) {
 -    // TODO(mkwst): Consider shifting this to a NavigationThrottle rather than
@@ -160,9 +178,10 @@
 -          network::mojom::XFrameOptionsValue::kSameOrigin;
 -    }
 -  }
+-#endif  // BUILDFLAG(ENABLE_EXTENSIONS)
  }
- #endif
  
+ #if BUILDFLAG(ENABLE_BOUND_SESSION_CREDENTIALS)
 --- a/components/google/core/common/google_util.cc
 +++ b/components/google/core/common/google_util.cc
 @@ -31,110 +31,6 @@ namespace google_util {
@@ -513,13 +532,13 @@
 -
 -  return std::string(hostname_minus_registry.substr(
 -      0, hostname_minus_registry.length() - strlen(".google")));
-+  return absl::optional<std::string>();
++  return std::optional<std::string>();
  }
  
  bool IsGoogleHostname(const GURL& url) {
 --- a/components/search_engines/template_url.cc
 +++ b/components/search_engines/template_url.cc
-@@ -562,11 +562,7 @@ std::u16string TemplateURLRef::SearchTer
+@@ -586,11 +586,7 @@ std::u16string TemplateURLRef::SearchTer
  bool TemplateURLRef::HasGoogleBaseURLs(
      const SearchTermsData& search_terms_data) const {
    ParseIfNecessary(search_terms_data);

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

@@ -7,7 +7,7 @@
 
 --- a/chrome/BUILD.gn
 +++ b/chrome/BUILD.gn
-@@ -380,7 +380,6 @@ if (!is_android && !is_mac) {
+@@ -375,7 +375,6 @@ if (!is_android && !is_mac && !is_fuchsi
        }
  
        data_deps += [
@@ -15,7 +15,7 @@
          "//third_party/widevine/cdm",
        ]
        if (invoker.collect_inputs_only) {
-@@ -1247,7 +1246,6 @@ if (is_win) {
+@@ -1220,7 +1219,6 @@ if (is_win) {
        ":optimization_guide_library",
        ":swiftshader_library",
        ":widevine_cdm_library",

+ 1 - 1
patches/core/ungoogled-chromium/disable-network-time-tracker.patch

@@ -5,7 +5,7 @@
 
 --- a/components/network_time/network_time_tracker.cc
 +++ b/components/network_time/network_time_tracker.cc
-@@ -294,7 +294,7 @@ void NetworkTimeTracker::UpdateNetworkTi
+@@ -271,7 +271,7 @@ void NetworkTimeTracker::UpdateNetworkTi
  }
  
  bool NetworkTimeTracker::AreTimeFetchesEnabled() const {

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

@@ -18,8 +18,8 @@
 -      prefs::kPrivacySandboxApisEnabled, true,
 +      prefs::kPrivacySandboxApisEnabled, false,
        user_prefs::PrefRegistrySyncable::SYNCABLE_PREF);
-   registry->RegisterBooleanPref(prefs::kPrivacySandboxApisEnabledV2, false);
    registry->RegisterBooleanPref(prefs::kPrivacySandboxM1ConsentDecisionMade,
+                                 false);
 --- a/components/privacy_sandbox/privacy_sandbox_settings_impl.cc
 +++ b/components/privacy_sandbox/privacy_sandbox_settings_impl.cc
 @@ -121,7 +121,7 @@ std::set<browsing_topics::Topic> GetTopi
@@ -31,33 +31,7 @@
  }
  
  // static
-@@ -694,20 +694,7 @@ bool PrivacySandboxSettingsImpl::IsPriva
- }
- 
- bool PrivacySandboxSettingsImpl::IsPrivacySandboxEnabled() const {
--  PrivacySandboxSettingsImpl::Status status = GetPrivacySandboxAllowedStatus();
--  if (!IsAllowed(status)) {
--    return false;
--  }
--
--  // For Measurement and Relevance APIs, we explicitly do not require the
--  // underlying pref to be enabled if there is a local flag enabling the APIs to
--  // allow for local testing.
--  if (base::FeatureList::IsEnabled(
--          privacy_sandbox::kOverridePrivacySandboxSettingsLocalTesting)) {
--    return true;
--  }
--
--  return pref_service_->GetBoolean(prefs::kPrivacySandboxApisEnabledV2);
-+  return false;
- }
- 
- void PrivacySandboxSettingsImpl::SetAllPrivacySandboxAllowedForTesting() {
-@@ -721,11 +708,10 @@ void PrivacySandboxSettingsImpl::SetTopi
- }
- 
- void PrivacySandboxSettingsImpl::SetPrivacySandboxEnabled(bool enabled) {
--  pref_service_->SetBoolean(prefs::kPrivacySandboxApisEnabledV2, enabled);
+@@ -704,7 +704,7 @@ void PrivacySandboxSettingsImpl::SetTopi
  }
  
  bool PrivacySandboxSettingsImpl::IsPrivacySandboxRestricted() const {
@@ -66,7 +40,7 @@
  }
  
  bool PrivacySandboxSettingsImpl::IsPrivacySandboxCurrentlyUnrestricted() const {
-@@ -798,11 +784,7 @@ PrivacySandboxSettingsImpl::GetPrivacySa
+@@ -773,11 +773,7 @@ PrivacySandboxSettingsImpl::GetPrivacySa
      return Status::kIncognitoProfile;
    }
  

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

@@ -65,7 +65,7 @@
  }
  
  void WebRtcLogUploader::UploadStoredLog(
-@@ -303,50 +264,6 @@ void WebRtcLogUploader::LoggingStoppedDo
+@@ -303,48 +264,6 @@ void WebRtcLogUploader::LoggingStoppedDo
    DCHECK(log_buffer.get());
    DCHECK(!log_paths.directory.empty());
  
@@ -108,9 +108,7 @@
 -    base::FilePath meta_path =
 -        log_paths.directory.AppendASCII(log_id).AddExtension(
 -            FILE_PATH_LITERAL(".meta"));
--    base::WriteFile(meta_path,
--                    base::make_span(static_cast<const uint8_t*>(pickle.data()),
--                                    pickle.size()));
+-    base::WriteFile(meta_path, pickle);
 -  }
 -
    main_task_runner_->PostTask(
@@ -125,5 +123,5 @@
 -  registry->RegisterBooleanPref(prefs::kWebRtcTextLogCollectionAllowed, true);
 +  registry->RegisterBooleanPref(prefs::kWebRtcTextLogCollectionAllowed, false);
  
-   // Dictionaries to keep track of default tasks in the file browser.
-   registry->RegisterDictionaryPref(
+   // We need to register the type of these preferences in order to query
+   // them even though they're only typically controlled via policy.

+ 8 - 8
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
-@@ -676,12 +676,6 @@ std::vector<url::Origin> ChromeContentBr
+@@ -675,12 +675,6 @@ std::vector<url::Origin> ChromeContentBr
      GetOriginsRequiringDedicatedProcess() {
    std::vector<url::Origin> list;
  
@@ -78,7 +78,7 @@
  }  // namespace extensions
 --- a/extensions/browser/updater/extension_downloader.cc
 +++ b/extensions/browser/updater/extension_downloader.cc
-@@ -89,28 +89,19 @@ const char kNotFromWebstoreInstallSource
+@@ -91,28 +91,19 @@ const char kNotFromWebstoreInstallSource
  const char kDefaultInstallSource[] = "";
  const char kReinstallInstallSource[] = "reinstall";
  
@@ -109,16 +109,16 @@
  
  bool ShouldRetryRequest(const network::SimpleURLLoader* loader) {
    DCHECK(loader);
-@@ -166,7 +157,7 @@ std::optional<GURL> SanitizeUpdateURL(co
+@@ -168,7 +159,7 @@ std::optional<GURL> SanitizeUpdateURL(co
                                        const GURL& update_url) {
    if (update_url.is_empty()) {
      // Fill in default update URL.
 -    return extension_urls::GetWebstoreUpdateUrl();
-+    return absl::nullopt;
++    return std::nullopt;
    }
  
    // Skip extensions with non-empty invalid update URLs.
-@@ -184,11 +175,6 @@ std::optional<GURL> SanitizeUpdateURL(co
+@@ -186,11 +177,6 @@ std::optional<GURL> SanitizeUpdateURL(co
      return std::nullopt;
    }
  
@@ -130,7 +130,7 @@
  
    return update_url;
  }
-@@ -366,10 +352,6 @@ void ExtensionDownloader::DoStartAllPend
+@@ -368,10 +354,6 @@ void ExtensionDownloader::DoStartAllPend
      AddToFetches(fetches_preparing, std::move(task));
    pending_tasks_.clear();
  
@@ -141,7 +141,7 @@
  }
  
  void ExtensionDownloader::SetIdentityManager(
-@@ -830,20 +812,6 @@ void ExtensionDownloader::HandleManifest
+@@ -832,20 +814,6 @@ void ExtensionDownloader::HandleManifest
          update.second->info);
    }
  
@@ -162,7 +162,7 @@
    ExtensionIdSet extension_ids_with_errors;
    for (const auto& failure : failures)
      extension_ids_with_errors.insert(failure.first.id);
-@@ -1419,11 +1387,7 @@ bool ExtensionDownloader::IterateFetchCr
+@@ -1427,11 +1395,7 @@ bool ExtensionDownloader::IterateFetchCr
    // fetch.
    switch (fetch->credentials) {
      case ExtensionFetch::CREDENTIALS_NONE:

+ 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
-@@ -377,12 +377,7 @@ BASE_FEATURE(kDisruptiveNotificationPerm
+@@ -373,12 +373,7 @@ BASE_FEATURE(kDisruptiveNotificationPerm
  // Enable DNS over HTTPS (DoH).
  BASE_FEATURE(kDnsOverHttps,
               "DnsOverHttps",

+ 115 - 37
patches/core/ungoogled-chromium/fix-building-with-prunned-binaries.patch

@@ -3,7 +3,7 @@
 
 --- a/chrome/BUILD.gn
 +++ b/chrome/BUILD.gn
-@@ -942,8 +942,6 @@ if (is_win) {
+@@ -938,8 +938,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
-@@ -840,10 +840,6 @@ static_library("browser") {
+@@ -845,10 +845,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",
@@ -27,7 +27,7 @@
      "net/chrome_mojo_proxy_resolver_factory.cc",
 --- a/chrome/browser/navigation_predictor/navigation_predictor.cc
 +++ b/chrome/browser/navigation_predictor/navigation_predictor.cc
-@@ -16,8 +16,6 @@
+@@ -17,8 +17,6 @@
  #include "base/time/default_tick_clock.h"
  #include "chrome/browser/navigation_predictor/navigation_predictor_keyed_service.h"
  #include "chrome/browser/navigation_predictor/navigation_predictor_keyed_service_factory.h"
@@ -46,9 +46,9 @@
 -  return base::Milliseconds(timer_interval);
 -}
  
- bool IsTargetURLTheSameAsDocument(
-     const blink::mojom::AnchorElementMetricsPtr& anchor) {
-@@ -310,73 +303,6 @@ void NavigationPredictor::ProcessPointer
+ }  // namespace
+ 
+@@ -309,69 +302,6 @@ void NavigationPredictor::ProcessPointer
  }
  
  void NavigationPredictor::OnMLModelExecutionTimerFired() {
@@ -78,26 +78,23 @@
 -  AnchorElementData& anchor = it->second;
 -
 -  PreloadingModelKeyedService::Inputs inputs;
--  inputs.contains_image = anchor.metrics->contains_image;
--  inputs.font_size = GetFontSizeFromPx(anchor.metrics->font_size_px);
--  inputs.has_text_sibling = anchor.metrics->has_text_sibling;
--  inputs.is_bold = IsBoldFont(anchor.metrics->font_weight);
--  inputs.is_in_iframe = anchor.metrics->is_in_iframe;
--  inputs.is_url_incremented_by_one = anchor.metrics->is_url_incremented_by_one;
+-  inputs.contains_image = anchor.contains_image;
+-  inputs.font_size = anchor.font_size;
+-  inputs.has_text_sibling = anchor.has_text_sibling;
+-  inputs.is_bold = anchor.is_bold_font;
+-  inputs.is_in_iframe = anchor.is_in_iframe;
+-  inputs.is_url_incremented_by_one = anchor.is_url_incremented_by_one;
 -  inputs.navigation_start_to_link_logged =
 -      anchor.first_report_timestamp - navigation_start_;
--  auto path_info = GetUrlPathLengthDepthAndHash(anchor.metrics->target_url);
+-  auto path_info = GetUrlPathLengthDepthAndHash(anchor.target_url);
 -  inputs.path_length = path_info.path_length;
 -  inputs.path_depth = path_info.path_depth;
--  // Convert the ratio area and ratio distance from [0,1] to [0,100].
--  inputs.percent_clickable_area =
--      static_cast<int>(anchor.metrics->ratio_area * 100);
--
+-  inputs.percent_clickable_area = anchor.ratio_area;
 -  inputs.percent_vertical_distance =
--      static_cast<int>(anchor.metrics->ratio_distance_root_top * 100);
+-      static_cast<int>(anchor.ratio_distance_root_top * 100);
 -
--  inputs.is_same_origin = anchor.metrics->is_same_host;
--  auto to_timedelta = [this](absl::optional<base::TimeTicks> ts) {
+-  inputs.is_same_origin = anchor.is_same_host;
+-  auto to_timedelta = [this](std::optional<base::TimeTicks> ts) {
 -    return ts.has_value() ? NowTicks() - ts.value() : base::TimeDelta();
 -  };
 -  inputs.entered_viewport_to_left_viewport =
@@ -110,8 +107,7 @@
 -  model_service->Score(
 -      &scoring_model_task_tracker_, inputs,
 -      base::BindOnce(&NavigationPredictor::OnPreloadingHeuristicsModelDone,
--                     weak_ptr_factory_.GetWeakPtr(),
--                     anchor.metrics->target_url));
+-                     weak_ptr_factory_.GetWeakPtr(), anchor.target_url));
 -
 -  if (!ml_model_execution_timer_.IsRunning()) {
 -    ml_model_execution_timer_.Start(
@@ -122,9 +118,76 @@
  }
  
  void NavigationPredictor::SetModelScoreCallbackForTesting(
+--- a/chrome/browser/optimization_guide/model_validator_keyed_service.cc
++++ b/chrome/browser/optimization_guide/model_validator_keyed_service.cc
+@@ -33,39 +33,6 @@ namespace optimization_guide {
+ 
+ ModelValidatorKeyedService::ModelValidatorKeyedService(Profile* profile)
+     : profile_(profile) {
+-  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+-  DCHECK(ShouldStartModelValidator());
+-  auto* opt_guide_service =
+-      OptimizationGuideKeyedServiceFactory::GetForProfile(profile);
+-  if (!opt_guide_service) {
+-    return;
+-  }
+-#if BUILDFLAG(BUILD_WITH_TFLITE_LIB)
+-  if (switches::ShouldValidateModel()) {
+-    // Create the validator object which will get destroyed when the model
+-    // load is complete.
+-    new ModelValidatorHandler(
+-        opt_guide_service,
+-        base::ThreadPool::CreateSequencedTaskRunner(
+-            {base::MayBlock(), base::TaskPriority::BEST_EFFORT}));
+-  }
+-#endif  // BUILD_WITH_TFLITE_LIB
+-  if (switches::ShouldValidateModelExecution()) {
+-    auto* identity_manager = IdentityManagerFactory::GetForProfile(profile_);
+-    if (!identity_manager) {
+-      return;
+-    }
+-    if (!identity_manager->HasPrimaryAccount(signin::ConsentLevel::kSignin)) {
+-      identity_manager_observation_.Observe(identity_manager);
+-      return;
+-    }
+-    base::SequencedTaskRunner::GetCurrentDefault()->PostDelayedTask(
+-        FROM_HERE,
+-        base::BindOnce(
+-            &ModelValidatorKeyedService::StartModelExecutionValidation,
+-            weak_ptr_factory_.GetWeakPtr()),
+-        kModelExecutionValidationStartupDelay);
+-  }
+ }
+ 
+ ModelValidatorKeyedService::~ModelValidatorKeyedService() = default;
+@@ -92,24 +59,6 @@ void ModelValidatorKeyedService::OnPrima
+ }
+ 
+ void ModelValidatorKeyedService::StartModelExecutionValidation() {
+-  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+-  auto* opt_guide_service =
+-      OptimizationGuideKeyedServiceFactory::GetForProfile(profile_);
+-  if (!opt_guide_service) {
+-    return;
+-  }
+-  base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
+-  std::string model_execution_input =
+-      command_line->GetSwitchValueASCII(switches::kModelExecutionValidate);
+-  if (model_execution_input.empty()) {
+-    return;
+-  }
+-  proto::StringValue request;
+-  request.set_value(model_execution_input);
+-  opt_guide_service->ExecuteModel(
+-      proto::ModelExecutionFeature::MODEL_EXECUTION_FEATURE_TEST, request,
+-      base::BindOnce(&ModelValidatorKeyedService::OnModelExecuteResponse,
+-                     weak_ptr_factory_.GetWeakPtr()));
+ }
+ 
+ void ModelValidatorKeyedService::OnModelExecuteResponse(
 --- a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc
 +++ b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc
-@@ -91,7 +91,6 @@
+@@ -92,7 +92,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,17 +195,17 @@
  #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"
-@@ -910,7 +909,6 @@ void ChromeBrowserMainExtraPartsProfiles
+@@ -917,7 +916,6 @@ void ChromeBrowserMainExtraPartsProfiles
  #endif
    ModelTypeStoreServiceFactory::GetInstance();
    NavigationPredictorKeyedServiceFactory::GetInstance();
 -  PreloadingModelKeyedServiceFactory::GetInstance();
  #if BUILDFLAG(IS_CHROMEOS_ASH)
    NearbySharingServiceFactory::GetInstance();
- #endif
+   if (base::FeatureList::IsEnabled(ash::features::kNearbyPresence)) {
 --- a/chrome/browser/profiles/profile_manager.cc
 +++ b/chrome/browser/profiles/profile_manager.cc
-@@ -47,7 +47,6 @@
+@@ -48,7 +48,6 @@
  #include "chrome/browser/extensions/chrome_content_browser_client_extensions_part.h"
  #include "chrome/browser/lifetime/application_lifetime.h"
  #include "chrome/browser/navigation_predictor/navigation_predictor_keyed_service_factory.h"
@@ -150,7 +213,7 @@
  #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"
-@@ -1565,9 +1564,6 @@ void ProfileManager::DoFinalInitForServi
+@@ -1566,9 +1565,6 @@ void ProfileManager::DoFinalInitForServi
    }
  #endif  // !BUILDFLAG(IS_ANDROID)
  
@@ -170,7 +233,7 @@
  #include "components/omnibox/browser/omnibox_field_trial.h"
  #include "components/search_engines/template_url.h"
  #include "content/public/browser/web_ui.h"
-@@ -500,32 +499,12 @@ void OmniboxPageHandler::StartOmniboxQue
+@@ -500,31 +499,12 @@ void OmniboxPageHandler::StartOmniboxQue
  }
  
  void OmniboxPageHandler::GetMlModelVersion(GetMlModelVersionCallback callback) {
@@ -194,28 +257,43 @@
 -    AutocompleteMatch::ScoringSignals signals =
 -        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]).value_or(-1)
--                                          : -1);
+-        service->BatchScoreAutocompleteUrlMatchesSync({&signals});
+-    std::move(callback).Run(result.size() ? result[0].value_or(-1) : -1);
 -  } else {
      std::move(callback).Run(-1);
 -  }
  }
  
  std::unique_ptr<AutocompleteController> OmniboxPageHandler::CreateController(
-@@ -550,8 +529,5 @@ OmniboxPageHandler::GetAutocompleteContr
+@@ -549,8 +529,5 @@ OmniboxPageHandler::GetAutocompleteContr
  }
  
  AutocompleteScoringModelService* OmniboxPageHandler::GetMlService() {
--  return OmniboxFieldTrial::IsMlSyncBatchUrlScoringEnabled()
+-  return OmniboxFieldTrial::IsMlUrlScoringEnabled()
 -             ? AutocompleteScoringModelServiceFactory::GetInstance()
 -                   ->GetForProfile(profile_)
 -             : nullptr;
 +  return nullptr;
  }
+--- a/chrome/test/BUILD.gn
++++ b/chrome/test/BUILD.gn
+@@ -3114,13 +3114,6 @@ if (!is_android && !is_fuchsia) {
+         "//pdf/loader",
+       ]
+ 
+-      if (is_linux) {
+-        # Add a data dependency for pdf_extension_accessibility_test.cc to
+-        # notify testing builders that this test needs this library, which will
+-        # need to be downloaded from CIPD as defined in //DEPS.
+-        data_deps += [ "//third_party/screen-ai:screen_ai_linux" ]
+-      }
+-
+       if (enable_printing) {
+         sources += [ "../browser/pdf/pdf_extension_printing_test.cc" ]
+ 
 --- a/chrome/test/chromedriver/BUILD.gn
 +++ b/chrome/test/chromedriver/BUILD.gn
-@@ -399,7 +399,7 @@ source_set("lib") {
+@@ -397,7 +397,7 @@ source_set("lib") {
    }
  }
  
@@ -236,7 +314,7 @@
  python_library("fixtures") {
 --- a/components/omnibox/browser/autocomplete_classifier.cc
 +++ b/components/omnibox/browser/autocomplete_classifier.cc
-@@ -95,8 +95,6 @@ void AutocompleteClassifier::Classify(
+@@ -97,8 +97,6 @@ void AutocompleteClassifier::Classify(
      metrics::OmniboxEventProto::PageClassification page_classification,
      AutocompleteMatch* match,
      GURL* alternate_nav_url) {
@@ -247,7 +325,7 @@
    AutocompleteInput input(text, page_classification, *scheme_classifier_);
 --- a/components/omnibox/browser/autocomplete_controller.cc
 +++ b/components/omnibox/browser/autocomplete_controller.cc
-@@ -45,7 +45,6 @@
+@@ -43,7 +43,6 @@
  #include "components/omnibox/browser/autocomplete_input.h"
  #include "components/omnibox/browser/autocomplete_match_type.h"
  #include "components/omnibox/browser/autocomplete_provider.h"
@@ -257,7 +335,7 @@
  #include "components/omnibox/browser/bookmark_scoring_signals_annotator.h"
 --- a/components/update_client/BUILD.gn
 +++ b/components/update_client/BUILD.gn
-@@ -326,8 +326,6 @@ source_set("unit_tests") {
+@@ -312,8 +312,6 @@ source_set("unit_tests") {
      "//third_party/puffin:libpuffpatch",
      "//third_party/re2",
    ]

File diff suppressed because it is too large
+ 346 - 265
patches/core/ungoogled-chromium/fix-building-without-safebrowsing.patch


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


+ 1 - 1
patches/core/ungoogled-chromium/replace-google-search-engine-with-nosearch.patch

@@ -1,6 +1,6 @@
 --- a/components/search_engines/prepopulated_engines.json
 +++ b/components/search_engines/prepopulated_engines.json
-@@ -125,27 +125,11 @@
+@@ -126,27 +126,11 @@
      },
  
      "google": {

+ 2 - 2
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
-@@ -166,6 +166,7 @@
+@@ -168,6 +168,7 @@
  #include "components/spellcheck/spellcheck_buildflags.h"
  #include "components/strings/grit/components_strings.h"
  #include "components/supervised_user/core/common/buildflags.h"
@@ -9,7 +9,7 @@
  #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"
-@@ -2102,6 +2103,7 @@ void RenderViewContextMenu::AppendPageIt
+@@ -2161,6 +2162,7 @@ void RenderViewContextMenu::AppendPageIt
      menu_model_.AddSeparator(ui::NORMAL_SEPARATOR);
  
    if (CanTranslate(/*menu_logging=*/true)) {

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

@@ -9,7 +9,7 @@
 
 --- a/chrome/browser/BUILD.gn
 +++ b/chrome/browser/BUILD.gn
-@@ -2546,6 +2546,7 @@ static_library("browser") {
+@@ -2541,6 +2541,7 @@ static_library("browser") {
      "//third_party/libyuv",
      "//third_party/metrics_proto",
      "//third_party/re2",
@@ -19,14 +19,14 @@
      "//third_party/widevine/cdm:headers",
 --- a/chrome/browser/about_flags.cc
 +++ b/chrome/browser/about_flags.cc
-@@ -167,6 +167,7 @@
+@@ -168,6 +168,7 @@
  #include "components/translate/core/common/translate_util.h"
  #include "components/trusted_vault/features.h"
  #include "components/ui_devtools/switches.h"
 +#include "components/ungoogled/ungoogled_switches.h"
  #include "components/variations/variations_switches.h"
+ #include "components/version_info/channel.h"
  #include "components/version_info/version_info.h"
- #include "components/viz/common/features.h"
 --- a/chrome/browser/bromite_flag_entries.h
 +++ b/chrome/browser/bromite_flag_entries.h
 @@ -4,4 +4,12 @@
@@ -62,7 +62,7 @@
  #include "components/viz/common/switches.h"
  #include "components/viz/host/gpu_client.h"
  #include "content/browser/bad_message.h"
-@@ -3417,6 +3418,8 @@ void RenderProcessHostImpl::PropagateBro
+@@ -3457,6 +3458,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
-@@ -105,6 +105,7 @@ target(link_target_type, "child") {
+@@ -106,6 +106,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
-@@ -39,6 +39,7 @@
+@@ -40,6 +40,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"
-@@ -478,6 +479,10 @@ void SetRuntimeFeaturesFromCommandLine(c
+@@ -509,6 +510,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"
-@@ -947,6 +948,14 @@ Range* Document::CreateRangeAdjustedToTr
+@@ -954,6 +955,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>();
-@@ -2322,6 +2331,15 @@ void Document::UpdateStyleAndLayoutTreeF
+@@ -2357,6 +2366,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
-@@ -525,6 +525,10 @@ class CORE_EXPORT Document : public Cont
+@@ -529,6 +529,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;
-@@ -2457,6 +2461,9 @@ class CORE_EXPORT Document : public Cont
+@@ -2462,6 +2466,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
-@@ -2162,6 +2162,11 @@ DOMRectList* Element::getClientRects() {
+@@ -2409,6 +2409,11 @@ DOMRectList* Element::getClientRects() {
    DCHECK(element_layout_object);
    GetDocument().AdjustQuadsForScrollAndAbsoluteZoom(quads,
                                                      *element_layout_object);
@@ -192,7 +192,7 @@
    return MakeGarbageCollected<DOMRectList>(quads);
  }
  
-@@ -2189,6 +2194,9 @@ gfx::RectF Element::GetBoundingClientRec
+@@ -2436,6 +2441,9 @@ gfx::RectF Element::GetBoundingClientRec
    DCHECK(element_layout_object);
    GetDocument().AdjustRectForScrollAndAbsoluteZoom(result,
                                                     *element_layout_object);
@@ -204,7 +204,7 @@
  
 --- a/third_party/blink/renderer/core/dom/range.cc
 +++ b/third_party/blink/renderer/core/dom/range.cc
-@@ -1618,11 +1618,21 @@ DOMRectList* Range::getClientRects() con
+@@ -1622,6 +1622,12 @@ DOMRectList* Range::getClientRects() con
    Vector<gfx::QuadF> quads;
    GetBorderAndTextQuads(quads);
  
@@ -217,7 +217,10 @@
    return MakeGarbageCollected<DOMRectList>(quads);
  }
  
- DOMRect* Range::getBoundingClientRect() const {
+@@ -1629,7 +1635,11 @@ DOMRect* Range::getBoundingClientRect()
+   // TODO(crbug.com/1499981): This should be removed once synchronized scrolling
+   // impact is understood.
+   SyncScrollAttemptHeuristic::DidAccessScrollOffset();
 -  return DOMRect::FromRectF(BoundingRect());
 +  auto rect = BoundingRect();
 +  if (RuntimeEnabledFeatures::FingerprintingClientRectsNoiseEnabled()) {
@@ -267,7 +270,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
-@@ -61,6 +61,9 @@
+@@ -69,6 +69,9 @@
  #include "ui/gfx/geometry/quad_f.h"
  #include "ui/gfx/geometry/skia_conversions.h"
  
@@ -277,14 +280,15 @@
  namespace blink {
  
  BASE_FEATURE(kDisableCanvasOverdrawOptimization,
-@@ -2885,9 +2888,22 @@ TextMetrics* BaseRenderingContext2D::mea
- 
-   TextDirection direction = ToTextDirection(GetState().GetDirection(), canvas);
+@@ -3031,8 +3034,22 @@ TextMetrics* BaseRenderingContext2D::mea
+   const CanvasRenderingContext2DState& state = GetState();
+   TextDirection direction = ToTextDirection(state.GetDirection(), canvas);
  
--  return MakeGarbageCollected<TextMetrics>(font, direction,
+-  return MakeGarbageCollected<TextMetrics>(
+-      font, direction, state.GetTextBaseline(), state.GetTextAlign(), text);
 +  TextMetrics* text_metrics = MakeGarbageCollected<TextMetrics>(font, direction,
-                                            GetState().GetTextBaseline(),
-                                            GetState().GetTextAlign(), text);
++                                           GetState().GetTextBaseline(),
++                                           GetState().GetTextAlign(), text);
 +
 +  // Scale text metrics if enabled
 +  if (RuntimeEnabledFeatures::FingerprintingCanvasMeasureTextNoiseEnabled()) {
@@ -303,7 +307,7 @@
  void BaseRenderingContext2D::SnapshotStateForFilter() {
 --- a/third_party/blink/renderer/platform/BUILD.gn
 +++ b/third_party/blink/renderer/platform/BUILD.gn
-@@ -1704,6 +1704,7 @@ component("platform") {
+@@ -1705,6 +1705,7 @@ component("platform") {
      "//cc/mojo_embedder",
      "//components/paint_preview/common",
      "//components/search_engines:search_engine_utils",
@@ -328,8 +332,8 @@
  }  // namespace blink
 --- a/third_party/blink/renderer/platform/runtime_enabled_features.json5
 +++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5
-@@ -1816,6 +1816,12 @@
-       origin_trial_feature_name: "Focusgroup",
+@@ -1792,6 +1792,12 @@
+       status: "experimental",
      },
      {
 +      name: "FingerprintingClientRectsNoise",
@@ -338,6 +342,6 @@
 +      name: "FingerprintingCanvasMeasureTextNoise",
 +    },
 +    {
-       name: "FocuslessSpatialNavigation",
+       name: "Fledge",
        base_feature: "none",
-       settable_from_internals: true,
+       origin_trial_feature_name: "PrivacySandboxAdsAPIs",

+ 9 - 9
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
-@@ -3420,6 +3420,7 @@ void RenderProcessHostImpl::PropagateBro
+@@ -3460,6 +3460,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
-@@ -483,6 +483,8 @@ void SetRuntimeFeaturesFromCommandLine(c
+@@ -514,6 +514,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
-@@ -52,6 +52,7 @@
- #include "third_party/blink/renderer/platform/graphics/graphics_types.h"
+@@ -60,6 +60,7 @@
  #include "third_party/blink/renderer/platform/graphics/image_data_buffer.h"
+ #include "third_party/blink/renderer/platform/graphics/memory_managed_paint_recorder.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"
-@@ -2232,6 +2233,9 @@ ImageData* BaseRenderingContext2D::getIm
+@@ -2360,6 +2361,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
-@@ -1659,7 +1659,9 @@ component("platform") {
+@@ -1658,7 +1658,9 @@ component("platform") {
      "//third_party/blink/renderer:non_test_config",
    ]
  
@@ -322,13 +322,13 @@ 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
-@@ -1822,6 +1822,9 @@
+@@ -1798,6 +1798,9 @@
        name: "FingerprintingCanvasMeasureTextNoise",
      },
      {
 +      name: "FingerprintingCanvasImageDataNoise",
 +    },
 +    {
-       name: "FocuslessSpatialNavigation",
+       name: "Fledge",
        base_feature: "none",
-       settable_from_internals: true,
+       origin_trial_feature_name: "PrivacySandboxAdsAPIs",

+ 10 - 10
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
-@@ -2265,6 +2265,7 @@ static_library("browser") {
+@@ -2259,6 +2259,7 @@ static_library("browser") {
      "//components/net_log",
      "//components/network_hints/common:mojo_bindings",
      "//components/network_session_configurator/browser",
@@ -63,7 +63,7 @@ with limited CPU/memory resources and it is disabled by default.
  #include "base/synchronization/waitable_event.h"
  #include "base/task/sequenced_task_runner.h"
  #include "base/task/single_thread_task_runner.h"
-@@ -103,6 +105,7 @@
+@@ -104,6 +106,7 @@
  #include "components/metrics/metrics_service.h"
  #include "components/metrics_services_manager/metrics_services_manager.h"
  #include "components/metrics_services_manager/metrics_services_manager_client.h"
@@ -71,7 +71,7 @@ with limited CPU/memory resources and it is disabled by default.
  #include "components/network_time/network_time_tracker.h"
  #include "components/os_crypt/async/browser/os_crypt_async.h"
  #include "components/permissions/permissions_client.h"
-@@ -134,6 +137,7 @@
+@@ -135,6 +138,7 @@
  #include "media/media_buildflags.h"
  #include "mojo/public/cpp/bindings/pending_receiver.h"
  #include "net/log/net_log.h"
@@ -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"
-@@ -371,6 +375,18 @@ void BrowserProcessImpl::Init() {
+@@ -370,6 +374,18 @@ void BrowserProcessImpl::Init() {
    pref_change_registrar_.Add(metrics::prefs::kMetricsReportingEnabled,
                               base::BindRepeating(&ApplyMetricsReportingPolicy));
  
@@ -100,9 +100,9 @@ with limited CPU/memory resources and it is disabled by default.
  
 --- a/chrome/browser/flag_descriptions.cc
 +++ b/chrome/browser/flag_descriptions.cc
-@@ -2299,6 +2299,10 @@ const char kUnthrottledNestedTimeoutDesc
-     "websites abusing the API will still eventually have their setTimeouts "
-     "clamped.";
+@@ -2278,6 +2278,10 @@ const char kUndoAutofillDescription[] =
+     "Allows reverting Autofill filling operations. Replaces Clear Form "
+     "functionality";
  
 +const char kMaxConnectionsPerHostName[] = "Maximum connections per host";
 +const char kMaxConnectionsPerHostDescription[] =
@@ -113,9 +113,9 @@ 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
-@@ -1298,6 +1298,9 @@ extern const char kUndoAutofillDescripti
- extern const char kUnthrottledNestedTimeoutName[];
- extern const char kUnthrottledNestedTimeoutDescription[];
+@@ -1287,6 +1287,9 @@ extern const char kLogJsConsoleMessagesD
+ extern const char kUndoAutofillName[];
+ extern const char kUndoAutofillDescription[];
  
 +extern const char kMaxConnectionsPerHostName[];
 +extern const char kMaxConnectionsPerHostDescription[];

+ 9 - 9
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
-@@ -1541,7 +1541,7 @@ void ChromeContentBrowserClient::Registe
+@@ -1466,7 +1466,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
-@@ -359,7 +359,7 @@ void ProfileNetworkContextService::Updat
+@@ -378,7 +378,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
-@@ -314,7 +314,7 @@ const char Profile::kProfileKey[] = "__P
+@@ -308,7 +308,7 @@ const char Profile::kProfileKey[] = "__P
  void Profile::RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) {
    registry->RegisterBooleanPref(
        prefs::kSearchSuggestEnabled,
@@ -78,7 +78,7 @@
    registry->RegisterBooleanPref(prefs::kCloudPrintProxyEnabled, true);
 --- a/components/autofill/core/common/autofill_prefs.cc
 +++ b/components/autofill/core/common/autofill_prefs.cc
-@@ -144,7 +144,7 @@ const char kAutofillUsingVirtualViewStru
+@@ -39,7 +39,7 @@ int GetSyncTransportOptInBitFieldForAcco
  void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) {
    // Synced prefs. Used for cross-device choices, e.g., credit card Autofill.
    registry->RegisterBooleanPref(
@@ -87,7 +87,7 @@
        user_prefs::PrefRegistrySyncable::SYNCABLE_PREF);
    registry->RegisterIntegerPref(
        prefs::kAutofillLastVersionDeduped, 0,
-@@ -153,7 +153,7 @@ void RegisterProfilePrefs(user_prefs::Pr
+@@ -48,7 +48,7 @@ void RegisterProfilePrefs(user_prefs::Pr
        prefs::kAutofillHasSeenIban, false,
        user_prefs::PrefRegistrySyncable::SYNCABLE_PREF);
    registry->RegisterBooleanPref(
@@ -98,7 +98,7 @@
        prefs::kAutofillPaymentCvcStorage, true,
 --- a/components/bookmarks/browser/bookmark_utils.cc
 +++ b/components/bookmarks/browser/bookmark_utils.cc
-@@ -480,7 +480,7 @@ bool DoesBookmarkContainWords(const std:
+@@ -487,7 +487,7 @@ bool DoesBookmarkContainWords(const std:
  
  void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) {
    registry->RegisterBooleanPref(
@@ -109,7 +109,7 @@
    registry->RegisterBooleanPref(
 --- a/components/content_settings/core/browser/cookie_settings.cc
 +++ b/components/content_settings/core/browser/cookie_settings.cc
-@@ -86,7 +86,7 @@ void CookieSettings::RegisterProfilePref
+@@ -84,7 +84,7 @@ void CookieSettings::RegisterProfilePref
      user_prefs::PrefRegistrySyncable* registry) {
    registry->RegisterIntegerPref(
        prefs::kCookieControlsMode,
@@ -120,7 +120,7 @@
  
 --- a/components/password_manager/core/browser/password_manager.cc
 +++ b/components/password_manager/core/browser/password_manager.cc
-@@ -253,14 +253,14 @@ base::CallbackListSubscription AddSyncEn
+@@ -256,14 +256,14 @@ base::CallbackListSubscription AddSyncEn
  void PasswordManager::RegisterProfilePrefs(
      user_prefs::PrefRegistrySyncable* registry) {
    registry->RegisterBooleanPref(
@@ -139,7 +139,7 @@
                                 PrefRegistry::NO_REGISTRATION_FLAGS);
 --- a/components/payments/core/payment_prefs.cc
 +++ b/components/payments/core/payment_prefs.cc
-@@ -16,7 +16,7 @@ const char kCanMakePaymentEnabled[] = "p
+@@ -11,7 +11,7 @@ namespace payments {
  void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) {
    registry->RegisterBooleanPref(kPaymentsFirstTransactionCompleted, false);
    registry->RegisterBooleanPref(

+ 1 - 1
patches/extra/iridium-browser/Remove-EV-certificates.patch

@@ -11,7 +11,7 @@ Instead, let them appear just like regular ones.
 --- a/net/cert/ev_root_ca_metadata.cc
 +++ b/net/cert/ev_root_ca_metadata.cc
 @@ -36,7 +36,17 @@ struct EVMetadata {
-   const base::StringPiece policy_oids[kMaxOIDsPerCA];
+   const std::string_view policy_oids[kMaxOIDsPerCA];
  };
  
 -#include "net/data/ssl/chrome_root_store/chrome-ev-roots-inc.cc"

+ 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
-@@ -1635,11 +1635,6 @@ int ChromeBrowserMainParts::PreMainMessa
+@@ -1638,11 +1638,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
-@@ -255,7 +255,7 @@ bool GetTLSServerEndPointChannelBinding(
+@@ -286,7 +286,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
-@@ -272,7 +272,7 @@ void DownloadPrefs::RegisterProfilePrefs
+@@ -273,7 +273,7 @@ void DownloadPrefs::RegisterProfilePrefs
      user_prefs::PrefRegistrySyncable* registry) {
    registry->RegisterBooleanPref(
        prefs::kPromptForDownload,

+ 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
-@@ -931,7 +931,7 @@ class AppControllerNativeThemeObserver :
+@@ -974,7 +974,7 @@ class AppControllerNativeThemeObserver :
    CFStringRef checkInterval = CFSTR("checkInterval");
    CFPropertyListRef plist = CFPreferencesCopyAppValue(checkInterval, app);
    if (!plist) {

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

@@ -1,15 +1,15 @@
 --- a/chrome/browser/ui/browser.cc
 +++ b/chrome/browser/ui/browser.cc
-@@ -137,6 +137,8 @@
- #include "chrome/browser/ui/tabs/tab_strip_model.h"
+@@ -139,6 +139,8 @@
  #include "chrome/browser/ui/tabs/tab_utils.h"
  #include "chrome/browser/ui/ui_features.h"
+ #include "chrome/browser/ui/unload_controller.h"
 +#include "chrome/browser/ui/views/frame/browser_view.h"
 +#include "chrome/browser/ui/views/message_box_dialog.h"
  #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"
-@@ -473,6 +475,7 @@ Browser::Browser(const CreateParams& par
+@@ -474,6 +476,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),
@@ -25,7 +25,7 @@
      return WarnBeforeClosingResult::kOkToClose;
  
    DCHECK(!warn_before_closing_callback_)
-@@ -895,6 +899,7 @@ bool Browser::TryToCloseWindow(
+@@ -897,6 +901,7 @@ bool Browser::TryToCloseWindow(
  
  void Browser::ResetTryToCloseWindow() {
    cancel_download_confirmation_state_ = NOT_PROMPTED;
@@ -33,7 +33,7 @@
    unload_controller_.ResetTryToCloseWindow();
  }
  
-@@ -2895,6 +2900,62 @@ bool Browser::CanCloseWithInProgressDown
+@@ -2904,6 +2909,62 @@ bool Browser::CanCloseWithInProgressDown
    return false;
  }
  
@@ -53,7 +53,7 @@
 +
 +  // Figure out how many windows are open total
 +  int total_window_count = 0;
-+  for (auto* browser : *BrowserList::GetInstance()) {
++  for (Browser* browser : *BrowserList::GetInstance()) {
 +    // Don't count this browser window or any other in the process of closing.
 +    // Window closing may be delayed, and windows that are in the process of
 +    // closing don't count against our totals.
@@ -96,7 +96,7 @@
  void Browser::InProgressDownloadResponse(bool cancel_downloads) {
    if (cancel_downloads) {
      cancel_download_confirmation_state_ = RESPONSE_RECEIVED;
-@@ -2913,6 +2974,22 @@ void Browser::InProgressDownloadResponse
+@@ -2922,6 +2983,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"
-@@ -1100,12 +1101,17 @@ class Browser : public TabStripModelObse
+@@ -1128,12 +1129,17 @@ class Browser : public TabStripModelObse
    // Returns true if the window can close, false otherwise.
    bool CanCloseWithInProgressDownloads();
  
@@ -146,8 +146,8 @@
 +
    // 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().
-@@ -1276,6 +1282,8 @@ class Browser : public TabStripModelObse
+   // Used as a WarnBeforeClosingCallback by HandleBeforeClose().
+@@ -1301,6 +1307,8 @@ class Browser : public TabStripModelObse
    // when the browser is closed with in-progress downloads.
    CancelDownloadConfirmationState cancel_download_confirmation_state_;
  

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

@@ -11,7 +11,7 @@
  #endif  // CHROME_BROWSER_UNGOOGLED_FLAG_ENTRIES_H_
 --- a/third_party/blink/common/features.cc
 +++ b/third_party/blink/common/features.cc
-@@ -151,6 +151,8 @@ BASE_FEATURE(kAutofillUseDomNodeIdForRen
+@@ -166,6 +166,8 @@ BASE_FEATURE(kAutofillUseDomNodeIdForRen
               "AutofillUseDomNodeIdForRendererId",
               base::FEATURE_ENABLED_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
-@@ -1438,10 +1438,14 @@ FrameSelection& SelectionController::Sel
+@@ -1442,10 +1442,14 @@ FrameSelection& SelectionController::Sel
  }
  
  bool IsSelectionOverLink(const MouseEventWithHitTestResults& event) {

+ 1 - 1
patches/extra/ungoogled-chromium/add-flag-for-grab-handle.patch

@@ -1,6 +1,6 @@
 --- a/chrome/browser/ui/views/frame/tab_strip_region_view.cc
 +++ b/chrome/browser/ui/views/frame/tab_strip_region_view.cc
-@@ -66,6 +66,7 @@ class FrameGrabHandle : public views::Vi
+@@ -67,6 +67,7 @@ class FrameGrabHandle : public views::Vi
      // Reserve some space for the frame to be grabbed by, even if the tabstrip
      // is full.
      // TODO(tbergquist): Define this relative to the NTB insets again.

+ 1 - 1
patches/extra/ungoogled-chromium/add-flag-for-incognito-themes.patch

@@ -1,6 +1,6 @@
 --- a/chrome/browser/ui/views/frame/browser_frame.cc
 +++ b/chrome/browser/ui/views/frame/browser_frame.cc
-@@ -632,5 +632,7 @@ bool BrowserFrame::RegenerateFrameOnThem
+@@ -637,5 +637,7 @@ bool BrowserFrame::RegenerateFrameOnThem
  }
  
  bool BrowserFrame::IsIncognitoBrowser() const {

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

@@ -34,14 +34,14 @@
 --- a/components/omnibox/browser/autocomplete_controller.cc
 +++ b/components/omnibox/browser/autocomplete_controller.cc
 @@ -20,6 +20,7 @@
- #include "base/barrier_callback.h"
+ 
  #include "base/check_op.h"
  #include "base/containers/contains.h"
 +#include "base/command_line.h"
  #include "base/feature_list.h"
  #include "base/format_macros.h"
  #include "base/functional/bind.h"
-@@ -336,6 +337,15 @@ AutocompleteController::AutocompleteCont
+@@ -392,6 +393,15 @@ AutocompleteController::AutocompleteCont
        steady_state_omnibox_position_(
            metrics::OmniboxEventProto::UNKNOWN_POSITION) {
    provider_types &= ~OmniboxFieldTrial::GetDisabledProviderTypes();
@@ -59,7 +59,7 @@
    // so their async requests can be kicked off before waiting a few milliseconds
 --- a/components/omnibox/browser/history_url_provider.cc
 +++ b/components/omnibox/browser/history_url_provider.cc
-@@ -478,6 +478,9 @@ void HistoryURLProvider::Start(const Aut
+@@ -479,6 +479,9 @@ void HistoryURLProvider::Start(const Aut
    if (fixed_up_input.type() != metrics::OmniboxInputType::QUERY)
      matches_.push_back(what_you_typed_match);
  
@@ -79,7 +79,7 @@
  #include "base/feature_list.h"
  #include "base/functional/bind.h"
  #include "base/functional/callback.h"
-@@ -636,6 +637,9 @@ void SearchProvider::Run(bool query_is_p
+@@ -643,6 +644,9 @@ void SearchProvider::Run(bool query_is_p
  }
  
  void SearchProvider::DoHistoryQuery(bool minimal_changes) {

+ 1 - 1
patches/extra/ungoogled-chromium/add-flag-for-qr-generator.patch

@@ -27,7 +27,7 @@
    return true;
 --- a/chrome/browser/ui/views/location_bar/location_bar_view.cc
 +++ b/chrome/browser/ui/views/location_bar/location_bar_view.cc
-@@ -333,7 +333,8 @@ void LocationBarView::Init() {
+@@ -347,7 +347,8 @@ void LocationBarView::Init() {
  
      params.types_enabled.push_back(PageActionIconType::kSendTabToSelf);
      params.types_enabled.push_back(PageActionIconType::kClickToCall);

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

@@ -40,16 +40,16 @@
  
 --- a/components/search_engines/template_url_service.cc
 +++ b/components/search_engines/template_url_service.cc
-@@ -9,6 +9,7 @@
- #include "base/base64.h"
+@@ -15,6 +15,7 @@
  #include "base/base64url.h"
+ #include "base/check_deref.h"
  #include "base/check_is_test.h"
 +#include "base/command_line.h"
  #include "base/containers/contains.h"
+ #include "base/containers/flat_map.h"
  #include "base/debug/crash_logging.h"
- #include "base/feature_list.h"
-@@ -168,6 +169,12 @@ bool IsCreatedByExtension(const Template
-          template_url->type() == TemplateURL::OMNIBOX_API_EXTENSION;
+@@ -207,6 +208,12 @@ TemplateURL MergeEnterpriseSiteSearchEng
+   return TemplateURL(merged_data);
  }
  
 +bool ShouldAutocollect() {
@@ -61,15 +61,15 @@
  }  // namespace
  
  // TemplateURLService::LessWithPrefix -----------------------------------------
-@@ -256,6 +263,7 @@ TemplateURLService::TemplateURLService(
+@@ -389,6 +396,7 @@ TemplateURLService::TemplateURLService(
  #endif  // BUILDFLAG(IS_CHROMEOS_LACROS)
      )
      : prefs_(prefs),
 +      should_autocollect_(true),
+       search_engine_choice_service_(search_engine_choice_service),
        search_terms_data_(std::move(search_terms_data)),
        web_data_service_(web_data_service),
-       client_(std::move(client)),
-@@ -351,8 +359,8 @@ bool TemplateURLService::CanAddAutogener
+@@ -520,8 +528,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.
@@ -80,16 +80,16 @@
  }
  
  bool TemplateURLService::IsPrepopulatedOrDefaultProviderByPolicy(
-@@ -1661,6 +1669,8 @@ SyncDataMap TemplateURLService::CreateGU
+@@ -1892,6 +1900,8 @@ SyncDataMap TemplateURLService::CreateGU
+ }
  
- void TemplateURLService::Init(const Initializer* initializers,
-                               int num_initializers) {
+ void TemplateURLService::Init() {
 +  should_autocollect_ = ShouldAutocollect();
 +
    if (client_)
      client_->SetOwner(this);
  
-@@ -1812,6 +1822,9 @@ void TemplateURLService::ChangeToLoadedS
+@@ -2066,6 +2076,9 @@ void TemplateURLService::ChangeToLoadedS
  
  bool TemplateURLService::CanAddAutogeneratedKeywordForHost(
      const std::string& host) const {
@@ -101,9 +101,9 @@
      return true;
 --- a/components/search_engines/template_url_service.h
 +++ b/components/search_engines/template_url_service.h
-@@ -788,6 +788,8 @@ class TemplateURLService : public WebDat
-   // ---------- Browser state related members ---------------------------------
-   raw_ptr<PrefService> prefs_ = nullptr;
+@@ -881,6 +881,8 @@ class TemplateURLService final : public
+   raw_ptr<search_engines::SearchEngineChoiceService>
+       search_engine_choice_service_ = nullptr;
  
 +  bool should_autocollect_; // Whether search engines should be auto-collected
 +

+ 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"
-@@ -683,6 +684,8 @@ void Tab::OnGestureEvent(ui::GestureEven
+@@ -695,6 +696,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"
-@@ -1667,6 +1668,8 @@ void TabStrip::OnMouseEventInTab(views::
+@@ -1762,6 +1763,8 @@ void TabStrip::OnMouseEventInTab(views::
  }
  
  void TabStrip::UpdateHoverCard(Tab* tab, HoverCardUpdateType update_type) {

+ 1 - 1
patches/extra/ungoogled-chromium/add-flag-for-tabsearch-button.patch

@@ -40,7 +40,7 @@
  #include "base/functional/bind.h"
  #include "base/strings/utf_string_conversions.h"
  #include "build/build_config.h"
-@@ -97,7 +98,8 @@ TabStripRegionView::TabStripRegionView(s
+@@ -98,7 +99,8 @@ TabStripRegionView::TabStripRegionView(s
  
    // Add and configure the TabSearchContainer.
    std::unique_ptr<TabSearchContainer> tab_search_container;

+ 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"
-@@ -1923,6 +1924,10 @@ void TabStripModel::CloseTabs(base::span
+@@ -1951,6 +1952,10 @@ void TabStripModel::CloseTabs(base::span
      return;
    }
  

+ 1 - 1
patches/extra/ungoogled-chromium/add-flag-to-configure-extension-downloading.patch

@@ -50,7 +50,7 @@
  bool IsExtensionDownload(const download::DownloadItem& download_item);
 --- a/chrome/browser/download/download_target_determiner.cc
 +++ b/chrome/browser/download/download_target_determiner.cc
-@@ -1187,10 +1187,12 @@ DownloadConfirmationReason DownloadTarge
+@@ -1188,10 +1188,12 @@ DownloadConfirmationReason DownloadTarge
      return DownloadConfirmationReason::SAVE_AS;
  
  #if BUILDFLAG(ENABLE_EXTENSIONS)

+ 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
-@@ -1201,6 +1201,8 @@ WindowOpenDisposition NavigationPolicyTo
+@@ -1203,6 +1203,8 @@ WindowOpenDisposition NavigationPolicyTo
      case blink::kWebNavigationPolicyNewWindow:
        return WindowOpenDisposition::NEW_WINDOW;
      case blink::kWebNavigationPolicyNewPopup:

+ 1 - 1
patches/extra/ungoogled-chromium/add-flag-to-disable-tls-grease.patch

@@ -11,7 +11,7 @@
  #endif  // CHROME_BROWSER_UNGOOGLED_FLAG_ENTRIES_H_
 --- a/net/socket/ssl_client_socket_impl.cc
 +++ b/net/socket/ssl_client_socket_impl.cc
-@@ -305,7 +305,8 @@ class SSLClientSocketImpl::SSLContext {
+@@ -298,7 +298,8 @@ class SSLClientSocketImpl::SSLContext {
      SSL_CTX_sess_set_new_cb(ssl_ctx_.get(), NewSessionCallback);
      SSL_CTX_set_timeout(ssl_ctx_.get(), 1 * 60 * 60 /* one hour */);
  

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

@@ -16,7 +16,7 @@
  #include "chrome/common/pref_names.h"
  #include "chrome/grit/generated_resources.h"
  #include "components/feature_engagement/public/event_constants.h"
-@@ -400,6 +402,17 @@ void ExtensionsToolbarContainer::AnchorA
+@@ -542,6 +544,17 @@ void ExtensionsToolbarContainer::AnchorA
    widget->widget_delegate()->AsBubbleDialogDelegate()->SetAnchorView(
        anchor_view && anchor_view->GetVisible() ? anchor_view
                                                 : GetExtensionsButton());
@@ -34,7 +34,7 @@
    widget->Show();
  }
  
-@@ -948,6 +961,9 @@ void ExtensionsToolbarContainer::UpdateC
+@@ -919,6 +932,9 @@ void ExtensionsToolbarContainer::UpdateC
  }
  
  bool ExtensionsToolbarContainer::ShouldContainerBeVisible() const {

+ 1 - 1
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
-@@ -1884,6 +1884,10 @@ void BrowserView::UpdateExclusiveAccessE
+@@ -1895,6 +1895,10 @@ void BrowserView::UpdateExclusiveAccessE
      ExclusiveAccessBubbleHideCallback bubble_first_hide_callback,
      bool notify_download,
      bool force_update) {

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

@@ -1,6 +1,6 @@
 --- a/chrome/browser/ui/views/toolbar/toolbar_view.cc
 +++ b/chrome/browser/ui/views/toolbar/toolbar_view.cc
-@@ -443,7 +443,8 @@ void ToolbarView::Init() {
+@@ -452,7 +452,8 @@ void ToolbarView::Init() {
      send_tab_to_self_button_ =
          container_view_->AddChildView(std::move(send_tab_to_self_button));
  

+ 5 - 5
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
-@@ -1040,7 +1040,11 @@ void Tab::UpdateIconVisibility() {
+@@ -1066,7 +1066,11 @@ void Tab::UpdateIconVisibility() {
    if (IsActive()) {
      // Close button is shown on active tabs regardless of the size.
      showing_close_button_ = true;
@@ -12,15 +12,15 @@
  
      showing_alert_indicator_ =
          has_alert_icon && alert_icon_width <= available_width;
-@@ -1061,6 +1065,8 @@ void Tab::UpdateIconVisibility() {
-       available_width -= favicon_width;
+@@ -1091,6 +1095,8 @@ void Tab::UpdateIconVisibility() {
+     }
  
      showing_close_button_ = large_enough_for_close_button;
 +    if (base::CommandLine::ForCurrentProcess()->HasSwitch("hide-tab-close-buttons"))
 +      showing_close_button_ = false;
-     if (showing_close_button_)
+     if (showing_close_button_) {
        available_width -= close_button_width;
- 
+     }
 --- a/chrome/browser/ungoogled_flag_entries.h
 +++ b/chrome/browser/ungoogled_flag_entries.h
 @@ -84,4 +84,8 @@

+ 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
-@@ -467,6 +467,17 @@ void ToolbarView::Init() {
+@@ -476,6 +476,17 @@ void ToolbarView::Init() {
  #elif BUILDFLAG(IS_CHROMEOS_LACROS)
    show_avatar_toolbar_button = !chromeos::IsManagedGuestSession();
  #endif

+ 1 - 1
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
-@@ -3974,10 +3974,12 @@ const flags_ui::FeatureEntry::FeatureVar
+@@ -3803,10 +3803,12 @@ const FeatureEntry::FeatureVariation
  #include "chrome/browser/ungoogled_flag_choices.h"
  #include "chrome/browser/bromite_flag_choices.h"
  #include "chrome/browser/ungoogled_platform_flag_choices.h"

+ 17 - 16
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
-@@ -152,6 +152,8 @@ static_library("common_lib") {
+@@ -156,6 +156,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",
-@@ -259,6 +261,7 @@ static_library("common_lib") {
+@@ -263,6 +265,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
-@@ -1031,6 +1031,14 @@ BASE_FEATURE(kNewFilesPolicyUX,
+@@ -1037,6 +1037,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
-@@ -611,6 +611,10 @@ BASE_DECLARE_FEATURE(kNewFilesPolicyUX);
+@@ -616,6 +616,10 @@ BASE_DECLARE_FEATURE(kNewFilesPolicyUX);
  
  COMPONENT_EXPORT(CHROME_FEATURES) BASE_DECLARE_FEATURE(kNoReferrers);
  
@@ -164,7 +164,7 @@
      "//components/embedder_support",
 --- a/components/BUILD.gn
 +++ b/components/BUILD.gn
-@@ -68,7 +68,7 @@ if (is_ios) {
+@@ -69,7 +69,7 @@ if (is_ios) {
  
  # Omit Lacros because it allows //components to depend on //chrome, which in
  # turn depends on //extensions.
@@ -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
-@@ -819,7 +819,7 @@ test("components_unittests") {
+@@ -829,7 +829,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_
    }
-@@ -1107,7 +1107,7 @@ if (use_blink) {
+@@ -1120,7 +1120,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.
@@ -193,7 +193,7 @@
      }
 --- a/content/browser/renderer_host/navigation_request.cc
 +++ b/content/browser/renderer_host/navigation_request.cc
-@@ -42,6 +42,7 @@
+@@ -43,6 +43,7 @@
  #include "build/build_config.h"
  #include "build/buildflag.h"
  #include "build/chromeos_buildflags.h"
@@ -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"
-@@ -393,10 +394,10 @@ void AddAdditionalRequestHeaders(
+@@ -395,10 +396,10 @@ void AddAdditionalRequestHeaders(
        net::HttpRequestHeaders::kUserAgent,
        ComputeUserAgentValue(*headers, user_agent_override, browser_context));
  
@@ -218,7 +218,7 @@
    if (NeedsHTTPOrigin(headers, method)) {
 --- a/content/renderer/render_frame_impl.cc
 +++ b/content/renderer/render_frame_impl.cc
-@@ -54,6 +54,7 @@
+@@ -56,6 +56,7 @@
  #include "build/chromeos_buildflags.h"
  #include "cc/base/switches.h"
  #include "cc/trees/ukm_manager.h"
@@ -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"
-@@ -4441,10 +4442,13 @@ void RenderFrameImpl::WillSendRequestInt
+@@ -4449,10 +4450,13 @@ void RenderFrameImpl::WillSendRequestInt
  
    request.SetHasUserGesture(frame_->HasTransientUserActivation());
  
@@ -284,7 +284,7 @@
  
 --- a/third_party/blink/renderer/modules/service_worker/web_service_worker_fetch_context_impl.cc
 +++ b/third_party/blink/renderer/modules/service_worker/web_service_worker_fetch_context_impl.cc
-@@ -7,11 +7,13 @@
+@@ -7,12 +7,14 @@
  #include "base/ranges/algorithm.h"
  #include "base/synchronization/waitable_event.h"
  #include "base/task/single_thread_task_runner.h"
@@ -292,13 +292,14 @@
  #include "mojo/public/cpp/bindings/pending_remote.h"
  #include "net/cookies/site_for_cookies.h"
  #include "services/network/public/cpp/wrapper_shared_url_loader_factory.h"
+ #include "services/network/public/mojom/fetch_api.mojom-shared.h"
  #include "third_party/blink/public/common/loader/loader_constants.h"
  #include "third_party/blink/public/mojom/fetch/fetch_api_request.mojom-blink.h"
 +#include "third_party/blink/public/platform/url_conversion.h"
  #include "third_party/blink/public/platform/url_loader_throttle_provider.h"
  #include "third_party/blink/public/platform/web_url_request_extra_data.h"
  #include "third_party/blink/public/platform/websocket_handshake_throttle_provider.h"
-@@ -152,10 +154,13 @@ void WebServiceWorkerFetchContextImpl::W
+@@ -153,10 +155,13 @@ void WebServiceWorkerFetchContextImpl::W
  
    request.SetURLRequestExtraData(std::move(url_request_extra_data));
  
@@ -323,10 +324,10 @@
  #include "base/task/single_thread_task_runner.h"
  #include "base/task/thread_pool.h"
 +#include "chrome/common/referrer_sanitizer.h"
+ #include "services/network/public/cpp/resource_request.h"
  #include "services/network/public/cpp/wrapper_shared_url_loader_factory.h"
  #include "third_party/blink/public/common/features.h"
- #include "third_party/blink/public/common/loader/loader_constants.h"
-@@ -22,6 +23,7 @@
+@@ -23,6 +24,7 @@
  #include "third_party/blink/public/platform/modules/service_worker/web_service_worker_provider_context.h"
  #include "third_party/blink/public/platform/platform.h"
  #include "third_party/blink/public/platform/resource_load_info_notifier_wrapper.h"
@@ -334,7 +335,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"
-@@ -381,10 +383,13 @@ void DedicatedOrSharedWorkerFetchContext
+@@ -383,10 +385,13 @@ void DedicatedOrSharedWorkerFetchContext
    if (g_rewrite_url)
      request.SetUrl(g_rewrite_url(request.Url().GetString().Utf8(), false));
  

+ 5 - 5
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
-@@ -157,11 +157,6 @@ const unsigned kMinimumTTLSeconds = kCac
+@@ -151,11 +151,6 @@ const size_t kMaxHostLength = 4096;
  // cached.
  const int kIPv6ProbePeriodMs = 1000;
  
@@ -44,10 +44,10 @@
 -                                     0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 -                                     0x00, 0x00, 0x00, 0x01};
 -
- // ICANN uses this localhost address to indicate a name collision.
- //
- // The policy in Chromium is to fail host resolving if it resolves to
-@@ -3899,33 +3894,10 @@ int HostResolverManager::StartIPv6Reacha
+ // True if |hostname| ends with either ".local" or ".local.".
+ bool ResemblesMulticastDNSName(base::StringPiece hostname) {
+   return hostname.ends_with(".local") || hostname.ends_with(".local.");
+@@ -1373,33 +1368,10 @@ int HostResolverManager::StartIPv6Reacha
      return OK;
    }
  

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

@@ -3,9 +3,9 @@
 
 --- a/chrome/browser/resources/settings/search_engines_page/search_engine_edit_dialog.html
 +++ b/chrome/browser/resources/settings/search_engines_page/search_engine_edit_dialog.html
-@@ -20,6 +20,13 @@
-             value="{{queryUrl_}}" on-focus="validate_" on-input="validate_"
-             disabled$="[[model.urlLocked]]">
+@@ -22,6 +22,13 @@
+             error-message="$i18n{notValid}"
+             value="{{queryUrl_}}" on-focus="validate_" on-input="validate_">
          </cr-input>
 +        <cr-input id="suggestionsUrl"
 +            label="Suggestions URL with %s in place of query"
@@ -16,7 +16,7 @@
 +        </cr-input>
        </div>
        <div slot="button-container">
-         <cr-button class="cancel-button" on-click="cancel_" id="cancel">
+         <cr-button class="cancel-button" on-click="cancel_" id="cancel"
 --- a/chrome/browser/resources/settings/search_engines_page/search_engine_edit_dialog.ts
 +++ b/chrome/browser/resources/settings/search_engines_page/search_engine_edit_dialog.ts
 @@ -35,6 +35,7 @@ export interface SettingsSearchEngineEdi
@@ -34,24 +34,24 @@
 +      suggestionsUrl_: String,
        dialogTitle_: String,
        actionButtonText_: String,
-     };
-@@ -72,6 +74,7 @@ export class SettingsSearchEngineEditDia
+       cancelButtonHidden_: Boolean,
+@@ -78,6 +80,7 @@ export class SettingsSearchEngineEditDia
    private searchEngine_: string;
    private keyword_: string;
    private queryUrl_: string;
 +  private suggestionsUrl_: string;
    private dialogTitle_: string;
    private actionButtonText_: string;
-   private browserProxy_: SearchEnginesBrowserProxy =
-@@ -89,6 +92,7 @@ export class SettingsSearchEngineEditDia
-       this.searchEngine_ = this.model.name;
+   private cancelButtonHidden_: boolean;
+@@ -102,6 +105,7 @@ export class SettingsSearchEngineEditDia
        this.keyword_ = this.model.keyword;
        this.queryUrl_ = this.model.url;
+       this.readonly_ = this.model.isManaged;
 +      this.suggestionsUrl_ = this.model.suggestionsUrl;
      } else {
        this.dialogTitle_ =
            loadTimeData.getString('searchEnginesAddSearchEngine');
-@@ -124,8 +128,12 @@ export class SettingsSearchEngineEditDia
+@@ -138,8 +142,12 @@ export class SettingsSearchEngineEditDia
        }
      }
  
@@ -66,7 +66,7 @@
    }
  
    private cancel_() {
-@@ -134,7 +142,8 @@ export class SettingsSearchEngineEditDia
+@@ -148,7 +156,8 @@ export class SettingsSearchEngineEditDia
  
    private onActionButtonClick_() {
      this.browserProxy_.searchEngineEditCompleted(
@@ -76,7 +76,7 @@
      this.$.dialog.close();
    }
  
-@@ -165,8 +174,10 @@ export class SettingsSearchEngineEditDia
+@@ -179,8 +188,10 @@ export class SettingsSearchEngineEditDia
        this.$.searchEngine,
        this.$.keyword,
        this.$.queryUrl,
@@ -90,7 +90,7 @@
    }
 --- a/chrome/browser/resources/settings/search_engines_page/search_engines_browser_proxy.ts
 +++ b/chrome/browser/resources/settings/search_engines_page/search_engines_browser_proxy.ts
-@@ -32,6 +32,7 @@ export interface SearchEngine {
+@@ -33,6 +33,7 @@ export interface SearchEngine {
    name: string;
    shouldConfirmDeletion: boolean;
    url: string;
@@ -98,7 +98,7 @@
    urlLocked: boolean;
  }
  
-@@ -94,7 +95,7 @@ export interface SearchEnginesBrowserPro
+@@ -97,7 +98,7 @@ export interface SearchEnginesBrowserPro
    searchEngineEditCancelled(): void;
  
    searchEngineEditCompleted(
@@ -107,7 +107,7 @@
  
    getSearchEnginesList(): Promise<SearchEnginesInfo>;
  
-@@ -136,11 +137,12 @@ export class SearchEnginesBrowserProxyIm
+@@ -139,11 +140,12 @@ export class SearchEnginesBrowserProxyIm
    }
  
    searchEngineEditCompleted(
@@ -196,7 +196,7 @@
    // already owned by the TemplateURLService.
 --- a/chrome/browser/ui/search_engines/keyword_editor_controller.cc
 +++ b/chrome/browser/ui/search_engines/keyword_editor_controller.cc
-@@ -21,23 +21,27 @@ KeywordEditorController::KeywordEditorCo
+@@ -24,23 +24,27 @@ KeywordEditorController::KeywordEditorCo
  KeywordEditorController::~KeywordEditorController() {
  }
  
@@ -230,9 +230,9 @@
 +    const std::string& url,
 +    const std::string& suggestions_url) {
    DCHECK(!url.empty());
-   const absl::optional<size_t> index =
+   const std::optional<size_t> index =
        table_model_->IndexOfTemplateURL(template_url);
-@@ -49,10 +53,12 @@ void KeywordEditorController::ModifyTemp
+@@ -52,10 +56,12 @@ void KeywordEditorController::ModifyTemp
  
    // Don't do anything if the entry didn't change.
    if ((template_url->short_name() == title) &&
@@ -249,7 +249,7 @@
  }
 --- a/chrome/browser/ui/search_engines/keyword_editor_controller.h
 +++ b/chrome/browser/ui/search_engines/keyword_editor_controller.h
-@@ -29,14 +29,16 @@ class KeywordEditorController {
+@@ -33,14 +33,16 @@ class KeywordEditorController {
    // model.  Returns the index of the added URL.
    int AddTemplateURL(const std::u16string& title,
                       const std::u16string& keyword,
@@ -270,7 +270,7 @@
    bool CanEdit(const TemplateURL* url) const;
 --- a/chrome/browser/ui/search_engines/template_url_table_model.cc
 +++ b/chrome/browser/ui/search_engines/template_url_table_model.cc
-@@ -105,21 +105,25 @@ void TemplateURLTableModel::Remove(size_
+@@ -183,21 +183,25 @@ void TemplateURLTableModel::Remove(size_
  void TemplateURLTableModel::Add(size_t index,
                                  const std::u16string& short_name,
                                  const std::u16string& keyword,
@@ -301,7 +301,7 @@
    DCHECK(index <= RowCount());
    DCHECK(!url.empty());
    TemplateURL* template_url = GetTemplateURL(index);
-@@ -128,7 +132,8 @@ void TemplateURLTableModel::ModifyTempla
+@@ -206,7 +210,8 @@ void TemplateURLTableModel::ModifyTempla
    DCHECK(template_url_service_->GetDefaultSearchProvider() != template_url ||
           template_url->SupportsReplacement(
               template_url_service_->search_terms_data()));
@@ -313,7 +313,7 @@
  TemplateURL* TemplateURLTableModel::GetTemplateURL(size_t index) {
 --- a/chrome/browser/ui/search_engines/template_url_table_model.h
 +++ b/chrome/browser/ui/search_engines/template_url_table_model.h
-@@ -54,13 +54,15 @@ class TemplateURLTableModel : public ui:
+@@ -58,13 +58,15 @@ class TemplateURLTableModel : public ui:
    void Add(size_t index,
             const std::u16string& short_name,
             const std::u16string& keyword,
@@ -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
-@@ -45,6 +45,7 @@ namespace {
+@@ -48,6 +48,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;
-@@ -220,6 +221,8 @@ base::Value::Dict SearchEnginesHandler::
+@@ -223,6 +224,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();
-@@ -361,12 +364,14 @@ void SearchEnginesHandler::HandleSearchE
+@@ -362,12 +365,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();
  }
-@@ -394,6 +399,8 @@ bool SearchEnginesHandler::CheckFieldVal
+@@ -395,6 +400,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();
  
-@@ -413,18 +420,21 @@ void SearchEnginesHandler::HandleSearchE
+@@ -414,18 +421,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
-@@ -658,7 +658,8 @@ void TemplateURLService::IncrementUsageC
+@@ -848,7 +848,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());
-@@ -673,6 +674,7 @@ void TemplateURLService::ResetTemplateUR
+@@ -863,6 +864,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
-@@ -256,7 +256,8 @@ class TemplateURLService : public WebDat
+@@ -308,7 +308,8 @@ class TemplateURLService final : public
    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
-@@ -3970,7 +3970,13 @@ const flags_ui::FeatureEntry::FeatureVar
+@@ -3799,7 +3799,13 @@ const FeatureEntry::FeatureVariation
  // calculate and verify checksum.
  //
  // When adding a new choice, add it to the end of the list.

+ 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
-@@ -138,7 +138,7 @@ BASE_FEATURE(kOptimizationHints,
+@@ -133,7 +133,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
-@@ -3862,8 +3862,7 @@ ScriptValue WebGLRenderingContextBase::g
+@@ -3866,8 +3866,7 @@ ScriptValue WebGLRenderingContextBase::g
                pname, IdentifiabilityBenignStringToken(
                           String(ContextGL()->GetString(GL_RENDERER))));
          }
@@ -13,7 +13,7 @@
        }
        SynthesizeGLError(
            GL_INVALID_ENUM, "getParameter",
-@@ -3877,8 +3876,7 @@ ScriptValue WebGLRenderingContextBase::g
+@@ -3881,8 +3880,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
-@@ -1438,7 +1438,7 @@ BASE_FEATURE(kPrefetchFontLookupTables,
+@@ -1543,7 +1543,7 @@ BASE_FEATURE(kPrefetchFontLookupTables,
  // crbug.com/988956.
  BASE_FEATURE(kPrefetchPrivacyChanges,
               "PrefetchPrivacyChanges",

+ 1 - 1
patches/extra/ungoogled-chromium/enable-menu-on-reload-button.patch

@@ -2,7 +2,7 @@
 
 --- a/chrome/browser/ui/views/toolbar/reload_button.cc
 +++ b/chrome/browser/ui/views/toolbar/reload_button.cc
-@@ -111,7 +111,7 @@ bool ReloadButton::GetMenuEnabled() cons
+@@ -114,7 +114,7 @@ bool ReloadButton::GetMenuEnabled() cons
  }
  
  void ReloadButton::SetMenuEnabled(bool enable) {

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

@@ -2,7 +2,7 @@
 
 --- a/chrome/browser/ui/browser_commands.cc
 +++ b/chrome/browser/ui/browser_commands.cc
-@@ -532,11 +532,6 @@ int GetContentRestrictions(const Browser
+@@ -538,11 +538,6 @@ int GetContentRestrictions(const Browser
      CoreTabHelper* core_tab_helper =
          CoreTabHelper::FromWebContents(current_tab);
      content_restrictions = core_tab_helper->content_restrictions();
@@ -14,7 +14,7 @@
    }
    return content_restrictions;
  }
-@@ -1652,8 +1647,7 @@ bool CanSavePage(const Browser* browser)
+@@ -1666,8 +1661,7 @@ bool CanSavePage(const Browser* browser)
        DownloadPrefs::DownloadRestriction::ALL_FILES) {
      return false;
    }

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

@@ -1,6 +1,6 @@
 --- a/chrome/browser/ui/views/frame/tab_strip_region_view.cc
 +++ b/chrome/browser/ui/views/frame/tab_strip_region_view.cc
-@@ -195,12 +195,10 @@ TabStripRegionView::TabStripRegionView(s
+@@ -196,12 +196,10 @@ TabStripRegionView::TabStripRegionView(s
  
      // TODO(crbug.com/1052397): Revisit the macro expression once build flag
      // switch of lacros-chrome is complete.
@@ -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
-@@ -1900,8 +1900,6 @@ void TabStrip::NewTabButtonPressed(const
+@@ -1998,8 +1998,6 @@ void TabStrip::NewTabButtonPressed(const
  
      const ui::MouseEvent& mouse = static_cast<const ui::MouseEvent&>(event);
      if (mouse.IsOnlyMiddleMouseButton()) {
@@ -24,10 +24,10 @@
          ui::Clipboard* clipboard = ui::Clipboard::GetForCurrentThread();
          CHECK(clipboard);
          std::u16string clipboard_text;
-@@ -1909,7 +1907,6 @@ void TabStrip::NewTabButtonPressed(const
-                             /* data_dst = */ nullptr, &clipboard_text);
-         if (!clipboard_text.empty())
+@@ -2008,7 +2006,6 @@ void TabStrip::NewTabButtonPressed(const
+         if (!clipboard_text.empty()) {
            controller_->CreateNewTabWithLocation(clipboard_text);
+         }
 -      }
        return;
      }

+ 5 - 5
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
-@@ -1064,6 +1064,7 @@ int ChromeBrowserMainParts::PreCreateThr
+@@ -1065,6 +1065,7 @@ int ChromeBrowserMainParts::PreCreateThr
    if (first_run::IsChromeFirstRun()) {
      if (!base::CommandLine::ForCurrentProcess()->HasSwitch(switches::kApp) &&
          !base::CommandLine::ForCurrentProcess()->HasSwitch(switches::kAppId)) {
@@ -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"
-@@ -865,6 +866,8 @@ WebUIFactoryFunction GetWebUIFactoryFunc
-     return &NewWebUI<PrivacySandboxDialogUI>;
- #endif  // !BUILDFLAG(IS_ANDROID)
+@@ -871,6 +872,8 @@ WebUIFactoryFunction GetWebUIFactoryFunc
+     return &NewWebUI<privacy_sandbox_internals::PrivacySandboxInternalsUI>;
+   }
  
 + if (url.host() == "ungoogled-first-run") return &NewWebUI<UngoogledFirstRun>;
 +
@@ -169,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
-@@ -667,6 +667,7 @@ const char kExtensionConfigureCommandsSu
+@@ -666,6 +666,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
-@@ -64,6 +64,7 @@ constexpr EngineAndTier engines_default[
+@@ -66,6 +66,7 @@ constexpr EngineAndTier engines_default[
      {SearchEngineTier::kTopEngines, &google},
      {SearchEngineTier::kTopEngines, &bing},
      {SearchEngineTier::kTopEngines, &yahoo},

+ 22 - 8
patches/extra/ungoogled-chromium/remove-uneeded-ui.patch

@@ -12,6 +12,7 @@
 # Safety check section on the settings page
 # Privacy guide promo on the privacy page
 # Google sign-in and Anonymized Data Collection sections
+# help bubble for the removed data collection section
 # Privacy guide section on the privacy page
 # Advanced Protection Program link on the security settings page
 # the 'Learn more' link from the search engine entry on the settings page
@@ -135,7 +136,7 @@
            <cr-link-row id="captions"
                class="hr"
                label="$i18n{captionsTitle}"
-@@ -88,11 +88,6 @@
+@@ -84,11 +84,6 @@
              external>
          </cr-link-row>
  </if>
@@ -218,7 +219,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
-@@ -48,7 +48,7 @@
+@@ -47,7 +47,7 @@
          </settings-section>
          <!-- TODO(crbug/1469277): Remove after SafetyHub launched. -->
          <template is="dom-if"
@@ -261,6 +262,19 @@
      <template is="dom-if" if="[[enablePageContentSetting_]]">
        <cr-link-row id="pageContentRow"
            class="hr"
+--- a/chrome/browser/resources/settings/privacy_page/personalization_options.ts
++++ b/chrome/browser/resources/settings/privacy_page/personalization_options.ts
+@@ -185,10 +185,6 @@ export class SettingsPersonalizationOpti
+     this.addWebUiListener('metrics-reporting-change', setMetricsReportingPref);
+     this.browserProxy_.getMetricsReporting().then(setMetricsReportingPref);
+     // </if>
+-
+-    this.registerHelpBubble(
+-        ANONYMIZED_URL_COLLECTION_ID,
+-        this.$.urlCollectionToggle.getBubbleAnchor(), {anchorPaddingTop: 10});
+   }
+ 
+   // <if expr="chromeos_ash">
 --- a/chrome/browser/resources/settings/privacy_page/privacy_page.html
 +++ b/chrome/browser/resources/settings/privacy_page/privacy_page.html
 @@ -41,15 +41,6 @@
@@ -281,7 +295,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
-@@ -190,10 +190,3 @@
+@@ -197,10 +197,3 @@
            on-click="onChromeCertificatesClick_"></cr-link-row>
      </template>
  
@@ -319,7 +333,7 @@
              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
-@@ -729,19 +729,9 @@ void ExtensionsMenuModel::Build(Browser*
+@@ -735,19 +735,9 @@ void ExtensionsMenuModel::Build(Browser*
    SetElementIdentifierAt(
        GetIndexOfCommandId(IDC_EXTENSIONS_SUBMENU_MANAGE_EXTENSIONS).value(),
        kManageExtensionsMenuItem);
@@ -341,7 +355,7 @@
  
 --- a/chrome/browser/ui/views/bookmarks/bookmark_menu_delegate.cc
 +++ b/chrome/browser/ui/views/bookmarks/bookmark_menu_delegate.cc
-@@ -637,13 +637,6 @@ void BookmarkMenuDelegate::BuildMenu(con
+@@ -639,13 +639,6 @@ void BookmarkMenuDelegate::BuildMenu(con
                    kBookmarksSidePanelIcon, ui::kColorMenuIcon,
                    ui::SimpleMenuModel::kDefaultIconSize)
              : ui::ImageModel();
@@ -406,7 +420,7 @@
    action_button_ =
        actions_container->AddChildView(std::make_unique<views::MdTextButton>(
            base::BindRepeating(&SadTabView::PerformAction,
-@@ -645,22 +642,6 @@ void SadTabView::AttachToWebView() {
+@@ -650,22 +647,6 @@ void SadTabView::AttachToWebView() {
    }
  }
  
@@ -431,7 +445,7 @@
    // Specify the maximum message and title width explicitly.
 --- a/media/base/media_switches.cc
 +++ b/media/base/media_switches.cc
-@@ -916,7 +916,7 @@ const base::FeatureParam<std::string> kM
+@@ -918,7 +918,7 @@ const base::FeatureParam<std::string> kM
  #endif  // BUILDFLAG(IS_WIN)
  
  // Enables the Live Caption feature on supported devices.
@@ -442,7 +456,7 @@
  // getDisplayMedia captures. Note: This flag does not control if the "Share this
 --- a/ui/views/controls/menu/menu_item_view.cc
 +++ b/ui/views/controls/menu/menu_item_view.cc
-@@ -802,7 +802,7 @@ void MenuItemView::SetAlerted() {
+@@ -819,7 +819,7 @@ void MenuItemView::SetAlerted() {
  }
  
  bool MenuItemView::ShouldShowNewBadge() const {

+ 76 - 47
pruning.list

@@ -41,8 +41,8 @@ chrome/app/etw_events/MSG00001.bin
 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/accessibility_common/third_party/mediapipe_task_vision/mediapipe_task_vision.tar.xz
+chrome/browser/resources/chromeos/accessibility/accessibility_common/third_party/pumpkin/pumpkin-3.0.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
@@ -205,6 +205,7 @@ components/test/data/history/HistoryNoSource
 components/test/data/history/History_with_starred
 components/test/data/media_router/common/providers/cast/certificate/testsuite/testsuite1.pb
 components/test/data/omnibox/adder.tflite
+components/test/data/omnibox/on_device_head_test_deep_model.bin
 components/test/data/omnibox/on_device_head_test_model_index.bin
 components/test/data/omnibox/test_tail_model.tflite
 components/test/data/optimization_guide/bert_page_topics_model.tflite
@@ -344,7 +345,9 @@ ios/chrome/browser/crash_report/model/seed_corpuses/process_snapshot_dump_2
 ios/chrome/browser/crash_report/model/seed_corpuses/process_snapshot_dump_3
 ios/chrome/browser/crash_report/model/seed_corpuses/process_snapshot_dump_4
 ios/chrome/browser/sessions/session_restoration_web_state_list_observer.mm
-ios/chrome/browser/ui/omnibox/popup/omnibox_popup_carousel_control.mm
+ios/chrome/browser/ui/omnibox/popup/carousel/omnibox_popup_carousel_control.mm
+ios/chrome/browser/ui/omnibox/popup/omnibox_popup_view_controller.mm
+ios/chrome/browser/ui/omnibox/popup/row/omnibox_popup_row_content_configuration.mm
 ios/chrome/test/data/optimization_guide/additional_file_doesnt_exist.crx3
 ios/chrome/test/data/optimization_guide/additional_file_exists.crx3
 ios/chrome/test/data/optimization_guide/signed_valid_model.crx3
@@ -352,7 +355,6 @@ ios/chrome/test/data/sessions/corrupted.plist
 ios/chrome/test/data/sessions/session_m57.plist
 ios/chrome/test/data/sessions/session_m58.plist
 ios/chrome/test/data/voice/test_sound.m4a
-ios/chrome/test/earl_grey/chrome_earl_grey.mm
 ios/testing/data/http_server_files/bundle.pkpasses
 ios/testing/data/http_server_files/generic.pkpass
 ios/testing/data/http_server_files/redchair.usdz
@@ -1280,6 +1282,7 @@ net/data/ssl/certificates/client_4.pk8
 net/data/ssl/certificates/client_5.pk8
 net/data/ssl/certificates/client_6.pk8
 net/data/ssl/certificates/client_7.pk8
+net/data/ssl/certificates/client_with_ec_key.p12
 net/data/ssl/certificates/crlset_blocked_interception_by_intermediate.raw
 net/data/ssl/certificates/crlset_blocked_interception_by_root.raw
 net/data/ssl/certificates/crlset_by_intermediate_serial.raw
@@ -3249,6 +3252,8 @@ third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Pol
 third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20180730.docx
 third_party/boringssl/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20190808.docx
 third_party/boringssl/src/crypto/pkcs8/test/empty_password.p12
+third_party/boringssl/src/crypto/pkcs8/test/empty_password_ber.p12
+third_party/boringssl/src/crypto/pkcs8/test/empty_password_ber_nested.p12
 third_party/boringssl/src/crypto/pkcs8/test/no_encryption.p12
 third_party/boringssl/src/crypto/pkcs8/test/nss.p12
 third_party/boringssl/src/crypto/pkcs8/test/null_password.p12
@@ -7004,49 +7009,6 @@ third_party/boringssl/src/pki/testdata/nist-pkits/crls/requireExplicitPolicy7sub
 third_party/boringssl/src/pki/testdata/nist-pkits/crls/requireExplicitPolicy7subsubCARE2RE4CRL.crl
 third_party/boringssl/src/pki/testdata/nist-pkits/crls/requireExplicitPolicy7subsubsubCARE2RE4CRL.crl
 third_party/boringssl/src/pki/testdata/parse_certificate_unittest/v3_certificate_template.pk8
-third_party/boringssl/src/pki/testdata/ssl/certificates/client-empty-password.p12
-third_party/boringssl/src/pki/testdata/ssl/certificates/client-nokey.p12
-third_party/boringssl/src/pki/testdata/ssl/certificates/client-null-password.p12
-third_party/boringssl/src/pki/testdata/ssl/certificates/client.p12
-third_party/boringssl/src/pki/testdata/ssl/certificates/client_1.pk8
-third_party/boringssl/src/pki/testdata/ssl/certificates/client_2.pk8
-third_party/boringssl/src/pki/testdata/ssl/certificates/client_3.pk8
-third_party/boringssl/src/pki/testdata/ssl/certificates/client_4.pk8
-third_party/boringssl/src/pki/testdata/ssl/certificates/client_5.pk8
-third_party/boringssl/src/pki/testdata/ssl/certificates/client_6.pk8
-third_party/boringssl/src/pki/testdata/ssl/certificates/client_7.pk8
-third_party/boringssl/src/pki/testdata/ssl/certificates/crlset_blocked_interception_by_intermediate.raw
-third_party/boringssl/src/pki/testdata/ssl/certificates/crlset_blocked_interception_by_root.raw
-third_party/boringssl/src/pki/testdata/ssl/certificates/crlset_by_intermediate_serial.raw
-third_party/boringssl/src/pki/testdata/ssl/certificates/crlset_by_leaf_spki.raw
-third_party/boringssl/src/pki/testdata/ssl/certificates/crlset_by_leaf_subject_no_spki.raw
-third_party/boringssl/src/pki/testdata/ssl/certificates/crlset_by_root_serial.raw
-third_party/boringssl/src/pki/testdata/ssl/certificates/crlset_by_root_spki.raw
-third_party/boringssl/src/pki/testdata/ssl/certificates/crlset_by_root_subject.raw
-third_party/boringssl/src/pki/testdata/ssl/certificates/crlset_by_root_subject_no_spki.raw
-third_party/boringssl/src/pki/testdata/ssl/certificates/crlset_known_interception_by_root.raw
-third_party/boringssl/src/pki/testdata/ssl/certificates/cronet-quic-leaf-cert.key
-third_party/boringssl/src/pki/testdata/ssl/certificates/duplicate_cn_1.p12
-third_party/boringssl/src/pki/testdata/ssl/certificates/duplicate_cn_2.p12
-third_party/boringssl/src/pki/testdata/ssl/certificates/foaf.me.chromium-test-cert.der
-third_party/boringssl/src/pki/testdata/ssl/certificates/google.binary.p7b
-third_party/boringssl/src/pki/testdata/ssl/certificates/google.single.der
-third_party/boringssl/src/pki/testdata/ssl/certificates/invalid_key_usage_cert.der
-third_party/boringssl/src/pki/testdata/ssl/certificates/mit.davidben.der
-third_party/boringssl/src/pki/testdata/ssl/certificates/multi-root-crlset-C.raw
-third_party/boringssl/src/pki/testdata/ssl/certificates/multi-root-crlset-CD-and-FE.raw
-third_party/boringssl/src/pki/testdata/ssl/certificates/multi-root-crlset-D-and-E.raw
-third_party/boringssl/src/pki/testdata/ssl/certificates/multi-root-crlset-E.raw
-third_party/boringssl/src/pki/testdata/ssl/certificates/multi-root-crlset-unrelated.raw
-third_party/boringssl/src/pki/testdata/ssl/certificates/multi-root.keychain
-third_party/boringssl/src/pki/testdata/ssl/certificates/nist.der
-third_party/boringssl/src/pki/testdata/ssl/certificates/quic-ecdsa-leaf.key
-third_party/boringssl/src/pki/testdata/ssl/certificates/quic-leaf-cert.key
-third_party/boringssl/src/pki/testdata/ssl/certificates/quic-leaf-cert.key.sct
-third_party/boringssl/src/pki/testdata/ssl/certificates/treadclimber.sctlist
-third_party/boringssl/src/pki/testdata/ssl/certificates/unittest.key.bin
-third_party/boringssl/src/pki/testdata/ssl/certificates/unittest.selfsigned.der
-third_party/boringssl/src/pki/testdata/ssl/certificates/websocket_client_cert.p12
 third_party/boringssl/src/util/ar/testdata/linux/bar.cc.o
 third_party/boringssl/src/util/ar/testdata/linux/foo.c.o
 third_party/boringssl/src/util/ar/testdata/linux/libsample.a
@@ -7061,6 +7023,7 @@ third_party/boringssl/src/util/fipstools/acvp/acvptool/test/expected/ACVP-AES-CB
 third_party/boringssl/src/util/fipstools/acvp/acvptool/test/expected/ACVP-AES-CCM.bz2
 third_party/boringssl/src/util/fipstools/acvp/acvptool/test/expected/ACVP-AES-CTR.bz2
 third_party/boringssl/src/util/fipstools/acvp/acvptool/test/expected/ACVP-AES-ECB.bz2
+third_party/boringssl/src/util/fipstools/acvp/acvptool/test/expected/ACVP-AES-GCM-randnonce.bz2
 third_party/boringssl/src/util/fipstools/acvp/acvptool/test/expected/ACVP-AES-GCM.bz2
 third_party/boringssl/src/util/fipstools/acvp/acvptool/test/expected/ACVP-AES-GMAC.bz2
 third_party/boringssl/src/util/fipstools/acvp/acvptool/test/expected/ACVP-AES-KW.bz2
@@ -7092,6 +7055,7 @@ third_party/boringssl/src/util/fipstools/acvp/acvptool/test/vectors/ACVP-AES-CBC
 third_party/boringssl/src/util/fipstools/acvp/acvptool/test/vectors/ACVP-AES-CCM.bz2
 third_party/boringssl/src/util/fipstools/acvp/acvptool/test/vectors/ACVP-AES-CTR.bz2
 third_party/boringssl/src/util/fipstools/acvp/acvptool/test/vectors/ACVP-AES-ECB.bz2
+third_party/boringssl/src/util/fipstools/acvp/acvptool/test/vectors/ACVP-AES-GCM-randnonce.bz2
 third_party/boringssl/src/util/fipstools/acvp/acvptool/test/vectors/ACVP-AES-GCM.bz2
 third_party/boringssl/src/util/fipstools/acvp/acvptool/test/vectors/ACVP-AES-GMAC.bz2
 third_party/boringssl/src/util/fipstools/acvp/acvptool/test/vectors/ACVP-AES-KW.bz2
@@ -7945,12 +7909,20 @@ third_party/dawn/third_party/webgpu-cts/src/resources/cache/webgpu/shader/execut
 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-hflip.mp4
 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
+third_party/dawn/third_party/webgpu-cts/src/resources/four-colors-h264-bt601-vflip.mp4
 third_party/dawn/third_party/webgpu-cts/src/resources/four-colors-h264-bt601.mp4
 third_party/dawn/third_party/webgpu-cts/src/resources/four-colors-theora-bt601.ogv
 third_party/dawn/third_party/webgpu-cts/src/resources/four-colors-vp8-bt601.webm
+third_party/dawn/third_party/webgpu-cts/src/resources/four-colors-vp9-bt601-hflip.mp4
+third_party/dawn/third_party/webgpu-cts/src/resources/four-colors-vp9-bt601-rotate-180.mp4
+third_party/dawn/third_party/webgpu-cts/src/resources/four-colors-vp9-bt601-rotate-270.mp4
+third_party/dawn/third_party/webgpu-cts/src/resources/four-colors-vp9-bt601-rotate-90.mp4
+third_party/dawn/third_party/webgpu-cts/src/resources/four-colors-vp9-bt601-vflip.mp4
+third_party/dawn/third_party/webgpu-cts/src/resources/four-colors-vp9-bt601.mp4
 third_party/dawn/third_party/webgpu-cts/src/resources/four-colors-vp9-bt601.webm
 third_party/dawn/third_party/webgpu-cts/src/resources/four-colors-vp9-bt709.webm
 third_party/devtools-frontend/src/test/e2e/resources/media/corrupt.webm
@@ -7968,8 +7940,10 @@ third_party/devtools-frontend/src/test/e2e/resources/sources/wasm/syntax-highlig
 third_party/devtools-frontend/src/test/e2e/resources/sources/wasm/unreachable.wasm
 third_party/devtools-frontend/src/test/e2e/resources/sources/wasm/unreachable_with_dwarf.wasm
 third_party/devtools-frontend/src/test/e2e/resources/sources/wasm/wasm-with-sourcemap.wasm
+third_party/devtools-frontend/src/test/unittests/fixtures/traces/about-blank-first.json.gz
 third_party/devtools-frontend/src/test/unittests/fixtures/traces/animation.json.gz
 third_party/devtools-frontend/src/test/unittests/fixtures/traces/basic-stack.json.gz
+third_party/devtools-frontend/src/test/unittests/fixtures/traces/basic.cpuprofile.gz
 third_party/devtools-frontend/src/test/unittests/fixtures/traces/basic.json.gz
 third_party/devtools-frontend/src/test/unittests/fixtures/traces/changing-priority.json.gz
 third_party/devtools-frontend/src/test/unittests/fixtures/traces/cls-cluster-max-duration.json.gz
@@ -7996,6 +7970,7 @@ third_party/devtools-frontend/src/test/unittests/fixtures/traces/many-requests.j
 third_party/devtools-frontend/src/test/unittests/fixtures/traces/missing-process-data.json.gz
 third_party/devtools-frontend/src/test/unittests/fixtures/traces/missing-tracing-start.json.gz
 third_party/devtools-frontend/src/test/unittests/fixtures/traces/multiple-lcp-main-frame.json.gz
+third_party/devtools-frontend/src/test/unittests/fixtures/traces/multiple-navigations-same-id.json.gz
 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
@@ -8025,6 +8000,7 @@ third_party/devtools-frontend/src/test/unittests/fixtures/traces/two-functions-r
 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-initial-url.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
@@ -10246,6 +10222,7 @@ third_party/grpc/src/test/core/transport/chttp2/decode_huff_corpus/crash-82795fa
 third_party/harfbuzz-ng/src/test/api/fonts/AdobeVFPrototype-Subset.otf
 third_party/harfbuzz-ng/src/test/api/fonts/AdobeVFPrototype.WA.gpos.otf
 third_party/harfbuzz-ng/src/test/api/fonts/AdobeVFPrototype.WAV.gpos.otf
+third_party/harfbuzz-ng/src/test/api/fonts/AdobeVFPrototype.abc.long_off.otf
 third_party/harfbuzz-ng/src/test/api/fonts/AdobeVFPrototype.abc.otf
 third_party/harfbuzz-ng/src/test/api/fonts/AdobeVFPrototype.abc.static.otf
 third_party/harfbuzz-ng/src/test/api/fonts/AdobeVFPrototype.ac.nohints.otf
@@ -10269,6 +10246,7 @@ third_party/harfbuzz-ng/src/test/api/fonts/SourceHanSans-Regular.41,4C2E.nosubrs
 third_party/harfbuzz-ng/src/test/api/fonts/SourceHanSans-Regular.41,4C2E.nosubrs.otf
 third_party/harfbuzz-ng/src/test/api/fonts/SourceHanSans-Regular.41,4C2E.otf
 third_party/harfbuzz-ng/src/test/api/fonts/SourceHanSans-Regular.41,4C2E.retaingids.otf
+third_party/harfbuzz-ng/src/test/api/fonts/SourceSansPro-Regular.abc.long_off.otf
 third_party/harfbuzz-ng/src/test/api/fonts/SourceSansPro-Regular.abc.otf
 third_party/harfbuzz-ng/src/test/api/fonts/SourceSansPro-Regular.ac.nohints.otf
 third_party/harfbuzz-ng/src/test/api/fonts/SourceSansPro-Regular.ac.nosubrs.nohints.otf
@@ -11161,6 +11139,10 @@ third_party/harfbuzz-ng/src/test/subset/data/expected/cmap14/cmap14_font2.notdef
 third_party/harfbuzz-ng/src/test/subset/data/expected/cmap14/cmap14_font2.notdef-outline.4E08.otf
 third_party/harfbuzz-ng/src/test/subset/data/expected/cmap14/cmap14_font2.notdef-outline.retain-all-codepoint.otf
 third_party/harfbuzz-ng/src/test/subset/data/expected/collect_name_ids/SourceSerif4Variable-Roman_subset.keep-all-layout-features.retain-all-codepoint.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/iftb_requirements/AdobeVFPrototype.default.61,62,63.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/iftb_requirements/AdobeVFPrototype.iftb_requirements.61,62,63.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/iftb_requirements/SourceSansPro-Regular.default.61,62,63.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/iftb_requirements/SourceSansPro-Regular.iftb_requirements.61,62,63.otf
 third_party/harfbuzz-ng/src/test/subset/data/expected/instantiate_cff2/AdobeVFPrototype.default.retain-all-codepoint.wght=650,CNTR=50.otf
 third_party/harfbuzz-ng/src/test/subset/data/expected/instantiate_cff2_update_metrics/Cantarell-VF-ABC.default.retain-all-codepoint.wght=800.otf
 third_party/harfbuzz-ng/src/test/subset/data/expected/instantiate_cff2_update_metrics/Cantarell-VF-ABC.retain-gids.retain-all-codepoint.wght=800.otf
@@ -11765,6 +11747,8 @@ third_party/libavif/src/tests/data/cosmos1650_yuv444_10bpc_p3pq.y4m
 third_party/libavif/src/tests/data/kodim03_yuv420_8bpc.y4m
 third_party/libavif/src/tests/data/kodim23_yuv420_8bpc.y4m
 third_party/libavif/src/tests/data/sRGB2014.icc
+third_party/libavif/src/tests/data/sources/colors.psd
+third_party/libavif/src/tests/data/sources/seine.psd
 third_party/libc++/src/test/std/input.output/iostream.objects/wide.stream.objects/test.dat
 third_party/libdrm/src/intel/tests/gen4-3d.batch
 third_party/libdrm/src/intel/tests/gen5-3d.batch
@@ -14392,6 +14376,7 @@ 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/r8/custom_r8.jar
 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
@@ -14422,6 +14407,24 @@ third_party/rust/chromium_crates_io/vendor/regex-automata-0.4.3/tests/gen/sparse
 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/screen-ai/linux/resources/aksara/aksara_page_layout_analysis_ti_rpn_gro.binarypb
+third_party/screen-ai/linux/resources/gocr/gocr_models/line_recognition_mobile_convnext320/Latn_ctc/optical/assets.extra/LabelMap.pb
+third_party/screen-ai/linux/resources/gocr/gocr_models/line_recognition_mobile_convnext320/Latn_ctc/optical/model.fb
+third_party/screen-ai/linux/resources/gocr/gocr_models/line_recognition_mobile_convnext320/Latn_ctc_cpu.binarypb
+third_party/screen-ai/linux/resources/gocr/gocr_models/line_recognition_mobile_convnext320/tflite_langid.tflite
+third_party/screen-ai/linux/resources/gocr/layout/cluster_sort_custom_ops/model.tflite
+third_party/screen-ai/linux/resources/gocr/layout/line_splitting_custom_ops/model.tflite
+third_party/screen-ai/linux/resources/libchromescreenai.so
+third_party/screen-ai/linux/resources/screen2x_model.tflite
+third_party/screen-ai/linux/resources/taser/detector/region_proposal_text_detector_tflite_vertical_mbv2_v1.bincfg
+third_party/screen-ai/linux/resources/taser/detector/rpn_text_detector_mobile_space_to_depth_quantized_mbv2_v1.tflite
+third_party/screen-ai/linux/resources/taser/rpn_text_detection_tflite_mobile_mbv2.binarypb
+third_party/screen-ai/linux/resources/taser/segmenter/tflite_script_detector_0.3.bincfg
+third_party/screen-ai/linux/resources/taser/segmenter/tflite_script_detector_0.3.conv_model
+third_party/screen-ai/linux/resources/taser/segmenter/tflite_script_detector_0.3.lstm_model
+third_party/screen-ai/linux/resources/taser/taser_script_identification_tflite_mobile.binarypb
+third_party/screen-ai/linux/resources/taser_tflite_gocrlatinconvnext320_mbv2_scriptid_aksara_layout_gro_mobile_engine_ti.binarypb
+third_party/screen-ai/linux/resources/taser_tflite_gocrlatinconvnext320_mbv2_scriptid_aksara_layout_gro_mobile_recognizer.binarypb
 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
@@ -14447,6 +14450,8 @@ third_party/skia/resources/icc_profiles/srgb_lab_pcs.icc
 third_party/skia/resources/icc_profiles/upperLeft.icc
 third_party/skia/resources/icc_profiles/upperRight.icc
 third_party/skia/resources/images/b78329453.jpeg
+third_party/skia/resources/images/crbug1465627.jpeg
+third_party/skia/resources/images/crbug999986.jpeg
 third_party/skia/resources/images/dng_with_preview.dng
 third_party/skia/resources/images/flower-bc1.dds
 third_party/skia/resources/images/flower-etc1.ktx
@@ -14477,6 +14482,7 @@ third_party/snappy/src/testdata/baddata3.snappy
 third_party/snappy/src/testdata/fireworks.jpeg
 third_party/snappy/src/testdata/geo.protodata
 third_party/snappy/src/testdata/kppkn.gtb
+third_party/speedometer/v3.0/resources/todomvc/big-dom-generator/complex-dom-workload.jpeg
 third_party/sqlite/fuzz/db_corpus/dbfuzz2-seed1.db
 third_party/sqlite/fuzz/db_corpus/fuzzdata1.db
 third_party/sqlite/fuzz/db_corpus/fuzzdata2.db
@@ -15535,6 +15541,10 @@ third_party/webgpu-cts/src/src/resources/four-colors-h264-bt601-rotate-90.mp4
 third_party/webgpu-cts/src/src/resources/four-colors-h264-bt601.mp4
 third_party/webgpu-cts/src/src/resources/four-colors-theora-bt601.ogv
 third_party/webgpu-cts/src/src/resources/four-colors-vp8-bt601.webm
+third_party/webgpu-cts/src/src/resources/four-colors-vp9-bt601-rotate-180.mp4
+third_party/webgpu-cts/src/src/resources/four-colors-vp9-bt601-rotate-270.mp4
+third_party/webgpu-cts/src/src/resources/four-colors-vp9-bt601-rotate-90.mp4
+third_party/webgpu-cts/src/src/resources/four-colors-vp9-bt601.mp4
 third_party/webgpu-cts/src/src/resources/four-colors-vp9-bt601.webm
 third_party/webgpu-cts/src/src/resources/four-colors-vp9-bt709.webm
 third_party/webrtc/data/audio_processing/android/output_data_fixed.pb
@@ -15611,6 +15621,7 @@ third_party/webrtc/test/fuzzers/corpora/mdns-corpus/7.mdns
 third_party/webrtc/test/fuzzers/corpora/mdns-corpus/8.mdns
 third_party/webrtc/test/fuzzers/corpora/mdns-corpus/9.mdns
 third_party/webrtc/test/fuzzers/corpora/pseudotcp-corpus/785b96587d0eb44dd5d75b7a886f37e2ac504511
+third_party/webrtc/test/fuzzers/corpora/receive-side-cc/testcase-5414098152390656
 third_party/webrtc/test/fuzzers/corpora/rtcp-corpus/0.rtcp
 third_party/webrtc/test/fuzzers/corpora/rtcp-corpus/1.rtcp
 third_party/webrtc/test/fuzzers/corpora/rtcp-corpus/10.rtcp
@@ -15792,14 +15803,32 @@ third_party/win_build_output/midl/chrome/elevation_service/arm64/elevation_servi
 third_party/win_build_output/midl/chrome/elevation_service/x64/elevation_service_idl.tlb
 third_party/win_build_output/midl/chrome/elevation_service/x86/elevation_service_idl.tlb
 third_party/win_build_output/midl/chrome/updater/app/server/win/arm64/updater_idl.tlb
+third_party/win_build_output/midl/chrome/updater/app/server/win/arm64/updater_idl_system.tlb
+third_party/win_build_output/midl/chrome/updater/app/server/win/arm64/updater_idl_user.tlb
 third_party/win_build_output/midl/chrome/updater/app/server/win/arm64/updater_internal_idl.tlb
+third_party/win_build_output/midl/chrome/updater/app/server/win/arm64/updater_internal_idl_system.tlb
+third_party/win_build_output/midl/chrome/updater/app/server/win/arm64/updater_internal_idl_user.tlb
 third_party/win_build_output/midl/chrome/updater/app/server/win/arm64/updater_legacy_idl.tlb
+third_party/win_build_output/midl/chrome/updater/app/server/win/arm64/updater_legacy_idl_system.tlb
+third_party/win_build_output/midl/chrome/updater/app/server/win/arm64/updater_legacy_idl_user.tlb
 third_party/win_build_output/midl/chrome/updater/app/server/win/x64/updater_idl.tlb
+third_party/win_build_output/midl/chrome/updater/app/server/win/x64/updater_idl_system.tlb
+third_party/win_build_output/midl/chrome/updater/app/server/win/x64/updater_idl_user.tlb
 third_party/win_build_output/midl/chrome/updater/app/server/win/x64/updater_internal_idl.tlb
+third_party/win_build_output/midl/chrome/updater/app/server/win/x64/updater_internal_idl_system.tlb
+third_party/win_build_output/midl/chrome/updater/app/server/win/x64/updater_internal_idl_user.tlb
 third_party/win_build_output/midl/chrome/updater/app/server/win/x64/updater_legacy_idl.tlb
+third_party/win_build_output/midl/chrome/updater/app/server/win/x64/updater_legacy_idl_system.tlb
+third_party/win_build_output/midl/chrome/updater/app/server/win/x64/updater_legacy_idl_user.tlb
 third_party/win_build_output/midl/chrome/updater/app/server/win/x86/updater_idl.tlb
+third_party/win_build_output/midl/chrome/updater/app/server/win/x86/updater_idl_system.tlb
+third_party/win_build_output/midl/chrome/updater/app/server/win/x86/updater_idl_user.tlb
 third_party/win_build_output/midl/chrome/updater/app/server/win/x86/updater_internal_idl.tlb
+third_party/win_build_output/midl/chrome/updater/app/server/win/x86/updater_internal_idl_system.tlb
+third_party/win_build_output/midl/chrome/updater/app/server/win/x86/updater_internal_idl_user.tlb
 third_party/win_build_output/midl/chrome/updater/app/server/win/x86/updater_legacy_idl.tlb
+third_party/win_build_output/midl/chrome/updater/app/server/win/x86/updater_legacy_idl_system.tlb
+third_party/win_build_output/midl/chrome/updater/app/server/win/x86/updater_legacy_idl_user.tlb
 third_party/win_build_output/midl/google_update/arm64/google_update_idl.tlb
 third_party/win_build_output/midl/google_update/x64/google_update_idl.tlb
 third_party/win_build_output/midl/google_update/x86/google_update_idl.tlb

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