Bläddra i källkod

Update to Chromium 92.0.4515.107

Blaise 2 år sedan
förälder
incheckning
4ee8b57c6e
64 ändrade filer med 1404 tillägg och 872 borttagningar
  1. 1 1
      chromium_version.txt
  2. 146 80
      domain_substitution.list
  3. 0 41
      patches/core/chromium-upstream/fix-crash-in-ThemeService.patch
  4. 45 48
      patches/core/inox-patchset/0001-fix-building-without-safebrowsing.patch
  5. 1 1
      patches/core/inox-patchset/0003-disable-autofill-download-manager.patch
  6. 4 4
      patches/core/inox-patchset/0005-disable-default-extensions.patch
  7. 1 1
      patches/core/inox-patchset/0009-disable-google-ipv6-probes.patch
  8. 1 1
      patches/core/inox-patchset/0021-disable-rlz.patch
  9. 26 26
      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. 3 3
      patches/core/iridium-browser/safe_browsing-disable-reporting-of-safebrowsing-over.patch
  12. 3 3
      patches/core/ungoogled-chromium/block-requests.patch
  13. 12 12
      patches/core/ungoogled-chromium/block-trk-and-subdomains.patch
  14. 13 1
      patches/core/ungoogled-chromium/disable-crash-reporter.patch
  15. 2 2
      patches/core/ungoogled-chromium/disable-domain-reliability.patch
  16. 12 10
      patches/core/ungoogled-chromium/disable-floc.patch
  17. 2 2
      patches/core/ungoogled-chromium/disable-fonts-googleapis-references.patch
  18. 3 3
      patches/core/ungoogled-chromium/disable-gcm.patch
  19. 16 25
      patches/core/ungoogled-chromium/disable-google-host-detection.patch
  20. 2 2
      patches/core/ungoogled-chromium/disable-mei-preload.patch
  21. 33 0
      patches/core/ungoogled-chromium/disable-privacy-sandbox.patch
  22. 1 1
      patches/core/ungoogled-chromium/disable-signin.patch
  23. 2 2
      patches/core/ungoogled-chromium/disable-untraceable-urls.patch
  24. 4 4
      patches/core/ungoogled-chromium/disable-webstore-urls.patch
  25. 32 1
      patches/core/ungoogled-chromium/fix-building-with-prunned-binaries.patch
  26. 12 12
      patches/core/ungoogled-chromium/fix-building-without-enabling-reporting.patch
  27. 4 15
      patches/core/ungoogled-chromium/fix-building-without-one-click-signin.patch
  28. 454 97
      patches/core/ungoogled-chromium/fix-building-without-safebrowsing.patch
  29. 125 154
      patches/core/ungoogled-chromium/remove-unused-preferences-fields.patch
  30. 8 8
      patches/core/ungoogled-chromium/toggle-translation-via-switch.patch
  31. 27 27
      patches/extra/bromite/fingerprinting-flags-client-rects-and-measuretext.patch
  32. 12 12
      patches/extra/bromite/flag-fingerprinting-canvas-image-data-noise.patch
  33. 4 4
      patches/extra/bromite/flag-max-connections-per-host.patch
  34. 2 2
      patches/extra/debian/disable/google-api-warning.patch
  35. 1 1
      patches/extra/debian/disable/welcome-page.patch
  36. 6 6
      patches/extra/inox-patchset/0006-modify-default-prefs.patch
  37. 9 7
      patches/extra/inox-patchset/0013-disable-missing-key-warning.patch
  38. 1 1
      patches/extra/iridium-browser/browser-disable-profile-auto-import-on-first-run.patch
  39. 1 1
      patches/extra/iridium-browser/prefs-only-keep-cookies-until-exit.patch
  40. 1 1
      patches/extra/iridium-browser/updater-disable-auto-update.patch
  41. 6 6
      patches/extra/ungoogled-chromium/add-flag-for-pdf-plugin-name.patch
  42. 6 6
      patches/extra/ungoogled-chromium/add-flag-for-search-engine-collection.patch
  43. 3 3
      patches/extra/ungoogled-chromium/add-flag-to-clear-data-on-exit.patch
  44. 1 1
      patches/extra/ungoogled-chromium/add-flag-to-close-window-with-last-tab.patch
  45. 3 3
      patches/extra/ungoogled-chromium/add-flag-to-configure-extension-downloading.patch
  46. 1 1
      patches/extra/ungoogled-chromium/add-flag-to-convert-popups-to-tabs.patch
  47. 1 1
      patches/extra/ungoogled-chromium/add-flag-to-disable-local-history-expiration.patch
  48. 1 1
      patches/extra/ungoogled-chromium/add-flag-to-force-punycode-hostnames.patch
  49. 1 1
      patches/extra/ungoogled-chromium/add-flag-to-hide-crashed-bubble.patch
  50. 3 3
      patches/extra/ungoogled-chromium/add-flag-to-scroll-tabs.patch
  51. 1 1
      patches/extra/ungoogled-chromium/add-flag-to-show-avatar-button.patch
  52. 1 1
      patches/extra/ungoogled-chromium/add-flag-to-stack-tabs.patch
  53. 4 4
      patches/extra/ungoogled-chromium/add-ipv6-probing-option.patch
  54. 3 3
      patches/extra/ungoogled-chromium/add-suggestions-url-field.patch
  55. 1 1
      patches/extra/ungoogled-chromium/add-ungoogled-flag-headers.patch
  56. 5 5
      patches/extra/ungoogled-chromium/disable-download-quarantine.patch
  57. 1 1
      patches/extra/ungoogled-chromium/disable-formatting-in-omnibox.patch
  58. 2 2
      patches/extra/ungoogled-chromium/disable-webgl-renderer-info.patch
  59. 1 1
      patches/extra/ungoogled-chromium/enable-default-prefetch-privacy-changes.patch
  60. 3 3
      patches/extra/ungoogled-chromium/enable-page-saving-on-more-pages.patch
  61. 2 2
      patches/extra/ungoogled-chromium/enable-paste-and-go-new-tab-button.patch
  62. 15 13
      patches/extra/ungoogled-chromium/remove-uneeded-ui.patch
  63. 1 1
      patches/series
  64. 305 185
      pruning.list

+ 1 - 1
chromium_version.txt

@@ -1 +1 @@
-91.0.4472.164
+92.0.4515.107

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 146 - 80
domain_substitution.list


+ 0 - 41
patches/core/chromium-upstream/fix-crash-in-ThemeService.patch

@@ -1,41 +0,0 @@
-From c2d0133f47afb59b4ce64e42215d1d053f15250a Mon Sep 17 00:00:00 2001
-From: Stephan Hartmann <stha09@googlemail.com>
-Date: Tue, 13 Apr 2021 23:21:42 +0000
-Subject: [PATCH] fix crash in ThemeService
-
-ThemeSyncableService and ThemeService are owned by each other. On
-destruction of ThemeService, ThemeSyncableService gets destructed as
-well, but calls RemoveObserver of partly destructed ThemeService object.
-To avoid already destructed |observers_| list, move it before
-|theme_syncable_service_| definition.
-
-Bug: 1190561
-Change-Id: I4dc2c990d589071d97b7fa737afef54463c84751
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2821311
-Commit-Queue: Peter Kasting <pkasting@chromium.org>
-Reviewed-by: Peter Kasting <pkasting@chromium.org>
-Cr-Commit-Position: refs/heads/master@{#872164}
----
-
---- a/chrome/browser/themes/theme_service.h
-+++ b/chrome/browser/themes/theme_service.h
-@@ -299,6 +299,10 @@ class ThemeService : public KeyedService
-   // The number of infobars currently displayed.
-   int number_of_reinstallers_ = 0;
- 
-+  // Declared before |theme_syncable_service_|, because ThemeSyncableService
-+  // removes itself from the |observers_| list on destruction.
-+  base::ObserverList<ThemeServiceObserver> observers_;
-+
-   std::unique_ptr<ThemeSyncableService> theme_syncable_service_;
- 
- #if BUILDFLAG(ENABLE_EXTENSIONS)
-@@ -320,8 +324,6 @@ class ThemeService : public KeyedService
-   ScopedObserver<ui::NativeTheme, ui::NativeThemeObserver>
-       native_theme_observer_{this};
- 
--  base::ObserverList<ThemeServiceObserver> observers_;
--
-   base::WeakPtrFactory<ThemeService> weak_ptr_factory_{this};
- 
-   DISALLOW_COPY_AND_ASSIGN(ThemeService);

+ 45 - 48
patches/core/inox-patchset/0001-fix-building-without-safebrowsing.patch

@@ -1,6 +1,14 @@
 --- a/chrome/browser/BUILD.gn
 +++ b/chrome/browser/BUILD.gn
-@@ -3511,8 +3511,6 @@ static_library("browser") {
+@@ -2170,7 +2170,6 @@ static_library("browser") {
+     "//components/reputation/core:proto",
+     "//components/resources",
+     "//components/safe_browsing/content/browser",
+-    "//components/safe_browsing/content/browser:client_side_detection",
+     "//components/safe_browsing/content/password_protection",
+     "//components/safe_browsing/content/web_ui",
+     "//components/safe_browsing/core:download_file_types_proto",
+@@ -3568,8 +3567,6 @@ static_library("browser") {
        "download/download_commands.h",
        "download/download_crx_util.cc",
        "download/download_crx_util.h",
@@ -42,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"
-@@ -367,8 +366,6 @@ void BrowserProcessImpl::StartTearDown()
+@@ -366,8 +365,6 @@ void BrowserProcessImpl::StartTearDown()
  
    metrics_services_manager_.reset();
    intranet_redirect_detector_.reset();
@@ -51,7 +59,7 @@
    network_time_tracker_.reset();
  #if BUILDFLAG(ENABLE_PLUGINS)
    plugins_resource_service_.reset();
-@@ -972,14 +969,6 @@ StatusTray* BrowserProcessImpl::status_t
+@@ -971,14 +968,6 @@ StatusTray* BrowserProcessImpl::status_t
    return status_tray_.get();
  }
  
@@ -66,7 +74,7 @@
  subresource_filter::RulesetService*
  BrowserProcessImpl::subresource_filter_ruleset_service() {
    DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
-@@ -1229,26 +1218,6 @@ void BrowserProcessImpl::CreateBackgroun
+@@ -1219,26 +1208,6 @@ void BrowserProcessImpl::CreateBackgroun
  #endif
  }
  
@@ -123,7 +131,7 @@
  #include "chrome/browser/search_engines/template_url_service_factory.h"
  #include "chrome/browser/spellchecker/spellcheck_factory.h"
  #include "chrome/browser/spellchecker/spellcheck_service.h"
-@@ -663,10 +662,6 @@ void ChromeBrowsingDataRemoverDelegate::
+@@ -665,10 +664,6 @@ void ChromeBrowsingDataRemoverDelegate::
      base::RecordAction(UserMetricsAction("ClearBrowsingData_Cookies"));
  
      network::mojom::NetworkContext* safe_browsing_context = nullptr;
@@ -136,7 +144,7 @@
          delete_begin, delete_end, filter_builder, host_content_settings_map_,
 --- a/chrome/browser/chrome_content_browser_client.cc
 +++ b/chrome/browser/chrome_content_browser_client.cc
-@@ -1011,30 +1011,6 @@ void SetApplicationLocaleOnIOThread(cons
+@@ -1005,30 +1005,6 @@ void SetApplicationLocaleOnIOThread(cons
    GetIOThreadApplicationLocale() = locale;
  }
  
@@ -167,7 +175,7 @@
  #if BUILDFLAG(ENABLE_EXTENSIONS)
  
  AppLoadedInTabSource ClassifyAppLoadedInTabSource(
-@@ -1462,7 +1438,6 @@ void ChromeContentBrowserClient::PostAft
+@@ -1458,7 +1434,6 @@ void ChromeContentBrowserClient::PostAft
    InitNetworkContextsParentDirectory();
  
    DCHECK_CURRENTLY_ON(BrowserThread::UI);
@@ -175,7 +183,7 @@
  }
  
  bool ChromeContentBrowserClient::IsBrowserStartupComplete() {
-@@ -4196,7 +4171,7 @@ ChromeContentBrowserClient::CreateThrott
+@@ -4132,7 +4107,7 @@ ChromeContentBrowserClient::CreateThrott
        base::BindRepeating(&MaybeTriggerSecurityInterstitialShownEvent));
    throttles.push_back(std::make_unique<SSLErrorNavigationThrottle>(
        handle,
@@ -184,7 +192,7 @@
        base::BindOnce(&HandleSSLErrorWrapper), base::BindOnce(&IsInHostedApp),
        base::BindOnce(
            &TypedNavigationUpgradeThrottle::
-@@ -4224,9 +4199,6 @@ ChromeContentBrowserClient::CreateThrott
+@@ -4160,9 +4135,6 @@ ChromeContentBrowserClient::CreateThrott
                     &throttles);
  #endif
  
@@ -219,7 +227,7 @@
  }  // namespace
 --- a/chrome/browser/download/chrome_download_manager_delegate.cc
 +++ b/chrome/browser/download/chrome_download_manager_delegate.cc
-@@ -392,13 +392,6 @@ ChromeDownloadManagerDelegate::~ChromeDo
+@@ -393,13 +393,6 @@ ChromeDownloadManagerDelegate::~ChromeDo
  
  void ChromeDownloadManagerDelegate::SetDownloadManager(DownloadManager* dm) {
    download_manager_ = dm;
@@ -252,7 +260,7 @@
  void ChromeDownloadManagerDelegate::SanitizeDownloadParameters(
 --- a/chrome/browser/download/download_item_model.cc
 +++ b/chrome/browser/download/download_item_model.cc
-@@ -82,7 +82,7 @@ class DownloadItemModelData : public bas
+@@ -85,7 +85,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.
@@ -261,7 +269,7 @@
  
    // Whether the download is currently being revived.
    bool is_being_revived_;
-@@ -119,7 +119,7 @@ DownloadItemModelData::DownloadItemModel
+@@ -122,7 +122,7 @@ DownloadItemModelData::DownloadItemModel
      : should_show_in_shelf_(true),
        was_ui_notified_(false),
        should_prefer_opening_in_browser_(false),
@@ -269,8 +277,8 @@
 +      danger_level_(safe_browsing::DownloadFileType::NOT_DANGEROUS),
        is_being_revived_(false) {}
  
- } // namespace
-@@ -372,13 +372,13 @@ void DownloadItemModel::SetShouldPreferO
+ }  // namespace
+@@ -376,13 +376,13 @@ void DownloadItemModel::SetShouldPreferO
    data->should_prefer_opening_in_browser_ = preference;
  }
  
@@ -287,7 +295,7 @@
    DownloadItemModelData* data = DownloadItemModelData::GetOrCreate(download_);
    data->danger_level_ = danger_level;
  }
-@@ -539,9 +539,6 @@ bool DownloadItemModel::IsCommandEnabled
+@@ -547,9 +547,6 @@ bool DownloadItemModel::IsCommandEnabled
        // filename. Don't base an "Always open" decision based on it. Also
        // exclude extensions.
        return download_->CanOpenDownload() &&
@@ -315,7 +323,7 @@
    }
  }
  
-@@ -473,10 +466,6 @@ bool DownloadPrefs::IsAutoOpenByPolicy(c
+@@ -480,10 +473,6 @@ bool DownloadPrefs::IsAutoOpenByPolicy(c
  bool DownloadPrefs::EnableAutoOpenByUserBasedOnExtension(
      const base::FilePath& file_name) {
    base::FilePath::StringType extension = file_name.Extension();
@@ -328,7 +336,7 @@
    extension.erase(0, 1);
 --- a/chrome/browser/download/download_target_determiner.cc
 +++ b/chrome/browser/download/download_target_determiner.cc
-@@ -292,13 +292,6 @@ base::FilePath DownloadTargetDeterminer:
+@@ -293,13 +293,6 @@ base::FilePath DownloadTargetDeterminer:
        download_->GetURL(), download_->GetContentDisposition(), referrer_charset,
        suggested_filename, sniffed_mime_type, default_filename);
  
@@ -342,7 +350,7 @@
    // If no mime type or explicitly specified a name, don't replace file
    // extension.
    if (sniffed_mime_type.empty() || !suggested_filename.empty())
-@@ -1097,29 +1090,7 @@ DownloadFileType::DangerLevel DownloadTa
+@@ -1102,29 +1095,7 @@ DownloadFileType::DangerLevel DownloadTa
        download_->HasUserGesture())
      return DownloadFileType::NOT_DANGEROUS;
  
@@ -383,7 +391,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"
-@@ -1301,9 +1300,6 @@ DownloadsAcceptDangerFunction::Downloads
+@@ -1271,9 +1270,6 @@ DownloadsAcceptDangerFunction::Downloads
  
  DownloadsAcceptDangerFunction::~DownloadsAcceptDangerFunction() {}
  
@@ -393,7 +401,7 @@
  ExtensionFunction::ResponseAction DownloadsAcceptDangerFunction::Run() {
    std::unique_ptr<downloads::AcceptDanger::Params> params(
        downloads::AcceptDanger::Params::Create(*args_));
-@@ -1341,41 +1337,7 @@ void DownloadsAcceptDangerFunction::Prom
+@@ -1311,42 +1307,7 @@ void DownloadsAcceptDangerFunction::Prom
      return;
    }
    RecordApiFunctions(DOWNLOADS_FUNCTION_ACCEPT_DANGER);
@@ -410,7 +418,8 @@
 -}
 -
 -void DownloadsAcceptDangerFunction::DangerPromptCallback(
--    int download_id, DownloadDangerPrompt::Action action) {
+-    int download_id,
+-    DownloadDangerPrompt::Action action) {
 -  DCHECK_CURRENTLY_ON(BrowserThread::UI);
 -  DownloadItem* download_item = GetDownload(
 -      browser_context(), include_incognito_information(), download_id);
@@ -475,7 +484,7 @@
  
 --- a/chrome/browser/extensions/api/safe_browsing_private/safe_browsing_private_api.cc
 +++ b/chrome/browser/extensions/api/safe_browsing_private/safe_browsing_private_api.cc
-@@ -52,37 +52,7 @@ SafeBrowsingPrivateGetReferrerChainFunct
+@@ -53,37 +53,7 @@ SafeBrowsingPrivateGetReferrerChainFunct
          base::StringPrintf("Could not find tab with id %d.", params->tab_id)));
    }
  
@@ -534,7 +543,7 @@
  }
  
  void WebstorePrivateBeginInstallWithManifest3Function::OnInstallPromptDone(
-@@ -1180,51 +1168,9 @@ WebstorePrivateGetReferrerChainFunction:
+@@ -1176,51 +1164,9 @@ WebstorePrivateGetReferrerChainFunction:
  
  ExtensionFunction::ResponseAction
  WebstorePrivateGetReferrerChainFunction::Run() {
@@ -669,7 +678,7 @@
    // SimpleURLLoader -> (owned loader, extension id).
 --- a/chrome/browser/metrics/chrome_metrics_service_client.cc
 +++ b/chrome/browser/metrics/chrome_metrics_service_client.cc
-@@ -800,9 +800,6 @@ void ChromeMetricsServiceClient::Registe
+@@ -811,9 +811,6 @@ void ChromeMetricsServiceClient::Registe
    metrics_service_->RegisterMetricsProvider(
        std::make_unique<HttpsEngagementMetricsProvider>());
  
@@ -693,7 +702,7 @@
  // static
 --- a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc
 +++ b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc
-@@ -277,7 +277,6 @@ void ChromeBrowserMainExtraPartsProfiles
+@@ -288,7 +288,6 @@ void ChromeBrowserMainExtraPartsProfiles
  #if BUILDFLAG(IS_CHROMEOS_LACROS)
    CertDbInitializerFactory::GetInstance();
  #endif
@@ -703,7 +712,7 @@
  #endif
 --- a/chrome/browser/profiles/profile_impl.cc
 +++ b/chrome/browser/profiles/profile_impl.cc
-@@ -91,7 +91,6 @@
+@@ -90,7 +90,6 @@
  #include "chrome/browser/profiles/profile_metrics.h"
  #include "chrome/browser/push_messaging/push_messaging_service_factory.h"
  #include "chrome/browser/push_messaging/push_messaging_service_impl.h"
@@ -711,7 +720,7 @@
  #include "chrome/browser/sharing/sharing_service_factory.h"
  #include "chrome/browser/signin/identity_manager_factory.h"
  #include "chrome/browser/signin/signin_ui_util.h"
-@@ -650,17 +649,6 @@ void ProfileImpl::LoadPrefsForNormalStar
+@@ -652,17 +651,6 @@ void ProfileImpl::LoadPrefsForNormalStar
  
    mojo::PendingRemote<prefs::mojom::TrackedPreferenceValidationDelegate>
        pref_validation_delegate;
@@ -731,7 +740,7 @@
        CreatePrefService(pref_registry_, CreateExtensionPrefStore(this, false),
 --- a/chrome/browser/profiles/profiles_state.cc
 +++ b/chrome/browser/profiles/profiles_state.cc
-@@ -319,9 +319,6 @@ void RemoveBrowsingDataForProfile(const
+@@ -315,9 +315,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.
@@ -759,7 +768,7 @@
  
    if (safe_browsing_mode != 0) {
      # "Safe Browsing Basic" files used for safe browsing in full mode
-@@ -392,6 +394,7 @@ static_library("advanced_protection") {
+@@ -395,6 +397,7 @@ static_library("advanced_protection") {
  }
  
  source_set("metrics_collector") {
@@ -767,7 +776,7 @@
    sources = [
      "safe_browsing_metrics_collector.cc",
      "safe_browsing_metrics_collector.h",
-@@ -409,6 +412,7 @@ source_set("metrics_collector") {
+@@ -412,6 +415,7 @@ source_set("metrics_collector") {
      "//components/safe_browsing/core/common:safe_browsing_prefs",
      "//content/public/browser",
    ]
@@ -866,21 +875,9 @@
    return security_state::MALICIOUS_CONTENT_STATUS_NONE;
  }
  
---- a/chrome/browser/subresource_filter/chrome_subresource_filter_client.cc
-+++ b/chrome/browser/subresource_filter/chrome_subresource_filter_client.cc
-@@ -53,8 +53,5 @@ void ChromeSubresourceFilterClient::Show
- 
- const scoped_refptr<safe_browsing::SafeBrowsingDatabaseManager>
- ChromeSubresourceFilterClient::GetSafeBrowsingDatabaseManager() {
--  safe_browsing::SafeBrowsingService* safe_browsing_service =
--      g_browser_process->safe_browsing_service();
--  return safe_browsing_service ? safe_browsing_service->database_manager()
--                               : nullptr;
-+  return nullptr;
- }
 --- a/chrome/browser/ui/BUILD.gn
 +++ b/chrome/browser/ui/BUILD.gn
-@@ -3691,7 +3691,6 @@ static_library("ui") {
+@@ -3754,7 +3754,6 @@ static_library("ui") {
        "views/device_chooser_content_view.h",
        "views/devtools_process_observer.cc",
        "views/devtools_process_observer.h",
@@ -890,7 +887,7 @@
        "views/download/download_item_view.cc",
 --- a/chrome/browser/ui/tab_helpers.cc
 +++ b/chrome/browser/ui/tab_helpers.cc
-@@ -308,11 +308,6 @@ void TabHelpers::AttachTabHelpers(WebCon
+@@ -315,11 +315,6 @@ void TabHelpers::AttachTabHelpers(WebCon
    //     See https://crbug.com/910288.
    resource_coordinator::ResourceCoordinatorTabHelper::CreateForWebContents(
        web_contents);
@@ -912,7 +909,7 @@
  #include "chrome/browser/download/download_history.h"
  #include "chrome/browser/download/download_item_model.h"
  #include "chrome/browser/download/download_prefs.h"
-@@ -168,9 +167,6 @@ void DownloadsDOMHandler::SaveDangerousR
+@@ -171,9 +170,6 @@ void DownloadsDOMHandler::SaveDangerousR
    }
  
    CountDownloadsDOMEvents(DOWNLOADS_DOM_EVENT_SAVE_DANGEROUS);
@@ -922,7 +919,7 @@
  }
  
  void DownloadsDOMHandler::DiscardDangerous(const std::string& id) {
-@@ -316,12 +312,6 @@ void DownloadsDOMHandler::RemoveDownload
+@@ -319,12 +315,6 @@ void DownloadsDOMHandler::RemoveDownload
    IdSet ids;
  
    for (auto* download : to_remove) {
@@ -935,7 +932,7 @@
      DownloadItemModel item_model(download);
      if (!item_model.ShouldShowInShelf() ||
          download->GetState() == download::DownloadItem::IN_PROGRESS) {
-@@ -395,44 +385,6 @@ void DownloadsDOMHandler::FinalizeRemova
+@@ -398,44 +388,6 @@ void DownloadsDOMHandler::FinalizeRemova
    }
  }
  
@@ -1166,7 +1163,7 @@
  #include "components/subresource_filter/content/renderer/unverified_ruleset_dealer.h"
 --- a/components/security_interstitials/content/cert_report_helper.cc
 +++ b/components/security_interstitials/content/cert_report_helper.cc
-@@ -178,7 +178,6 @@ void CertReportHelper::FinishCertCollect
+@@ -177,7 +177,6 @@ void CertReportHelper::FinishCertCollect
      return;
    }
  

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

@@ -1,6 +1,6 @@
 --- a/components/autofill/core/browser/autofill_download_manager.cc
 +++ b/components/autofill/core/browser/autofill_download_manager.cc
-@@ -831,96 +831,6 @@ AutofillDownloadManager::GetRequestURLAn
+@@ -829,96 +829,6 @@ AutofillDownloadManager::GetRequestURLAn
  }
  
  bool AutofillDownloadManager::StartRequest(FormRequestData request_data) {

+ 4 - 4
patches/core/inox-patchset/0005-disable-default-extensions.patch

@@ -1,6 +1,6 @@
 --- a/chrome/browser/extensions/component_extensions_allowlist/allowlist.cc
 +++ b/chrome/browser/extensions/component_extensions_allowlist/allowlist.cc
-@@ -28,7 +28,6 @@ namespace extensions {
+@@ -29,7 +29,6 @@ namespace extensions {
  bool IsComponentExtensionAllowlisted(const std::string& extension_id) {
    const char* const kAllowed[] = {
      extension_misc::kCastExtensionIdRelease,
@@ -10,7 +10,7 @@
      extension_misc::kAccessibilityCommonExtensionId,
 --- a/chrome/browser/extensions/component_loader.cc
 +++ b/chrome/browser/extensions/component_loader.cc
-@@ -352,11 +352,6 @@ void ComponentLoader::AddWebStoreApp() {
+@@ -353,11 +353,6 @@ void ComponentLoader::AddWebStoreApp() {
    if (!IsNormalSession())
      return;
  #endif
@@ -22,7 +22,7 @@
  }
  
  #if BUILDFLAG(IS_CHROMEOS_ASH)
-@@ -527,18 +522,6 @@ void ComponentLoader::AddDefaultComponen
+@@ -534,18 +529,6 @@ void ComponentLoader::AddDefaultComponen
      AddHangoutServicesExtension();
  #endif  // BUILDFLAG(ENABLE_HANGOUT_SERVICES_EXTENSION)
  
@@ -76,7 +76,7 @@
  }
  
  // http://crbug.com/165634
-@@ -714,21 +700,6 @@ void WebstoreInstaller::UpdateDownloadPr
+@@ -713,21 +699,6 @@ void WebstoreInstaller::UpdateDownloadPr
  void WebstoreInstaller::StartCrxInstaller(const DownloadItem& download) {
    DCHECK_CURRENTLY_ON(BrowserThread::UI);
    DCHECK(!crx_installer_.get());

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

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

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

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

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

@@ -77,9 +77,9 @@ by default.
  
    _RemoveKeys(plist, 'KSChannelID')
    if base_tag != '':
---- a/chrome/browser/chromeos/customization/customization_document.cc
-+++ b/chrome/browser/chromeos/customization/customization_document.cc
-@@ -172,7 +172,7 @@ std::string ReadFileInBackground(const b
+--- a/chrome/browser/ash/customization/customization_document.cc
++++ b/chrome/browser/ash/customization/customization_document.cc
+@@ -173,7 +173,7 @@ std::string ReadFileInBackground(const b
  
  // Template URL where to fetch OEM services customization manifest from.
  const char ServicesCustomizationDocument::kManifestUrl[] =
@@ -98,10 +98,10 @@ by default.
 +  scopes.emplace_back("trk:208:https://www.googleapis.com/auth/drive.readonly");
  
    scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory =
-       content::BrowserContext::GetDefaultStoragePartition(browser_context())
+       browser_context()
 --- a/chrome/browser/chromeos/extensions/file_manager/private_api_misc.cc
 +++ b/chrome/browser/chromeos/extensions/file_manager/private_api_misc.cc
-@@ -81,7 +81,7 @@ namespace {
+@@ -82,7 +82,7 @@ namespace {
  
  using api::file_manager_private::ProfileInfo;
  
@@ -112,7 +112,7 @@ by default.
  constexpr base::TimeDelta kMountCrostiniSlowOperationThreshold =
 --- a/chrome/browser/chromeos/policy/remote_commands/crd_host_delegate.cc
 +++ b/chrome/browser/chromeos/policy/remote_commands/crd_host_delegate.cc
-@@ -78,11 +78,11 @@ constexpr char kCRDConnectClientKey[] =
+@@ -36,11 +36,11 @@ namespace {
  
  // OAuth2 Token scopes
  constexpr char kCloudDevicesOAuth2Scope[] =
@@ -125,8 +125,8 @@ by default.
 -    "https://www.googleapis.com/auth/tachyon";
 +    "trk:235:https://www.googleapis.com/auth/tachyon";
  
- }  // namespace
- 
+ class DefaultNativeMessageHostFactory
+     : public CRDHostDelegate::NativeMessageHostFactory {
 --- a/chrome/browser/extensions/api/cryptotoken_private/cryptotoken_private_api.cc
 +++ b/chrome/browser/extensions/api/cryptotoken_private/cryptotoken_private_api.cc
 @@ -42,8 +42,8 @@ namespace {
@@ -175,7 +175,7 @@ by default.
                                ? upload_url_for_testing_
 --- a/chrome/browser/nacl_host/nacl_infobar_delegate.cc
 +++ b/chrome/browser/nacl_host/nacl_infobar_delegate.cc
-@@ -32,7 +32,7 @@ std::u16string NaClInfoBarDelegate::GetL
+@@ -33,7 +33,7 @@ std::u16string NaClInfoBarDelegate::GetL
  }
  
  GURL NaClInfoBarDelegate::GetLinkURL() const {
@@ -197,7 +197,7 @@ by default.
  ProfileAvatarDownloader::ProfileAvatarDownloader(size_t icon_index,
 --- a/chrome/browser/resources/default_apps/external_extensions.json
 +++ b/chrome/browser/resources/default_apps/external_extensions.json
-@@ -27,17 +27,17 @@
+@@ -23,17 +23,17 @@
    },
    // Google Sheets
    "aapocclcgogkmnckokdopfmhonfmgoek" : {
@@ -242,7 +242,7 @@ by default.
                base::ToLowerASCII(bdict_file));
 --- a/chrome/browser/supervised_user/supervised_user_service.cc
 +++ b/chrome/browser/supervised_user/supervised_user_service.cc
-@@ -85,7 +85,7 @@ namespace {
+@@ -86,7 +86,7 @@ namespace {
  
  // The URL from which to download a host denylist if no local one exists yet.
  const char kDenylistURL[] =
@@ -275,7 +275,7 @@ by default.
  // The maximum number of ignored bubble we track in the NumLaterPerReinstall
 --- a/chrome/browser/ui/webui/ntp/ntp_resource_cache.cc
 +++ b/chrome/browser/ui/webui/ntp/ntp_resource_cache.cc
-@@ -68,22 +68,22 @@ namespace {
+@@ -67,22 +67,22 @@ namespace {
  // The URL for the the Learn More page shown on incognito new tab.
  const char kLearnMoreIncognitoUrl[] =
  #if BUILDFLAG(IS_CHROMEOS_ASH)
@@ -385,7 +385,7 @@ by default.
  
 --- a/components/cloud_devices/common/cloud_devices_urls.cc
 +++ b/components/cloud_devices/common/cloud_devices_urls.cc
-@@ -14,14 +14,14 @@
+@@ -13,14 +13,14 @@
  namespace cloud_devices {
  
  const char kCloudPrintAuthScope[] =
@@ -429,7 +429,7 @@ by default.
  
 --- a/components/google/core/common/google_util.cc
 +++ b/components/google/core/common/google_util.cc
-@@ -139,7 +139,7 @@ bool IsGoogleSearchSubdomainUrl(const GU
+@@ -140,7 +140,7 @@ bool IsGoogleSearchSubdomainUrl(const GU
  
  // Global functions -----------------------------------------------------------
  
@@ -487,15 +487,15 @@ by default.
      base::Time out_time;
 --- a/components/safe_browsing/content/browser/client_side_detection_service.cc
 +++ b/components/safe_browsing/content/browser/client_side_detection_service.cc
-@@ -59,7 +59,7 @@ const int ClientSideDetectionService::kN
+@@ -60,7 +60,7 @@ const int ClientSideDetectionService::kN
  const int ClientSideDetectionService::kPositiveCacheIntervalMinutes = 30;
  
  const char ClientSideDetectionService::kClientReportPhishingUrl[] =
 -    "https://sb-ssl.google.com/safebrowsing/clientreport/phishing";
 +    "trk:148:https://sb-ssl.google.com/safebrowsing/clientreport/phishing";
  
- constexpr char kAuthHeaderBearer[] = "Bearer ";
- 
+ struct ClientSideDetectionService::ClientPhishingReportInfo {
+   std::unique_ptr<network::SimpleURLLoader> loader;
 --- a/components/safe_search_api/safe_search/safe_search_url_checker_client.cc
 +++ b/components/safe_search_api/safe_search/safe_search_url_checker_client.cc
 @@ -29,7 +29,7 @@ namespace safe_search_api {
@@ -563,7 +563,7 @@ by default.
  
 --- a/content/browser/webauth/authenticator_common.cc
 +++ b/content/browser/webauth/authenticator_common.cc
-@@ -178,9 +178,9 @@ base::Optional<std::string> ProcessAppId
+@@ -178,9 +178,9 @@ absl::optional<std::string> ProcessAppId
    // special-case AppIDs. Firefox also does this:
    // https://groups.google.com/forum/#!msg/mozilla.dev.platform/Uiu3fwnA2xw/201ynAiPAQAJ
    const GURL kGstatic1 =
@@ -577,7 +577,7 @@ by default.
    if (origin.DomainIs("google.com") && !appid_url.has_ref() &&
 --- a/content/shell/browser/shell_browser_main_parts.cc
 +++ b/content/shell/browser/shell_browser_main_parts.cc
-@@ -89,7 +89,7 @@ GURL GetStartupURL() {
+@@ -87,7 +87,7 @@ GURL GetStartupURL() {
  #else
    const base::CommandLine::StringVector& args = command_line->GetArgs();
    if (args.empty())
@@ -802,15 +802,15 @@ by default.
      const jingle_xmpp::QName QN_GOOGLE_AUTH_CLIENT_USES_FULL_BIND_RESULT(
 --- a/remoting/base/breakpad_mac.mm
 +++ b/remoting/base/breakpad_mac.mm
-@@ -52,7 +52,7 @@ void InitializeCrashReporting() {
-       [breakpad_config setObject:@"21600" forKey:@BREAKPAD_REPORT_INTERVAL];
+@@ -50,7 +50,7 @@ void InitializeCrashReporting() {
+       breakpad_config[@BREAKPAD_REPORT_INTERVAL] = @"21600";
      }
-     if (![breakpad_config objectForKey:@BREAKPAD_URL]) {
--      [breakpad_config setObject:@"https://clients2.google.com/cr/report"
-+      [breakpad_config setObject:@"trk:310:https://clients2.google.com/cr/report"
-                           forKey:@BREAKPAD_URL];
+     if (!breakpad_config[@BREAKPAD_URL]) {
+-      breakpad_config[@BREAKPAD_URL] = @"https://clients2.google.com/cr/report";
++      breakpad_config[@BREAKPAD_URL] = @"trk:310:https://clients2.google.com/cr/report";
      }
  
+     if (!BreakpadCreate(breakpad_config)) {
 --- a/remoting/protocol/jingle_messages.cc
 +++ b/remoting/protocol/jingle_messages.cc
 @@ -27,7 +27,7 @@ const char kJabberNamespace[] = "jabber:
@@ -824,7 +824,7 @@ by default.
  
 --- a/rlz/lib/lib_values.cc
 +++ b/rlz/lib/lib_values.cc
-@@ -41,7 +41,7 @@ const char kSetDccResponseVariable[] = "
+@@ -40,7 +40,7 @@ const char kSetDccResponseVariable[] = "
  //
  
  const char kFinancialPingPath[] = "/tools/pso/ping";

+ 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).
  
 --- a/chrome/browser/safe_browsing/safe_browsing_service.cc
 +++ b/chrome/browser/safe_browsing/safe_browsing_service.cc
-@@ -261,7 +261,7 @@ SafeBrowsingUIManager* SafeBrowsingServi
+@@ -262,7 +262,7 @@ SafeBrowsingUIManager* SafeBrowsingServi
  }
  
  void SafeBrowsingService::RegisterAllDelayedAnalysis() {

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

@@ -13,7 +13,7 @@ This prevents trk:148 (phishing) and trk:149 (malware).
 
 --- a/components/safe_browsing/content/browser/client_side_detection_service.cc
 +++ b/components/safe_browsing/content/browser/client_side_detection_service.cc
-@@ -222,6 +222,10 @@ void ClientSideDetectionService::StartCl
+@@ -208,6 +208,10 @@ void ClientSideDetectionService::StartCl
      return;
    }
  
@@ -22,9 +22,9 @@ This prevents trk:148 (phishing) and trk:149 (malware).
 +    callback.Run(GURL(request->url()), false);
 +#else
    // Fill in metadata about which model we used.
-   request->set_model_filename(model_loader_->name());
    *request->mutable_population() = delegate_->GetUserPopulation();
-@@ -303,6 +307,7 @@ void ClientSideDetectionService::StartCl
+ 
+@@ -288,6 +292,7 @@ void ClientSideDetectionService::StartCl
        base::BindOnce(&WebUIInfoSingleton::AddToClientPhishingRequestsSent,
                       base::Unretained(WebUIInfoSingleton::GetInstance()),
                       std::move(request), access_token));

+ 3 - 3
patches/core/ungoogled-chromium/block-requests.patch

@@ -15,7 +15,7 @@
    </script>
 --- a/chrome/browser/search/background/ntp_background_service.cc
 +++ b/chrome/browser/search/background/ntp_background_service.cc
-@@ -66,6 +66,7 @@ void NtpBackgroundService::Shutdown() {
+@@ -65,6 +65,7 @@ void NtpBackgroundService::Shutdown() {
  }
  
  void NtpBackgroundService::FetchCollectionInfo() {
@@ -25,7 +25,7 @@
    collection_error_info_.ClearError();
 --- a/chrome/browser/search/one_google_bar/one_google_bar_loader_impl.cc
 +++ b/chrome/browser/search/one_google_bar/one_google_bar_loader_impl.cc
-@@ -296,6 +296,7 @@ OneGoogleBarLoaderImpl::OneGoogleBarLoad
+@@ -298,6 +298,7 @@ OneGoogleBarLoaderImpl::OneGoogleBarLoad
  OneGoogleBarLoaderImpl::~OneGoogleBarLoaderImpl() = default;
  
  void OneGoogleBarLoaderImpl::Load(OneGoogleCallback callback) {
@@ -65,7 +65,7 @@
    if (state_ == REQUESTING) {
 --- a/components/update_client/update_checker.cc
 +++ b/components/update_client/update_checker.cc
-@@ -128,6 +128,7 @@ void UpdateCheckerImpl::CheckForUpdates(
+@@ -127,6 +127,7 @@ void UpdateCheckerImpl::CheckForUpdates(
      const base::flat_map<std::string, std::string>& additional_attributes,
      bool enabled_component_updates,
      UpdateCheckCallback update_check_callback) {

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

@@ -35,7 +35,7 @@
      GURL rewritten_tab_url = tab_url;
 --- a/components/omnibox/browser/autocomplete_input.cc
 +++ b/components/omnibox/browser/autocomplete_input.cc
-@@ -525,7 +525,8 @@ void AutocompleteInput::ParseForEmphasiz
+@@ -532,7 +532,8 @@ void AutocompleteInput::ParseForEmphasiz
    // For the view-source and blob schemes, we should emphasize the host of the
    // URL qualified by the view-source or blob prefix.
    if ((base::LowerCaseEqualsASCII(scheme_str, kViewSourceScheme) ||
@@ -70,15 +70,15 @@
    // TODO(nick): https://crbug.com/651534 blob: and filesystem: schemes embed
 --- a/net/BUILD.gn
 +++ b/net/BUILD.gn
-@@ -1076,6 +1076,8 @@ component("net") {
-       "url_request/report_sender.h",
-       "url_request/static_http_user_agent_settings.cc",
-       "url_request/static_http_user_agent_settings.h",
-+      "url_request/trk_protocol_handler.cc",
-+      "url_request/trk_protocol_handler.h",
-       "url_request/url_fetcher.cc",
-       "url_request/url_fetcher.h",
-       "url_request/url_fetcher_core.cc",
+@@ -1013,6 +1013,8 @@ component("net") {
+     "url_request/report_sender.h",
+     "url_request/static_http_user_agent_settings.cc",
+     "url_request/static_http_user_agent_settings.h",
++    "url_request/trk_protocol_handler.cc",
++    "url_request/trk_protocol_handler.h",
+     "url_request/url_fetcher.cc",
+     "url_request/url_fetcher.h",
+     "url_request/url_fetcher_core.cc",
 --- /dev/null
 +++ b/net/url_request/trk_protocol_handler.cc
 @@ -0,0 +1,25 @@
@@ -152,7 +152,7 @@
  #include "base/strings/utf_string_conversions.h"
  #include "base/synchronization/lock.h"
  #include "base/threading/thread_task_runner_handle.h"
-@@ -41,6 +42,7 @@
+@@ -44,6 +45,7 @@
  #include "net/url_request/url_request_redirect_job.h"
  #include "url/gurl.h"
  #include "url/origin.h"
@@ -160,7 +160,7 @@
  
  using base::Time;
  using std::string;
-@@ -577,6 +579,12 @@ URLRequest::URLRequest(const GURL& url,
+@@ -582,6 +584,12 @@ URLRequest::URLRequest(const GURL& url,
    // Sanity check out environment.
    DCHECK(base::ThreadTaskRunnerHandle::IsSet());
  

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

@@ -13,7 +13,7 @@
 -      base::BindOnce(&TraceCrashServiceUploader::DoCompressOnBackgroundThread,
 -                     base::Unretained(this), file_contents, upload_mode,
 -                     upload_url_, std::move(metadata)));
-+      base::Bind(progress_callback_, 1, 1));
++      base::BindOnce(progress_callback_, 1, 1));
 +  }
 +  if (!done_callback_.is_null()) {
 +    base::ThreadPool::PostTask(
@@ -31,3 +31,15 @@
    DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
    DCHECK(!simple_url_loader_);
  
+--- a/components/crash/core/app/crashpad_linux.cc
++++ b/components/crash/core/app/crashpad_linux.cc
+@@ -54,8 +54,7 @@ void SetFirstChanceExceptionHandler(bool
+ }
+ 
+ bool IsCrashpadEnabled() {
+-  return base::CommandLine::ForCurrentProcess()->HasSwitch(
+-      ::switches::kEnableCrashpad);
++  return false;
+ }
+ 
+ bool GetHandlerSocket(int* fd, pid_t* pid) {

+ 2 - 2
patches/core/ungoogled-chromium/disable-domain-reliability.patch

@@ -677,8 +677,8 @@
      const std::string& hostname) {
    bool is_www_subdomain =
 @@ -578,23 +20,6 @@ std::unique_ptr<const DomainReliabilityC
-   std::unique_ptr<const DomainReliabilityConfig> config = nullptr;
-   std::unique_ptr<const DomainReliabilityConfig> superdomain_config = nullptr;
+   std::unique_ptr<const DomainReliabilityConfig> config;
+   std::unique_ptr<const DomainReliabilityConfig> superdomain_config;
  
 -  for (const auto& params : kGoogleConfigs) {
 -    if (params.hostname == hostname) {

+ 12 - 10
patches/core/ungoogled-chromium/disable-floc.patch

@@ -43,22 +43,24 @@
  }  // namespace federated_learning
 --- a/chrome/browser/privacy_sandbox/privacy_sandbox_settings.cc
 +++ b/chrome/browser/privacy_sandbox/privacy_sandbox_settings.cc
-@@ -174,11 +174,7 @@ PrivacySandboxSettings::~PrivacySandboxS
- bool PrivacySandboxSettings::IsFlocAllowed(
-     const GURL& url,
-     const base::Optional<url::Origin>& top_frame_origin) const {
--  ContentSettingsForOneType cookie_settings;
--  cookie_settings_->GetCookieSettings(&cookie_settings);
+@@ -211,13 +211,7 @@ PrivacySandboxSettings::~PrivacySandboxS
+ }
+ 
+ bool PrivacySandboxSettings::IsFlocAllowed() const {
+-  if (!PrivacySandboxSettingsFunctional()) {
+-    // Simply respect 3rd-party cookies blocking settings if the UI is not
+-    // available.
+-    return !cookie_settings_->ShouldBlockThirdPartyCookies();
+-  }
 -
--  return IsPrivacySandboxAllowedForContext(url, top_frame_origin,
--                                           cookie_settings);
+-  return IsFlocAllowedByPrefs(pref_service_);
 +  return false;
  }
  
- base::Time PrivacySandboxSettings::FlocDataAccessibleSince() const {
+ bool PrivacySandboxSettings::IsFlocAllowedForContext(
 --- a/components/federated_learning/features/features.cc
 +++ b/components/federated_learning/features/features.cc
-@@ -28,7 +28,7 @@ const base::Feature kFlocPagesWithAdReso
+@@ -34,7 +34,7 @@ const base::Feature kFlocPagesWithAdReso
  // required.
  // TODO(yaoxia): merge other floc features into this one.
  const base::Feature kFederatedLearningOfCohorts{

+ 2 - 2
patches/core/ungoogled-chromium/disable-fonts-googleapis-references.patch

@@ -1,7 +1,7 @@
 # Disables references to fonts.googleapis.com
 
---- a/chrome/browser/chromeos/child_accounts/time_limits/web_time_limit_error_page/resources/web_time_limit_error_page.html
-+++ b/chrome/browser/chromeos/child_accounts/time_limits/web_time_limit_error_page/resources/web_time_limit_error_page.html
+--- a/chrome/browser/ash/child_accounts/time_limits/web_time_limit_error_page/resources/web_time_limit_error_page.html
++++ b/chrome/browser/ash/child_accounts/time_limits/web_time_limit_error_page/resources/web_time_limit_error_page.html
 @@ -5,7 +5,7 @@
  <meta name="viewport"
        content="initial-scale=1, minimum-scale=1,width=device-width">

+ 3 - 3
patches/core/ungoogled-chromium/disable-gcm.patch

@@ -2,7 +2,7 @@
 
 --- a/components/gcm_driver/gcm_client_impl.cc
 +++ b/components/gcm_driver/gcm_client_impl.cc
-@@ -467,6 +467,7 @@ void GCMClientImpl::StartGCM() {
+@@ -466,6 +466,7 @@ void GCMClientImpl::StartGCM() {
  
  void GCMClientImpl::InitializeMCSClient() {
    DCHECK(network_connection_tracker_);
@@ -10,7 +10,7 @@
    std::vector<GURL> endpoints;
    endpoints.push_back(gservices_settings_.GetMCSMainEndpoint());
    GURL fallback_endpoint = gservices_settings_.GetMCSFallbackEndpoint();
-@@ -672,27 +673,6 @@ void GCMClientImpl::RemoveHeartbeatInter
+@@ -671,27 +672,6 @@ void GCMClientImpl::RemoveHeartbeatInter
  
  void GCMClientImpl::StartCheckin() {
    DCHECK(io_task_runner_->RunsTasksInCurrentSequence());
@@ -38,7 +38,7 @@
  }
  
  void GCMClientImpl::OnCheckinCompleted(
-@@ -749,24 +729,6 @@ void GCMClientImpl::SetGServicesSettings
+@@ -748,24 +728,6 @@ void GCMClientImpl::SetGServicesSettings
  
  void GCMClientImpl::SchedulePeriodicCheckin() {
    DCHECK(io_task_runner_->RunsTasksInCurrentSequence());

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

@@ -13,7 +13,7 @@
  namespace {
  
  #if defined(OS_ANDROID)
-@@ -66,61 +62,6 @@ void GoogleURLLoaderThrottle::DetachFrom
+@@ -64,52 +60,6 @@ void GoogleURLLoaderThrottle::DetachFrom
  void GoogleURLLoaderThrottle::WillStartRequest(
      network::ResourceRequest* request,
      bool* defer) {
@@ -54,15 +54,6 @@
 -      google_util::IsGoogleHomePageUrl(request->url) ||
 -      google_util::IsGoogleSearchUrl(request->url);
 -  if (is_google_homepage_or_search) {
--    // TODO (crbug.com/1081510): Remove this experimental code once a final
--    // solution is agreed upon.
--    if (base::FeatureList::IsEnabled(features::kAndroidDarkSearch)) {
--      request->url = net::AppendOrReplaceQueryParameter(
--          request->url, "cs", night_mode_enabled_ ? "1" : "0");
--    }
--    base::UmaHistogramBoolean("Android.DarkTheme.DarkSearchRequested",
--                              night_mode_enabled_);
--
 -    if (base::FeatureList::IsEnabled(features::kRequestDesktopSiteForTablets) &&
 -        ui::GetDeviceFormFactor() == ui::DEVICE_FORM_FACTOR_TABLET) {
 -      request->headers.SetHeader(kRequestDesktopDataHeader,
@@ -75,7 +66,7 @@
  }
  
  void GoogleURLLoaderThrottle::WillRedirectRequest(
-@@ -130,37 +71,6 @@ void GoogleURLLoaderThrottle::WillRedire
+@@ -119,37 +69,6 @@ void GoogleURLLoaderThrottle::WillRedire
      std::vector<std::string>* to_be_removed_headers,
      net::HttpRequestHeaders* modified_headers,
      net::HttpRequestHeaders* modified_cors_exempt_headers) {
@@ -113,7 +104,7 @@
  }
  
  #if BUILDFLAG(ENABLE_EXTENSIONS)
-@@ -168,22 +78,5 @@ void GoogleURLLoaderThrottle::WillProces
+@@ -157,22 +76,5 @@ void GoogleURLLoaderThrottle::WillProces
      const GURL& response_url,
      network::mojom::URLResponseHead* response_head,
      bool* defer) {
@@ -138,7 +129,7 @@
  #endif
 --- a/components/google/core/common/google_util.cc
 +++ b/components/google/core/common/google_util.cc
-@@ -32,109 +32,6 @@ namespace google_util {
+@@ -33,109 +33,6 @@ namespace google_util {
  
  namespace {
  
@@ -248,20 +239,20 @@
  }  // namespace
  
  // Global functions -----------------------------------------------------------
-@@ -142,12 +39,6 @@ bool IsGoogleSearchSubdomainUrl(const GU
+@@ -143,12 +40,6 @@ bool IsGoogleSearchSubdomainUrl(const GU
  const char kGoogleHomepageURL[] = "trk:113:https://www.google.com/";
  
  bool HasGoogleSearchQueryParam(base::StringPiece str) {
 -  url::Component query(0, static_cast<int>(str.length())), key, value;
 -  while (url::ExtractQueryKeyValue(str.data(), &query, &key, &value)) {
 -    base::StringPiece key_str = str.substr(key.begin, key.len);
--    if (key_str == "q" || key_str == "as_q")
+-    if (key_str == "q" || key_str == "as_q" || key_str == "imgurl")
 -      return true;
 -  }
    return false;
  }
  
-@@ -158,161 +49,53 @@ std::string GetGoogleLocale(const std::s
+@@ -159,161 +50,53 @@ std::string GetGoogleLocale(const std::s
  
  GURL AppendGoogleLocaleParam(const GURL& url,
                               const std::string& application_locale) {
@@ -289,7 +280,7 @@
 -  // so use Spain instead.
 -  if (country_code == "cat")
 -    return "es";
--  return country_code.as_string();
+-  return std::string(country_code);
 +  return "nolocale";
  }
  
@@ -372,7 +363,7 @@
 -  // Make sure the path is a known search path.
 -  base::StringPiece path(url.path_piece());
 -  bool is_home_page_base = IsPathHomePageBase(path);
--  if (!is_home_page_base && (path != "/search"))
+-  if (!is_home_page_base && path != "/search" && path != "/imgres")
 -    return false;
 -
 -  // Check for query parameter in URL parameter and hash fragment, depending on
@@ -439,7 +430,7 @@
  }
  
  bool IsGoogleSearchHostname(const GURL& url) {
--  base::Optional<std::string> result =
+-  absl::optional<std::string> result =
 -      page_load_metrics::GetGoogleHostnamePrefix(url);
 -  return result && result.value() == "www";
 +  return false;
@@ -448,10 +439,10 @@
  bool IsGoogleSearchResultUrl(const GURL& url) {
 --- a/components/page_load_metrics/common/page_load_metrics_util.cc
 +++ b/components/page_load_metrics/common/page_load_metrics_util.cc
-@@ -12,38 +12,7 @@
- namespace page_load_metrics {
+@@ -32,38 +32,7 @@ const char* kBufferTimerDelayParamName =
+ }  // namespace
  
- base::Optional<std::string> GetGoogleHostnamePrefix(const GURL& url) {
+ absl::optional<std::string> GetGoogleHostnamePrefix(const GURL& url) {
 -  const size_t registry_length =
 -      net::registry_controlled_domains::GetRegistryLength(
 -          url,
@@ -467,7 +458,7 @@
 -  const base::StringPiece hostname = url.host_piece();
 -  if (registry_length == 0 || registry_length == std::string::npos ||
 -      registry_length >= hostname.length()) {
--    return base::Optional<std::string>();
+-    return absl::optional<std::string>();
 -  }
 -
 -  // Removes the tld and the preceding dot.
@@ -479,12 +470,12 @@
 -
 -  if (!base::EndsWith(hostname_minus_registry, ".google",
 -                      base::CompareCase::INSENSITIVE_ASCII)) {
--    return base::Optional<std::string>();
+-    return absl::optional<std::string>();
 -  }
 -
 -  return std::string(hostname_minus_registry.substr(
 -      0, hostname_minus_registry.length() - strlen(".google")));
-+  return base::Optional<std::string>();
++  return absl::optional<std::string>();
  }
  
  bool IsGoogleHostname(const GURL& url) {

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

@@ -7,7 +7,7 @@
 
 --- a/chrome/BUILD.gn
 +++ b/chrome/BUILD.gn
-@@ -317,7 +317,6 @@ if (!is_android && !is_mac) {
+@@ -318,7 +318,6 @@ if (!is_android && !is_mac) {
      }
  
      data_deps += [
@@ -15,7 +15,7 @@
        "//third_party/widevine/cdm",
      ]
    }
-@@ -1121,7 +1120,6 @@ if (is_win) {
+@@ -1140,7 +1139,6 @@ if (is_win) {
        ":keystone_registration_framework",
        ":swiftshader_library",
        ":widevine_cdm_library",

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

@@ -0,0 +1,33 @@
+--- a/chrome/browser/privacy_sandbox/privacy_sandbox_settings.cc
++++ b/chrome/browser/privacy_sandbox/privacy_sandbox_settings.cc
+@@ -207,7 +207,7 @@ PrivacySandboxSettings::PrivacySandboxSe
+ PrivacySandboxSettings::~PrivacySandboxSettings() = default;
+ 
+ /*static*/ bool PrivacySandboxSettings::PrivacySandboxSettingsFunctional() {
+-  return base::FeatureList::IsEnabled(features::kPrivacySandboxSettings);
++  return false;
+ }
+ 
+ bool PrivacySandboxSettings::IsFlocAllowed() const {
+--- a/chrome/common/chrome_features.cc
++++ b/chrome/common/chrome_features.cc
+@@ -771,7 +771,7 @@ const base::Feature kPrivacyAdvisor{"Pri
+ 
+ // Enables the privacy sandbox settings page.
+ const base::Feature kPrivacySandboxSettings{"PrivacySandboxSettings",
+-                                            base::FEATURE_ENABLED_BY_DEFAULT};
++                                            base::FEATURE_DISABLED_BY_DEFAULT};
+ const base::FeatureParam<std::string> kPrivacySandboxSettingsURL{
+     &kPrivacySandboxSettings, "website-url", "https://www.privacysandbox.com"};
+ 
+--- a/components/privacy_sandbox/privacy_sandbox_prefs.cc
++++ b/components/privacy_sandbox/privacy_sandbox_prefs.cc
+@@ -31,7 +31,7 @@ namespace privacy_sandbox {
+ 
+ void RegisterProfilePrefs(PrefRegistrySimple* registry) {
+   registry->RegisterBooleanPref(
+-      prefs::kPrivacySandboxApisEnabled, true,
++      prefs::kPrivacySandboxApisEnabled, false,
+       user_prefs::PrefRegistrySyncable::SYNCABLE_PREF);
+   registry->RegisterBooleanPref(
+       prefs::kPrivacySandboxManuallyControlled, false,

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

@@ -2,7 +2,7 @@
 
 --- a/chrome/browser/ui/chrome_pages.cc
 +++ b/chrome/browser/ui/chrome_pages.cc
-@@ -479,32 +479,6 @@ GURL GetOSSettingsUrl(const std::string&
+@@ -474,32 +474,6 @@ GURL GetOSSettingsUrl(const std::string&
  void ShowBrowserSignin(Browser* browser,
                         signin_metrics::AccessPoint access_point,
                         signin::ConsentLevel consent_level) {

+ 2 - 2
patches/core/ungoogled-chromium/disable-untraceable-urls.patch

@@ -41,7 +41,7 @@
        update_renderers_callback_(update_renderers_callback),
        url_loader_factory_(url_loader_factory),
        last_client_model_status_(ClientModelStatus::MODEL_NEVER_FETCHED) {
-@@ -138,7 +136,7 @@ ModelLoader::ModelLoader(
+@@ -137,7 +135,7 @@ ModelLoader::ModelLoader(
      scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory,
      const std::string& model_name)
      : name_(model_name),
@@ -82,7 +82,7 @@
    // wininet implementation.
 --- a/rlz/lib/lib_values.cc
 +++ b/rlz/lib/lib_values.cc
-@@ -41,7 +41,6 @@ const char kSetDccResponseVariable[] = "
+@@ -40,7 +40,6 @@ const char kSetDccResponseVariable[] = "
  //
  
  const char kFinancialPingPath[] = "/tools/pso/ping";

+ 4 - 4
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
-@@ -588,10 +588,6 @@ std::vector<url::Origin> ChromeContentBr
+@@ -656,10 +656,6 @@ std::vector<url::Origin> ChromeContentBr
      GetOriginsRequiringDedicatedProcess() {
    std::vector<url::Origin> list;
  
@@ -54,7 +54,7 @@
 -                  base::Value(extension_urls::GetWebstoreUpdateUrl().spec()));
 +                  base::Value(chrome_blank_.spec()));
  
-     prefs->SetWithoutPathExpansion(new_id_, std::move(entry));
+     prefs->SetKey(new_id_, base::Value::FromUniquePtrValue(std::move(entry)));
    }
 --- a/chrome/browser/extensions/extension_migrator.h
 +++ b/chrome/browser/extensions/extension_migrator.h
@@ -146,7 +146,7 @@
    } else {
      url_stats_.other_url_count++;
    }
-@@ -844,20 +822,6 @@ void ExtensionDownloader::HandleManifest
+@@ -848,20 +826,6 @@ void ExtensionDownloader::HandleManifest
          update->info);
    }
  
@@ -167,7 +167,7 @@
    NotifyExtensionsDownloadStageChanged(
        no_updates, ExtensionDownloaderDelegate::Stage::FINISHED);
    NotifyExtensionsDownloadFailed(
-@@ -1409,11 +1373,7 @@ bool ExtensionDownloader::IterateFetchCr
+@@ -1421,11 +1385,7 @@ bool ExtensionDownloader::IterateFetchCr
    // fetch.
    switch (fetch->credentials) {
      case ExtensionFetch::CREDENTIALS_NONE:

+ 32 - 1
patches/core/ungoogled-chromium/fix-building-with-prunned-binaries.patch

@@ -1,9 +1,40 @@
 # Contains tests and features that are unneeded and would otherwise
 # require binaries to be whitelisted in the pruning list
 
+--- a/chrome/test/chromedriver/BUILD.gn
++++ b/chrome/test/chromedriver/BUILD.gn
+@@ -308,11 +308,7 @@ source_set("lib") {
+   }
+ }
+ 
+-if (is_linux) {
+-  chromedriver_output = "chromedriver.unstripped"
+-} else {
+   chromedriver_output = "chromedriver"
+-}
+ 
+ executable("$chromedriver_output") {
+   testonly = true
+@@ -337,16 +333,6 @@ executable("$chromedriver_output") {
+   }
+ }
+ 
+-if (is_linux) {
+-  strip_binary("chromedriver") {
+-    testonly = true
+-    binary_input = "$root_out_dir/$chromedriver_output"
+-    symbol_output = "$root_out_dir/chromedriver.debug"
+-    stripped_binary_output = "$root_out_dir/chromedriver"
+-    deps = [ ":$chromedriver_output" ]
+-  }
+-}
+-
+ python_library("chromedriver_py_tests") {
+   testonly = true
+   deps = [
 --- a/third_party/devtools-frontend/src/BUILD.gn
 +++ b/third_party/devtools-frontend/src/BUILD.gn
-@@ -166,7 +166,6 @@ devtools_applications = [
+@@ -138,7 +138,6 @@ foreach(module_file, non_autostart_non_r
  devtools_frontend_resources_deps = [
    ":build_release_devtools",
    "front_end",

+ 12 - 12
patches/core/ungoogled-chromium/fix-building-without-enabling-reporting.patch

@@ -1,6 +1,6 @@
 --- a/content/browser/BUILD.gn
 +++ b/content/browser/BUILD.gn
-@@ -1180,6 +1180,10 @@ source_set("browser") {
+@@ -1203,6 +1203,10 @@ source_set("browser") {
      "net/browser_online_state_observer.cc",
      "net/browser_online_state_observer.h",
      "net/cookie_store_factory.cc",
@@ -11,7 +11,7 @@
      "net/network_errors_listing_ui.cc",
      "net/network_errors_listing_ui.h",
      "net/network_quality_observer_impl.cc",
-@@ -2878,10 +2882,6 @@ source_set("browser") {
+@@ -2919,10 +2923,6 @@ source_set("browser") {
  
    if (enable_reporting) {
      sources += [
@@ -24,15 +24,15 @@
      ]
 --- a/third_party/blink/renderer/core/frame/local_frame.cc
 +++ b/third_party/blink/renderer/core/frame/local_frame.cc
-@@ -38,6 +38,7 @@
- #include "base/unguessable_token.h"
+@@ -39,6 +39,7 @@
+ #include "base/values.h"
  #include "mojo/public/cpp/bindings/self_owned_receiver.h"
  #include "mojo/public/cpp/system/message_pipe.h"
 +#include "net/net_buildflags.h"
  #include "services/data_decoder/public/mojom/resource_snapshot_for_web_bundle.mojom-blink.h"
  #include "services/network/public/cpp/features.h"
  #include "services/network/public/mojom/content_security_policy.mojom-blink.h"
-@@ -553,7 +554,9 @@ void LocalFrame::Trace(Visitor* visitor)
+@@ -630,7 +631,9 @@ void LocalFrame::Trace(Visitor* visitor)
    visitor->Trace(raw_system_clipboard_);
    visitor->Trace(virtual_keyboard_overlay_changed_observers_);
    visitor->Trace(pause_handle_receivers_);
@@ -42,7 +42,7 @@
  #if defined(OS_MAC)
    visitor->Trace(text_input_host_);
  #endif
-@@ -2364,6 +2367,7 @@ const base::UnguessableToken& LocalFrame
+@@ -2500,6 +2503,7 @@ const base::UnguessableToken& LocalFrame
    return base::UnguessableToken::Null();
  }
  
@@ -50,7 +50,7 @@
  mojom::blink::ReportingServiceProxy* LocalFrame::GetReportingService() {
    if (!reporting_service_.is_bound()) {
      GetBrowserInterfaceBroker().GetInterface(
-@@ -2372,6 +2376,7 @@ mojom::blink::ReportingServiceProxy* Loc
+@@ -2508,6 +2512,7 @@ mojom::blink::ReportingServiceProxy* Loc
    }
    return reporting_service_.get();
  }
@@ -60,15 +60,15 @@
  void LocalFrame::NotifyUserActivation(
 --- a/third_party/blink/renderer/core/frame/local_frame.h
 +++ b/third_party/blink/renderer/core/frame/local_frame.h
-@@ -38,6 +38,7 @@
+@@ -37,6 +37,7 @@
+ #include "build/build_config.h"
  #include "mojo/public/cpp/bindings/pending_associated_receiver.h"
  #include "mojo/public/cpp/bindings/pending_receiver.h"
- #include "mojo/public/cpp/bindings/unique_receiver_set.h"
 +#include "net/net_buildflags.h"
+ #include "third_party/blink/public/common/frame/frame_ad_evidence.h"
  #include "third_party/blink/public/common/frame/payment_request_token.h"
  #include "third_party/blink/public/common/frame/transient_allow_fullscreen.h"
- #include "third_party/blink/public/mojom/blob/blob_url_store.mojom-blink.h"
-@@ -537,9 +538,9 @@ class CORE_EXPORT LocalFrame final
+@@ -540,9 +541,9 @@ class CORE_EXPORT LocalFrame final
    }
  
    SmoothScrollSequencer& GetSmoothScrollSequencer();
@@ -80,7 +80,7 @@
    // Returns the frame host ptr. The interface returned is backed by an
    // associated interface with the legacy Chrome IPC channel.
    mojom::blink::LocalFrameHost& GetLocalFrameHostRemote() const;
-@@ -956,8 +957,10 @@ class CORE_EXPORT LocalFrame final
+@@ -1019,8 +1020,10 @@ class CORE_EXPORT LocalFrame final
    // const methods.
    //
    // LocalFrame can be reused by multiple ExecutionContext.

+ 4 - 15
patches/core/ungoogled-chromium/fix-building-without-one-click-signin.patch

@@ -1,16 +1,5 @@
 # Fix building without one click signin
 
---- a/chrome/browser/ui/BUILD.gn
-+++ b/chrome/browser/ui/BUILD.gn
-@@ -4496,8 +4496,6 @@ static_library("ui") {
-         "views/sync/dice_bubble_sync_promo_view.h",
-         "views/sync/dice_signin_button_view.cc",
-         "views/sync/dice_signin_button_view.h",
--        "views/sync/one_click_signin_dialog_view.cc",
--        "views/sync/one_click_signin_dialog_view.h",
-       ]
-       deps += [ "//ui/views/window/vector_icons" ]
-     }
 --- a/chrome/browser/ui/sync/one_click_signin_links_delegate_impl.cc
 +++ b/chrome/browser/ui/sync/one_click_signin_links_delegate_impl.cc
 @@ -16,9 +16,4 @@ OneClickSigninLinksDelegateImpl::OneClic
@@ -25,16 +14,16 @@
  }
 --- a/chrome/browser/ui/webui/signin/inline_login_handler_impl.cc
 +++ b/chrome/browser/ui/webui/signin/inline_login_handler_impl.cc
-@@ -359,6 +359,7 @@ void InlineSigninHelper::OnClientOAuthSu
+@@ -348,6 +348,7 @@ void InlineSigninHelper::OnClientOAuthSu
      const ClientOAuthResult& result,
      Profile* /*profile*/,
      Profile::CreateStatus /*status*/) {
 +#if BUILDFLAG(ENABLE_ONE_CLICK_SIGNIN)
    HandlerSigninReason reason = GetHandlerSigninReason(current_url_);
-   if (reason == HandlerSigninReason::FETCH_LST_ONLY) {
+   if (reason == HandlerSigninReason::kFetchLstOnly) {
      // Constants are only available on Windows for the Google Credential
-@@ -419,6 +420,7 @@ void InlineSigninHelper::OnClientOAuthSu
-   CreateSyncStarter(result.refresh_token);
+@@ -425,6 +426,7 @@ void InlineSigninHelper::OnClientOAuthSu
+   }
  
    base::ThreadTaskRunnerHandle::Get()->DeleteSoon(FROM_HERE, this);
 +#endif

+ 454 - 97
patches/core/ungoogled-chromium/fix-building-without-safebrowsing.patch

@@ -2,7 +2,7 @@
 
 --- a/chrome/browser/chrome_content_browser_client.cc
 +++ b/chrome/browser/chrome_content_browser_client.cc
-@@ -4199,11 +4199,13 @@ ChromeContentBrowserClient::CreateThrott
+@@ -4135,11 +4135,13 @@ ChromeContentBrowserClient::CreateThrott
                     &throttles);
  #endif
  
@@ -16,7 +16,7 @@
  
  // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch
  // of lacros-chrome is complete.
-@@ -5434,26 +5436,7 @@ ChromeContentBrowserClient::GetSafeBrows
+@@ -5411,26 +5413,7 @@ ChromeContentBrowserClient::GetSafeBrows
      const std::vector<std::string>& allowlist_domains) {
    DCHECK_CURRENTLY_ON(BrowserThread::IO);
  
@@ -44,7 +44,7 @@
  }
  
  safe_browsing::RealTimeUrlLookupServiceBase*
-@@ -5474,11 +5457,6 @@ ChromeContentBrowserClient::GetUrlLookup
+@@ -5451,11 +5434,6 @@ ChromeContentBrowserClient::GetUrlLookup
          GetForProfile(profile);
    }
  #endif
@@ -58,7 +58,7 @@
  
 --- a/chrome/browser/chrome_content_browser_client_receiver_bindings.cc
 +++ b/chrome/browser/chrome_content_browser_client_receiver_bindings.cc
-@@ -87,45 +87,6 @@ void MaybeCreateSafeBrowsingForRenderer(
+@@ -92,45 +92,6 @@ void MaybeCreateSafeBrowsingForRenderer(
          const std::vector<std::string>& allowlist_domains)>
          get_checker_delegate,
      mojo::PendingReceiver<safe_browsing::mojom::SafeBrowsing> receiver) {
@@ -103,10 +103,43 @@
 -          std::move(receiver)));
  }
  
- }  // namespace
+ // BadgeManager is not used for Android.
+--- a/chrome/browser/component_updater/client_side_phishing_component_installer.cc
++++ b/chrome/browser/component_updater/client_side_phishing_component_installer.cc
+@@ -36,20 +36,6 @@ const char kClientSidePhishingManifestNa
+ 
+ void LoadFromDisk(const base::FilePath& pb_path,
+                   const base::FilePath& visual_tflite_model_path) {
+-  if (pb_path.empty())
+-    return;
+-
+-  std::string binary_pb;
+-  if (!base::ReadFileToString(pb_path, &binary_pb))
+-    binary_pb.clear();
+-
+-  base::File visual_tflite_model(visual_tflite_model_path,
+-                                 base::File::FLAG_OPEN | base::File::FLAG_READ);
+-
+-  // The ClientSidePhishingModel singleton will react appropriately if the
+-  // |binary_pb| is empty or |visual_tflite_model| is invalid.
+-  safe_browsing::ClientSidePhishingModel::GetInstance()
+-      ->PopulateFromDynamicUpdate(binary_pb, std::move(visual_tflite_model));
+ }
+ 
+ base::FilePath GetInstalledProtoPath(const base::FilePath& base) {
+@@ -123,9 +109,6 @@ update_client::InstallerAttributes
+ ClientSidePhishingComponentInstallerPolicy::GetInstallerAttributes() const {
+   update_client::InstallerAttributes attributes;
+ 
+-  // Pass the tag parameter to the installer as the "tag" attribute; it will
+-  // be used to choose which binary is downloaded.
+-  attributes["tag"] = safe_browsing::GetClientSideDetectionTag();
+   return attributes;
+ }
+ 
 --- a/chrome/browser/download/chrome_download_manager_delegate.cc
 +++ b/chrome/browser/download/chrome_download_manager_delegate.cc
-@@ -128,7 +128,6 @@ using content::DownloadManager;
+@@ -129,7 +129,6 @@ using content::DownloadManager;
  using download::DownloadItem;
  using download::DownloadPathReservationTracker;
  using download::PathValidationResult;
@@ -114,7 +147,7 @@
  using safe_browsing::DownloadProtectionService;
  using ConnectionType = net::NetworkChangeNotifier::ConnectionType;
  
-@@ -1423,8 +1422,6 @@ void ChromeDownloadManagerDelegate::OnDo
+@@ -1426,8 +1425,6 @@ void ChromeDownloadManagerDelegate::OnDo
      if (item->GetOriginalMimeType() == "application/x-x509-user-cert")
        DownloadItemModel(item).SetShouldPreferOpeningInBrowser(true);
  #endif
@@ -141,8 +174,8 @@
  #include "content/public/browser/web_contents.h"
 --- a/chrome/browser/enterprise/connectors/connectors_service.cc
 +++ b/chrome/browser/enterprise/connectors/connectors_service.cc
-@@ -362,19 +362,6 @@ base::Optional<std::string> ConnectorsSe
-   return base::nullopt;
+@@ -362,19 +362,6 @@ absl::optional<std::string> ConnectorsSe
+   return absl::nullopt;
  }
  
 -safe_browsing::EnterpriseRealTimeUrlCheckMode
@@ -173,7 +206,7 @@
  namespace base {
 @@ -74,12 +73,6 @@ class ConnectorsService : public KeyedSe
    // is no token to use.
-   base::Optional<std::string> GetDMTokenForRealTimeUrlCheck() const;
+   absl::optional<std::string> GetDMTokenForRealTimeUrlCheck() const;
  
 -  // Returns the value to used by the enterprise real-time URL check Connector
 -  // if it is set and if the scope it's set at has a valid browser-profile
@@ -236,9 +269,20 @@
  
    std::vector<std::string> GetOnSecurityEventProviders();
  
+--- a/chrome/browser/extensions/BUILD.gn
++++ b/chrome/browser/extensions/BUILD.gn
+@@ -656,8 +656,6 @@ static_library("extensions") {
+     "menu_manager_factory.h",
+     "navigation_observer.cc",
+     "navigation_observer.h",
+-    "omaha_attributes_handler.cc",
+-    "omaha_attributes_handler.h",
+     "pack_extension_job.cc",
+     "pack_extension_job.h",
+     "pending_extension_info.cc",
 --- a/chrome/browser/extensions/api/enterprise_reporting_private/enterprise_reporting_private_api.cc
 +++ b/chrome/browser/extensions/api/enterprise_reporting_private/enterprise_reporting_private_api.cc
-@@ -69,17 +69,8 @@ api::enterprise_reporting_private::Conte
+@@ -55,17 +55,8 @@ api::enterprise_reporting_private::Conte
    info.on_file_downloaded_providers = signals.on_file_downloaded_providers;
    info.on_bulk_data_entry_providers = signals.on_bulk_data_entry_providers;
    info.on_security_event_providers = signals.on_security_event_providers;
@@ -258,7 +302,7 @@
    return info;
 --- a/chrome/browser/extensions/api/safe_browsing_private/safe_browsing_private_event_router.cc
 +++ b/chrome/browser/extensions/api/safe_browsing_private/safe_browsing_private_event_router.cc
-@@ -305,6 +305,7 @@ void SafeBrowsingPrivateEventRouter::OnD
+@@ -307,6 +307,7 @@ void SafeBrowsingPrivateEventRouter::OnD
      event_router_->BroadcastEvent(std::move(extension_event));
    }
  
@@ -266,7 +310,7 @@
    auto settings = GetReportingSettings();
    if (!settings.has_value() ||
        settings->enabled_event_names.count(kKeyDangerousDownloadEvent) == 0) {
-@@ -330,6 +331,7 @@ void SafeBrowsingPrivateEventRouter::OnD
+@@ -336,6 +337,7 @@ void SafeBrowsingPrivateEventRouter::OnD
  
    ReportRealtimeEvent(kKeyDangerousDownloadEvent, std::move(settings.value()),
                        std::move(event));
@@ -274,7 +318,7 @@
  }
  
  void SafeBrowsingPrivateEventRouter::OnSecurityInterstitialShown(
-@@ -357,6 +359,7 @@ void SafeBrowsingPrivateEventRouter::OnS
+@@ -363,6 +365,7 @@ void SafeBrowsingPrivateEventRouter::OnS
      event_router_->BroadcastEvent(std::move(extension_event));
    }
  
@@ -282,7 +326,7 @@
    auto settings = GetReportingSettings();
    if (!settings.has_value() ||
        settings->enabled_event_names.count(kKeyInterstitialEvent) == 0) {
-@@ -379,6 +382,7 @@ void SafeBrowsingPrivateEventRouter::OnS
+@@ -385,6 +388,7 @@ void SafeBrowsingPrivateEventRouter::OnS
  
    ReportRealtimeEvent(kKeyInterstitialEvent, std::move(settings.value()),
                        std::move(event));
@@ -290,7 +334,7 @@
  }
  
  void SafeBrowsingPrivateEventRouter::OnSecurityInterstitialProceeded(
-@@ -406,6 +410,7 @@ void SafeBrowsingPrivateEventRouter::OnS
+@@ -412,6 +416,7 @@ void SafeBrowsingPrivateEventRouter::OnS
      event_router_->BroadcastEvent(std::move(extension_event));
    }
  
@@ -298,7 +342,7 @@
    auto settings = GetReportingSettings();
    if (!settings.has_value() ||
        settings->enabled_event_names.count(kKeyInterstitialEvent) == 0) {
-@@ -424,6 +429,7 @@ void SafeBrowsingPrivateEventRouter::OnS
+@@ -430,6 +435,7 @@ void SafeBrowsingPrivateEventRouter::OnS
  
    ReportRealtimeEvent(kKeyInterstitialEvent, std::move(settings.value()),
                        std::move(event));
@@ -306,7 +350,7 @@
  }
  
  void SafeBrowsingPrivateEventRouter::OnAnalysisConnectorResult(
-@@ -436,6 +442,7 @@ void SafeBrowsingPrivateEventRouter::OnA
+@@ -443,6 +449,7 @@ void SafeBrowsingPrivateEventRouter::OnA
      const enterprise_connectors::ContentAnalysisResponse::Result& result,
      const int64_t content_size,
      safe_browsing::EventResult event_result) {
@@ -314,23 +358,23 @@
    if (result.tag() == "malware") {
      DCHECK_EQ(1, result.triggered_rules().size());
      OnDangerousDeepScanningResult(
-@@ -447,6 +454,7 @@ void SafeBrowsingPrivateEventRouter::OnA
+@@ -454,6 +461,7 @@ void SafeBrowsingPrivateEventRouter::OnA
      OnSensitiveDataEvent(url, file_name, download_digest_sha256, mime_type,
-                          trigger, result, content_size, event_result);
+                          trigger, scan_id, result, content_size, event_result);
    }
 +#endif // FULL_SAFE_BROWSING
  }
  
  void SafeBrowsingPrivateEventRouter::OnDangerousDeepScanningResult(
-@@ -461,6 +469,7 @@ void SafeBrowsingPrivateEventRouter::OnD
-     const std::string& malware_family,
+@@ -469,6 +477,7 @@ void SafeBrowsingPrivateEventRouter::OnD
      const std::string& malware_category,
-     const std::string& evidence_locker_filepath) {
+     const std::string& evidence_locker_filepath,
+     const std::string& scan_id) {
 +#if defined(FULL_SAFE_BROWSING)
    auto settings = GetReportingSettings();
    if (!settings.has_value() ||
        settings->enabled_event_names.count(kKeyDangerousDownloadEvent) == 0) {
-@@ -493,6 +502,7 @@ void SafeBrowsingPrivateEventRouter::OnD
+@@ -505,6 +514,7 @@ void SafeBrowsingPrivateEventRouter::OnD
  
    ReportRealtimeEvent(kKeyDangerousDownloadEvent, std::move(settings.value()),
                        std::move(event));
@@ -338,7 +382,7 @@
  }
  
  void SafeBrowsingPrivateEventRouter::OnSensitiveDataEvent(
-@@ -504,6 +514,7 @@ void SafeBrowsingPrivateEventRouter::OnS
+@@ -517,6 +527,7 @@ void SafeBrowsingPrivateEventRouter::OnS
      const enterprise_connectors::ContentAnalysisResponse::Result& result,
      const int64_t content_size,
      safe_browsing::EventResult event_result) {
@@ -346,7 +390,7 @@
    auto settings = GetReportingSettings();
    if (!settings.has_value() ||
        settings->enabled_event_names.count(kKeySensitiveDataEvent) == 0) {
-@@ -534,6 +545,7 @@ void SafeBrowsingPrivateEventRouter::OnS
+@@ -548,6 +559,7 @@ void SafeBrowsingPrivateEventRouter::OnS
  
    ReportRealtimeEvent(kKeySensitiveDataEvent, std::move(settings.value()),
                        std::move(event));
@@ -354,7 +398,7 @@
  }
  
  void SafeBrowsingPrivateEventRouter::OnAnalysisConnectorWarningBypassed(
-@@ -545,6 +557,7 @@ void SafeBrowsingPrivateEventRouter::OnA
+@@ -560,6 +572,7 @@ void SafeBrowsingPrivateEventRouter::OnA
      safe_browsing::DeepScanAccessPoint access_point,
      const enterprise_connectors::ContentAnalysisResponse::Result& result,
      const int64_t content_size) {
@@ -362,7 +406,7 @@
    auto settings = GetReportingSettings();
    if (!settings.has_value() ||
        settings->enabled_event_names.count(kKeySensitiveDataEvent) == 0) {
-@@ -575,6 +588,7 @@ void SafeBrowsingPrivateEventRouter::OnA
+@@ -591,6 +604,7 @@ void SafeBrowsingPrivateEventRouter::OnA
  
    ReportRealtimeEvent(kKeySensitiveDataEvent, std::move(settings.value()),
                        std::move(event));
@@ -370,7 +414,7 @@
  }
  
  void SafeBrowsingPrivateEventRouter::OnUnscannedFileEvent(
-@@ -587,6 +601,7 @@ void SafeBrowsingPrivateEventRouter::OnU
+@@ -603,6 +617,7 @@ void SafeBrowsingPrivateEventRouter::OnU
      const std::string& reason,
      const int64_t content_size,
      safe_browsing::EventResult event_result) {
@@ -378,7 +422,7 @@
    auto settings = GetReportingSettings();
    if (!settings.has_value() ||
        settings->enabled_event_names.count(kKeyUnscannedFileEvent) == 0) {
-@@ -612,6 +627,7 @@ void SafeBrowsingPrivateEventRouter::OnU
+@@ -628,6 +643,7 @@ void SafeBrowsingPrivateEventRouter::OnU
  
    ReportRealtimeEvent(kKeyUnscannedFileEvent, std::move(settings.value()),
                        std::move(event));
@@ -386,15 +430,15 @@
  }
  
  void SafeBrowsingPrivateEventRouter::OnDangerousDownloadEvent(
-@@ -635,6 +651,7 @@ void SafeBrowsingPrivateEventRouter::OnD
-     const std::string& mime_type,
+@@ -653,6 +669,7 @@ void SafeBrowsingPrivateEventRouter::OnD
+     const std::string& scan_id,
      const int64_t content_size,
      safe_browsing::EventResult event_result) {
 +#if defined(FULL_SAFE_BROWSING)
    auto settings = GetReportingSettings();
    if (!settings.has_value() ||
        settings->enabled_event_names.count(kKeyDangerousDownloadEvent) == 0) {
-@@ -659,6 +676,7 @@ void SafeBrowsingPrivateEventRouter::OnD
+@@ -682,6 +699,7 @@ void SafeBrowsingPrivateEventRouter::OnD
  
    ReportRealtimeEvent(kKeyDangerousDownloadEvent, std::move(settings.value()),
                        std::move(event));
@@ -402,15 +446,15 @@
  }
  
  void SafeBrowsingPrivateEventRouter::OnDangerousDownloadWarningBypassed(
-@@ -680,6 +698,7 @@ void SafeBrowsingPrivateEventRouter::OnD
-     const std::string& threat_type,
+@@ -705,6 +723,7 @@ void SafeBrowsingPrivateEventRouter::OnD
      const std::string& mime_type,
+     const std::string& scan_id,
      const int64_t content_size) {
 +#if defined(FULL_SAFE_BROWSING)
    auto settings = GetReportingSettings();
    if (!settings.has_value() ||
        settings->enabled_event_names.count(kKeyDangerousDownloadEvent) == 0) {
-@@ -705,6 +724,7 @@ void SafeBrowsingPrivateEventRouter::OnD
+@@ -734,6 +753,7 @@ void SafeBrowsingPrivateEventRouter::OnD
  
    ReportRealtimeEvent(kKeyDangerousDownloadEvent, std::move(settings.value()),
                        std::move(event));
@@ -418,7 +462,7 @@
  }
  
  // static
-@@ -977,7 +997,11 @@ void SafeBrowsingPrivateEventRouter::Rep
+@@ -1006,7 +1026,11 @@ void SafeBrowsingPrivateEventRouter::Rep
  }
  
  std::string SafeBrowsingPrivateEventRouter::GetProfileUserName() const {
@@ -430,17 +474,235 @@
  }
  
  #if BUILDFLAG(IS_CHROMEOS_ASH)
+--- a/chrome/browser/extensions/extension_service.cc
++++ b/chrome/browser/extensions/extension_service.cc
+@@ -54,7 +54,6 @@
+ #include "chrome/browser/extensions/forced_extensions/install_stage_tracker.h"
+ #include "chrome/browser/extensions/install_verifier.h"
+ #include "chrome/browser/extensions/installed_loader.h"
+-#include "chrome/browser/extensions/omaha_attributes_handler.h"
+ #include "chrome/browser/extensions/pending_extension_manager.h"
+ #include "chrome/browser/extensions/permissions_updater.h"
+ #include "chrome/browser/extensions/shared_module_service.h"
+@@ -376,7 +375,6 @@ ExtensionService::ExtensionService(Profi
+       safe_browsing_verdict_handler_(extension_prefs,
+                                      ExtensionRegistry::Get(profile),
+                                      this),
+-      omaha_attributes_handler_(extension_prefs, this),
+       registry_(ExtensionRegistry::Get(profile)),
+       pending_extension_manager_(profile),
+       install_directory_(install_directory),
+@@ -845,50 +843,6 @@ bool ExtensionService::IsExtensionEnable
+   return extension_registrar_.IsExtensionEnabled(extension_id);
+ }
+ 
+-void ExtensionService::PerformActionBasedOnOmahaAttributes(
+-    const std::string& extension_id,
+-    const base::Value& attributes) {
+-  DCHECK_CURRENTLY_ON(BrowserThread::UI);
+-  HandleMalwareOmahaAttribute(extension_id, attributes);
+-  omaha_attributes_handler_.PerformActionBasedOnOmahaAttributes(extension_id,
+-                                                                attributes);
+-  allowlist_.PerformActionBasedOnOmahaAttributes(extension_id, attributes);
+-}
+-
+-void ExtensionService::HandleMalwareOmahaAttribute(
+-    const std::string& extension_id,
+-    const base::Value& attributes) {
+-  bool has_malware_value =
+-      OmahaAttributesHandler::HasOmahaBlocklistStateInAttributes(
+-          attributes, BitMapBlocklistState::BLOCKLISTED_MALWARE);
+-  if (!base::FeatureList::IsEnabled(
+-          extensions_features::kDisableMalwareExtensionsRemotely) ||
+-      !has_malware_value) {
+-    OmahaAttributesHandler::ReportNoUpdateCheckKeys();
+-    // Omaha attributes may have previously have the "_malware" key.
+-    MaybeEnableRemotelyDisabledExtension(extension_id);
+-    return;
+-  }
+-
+-  if (extension_prefs_->HasDisableReason(
+-          extension_id, disable_reason::DISABLE_REMOTELY_FOR_MALWARE)) {
+-    // The extension is already disabled. No work needs to be done.
+-    return;
+-  }
+-
+-  OmahaAttributesHandler::ReportExtensionDisabledRemotely(
+-      extension_registrar_.IsExtensionEnabled(extension_id),
+-      ExtensionUpdateCheckDataKey::kMalware);
+-
+-  // Add the extension to the blocklisted extensions set.
+-  UpdateBlocklistedExtensions({extension_id},
+-                              registry_->blocklisted_extensions().GetIDs());
+-  extension_prefs_->AddDisableReason(
+-      extension_id, disable_reason::DISABLE_REMOTELY_FOR_MALWARE);
+-  // Show an error for the newly blocklisted extension.
+-  error_controller_->ShowErrorIfNeeded();
+-}
+-
+ void ExtensionService::MaybeEnableRemotelyDisabledExtension(
+     const std::string& extension_id) {
+   CHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
+@@ -904,56 +858,6 @@ void ExtensionService::MaybeEnableRemote
+   unchanged.erase(extension_id);
+   // Remove the extension from the blocklist.
+   UpdateBlocklistedExtensions({}, unchanged);
+-  OmahaAttributesHandler::ReportReenableExtension(
+-      ExtensionUpdateCheckDataKey::kMalware);
+-}
+-
+-void ExtensionService::ClearGreylistedAcknowledgedStateAndMaybeReenable(
+-    const std::string& extension_id) {
+-  bool is_on_sb_list = (extension_prefs_->GetExtensionBlocklistState(
+-                            extension_id) != NOT_BLOCKLISTED);
+-  bool is_on_omaha_list =
+-      blocklist_prefs::HasAnyOmahaGreylistState(extension_id, extension_prefs_);
+-  if (is_on_sb_list || is_on_omaha_list) {
+-    return;
+-  }
+-  // Clear all acknowledged states so the extension will still get disabled if
+-  // it is added to the greylist again.
+-  blocklist_prefs::ClearAcknowledgedBlocklistStates(extension_id,
+-                                                    extension_prefs_);
+-  RemoveDisableReasonAndMaybeEnable(extension_id,
+-                                    disable_reason::DISABLE_GREYLIST);
+-}
+-
+-void ExtensionService::MaybeDisableGreylistedExtension(
+-    const std::string& extension_id,
+-    BitMapBlocklistState new_state) {
+-#if DCHECK_IS_ON()
+-  bool has_new_state_on_sb_list =
+-      (blocklist_prefs::BlocklistStateToBitMapBlocklistState(
+-           extension_prefs_->GetExtensionBlocklistState(extension_id)) ==
+-       new_state);
+-  bool has_new_state_on_omaha_list = blocklist_prefs::HasOmahaBlocklistState(
+-      extension_id, new_state, extension_prefs_);
+-  DCHECK(has_new_state_on_sb_list || has_new_state_on_omaha_list);
+-#endif
+-  if (blocklist_prefs::HasAcknowledgedBlocklistState(extension_id, new_state,
+-                                                     extension_prefs_)) {
+-    // If the extension is already acknowledged, don't disable it again
+-    // because it can be already re-enabled by the user. This could happen if
+-    // the extension is added to the SafeBrowsing blocklist, and then
+-    // subsequently marked by Omaha. In this case, we don't want to disable the
+-    // extension twice.
+-    return;
+-  }
+-
+-  // Set the current greylist states to acknowledge immediately because the
+-  // extension is disabled silently. Clear the other acknowledged state because
+-  // when the state changes to another greylist state in the future, we'd like
+-  // to disable the extension again.
+-  blocklist_prefs::UpdateCurrentGreylistStatesAsAcknowledged(extension_id,
+-                                                             extension_prefs_);
+-  DisableExtension(extension_id, disable_reason::DISABLE_GREYLIST);
+ }
+ 
+ void ExtensionService::RemoveDisableReasonAndMaybeEnable(
+--- a/chrome/browser/extensions/extension_service.h
++++ b/chrome/browser/extensions/extension_service.h
+@@ -25,7 +25,6 @@
+ #include "chrome/browser/extensions/forced_extensions/force_installed_metrics.h"
+ #include "chrome/browser/extensions/forced_extensions/force_installed_tracker.h"
+ #include "chrome/browser/extensions/install_gate.h"
+-#include "chrome/browser/extensions/omaha_attributes_handler.h"
+ #include "chrome/browser/extensions/pending_extension_manager.h"
+ #include "chrome/browser/extensions/safe_browsing_verdict_handler.h"
+ #include "chrome/browser/profiles/profile_manager.h"
+@@ -253,28 +252,11 @@ class ExtensionService : public Extensio
+   // nothing.
+   void EnableExtension(const std::string& extension_id);
+ 
+-  // Takes Safe Browsing and Omaha blocklist states into account and decides
+-  // whether to remove greylist disabled reason. Called when a greylisted
+-  // state is removed from the Safe Browsing blocklist or Omaha blocklist. Also
+-  // clears all acknowledged states if the greylist disabled reason is removed.
+-  void ClearGreylistedAcknowledgedStateAndMaybeReenable(
+-      const std::string& extension_id);
+-
+-  // Takes acknowledged blocklist states into account and decides whether to
+-  // disable the greylisted extension. Called when a new greylisted state is
+-  // added to the Safe Browsing blocklist or Omaha blocklist.
+-  void MaybeDisableGreylistedExtension(const std::string& extension_id,
+-                                       BitMapBlocklistState new_state);
+-
+   // Removes the disable reason and enable the extension if there are no disable
+   // reasons left and is not blocked for another reason.
+   void RemoveDisableReasonAndMaybeEnable(const std::string& extension_id,
+                                          disable_reason::DisableReason reason);
+ 
+-  // Performs action based on Omaha attributes for the extension.
+-  void PerformActionBasedOnOmahaAttributes(const std::string& extension_id,
+-                                           const base::Value& attributes);
+-
+   // Disables the extension. If the extension is already disabled, just adds
+   // the |disable_reasons| (a bitmask of disable_reason::DisableReason - there
+   // can be multiple DisableReasons e.g. when an extension comes in disabled
+@@ -551,11 +533,6 @@ class ExtensionService : public Extensio
+   // Helper method to determine if an extension can be blocked.
+   bool CanBlockExtension(const Extension* extension) const;
+ 
+-  // Handles the malware Omaha attribute for remotely disabled extensions.
+-  // TODO(crbug.com/1193695): Move this function to OmahaAttributesHandler.
+-  void HandleMalwareOmahaAttribute(const std::string& extension_id,
+-                                   const base::Value& attributes);
+-
+   // Enables an extension that was only previously disabled remotely.
+   void MaybeEnableRemotelyDisabledExtension(const std::string& extension_id);
+ 
+@@ -628,8 +605,6 @@ class ExtensionService : public Extensio
+ 
+   SafeBrowsingVerdictHandler safe_browsing_verdict_handler_;
+ 
+-  OmahaAttributesHandler omaha_attributes_handler_;
+-
+   // Sets of enabled/disabled/terminated/blocklisted extensions. Not owned.
+   ExtensionRegistry* registry_ = nullptr;
+ 
+--- a/chrome/browser/extensions/extension_system_impl.cc
++++ b/chrome/browser/extensions/extension_system_impl.cc
+@@ -469,8 +469,6 @@ void ExtensionSystemImpl::InstallUpdate(
+ void ExtensionSystemImpl::PerformActionBasedOnOmahaAttributes(
+     const std::string& extension_id,
+     const base::Value& attributes) {
+-  extension_service()->PerformActionBasedOnOmahaAttributes(extension_id,
+-                                                           attributes);
+ }
+ 
+ bool ExtensionSystemImpl::FinishDelayedInstallationIfReady(
+--- a/chrome/browser/extensions/safe_browsing_verdict_handler.cc
++++ b/chrome/browser/extensions/safe_browsing_verdict_handler.cc
+@@ -100,8 +100,6 @@ void SafeBrowsingVerdictHandler::UpdateG
+     greylist_.Remove(id);
+     extension_prefs_->SetExtensionBlocklistState(extension->id(),
+                                                  NOT_BLOCKLISTED);
+-    extension_service_->ClearGreylistedAcknowledgedStateAndMaybeReenable(
+-        extension->id());
+   }
+ 
+   // Iterate over `greylist` instead of `not_yet_greylisted`, because the
+@@ -119,9 +117,6 @@ void SafeBrowsingVerdictHandler::UpdateG
+     greylist_.Insert(extension);
+     BlocklistState greylist_state = state_map.find(id)->second;
+     extension_prefs_->SetExtensionBlocklistState(id, greylist_state);
+-    extension_service_->MaybeDisableGreylistedExtension(
+-        id,
+-        blocklist_prefs::BlocklistStateToBitMapBlocklistState(greylist_state));
+   }
+ }
+ 
 --- a/chrome/browser/file_system_access/chrome_file_system_access_permission_context.cc
 +++ b/chrome/browser/file_system_access/chrome_file_system_access_permission_context.cc
-@@ -25,7 +25,6 @@
- #include "chrome/browser/file_system_access/file_system_access_permission_context_factory.h"
+@@ -35,7 +35,6 @@
  #include "chrome/browser/file_system_access/file_system_access_permission_request_manager.h"
+ #include "chrome/browser/installable/installable_utils.h"
  #include "chrome/browser/profiles/profile.h"
 -#include "chrome/browser/safe_browsing/download_protection/download_protection_service.h"
  #include "chrome/browser/ui/file_system_access_dialogs.h"
  #include "chrome/common/chrome_paths.h"
  #include "components/content_settings/core/browser/host_content_settings_map.h"
-@@ -278,79 +277,6 @@ BindResultCallbackToCurrentSequence(
+@@ -310,80 +309,6 @@ BindResultCallbackToCurrentSequence(
        base::SequencedTaskRunnerHandle::Get(), std::move(callback));
  }
  
@@ -500,6 +762,7 @@
 -    case Result::BLOCKED_PASSWORD_PROTECTED:
 -    case Result::BLOCKED_TOO_LARGE:
 -    case Result::BLOCKED_UNSUPPORTED_FILE_TYPE:
+-    case Result::DANGEROUS_ACCOUNT_COMPROMISE:
 -      return ChromeFileSystemAccessPermissionContext::AfterWriteCheckResult::
 -          kBlock;
 -
@@ -520,7 +783,7 @@
  std::string GenerateLastPickedDirectoryKey(const std::string& id) {
    return id.empty() ? kDefaultLastPickedDirectoryKey
                      : base::StrCat({kCustomLastPickedDirectoryKey, "-", id});
-@@ -825,28 +751,6 @@ void ChromeFileSystemAccessPermissionCon
+@@ -1114,28 +1039,6 @@ void ChromeFileSystemAccessPermissionCon
                       std::move(callback)));
  }
  
@@ -551,7 +814,7 @@
          const url::Origin& origin,
 --- a/chrome/browser/file_system_access/chrome_file_system_access_permission_context.h
 +++ b/chrome/browser/file_system_access/chrome_file_system_access_permission_context.h
-@@ -63,10 +63,6 @@ class ChromeFileSystemAccessPermissionCo
+@@ -81,10 +81,6 @@ class ChromeFileSystemAccessPermissionCo
        HandleType handle_type,
        content::GlobalFrameRoutingId frame_id,
        base::OnceCallback<void(SensitiveDirectoryResult)> callback) override;
@@ -582,10 +845,10 @@
    // Do not allow picker UI to be shown on a page that isn't in the foreground
 --- a/chrome/browser/password_manager/chrome_password_manager_client.cc
 +++ b/chrome/browser/password_manager/chrome_password_manager_client.cc
-@@ -32,7 +32,6 @@
+@@ -31,7 +31,6 @@
+ #include "chrome/browser/password_manager/field_info_manager_factory.h"
  #include "chrome/browser/password_manager/password_store_factory.h"
  #include "chrome/browser/profiles/profile.h"
- #include "chrome/browser/profiles/profile_metrics.h"
 -#include "chrome/browser/safe_browsing/chrome_password_protection_service.h"
  #include "chrome/browser/safe_browsing/user_interaction_observer.h"
  #include "chrome/browser/signin/identity_manager_factory.h"
@@ -603,7 +866,7 @@
  
  #if defined(OS_ANDROID)
  #include "base/feature_list.h"
-@@ -798,6 +797,7 @@ autofill::LanguageCode ChromePasswordMan
+@@ -804,6 +803,7 @@ autofill::LanguageCode ChromePasswordMan
    return autofill::LanguageCode();
  }
  
@@ -611,7 +874,7 @@
  safe_browsing::PasswordProtectionService*
  ChromePasswordManagerClient::GetPasswordProtectionService() const {
    return safe_browsing::ChromePasswordProtectionService::
-@@ -808,13 +808,6 @@ ChromePasswordManagerClient::GetPassword
+@@ -814,13 +814,6 @@ ChromePasswordManagerClient::GetPassword
  void ChromePasswordManagerClient::CheckSafeBrowsingReputation(
      const GURL& form_action,
      const GURL& frame_url) {
@@ -625,7 +888,7 @@
  }
  #endif  // defined(ON_FOCUS_PING_ENABLED)
  
-@@ -824,22 +817,10 @@ void ChromePasswordManagerClient::CheckP
+@@ -830,22 +823,10 @@ void ChromePasswordManagerClient::CheckP
      const std::vector<password_manager::MatchingReusedCredential>&
          matching_reused_credentials,
      bool password_field_exists) {
@@ -649,7 +912,7 @@
  }
  
  ukm::SourceId ChromePasswordManagerClient::GetUkmSourceId() {
-@@ -1294,9 +1275,11 @@ void ChromePasswordManagerClient::OnPast
+@@ -1304,9 +1285,11 @@ void ChromePasswordManagerClient::OnPast
    }
  
    was_on_paste_called_ = true;
@@ -662,7 +925,7 @@
  
  void ChromePasswordManagerClient::RenderFrameCreated(
      content::RenderFrameHost* render_frame_host) {
-@@ -1331,7 +1314,9 @@ void ChromePasswordManagerClient::OnInpu
+@@ -1341,7 +1324,9 @@ void ChromePasswordManagerClient::OnInpu
    if (key_event.windows_key_code == (ui::VKEY_V & 0x1f)) {
      OnPaste();
    } else {
@@ -672,7 +935,7 @@
    }
  #endif  // defined(OS_ANDROID)
  }
-@@ -1370,6 +1355,7 @@ bool ChromePasswordManagerClient::IsPass
+@@ -1380,6 +1365,7 @@ bool ChromePasswordManagerClient::IsPass
      is_enabled = false;
    }
  
@@ -680,7 +943,7 @@
    // SafeBrowsing Delayed Warnings experiment can delay some SafeBrowsing
    // warnings until user interaction. If the current page has a delayed warning,
    // it'll have a user interaction observer attached. Disable password
-@@ -1380,6 +1366,7 @@ bool ChromePasswordManagerClient::IsPass
+@@ -1390,6 +1376,7 @@ bool ChromePasswordManagerClient::IsPass
      observer->OnPasswordSaveOrAutofillDenied();
      is_enabled = false;
    }
@@ -690,7 +953,7 @@
      password_manager::BrowserSavePasswordProgressLogger logger(
 --- a/chrome/browser/password_manager/chrome_password_manager_client.h
 +++ b/chrome/browser/password_manager/chrome_password_manager_client.h
-@@ -190,13 +190,14 @@ class ChromePasswordManagerClient
+@@ -191,13 +191,14 @@ class ChromePasswordManagerClient
    void AnnotateNavigationEntry(bool has_password_field) override;
    autofill::LanguageCode GetPageLanguage() const override;
  
@@ -706,7 +969,7 @@
  
    void CheckProtectedPasswordEntry(
        password_manager::metrics_util::PasswordType reused_password_type,
-@@ -204,6 +205,7 @@ class ChromePasswordManagerClient
+@@ -205,6 +206,7 @@ class ChromePasswordManagerClient
        const std::vector<password_manager::MatchingReusedCredential>&
            matching_reused_credentials,
        bool password_field_exists) override;
@@ -742,18 +1005,19 @@
  void AbusiveOriginPermissionRevocationRequest::OnSafeBrowsingVerdictReceived(
 --- a/chrome/browser/permissions/contextual_notification_permission_ui_selector.cc
 +++ b/chrome/browser/permissions/contextual_notification_permission_ui_selector.cc
-@@ -17,10 +17,8 @@
+@@ -17,11 +17,9 @@
  #include "chrome/browser/browser_process.h"
  #include "chrome/browser/permissions/quiet_notification_permission_ui_config.h"
  #include "chrome/browser/permissions/quiet_notification_permission_ui_state.h"
 -#include "chrome/browser/safe_browsing/safe_browsing_service.h"
  #include "chrome/common/chrome_features.h"
  #include "components/permissions/permission_request.h"
+ #include "components/permissions/request_type.h"
 -#include "components/safe_browsing/core/db/database_manager.h"
  
  namespace {
  
-@@ -150,9 +148,6 @@ void ContextualNotificationPermissionUiS
+@@ -151,9 +149,6 @@ void ContextualNotificationPermissionUiS
  }
  
  void ContextualNotificationPermissionUiSelector::Cancel() {
@@ -762,9 +1026,9 @@
 -  safe_browsing_request_.reset();
  }
  
- ContextualNotificationPermissionUiSelector::
-@@ -173,24 +168,14 @@ void ContextualNotificationPermissionUiS
-   base::Optional<Decision> decision =
+ bool ContextualNotificationPermissionUiSelector::IsPermissionRequestSupported(
+@@ -179,24 +174,14 @@ void ContextualNotificationPermissionUiS
+   absl::optional<Decision> decision =
        GetDecisionBasedOnSiteReputation(reputation);
  
 -  // If the PreloadData suggests this is an unacceptable site, ping Safe
@@ -795,7 +1059,7 @@
  void ContextualNotificationPermissionUiSelector::OnSafeBrowsingVerdictReceived(
 --- a/chrome/browser/permissions/prediction_based_permission_ui_selector.cc
 +++ b/chrome/browser/permissions/prediction_based_permission_ui_selector.cc
-@@ -20,7 +20,6 @@
+@@ -22,7 +22,6 @@
  #include "components/permissions/prediction_service/prediction_service.h"
  #include "components/permissions/prediction_service/prediction_service_messages.pb.h"
  #include "components/prefs/pref_service.h"
@@ -803,16 +1067,37 @@
  
  namespace {
  
-@@ -197,8 +196,7 @@ bool PredictionBasedPermissionUiSelector
+@@ -205,10 +204,8 @@ bool PredictionBasedPermissionUiSelector
+     permissions::RequestType request_type) {
    // We need to also check `kQuietNotificationPrompts` here since there is no
    // generic safeguard anywhere else in the stack.
-   return base::FeatureList::IsEnabled(features::kQuietNotificationPrompts) &&
--         base::FeatureList::IsEnabled(features::kPermissionPredictions) &&
--         safe_browsing::IsSafeBrowsingEnabled(*(profile_->GetPrefs()));
-+         base::FeatureList::IsEnabled(features::kPermissionPredictions);
- }
- 
- // static
+-  if (!base::FeatureList::IsEnabled(features::kQuietNotificationPrompts) ||
+-      !safe_browsing::IsSafeBrowsingEnabled(*(profile_->GetPrefs()))) {
++  if (!base::FeatureList::IsEnabled(features::kQuietNotificationPrompts))
+     return false;
+-  }
+   double hold_back_chance = 0.0;
+   bool is_permissions_predictions_enabled = false;
+   switch (request_type) {
+--- a/chrome/browser/profiles/profile_info_cache.cc
++++ b/chrome/browser/profiles/profile_info_cache.cc
+@@ -33,7 +33,6 @@
+ #include "components/prefs/pref_registry_simple.h"
+ #include "components/prefs/pref_service.h"
+ #include "components/prefs/scoped_user_pref_update.h"
+-#include "components/signin/public/base/signin_pref_names.h"
+ #include "ui/base/l10n/l10n_util.h"
+ #include "ui/base/resource/resource_bundle.h"
+ #include "ui/gfx/image/image.h"
+@@ -165,8 +164,6 @@ void ProfileInfoCache::AddProfileToCache
+   info->SetBoolean(kIsUsingDefaultAvatarKey, true);
+   if (params.account_id.HasAccountIdKey())
+     info->SetString(kAccountIdKey, params.account_id.GetAccountIdKey());
+-  info->SetBoolKey(prefs::kSignedInWithCredentialProvider,
+-                   params.is_signed_in_with_credential_provider);
+   cache->SetKey(key, base::Value::FromUniquePtrValue(std::move(info)));
+   ProfileAttributesEntry* entry = InitEntryWithKey(key, params.is_omitted);
+   entry->InitializeLastNameToDisplay();
 --- a/chrome/browser/reputation/reputation_service.cc
 +++ b/chrome/browser/reputation/reputation_service.cc
 @@ -119,9 +119,7 @@ void ReputationService::GetReputationSta
@@ -826,6 +1111,32 @@
  
    LookalikeUrlService* service = LookalikeUrlService::Get(profile_);
    if (service->EngagedSitesNeedUpdating()) {
+--- a/chrome/browser/safe_browsing/metrics/safe_browsing_metrics_provider.cc
++++ b/chrome/browser/safe_browsing/metrics/safe_browsing_metrics_provider.cc
+@@ -7,7 +7,6 @@
+ #include "base/metrics/histogram_functions.h"
+ #include "chrome/browser/profiles/profile.h"
+ #include "components/prefs/pref_service.h"
+-#include "components/safe_browsing/core/common/safe_browsing_prefs.h"
+ 
+ namespace safe_browsing {
+ 
+@@ -17,15 +16,6 @@ SafeBrowsingMetricsProvider::~SafeBrowsi
+ 
+ void SafeBrowsingMetricsProvider::ProvideCurrentSessionData(
+     metrics::ChromeUserMetricsExtension* uma_proto) {
+-  Profile* profile = cached_profile_.GetMetricsProfile();
+-
+-  if (!profile)
+-    return;
+-
+-  SafeBrowsingState state = GetSafeBrowsingState(*profile->GetPrefs());
+-
+-  base::UmaHistogramEnumeration(
+-      "SafeBrowsing.Pref.MainProfile.SafeBrowsingState", state);
+ }
+ 
+ }  // namespace safe_browsing
 --- a/chrome/browser/safe_browsing/url_lookup_service_factory.cc
 +++ b/chrome/browser/safe_browsing/url_lookup_service_factory.cc
 @@ -55,29 +55,7 @@ RealTimeUrlLookupServiceFactory::RealTim
@@ -878,6 +1189,28 @@
  }
  
  content::BrowserContext* SCTReportingServiceFactory::GetBrowserContextToUse(
+--- a/chrome/browser/subresource_filter/chrome_content_subresource_filter_throttle_manager_factory.cc
++++ b/chrome/browser/subresource_filter/chrome_content_subresource_filter_throttle_manager_factory.cc
+@@ -6,7 +6,6 @@
+ 
+ #include "chrome/browser/browser_process.h"
+ #include "chrome/browser/profiles/profile.h"
+-#include "chrome/browser/safe_browsing/safe_browsing_service.h"
+ #include "chrome/browser/subresource_filter/subresource_filter_profile_context_factory.h"
+ #include "components/safe_browsing/core/db/database_manager.h"
+ #include "components/subresource_filter/content/browser/content_subresource_filter_throttle_manager.h"
+@@ -18,10 +17,7 @@ namespace {
+ // available. Otherwise returns nullptr.
+ const scoped_refptr<safe_browsing::SafeBrowsingDatabaseManager>
+ GetDatabaseManagerFromSafeBrowsingService() {
+-  safe_browsing::SafeBrowsingService* safe_browsing_service =
+-      g_browser_process->safe_browsing_service();
+-  return safe_browsing_service ? safe_browsing_service->database_manager()
+-                               : nullptr;
++  return nullptr;
+ }
+ 
+ }  // namespace
 --- a/chrome/browser/ui/javascript_dialogs/javascript_tab_modal_dialog_manager_delegate_desktop.cc
 +++ b/chrome/browser/ui/javascript_dialogs/javascript_tab_modal_dialog_manager_delegate_desktop.cc
 @@ -36,6 +36,7 @@ JavaScriptTabModalDialogManagerDelegateD
@@ -942,9 +1275,9 @@
  }
 --- a/chrome/browser/ui/views/download/download_item_view.cc
 +++ b/chrome/browser/ui/views/download/download_item_view.cc
-@@ -778,9 +778,7 @@ void DownloadItemView::UpdateLabels() {
- 
-   deep_scanning_label_->SetVisible(mode_ == Mode::kDeepScanning);
+@@ -789,9 +789,7 @@ void DownloadItemView::UpdateLabels() {
+   deep_scanning_label_->SetVisible(mode_ ==
+                                    download::DownloadItemMode::kDeepScanning);
    if (deep_scanning_label_->GetVisible()) {
 -    const int id = (model_->download() &&
 -                    safe_browsing::DeepScanningRequest::ShouldUploadBinary(
@@ -953,12 +1286,12 @@
                         ? IDS_PROMPT_DEEP_SCANNING_DOWNLOAD
                         : IDS_PROMPT_DEEP_SCANNING_APP_DOWNLOAD;
      const std::u16string filename = ElidedFilename(*deep_scanning_label_);
-@@ -804,11 +802,15 @@ void DownloadItemView::UpdateButtons() {
+@@ -815,11 +813,15 @@ void DownloadItemView::UpdateButtons() {
    }
  
    const bool allow_open_during_deep_scan =
 +#if BUILDFLAG(FULL_SAFE_BROWSING)
-       (mode_ == Mode::kDeepScanning) &&
+       (mode_ == download::DownloadItemMode::kDeepScanning) &&
        !enterprise_connectors::ConnectorsServiceFactory::GetForBrowserContext(
             model_->profile())
             ->DelayUntilVerdict(
@@ -966,10 +1299,10 @@
 +#else
 +      false;
 +#endif // BUILDFLAG(FULL_SAFE_BROWSING)
-   open_button_->SetEnabled((mode_ == Mode::kNormal) || prompt_to_scan ||
-                            allow_open_during_deep_scan);
+   open_button_->SetEnabled((mode_ == download::DownloadItemMode::kNormal) ||
+                            prompt_to_scan || allow_open_during_deep_scan);
  
-@@ -1237,7 +1239,9 @@ void DownloadItemView::ShowContextMenuIm
+@@ -1261,7 +1263,9 @@ void DownloadItemView::ShowContextMenuIm
  }
  
  void DownloadItemView::OpenDownloadDuringAsyncScanning() {
@@ -981,16 +1314,16 @@
  
 --- a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc
 +++ b/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc
-@@ -75,8 +75,6 @@
+@@ -76,8 +76,6 @@
  #include "components/prefs/pref_service.h"
  #include "components/reading_list/features/reading_list_switches.h"
  #include "components/safe_browsing/buildflags.h"
 -#include "components/safe_browsing/content/web_ui/safe_browsing_ui.h"
 -#include "components/safe_browsing/core/web_ui/constants.h"
- #include "components/search/ntp_features.h"
  #include "components/security_interstitials/content/connection_help_ui.h"
  #include "components/security_interstitials/content/known_interception_disclosure_ui.h"
-@@ -588,8 +586,6 @@ WebUIFactoryFunction GetWebUIFactoryFunc
+ #include "components/security_interstitials/content/urls.h"
+@@ -615,8 +613,6 @@ WebUIFactoryFunction GetWebUIFactoryFunc
      return &NewWebUI<PredictorsUI>;
    if (url.host_piece() == chrome::kChromeUIQuotaInternalsHost)
      return &NewWebUI<QuotaInternalsUI>;
@@ -1001,7 +1334,7 @@
    if (url.host_piece() == chrome::kChromeUISuggestionsHost)
 --- a/chrome/browser/ui/webui/downloads/downloads_dom_handler.cc
 +++ b/chrome/browser/ui/webui/downloads/downloads_dom_handler.cc
-@@ -357,7 +357,6 @@ void DownloadsDOMHandler::OpenDuringScan
+@@ -360,7 +360,6 @@ void DownloadsDOMHandler::OpenDuringScan
    if (download) {
      DownloadItemModel model(download);
      model.SetOpenWhenComplete(true);
@@ -1011,24 +1344,22 @@
  
 --- a/chrome/browser/ui/webui/management/management_ui_handler.cc
 +++ b/chrome/browser/ui/webui/management/management_ui_handler.cc
-@@ -790,14 +790,6 @@ base::Value ManagementUIHandler::GetThre
- 
-   auto* on_page_visited_event =
-       chrome_policies.GetValue(policy::key::kEnterpriseRealTimeUrlCheckMode);
--  if (on_page_visited_event && on_page_visited_event->is_int() &&
--      on_page_visited_event->GetInt() !=
--          safe_browsing::REAL_TIME_CHECK_DISABLED) {
--    base::Value value(base::Value::Type::DICTIONARY);
--    value.SetStringKey("title", kManagementOnPageVisitedEvent);
--    value.SetStringKey("permission", kManagementOnPageVisitedVisibleData);
--    info.Append(std::move(value));
--  }
+@@ -801,12 +801,6 @@ base::Value ManagementUIHandler::GetThre
+                                   &info);
+   }
  
+-  if (connectors_service->GetAppliedRealTimeUrlCheck() !=
+-      safe_browsing::REAL_TIME_CHECK_DISABLED) {
+-    AddThreatProtectionPermission(kManagementOnPageVisitedEvent,
+-                                  kManagementOnPageVisitedVisibleData, &info);
+-  }
+-
  #if BUILDFLAG(IS_CHROMEOS_ASH)
    std::string enterprise_manager = GetDeviceManager();
+   if (enterprise_manager.empty())
 --- a/components/password_manager/content/browser/content_password_manager_driver.cc
 +++ b/components/password_manager/content/browser/content_password_manager_driver.cc
-@@ -316,7 +316,7 @@ void ContentPasswordManagerDriver::Check
+@@ -318,7 +318,7 @@ void ContentPasswordManagerDriver::Check
    if (client_->GetMetricsRecorder()) {
      client_->GetMetricsRecorder()->RecordUserFocusedPasswordField();
    }
@@ -1088,7 +1419,7 @@
  }
 --- a/components/safe_browsing/content/common/safe_browsing.mojom
 +++ b/components/safe_browsing/content/common/safe_browsing.mojom
-@@ -117,7 +117,6 @@ enum PhishingDetectorResult {
+@@ -120,7 +120,6 @@ enum PhishingDetectorResult {
    INVALID_SCORE = 4,
  };
  
@@ -1187,7 +1518,7 @@
  PasswordProtectionServiceBase::GetPasswordProtectionReusedPasswordType(
 --- a/components/safe_browsing/core/password_protection/password_protection_service_base.h
 +++ b/components/safe_browsing/core/password_protection/password_protection_service_base.h
-@@ -23,7 +23,6 @@
+@@ -22,7 +22,6 @@
  #include "components/safe_browsing/buildflags.h"
  #include "components/safe_browsing/core/browser/referrer_chain_provider.h"
  #include "components/safe_browsing/core/browser/safe_browsing_token_fetcher.h"
@@ -1195,7 +1526,7 @@
  #include "components/safe_browsing/core/db/database_manager.h"
  #include "components/safe_browsing/core/db/v4_protocol_manager_util.h"
  #include "components/safe_browsing/core/password_protection/metrics_util.h"
-@@ -143,10 +142,6 @@ class PasswordProtectionServiceBase : pu
+@@ -142,10 +141,6 @@ class PasswordProtectionServiceBase : pu
    // Returns if the warning UI is enabled.
    bool IsWarningEnabled(ReusedPasswordAccountType password_type);
  
@@ -1208,7 +1539,7 @@
    // policy.
 --- a/content/browser/file_system_access/file_system_access_file_writer_impl.cc
 +++ b/content/browser/file_system_access/file_system_access_file_writer_impl.cc
-@@ -335,15 +335,8 @@ void FileSystemAccessFileWriterImpl::Clo
+@@ -338,15 +338,8 @@ void FileSystemAccessFileWriterImpl::Clo
  
    close_callback_ = std::move(callback);
  
@@ -1226,7 +1557,7 @@
  }
  
  void FileSystemAccessFileWriterImpl::AbortImpl(AbortCallback callback) {
-@@ -363,35 +356,6 @@ void FileSystemAccessFileWriterImpl::Abo
+@@ -366,35 +359,6 @@ void FileSystemAccessFileWriterImpl::Abo
    manager()->RemoveFileWriter(this);
  }
  
@@ -1289,3 +1620,29 @@
  
    // Returns whether the give |origin| already allows read permission, or it is
    // possible to request one. This is used to block file dialogs from being
+--- a/extensions/browser/updater/update_service.cc
++++ b/extensions/browser/updater/update_service.cc
+@@ -111,13 +111,6 @@ void UpdateService::OnEvent(Events event
+       break;
+   }
+ 
+-  if (should_perform_action_on_omaha_attributes) {
+-    base::Value attributes = GetExtensionOmahaAttributes(extension_id);
+-    // Note that it's important to perform actions even if |attributes| is
+-    // empty, missing values may default to false and have associated logic.
+-    ExtensionSystem::Get(browser_context_)
+-        ->PerformActionBasedOnOmahaAttributes(extension_id, attributes);
+-  }
+ }
+ 
+ UpdateService::UpdateService(
+--- a/weblayer/BUILD.gn
++++ b/weblayer/BUILD.gn
+@@ -451,7 +451,6 @@ source_set("weblayer_lib_base") {
+     "//components/pref_registry:pref_registry",
+     "//components/prefs",
+     "//components/profile_metrics",
+-    "//components/safe_browsing/content/browser:client_side_detection",
+     "//components/safe_browsing/content/common:interfaces",
+     "//components/safe_browsing/content/renderer:throttles",
+     "//components/safe_browsing/content/renderer/phishing_classifier",

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 125 - 154
patches/core/ungoogled-chromium/remove-unused-preferences-fields.patch


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

@@ -1,7 +1,7 @@
 # Disables translation and removes the "Translate to" context menu when --translate-script-url flag is not set
 --- a/chrome/browser/renderer_context_menu/render_view_context_menu.cc
 +++ b/chrome/browser/renderer_context_menu/render_view_context_menu.cc
-@@ -123,6 +123,7 @@
+@@ -125,6 +125,7 @@
  #include "components/spellcheck/common/spellcheck_common.h"
  #include "components/spellcheck/spellcheck_buildflags.h"
  #include "components/strings/grit/components_strings.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"
-@@ -1577,6 +1578,8 @@ void RenderViewContextMenu::AppendPageIt
+@@ -1592,6 +1593,8 @@ void RenderViewContextMenu::AppendPageIt
      menu_model_.AddSeparator(ui::NORMAL_SEPARATOR);
    }
  
@@ -18,7 +18,7 @@
    ChromeTranslateClient* chrome_translate_client =
        ChromeTranslateClient::FromWebContents(embedder_web_contents_);
    const bool canTranslate =
-@@ -1598,6 +1601,7 @@ void RenderViewContextMenu::AppendPageIt
+@@ -1613,6 +1616,7 @@ void RenderViewContextMenu::AppendPageIt
          IDC_CONTENT_CONTEXT_TRANSLATE,
          l10n_util::GetStringFUTF16(IDS_CONTENT_CONTEXT_TRANSLATE, language));
    }
@@ -36,14 +36,14 @@
  #include "base/json/json_reader.h"
  #include "base/lazy_instance.h"
  #include "base/notreached.h"
-@@ -25,6 +26,7 @@
+@@ -24,6 +25,7 @@
  #include "components/translate/core/browser/translate_event_details.h"
  #include "components/translate/core/browser/translate_url_fetcher.h"
  #include "components/translate/core/browser/translate_url_util.h"
 +#include "components/translate/core/common/translate_switches.h"
  #include "components/translate/core/common/translate_util.h"
  #include "net/base/url_util.h"
- #include "ui/base/l10n/l10n_util.h"
+ #include "third_party/abseil-cpp/absl/types/optional.h"
 @@ -220,6 +222,9 @@ GURL TranslateLanguageList::TranslateLan
  }
  
@@ -56,7 +56,7 @@
      request_pending_ = true;
 --- a/components/translate/core/browser/translate_manager.cc
 +++ b/components/translate/core/browser/translate_manager.cc
-@@ -908,8 +908,9 @@ void TranslateManager::FilterIsTranslate
+@@ -892,8 +892,9 @@ void TranslateManager::FilterIsTranslate
          ->LogAutofillAssistantDeferredTriggerDecision();
    }
  
@@ -70,7 +70,7 @@
      // that settings syncs and we don't want to turn off translate everywhere
 --- a/components/translate/core/browser/translate_ranker_impl.cc
 +++ b/components/translate/core/browser/translate_ranker_impl.cc
-@@ -155,12 +155,9 @@ TranslateRankerImpl::TranslateRankerImpl
+@@ -156,12 +156,9 @@ TranslateRankerImpl::TranslateRankerImpl
                                           ukm::UkmRecorder* ukm_recorder)
      : ukm_recorder_(ukm_recorder),
        is_uma_logging_enabled_(false),
@@ -86,7 +86,7 @@
    if (is_query_enabled_ || is_enforcement_enabled_) {
      model_loader_ = std::make_unique<assist_ranker::RankerModelLoaderImpl>(
          base::BindRepeating(&ValidateModel),
-@@ -234,6 +231,8 @@ bool TranslateRankerImpl::ShouldOfferTra
+@@ -235,6 +232,8 @@ bool TranslateRankerImpl::ShouldOfferTra
    // (or become False).
    const bool kDefaultResponse = true;
  

+ 27 - 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
-@@ -2323,6 +2323,7 @@ static_library("browser") {
+@@ -2346,6 +2346,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
-@@ -178,6 +178,7 @@
- #include "third_party/blink/public/common/forcedark/forcedark_switches.h"
- #include "third_party/blink/public/common/switches.h"
- #include "third_party/leveldatabase/leveldb_features.h"
+@@ -139,6 +139,7 @@
+ #include "components/translate/core/browser/translate_ranker_impl.h"
+ #include "components/translate/core/common/translate_util.h"
+ #include "components/ui_devtools/switches.h"
 +#include "components/ungoogled/ungoogled_switches.h"
- #include "ui/accessibility/accessibility_features.h"
- #include "ui/accessibility/accessibility_switches.h"
- #include "ui/base/ui_base_features.h"
+ #include "components/version_info/version_info.h"
+ #include "components/viz/common/features.h"
+ #include "components/viz/common/switches.h"
 --- a/chrome/browser/bromite_flag_entries.h
 +++ b/chrome/browser/bromite_flag_entries.h
 @@ -4,4 +4,12 @@
@@ -44,7 +44,7 @@
  #endif  // CHROME_BROWSER_BROMITE_FLAG_ENTRIES_H_
 --- a/content/browser/BUILD.gn
 +++ b/content/browser/BUILD.gn
-@@ -217,6 +217,7 @@ source_set("browser") {
+@@ -218,6 +218,7 @@ source_set("browser") {
      "//third_party/libyuv",
      "//third_party/re2",
      "//third_party/sqlite",
@@ -54,7 +54,7 @@
      "//third_party/zlib",
 --- a/content/browser/renderer_host/render_process_host_impl.cc
 +++ b/content/browser/renderer_host/render_process_host_impl.cc
-@@ -208,6 +208,7 @@
+@@ -209,6 +209,7 @@
  #include "third_party/blink/public/common/user_agent/user_agent_metadata.h"
  #include "third_party/blink/public/mojom/disk_allocator.mojom.h"
  #include "third_party/blink/public/public_buildflags.h"
@@ -62,7 +62,7 @@
  #include "third_party/skia/include/core/SkBitmap.h"
  #include "ui/accessibility/accessibility_switches.h"
  #include "ui/base/ui_base_switches.h"
-@@ -3252,6 +3253,8 @@ void RenderProcessHostImpl::PropagateBro
+@@ -3370,6 +3371,8 @@ void RenderProcessHostImpl::PropagateBro
      switches::kEnableWebGLDraftExtensions,
      switches::kEnableWebGLImageChromium,
      switches::kFileUrlPathAlias,
@@ -73,7 +73,7 @@
      switches::kForceGpuMemAvailableMb,
 --- a/content/child/BUILD.gn
 +++ b/content/child/BUILD.gn
-@@ -104,6 +104,7 @@ target(link_target_type, "child") {
+@@ -102,6 +102,7 @@ target(link_target_type, "child") {
      "//third_party/blink/public/common",
      "//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
-@@ -30,6 +30,7 @@
+@@ -31,6 +31,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"
-@@ -456,6 +457,10 @@ void SetRuntimeFeaturesFromCommandLine(c
+@@ -468,6 +469,10 @@ void SetRuntimeFeaturesFromCommandLine(c
        {wrf::EnableWebGPU, switches::kEnableUnsafeWebGPU, true},
        {wrf::ForceOverlayFullscreenVideo, switches::kForceOverlayFullscreenVideo,
         true},
@@ -104,7 +104,7 @@
      if (command_line.HasSwitch(mapping.switch_name))
 --- a/third_party/blink/public/platform/web_runtime_features.h
 +++ b/third_party/blink/public/platform/web_runtime_features.h
-@@ -210,6 +210,8 @@ class WebRuntimeFeatures {
+@@ -215,6 +215,8 @@ class WebRuntimeFeatures {
    BLINK_PLATFORM_EXPORT static void EnableGetDisplayMedia(bool);
    BLINK_PLATFORM_EXPORT static void EnableGetCurrentBrowsingContextMedia(bool);
    BLINK_PLATFORM_EXPORT static void EnableAllowSyncXHRInPageDismissal(bool);
@@ -116,14 +116,14 @@
 --- a/third_party/blink/renderer/core/dom/document.cc
 +++ b/third_party/blink/renderer/core/dom/document.cc
 @@ -43,6 +43,7 @@
+ #include "base/debug/dump_without_crashing.h"
  #include "base/macros.h"
  #include "base/metrics/histogram_functions.h"
- #include "base/optional.h"
 +#include "base/rand_util.h"
  #include "base/time/time.h"
  #include "cc/input/overscroll_behavior.h"
  #include "cc/input/scroll_snap_data.h"
-@@ -867,6 +868,14 @@ Range* Document::CreateRangeAdjustedToTr
+@@ -859,6 +860,14 @@ Range* Document::CreateRangeAdjustedToTr
                                       Position::BeforeNode(*shadow_host));
  }
  
@@ -138,7 +138,7 @@
  SelectorQueryCache& Document::GetSelectorQueryCache() {
    if (!selector_query_cache_)
      selector_query_cache_ = std::make_unique<SelectorQueryCache>();
-@@ -2398,6 +2407,15 @@ void Document::UpdateStyleAndLayoutTreeF
+@@ -2157,6 +2166,15 @@ void Document::UpdateStyleAndLayoutTreeF
  #if DCHECK_IS_ON()
    AssertLayoutTreeUpdated(*this);
  #endif
@@ -156,7 +156,7 @@
  void Document::InvalidateStyleAndLayoutForFontUpdates() {
 --- a/third_party/blink/renderer/core/dom/document.h
 +++ b/third_party/blink/renderer/core/dom/document.h
-@@ -445,6 +445,10 @@ class CORE_EXPORT Document : public Cont
+@@ -456,6 +456,10 @@ class CORE_EXPORT Document : public Cont
      has_xml_declaration_ = has_xml_declaration ? 1 : 0;
    }
  
@@ -167,7 +167,7 @@
    AtomicString visibilityState() const;
    bool IsPageVisible() const;
    bool hidden() const;
-@@ -2005,6 +2009,9 @@ class CORE_EXPORT Document : public Cont
+@@ -2021,6 +2025,9 @@ class CORE_EXPORT Document : public Cont
  
    base::ElapsedTimer start_time_;
  
@@ -179,7 +179,7 @@
    HeapVector<Member<ScriptElementBase>> current_script_stack_;
 --- a/third_party/blink/renderer/core/dom/element.cc
 +++ b/third_party/blink/renderer/core/dom/element.cc
-@@ -2092,6 +2092,11 @@ DOMRectList* Element::getClientRects() {
+@@ -2120,6 +2120,11 @@ DOMRectList* Element::getClientRects() {
    DCHECK(element_layout_object);
    GetDocument().AdjustFloatQuadsForScrollAndAbsoluteZoom(
        quads, *element_layout_object);
@@ -191,7 +191,7 @@
    return MakeGarbageCollected<DOMRectList>(quads);
  }
  
-@@ -2109,6 +2114,9 @@ FloatRect Element::GetBoundingClientRect
+@@ -2137,6 +2142,9 @@ FloatRect Element::GetBoundingClientRect
    DCHECK(element_layout_object);
    GetDocument().AdjustFloatRectForScrollAndAbsoluteZoom(result,
                                                          *element_layout_object);
@@ -203,7 +203,7 @@
  
 --- a/third_party/blink/renderer/core/dom/range.cc
 +++ b/third_party/blink/renderer/core/dom/range.cc
-@@ -1615,11 +1615,21 @@ DOMRectList* Range::getClientRects() con
+@@ -1614,11 +1614,21 @@ DOMRectList* Range::getClientRects() con
    Vector<FloatQuad> quads;
    GetBorderAndTextQuads(quads);
  
@@ -266,7 +266,7 @@
                const TextDirection&,
 --- a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.cc
 +++ b/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.cc
-@@ -968,9 +968,15 @@ TextMetrics* CanvasRenderingContext2D::m
+@@ -983,9 +983,15 @@ TextMetrics* CanvasRenderingContext2D::m
    TextDirection direction =
        ToTextDirection(GetState().GetDirection(), canvas());
  
@@ -285,7 +285,7 @@
  void CanvasRenderingContext2D::fillFormattedText(
 --- a/third_party/blink/renderer/platform/BUILD.gn
 +++ b/third_party/blink/renderer/platform/BUILD.gn
-@@ -1660,6 +1660,7 @@ component("platform") {
+@@ -1669,6 +1669,7 @@ component("platform") {
      "//components/paint_preview/common",
      "//components/power_scheduler",
      "//components/search_engines:search_engine_utils",
@@ -295,7 +295,7 @@
      "//crypto",
 --- a/third_party/blink/renderer/platform/exported/web_runtime_features.cc
 +++ b/third_party/blink/renderer/platform/exported/web_runtime_features.cc
-@@ -671,4 +671,12 @@ void WebRuntimeFeatures::EnableDocumentT
+@@ -686,4 +686,12 @@ void WebRuntimeFeatures::EnableDocumentT
    RuntimeEnabledFeatures::SetDocumentTransitionEnabled(enable);
  }
  
@@ -310,7 +310,7 @@
  }  // namespace blink
 --- a/third_party/blink/renderer/platform/runtime_enabled_features.json5
 +++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5
-@@ -948,6 +948,12 @@
+@@ -975,6 +975,12 @@
        origin_trial_feature_name: "FledgeInterestGroupAPI",
      },
      {

+ 12 - 12
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
-@@ -3255,6 +3255,7 @@ void RenderProcessHostImpl::PropagateBro
+@@ -3373,6 +3373,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
-@@ -461,6 +461,8 @@ void SetRuntimeFeaturesFromCommandLine(c
+@@ -473,6 +473,8 @@ void SetRuntimeFeaturesFromCommandLine(c
         switches::kFingerprintingClientRectsNoise, true},
        {wrf::EnableFingerprintingCanvasMeasureTextNoise,
         switches::kFingerprintingCanvasMeasureTextNoise, true},
@@ -55,7 +55,7 @@ approach to change color components.
      if (command_line.HasSwitch(mapping.switch_name))
 --- a/third_party/blink/public/platform/web_runtime_features.h
 +++ b/third_party/blink/public/platform/web_runtime_features.h
-@@ -212,6 +212,7 @@ class WebRuntimeFeatures {
+@@ -217,6 +217,7 @@ class WebRuntimeFeatures {
    BLINK_PLATFORM_EXPORT static void EnableAllowSyncXHRInPageDismissal(bool);
    BLINK_PLATFORM_EXPORT static void EnableFingerprintingClientRectsNoise(bool);
    BLINK_PLATFORM_EXPORT static void EnableFingerprintingCanvasMeasureTextNoise(bool);
@@ -65,7 +65,7 @@ approach to change color components.
    BLINK_PLATFORM_EXPORT static void EnableSignedExchangeSubresourcePrefetch(
 --- 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
-@@ -21,6 +21,7 @@
+@@ -24,6 +24,7 @@
  #include "third_party/blink/renderer/platform/geometry/float_quad.h"
  #include "third_party/blink/renderer/platform/graphics/bitmap_image.h"
  #include "third_party/blink/renderer/platform/graphics/skia/skia_utils.h"
@@ -73,21 +73,21 @@ approach to change color components.
  #include "third_party/blink/renderer/platform/graphics/stroke_data.h"
  #include "third_party/blink/renderer/platform/heap/heap.h"
  
-@@ -2005,6 +2006,11 @@ ImageData* BaseRenderingContext2D::getIm
+@@ -2180,6 +2181,11 @@ ImageData* BaseRenderingContext2D::getIm
            snapshot->PaintImageForCurrentFrame().GetSkImageInfo().bounds();
        DCHECK(!bounds.intersect(SkIRect::MakeXYWH(sx, sy, sw, sh)));
      }
 +    if (read_pixels_successful && RuntimeEnabledFeatures::FingerprintingCanvasImageDataNoiseEnabled()) {
-+      base::span<uint8_t> dst = base::span<uint8_t>(reinterpret_cast<uint8_t*>(contents.Data()),
-+          contents.DataLength());
-+      StaticBitmapImage::ShuffleSubchannelColorData(dst.data(), image_info, sx, sy);
++      base::span<uint8_t> dst = base::span<uint8_t>(reinterpret_cast<uint8_t*>(image_data_pixmap.writable_addr()),
++          image_data_pixmap.rowBytes());
++      StaticBitmapImage::ShuffleSubchannelColorData(dst.data(), image_data_pixmap.info(), sx, sy);
 +    }
    }
  
-   // Wrap |contents| in an ImageData.
+   if (!IsPaint2D()) {
 --- a/third_party/blink/renderer/platform/BUILD.gn
 +++ b/third_party/blink/renderer/platform/BUILD.gn
-@@ -1619,7 +1619,9 @@ component("platform") {
+@@ -1628,7 +1628,9 @@ component("platform") {
      "//third_party/blink/renderer:non_test_config",
    ]
  
@@ -100,7 +100,7 @@ approach to change color components.
      "//third_party/blink/renderer/platform/blob",
 --- a/third_party/blink/renderer/platform/exported/web_runtime_features.cc
 +++ b/third_party/blink/renderer/platform/exported/web_runtime_features.cc
-@@ -679,4 +679,8 @@ void WebRuntimeFeatures::EnableFingerpri
+@@ -694,4 +694,8 @@ void WebRuntimeFeatures::EnableFingerpri
    RuntimeEnabledFeatures::SetFingerprintingCanvasMeasureTextNoiseEnabled(enable);
  }
  
@@ -324,7 +324,7 @@ approach to change color components.
    // Methods overridden by all sub-classes
 --- a/third_party/blink/renderer/platform/runtime_enabled_features.json5
 +++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5
-@@ -954,6 +954,9 @@
+@@ -981,6 +981,9 @@
        name: "FingerprintingCanvasMeasureTextNoise",
      },
      {

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

@@ -17,7 +17,7 @@ with limited CPU/memory resources and it is disabled by default.
 
 --- a/chrome/browser/BUILD.gn
 +++ b/chrome/browser/BUILD.gn
-@@ -2084,6 +2084,7 @@ static_library("browser") {
+@@ -2105,6 +2105,7 @@ static_library("browser") {
      "//components/net_log",
      "//components/network_hints/common:mojo_bindings",
      "//components/network_session_configurator/browser",
@@ -80,7 +80,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"
-@@ -317,6 +321,18 @@ void BrowserProcessImpl::Init() {
+@@ -316,6 +320,18 @@ void BrowserProcessImpl::Init() {
                               base::BindRepeating(&ApplyMetricsReportingPolicy));
  #endif
  
@@ -101,7 +101,7 @@ with limited CPU/memory resources and it is disabled by default.
  
 --- a/chrome/browser/flag_descriptions.cc
 +++ b/chrome/browser/flag_descriptions.cc
-@@ -1477,6 +1477,10 @@ const char kMediaHistoryDescription[] =
+@@ -1511,6 +1511,10 @@ const char kMediaHistoryDescription[] =
      "Enables Media History which records data around media playbacks on "
      "websites.";
  
@@ -114,7 +114,7 @@ with limited CPU/memory resources and it is disabled by default.
  const char kMediaRouterCastAllowAllIPsDescription[] =
 --- a/chrome/browser/flag_descriptions.h
 +++ b/chrome/browser/flag_descriptions.h
-@@ -866,6 +866,9 @@ extern const char kLogJsConsoleMessagesD
+@@ -883,6 +883,9 @@ extern const char kLogJsConsoleMessagesD
  extern const char kMediaHistoryName[];
  extern const char kMediaHistoryDescription[];
  

+ 2 - 2
patches/extra/debian/disable/google-api-warning.patch

@@ -3,12 +3,12 @@ author: Michael Gilbert <mgilbert@debian.org>
 
 --- a/chrome/browser/ui/startup/startup_browser_creator_impl.cc
 +++ b/chrome/browser/ui/startup/startup_browser_creator_impl.cc
-@@ -652,9 +652,6 @@ void StartupBrowserCreatorImpl::AddInfoB
+@@ -647,9 +647,6 @@ void StartupBrowserCreatorImpl::AddInfoB
      }
  #endif
  
 -    if (!google_apis::HasAPIKeyConfigured())
--      GoogleApiKeysInfoBarDelegate::Create(infobar_service);
+-      GoogleApiKeysInfoBarDelegate::Create(infobar_manager);
 -
      if (ObsoleteSystem::IsObsoleteNowOrSoon()) {
        PrefService* local_state = g_browser_process->local_state();

+ 1 - 1
patches/extra/debian/disable/welcome-page.patch

@@ -4,7 +4,7 @@ bug-debian: http://bugs.debian.org/857767
 
 --- a/chrome/browser/profiles/profile_manager.cc
 +++ b/chrome/browser/profiles/profile_manager.cc
-@@ -1249,7 +1249,7 @@ void ProfileManager::InitProfileUserPref
+@@ -1337,7 +1337,7 @@ void ProfileManager::InitProfileUserPref
      profile->GetPrefs()->SetString(prefs::kSupervisedUserId,
                                     supervised_user_id);
    }

+ 6 - 6
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
-@@ -1292,7 +1292,7 @@ void ChromeContentBrowserClient::Registe
+@@ -1286,7 +1286,7 @@ void ChromeContentBrowserClient::Registe
  void ChromeContentBrowserClient::RegisterProfilePrefs(
      user_prefs::PrefRegistrySyncable* registry) {
    registry->RegisterBooleanPref(prefs::kDisable3DAPIs, false);
@@ -45,7 +45,7 @@
  enum class NetworkPredictionStatus {
 --- a/chrome/browser/net/profile_network_context_service.cc
 +++ b/chrome/browser/net/profile_network_context_service.cc
-@@ -325,7 +325,7 @@ void ProfileNetworkContextService::Updat
+@@ -319,7 +319,7 @@ void ProfileNetworkContextService::Updat
  void ProfileNetworkContextService::RegisterProfilePrefs(
      user_prefs::PrefRegistrySyncable* registry) {
    registry->RegisterBooleanPref(
@@ -56,7 +56,7 @@
    registry->RegisterBooleanPref(prefs::kGloballyScopeHTTPAuthCacheEnabled,
 --- a/chrome/browser/profiles/profile.cc
 +++ b/chrome/browser/profiles/profile.cc
-@@ -265,7 +265,7 @@ const char Profile::kProfileKey[] = "__P
+@@ -280,7 +280,7 @@ const char Profile::kProfileKey[] = "__P
  void Profile::RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) {
    registry->RegisterBooleanPref(
        prefs::kSearchSuggestEnabled,
@@ -78,7 +78,7 @@
      </cr-dialog>
 --- a/chrome/browser/signin/account_consistency_mode_manager.cc
 +++ b/chrome/browser/signin/account_consistency_mode_manager.cc
-@@ -116,7 +116,7 @@ void AccountConsistencyModeManager::Regi
+@@ -120,7 +120,7 @@ void AccountConsistencyModeManager::Regi
  #if BUILDFLAG(ENABLE_DICE_SUPPORT)
    registry->RegisterBooleanPref(kDiceMigrationCompletePref, false);
  #endif
@@ -89,7 +89,7 @@
  // static
 --- a/chrome/browser/ui/browser_ui_prefs.cc
 +++ b/chrome/browser/ui/browser_ui_prefs.cc
-@@ -71,11 +71,11 @@ void RegisterBrowserUserPrefs(user_prefs
+@@ -72,11 +72,11 @@ void RegisterBrowserUserPrefs(user_prefs
    registry->RegisterBooleanPref(prefs::kWebAppCreateInAppsMenu, true);
    registry->RegisterBooleanPref(prefs::kWebAppCreateInQuickLaunchBar, true);
    registry->RegisterBooleanPref(
@@ -168,7 +168,7 @@
  
 --- a/components/password_manager/core/browser/password_manager.cc
 +++ b/components/password_manager/core/browser/password_manager.cc
-@@ -198,10 +198,10 @@ FormData SimplifiedFormDataFromFormStruc
+@@ -207,10 +207,10 @@ bool HasMutedCredentials(base::span<cons
  void PasswordManager::RegisterProfilePrefs(
      user_prefs::PrefRegistrySyncable* registry) {
    registry->RegisterBooleanPref(

+ 9 - 7
patches/extra/inox-patchset/0013-disable-missing-key-warning.patch

@@ -1,10 +1,12 @@
 --- a/chrome/browser/ui/startup/google_api_keys_infobar_delegate.cc
 +++ b/chrome/browser/ui/startup/google_api_keys_infobar_delegate.cc
-@@ -16,6 +16,7 @@
- 
+@@ -17,9 +17,6 @@
  // static
- void GoogleApiKeysInfoBarDelegate::Create(InfoBarService* infobar_service) {
-+  return;
-   infobar_service->AddInfoBar(infobar_service->CreateConfirmInfoBar(
-       std::unique_ptr<ConfirmInfoBarDelegate>(
-           new GoogleApiKeysInfoBarDelegate())));
+ void GoogleApiKeysInfoBarDelegate::Create(
+     infobars::ContentInfoBarManager* infobar_manager) {
+-  infobar_manager->AddInfoBar(
+-      CreateConfirmInfoBar(std::unique_ptr<ConfirmInfoBarDelegate>(
+-          new GoogleApiKeysInfoBarDelegate())));
+ }
+ 
+ GoogleApiKeysInfoBarDelegate::GoogleApiKeysInfoBarDelegate()

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

@@ -9,7 +9,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
-@@ -1461,8 +1461,6 @@ int ChromeBrowserMainParts::PreMainMessa
+@@ -1479,8 +1479,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/prefs-only-keep-cookies-until-exit.patch

@@ -10,7 +10,7 @@ Out with all those tracking cookies!
 
 --- a/components/content_settings/core/browser/content_settings_registry.cc
 +++ b/components/content_settings/core/browser/content_settings_registry.cc
-@@ -140,7 +140,7 @@ void ContentSettingsRegistry::Init() {
+@@ -127,7 +127,7 @@ void ContentSettingsRegistry::Init() {
    // WARNING: The string names of the permissions passed in below are used to
    // generate preference names and should never be changed!
  

+ 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
-@@ -728,7 +728,7 @@ static base::mac::ScopedObjCClassSwizzle
+@@ -846,7 +846,7 @@ static base::mac::ScopedObjCClassSwizzle
    CFStringRef checkInterval = CFSTR("checkInterval");
    CFPropertyListRef plist = CFPreferencesCopyAppValue(checkInterval, app);
    if (!plist) {

+ 6 - 6
patches/extra/ungoogled-chromium/add-flag-for-pdf-plugin-name.patch

@@ -1,6 +1,6 @@
 --- a/chrome/browser/chrome_content_browser_client.cc
 +++ b/chrome/browser/chrome_content_browser_client.cc
-@@ -5794,7 +5794,7 @@ bool ChromeContentBrowserClient::ShouldA
+@@ -5770,7 +5770,7 @@ bool ChromeContentBrowserClient::ShouldA
      const url::Origin& embedder_origin,
      const content::PepperPluginInfo& plugin_info) {
  #if BUILDFLAG(ENABLE_PDF)
@@ -11,7 +11,7 @@
      if (embedder_origin.scheme() == extensions::kExtensionScheme &&
 --- a/chrome/browser/pdf/pdf_extension_util.cc
 +++ b/chrome/browser/pdf/pdf_extension_util.cc
-@@ -172,7 +172,7 @@ std::string GetManifest() {
+@@ -169,7 +169,7 @@ std::string GetManifest() {
    DCHECK(manifest_contents.find(kNameTag) != std::string::npos);
    base::ReplaceFirstSubstringAfterOffset(
        &manifest_contents, 0, kNameTag,
@@ -254,7 +254,7 @@
  #endif  // CHROME_BROWSER_UNGOOGLED_FLAG_ENTRIES_H_
 --- a/chrome/common/BUILD.gn
 +++ b/chrome/common/BUILD.gn
-@@ -247,6 +247,7 @@ static_library("common") {
+@@ -251,6 +251,7 @@ static_library("common") {
      "//components/no_state_prefetch/common",
      "//components/no_state_prefetch/common:mojo_bindings",
      "//components/page_load_metrics/common:common",
@@ -264,7 +264,7 @@
    if (enable_plugins) {
 --- a/chrome/common/chrome_content_client.cc
 +++ b/chrome/common/chrome_content_client.cc
-@@ -143,7 +143,7 @@ void ComputeBuiltInPlugins(std::vector<c
+@@ -120,7 +120,7 @@ void ComputeBuiltInPlugins(std::vector<c
    content::PepperPluginInfo pdf_info;
    pdf_info.is_internal = true;
    pdf_info.is_out_of_process = true;
@@ -363,7 +363,7 @@
      FILE_PATH_LITERAL("internal-pdf-viewer");
 --- a/chrome/renderer/chrome_content_renderer_client.cc
 +++ b/chrome/renderer/chrome_content_renderer_client.cc
-@@ -959,7 +959,7 @@ WebPlugin* ChromeContentRendererClient::
+@@ -992,7 +992,7 @@ WebPlugin* ChromeContentRendererClient::
              }
            }
          } else if (info.name ==
@@ -372,7 +372,7 @@
            // Report PDF load metrics. Since the PDF plugin is comprised of an
            // extension that loads a second plugin, avoid double counting by
            // ignoring the creation of the second plugin.
-@@ -1005,7 +1005,7 @@ WebPlugin* ChromeContentRendererClient::
+@@ -1038,7 +1038,7 @@ WebPlugin* ChromeContentRendererClient::
          PluginUMAReporter::GetInstance()->ReportPluginDisabled(orig_mime_type,
                                                                 url);
          if (info.name ==

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

@@ -13,7 +13,7 @@
  #endif  // CHROME_BROWSER_UNGOOGLED_FLAG_ENTRIES_H_
 --- a/chrome/renderer/chrome_render_frame_observer.cc
 +++ b/chrome/renderer/chrome_render_frame_observer.cc
-@@ -139,9 +139,10 @@ ChromeRenderFrameObserver::ChromeRenderF
+@@ -140,9 +140,10 @@ ChromeRenderFrameObserver::ChromeRenderF
    if (!render_frame->IsMainFrame())
      return;
  
@@ -25,7 +25,7 @@
    if (!command_line.HasSwitch(switches::kDisableClientSidePhishingDetection))
      SetClientSidePhishingDetection();
  #endif
-@@ -201,14 +202,16 @@ void ChromeRenderFrameObserver::DidFinis
+@@ -202,14 +203,16 @@ void ChromeRenderFrameObserver::DidFinis
    if (frame->Parent())
      return;
  
@@ -52,7 +52,7 @@
  
 --- a/chrome/renderer/chrome_render_frame_observer.h
 +++ b/chrome/renderer/chrome_render_frame_observer.h
-@@ -135,6 +135,7 @@ class ChromeRenderFrameObserver : public
+@@ -134,6 +134,7 @@ class ChromeRenderFrameObserver : public
  #if BUILDFLAG(SAFE_BROWSING_AVAILABLE)
    safe_browsing::PhishingClassifierDelegate* phishing_classifier_ = nullptr;
  #endif
@@ -102,7 +102,7 @@
  }
  
  bool TemplateURLService::IsPrepopulatedOrCreatedByPolicy(
-@@ -1450,6 +1458,8 @@ SyncDataMap TemplateURLService::CreateGU
+@@ -1446,6 +1454,8 @@ SyncDataMap TemplateURLService::CreateGU
  
  void TemplateURLService::Init(const Initializer* initializers,
                                int num_initializers) {
@@ -111,7 +111,7 @@
    if (client_)
      client_->SetOwner(this);
  
-@@ -1586,6 +1596,9 @@ void TemplateURLService::ChangeToLoadedS
+@@ -1582,6 +1592,9 @@ void TemplateURLService::ChangeToLoadedS
  
  bool TemplateURLService::CanAddAutogeneratedKeywordForHost(
      const std::string& host) const {
@@ -123,7 +123,7 @@
      return true;
 --- a/components/search_engines/template_url_service.h
 +++ b/components/search_engines/template_url_service.h
-@@ -685,6 +685,8 @@ class TemplateURLService : public WebDat
+@@ -681,6 +681,8 @@ class TemplateURLService : public WebDat
    // ---------- Browser state related members ---------------------------------
    PrefService* prefs_ = nullptr;
  

+ 3 - 3
patches/extra/ungoogled-chromium/add-flag-to-clear-data-on-exit.patch

@@ -8,7 +8,7 @@
  #include "components/browsing_data/core/pref_names.h"
  #include "components/keep_alive_registry/keep_alive_types.h"
  #include "components/keep_alive_registry/scoped_keep_alive.h"
-@@ -275,8 +276,9 @@ void ChromeBrowsingDataLifetimeManager::
+@@ -277,8 +278,9 @@ void ChromeBrowsingDataLifetimeManager::
      bool keep_browser_alive) {
    auto* data_types = profile_->GetPrefs()->GetList(
        browsing_data::prefs::kClearBrowsingDataOnExitList);
@@ -19,8 +19,8 @@
 +      !ProfileSyncServiceFactory::IsSyncAllowed(profile_))) {
      profile_->GetPrefs()->SetBoolean(
          browsing_data::prefs::kClearBrowsingDataOnExitDeletionPending, true);
-     auto* remover = content::BrowserContext::GetBrowsingDataRemover(profile_);
-@@ -292,8 +294,8 @@ void ChromeBrowsingDataLifetimeManager::
+     auto* remover = profile_->GetBrowsingDataRemover();
+@@ -294,8 +296,8 @@ void ChromeBrowsingDataLifetimeManager::
                                  KeepAliveRestartOption::DISABLED)
                            : nullptr;
      remover->RemoveAndReply(base::Time(), base::Time::Max(),

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

@@ -8,7 +8,7 @@
  #include "base/containers/flat_map.h"
  #include "base/metrics/histogram_macros.h"
  #include "base/metrics/user_metrics.h"
-@@ -1790,6 +1791,10 @@ bool TabStripModel::InternalCloseTabs(
+@@ -1798,6 +1799,10 @@ bool TabStripModel::InternalCloseTabs(
    if (items.empty())
      return true;
  

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

@@ -11,7 +11,7 @@
  #include "chrome/browser/chrome_notification_types.h"
  #include "chrome/browser/extensions/crx_installer.h"
  #include "chrome/browser/extensions/extension_install_prompt.h"
-@@ -127,6 +128,14 @@ scoped_refptr<extensions::CrxInstaller>
+@@ -128,6 +129,14 @@ scoped_refptr<extensions::CrxInstaller>
    return installer;
  }
  
@@ -26,7 +26,7 @@
  bool IsExtensionDownload(const DownloadItem& download_item) {
    if (download_item.GetTargetDisposition() ==
        DownloadItem::TARGET_DISPOSITION_PROMPT)
-@@ -135,7 +144,7 @@ bool IsExtensionDownload(const DownloadI
+@@ -136,7 +145,7 @@ bool IsExtensionDownload(const DownloadI
    if (download_item.GetMimeType() == extensions::Extension::kMimeType ||
        extensions::UserScript::IsURLUserScript(download_item.GetURL(),
                                                download_item.GetMimeType())) {
@@ -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
-@@ -1041,10 +1041,12 @@ DownloadConfirmationReason DownloadTarge
+@@ -1046,10 +1046,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_view_impl.cc
 +++ b/content/renderer/render_view_impl.cc
-@@ -81,6 +81,8 @@ WindowOpenDisposition RenderViewImpl::Na
+@@ -79,6 +79,8 @@ WindowOpenDisposition RenderViewImpl::Na
      case blink::kWebNavigationPolicyNewWindow:
        return WindowOpenDisposition::NEW_WINDOW;
      case blink::kWebNavigationPolicyNewPopup:

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

@@ -13,7 +13,7 @@
  #endif  // CHROME_BROWSER_UNGOOGLED_FLAG_ENTRIES_H_
 --- a/components/history/core/browser/history_backend.cc
 +++ b/components/history/core/browser/history_backend.cc
-@@ -14,6 +14,7 @@
+@@ -15,6 +15,7 @@
  #include <vector>
  
  #include "base/bind.h"

+ 1 - 1
patches/extra/ungoogled-chromium/add-flag-to-force-punycode-hostnames.patch

@@ -21,7 +21,7 @@
  #include "base/lazy_instance.h"
  #include "base/numerics/safe_conversions.h"
  #include "base/stl_util.h"
-@@ -266,6 +267,13 @@ IDNConversionResult IDNToUnicodeWithAdju
+@@ -265,6 +266,13 @@ IDNConversionResult IDNToUnicodeWithAdju
    host16.reserve(host.length());
    host16.insert(host16.end(), host.begin(), host.end());
  

+ 1 - 1
patches/extra/ungoogled-chromium/add-flag-to-hide-crashed-bubble.patch

@@ -3,7 +3,7 @@
 
 --- a/chrome/browser/ui/startup/startup_browser_creator_impl.cc
 +++ b/chrome/browser/ui/startup/startup_browser_creator_impl.cc
-@@ -607,7 +607,8 @@ void StartupBrowserCreatorImpl::AddInfoB
+@@ -612,7 +612,8 @@ void StartupBrowserCreatorImpl::AddInfoB
    if (command_line_.HasSwitch(switches::kKioskMode))
      return;
  

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

@@ -8,7 +8,7 @@
  #include "base/metrics/user_metrics.h"
  #include "base/task/post_task.h"
  #include "base/task/thread_pool.h"
-@@ -105,6 +106,18 @@ DragOperation GetDropEffect(const ui::Dr
+@@ -106,6 +107,18 @@ DragOperation GetDropEffect(const ui::Dr
    return DragOperation::kMove;
  }
  
@@ -27,7 +27,7 @@
  }  // namespace
  
  BrowserRootView::DropInfo::DropInfo() = default;
-@@ -116,7 +129,9 @@ BrowserRootView::DropInfo::~DropInfo() {
+@@ -117,7 +130,9 @@ BrowserRootView::DropInfo::~DropInfo() {
  
  BrowserRootView::BrowserRootView(BrowserView* browser_view,
                                   views::Widget* widget)
@@ -38,7 +38,7 @@
  
  BrowserRootView::~BrowserRootView() {
    // It's possible to destroy the browser while a drop is active.  In this case,
-@@ -267,7 +282,7 @@ bool BrowserRootView::OnMouseWheel(const
+@@ -268,7 +283,7 @@ bool BrowserRootView::OnMouseWheel(const
  
    // Scroll-event-changes-tab is incompatible with scrolling tabstrip, so
    // disable it if the latter feature is enabled.

+ 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
-@@ -250,14 +250,30 @@ void ToolbarView::Init() {
+@@ -263,14 +263,30 @@ void ToolbarView::Init() {
  
    std::unique_ptr<ToolbarAccountIconContainerView>
        toolbar_account_icon_container;

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

@@ -2,7 +2,7 @@
 
 --- a/chrome/browser/ui/views/tabs/browser_tab_strip_controller.cc
 +++ b/chrome/browser/ui/views/tabs/browser_tab_strip_controller.cc
-@@ -79,14 +79,13 @@ using content::WebContents;
+@@ -81,14 +81,13 @@ using content::WebContents;
  namespace {
  
  bool DetermineTabStripLayoutStacked(PrefService* prefs, bool* adjust_layout) {

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

@@ -13,7 +13,7 @@
  #endif  // CHROME_BROWSER_UNGOOGLED_FLAG_ENTRIES_H_
 --- a/net/base/features.cc
 +++ b/net/base/features.cc
-@@ -236,5 +236,7 @@ const base::Feature kDocumentReporting{"
+@@ -242,5 +242,7 @@ const base::Feature kUdpSocketPosixAlway
  const base::Feature kCookieSameSiteConsidersRedirectChain{
      "CookieSameSiteConsidersRedirectChain", base::FEATURE_DISABLED_BY_DEFAULT};
  
@@ -23,7 +23,7 @@
  }  // namespace net
 --- a/net/base/features.h
 +++ b/net/base/features.h
-@@ -347,6 +347,8 @@ NET_EXPORT extern const base::Feature kD
+@@ -356,6 +356,8 @@ NET_EXPORT extern const base::Feature kU
  // See spec changes in https://github.com/httpwg/http-extensions/pull/1348
  NET_EXPORT extern const base::Feature kCookieSameSiteConsidersRedirectChain;
  
@@ -34,7 +34,7 @@
  
 --- a/net/dns/host_resolver_manager.cc
 +++ b/net/dns/host_resolver_manager.cc
-@@ -134,11 +134,6 @@ const unsigned kMinimumTTLSeconds = kCac
+@@ -135,11 +135,6 @@ const unsigned kMinimumTTLSeconds = kCac
  // cached.
  const int kIPv6ProbePeriodMs = 1000;
  
@@ -46,7 +46,7 @@
  enum DnsResolveStatus {
    RESOLVE_STATUS_DNS_SUCCESS = 0,
    RESOLVE_STATUS_PROC_SUCCESS,
-@@ -3340,7 +3335,7 @@ bool HostResolverManager::IsIPv6Reachabl
+@@ -3367,7 +3362,7 @@ bool HostResolverManager::IsIPv6Reachabl
        (tick_clock_->NowTicks() - last_ipv6_probe_time_).InMilliseconds() >
            kIPv6ProbePeriodMs) {
      SetLastIPv6ProbeResult(

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

@@ -416,7 +416,7 @@
  
 --- a/components/search_engines/template_url_service.cc
 +++ b/components/search_engines/template_url_service.cc
-@@ -644,7 +644,8 @@ void TemplateURLService::IncrementUsageC
+@@ -640,7 +640,8 @@ void TemplateURLService::IncrementUsageC
  void TemplateURLService::ResetTemplateURL(TemplateURL* url,
                                            const std::u16string& title,
                                            const std::u16string& keyword,
@@ -426,7 +426,7 @@
    DCHECK(!IsCreatedByExtension(url));
    DCHECK(!keyword.empty());
    DCHECK(!search_url.empty());
-@@ -658,6 +659,7 @@ void TemplateURLService::ResetTemplateUR
+@@ -654,6 +655,7 @@ void TemplateURLService::ResetTemplateUR
    }
    data.safe_for_autoreplace = false;
    data.last_modified = clock_->Now();
@@ -436,7 +436,7 @@
  
 --- a/components/search_engines/template_url_service.h
 +++ b/components/search_engines/template_url_service.h
-@@ -252,7 +252,8 @@ class TemplateURLService : public WebDat
+@@ -248,7 +248,8 @@ class TemplateURLService : public WebDat
    void ResetTemplateURL(TemplateURL* url,
                          const std::u16string& title,
                          const std::u16string& keyword,

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

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

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

@@ -153,7 +153,7 @@
  }  // namespace download
 --- a/content/browser/BUILD.gn
 +++ b/content/browser/BUILD.gn
-@@ -78,7 +78,6 @@ source_set("browser") {
+@@ -79,7 +79,6 @@ source_set("browser") {
      "//components/payments/mojom",
      "//components/power_scheduler",
      "//components/services/filesystem:lib",
@@ -163,7 +163,7 @@
      "//components/services/storage/dom_storage:local_storage_proto",
 --- a/content/browser/renderer_host/pepper/pepper_file_io_host.cc
 +++ b/content/browser/renderer_host/pepper/pepper_file_io_host.cc
-@@ -438,7 +438,7 @@ void PepperFileIOHost::OnLocalFileOpened
+@@ -480,7 +480,7 @@ void PepperFileIOHost::OnLocalFileOpened
      ppapi::host::ReplyMessageContext reply_context,
      const base::FilePath& path,
      base::File::Error error_code) {
@@ -172,7 +172,7 @@
    // Quarantining a file before its contents are available is only supported on
    // Windows and Linux.
    if (!FileOpenForWrite(open_flags_) || error_code != base::File::FILE_OK) {
-@@ -472,7 +472,7 @@ void PepperFileIOHost::OnLocalFileOpened
+@@ -514,7 +514,7 @@ void PepperFileIOHost::OnLocalFileOpened
  #endif
  }
  
@@ -183,7 +183,7 @@
      const base::FilePath& path,
 --- a/content/browser/renderer_host/pepper/pepper_file_io_host.h
 +++ b/content/browser/renderer_host/pepper/pepper_file_io_host.h
-@@ -15,7 +15,6 @@
+@@ -13,7 +13,6 @@
  #include "base/macros.h"
  #include "base/memory/ref_counted.h"
  #include "base/memory/weak_ptr.h"
@@ -191,7 +191,7 @@
  #include "content/browser/renderer_host/pepper/browser_ppapi_host_impl.h"
  #include "ipc/ipc_listener.h"
  #include "ipc/ipc_platform_file.h"
-@@ -91,12 +90,6 @@ class PepperFileIOHost : public ppapi::h
+@@ -89,12 +88,6 @@ class PepperFileIOHost : public ppapi::h
                           const base::FilePath& path,
                           base::File::Error error_code);
  

+ 1 - 1
patches/extra/ungoogled-chromium/disable-formatting-in-omnibox.patch

@@ -2,7 +2,7 @@
 
 --- a/components/url_formatter/url_formatter.cc
 +++ b/components/url_formatter/url_formatter.cc
-@@ -465,14 +465,14 @@ ComponentResult IDNToUnicodeOneComponent
+@@ -464,14 +464,14 @@ ComponentResult IDNToUnicodeOneComponent
  }  // namespace
  
  const FormatUrlType kFormatUrlOmitNothing = 0;

+ 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
-@@ -3572,8 +3572,7 @@ ScriptValue WebGLRenderingContextBase::g
+@@ -3582,8 +3582,7 @@ ScriptValue WebGLRenderingContextBase::g
                pname, IdentifiabilityBenignStringToken(
                           String(ContextGL()->GetString(GL_RENDERER))));
          }
@@ -13,7 +13,7 @@
        }
        SynthesizeGLError(
            GL_INVALID_ENUM, "getParameter",
-@@ -3587,8 +3586,7 @@ ScriptValue WebGLRenderingContextBase::g
+@@ -3597,8 +3596,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
-@@ -375,7 +375,7 @@ const base::Feature kComputePressure{"Co
+@@ -361,7 +361,7 @@ const base::Feature kComputePressure{"Co
  // Prefetch request properties are updated to be privacy-preserving. See
  // crbug.com/988956.
  const base::Feature kPrefetchPrivacyChanges{"PrefetchPrivacyChanges",

+ 3 - 3
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
-@@ -415,11 +415,6 @@ int GetContentRestrictions(const Browser
+@@ -425,11 +425,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;
  }
-@@ -1272,8 +1267,7 @@ bool CanSavePage(const Browser* browser)
+@@ -1306,8 +1301,7 @@ bool CanSavePage(const Browser* browser)
            prefs::kAllowFileSelectionDialogs)) {
      return false;
    }
@@ -64,7 +64,7 @@
  // These lists are lazily initialized below and are leaked on shutdown to
 --- a/content/public/common/url_utils.cc
 +++ b/content/public/common/url_utils.cc
-@@ -26,11 +26,7 @@ bool HasWebUIScheme(const GURL& url) {
+@@ -27,11 +27,7 @@ bool HasWebUIScheme(const GURL& url) {
  }
  
  bool IsSavableURL(const GURL& url) {

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

@@ -13,7 +13,7 @@
        AddChildView(std::make_unique<views::InkDropContainerView>());
 --- a/chrome/browser/ui/views/tabs/tab_strip.cc
 +++ b/chrome/browser/ui/views/tabs/tab_strip.cc
-@@ -2651,8 +2651,6 @@ void TabStrip::NewTabButtonPressed(const
+@@ -2662,8 +2662,6 @@ void TabStrip::NewTabButtonPressed(const
  
      const ui::MouseEvent& mouse = static_cast<const ui::MouseEvent&>(event);
      if (mouse.IsOnlyMiddleMouseButton()) {
@@ -22,7 +22,7 @@
          ui::Clipboard* clipboard = ui::Clipboard::GetForCurrentThread();
          CHECK(clipboard);
          std::u16string clipboard_text;
-@@ -2660,7 +2658,6 @@ void TabStrip::NewTabButtonPressed(const
+@@ -2671,7 +2669,6 @@ void TabStrip::NewTabButtonPressed(const
                              /* data_dst = */ nullptr, &clipboard_text);
          if (!clipboard_text.empty())
            controller_->CreateNewTabWithLocation(clipboard_text);

+ 15 - 13
patches/extra/ungoogled-chromium/remove-uneeded-ui.patch

@@ -51,7 +51,7 @@
            hidden="[[!prefs.feedback_allowed.value]]"
 --- a/chrome/browser/resources/settings/basic_page/basic_page.html
 +++ b/chrome/browser/resources/settings/basic_page/basic_page.html
-@@ -91,6 +91,7 @@
+@@ -95,6 +95,7 @@
              <settings-autofill-page prefs="{{prefs}}"></settings-autofill-page>
            </settings-section>
          </template>
@@ -59,7 +59,7 @@
          <template is="dom-if" if="[[showPage_(pageVisibility.safetyCheck)]]"
              restamp>
            <settings-section page-title="$i18n{safetyCheckSectionTitle}"
-@@ -100,6 +101,7 @@
+@@ -104,6 +105,7 @@
              </settings-safety-check-page>
            </settings-section>
          </template>
@@ -106,16 +106,18 @@
 -    </cr-link-row>
 --- a/chrome/browser/resources/settings/settings_menu/settings_menu.html
 +++ b/chrome/browser/resources/settings/settings_menu/settings_menu.html
-@@ -111,12 +111,6 @@
+@@ -111,14 +111,6 @@
              <iron-icon icon="settings:assignment"></iron-icon>
              $i18n{autofillPageTitle}
            </a>
--          <a role="menuitem" href="/safetyCheck"
--              hidden="[[!pageVisibility.safetyCheck]]"
--              id="safetyCheck">
--            <iron-icon icon="settings20:safety-check"></iron-icon>
--            $i18n{safetyCheckSectionTitle}
--          </a>
+-          <template is="dom-if" if="[[!enableLandingPageRedesign_]]">
+-            <a role="menuitem" href="/safetyCheck"
+-                hidden="[[!pageVisibility.safetyCheck]]"
+-                id="safetyCheck">
+-              <iron-icon icon="settings20:safety-check"></iron-icon>
+-              $i18n{safetyCheckSectionTitle}
+-            </a>
+-          </template>
            <a role="menuitem" href="/privacy"
                hidden="[[!pageVisibility.privacy]]">
              <iron-icon icon="cr:security"></iron-icon>
@@ -127,9 +129,9 @@
  gfx::ImageSkia ProfileMenuView::GetSyncIcon() const {
 +  return gfx::ImageSkia();
    Profile* profile = browser()->profile();
- 
-   if (!profile->IsRegularProfile())
-@@ -514,8 +515,7 @@ void ProfileMenuView::BuildIdentity() {
+   if (profile->IsOffTheRecord())
+     return gfx::ImageSkia();
+@@ -496,8 +497,7 @@ void ProfileMenuView::BuildIdentity() {
          menu_title_, menu_subtitle_);
    } else {
      menu_title_ = std::u16string();
@@ -139,7 +141,7 @@
      SetProfileIdentityInfo(
          profile_name, background_color, edit_button_params,
          ui::ImageModel::FromImage(
-@@ -586,6 +586,7 @@ void ProfileMenuView::BuildSyncInfo() {
+@@ -573,6 +573,7 @@ void ProfileMenuView::BuildSyncInfo() {
      return;
    }
  

+ 1 - 1
patches/series

@@ -34,8 +34,8 @@ core/ungoogled-chromium/remove-unused-preferences-fields.patch
 core/ungoogled-chromium/fix-building-without-enabling-reporting.patch
 core/ungoogled-chromium/block-requests.patch
 core/ungoogled-chromium/disable-floc.patch
+core/ungoogled-chromium/disable-privacy-sandbox.patch
 core/bromite/disable-fetching-field-trials.patch
-core/chromium-upstream/fix-crash-in-ThemeService.patch
 
 extra/inox-patchset/0006-modify-default-prefs.patch
 extra/inox-patchset/0008-restore-classic-ntp.patch

+ 305 - 185
pruning.list

@@ -63,14 +63,10 @@ chrome/browser/resources/chromeos/accessibility/select_to_speak/earcons/null_sel
 chrome/browser/resources/chromeos/zip_archiver/test/data/encrypted.zip
 chrome/browser/resources/chromeos/zip_archiver/test/data/encrypted_aes.zip
 chrome/browser/resources/chromeos/zip_archiver/test/data/small_zip.zip
-chrome/browser/resources/default_apps/docs.crx
-chrome/browser/resources/default_apps/drive.crx
-chrome/browser/resources/default_apps/gmail.crx
-chrome/browser/resources/default_apps/youtube.crx
 chrome/browser/resources/media/mei_preload/preloaded_data.pb
 chrome/browser/ui/app_list/search/search_result_ranker/20190722_example_preprocessor_config.pb
 chrome/browser/ui/app_list/search/search_result_ranker/search_ranker_assets/20190923_example_preprocessor_config.pb
-chrome/build/pgo_profiles/chrome-linux-4472-1622741475-1086de1fcd675b708e3ea02ae10a0fc9999c4956.profdata
+chrome/build/pgo_profiles/chrome-linux-4515-1626533253-34e4718a21d6b148e3c9459b9f213fba5d58ef83.profdata
 chrome/chrome_cleaner/parsers/shortcut_parser/target/data/lnk_parser_fuzzer/Network Share Test.lnk
 chrome/chrome_cleaner/parsers/shortcut_parser/target/data/lnk_parser_fuzzer/New folder - Shortcut.lnk
 chrome/chrome_cleaner/parsers/shortcut_parser/target/data/lnk_parser_fuzzer/long_name.lnk
@@ -201,6 +197,9 @@ components/test/data/paint_preview/PaintPreviewTestService/wikipedia/150869817BD
 components/test/data/paint_preview/PaintPreviewTestService/wikipedia/ABE3BC9BB03E9107A321304E21C0A644.skp
 components/test/data/paint_preview/PaintPreviewTestService/wikipedia/proto.pb
 components/test/data/printing/unsorted_custompapers.plist
+components/test/data/segmentation_platform/adder.tflite
+components/test/data/service_worker/created_by_origin_impl/Database/000003.log
+components/test/data/service_worker/created_by_origin_impl/Database/MANIFEST-000001
 components/test/data/sessions/last_session
 components/test/data/translate/valid_model.tflite
 components/test/data/unzip_service/good_archive.zip
@@ -280,8 +279,10 @@ fuchsia/engine/test/data/bear-44.1kHz.webm
 fuchsia/engine/test/data/bear-48kHz.webm
 fuchsia/engine/test/data/bear-vp8a.webm
 fuchsia/engine/test/data/bear-vp9-opus.webm
+fuchsia/engine/test/data/bear-vp9.webm
 headless/test/data/protocol/emulation/resources/video.webm
 ios/chrome/browser/ui/main/browser_view_wrangler.mm
+ios/chrome/browser/ui/main/scene_controller.mm
 ios/chrome/test/data/sessions/corrupted.plist
 ios/chrome/test/data/sessions/session_m57.plist
 ios/chrome/test/data/sessions/session_m58.plist
@@ -4932,6 +4933,7 @@ third_party/angle/third_party/glmark2/src/data/models/asteroid-low.3ds
 third_party/angle/third_party/glmark2/src/data/models/cat.3ds
 third_party/angle/third_party/glmark2/src/data/models/cube.3ds
 third_party/angle/third_party/glmark2/src/data/models/horse.3ds
+third_party/angle/third_party/r8/custom_d8.jar
 third_party/blink/manual_tests/WebKitSite.webarchive
 third_party/blink/manual_tests/accessibility/resources/AppletTest.class
 third_party/blink/manual_tests/plugins/test.swf
@@ -7380,6 +7382,26 @@ third_party/boringssl/src/fuzz/client_corpus_no_fuzzer_mode/fe637e938fce270fcc0a
 third_party/boringssl/src/fuzz/client_corpus_no_fuzzer_mode/ff237b2c1157e7591ed3d8c36b8dc5e5efd46637
 third_party/boringssl/src/fuzz/client_corpus_no_fuzzer_mode/ff261b7426d59abe341f87143f622f47ba3b9289
 third_party/boringssl/src/fuzz/client_corpus_no_fuzzer_mode/ffa8a6b89560652a1cb3856ee699b1cc3e139e10
+third_party/boringssl/src/fuzz/decode_client_hello_inner_corpus/1801ac92348bd90de6d206ca01bd373272452e8e
+third_party/boringssl/src/fuzz/decode_client_hello_inner_corpus/1bb5c0f4248499b759d8668e2c4efea8479fd1ee
+third_party/boringssl/src/fuzz/decode_client_hello_inner_corpus/236b709b87a1f139b6006661ec14b4dbf74047c9
+third_party/boringssl/src/fuzz/decode_client_hello_inner_corpus/291b9c64c834a5b3d7f63bfde1a19b0980a002d3
+third_party/boringssl/src/fuzz/decode_client_hello_inner_corpus/33c11b74f48ec7dc930428805ee06cda2b1239fe
+third_party/boringssl/src/fuzz/decode_client_hello_inner_corpus/372c6a89144d282135d3a5f78fbadba2f729ae45
+third_party/boringssl/src/fuzz/decode_client_hello_inner_corpus/49831a9bb8cf8d480ee6348efc0348ac4923e7f2
+third_party/boringssl/src/fuzz/decode_client_hello_inner_corpus/5150ba3241ea4e68e0edc18852503482fc2b089f
+third_party/boringssl/src/fuzz/decode_client_hello_inner_corpus/6e768d7ebcfdf7ef78cd278c9f56cadb5c3aee2a
+third_party/boringssl/src/fuzz/decode_client_hello_inner_corpus/6e7e101d38ae565ddda93bcb347ebe1732b8034b
+third_party/boringssl/src/fuzz/decode_client_hello_inner_corpus/94bb1431a65a63d11179f16b8f4fd149662353ff
+third_party/boringssl/src/fuzz/decode_client_hello_inner_corpus/96329c2abe8341f38f48db8c980cd9b1949246f4
+third_party/boringssl/src/fuzz/decode_client_hello_inner_corpus/ae712740a68e8728c14fa97613e42440c937db6e
+third_party/boringssl/src/fuzz/decode_client_hello_inner_corpus/c2bb18319c8702195a0acc9a0f2151b35f6357a7
+third_party/boringssl/src/fuzz/decode_client_hello_inner_corpus/de2d121cb0614d83d60ab3604aa12a85b53495cd
+third_party/boringssl/src/fuzz/decode_client_hello_inner_corpus/e459531b7ab45bd032c1fc12d3f16479b1d2fe7a
+third_party/boringssl/src/fuzz/decode_client_hello_inner_corpus/e4a31c4c2a141aad3dd0ebe33cebc2b3394bba6b
+third_party/boringssl/src/fuzz/decode_client_hello_inner_corpus/eb55f46bb8041e0bdea984692bbc625ce2b3ae61
+third_party/boringssl/src/fuzz/decode_client_hello_inner_corpus/f4165ec22d360f534a80e5538d206e8ea3e75074
+third_party/boringssl/src/fuzz/decode_client_hello_inner_corpus/f6d419ff34a20222303aa7b58f0025ca751fc2ad
 third_party/boringssl/src/fuzz/dtls_client_corpus/00133af43af54818784879c0ec1195a9595e617a
 third_party/boringssl/src/fuzz/dtls_client_corpus/007f80cf3375202f763d5fd1cce1c5ddee0bfba8
 third_party/boringssl/src/fuzz/dtls_client_corpus/02faf090b9d060b4128cf2d07de1c584ebf7e7d9
@@ -9554,6 +9576,7 @@ third_party/boringssl/src/util/fipstools/acvp/acvptool/test/expected/ACVP-AES-CC
 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.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
 third_party/boringssl/src/util/fipstools/acvp/acvptool/test/expected/ACVP-AES-KWP.bz2
 third_party/boringssl/src/util/fipstools/acvp/acvptool/test/expected/ACVP-AES-XTS.bz2
@@ -9579,6 +9602,7 @@ third_party/boringssl/src/util/fipstools/acvp/acvptool/test/vectors/ACVP-AES-CCM
 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.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
 third_party/boringssl/src/util/fipstools/acvp/acvptool/test/vectors/ACVP-AES-KWP.bz2
 third_party/boringssl/src/util/fipstools/acvp/acvptool/test/vectors/ACVP-AES-XTS.bz2
@@ -10071,7 +10095,6 @@ third_party/depot_tools/ninja-linux64
 third_party/depot_tools/ninja-mac
 third_party/depot_tools/ninja.exe
 third_party/depot_tools/subprocess2.pyc
-third_party/devtools-frontend/src/node_modules/fsevents/fsevents.node
 third_party/devtools-frontend/src/node_modules/tar-fs/test/fixtures/invalid.tar
 third_party/devtools-frontend/src/node_modules/terser/node_modules/source-map/lib/mappings.wasm
 third_party/devtools-frontend/src/test/e2e/resources/media/fisch.webm
@@ -12812,6 +12835,7 @@ third_party/harfbuzz-ng/src/test/fuzzing/fonts/clusterfuzz-testcase-minimized-hb
 third_party/harfbuzz-ng/src/test/fuzzing/fonts/clusterfuzz-testcase-minimized-hb-shape-fuzzer-6306977171374080
 third_party/harfbuzz-ng/src/test/fuzzing/fonts/clusterfuzz-testcase-minimized-hb-subset-fuzzer-4880059756969984
 third_party/harfbuzz-ng/src/test/fuzzing/fonts/clusterfuzz-testcase-minimized-hb-subset-fuzzer-4901143794810880
+third_party/harfbuzz-ng/src/test/fuzzing/fonts/clusterfuzz-testcase-minimized-hb-subset-fuzzer-4961171477233664
 third_party/harfbuzz-ng/src/test/fuzzing/fonts/clusterfuzz-testcase-minimized-hb-subset-fuzzer-5067936541179904
 third_party/harfbuzz-ng/src/test/fuzzing/fonts/clusterfuzz-testcase-minimized-hb-subset-fuzzer-5077547978588160
 third_party/harfbuzz-ng/src/test/fuzzing/fonts/clusterfuzz-testcase-minimized-hb-subset-fuzzer-5121706490593280
@@ -12820,13 +12844,21 @@ third_party/harfbuzz-ng/src/test/fuzzing/fonts/clusterfuzz-testcase-minimized-hb
 third_party/harfbuzz-ng/src/test/fuzzing/fonts/clusterfuzz-testcase-minimized-hb-subset-fuzzer-5160311461511168
 third_party/harfbuzz-ng/src/test/fuzzing/fonts/clusterfuzz-testcase-minimized-hb-subset-fuzzer-5167653459329024
 third_party/harfbuzz-ng/src/test/fuzzing/fonts/clusterfuzz-testcase-minimized-hb-subset-fuzzer-5169035432165376
+third_party/harfbuzz-ng/src/test/fuzzing/fonts/clusterfuzz-testcase-minimized-hb-subset-fuzzer-5179935334465536
 third_party/harfbuzz-ng/src/test/fuzzing/fonts/clusterfuzz-testcase-minimized-hb-subset-fuzzer-5181909018345472
 third_party/harfbuzz-ng/src/test/fuzzing/fonts/clusterfuzz-testcase-minimized-hb-subset-fuzzer-5206191479455744
+third_party/harfbuzz-ng/src/test/fuzzing/fonts/clusterfuzz-testcase-minimized-hb-subset-fuzzer-5229304507138048
+third_party/harfbuzz-ng/src/test/fuzzing/fonts/clusterfuzz-testcase-minimized-hb-subset-fuzzer-5250795600740352
 third_party/harfbuzz-ng/src/test/fuzzing/fonts/clusterfuzz-testcase-minimized-hb-subset-fuzzer-5345734743031808
 third_party/harfbuzz-ng/src/test/fuzzing/fonts/clusterfuzz-testcase-minimized-hb-subset-fuzzer-5359635656605696
+third_party/harfbuzz-ng/src/test/fuzzing/fonts/clusterfuzz-testcase-minimized-hb-subset-fuzzer-5363902507515904
+third_party/harfbuzz-ng/src/test/fuzzing/fonts/clusterfuzz-testcase-minimized-hb-subset-fuzzer-5416421032067072
 third_party/harfbuzz-ng/src/test/fuzzing/fonts/clusterfuzz-testcase-minimized-hb-subset-fuzzer-5521982557782016
 third_party/harfbuzz-ng/src/test/fuzzing/fonts/clusterfuzz-testcase-minimized-hb-subset-fuzzer-5542653037903872
+third_party/harfbuzz-ng/src/test/fuzzing/fonts/clusterfuzz-testcase-minimized-hb-subset-fuzzer-5609112151916544
 third_party/harfbuzz-ng/src/test/fuzzing/fonts/clusterfuzz-testcase-minimized-hb-subset-fuzzer-5609911946838016
+third_party/harfbuzz-ng/src/test/fuzzing/fonts/clusterfuzz-testcase-minimized-hb-subset-fuzzer-5616763250278400
+third_party/harfbuzz-ng/src/test/fuzzing/fonts/clusterfuzz-testcase-minimized-hb-subset-fuzzer-5617065093365760
 third_party/harfbuzz-ng/src/test/fuzzing/fonts/clusterfuzz-testcase-minimized-hb-subset-fuzzer-5629878397829120
 third_party/harfbuzz-ng/src/test/fuzzing/fonts/clusterfuzz-testcase-minimized-hb-subset-fuzzer-5634197349203968
 third_party/harfbuzz-ng/src/test/fuzzing/fonts/clusterfuzz-testcase-minimized-hb-subset-fuzzer-5640452927127552
@@ -12906,14 +12938,19 @@ third_party/harfbuzz-ng/src/test/fuzzing/fonts/clusterfuzz-testcase-minimized-hb
 third_party/harfbuzz-ng/src/test/fuzzing/fonts/clusterfuzz-testcase-minimized-hb-subset-fuzzer-5764268627066880
 third_party/harfbuzz-ng/src/test/fuzzing/fonts/clusterfuzz-testcase-minimized-hb-subset-fuzzer-5765071062958080
 third_party/harfbuzz-ng/src/test/fuzzing/fonts/clusterfuzz-testcase-minimized-hb-subset-fuzzer-5768186323009536
+third_party/harfbuzz-ng/src/test/fuzzing/fonts/clusterfuzz-testcase-minimized-hb-subset-fuzzer-5858518134554624
+third_party/harfbuzz-ng/src/test/fuzzing/fonts/clusterfuzz-testcase-minimized-hb-subset-fuzzer-5887968763052032
 third_party/harfbuzz-ng/src/test/fuzzing/fonts/clusterfuzz-testcase-minimized-hb-subset-fuzzer-5923632099885056
 third_party/harfbuzz-ng/src/test/fuzzing/fonts/clusterfuzz-testcase-minimized-hb-subset-fuzzer-5927551890096128
+third_party/harfbuzz-ng/src/test/fuzzing/fonts/clusterfuzz-testcase-minimized-hb-subset-fuzzer-6173520787800064
 third_party/harfbuzz-ng/src/test/fuzzing/fonts/clusterfuzz-testcase-minimized-hb-subset-fuzzer-6231212713312256
 third_party/harfbuzz-ng/src/test/fuzzing/fonts/clusterfuzz-testcase-minimized-hb-subset-fuzzer-6241118484955136
 third_party/harfbuzz-ng/src/test/fuzzing/fonts/clusterfuzz-testcase-minimized-hb-subset-fuzzer-6246465148813312
 third_party/harfbuzz-ng/src/test/fuzzing/fonts/clusterfuzz-testcase-minimized-hb-subset-fuzzer-6276691949518848
 third_party/harfbuzz-ng/src/test/fuzzing/fonts/clusterfuzz-testcase-minimized-hb-subset-fuzzer-6316256152780800
 third_party/harfbuzz-ng/src/test/fuzzing/fonts/clusterfuzz-testcase-minimized-hb-subset-fuzzer-6372147008241664
+third_party/harfbuzz-ng/src/test/fuzzing/fonts/clusterfuzz-testcase-minimized-hb-subset-fuzzer-6382598554255360
+third_party/harfbuzz-ng/src/test/fuzzing/fonts/clusterfuzz-testcase-minimized-hb-subset-fuzzer-6421315436281856
 third_party/harfbuzz-ng/src/test/fuzzing/fonts/clusterfuzz-testcase-minimized-hb-subset-fuzzer-6543700493598720
 third_party/harfbuzz-ng/src/test/fuzzing/fonts/clusterfuzz-testcase-minimized-hb-subset-fuzzer-6651660668502016
 third_party/harfbuzz-ng/src/test/fuzzing/fonts/clusterfuzz-testcase-minimized-hb-subset-get-codepoints-fuzzer-5203067375976448
@@ -13352,36 +13389,36 @@ third_party/harfbuzz-ng/src/test/subset/data/expected/cmap14/cmap14_font2.retain
 third_party/harfbuzz-ng/src/test/subset/data/expected/cmap14/cmap14_font2.retain-gids.4E08,4E09.otf
 third_party/harfbuzz-ng/src/test/subset/data/expected/cmap14/cmap14_font2.retain-gids.4E08.otf
 third_party/harfbuzz-ng/src/test/subset/data/expected/cmap14/cmap14_font2.retain-gids.retain-all-codepoint.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.context/gpos_context1_multiple_subrules_f1.keep-layout-retain-gids.41,42,43.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.context/gpos_context1_multiple_subrules_f1.keep-layout-retain-gids.41,42.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.context/gpos_context1_multiple_subrules_f1.keep-layout-retain-gids.41,43.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.context/gpos_context1_multiple_subrules_f1.keep-layout-retain-gids.41.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.context/gpos_context1_multiple_subrules_f1.keep-layout-retain-gids.retain-all-codepoint.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.context/gpos_context1_multiple_subrules_f1.keep-layout.41,42,43.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.context/gpos_context1_multiple_subrules_f1.keep-layout.41,42.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.context/gpos_context1_multiple_subrules_f1.keep-layout.41,43.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.context/gpos_context1_multiple_subrules_f1.keep-layout.41.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.context/gpos_context1_multiple_subrules_f1.keep-layout.retain-all-codepoint.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.context/gpos_context2_multiple_subrules_f1.keep-layout-retain-gids.41,42,43.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.context/gpos_context2_multiple_subrules_f1.keep-layout-retain-gids.41,42.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.context/gpos_context2_multiple_subrules_f1.keep-layout-retain-gids.41,43.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.context/gpos_context2_multiple_subrules_f1.keep-layout-retain-gids.41.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.context/gpos_context2_multiple_subrules_f1.keep-layout-retain-gids.retain-all-codepoint.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.context/gpos_context2_multiple_subrules_f1.keep-layout.41,42,43.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.context/gpos_context2_multiple_subrules_f1.keep-layout.41,42.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.context/gpos_context2_multiple_subrules_f1.keep-layout.41,43.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.context/gpos_context2_multiple_subrules_f1.keep-layout.41.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.context/gpos_context2_multiple_subrules_f1.keep-layout.retain-all-codepoint.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.context/gpos_context3_simple_f1.keep-layout-retain-gids.41,42,43.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.context/gpos_context3_simple_f1.keep-layout-retain-gids.41,42.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.context/gpos_context3_simple_f1.keep-layout-retain-gids.41,43.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.context/gpos_context3_simple_f1.keep-layout-retain-gids.41.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.context/gpos_context3_simple_f1.keep-layout-retain-gids.retain-all-codepoint.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.context/gpos_context3_simple_f1.keep-layout.41,42,43.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.context/gpos_context3_simple_f1.keep-layout.41,42.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.context/gpos_context3_simple_f1.keep-layout.41,43.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.context/gpos_context3_simple_f1.keep-layout.41.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.context/gpos_context3_simple_f1.keep-layout.retain-all-codepoint.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.context/gpos_context1_multiple_subrules_f1.default.41,42,43.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.context/gpos_context1_multiple_subrules_f1.default.41,42.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.context/gpos_context1_multiple_subrules_f1.default.41,43.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.context/gpos_context1_multiple_subrules_f1.default.41.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.context/gpos_context1_multiple_subrules_f1.default.retain-all-codepoint.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.context/gpos_context1_multiple_subrules_f1.retain-gids.41,42,43.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.context/gpos_context1_multiple_subrules_f1.retain-gids.41,42.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.context/gpos_context1_multiple_subrules_f1.retain-gids.41,43.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.context/gpos_context1_multiple_subrules_f1.retain-gids.41.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.context/gpos_context1_multiple_subrules_f1.retain-gids.retain-all-codepoint.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.context/gpos_context2_multiple_subrules_f1.default.41,42,43.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.context/gpos_context2_multiple_subrules_f1.default.41,42.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.context/gpos_context2_multiple_subrules_f1.default.41,43.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.context/gpos_context2_multiple_subrules_f1.default.41.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.context/gpos_context2_multiple_subrules_f1.default.retain-all-codepoint.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.context/gpos_context2_multiple_subrules_f1.retain-gids.41,42,43.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.context/gpos_context2_multiple_subrules_f1.retain-gids.41,42.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.context/gpos_context2_multiple_subrules_f1.retain-gids.41,43.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.context/gpos_context2_multiple_subrules_f1.retain-gids.41.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.context/gpos_context2_multiple_subrules_f1.retain-gids.retain-all-codepoint.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.context/gpos_context3_simple_f1.default.41,42,43.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.context/gpos_context3_simple_f1.default.41,42.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.context/gpos_context3_simple_f1.default.41,43.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.context/gpos_context3_simple_f1.default.41.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.context/gpos_context3_simple_f1.default.retain-all-codepoint.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.context/gpos_context3_simple_f1.retain-gids.41,42,43.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.context/gpos_context3_simple_f1.retain-gids.41,42.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.context/gpos_context3_simple_f1.retain-gids.41,43.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.context/gpos_context3_simple_f1.retain-gids.41.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.context/gpos_context3_simple_f1.retain-gids.retain-all-codepoint.otf
 third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gdef-varstore/AdobeVFPrototype.default.41,42,43,57.otf
 third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gdef-varstore/AdobeVFPrototype.default.41,42,43.otf
 third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gdef-varstore/AdobeVFPrototype.default.41,42.otf
@@ -13400,154 +13437,206 @@ third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gdef-varstore/Adobe
 third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gdef-varstore/AdobeVFPrototype.keep-gdef-gpos.41,56,57.otf
 third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gdef-varstore/AdobeVFPrototype.keep-gdef-gpos.41.otf
 third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gdef-varstore/AdobeVFPrototype.keep-gdef-gpos.42,57.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos/gpos1_2_font.keep-layout-retain-gids.41,43.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos/gpos1_2_font.keep-layout-retain-gids.41,46.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos/gpos1_2_font.keep-layout-retain-gids.41.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos/gpos1_2_font.keep-layout-retain-gids.42,44.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos/gpos1_2_font.keep-layout-retain-gids.43,46.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos/gpos1_2_font.keep-layout-retain-gids.retain-all-codepoint.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos/gpos1_2_font.keep-layout.41,43.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos/gpos1_2_font.keep-layout.41,46.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos/gpos1_2_font.keep-layout.41.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos/gpos1_2_font.keep-layout.42,44.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos/gpos1_2_font.keep-layout.43,46.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos/gpos1_2_font.keep-layout.retain-all-codepoint.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos2/gpos2_1_font7.keep-layout-retain-gids.21,23,25.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos2/gpos2_1_font7.keep-layout-retain-gids.21,23.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos2/gpos2_1_font7.keep-layout-retain-gids.41,42,43.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos2/gpos2_1_font7.keep-layout-retain-gids.retain-all-codepoint.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos2/gpos2_1_font7.keep-layout.21,23,25.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos2/gpos2_1_font7.keep-layout.21,23.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos2/gpos2_1_font7.keep-layout.41,42,43.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos2/gpos2_1_font7.keep-layout.retain-all-codepoint.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos2/gpos2_2_font5.keep-layout-retain-gids.21,23,25.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos2/gpos2_2_font5.keep-layout-retain-gids.21,23.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos2/gpos2_2_font5.keep-layout-retain-gids.41,42,43.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos2/gpos2_2_font5.keep-layout-retain-gids.retain-all-codepoint.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos2/gpos2_2_font5.keep-layout.21,23,25.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos2/gpos2_2_font5.keep-layout.21,23.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos2/gpos2_2_font5.keep-layout.41,42,43.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos2/gpos2_2_font5.keep-layout.retain-all-codepoint.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos3/gpos3_font3.keep-layout-retain-gids.28,29.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos3/gpos3_font3.keep-layout-retain-gids.28,2B.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos3/gpos3_font3.keep-layout-retain-gids.29,2B.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos3/gpos3_font3.keep-layout-retain-gids.41,42,43.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos3/gpos3_font3.keep-layout-retain-gids.retain-all-codepoint.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos3/gpos3_font3.keep-layout.28,29.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos3/gpos3_font3.keep-layout.28,2B.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos3/gpos3_font3.keep-layout.29,2B.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos3/gpos3_font3.keep-layout.41,42,43.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos3/gpos3_font3.keep-layout.retain-all-codepoint.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos4/gpos4_multiple_anchors_1.keep-layout-retain-gids.41,42,43,44.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos4/gpos4_multiple_anchors_1.keep-layout-retain-gids.41,42,43,45.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos4/gpos4_multiple_anchors_1.keep-layout-retain-gids.41,42,43.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos4/gpos4_multiple_anchors_1.keep-layout-retain-gids.41,42.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos4/gpos4_multiple_anchors_1.keep-layout-retain-gids.41,43,44,45,46.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos4/gpos4_multiple_anchors_1.keep-layout-retain-gids.41,43,44.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos4/gpos4_multiple_anchors_1.keep-layout-retain-gids.41,43,45.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos4/gpos4_multiple_anchors_1.keep-layout-retain-gids.41,43.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos4/gpos4_multiple_anchors_1.keep-layout-retain-gids.41.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos4/gpos4_multiple_anchors_1.keep-layout-retain-gids.retain-all-codepoint.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos4/gpos4_multiple_anchors_1.keep-layout.41,42,43,44.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos4/gpos4_multiple_anchors_1.keep-layout.41,42,43,45.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos4/gpos4_multiple_anchors_1.keep-layout.41,42,43.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos4/gpos4_multiple_anchors_1.keep-layout.41,42.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos4/gpos4_multiple_anchors_1.keep-layout.41,43,44,45,46.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos4/gpos4_multiple_anchors_1.keep-layout.41,43,44.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos4/gpos4_multiple_anchors_1.keep-layout.41,43,45.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos4/gpos4_multiple_anchors_1.keep-layout.41,43.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos4/gpos4_multiple_anchors_1.keep-layout.41.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos4/gpos4_multiple_anchors_1.keep-layout.retain-all-codepoint.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos5/gpos5_font1.keep-layout-retain-gids.41,42,43,44.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos5/gpos5_font1.keep-layout-retain-gids.41,42,43,45.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos5/gpos5_font1.keep-layout-retain-gids.41,42,43.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos5/gpos5_font1.keep-layout-retain-gids.41,42,44.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos5/gpos5_font1.keep-layout-retain-gids.41,42,45.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos5/gpos5_font1.keep-layout-retain-gids.41,42.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos5/gpos5_font1.keep-layout-retain-gids.41,43.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos5/gpos5_font1.keep-layout-retain-gids.41.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos5/gpos5_font1.keep-layout-retain-gids.42.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos5/gpos5_font1.keep-layout-retain-gids.retain-all-codepoint.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos5/gpos5_font1.keep-layout.41,42,43,44.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos5/gpos5_font1.keep-layout.41,42,43,45.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos5/gpos5_font1.keep-layout.41,42,43.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos5/gpos5_font1.keep-layout.41,42,44.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos5/gpos5_font1.keep-layout.41,42,45.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos5/gpos5_font1.keep-layout.41,42.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos5/gpos5_font1.keep-layout.41,43.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos5/gpos5_font1.keep-layout.41.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos5/gpos5_font1.keep-layout.42.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos5/gpos5_font1.keep-layout.retain-all-codepoint.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos6/gpos6_font1.keep-layout-retain-gids.41,42,43,44.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos6/gpos6_font1.keep-layout-retain-gids.41,42,43,45.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos6/gpos6_font1.keep-layout-retain-gids.41,42,43.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos6/gpos6_font1.keep-layout-retain-gids.41,42.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos6/gpos6_font1.keep-layout-retain-gids.41,43,44,45,46.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos6/gpos6_font1.keep-layout-retain-gids.41,43,44.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos6/gpos6_font1.keep-layout-retain-gids.41,43,45.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos6/gpos6_font1.keep-layout-retain-gids.41,43.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos6/gpos6_font1.keep-layout-retain-gids.41.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos6/gpos6_font1.keep-layout-retain-gids.retain-all-codepoint.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos6/gpos6_font1.keep-layout.41,42,43,44.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos6/gpos6_font1.keep-layout.41,42,43,45.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos6/gpos6_font1.keep-layout.41,42,43.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos6/gpos6_font1.keep-layout.41,42.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos6/gpos6_font1.keep-layout.41,43,44,45,46.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos6/gpos6_font1.keep-layout.41,43,44.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos6/gpos6_font1.keep-layout.41,43,45.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos6/gpos6_font1.keep-layout.41,43.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos6/gpos6_font1.keep-layout.41.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos6/gpos6_font1.keep-layout.retain-all-codepoint.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos8/gpos_chaining1_multiple_subrules_f1.keep-layout-retain-gids.30,31,32,33.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos8/gpos_chaining1_multiple_subrules_f1.keep-layout-retain-gids.41,42,43.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos8/gpos_chaining1_multiple_subrules_f1.keep-layout-retain-gids.retain-all-codepoint.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos8/gpos_chaining1_multiple_subrules_f1.keep-layout.30,31,32,33.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos8/gpos_chaining1_multiple_subrules_f1.keep-layout.41,42,43.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos8/gpos_chaining1_multiple_subrules_f1.keep-layout.retain-all-codepoint.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos8/gpos_chaining2_multiple_subrules_f1.keep-layout-retain-gids.30,31,32,33.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos8/gpos_chaining2_multiple_subrules_f1.keep-layout-retain-gids.41,42,43.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos8/gpos_chaining2_multiple_subrules_f1.keep-layout-retain-gids.retain-all-codepoint.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos8/gpos_chaining2_multiple_subrules_f1.keep-layout.30,31,32,33.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos8/gpos_chaining2_multiple_subrules_f1.keep-layout.41,42,43.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos8/gpos_chaining2_multiple_subrules_f1.keep-layout.retain-all-codepoint.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos8/gpos_chaining3_simple_f1.keep-layout-retain-gids.30,31,32,33.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos8/gpos_chaining3_simple_f1.keep-layout-retain-gids.41,42,43.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos8/gpos_chaining3_simple_f1.keep-layout-retain-gids.retain-all-codepoint.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos8/gpos_chaining3_simple_f1.keep-layout.30,31,32,33.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos8/gpos_chaining3_simple_f1.keep-layout.41,42,43.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos8/gpos_chaining3_simple_f1.keep-layout.retain-all-codepoint.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos9/gpos9_font2.keep-layout-retain-gids.41,42.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos9/gpos9_font2.keep-layout-retain-gids.41.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos9/gpos9_font2.keep-layout-retain-gids.42.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos9/gpos9_font2.keep-layout.41,42.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos9/gpos9_font2.keep-layout.41.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos9/gpos9_font2.keep-layout.42.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gsub3/gsub_alternate_substitution.keep-layout-retain-gids.53A9,53F1.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gsub3/gsub_alternate_substitution.keep-layout-retain-gids.53A9.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gsub3/gsub_alternate_substitution.keep-layout-retain-gids.53F1.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gsub3/gsub_alternate_substitution.keep-layout-retain-gids.retain-all-codepoint.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gsub3/gsub_alternate_substitution.keep-layout.53A9,53F1.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gsub3/gsub_alternate_substitution.keep-layout.53A9.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gsub3/gsub_alternate_substitution.keep-layout.53F1.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gsub3/gsub_alternate_substitution.keep-layout.retain-all-codepoint.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gsub6/gsub_chaining1_multiple_subrules_f1.keep-layout-retain-gids.30,31,32,33.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gsub6/gsub_chaining1_multiple_subrules_f1.keep-layout-retain-gids.41,42,43.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gsub6/gsub_chaining1_multiple_subrules_f1.keep-layout-retain-gids.retain-all-codepoint.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gsub6/gsub_chaining1_multiple_subrules_f1.keep-layout.30,31,32,33.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gsub6/gsub_chaining1_multiple_subrules_f1.keep-layout.41,42,43.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gsub6/gsub_chaining1_multiple_subrules_f1.keep-layout.retain-all-codepoint.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gsub6/gsub_chaining2_multiple_subrules_f1.keep-layout-retain-gids.30,31,32,33.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gsub6/gsub_chaining2_multiple_subrules_f1.keep-layout-retain-gids.41,42,43.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gsub6/gsub_chaining2_multiple_subrules_f1.keep-layout-retain-gids.retain-all-codepoint.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gsub6/gsub_chaining2_multiple_subrules_f1.keep-layout.30,31,32,33.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gsub6/gsub_chaining2_multiple_subrules_f1.keep-layout.41,42,43.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gsub6/gsub_chaining2_multiple_subrules_f1.keep-layout.retain-all-codepoint.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gsub6/gsub_chaining3_simple_f2.keep-layout-retain-gids.30,31,32,33.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gsub6/gsub_chaining3_simple_f2.keep-layout-retain-gids.41,42,43.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gsub6/gsub_chaining3_simple_f2.keep-layout-retain-gids.retain-all-codepoint.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gsub6/gsub_chaining3_simple_f2.keep-layout.30,31,32,33.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gsub6/gsub_chaining3_simple_f2.keep-layout.41,42,43.otf
-third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gsub6/gsub_chaining3_simple_f2.keep-layout.retain-all-codepoint.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos/gpos1_2_font.default.41,43.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos/gpos1_2_font.default.41,46.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos/gpos1_2_font.default.41.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos/gpos1_2_font.default.42,44.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos/gpos1_2_font.default.43,46.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos/gpos1_2_font.default.retain-all-codepoint.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos/gpos1_2_font.retain-gids.41,43.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos/gpos1_2_font.retain-gids.41,46.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos/gpos1_2_font.retain-gids.41.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos/gpos1_2_font.retain-gids.42,44.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos/gpos1_2_font.retain-gids.43,46.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos/gpos1_2_font.retain-gids.retain-all-codepoint.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos2/gpos2_1_font7.default.21,23,25.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos2/gpos2_1_font7.default.21,23.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos2/gpos2_1_font7.default.2E,23.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos2/gpos2_1_font7.default.41,42,43.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos2/gpos2_1_font7.default.retain-all-codepoint.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos2/gpos2_1_font7.retain-gids.21,23,25.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos2/gpos2_1_font7.retain-gids.21,23.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos2/gpos2_1_font7.retain-gids.2E,23.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos2/gpos2_1_font7.retain-gids.41,42,43.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos2/gpos2_1_font7.retain-gids.retain-all-codepoint.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos2/gpos2_2_font5.default.21,23,25.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos2/gpos2_2_font5.default.21,23.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos2/gpos2_2_font5.default.2E,23.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos2/gpos2_2_font5.default.41,42,43.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos2/gpos2_2_font5.default.retain-all-codepoint.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos2/gpos2_2_font5.retain-gids.21,23,25.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos2/gpos2_2_font5.retain-gids.21,23.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos2/gpos2_2_font5.retain-gids.2E,23.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos2/gpos2_2_font5.retain-gids.41,42,43.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos2/gpos2_2_font5.retain-gids.retain-all-codepoint.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos3/gpos3_font3.default.28,29.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos3/gpos3_font3.default.28,2B.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos3/gpos3_font3.default.29,2B.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos3/gpos3_font3.default.41,42,43.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos3/gpos3_font3.default.retain-all-codepoint.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos3/gpos3_font3.retain-gids.28,29.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos3/gpos3_font3.retain-gids.28,2B.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos3/gpos3_font3.retain-gids.29,2B.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos3/gpos3_font3.retain-gids.41,42,43.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos3/gpos3_font3.retain-gids.retain-all-codepoint.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos4/gpos4_multiple_anchors_1.default.41,42,43,44.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos4/gpos4_multiple_anchors_1.default.41,42,43,45.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos4/gpos4_multiple_anchors_1.default.41,42,43.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos4/gpos4_multiple_anchors_1.default.41,42.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos4/gpos4_multiple_anchors_1.default.41,43,44,45,46.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos4/gpos4_multiple_anchors_1.default.41,43,44.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos4/gpos4_multiple_anchors_1.default.41,43,45.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos4/gpos4_multiple_anchors_1.default.41,43.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos4/gpos4_multiple_anchors_1.default.41.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos4/gpos4_multiple_anchors_1.default.retain-all-codepoint.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos4/gpos4_multiple_anchors_1.retain-gids.41,42,43,44.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos4/gpos4_multiple_anchors_1.retain-gids.41,42,43,45.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos4/gpos4_multiple_anchors_1.retain-gids.41,42,43.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos4/gpos4_multiple_anchors_1.retain-gids.41,42.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos4/gpos4_multiple_anchors_1.retain-gids.41,43,44,45,46.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos4/gpos4_multiple_anchors_1.retain-gids.41,43,44.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos4/gpos4_multiple_anchors_1.retain-gids.41,43,45.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos4/gpos4_multiple_anchors_1.retain-gids.41,43.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos4/gpos4_multiple_anchors_1.retain-gids.41.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos4/gpos4_multiple_anchors_1.retain-gids.retain-all-codepoint.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos5/gpos5_font1.default.41,42,43,44.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos5/gpos5_font1.default.41,42,43,45.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos5/gpos5_font1.default.41,42,43.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos5/gpos5_font1.default.41,42,44.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos5/gpos5_font1.default.41,42,45.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos5/gpos5_font1.default.41,42.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos5/gpos5_font1.default.41,43.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos5/gpos5_font1.default.41.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos5/gpos5_font1.default.42.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos5/gpos5_font1.default.retain-all-codepoint.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos5/gpos5_font1.retain-gids.41,42,43,44.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos5/gpos5_font1.retain-gids.41,42,43,45.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos5/gpos5_font1.retain-gids.41,42,43.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos5/gpos5_font1.retain-gids.41,42,44.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos5/gpos5_font1.retain-gids.41,42,45.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos5/gpos5_font1.retain-gids.41,42.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos5/gpos5_font1.retain-gids.41,43.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos5/gpos5_font1.retain-gids.41.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos5/gpos5_font1.retain-gids.42.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos5/gpos5_font1.retain-gids.retain-all-codepoint.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos6/gpos6_font1.default.41,42,43,44.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos6/gpos6_font1.default.41,42,43,45.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos6/gpos6_font1.default.41,42,43.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos6/gpos6_font1.default.41,42.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos6/gpos6_font1.default.41,43,44,45,46.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos6/gpos6_font1.default.41,43,44.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos6/gpos6_font1.default.41,43,45.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos6/gpos6_font1.default.41,43.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos6/gpos6_font1.default.41.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos6/gpos6_font1.default.retain-all-codepoint.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos6/gpos6_font1.retain-gids.41,42,43,44.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos6/gpos6_font1.retain-gids.41,42,43,45.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos6/gpos6_font1.retain-gids.41,42,43.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos6/gpos6_font1.retain-gids.41,42.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos6/gpos6_font1.retain-gids.41,43,44,45,46.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos6/gpos6_font1.retain-gids.41,43,44.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos6/gpos6_font1.retain-gids.41,43,45.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos6/gpos6_font1.retain-gids.41,43.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos6/gpos6_font1.retain-gids.41.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos6/gpos6_font1.retain-gids.retain-all-codepoint.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos8/gpos_chaining1_multiple_subrules_f1.default.30,31,32,33.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos8/gpos_chaining1_multiple_subrules_f1.default.41,42,43.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos8/gpos_chaining1_multiple_subrules_f1.default.retain-all-codepoint.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos8/gpos_chaining1_multiple_subrules_f1.retain-gids.30,31,32,33.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos8/gpos_chaining1_multiple_subrules_f1.retain-gids.41,42,43.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos8/gpos_chaining1_multiple_subrules_f1.retain-gids.retain-all-codepoint.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos8/gpos_chaining2_multiple_subrules_f1.default.30,31,32,33.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos8/gpos_chaining2_multiple_subrules_f1.default.41,42,43.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos8/gpos_chaining2_multiple_subrules_f1.default.retain-all-codepoint.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos8/gpos_chaining2_multiple_subrules_f1.retain-gids.30,31,32,33.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos8/gpos_chaining2_multiple_subrules_f1.retain-gids.41,42,43.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos8/gpos_chaining2_multiple_subrules_f1.retain-gids.retain-all-codepoint.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos8/gpos_chaining3_simple_f1.default.30,31,32,33.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos8/gpos_chaining3_simple_f1.default.41,42,43.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos8/gpos_chaining3_simple_f1.default.retain-all-codepoint.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos8/gpos_chaining3_simple_f1.retain-gids.30,31,32,33.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos8/gpos_chaining3_simple_f1.retain-gids.41,42,43.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos8/gpos_chaining3_simple_f1.retain-gids.retain-all-codepoint.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos9/gpos9_font2.default.41,42.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos9/gpos9_font2.default.41.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos9/gpos9_font2.default.42.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos9/gpos9_font2.retain-gids.41,42.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos9/gpos9_font2.retain-gids.41.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gpos9/gpos9_font2.retain-gids.42.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gsub3/gsub_alternate_substitution.default.53A9,53F1.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gsub3/gsub_alternate_substitution.default.53A9.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gsub3/gsub_alternate_substitution.default.53F1.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gsub3/gsub_alternate_substitution.default.retain-all-codepoint.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gsub3/gsub_alternate_substitution.retain-gids.53A9,53F1.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gsub3/gsub_alternate_substitution.retain-gids.53A9.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gsub3/gsub_alternate_substitution.retain-gids.53F1.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gsub3/gsub_alternate_substitution.retain-gids.retain-all-codepoint.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gsub5/gsub_context1_multiple_subrules_f2.default.41,42,43.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gsub5/gsub_context1_multiple_subrules_f2.default.41,42.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gsub5/gsub_context1_multiple_subrules_f2.default.41,43.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gsub5/gsub_context1_multiple_subrules_f2.default.41.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gsub5/gsub_context1_multiple_subrules_f2.default.retain-all-codepoint.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gsub5/gsub_context1_multiple_subrules_f2.retain-gids.41,42,43.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gsub5/gsub_context1_multiple_subrules_f2.retain-gids.41,42.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gsub5/gsub_context1_multiple_subrules_f2.retain-gids.41,43.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gsub5/gsub_context1_multiple_subrules_f2.retain-gids.41.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gsub5/gsub_context1_multiple_subrules_f2.retain-gids.retain-all-codepoint.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gsub5/gsub_context2_multiple_subrules_f2.default.41,42,43.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gsub5/gsub_context2_multiple_subrules_f2.default.41,42.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gsub5/gsub_context2_multiple_subrules_f2.default.41,43.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gsub5/gsub_context2_multiple_subrules_f2.default.41.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gsub5/gsub_context2_multiple_subrules_f2.default.retain-all-codepoint.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gsub5/gsub_context2_multiple_subrules_f2.retain-gids.41,42,43.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gsub5/gsub_context2_multiple_subrules_f2.retain-gids.41,42.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gsub5/gsub_context2_multiple_subrules_f2.retain-gids.41,43.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gsub5/gsub_context2_multiple_subrules_f2.retain-gids.41.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gsub5/gsub_context2_multiple_subrules_f2.retain-gids.retain-all-codepoint.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gsub5/gsub_context3_successive_f1.default.41,42,43.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gsub5/gsub_context3_successive_f1.default.41,42.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gsub5/gsub_context3_successive_f1.default.41,43.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gsub5/gsub_context3_successive_f1.default.41.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gsub5/gsub_context3_successive_f1.default.retain-all-codepoint.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gsub5/gsub_context3_successive_f1.retain-gids.41,42,43.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gsub5/gsub_context3_successive_f1.retain-gids.41,42.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gsub5/gsub_context3_successive_f1.retain-gids.41,43.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gsub5/gsub_context3_successive_f1.retain-gids.41.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gsub5/gsub_context3_successive_f1.retain-gids.retain-all-codepoint.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gsub6/gsub_chaining1_multiple_subrules_f1.default.30,31,32,33.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gsub6/gsub_chaining1_multiple_subrules_f1.default.41,42,43.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gsub6/gsub_chaining1_multiple_subrules_f1.default.retain-all-codepoint.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gsub6/gsub_chaining1_multiple_subrules_f1.retain-gids.30,31,32,33.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gsub6/gsub_chaining1_multiple_subrules_f1.retain-gids.41,42,43.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gsub6/gsub_chaining1_multiple_subrules_f1.retain-gids.retain-all-codepoint.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gsub6/gsub_chaining2_multiple_subrules_f1.default.30,31,32,33.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gsub6/gsub_chaining2_multiple_subrules_f1.default.41,42,43.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gsub6/gsub_chaining2_multiple_subrules_f1.default.retain-all-codepoint.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gsub6/gsub_chaining2_multiple_subrules_f1.retain-gids.30,31,32,33.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gsub6/gsub_chaining2_multiple_subrules_f1.retain-gids.41,42,43.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gsub6/gsub_chaining2_multiple_subrules_f1.retain-gids.retain-all-codepoint.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gsub6/gsub_chaining3_simple_f2.default.30,31,32,33.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gsub6/gsub_chaining3_simple_f2.default.41,42,43.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gsub6/gsub_chaining3_simple_f2.default.retain-all-codepoint.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gsub6/gsub_chaining3_simple_f2.retain-gids.30,31,32,33.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gsub6/gsub_chaining3_simple_f2.retain-gids.41,42,43.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gsub6/gsub_chaining3_simple_f2.retain-gids.retain-all-codepoint.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gsub8/gsub8_manually_created.default.41,42,43,44,45,46,47,48,49.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gsub8/gsub8_manually_created.default.41,42,43,44,45,46,47.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gsub8/gsub8_manually_created.default.41,42,43,44,45,46,4D.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gsub8/gsub8_manually_created.default.41,42,43,44,45,46,51.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gsub8/gsub8_manually_created.default.41,42,43,44,45,46.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gsub8/gsub8_manually_created.default.41,42,43.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gsub8/gsub8_manually_created.default.41.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gsub8/gsub8_manually_created.default.61.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gsub8/gsub8_manually_created.default.retain-all-codepoint.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gsub8/gsub8_manually_created.retain-gids.41,42,43,44,45,46,47,48,49.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gsub8/gsub8_manually_created.retain-gids.41,42,43,44,45,46,47.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gsub8/gsub8_manually_created.retain-gids.41,42,43,44,45,46,4D.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gsub8/gsub8_manually_created.retain-gids.41,42,43,44,45,46,51.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gsub8/gsub8_manually_created.retain-gids.41,42,43,44,45,46.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gsub8/gsub8_manually_created.retain-gids.41,42,43.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gsub8/gsub8_manually_created.retain-gids.41.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gsub8/gsub8_manually_created.retain-gids.61.otf
+third_party/harfbuzz-ng/src/test/subset/data/expected/layout.gsub8/gsub8_manually_created.retain-gids.retain-all-codepoint.otf
 third_party/harfbuzz-ng/src/test/subset/data/fonts/AdobeVFPrototype.otf
 third_party/harfbuzz-ng/src/test/subset/data/fonts/SourceHanSans-Regular_subset.otf
 third_party/harfbuzz-ng/src/test/subset/data/fonts/SourceSansPro-Regular.otf
@@ -13567,10 +13656,14 @@ third_party/harfbuzz-ng/src/test/subset/data/fonts/gpos_chaining3_simple_f1.otf
 third_party/harfbuzz-ng/src/test/subset/data/fonts/gpos_context1_multiple_subrules_f1.otf
 third_party/harfbuzz-ng/src/test/subset/data/fonts/gpos_context2_multiple_subrules_f1.otf
 third_party/harfbuzz-ng/src/test/subset/data/fonts/gpos_context3_simple_f1.otf
+third_party/harfbuzz-ng/src/test/subset/data/fonts/gsub8_manually_created.otf
 third_party/harfbuzz-ng/src/test/subset/data/fonts/gsub_alternate_substitution.otf
 third_party/harfbuzz-ng/src/test/subset/data/fonts/gsub_chaining1_multiple_subrules_f1.otf
 third_party/harfbuzz-ng/src/test/subset/data/fonts/gsub_chaining2_multiple_subrules_f1.otf
 third_party/harfbuzz-ng/src/test/subset/data/fonts/gsub_chaining3_simple_f2.otf
+third_party/harfbuzz-ng/src/test/subset/data/fonts/gsub_context1_multiple_subrules_f2.otf
+third_party/harfbuzz-ng/src/test/subset/data/fonts/gsub_context2_multiple_subrules_f2.otf
+third_party/harfbuzz-ng/src/test/subset/data/fonts/gsub_context3_successive_f1.otf
 third_party/hunspell/fuzz/bdict_corpus/02a25363e79f11115132055fb880773b325f6aef
 third_party/hunspell/fuzz/bdict_corpus/0883e336027e9e21911a277a9d8fa4c1b9490edd
 third_party/hunspell/fuzz/bdict_corpus/0c70b309d63d09ac033b8c80abff19457c93772a
@@ -13664,6 +13757,7 @@ third_party/libdrm/src/intel/tests/gm45-3d.batch
 third_party/libjpeg_turbo/testimages/test1.icc
 third_party/libjpeg_turbo/testimages/test2.icc
 third_party/libjpeg_turbo/testimages/testorig.ppm
+third_party/libjxl/src/third_party/testdata/jxl/blending/cropped_traffic_light.jxl
 third_party/libjxl/src/third_party/testdata/jxl/color_management/sRGB-D2700.icc
 third_party/liblouis/src/.travis/secrets/deploy_key.enc
 third_party/liblouis/src/tables/fr-bfu-comp8.utb
@@ -15890,6 +15984,7 @@ third_party/llvm/lldb/test/API/functionalities/postmortem/elf-core/altmain.out
 third_party/llvm/lldb/test/API/functionalities/postmortem/elf-core/gcore/linux-i386.core
 third_party/llvm/lldb/test/API/functionalities/postmortem/elf-core/gcore/linux-x86_64.core
 third_party/llvm/lldb/test/API/functionalities/postmortem/elf-core/linux-aarch64-neon.core
+third_party/llvm/lldb/test/API/functionalities/postmortem/elf-core/linux-aarch64-pac.core
 third_party/llvm/lldb/test/API/functionalities/postmortem/elf-core/linux-aarch64-sve-fpsimd.core
 third_party/llvm/lldb/test/API/functionalities/postmortem/elf-core/linux-aarch64-sve-full.core
 third_party/llvm/lldb/test/API/functionalities/postmortem/elf-core/linux-aarch64.core
@@ -15933,6 +16028,12 @@ third_party/llvm/lldb/test/Shell/Minidump/Windows/Sigsegv/Inputs/sigsegv.dmp
 third_party/llvm/lldb/test/Shell/Minidump/Windows/Sigsegv/Inputs/sigsegv.pdb
 third_party/llvm/lldb/test/Shell/ObjectFile/ELF/Inputs/PT_LOAD-overlap-section.elf
 third_party/llvm/lldb/test/Shell/ObjectFile/ELF/Inputs/netbsd-amd64.core
+third_party/llvm/lldb/test/Shell/Register/Core/Inputs/x86-32-freebsd.core
+third_party/llvm/lldb/test/Shell/Register/Core/Inputs/x86-32-linux.core
+third_party/llvm/lldb/test/Shell/Register/Core/Inputs/x86-32-netbsd.core
+third_party/llvm/lldb/test/Shell/Register/Core/Inputs/x86-64-freebsd.core
+third_party/llvm/lldb/test/Shell/Register/Core/Inputs/x86-64-linux.core
+third_party/llvm/lldb/test/Shell/Register/Core/Inputs/x86-64-netbsd.core
 third_party/llvm/lldb/test/Shell/Reproducer/Inputs/core
 third_party/llvm/lldb/unittests/ObjectFile/ELF/Inputs/early-section-headers.so
 third_party/llvm/lldb/unittests/Process/minidump/Inputs/fizzbuzz_no_heap.dmp
@@ -16115,6 +16216,7 @@ third_party/llvm/llvm/test/Bitcode/upgrade-subprogram-this.ll.bc
 third_party/llvm/llvm/test/Bitcode/upgrade-subprogram.ll.bc
 third_party/llvm/llvm/test/Bitcode/upgrade-var-annotation.ll.bc
 third_party/llvm/llvm/test/Bitcode/upgrade-vecreduce-intrinsics.ll.bc
+third_party/llvm/llvm/test/Bitcode/upgrade-void-ret-attr-11.0.ll.bc
 third_party/llvm/llvm/test/Bitcode/variableArgumentIntrinsic.3.2.ll.bc
 third_party/llvm/llvm/test/Bitcode/vectorInstructions.3.2.ll.bc
 third_party/llvm/llvm/test/Bitcode/visibility-styles.3.2.ll.bc
@@ -16548,6 +16650,8 @@ third_party/llvm/llvm/test/tools/dsymutil/Inputs/private/tmp/eh_frame/eh_frame.o
 third_party/llvm/llvm/test/tools/dsymutil/Inputs/private/tmp/extern/extern.o
 third_party/llvm/llvm/test/tools/dsymutil/Inputs/private/tmp/extern/extern.out
 third_party/llvm/llvm/test/tools/dsymutil/Inputs/private/tmp/extern/main.o
+third_party/llvm/llvm/test/tools/dsymutil/Inputs/private/tmp/keep_func/main.o
+third_party/llvm/llvm/test/tools/dsymutil/Inputs/private/tmp/keep_func/main.out
 third_party/llvm/llvm/test/tools/dsymutil/Inputs/private/tmp/label/label.o
 third_party/llvm/llvm/test/tools/dsymutil/Inputs/private/tmp/label/label.out
 third_party/llvm/llvm/test/tools/dsymutil/Inputs/private/tmp/private_extern/main.o
@@ -16611,6 +16715,7 @@ third_party/llvm/llvm/test/tools/llvm-cov/Inputs/branch-macros.o32l
 third_party/llvm/llvm/test/tools/llvm-cov/Inputs/branch-showBranchPercentage.o32l
 third_party/llvm/llvm/test/tools/llvm-cov/Inputs/branch-templates.o32l
 third_party/llvm/llvm/test/tools/llvm-cov/Inputs/combine_expansions.covmapping
+third_party/llvm/llvm/test/tools/llvm-cov/Inputs/compilation_dir.covmapping
 third_party/llvm/llvm/test/tools/llvm-cov/Inputs/deferred-regions.covmapping
 third_party/llvm/llvm/test/tools/llvm-cov/Inputs/deferred-regions.profdata
 third_party/llvm/llvm/test/tools/llvm-cov/Inputs/dir-with-filtering.covmapping
@@ -16708,6 +16813,7 @@ third_party/llvm/llvm/test/tools/llvm-dwp/Inputs/dwos_list_from_exec/main
 third_party/llvm/llvm/test/tools/llvm-dwp/Inputs/empty.dwo
 third_party/llvm/llvm/test/tools/llvm-dwp/Inputs/empty_compressed_section.dwo
 third_party/llvm/llvm/test/tools/llvm-dwp/Inputs/gcc_type/a.dwo
+third_party/llvm/llvm/test/tools/llvm-dwp/Inputs/handle_strx/dw5.dwo
 third_party/llvm/llvm/test/tools/llvm-dwp/Inputs/invalid_compressed.dwo
 third_party/llvm/llvm/test/tools/llvm-dwp/Inputs/invalid_cu_index/x.dwp
 third_party/llvm/llvm/test/tools/llvm-dwp/Inputs/invalid_string_form.dwo
@@ -17570,7 +17676,8 @@ third_party/sqlite/src/test/fuzzdata8.db
 third_party/sqlite/src/test/sessionfuzz-data1.db
 third_party/sqlite/src/tool/win/sqlite.vsix
 third_party/sqlite/src/vsixtest/vsixtest_TemporaryKey.pfx
-third_party/swiftshader/tests/kokoro/gcp_ubuntu/clang+llvm-10.0.0-x86_64-linux-gnu-ubuntu-18.04.tar.xz.sig
+third_party/swiftshader/tests/kokoro/gcp_ubuntu/clang+llvm-11.0.1-x86_64-linux-gnu-ubuntu-16.04.tar.xz.sig
+third_party/swiftshader/tests/kokoro/gcp_ubuntu/tstellar-gpg-key.asc
 third_party/swiftshader/tests/regres/llvm/10.0.0-darwin.sig
 third_party/swiftshader/tests/regres/llvm/10.0.0-ubuntu.sig
 third_party/swiftshader/tests/regres/llvm/10.0.0-win64.sig
@@ -18312,6 +18419,19 @@ third_party/webrtc/test/fuzzers/corpora/rtp-corpus/rtp-7
 third_party/webrtc/test/fuzzers/corpora/rtp-depacketizer-av1-assemble-frame-corpus/av1-assemble-frame-0
 third_party/webrtc/test/fuzzers/corpora/rtpdump-corpus/vp8/vp8.rtpdump
 third_party/webrtc/test/fuzzers/corpora/rtpdump-corpus/vp9/vp9.rtpdump
+third_party/webrtc/test/fuzzers/corpora/sctp-packet-corpus/cookie-ack-sack.bin
+third_party/webrtc/test/fuzzers/corpora/sctp-packet-corpus/cookie-echo-data-data-data.bin
+third_party/webrtc/test/fuzzers/corpora/sctp-packet-corpus/cookie-echo-data-data.bin
+third_party/webrtc/test/fuzzers/corpora/sctp-packet-corpus/cookie-echo-data.bin
+third_party/webrtc/test/fuzzers/corpora/sctp-packet-corpus/data-fragment1.bin
+third_party/webrtc/test/fuzzers/corpora/sctp-packet-corpus/forward-tsn.bin
+third_party/webrtc/test/fuzzers/corpora/sctp-packet-corpus/heartbeat-ack.bin
+third_party/webrtc/test/fuzzers/corpora/sctp-packet-corpus/heartbeat.bin
+third_party/webrtc/test/fuzzers/corpora/sctp-packet-corpus/init-ack.bin
+third_party/webrtc/test/fuzzers/corpora/sctp-packet-corpus/init.bin
+third_party/webrtc/test/fuzzers/corpora/sctp-packet-corpus/re-config.bin
+third_party/webrtc/test/fuzzers/corpora/sctp-packet-corpus/sack-data.bin
+third_party/webrtc/test/fuzzers/corpora/sctp-packet-corpus/sack-gap-ack-1.bin
 third_party/webrtc/test/fuzzers/corpora/stun-corpus/0.stun
 third_party/webrtc/test/fuzzers/corpora/stun-corpus/1.stun
 third_party/webrtc/test/fuzzers/corpora/stun-corpus/10.stun

Vissa filer visades inte eftersom för många filer har ändrats