Browse Source

Update to Chromium 97.0.4692.71 (#1789)

Ahrotahn 2 years ago
parent
commit
93cf016eff
67 changed files with 725 additions and 2997 deletions
  1. 1 1
      chromium_version.txt
  2. 0 1
      docs/flags.md
  3. 124 87
      domain_substitution.list
  4. 1 1
      patches/core/bromite/disable-fetching-field-trials.patch
  5. 30 39
      patches/core/inox-patchset/0001-fix-building-without-safebrowsing.patch
  6. 2 2
      patches/core/inox-patchset/0005-disable-default-extensions.patch
  7. 65 45
      patches/core/iridium-browser/all-add-trk-prefixes-to-possibly-evil-connections.patch
  8. 1 1
      patches/core/iridium-browser/safe_browsing-disable-incident-reporting.patch
  9. 1 1
      patches/core/ungoogled-chromium/block-requests.patch
  10. 5 5
      patches/core/ungoogled-chromium/block-trk-and-subdomains.patch
  11. 1 1
      patches/core/ungoogled-chromium/disable-fonts-googleapis-references.patch
  12. 3 2
      patches/core/ungoogled-chromium/disable-gaia.patch
  13. 1 1
      patches/core/ungoogled-chromium/disable-gcm.patch
  14. 8 13
      patches/core/ungoogled-chromium/disable-google-host-detection.patch
  15. 1 1
      patches/core/ungoogled-chromium/disable-mei-preload.patch
  16. 1 1
      patches/core/ungoogled-chromium/disable-network-time-tracker.patch
  17. 0 29
      patches/core/ungoogled-chromium/disable-untraceable-urls.patch
  18. 2 2
      patches/core/ungoogled-chromium/doh-changes.patch
  19. 1 1
      patches/core/ungoogled-chromium/fix-building-with-prunned-binaries.patch
  20. 8 8
      patches/core/ungoogled-chromium/fix-building-without-enabling-reporting.patch
  21. 156 119
      patches/core/ungoogled-chromium/fix-building-without-safebrowsing.patch
  22. 113 122
      patches/core/ungoogled-chromium/remove-unused-preferences-fields.patch
  23. 3 3
      patches/core/ungoogled-chromium/toggle-translation-via-switch.patch
  24. 15 15
      patches/extra/bromite/fingerprinting-flags-client-rects-and-measuretext.patch
  25. 6 6
      patches/extra/bromite/flag-fingerprinting-canvas-image-data-noise.patch
  26. 12 13
      patches/extra/bromite/flag-max-connections-per-host.patch
  27. 1 1
      patches/extra/debian/disable/google-api-warning.patch
  28. 1 1
      patches/extra/debian/disable/welcome-page.patch
  29. 2 2
      patches/extra/inox-patchset/0006-modify-default-prefs.patch
  30. 1 1
      patches/extra/iridium-browser/browser-disable-profile-auto-import-on-first-run.patch
  31. 1 1
      patches/extra/iridium-browser/prefs-always-prompt-for-download-directory-by-defaul.patch
  32. 1 1
      patches/extra/iridium-browser/updater-disable-auto-update.patch
  33. 1 1
      patches/extra/ungoogled-chromium/add-flag-for-bookmark-bar-ntp.patch
  34. 6 6
      patches/extra/ungoogled-chromium/add-flag-for-close-confirmation.patch
  35. 5 5
      patches/extra/ungoogled-chromium/add-flag-for-custom-ntp.patch
  36. 2 2
      patches/extra/ungoogled-chromium/add-flag-for-grab-handle.patch
  37. 1 1
      patches/extra/ungoogled-chromium/add-flag-for-omnibox-autocomplete-filtering.patch
  38. 7 7
      patches/extra/ungoogled-chromium/add-flag-for-pdf-plugin-name.patch
  39. 5 5
      patches/extra/ungoogled-chromium/add-flag-for-qr-generator.patch
  40. 3 3
      patches/extra/ungoogled-chromium/add-flag-for-search-engine-collection.patch
  41. 3 3
      patches/extra/ungoogled-chromium/add-flag-for-tab-hover-cards.patch
  42. 7 7
      patches/extra/ungoogled-chromium/add-flag-for-tabsearch-button.patch
  43. 1 1
      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. 4 4
      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-beforeunload.patch
  48. 1 1
      patches/extra/ungoogled-chromium/add-flag-to-disable-local-history-expiration.patch
  49. 1 1
      patches/extra/ungoogled-chromium/add-flag-to-force-punycode-hostnames.patch
  50. 2 2
      patches/extra/ungoogled-chromium/add-flag-to-hide-crashed-bubble.patch
  51. 23 11
      patches/extra/ungoogled-chromium/add-flag-to-hide-tab-close-buttons.patch
  52. 1 1
      patches/extra/ungoogled-chromium/add-flag-to-scroll-tabs.patch
  53. 2 2
      patches/extra/ungoogled-chromium/add-flag-to-show-avatar-button.patch
  54. 0 33
      patches/extra/ungoogled-chromium/add-flag-to-stack-tabs.patch
  55. 3 3
      patches/extra/ungoogled-chromium/add-ipv6-probing-option.patch
  56. 16 20
      patches/extra/ungoogled-chromium/add-suggestions-url-field.patch
  57. 1 1
      patches/extra/ungoogled-chromium/add-ungoogled-flag-headers.patch
  58. 7 7
      patches/extra/ungoogled-chromium/disable-download-quarantine.patch
  59. 11 0
      patches/extra/ungoogled-chromium/disable-remote-optimization-guide.patch
  60. 2 2
      patches/extra/ungoogled-chromium/disable-webgl-renderer-info.patch
  61. 1 1
      patches/extra/ungoogled-chromium/enable-default-prefetch-privacy-changes.patch
  62. 3 3
      patches/extra/ungoogled-chromium/enable-page-saving-on-more-pages.patch
  63. 3 3
      patches/extra/ungoogled-chromium/enable-paste-and-go-new-tab-button.patch
  64. 2 2
      patches/extra/ungoogled-chromium/keep-expired-flags.patch
  65. 17 19
      patches/extra/ungoogled-chromium/remove-uneeded-ui.patch
  66. 1 1
      patches/series
  67. 12 2309
      pruning.list

+ 1 - 1
chromium_version.txt

@@ -1 +1 @@
-96.0.4664.110
+97.0.4692.71

+ 0 - 1
docs/flags.md

@@ -13,7 +13,6 @@ If a switch requires a value, you must specify it with an `=` sign; e.g. flag `-
   -- | --
   `--disable-beforeunload` | Disables JavaScript dialog boxes triggered by `beforeunload`
   `--disable-search-engine-collection` | Disable automatic search engine scraping from webpages.
-  `--enable-stacked-tab-strip`<br>`--enable-tab-adjust-layout` | These flags adjust the tab strip behavior. Please note that they are not well tested, so proceed with caution.
   `--extension-mime-request-handling` | Change how extension MIME types (CRX and user scripts) are handled. Acceptable values are `download-as-regular-file` or `always-prompt-for-install`. Leave unset to use normal behavior.
   `--fingerprinting-canvas-image-data-noise` | (Added flag to Bromite feature) Implements fingerprinting deception for Canvas image data retrieved via JS APIs. In the data, at most 10 pixels are slightly modified.
   `--fingerprinting-canvas-measuretext-noise` | (Added flag to Bromite feature) Scale the output values of Canvas::measureText() with a randomly selected factor in the range -0.0003% to 0.0003%, which are recomputed on every document initialization.

File diff suppressed because it is too large
+ 124 - 87
domain_substitution.list


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

@@ -67,7 +67,7 @@ Subject: Disable fetching of all field trials
      /* Alphabetical: */
 --- a/components/variations/service/variations_service.cc
 +++ b/components/variations/service/variations_service.cc
-@@ -238,17 +238,7 @@ bool GetInstanceManipulations(const net:
+@@ -234,17 +234,7 @@ bool GetInstanceManipulations(const net:
  // Variations seed fetching is only enabled in official Chrome builds, if a URL
  // is specified on the command line, and for testing.
  bool IsFetchingEnabled() {

+ 30 - 39
patches/core/inox-patchset/0001-fix-building-without-safebrowsing.patch

@@ -1,6 +1,6 @@
 --- a/chrome/browser/BUILD.gn
 +++ b/chrome/browser/BUILD.gn
-@@ -2195,7 +2195,6 @@ static_library("browser") {
+@@ -2208,7 +2208,6 @@ static_library("browser") {
      "//components/reputation/core:proto",
      "//components/resources",
      "//components/safe_browsing/content/browser",
@@ -8,7 +8,7 @@
      "//components/safe_browsing/content/browser:safe_browsing_service",
      "//components/safe_browsing/content/browser/password_protection",
      "//components/safe_browsing/content/browser/web_ui",
-@@ -3706,8 +3705,6 @@ static_library("browser") {
+@@ -3740,8 +3739,6 @@ static_library("browser") {
        "download/download_commands.h",
        "download/download_crx_util.cc",
        "download/download_crx_util.h",
@@ -50,7 +50,7 @@
  #include "chrome/browser/shell_integration.h"
  #include "chrome/browser/site_isolation/prefs_observer.h"
  #include "chrome/browser/ssl/secure_origin_prefs_observer.h"
-@@ -395,8 +394,6 @@ void BrowserProcessImpl::StartTearDown()
+@@ -396,8 +395,6 @@ void BrowserProcessImpl::StartTearDown()
  
    metrics_services_manager_.reset();
    intranet_redirect_detector_.reset();
@@ -59,7 +59,7 @@
    network_time_tracker_.reset();
  #if BUILDFLAG(ENABLE_PLUGINS)
    plugins_resource_service_.reset();
-@@ -1030,14 +1027,6 @@ StatusTray* BrowserProcessImpl::status_t
+@@ -1031,14 +1028,6 @@ StatusTray* BrowserProcessImpl::status_t
    return status_tray_.get();
  }
  
@@ -74,7 +74,7 @@
  subresource_filter::RulesetService*
  BrowserProcessImpl::subresource_filter_ruleset_service() {
    DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
-@@ -1300,26 +1289,6 @@ void BrowserProcessImpl::CreateBackgroun
+@@ -1302,26 +1291,6 @@ void BrowserProcessImpl::CreateBackgroun
  #endif
  }
  
@@ -144,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
-@@ -921,34 +921,6 @@ void SetApplicationLocaleOnIOThread(cons
+@@ -929,34 +929,6 @@ void SetApplicationLocaleOnIOThread(cons
    GetIOThreadApplicationLocale() = locale;
  }
  
@@ -179,7 +179,7 @@
  #if BUILDFLAG(ENABLE_EXTENSIONS)
  
  AppLoadedInTabSource ClassifyAppLoadedInTabSource(
-@@ -1423,7 +1395,6 @@ void ChromeContentBrowserClient::PostAft
+@@ -1438,7 +1410,6 @@ void ChromeContentBrowserClient::PostAft
    InitNetworkContextsParentDirectory();
  
    DCHECK_CURRENTLY_ON(BrowserThread::UI);
@@ -196,7 +196,7 @@
        base::BindOnce(&HandleSSLErrorWrapper), base::BindOnce(&IsInHostedApp),
        base::BindOnce(
            &ShouldIgnoreSslInterstitialBecauseNavigationDefaultedToHttps)));
-@@ -4258,15 +4229,6 @@ ChromeContentBrowserClient::CreateThrott
+@@ -4258,16 +4229,6 @@ ChromeContentBrowserClient::CreateThrott
                     &throttles);
  #endif
  
@@ -205,9 +205,10 @@
 -      g_browser_process->safe_browsing_service()
 -          ? g_browser_process->safe_browsing_service()->ui_manager().get()
 -          : nullptr;
--  throttles.push_back(
--      std::make_unique<safe_browsing::SafeBrowsingNavigationThrottle>(
--          handle, ui_manager));
+-  MaybeAddThrottle(
+-      safe_browsing::SafeBrowsingNavigationThrottle::MaybeCreateThrottleFor(
+-          handle, ui_manager),
+-      &throttles);
 -
    if (base::FeatureList::IsEnabled(safe_browsing::kDelayedWarnings)) {
      throttles.push_back(
@@ -317,7 +318,7 @@
        return !download_->IsSavePackageDownload() &&
 --- a/chrome/browser/download/download_prefs.cc
 +++ b/chrome/browser/download/download_prefs.cc
-@@ -260,14 +260,7 @@ DownloadPrefs::DownloadPrefs(Profile* pr
+@@ -251,14 +251,7 @@ DownloadPrefs::DownloadPrefs(Profile* pr
          base::FilePath::StringType(1, base::FilePath::kExtensionSeparator) +
          extension);
  
@@ -333,7 +334,7 @@
    }
  }
  
-@@ -475,10 +468,6 @@ bool DownloadPrefs::IsAutoOpenByPolicy(c
+@@ -466,10 +459,6 @@ bool DownloadPrefs::IsAutoOpenByPolicy(c
  bool DownloadPrefs::EnableAutoOpenByUserBasedOnExtension(
      const base::FilePath& file_name) {
    base::FilePath::StringType extension = file_name.Extension();
@@ -611,7 +612,7 @@
  WebstorePrivateGetExtensionStatusFunction::
 --- a/chrome/browser/extensions/blocklist_state_fetcher.cc
 +++ b/chrome/browser/extensions/blocklist_state_fetcher.cc
-@@ -34,33 +34,8 @@ BlocklistStateFetcher::~BlocklistStateFe
+@@ -38,23 +38,8 @@ BlocklistStateFetcher::~BlocklistStateFe
  void BlocklistStateFetcher::Request(const std::string& id,
                                      RequestCallback callback) {
    DCHECK_CURRENTLY_ON(BrowserThread::UI);
@@ -631,23 +632,13 @@
 -  if (request_already_sent)
 -    return;
 -
--  if (g_browser_process && g_browser_process->safe_browsing_service()) {
--    if (base::FeatureList::IsEnabled(
--            safe_browsing::kSafeBrowsingRemoveCookies)) {
--      url_loader_factory_ = g_browser_process->shared_url_loader_factory();
--    } else {
--      url_loader_factory_ =
--          g_browser_process->safe_browsing_service()->GetURLLoaderFactory();
--    }
--  }
--
 -  SendRequest(id);
 +  base::ThreadTaskRunnerHandle::Get()->PostTask(
 +      FROM_HERE, base::BindOnce(std::move(callback), BLOCKLISTED_UNKNOWN));
  }
  
  void BlocklistStateFetcher::SendRequest(const std::string& id) {
-@@ -71,8 +46,7 @@ void BlocklistStateFetcher::SendRequest(
+@@ -65,8 +50,7 @@ void BlocklistStateFetcher::SendRequest(
    std::string request_str;
    request.SerializeToString(&request_str);
  
@@ -657,7 +648,7 @@
    net::NetworkTrafficAnnotationTag traffic_annotation =
        net::DefineNetworkTrafficAnnotation("extension_blacklist", R"(
          semantics {
-@@ -122,12 +96,6 @@ void BlocklistStateFetcher::SendRequest(
+@@ -114,12 +98,6 @@ void BlocklistStateFetcher::SendRequest(
                       base::Unretained(this), fetcher));
  }
  
@@ -691,7 +682,7 @@
    // SimpleURLLoader -> (owned loader, extension id).
 --- a/chrome/browser/metrics/chrome_metrics_service_client.cc
 +++ b/chrome/browser/metrics/chrome_metrics_service_client.cc
-@@ -828,9 +828,6 @@ void ChromeMetricsServiceClient::Registe
+@@ -824,9 +824,6 @@ void ChromeMetricsServiceClient::Registe
    metrics_service_->RegisterMetricsProvider(
        std::make_unique<HttpsEngagementMetricsProvider>());
  
@@ -715,7 +706,7 @@
  // static
 --- a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc
 +++ b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc
-@@ -297,7 +297,6 @@ void ChromeBrowserMainExtraPartsProfiles
+@@ -298,7 +298,6 @@ void ChromeBrowserMainExtraPartsProfiles
  #if BUILDFLAG(IS_CHROMEOS_LACROS)
    CertDbInitializerFactory::GetInstance();
  #endif
@@ -733,7 +724,7 @@
  #include "chrome/browser/sessions/exit_type_service.h"
  #include "chrome/browser/sharing/sharing_service_factory.h"
  #include "chrome/browser/signin/identity_manager_factory.h"
-@@ -627,17 +626,6 @@ void ProfileImpl::LoadPrefsForNormalStar
+@@ -628,17 +627,6 @@ void ProfileImpl::LoadPrefsForNormalStar
  
    mojo::PendingRemote<prefs::mojom::TrackedPreferenceValidationDelegate>
        pref_validation_delegate;
@@ -781,7 +772,7 @@
  
    if (safe_browsing_mode != 0) {
      # "Safe Browsing Basic" files used for safe browsing in full mode
-@@ -411,6 +413,7 @@ static_library("advanced_protection") {
+@@ -414,6 +416,7 @@ static_library("advanced_protection") {
  }
  
  source_set("metrics_collector") {
@@ -789,7 +780,7 @@
    sources = [
      "safe_browsing_metrics_collector_factory.cc",
      "safe_browsing_metrics_collector_factory.h",
-@@ -428,6 +431,7 @@ source_set("metrics_collector") {
+@@ -431,6 +434,7 @@ source_set("metrics_collector") {
      "//components/safe_browsing/core/common:safe_browsing_prefs",
      "//content/public/browser",
    ]
@@ -799,7 +790,7 @@
  source_set("test_support") {
 --- a/chrome/browser/ssl/security_state_tab_helper.cc
 +++ b/chrome/browser/ssl/security_state_tab_helper.cc
-@@ -217,89 +217,6 @@ bool SecurityStateTabHelper::UsedPolicyI
+@@ -210,89 +210,6 @@ bool SecurityStateTabHelper::UsedPolicyI
  
  security_state::MaliciousContentStatus
  SecurityStateTabHelper::GetMaliciousContentStatus() const {
@@ -891,7 +882,7 @@
  
 --- a/chrome/browser/ui/BUILD.gn
 +++ b/chrome/browser/ui/BUILD.gn
-@@ -3946,7 +3946,6 @@ static_library("ui") {
+@@ -3957,7 +3957,6 @@ static_library("ui") {
        "views/device_chooser_content_view.h",
        "views/devtools_process_observer.cc",
        "views/devtools_process_observer.h",
@@ -901,7 +892,7 @@
        "views/download/download_item_view.cc",
 --- a/chrome/browser/ui/tab_helpers.cc
 +++ b/chrome/browser/ui/tab_helpers.cc
-@@ -330,16 +330,6 @@ void TabHelpers::AttachTabHelpers(WebCon
+@@ -343,16 +343,6 @@ void TabHelpers::AttachTabHelpers(WebCon
    //     See https://crbug.com/910288.
    resource_coordinator::ResourceCoordinatorTabHelper::CreateForWebContents(
        web_contents);
@@ -928,7 +919,7 @@
  #include "chrome/browser/download/download_history.h"
  #include "chrome/browser/download/download_item_model.h"
  #include "chrome/browser/download/download_prefs.h"
-@@ -171,9 +170,6 @@ void DownloadsDOMHandler::SaveDangerousR
+@@ -172,9 +171,6 @@ void DownloadsDOMHandler::SaveDangerousR
    }
  
    CountDownloadsDOMEvents(DOWNLOADS_DOM_EVENT_SAVE_DANGEROUS);
@@ -938,7 +929,7 @@
  }
  
  void DownloadsDOMHandler::AcceptIncognitoWarning(const std::string& id) {
-@@ -325,12 +321,6 @@ void DownloadsDOMHandler::RemoveDownload
+@@ -326,12 +322,6 @@ void DownloadsDOMHandler::RemoveDownload
    IdSet ids;
  
    for (auto* download : to_remove) {
@@ -951,7 +942,7 @@
      DownloadItemModel item_model(download);
      if (!item_model.ShouldShowInShelf() ||
          download->GetState() == download::DownloadItem::IN_PROGRESS) {
-@@ -404,44 +394,6 @@ void DownloadsDOMHandler::FinalizeRemova
+@@ -405,44 +395,6 @@ void DownloadsDOMHandler::FinalizeRemova
    }
  }
  
@@ -1006,7 +997,7 @@
  #include "chrome/browser/ui/webui/downloads/downloads.mojom-forward.h"
  #include "chrome/browser/ui/webui/downloads/downloads_list_tracker.h"
  #include "content/public/browser/web_contents_observer.h"
-@@ -94,18 +93,6 @@ class DownloadsDOMHandler : public conte
+@@ -95,18 +94,6 @@ class DownloadsDOMHandler : public conte
    // null-checking |original_notifier_|.
    content::DownloadManager* GetOriginalNotifierManager() const;
  
@@ -1175,7 +1166,7 @@
      html = ui::ResourceBundle::GetSharedInstance().LoadDataResourceString(
 --- a/chrome/renderer/chrome_content_renderer_client.cc
 +++ b/chrome/renderer/chrome_content_renderer_client.cc
-@@ -97,7 +97,6 @@
+@@ -98,7 +98,6 @@
  #include "components/page_load_metrics/renderer/metrics_render_frame_observer.h"
  #include "components/paint_preview/buildflags/buildflags.h"
  #include "components/safe_browsing/buildflags.h"

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

@@ -10,7 +10,7 @@
      extension_misc::kAssessmentAssistantExtensionId,
 --- a/chrome/browser/extensions/component_loader.cc
 +++ b/chrome/browser/extensions/component_loader.cc
-@@ -354,11 +354,6 @@ void ComponentLoader::AddWebStoreApp() {
+@@ -355,11 +355,6 @@ void ComponentLoader::AddWebStoreApp() {
    if (!IsNormalSession())
      return;
  #endif
@@ -22,7 +22,7 @@
  }
  
  #if BUILDFLAG(IS_CHROMEOS_ASH)
-@@ -495,18 +490,6 @@ void ComponentLoader::AddDefaultComponen
+@@ -503,18 +498,6 @@ void ComponentLoader::AddDefaultComponen
      AddHangoutServicesExtension();
  #endif  // BUILDFLAG(ENABLE_HANGOUT_SERVICES_EXTENSION)
  

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

@@ -66,6 +66,17 @@ by default.
  ui/views/examples/webview_example.cc          |  2 +-
  54 files changed, 89 insertions(+), 87 deletions(-)
 
+--- a/ash/components/geolocation/simple_geolocation_provider.cc
++++ b/ash/components/geolocation/simple_geolocation_provider.cc
+@@ -20,7 +20,7 @@ namespace ash {
+ namespace {
+ 
+ const char kDefaultGeolocationProviderUrl[] =
+-    "https://www.googleapis.com/geolocation/v1/geolocate?";
++    "trk:215:https://www.googleapis.com/geolocation/v1/geolocate?";
+ 
+ }  // namespace
+ 
 --- a/build/apple/tweak_info_plist.py
 +++ b/build/apple/tweak_info_plist.py
 @@ -195,7 +195,7 @@ def _AddKeystoneKeys(plist, bundle_ident
@@ -79,7 +90,7 @@ by default.
    if base_tag != '':
 --- a/chrome/browser/ash/customization/customization_document.cc
 +++ b/chrome/browser/ash/customization/customization_document.cc
-@@ -175,7 +175,7 @@ std::string ReadFileInBackground(const b
+@@ -200,7 +200,7 @@ std::string ReadFileInBackground(const b
  
  // Template URL where to fetch OEM services customization manifest from.
  const char ServicesCustomizationDocument::kManifestUrl[] =
@@ -192,7 +203,7 @@ by default.
  
 --- a/chrome/browser/safe_browsing/download_protection/download_feedback.cc
 +++ b/chrome/browser/safe_browsing/download_protection/download_feedback.cc
-@@ -202,7 +202,7 @@ const int64_t DownloadFeedback::kMaxUplo
+@@ -193,7 +193,7 @@ const int64_t DownloadFeedback::kMaxUplo
  
  // static
  const char DownloadFeedback::kSbFeedbackURL[] =
@@ -223,9 +234,9 @@ by default.
  // The filename under which we'll store the denylist (in the user data dir). The
  // old file will be used as a backup in case the new file has not been loaded
  // yet.
---- a/chrome/browser/ui/views/outdated_upgrade_bubble_view.cc
-+++ b/chrome/browser/ui/views/outdated_upgrade_bubble_view.cc
-@@ -54,7 +54,7 @@ const char* kUpdateBrowserRedirectUrl =
+--- a/chrome/browser/ui/dialogs/outdated_upgrade_bubble.cc
++++ b/chrome/browser/ui/dialogs/outdated_upgrade_bubble.cc
+@@ -49,7 +49,7 @@ const char* kUpdateBrowserRedirectUrl =
  #else
      // The URL to be used to re-install Chrome when auto-update failed for
      // too long.
@@ -292,7 +303,7 @@ by default.
 -    "https://www.gstatic.com/chrome/extensions/blocklist";
 +    "trk:270:https://www.gstatic.com/chrome/extensions/blocklist";
  
- const char kThumbsWhiteListedExtension[] = "khopmbdjffemhegeeobelklnbglcdgfh";
+ }  // namespace
  
 --- a/chrome/installer/setup/google_chrome_behaviors.cc
 +++ b/chrome/installer/setup/google_chrome_behaviors.cc
@@ -327,17 +338,6 @@ by default.
  
  const char kVirtualChannel[] = "virtual-channel";
  
---- a/chromeos/geolocation/simple_geolocation_provider.cc
-+++ b/chromeos/geolocation/simple_geolocation_provider.cc
-@@ -20,7 +20,7 @@ namespace chromeos {
- namespace {
- 
- const char kDefaultGeolocationProviderUrl[] =
--    "https://www.googleapis.com/geolocation/v1/geolocate?";
-+    "trk:215:https://www.googleapis.com/geolocation/v1/geolocate?";
- 
- }  // namespace
- 
 --- a/components/cloud_devices/common/cloud_devices_urls.cc
 +++ b/components/cloud_devices/common/cloud_devices_urls.cc
 @@ -13,14 +13,14 @@
@@ -468,7 +468,7 @@ by default.
            std::move(resource_request),
 --- a/components/translate/core/common/translate_util.cc
 +++ b/components/translate/core/common/translate_util.cc
-@@ -20,7 +20,7 @@ const char kDetectLanguageInSubFrames[]
+@@ -21,7 +21,7 @@ const char kDetectLanguageInSubFrames[]
  
  }  // namespace
  
@@ -515,7 +515,7 @@ by default.
    return GetContentClient()->browser()->GetWebAuthenticationDelegate();
 --- a/content/shell/browser/shell_browser_main_parts.cc
 +++ b/content/shell/browser/shell_browser_main_parts.cc
-@@ -96,7 +96,7 @@ GURL GetStartupURL() {
+@@ -84,7 +84,7 @@ GURL GetStartupURL() {
  #else
    const base::CommandLine::StringVector& args = command_line->GetArgs();
    if (args.empty())
@@ -540,7 +540,7 @@ by default.
    extensions::ExtensionsClient* client = extensions::ExtensionsClient::Get();
 --- a/google_apis/gaia/gaia_constants.cc
 +++ b/google_apis/gaia/gaia_constants.cc
-@@ -25,133 +25,133 @@ const char kSyncService[] = "chromiumsyn
+@@ -25,149 +25,149 @@ const char kSyncService[] = "chromiumsyn
  const char kRemotingService[] = "chromoting";
  
  // OAuth scopes.
@@ -593,123 +593,143 @@ by default.
 -    "https://www.googleapis.com/auth/userinfo.profile";
 +    "trk:079:https://www.googleapis.com/auth/userinfo.profile";
  
+ // OAuth2 scope for access to the parent approval widget.
+ const char kParentApprovalOAuth2Scope[] =
+-    "https://www.googleapis.com/auth/kids.parentapproval";
++    "trk:080:https://www.googleapis.com/auth/kids.parentapproval";
+ 
  // OAuth2 scope for access to the people API (read-only).
  const char kPeopleApiReadOnlyOAuth2Scope[] =
 -    "https://www.googleapis.com/auth/peopleapi.readonly";
-+    "trk:080:https://www.googleapis.com/auth/peopleapi.readonly";
++    "trk:081:https://www.googleapis.com/auth/peopleapi.readonly";
+ 
+ // OAuth2 scope for access to the programmatic challenge API (read-only).
+ const char kProgrammaticChallengeOAuth2Scope[] =
+-    "https://www.googleapis.com/auth/accounts.programmaticchallenge";
++    "trk:082:https://www.googleapis.com/auth/accounts.programmaticchallenge";
  
  // OAuth2 scope for access to the Reauth flow.
  const char kAccountsReauthOAuth2Scope[] =
 -    "https://www.googleapis.com/auth/accounts.reauth";
-+    "trk:081:https://www.googleapis.com/auth/accounts.reauth";
++    "trk:083:https://www.googleapis.com/auth/accounts.reauth";
  
  // OAuth2 scope for access to audit recording (ARI).
  const char kAuditRecordingOAuth2Scope[] =
 -    "https://www.googleapis.com/auth/auditrecording-pa";
-+    "trk:082:https://www.googleapis.com/auth/auditrecording-pa";
++    "trk:084:https://www.googleapis.com/auth/auditrecording-pa";
  
  // OAuth2 scope for access to clear cut logs.
 -const char kClearCutOAuth2Scope[] = "https://www.googleapis.com/auth/cclog";
-+const char kClearCutOAuth2Scope[] = "trk:083:https://www.googleapis.com/auth/cclog";
++const char kClearCutOAuth2Scope[] = "trk:085:https://www.googleapis.com/auth/cclog";
  
  // OAuth2 scope for FCM, the Firebase Cloud Messaging service.
  const char kFCMOAuthScope[] =
 -    "https://www.googleapis.com/auth/firebase.messaging";
-+    "trk:084:https://www.googleapis.com/auth/firebase.messaging";
++    "trk:086:https://www.googleapis.com/auth/firebase.messaging";
  
  // OAuth2 scope for access to Tachyon api.
 -const char kTachyonOAuthScope[] = "https://www.googleapis.com/auth/tachyon";
-+const char kTachyonOAuthScope[] = "trk:085:https://www.googleapis.com/auth/tachyon";
++const char kTachyonOAuthScope[] = "trk:087:https://www.googleapis.com/auth/tachyon";
  
  // OAuth2 scope for access to the Photos API.
 -const char kPhotosOAuth2Scope[] = "https://www.googleapis.com/auth/photos";
-+const char kPhotosOAuth2Scope[] = "trk:086:https://www.googleapis.com/auth/photos";
++const char kPhotosOAuth2Scope[] = "trk:088:https://www.googleapis.com/auth/photos";
  
  // OAuth2 scope for access to Cast backdrop API.
  const char kCastBackdropOAuth2Scope[] =
 -    "https://www.googleapis.com/auth/cast.backdrop";
-+    "trk:087:https://www.googleapis.com/auth/cast.backdrop";
++    "trk:089:https://www.googleapis.com/auth/cast.backdrop";
  
  // OAuth scope for access to Cloud Translation API.
  const char kCloudTranslationOAuth2Scope[] =
 -    "https://www.googleapis.com/auth/cloud-translation";
-+    "trk:088:https://www.googleapis.com/auth/cloud-translation";
++    "trk:090:https://www.googleapis.com/auth/cloud-translation";
  
  // OAuth2 scope for access to passwords leak checking API.
  const char kPasswordsLeakCheckOAuth2Scope[] =
 -    "https://www.googleapis.com/auth/identity.passwords.leak.check";
-+    "trk:089:https://www.googleapis.com/auth/identity.passwords.leak.check";
++    "trk:091:https://www.googleapis.com/auth/identity.passwords.leak.check";
  
  // OAuth2 scope for access to Chrome safe browsing API.
  const char kChromeSafeBrowsingOAuth2Scope[] =
 -    "https://www.googleapis.com/auth/chrome-safe-browsing";
-+    "trk:090:https://www.googleapis.com/auth/chrome-safe-browsing";
++    "trk:092:https://www.googleapis.com/auth/chrome-safe-browsing";
  
  // OAuth2 scope for access to kid permissions by URL.
  const char kClassifyUrlKidPermissionOAuth2Scope[] =
 -    "https://www.googleapis.com/auth/kid.permission";
-+    "trk:091:https://www.googleapis.com/auth/kid.permission";
++    "trk:093:https://www.googleapis.com/auth/kid.permission";
  const char kKidFamilyReadonlyOAuth2Scope[] =
 -    "https://www.googleapis.com/auth/kid.family.readonly";
-+    "trk:092:https://www.googleapis.com/auth/kid.family.readonly";
++    "trk:094:https://www.googleapis.com/auth/kid.family.readonly";
  
  // OAuth2 scope for access to payments.
  const char kPaymentsOAuth2Scope[] =
 -    "https://www.googleapis.com/auth/wallet.chrome";
-+    "trk:093:https://www.googleapis.com/auth/wallet.chrome";
++    "trk:095:https://www.googleapis.com/auth/wallet.chrome";
  
  const char kCryptAuthOAuth2Scope[] =
 -    "https://www.googleapis.com/auth/cryptauth";
-+    "trk:094:https://www.googleapis.com/auth/cryptauth";
++    "trk:096:https://www.googleapis.com/auth/cryptauth";
  
  // OAuth2 scope for access to Drive.
 -const char kDriveOAuth2Scope[] = "https://www.googleapis.com/auth/drive";
-+const char kDriveOAuth2Scope[] = "trk:095:https://www.googleapis.com/auth/drive";
++const char kDriveOAuth2Scope[] = "trk:097:https://www.googleapis.com/auth/drive";
  
  // The scope required for an access token in order to query ItemSuggest.
  const char kDriveReadOnlyOAuth2Scope[] =
 -    "https://www.googleapis.com/auth/drive.readonly";
-+    "trk:096:https://www.googleapis.com/auth/drive.readonly";
++    "trk:098:https://www.googleapis.com/auth/drive.readonly";
  
  // OAuth2 scope for access to Assistant SDK.
  const char kAssistantOAuth2Scope[] =
 -    "https://www.googleapis.com/auth/assistant-sdk-prototype";
-+    "trk:097:https://www.googleapis.com/auth/assistant-sdk-prototype";
++    "trk:099:https://www.googleapis.com/auth/assistant-sdk-prototype";
  
  // OAuth2 scope for access to nearby devices (fast pair) APIs.
  const char kCloudPlatformProjectsOAuth2Scope[] =
 -    "https://www.googleapis.com/auth/cloudplatformprojects";
-+    "trk:098:https://www.googleapis.com/auth/cloudplatformprojects";
++    "trk:100:https://www.googleapis.com/auth/cloudplatformprojects";
  
  // OAuth2 scope for access to nearby sharing.
  const char kNearbyShareOAuth2Scope[] =
 -    "https://www.googleapis.com/auth/nearbysharing-pa";
-+    "trk:099:https://www.googleapis.com/auth/nearbysharing-pa";
++    "trk:101:https://www.googleapis.com/auth/nearbysharing-pa";
  
  // OAuth2 scopes for access to GCM account tracker.
 -const char kGCMGroupServerOAuth2Scope[] = "https://www.googleapis.com/auth/gcm";
-+const char kGCMGroupServerOAuth2Scope[] = "trk:100:https://www.googleapis.com/auth/gcm";
++const char kGCMGroupServerOAuth2Scope[] = "trk:102:https://www.googleapis.com/auth/gcm";
  const char kGCMCheckinServerOAuth2Scope[] =
 -    "https://www.googleapis.com/auth/android_checkin";
-+    "trk:101:https://www.googleapis.com/auth/android_checkin";
++    "trk:103:https://www.googleapis.com/auth/android_checkin";
  
  // OAuth2 scope for access to readonly Chrome web store.
  const char kChromeWebstoreOAuth2Scope[] =
 -    "https://www.googleapis.com/auth/chromewebstore.readonly";
-+    "trk:102:https://www.googleapis.com/auth/chromewebstore.readonly";
++    "trk:104:https://www.googleapis.com/auth/chromewebstore.readonly";
  
  // OAuth2 scope for access to Account Capabilities API.
  const char kAccountCapabilitiesOAuth2Scope[] =
 -    "https://www.googleapis.com/auth/account.capabilities";
-+    "trk:103:https://www.googleapis.com/auth/account.capabilities";
++    "trk:105:https://www.googleapis.com/auth/account.capabilities";
  
  // OAuth2 scope for support content API.
  const char kSupportContentOAuth2Scope[] =
 -    "https://www.googleapis.com/auth/supportcontent";
-+    "trk:104:https://www.googleapis.com/auth/supportcontent";
++    "trk:106:https://www.googleapis.com/auth/supportcontent";
  
  // OAuth 2 scope for NTP Photos module API.
  const char kPhotosModuleOAuth2Scope[] =
+-    "https://www.googleapis.com/auth/photos.firstparty.readonly";
++    "trk:107:https://www.googleapis.com/auth/photos.firstparty.readonly";
+ 
+ // OAuth 2 scope for NTP Photos module image API.
+ const char kPhotosModuleImageOAuth2Scope[] =
+-    "https://www.googleapis.com/auth/photos.image.readonly";
++    "trk:108:https://www.googleapis.com/auth/photos.image.readonly";
+ 
+ // Used to mint uber auth tokens when needed.
+ const char kGaiaSid[] = "sid";
 --- a/google_apis/gaia/gaia_urls.cc
 +++ b/google_apis/gaia/gaia_urls.cc
 @@ -24,6 +24,7 @@

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

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

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

@@ -65,7 +65,7 @@
    if (state_ == REQUESTING) {
 --- a/components/update_client/update_checker.cc
 +++ b/components/update_client/update_checker.cc
-@@ -129,6 +129,7 @@ void UpdateCheckerImpl::CheckForUpdates(
+@@ -112,6 +112,7 @@ void UpdateCheckerImpl::CheckForUpdates(
      const base::flat_map<std::string, std::string>& additional_attributes,
      bool enabled_component_updates,
      UpdateCheckCallback update_check_callback) {

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

@@ -60,7 +60,7 @@
      return GURL(parts.scheme.is_valid() ? text : FixupPath(text));
 --- a/content/browser/child_process_security_policy_impl.cc
 +++ b/content/browser/child_process_security_policy_impl.cc
-@@ -861,6 +861,7 @@ ChildProcessSecurityPolicyImpl::ChildPro
+@@ -853,6 +853,7 @@ ChildProcessSecurityPolicyImpl::ChildPro
  #endif  // BUILDFLAG(ENABLE_WEBSOCKETS)
    RegisterWebSafeScheme(url::kFtpScheme);
    RegisterWebSafeScheme(url::kDataScheme);
@@ -70,7 +70,7 @@
    // TODO(nick): https://crbug.com/651534 blob: and filesystem: schemes embed
 --- a/net/BUILD.gn
 +++ b/net/BUILD.gn
-@@ -1010,6 +1010,8 @@ component("net") {
+@@ -1012,6 +1012,8 @@ component("net") {
      "url_request/report_sender.h",
      "url_request/static_http_user_agent_settings.cc",
      "url_request/static_http_user_agent_settings.h",
@@ -160,7 +160,7 @@
  
  using base::Time;
  using std::string;
-@@ -595,6 +597,12 @@ URLRequest::URLRequest(const GURL& url,
+@@ -594,6 +596,12 @@ URLRequest::URLRequest(const GURL& url,
    // Sanity check out environment.
    DCHECK(base::ThreadTaskRunnerHandle::IsSet());
  
@@ -201,8 +201,8 @@
  const char kTelScheme[] = "tel";
 +const char kTraceScheme[] = "trk";
  const char kUrnScheme[] = "urn";
+ const char kUuidInPackageScheme[] = "uuid-in-package";
  const char kWsScheme[] = "ws";
- const char kWssScheme[] = "wss";
 --- a/url/url_constants.h
 +++ b/url/url_constants.h
 @@ -32,6 +32,7 @@ COMPONENT_EXPORT(URL) extern const char
@@ -211,8 +211,8 @@
  COMPONENT_EXPORT(URL) extern const char kTelScheme[];
 +COMPONENT_EXPORT(URL) extern const char kTraceScheme[];
  COMPONENT_EXPORT(URL) extern const char kUrnScheme[];
+ COMPONENT_EXPORT(URL) extern const char kUuidInPackageScheme[];
  COMPONENT_EXPORT(URL) extern const char kWsScheme[];
- COMPONENT_EXPORT(URL) extern const char kWssScheme[];
 --- a/url/url_util.cc
 +++ b/url/url_util.cc
 @@ -63,7 +63,7 @@ struct SchemeRegistry {

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

@@ -46,7 +46,7 @@
  <script src="../../../../../ui/webui/resources/js/cr.js"></script>
 --- a/components/dom_distiller/content/browser/dom_distiller_viewer_source.cc
 +++ b/components/dom_distiller/content/browser/dom_distiller_viewer_source.cc
-@@ -300,7 +300,7 @@ bool DomDistillerViewerSource::ShouldSer
+@@ -298,7 +298,7 @@ bool DomDistillerViewerSource::ShouldSer
  std::string DomDistillerViewerSource::GetContentSecurityPolicy(
      network::mojom::CSPDirectiveName directive) {
    if (directive == network::mojom::CSPDirectiveName::StyleSrc) {

+ 3 - 2
patches/core/ungoogled-chromium/disable-gaia.patch

@@ -3,7 +3,7 @@
 
 --- a/google_apis/gaia/gaia_auth_fetcher.cc
 +++ b/google_apis/gaia/gaia_auth_fetcher.cc
-@@ -293,65 +293,6 @@ void GaiaAuthFetcher::CreateAndStartGaia
+@@ -293,66 +293,6 @@ void GaiaAuthFetcher::CreateAndStartGaia
      network::mojom::CredentialsMode credentials_mode,
      const net::NetworkTrafficAnnotationTag& traffic_annotation) {
    DCHECK(!fetch_pending_) << "Tried to fetch two things at once!";
@@ -13,7 +13,8 @@
 -  original_url_ = gaia_gurl;
 -
 -  if (credentials_mode != network::mojom::CredentialsMode::kOmit) {
--    DCHECK_EQ(GaiaUrls::GetInstance()->gaia_url(), gaia_gurl.GetOrigin())
+-    DCHECK_EQ(GaiaUrls::GetInstance()->gaia_url(),
+-              gaia_gurl.DeprecatedGetOriginAsURL())
 -        << gaia_gurl;
 -    url::Origin origin =
 -        url::Origin::Create(GaiaUrls::GetInstance()->gaia_url());

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

@@ -52,7 +52,7 @@
 -  periodic_checkin_ptr_factory_.InvalidateWeakPtrs();
 -
 -  base::TimeDelta time_to_next_checkin = GetTimeToNextCheckin();
--  if (time_to_next_checkin < base::TimeDelta())
+-  if (time_to_next_checkin.is_negative())
 -    time_to_next_checkin = base::TimeDelta();
 -
 -  io_task_runner_->PostDelayedTask(

+ 8 - 13
patches/core/ungoogled-chromium/disable-google-host-detection.patch

@@ -443,7 +443,7 @@
  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
-@@ -36,38 +36,7 @@ const char* kBufferTimerDelayParamName =
+@@ -24,38 +24,7 @@ const int kExtraBufferTimerDelayMillis =
  }  // namespace
  
  absl::optional<std::string> GetGoogleHostnamePrefix(const GURL& url) {
@@ -511,7 +511,7 @@
  namespace {
  
  // The result of checking whether a request to a URL should have variations
-@@ -238,29 +234,7 @@ class VariationsHeaderHelper {
+@@ -238,30 +234,7 @@ class VariationsHeaderHelper {
    VariationsHeaderHelper& operator=(const VariationsHeaderHelper&) = delete;
  
    bool AppendHeaderIfNeeded(const GURL& url, InIncognito incognito) {
@@ -533,8 +533,9 @@
 -    if (variations_header_.empty())
 -      return false;
 -
--    // Set the variations header to cors_exempt_headers rather than headers
--    // to be exempted from CORS checks.
+-    // Set the variations header to cors_exempt_headers rather than headers to
+-    // be exempted from CORS checks, and to avoid exposing the header to service
+-    // workers.
 -    resource_request_->cors_exempt_headers.SetHeaderIfMissing(
 -        kClientDataHeader, variations_header_);
 -    return true;
@@ -542,7 +543,7 @@
    }
  
   private:
-@@ -328,8 +302,6 @@ void RemoveVariationsHeaderIfNeeded(
+@@ -329,8 +302,6 @@ void RemoveVariationsHeaderIfNeeded(
      const net::RedirectInfo& redirect_info,
      const network::mojom::URLResponseHead& response_head,
      std::vector<std::string>* to_be_removed_headers) {
@@ -551,13 +552,7 @@
  }
  
  std::unique_ptr<network::SimpleURLLoader>
-@@ -359,14 +331,11 @@ CreateSimpleURLLoaderWithVariationsHeade
- }
- 
- bool IsVariationsHeader(const std::string& header_name) {
--  return header_name == kClientDataHeader ||
--         header_name == kOmniboxOnDeviceSuggestionsHeader;
-+  return false;
+@@ -360,9 +331,7 @@ CreateSimpleURLLoaderWithVariationsHeade
  }
  
  bool HasVariationsHeader(const network::ResourceRequest& request) {
@@ -568,7 +563,7 @@
  }
  
  bool ShouldAppendVariationsHeaderForTesting(
-@@ -377,12 +346,6 @@ bool ShouldAppendVariationsHeaderForTest
+@@ -373,12 +342,6 @@ bool ShouldAppendVariationsHeaderForTest
  
  void UpdateCorsExemptHeaderForVariations(
      network::mojom::NetworkContextParams* params) {

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

@@ -7,7 +7,7 @@
 
 --- a/chrome/BUILD.gn
 +++ b/chrome/BUILD.gn
-@@ -351,7 +351,6 @@ if (!is_android && !is_mac) {
+@@ -356,7 +356,6 @@ if (!is_android && !is_mac) {
      }
  
      data_deps += [

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

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

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

@@ -21,35 +21,6 @@
  }
  
  }  // namespace
---- a/components/safe_browsing/content/browser/client_side_model_loader.cc
-+++ b/components/safe_browsing/content/browser/client_side_model_loader.cc
-@@ -61,8 +61,6 @@ std::string ReadFileIntoString(base::Fil
- // Model Loader strings
- const size_t ModelLoader::kMaxModelSizeBytes = 150 * 1024;
- const int ModelLoader::kClientModelFetchIntervalMs = 3600 * 1000;
--const char ModelLoader::kClientModelUrlPrefix[] =
--    "https://ssl.gstatic.com/safebrowsing/csd/";
- const char ModelLoader::kClientModelNamePattern[] =
-     "client_model_v5%s_variation_%d.pb";
- #if !BUILDFLAG(FULL_SAFE_BROWSING)
-@@ -123,7 +121,7 @@ ModelLoader::ModelLoader(
-     scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory,
-     bool is_extended_reporting)
-     : name_(FillInModelName(is_extended_reporting, GetModelNumber())),
--      url_(kClientModelUrlPrefix + name_),
-+      url_("about:blank"),
-       update_renderers_callback_(update_renderers_callback),
-       url_loader_factory_(url_loader_factory),
-       last_client_model_status_(ClientModelStatus::MODEL_NEVER_FETCHED) {
-@@ -136,7 +134,7 @@ ModelLoader::ModelLoader(
-     scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory,
-     const std::string& model_name)
-     : name_(model_name),
--      url_(kClientModelUrlPrefix + name_),
-+      url_("about:blank"),
-       update_renderers_callback_(update_renderers_callback),
-       url_loader_factory_(url_loader_factory),
-       last_client_model_status_(ClientModelStatus::MODEL_NEVER_FETCHED) {
 --- a/rlz/lib/financial_ping.cc
 +++ b/rlz/lib/financial_ping.cc
 @@ -338,7 +338,7 @@ FinancialPing::PingResponse FinancialPin

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

@@ -1,6 +1,6 @@
 --- a/chrome/common/chrome_features.cc
 +++ b/chrome/common/chrome_features.cc
-@@ -323,12 +323,7 @@ const base::Feature kDesktopPWAsWebBundl
+@@ -333,12 +333,7 @@ const base::Feature kDesktopPWAsWebBundl
  // Enable DNS over HTTPS (DoH).
  const base::Feature kDnsOverHttps {
    "DnsOverHttps",
@@ -42,7 +42,7 @@
                             "https://public.dns.iij.jp/dns-query",
 --- a/services/network/public/cpp/features.cc
 +++ b/services/network/public/cpp/features.cc
-@@ -114,12 +114,7 @@ const base::Feature kSplitAuthCacheByNet
+@@ -107,12 +107,7 @@ const base::Feature kSplitAuthCacheByNet
  // Enable usage of hardcoded DoH upgrade mapping for use in automatic mode.
  const base::Feature kDnsOverHttpsUpgrade {
    "DnsOverHttpsUpgrade",

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

@@ -34,7 +34,7 @@
    deps = [
 --- a/third_party/devtools-frontend/src/BUILD.gn
 +++ b/third_party/devtools-frontend/src/BUILD.gn
-@@ -136,7 +136,6 @@ foreach(module_file, non_autostart_non_r
+@@ -109,7 +109,6 @@ foreach(module_file, non_autostart_non_r
  devtools_frontend_resources_deps = [
    ":build_release_devtools",
    "front_end",

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

@@ -1,6 +1,6 @@
 --- a/content/browser/BUILD.gn
 +++ b/content/browser/BUILD.gn
-@@ -1274,6 +1274,10 @@ source_set("browser") {
+@@ -1218,6 +1218,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",
-@@ -3034,10 +3038,6 @@ source_set("browser") {
+@@ -2983,10 +2987,6 @@ source_set("browser") {
  
    if (enable_reporting) {
      sources += [
@@ -37,7 +37,7 @@
    const std::string host_id_;
 --- a/content/public/common/content_switch_dependent_feature_overrides.cc
 +++ b/content/public/common/content_switch_dependent_feature_overrides.cc
-@@ -40,9 +40,11 @@ GetSwitchDependentFeatureOverrides(const
+@@ -36,9 +36,11 @@ GetSwitchDependentFeatureOverrides(const
        {switches::kEnableExperimentalWebPlatformFeatures,
         std::cref(features::kDocumentPolicyNegotiation),
         base::FeatureList::OVERRIDE_ENABLE_FEATURE},
@@ -51,7 +51,7 @@
         base::FeatureList::OVERRIDE_ENABLE_FEATURE},
 --- a/services/network/network_context.cc
 +++ b/services/network/network_context.cc
-@@ -1140,6 +1140,11 @@ void NetworkContext::QueueSignedExchange
+@@ -1145,6 +1145,11 @@ void NetworkContext::QueueSignedExchange
      const net::NetworkIsolationKey& network_isolation_key) {
    NOTREACHED();
  }
@@ -65,8 +65,8 @@
  void NetworkContext::ClearDomainReliability(
 --- a/services/network/network_context.h
 +++ b/services/network/network_context.h
-@@ -570,10 +570,10 @@ class COMPONENT_EXPORT(NETWORK_SERVICE)
-     return require_network_isolation_key_;
+@@ -578,10 +578,10 @@ class COMPONENT_EXPORT(NETWORK_SERVICE)
+     return cors_non_wildcard_request_headers_support_;
    }
  
 -#if BUILDFLAG(ENABLE_REPORTING)
@@ -87,7 +87,7 @@
  #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"
-@@ -2304,9 +2305,11 @@ const base::UnguessableToken& LocalFrame
+@@ -2325,9 +2326,11 @@ const base::UnguessableToken& LocalFrame
    return base::UnguessableToken::Null();
  }
  
@@ -109,7 +109,7 @@
  #include "services/device/public/mojom/device_posture_provider.mojom-blink-forward.h"
  #include "services/network/public/mojom/fetch_api.mojom-blink-forward.h"
  #include "third_party/blink/public/common/frame/frame_ad_evidence.h"
-@@ -546,7 +547,9 @@ class CORE_EXPORT LocalFrame final : pub
+@@ -548,7 +549,9 @@ class CORE_EXPORT LocalFrame final : pub
  
    SmoothScrollSequencer& GetSmoothScrollSequencer();
  

+ 156 - 119
patches/core/ungoogled-chromium/fix-building-without-safebrowsing.patch

@@ -2,7 +2,7 @@
 
 --- a/chrome/browser/BUILD.gn
 +++ b/chrome/browser/BUILD.gn
-@@ -1953,7 +1953,6 @@ static_library("browser") {
+@@ -1965,7 +1965,6 @@ static_library("browser") {
      "//chrome/browser/net:probe_message_proto",
      "//chrome/browser/new_tab_page/modules/drive:mojo_bindings",
      "//chrome/browser/new_tab_page/modules/photos:mojo_bindings",
@@ -10,7 +10,7 @@
      "//chrome/browser/new_tab_page/modules/task_module:mojo_bindings",
      "//chrome/browser/notifications",
      "//chrome/browser/notifications/scheduler:factory",
-@@ -3726,9 +3725,6 @@ static_library("browser") {
+@@ -3760,9 +3759,6 @@ static_library("browser") {
        "download/offline_item_model_manager_factory.h",
        "enterprise/connectors/analysis/analysis_service_settings.cc",
        "enterprise/connectors/analysis/analysis_service_settings.h",
@@ -20,7 +20,7 @@
        "enterprise/connectors/analysis/content_analysis_dialog.cc",
        "enterprise/connectors/analysis/content_analysis_dialog.h",
        "enterprise/connectors/analysis/content_analysis_downloads_delegate.cc",
-@@ -3978,10 +3974,6 @@ static_library("browser") {
+@@ -4003,10 +3999,6 @@ static_library("browser") {
        "new_tab_page/modules/photos/photos_service.h",
        "new_tab_page/modules/photos/photos_service_factory.cc",
        "new_tab_page/modules/photos/photos_service_factory.h",
@@ -31,7 +31,7 @@
        "new_tab_page/modules/task_module/task_module_handler.cc",
        "new_tab_page/modules/task_module/task_module_handler.h",
        "new_tab_page/modules/task_module/task_module_service.cc",
-@@ -7012,9 +7004,14 @@ static_library("browser") {
+@@ -7108,9 +7100,14 @@ static_library("browser") {
        "//components/safe_browsing/content/browser:safe_browsing_blocking_page",
        "//components/safe_browsing/content/browser/download:download_stats",
        "//components/safe_browsing/content/common:file_type_policies",
@@ -77,7 +77,7 @@
  
  // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch
  // of lacros-chrome is complete.
-@@ -5632,26 +5634,7 @@ ChromeContentBrowserClient::GetSafeBrows
+@@ -5645,26 +5647,7 @@ ChromeContentBrowserClient::GetSafeBrows
      const std::vector<std::string>& allowlist_domains) {
    DCHECK_CURRENTLY_ON(BrowserThread::IO);
  
@@ -105,7 +105,7 @@
  }
  
  safe_browsing::RealTimeUrlLookupServiceBase*
-@@ -5672,11 +5655,6 @@ ChromeContentBrowserClient::GetUrlLookup
+@@ -5685,11 +5668,6 @@ ChromeContentBrowserClient::GetUrlLookup
          GetForProfile(profile);
    }
  #endif
@@ -208,7 +208,7 @@
  using safe_browsing::DownloadProtectionService;
  using ConnectionType = net::NetworkChangeNotifier::ConnectionType;
  
-@@ -1517,8 +1516,6 @@ void ChromeDownloadManagerDelegate::OnDo
+@@ -1527,8 +1526,6 @@ void ChromeDownloadManagerDelegate::OnDo
      if (item->GetOriginalMimeType() == "application/x-x509-user-cert")
        DownloadItemModel(item).SetShouldPreferOpeningInBrowser(true);
  #endif
@@ -217,7 +217,7 @@
    }
    if (ShouldBlockFile(target_info->danger_type, item)) {
      MaybeReportDangerousDownloadBlocked(
-@@ -1670,7 +1667,6 @@ void ChromeDownloadManagerDelegate::Mayb
+@@ -1680,7 +1677,6 @@ void ChromeDownloadManagerDelegate::Mayb
      service->MaybeSendDangerousDownloadOpenedReport(download,
                                                      show_download_in_folder);
    }
@@ -225,7 +225,7 @@
    if (!download->GetAutoOpened()) {
      download::DownloadContent download_content =
          download::DownloadContentFromMimeType(download->GetMimeType(), false);
-@@ -1678,6 +1674,7 @@ void ChromeDownloadManagerDelegate::Mayb
+@@ -1688,6 +1684,7 @@ void ChromeDownloadManagerDelegate::Mayb
          download->GetDangerType(), download_content, base::Time::Now(),
          download->GetEndTime(), show_download_in_folder);
    }
@@ -233,7 +233,7 @@
  }
  
  void ChromeDownloadManagerDelegate::CheckDownloadAllowed(
-@@ -1754,30 +1751,6 @@ void ChromeDownloadManagerDelegate::Chec
+@@ -1764,30 +1761,6 @@ void ChromeDownloadManagerDelegate::Chec
      std::move(callback).Run(true);
      return;
    }
@@ -368,17 +368,17 @@
    // precedence.
 --- a/chrome/browser/enterprise/connectors/device_trust/signals/decorators/common/common_signals_decorator.cc
 +++ b/chrome/browser/enterprise/connectors/device_trust/signals/decorators/common/common_signals_decorator.cc
-@@ -38,9 +38,6 @@ void CommonSignalsDecorator::Decorate(Si
+@@ -32,9 +32,6 @@ void CommonSignalsDecorator::Decorate(Si
    // Get signals from policy values.
    signals.set_built_in_dns_client_enabled(
        enterprise_signals::utils::GetBuiltInDnsClientEnabled(local_state_));
 -  signals.set_safe_browsing_protection_level(static_cast<int32_t>(
 -      enterprise_signals::utils::GetSafeBrowsingProtectionLevel(
 -          profile_prefs_)));
-   signals.set_remote_desktop_available(
-       enterprise_signals::utils::GetChromeRemoteDesktopAppBlocked(
-           policy_blocklist_service_));
-@@ -58,15 +55,6 @@ void CommonSignalsDecorator::Decorate(Si
+ 
+   absl::optional<bool> third_party_blocking_enabled =
+       enterprise_signals::utils::GetThirdPartyBlockingEnabled(local_state_);
+@@ -49,15 +46,6 @@ void CommonSignalsDecorator::Decorate(Si
      signals.set_chrome_cleanup_enabled(chrome_cleanup_enabled.value());
    }
  
@@ -391,9 +391,9 @@
 -        static_cast<int32_t>(password_protection_warning_trigger.value()));
 -  }
 -
-   std::move(done_closure).Run();
- }
- 
+   auto callback =
+       base::BindOnce(&CommonSignalsDecorator::OnHardwareInfoRetrieved,
+                      weak_ptr_factory_.GetWeakPtr(), std::ref(signals),
 --- a/chrome/browser/enterprise/signals/context_info_fetcher.cc
 +++ b/chrome/browser/enterprise/signals/context_info_fetcher.cc
 @@ -169,7 +169,6 @@ void ContextInfoFetcher::Fetch(ContextIn
@@ -502,7 +502,7 @@
  }  // namespace utils
 --- a/chrome/browser/extensions/BUILD.gn
 +++ b/chrome/browser/extensions/BUILD.gn
-@@ -650,8 +650,6 @@ static_library("extensions") {
+@@ -646,8 +646,6 @@ static_library("extensions") {
      "menu_manager_factory.h",
      "navigation_observer.cc",
      "navigation_observer.h",
@@ -715,7 +715,15 @@
  #include "chrome/browser/extensions/pending_extension_manager.h"
  #include "chrome/browser/extensions/permissions_updater.h"
  #include "chrome/browser/extensions/shared_module_service.h"
-@@ -370,7 +369,6 @@ ExtensionService::ExtensionService(Profi
+@@ -206,7 +205,6 @@ void ExtensionService::BlocklistExtensio
+   blocklist_prefs::SetSafeBrowsingExtensionBlocklistState(
+       extension_id, BitMapBlocklistState::BLOCKLISTED_MALWARE,
+       extension_prefs_);
+-  OnBlocklistStateAdded(extension_id);
+ }
+ 
+ bool ExtensionService::OnExternalExtensionUpdateUrlFound(
+@@ -369,7 +367,6 @@ ExtensionService::ExtensionService(Profi
        safe_browsing_verdict_handler_(extension_prefs,
                                       ExtensionRegistry::Get(profile),
                                       this),
@@ -723,7 +731,7 @@
        registry_(ExtensionRegistry::Get(profile)),
        pending_extension_manager_(profile),
        install_directory_(install_directory),
-@@ -852,47 +850,6 @@ bool ExtensionService::IsExtensionEnable
+@@ -851,100 +848,6 @@ bool ExtensionService::IsExtensionEnable
    return extension_registrar_.IsExtensionEnabled(extension_id);
  }
  
@@ -731,56 +739,14 @@
 -    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 (!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) {
-@@ -909,56 +866,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) {
+-void ExtensionService::OnGreylistStateRemoved(const std::string& extension_id) {
 -  bool is_on_sb_list = (blocklist_prefs::GetSafeBrowsingExtensionBlocklistState(
 -                            extension_id, extension_prefs_) !=
 -                        BitMapBlocklistState::NOT_BLOCKLISTED);
@@ -797,9 +763,8 @@
 -                                    disable_reason::DISABLE_GREYLIST);
 -}
 -
--void ExtensionService::MaybeDisableGreylistedExtension(
--    const std::string& extension_id,
--    BitMapBlocklistState new_state) {
+-void ExtensionService::OnGreylistStateAdded(const std::string& extension_id,
+-                                            BitMapBlocklistState new_state) {
 -#if DCHECK_IS_ON()
 -  bool has_new_state_on_sb_list =
 -      (blocklist_prefs::GetSafeBrowsingExtensionBlocklistState(
@@ -825,9 +790,48 @@
 -  blocklist_prefs::UpdateCurrentGreylistStatesAsAcknowledged(extension_id,
 -                                                             extension_prefs_);
 -  DisableExtension(extension_id, disable_reason::DISABLE_GREYLIST);
- }
- 
+-}
+-
+-void ExtensionService::OnBlocklistStateRemoved(
+-    const std::string& extension_id) {
+-  if (blocklist_prefs::IsExtensionBlocklisted(extension_id, extension_prefs_)) {
+-    return;
+-  }
+-
+-  // Clear acknowledged state.
+-  blocklist_prefs::RemoveAcknowledgedBlocklistState(
+-      extension_id, BitMapBlocklistState::BLOCKLISTED_MALWARE,
+-      extension_prefs_);
+-
+-  scoped_refptr<const Extension> extension =
+-      registry_->blocklisted_extensions().GetByID(extension_id);
+-  DCHECK(extension);
+-  registry_->RemoveBlocklisted(extension_id);
+-  AddExtension(extension.get());
+-}
+-
+-void ExtensionService::OnBlocklistStateAdded(const std::string& extension_id) {
+-  DCHECK(
+-      blocklist_prefs::IsExtensionBlocklisted(extension_id, extension_prefs_));
+-  // The extension was already acknowledged by the user, it should already be in
+-  // the unloaded state.
+-  if (blocklist_prefs::HasAcknowledgedBlocklistState(
+-          extension_id, BitMapBlocklistState::BLOCKLISTED_MALWARE,
+-          extension_prefs_)) {
+-    DCHECK(base::Contains(registry_->blocklisted_extensions().GetIDs(),
+-                          extension_id));
+-    return;
+-  }
+-
+-  scoped_refptr<const Extension> extension =
+-      registry_->GetInstalledExtension(extension_id);
+-  registry_->AddBlocklisted(extension);
+-  UnloadExtension(extension_id, UnloadedExtensionReason::BLOCKLIST);
+-}
+-
  void ExtensionService::RemoveDisableReasonAndMaybeEnable(
+     const std::string& extension_id,
+     disable_reason::DisableReason reason_to_remove) {
 --- a/chrome/browser/extensions/extension_service.h
 +++ b/chrome/browser/extensions/extension_service.h
 @@ -25,7 +25,6 @@
@@ -838,7 +842,7 @@
  #include "chrome/browser/extensions/pending_extension_manager.h"
  #include "chrome/browser/extensions/safe_browsing_verdict_handler.h"
  #include "chrome/browser/profiles/profile_manager.h"
-@@ -269,28 +268,11 @@ class ExtensionService : public Extensio
+@@ -267,40 +266,11 @@ class ExtensionService : public Extensio
    // nothing.
    void EnableExtension(const std::string& extension_id);
  
@@ -846,14 +850,26 @@
 -  // 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);
+-  void OnGreylistStateRemoved(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);
+-  void OnGreylistStateAdded(const std::string& extension_id,
+-                            BitMapBlocklistState new_state);
+-
+-  // Takes Safe Browsing and Omaha malware blocklist states into account and
+-  // decides whether to remove the extension from the blocklist and reload it.
+-  // Called when a blocklisted extension is removed from the Safe Browsing
+-  // malware blocklist or Omaha malware blocklist. Also clears the acknowledged
+-  // state if the extension is reloaded.
+-  void OnBlocklistStateRemoved(const std::string& extension_id);
+-
+-  // Takes acknowledged malware blocklist state into account and decides whether
+-  // to add the extension to the blocklist and unload it. Called when the
+-  // extension is added to the Safe Browsing malware blocklist or the Omaha
+-  // malware blocklist.
+-  void OnBlocklistStateAdded(const std::string& extension_id);
 -
    // Removes the disable reason and enable the extension if there are no disable
    // reasons left and is not blocked for another reason.
@@ -867,19 +883,7 @@
    // 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
-@@ -562,11 +544,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);
- 
-@@ -639,8 +616,6 @@ class ExtensionService : public Extensio
+@@ -636,8 +606,6 @@ class ExtensionService : public Extensio
  
    SafeBrowsingVerdictHandler safe_browsing_verdict_handler_;
  
@@ -901,21 +905,35 @@
  bool ExtensionSystemImpl::FinishDelayedInstallationIfReady(
 --- a/chrome/browser/extensions/safe_browsing_verdict_handler.cc
 +++ b/chrome/browser/extensions/safe_browsing_verdict_handler.cc
-@@ -101,8 +101,6 @@ void SafeBrowsingVerdictHandler::UpdateG
+@@ -119,7 +119,6 @@ void SafeBrowsingVerdictHandler::UpdateB
+     blocklist_.Remove(id);
+     blocklist_prefs::SetSafeBrowsingExtensionBlocklistState(
+         id, BitMapBlocklistState::NOT_BLOCKLISTED, extension_prefs_);
+-    extension_service_->OnBlocklistStateRemoved(id);
+     UMA_HISTOGRAM_ENUMERATION("ExtensionBlacklist.UnblacklistInstalled",
+                               extension->location());
+   }
+@@ -133,7 +132,6 @@ void SafeBrowsingVerdictHandler::UpdateB
+     blocklist_.Insert(extension);
+     blocklist_prefs::SetSafeBrowsingExtensionBlocklistState(
+         id, BitMapBlocklistState::BLOCKLISTED_MALWARE, extension_prefs_);
+-    extension_service_->OnBlocklistStateAdded(id);
+     UMA_HISTOGRAM_ENUMERATION("ExtensionBlacklist.BlacklistInstalled",
+                               extension->location());
+   }
+@@ -157,7 +155,6 @@ void SafeBrowsingVerdictHandler::UpdateG
      blocklist_prefs::SetSafeBrowsingExtensionBlocklistState(
          extension->id(), BitMapBlocklistState::NOT_BLOCKLISTED,
          extension_prefs_);
--    extension_service_->ClearGreylistedAcknowledgedStateAndMaybeReenable(
--        extension->id());
+-    extension_service_->OnGreylistStateRemoved(extension->id());
      UMA_HISTOGRAM_ENUMERATION("Extensions.Greylist.Enabled",
                                extension->location());
    }
-@@ -125,8 +123,6 @@ void SafeBrowsingVerdictHandler::UpdateG
+@@ -177,7 +174,6 @@ void SafeBrowsingVerdictHandler::UpdateG
          blocklist_prefs::BlocklistStateToBitMapBlocklistState(greylist_state);
      blocklist_prefs::SetSafeBrowsingExtensionBlocklistState(
          extension->id(), bitmap_greylist_state, extension_prefs_);
--    extension_service_->MaybeDisableGreylistedExtension(id,
--                                                        bitmap_greylist_state);
+-    extension_service_->OnGreylistStateAdded(id, bitmap_greylist_state);
      UMA_HISTOGRAM_ENUMERATION("Extensions.Greylist.Disabled",
                                extension->location());
    }
@@ -930,7 +948,7 @@
  #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"
-@@ -299,83 +297,6 @@ BindResultCallbackToCurrentSequence(
+@@ -301,83 +299,6 @@ BindResultCallbackToCurrentSequence(
        base::SequencedTaskRunnerHandle::Get(), std::move(callback));
  }
  
@@ -1014,7 +1032,7 @@
  std::string GenerateLastPickedDirectoryKey(const std::string& id) {
    return id.empty() ? kDefaultLastPickedDirectoryKey
                      : base::StrCat({kCustomLastPickedDirectoryKey, "-", id});
-@@ -1106,28 +1027,6 @@ void ChromeFileSystemAccessPermissionCon
+@@ -1130,28 +1051,6 @@ void ChromeFileSystemAccessPermissionCon
                       std::move(callback)));
  }
  
@@ -1151,7 +1169,7 @@
  }
  
  #if !defined(OS_ANDROID)
-@@ -1365,9 +1346,11 @@ void ChromePasswordManagerClient::OnPast
+@@ -1366,9 +1347,11 @@ void ChromePasswordManagerClient::OnPast
    }
  
    was_on_paste_called_ = true;
@@ -1164,7 +1182,7 @@
  
  void ChromePasswordManagerClient::RenderFrameCreated(
      content::RenderFrameHost* render_frame_host) {
-@@ -1402,7 +1385,9 @@ void ChromePasswordManagerClient::OnInpu
+@@ -1403,7 +1386,9 @@ void ChromePasswordManagerClient::OnInpu
    if (key_event.windows_key_code == (ui::VKEY_V & 0x1f)) {
      OnPaste();
    } else {
@@ -1174,7 +1192,7 @@
    }
  #endif  // defined(OS_ANDROID)
  }
-@@ -1441,6 +1426,7 @@ bool ChromePasswordManagerClient::IsPass
+@@ -1442,6 +1427,7 @@ bool ChromePasswordManagerClient::IsPass
      is_enabled = false;
    }
  
@@ -1182,7 +1200,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
-@@ -1451,6 +1437,7 @@ bool ChromePasswordManagerClient::IsPass
+@@ -1452,6 +1438,7 @@ bool ChromePasswordManagerClient::IsPass
      observer->OnPasswordSaveOrAutofillDenied();
      is_enabled = false;
    }
@@ -1300,7 +1318,7 @@
    switch (request_type) {
 --- a/chrome/browser/prefs/browser_prefs.cc
 +++ b/chrome/browser/prefs/browser_prefs.cc
-@@ -243,7 +243,6 @@
+@@ -241,7 +241,6 @@
  #include "chrome/browser/nearby_sharing/common/nearby_share_prefs.h"
  #include "chrome/browser/new_tab_page/modules/drive/drive_service.h"
  #include "chrome/browser/new_tab_page/modules/photos/photos_service.h"
@@ -1308,7 +1326,7 @@
  #include "chrome/browser/new_tab_page/modules/task_module/task_module_service.h"
  #include "chrome/browser/new_tab_page/promos/promo_service.h"
  #include "chrome/browser/search/background/ntp_custom_background_service.h"
-@@ -1277,7 +1276,6 @@ void RegisterProfilePrefs(user_prefs::Pr
+@@ -1294,7 +1293,6 @@ void RegisterProfilePrefs(user_prefs::Pr
    NewTabPageHandler::RegisterProfilePrefs(registry);
    NewTabPageUI::RegisterProfilePrefs(registry);
    NewTabUI::RegisterProfilePrefs(registry);
@@ -1329,6 +1347,16 @@
  
    LookalikeUrlService* service = LookalikeUrlService::Get(profile_);
    if (service->EngagedSitesNeedUpdating()) {
+--- a/chrome/browser/resources/settings/privacy_page/privacy_review/privacy_review_page.ts
++++ b/chrome/browser/resources/settings/privacy_page/privacy_review/privacy_review_page.ts
+@@ -16,7 +16,6 @@ import './privacy_review_completion_frag
+ import './privacy_review_cookies_fragment.js';
+ import './privacy_review_history_sync_fragment.js';
+ import './privacy_review_msbb_fragment.js';
+-import './privacy_review_safe_browsing_fragment.js';
+ import './privacy_review_welcome_fragment.js';
+ import './step_indicator.js';
+ 
 --- a/chrome/browser/safe_browsing/metrics/safe_browsing_metrics_provider.cc
 +++ b/chrome/browser/safe_browsing/metrics/safe_browsing_metrics_provider.cc
 @@ -17,15 +17,6 @@ SafeBrowsingMetricsProvider::~SafeBrowsi
@@ -1492,6 +1520,15 @@
      "//components/safe_browsing/content/browser/password_protection",
      "//components/safe_browsing/content/browser/web_ui",
      "//components/safe_browsing/core/browser/db:database_manager",
+@@ -4397,8 +4396,6 @@ static_library("ui") {
+       "views/safe_browsing/password_reuse_modal_warning_dialog.h",
+       "views/safe_browsing/prompt_for_scanning_modal_dialog.cc",
+       "views/safe_browsing/prompt_for_scanning_modal_dialog.h",
+-      "views/safe_browsing/tailored_security_unconsented_modal.cc",
+-      "views/safe_browsing/tailored_security_unconsented_modal.h",
+       "views/send_tab_to_self/send_tab_to_self_bubble_device_button.cc",
+       "views/send_tab_to_self/send_tab_to_self_bubble_device_button.h",
+       "views/send_tab_to_self/send_tab_to_self_bubble_view_impl.cc",
 --- 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
 @@ -16,6 +16,7 @@
@@ -1522,8 +1559,8 @@
 +++ b/chrome/browser/ui/tab_contents/chrome_web_contents_view_handle_drop.cc
 @@ -11,7 +11,10 @@
  #include "base/task/post_task.h"
+ #include "base/task/task_runner_util.h"
  #include "base/task/thread_pool.h"
- #include "base/task_runner_util.h"
 +#include "components/safe_browsing/buildflags.h"
 +#if BUILDFLAG(FULL_SAFE_BROWSING)
  #include "chrome/browser/enterprise/connectors/analysis/content_analysis_delegate.h"
@@ -1580,7 +1617,7 @@
    if (!enterprise_connectors::ContentAnalysisDelegate::IsEnabled(
            profile, web_contents->GetLastCommittedURL(), &data, connector)) {
      std::move(callback).Run(
-@@ -154,4 +164,8 @@ void HandleOnPerformDrop(
+@@ -152,4 +162,8 @@ void HandleOnPerformDrop(
      std::move(callback).Run(
          content::WebContentsViewDelegate::DropCompletionResult::kContinue);
    }
@@ -1630,7 +1667,7 @@
  
 --- a/chrome/browser/ui/webui/downloads/downloads_dom_handler.cc
 +++ b/chrome/browser/ui/webui/downloads/downloads_dom_handler.cc
-@@ -366,7 +366,6 @@ void DownloadsDOMHandler::OpenDuringScan
+@@ -367,7 +367,6 @@ void DownloadsDOMHandler::OpenDuringScan
    if (download) {
      DownloadItemModel model(download);
      model.SetOpenWhenComplete(true);
@@ -1697,7 +1734,7 @@
                                 std::move(callback),
 --- a/chrome/test/BUILD.gn
 +++ b/chrome/test/BUILD.gn
-@@ -1196,7 +1196,6 @@ if (!is_android && !is_fuchsia) {
+@@ -1205,7 +1205,6 @@ if (!is_android && !is_fuchsia) {
        "//components/resources",
        "//components/safe_browsing:buildflags",
        "//components/safe_browsing/content/browser",
@@ -1705,7 +1742,7 @@
        "//components/safe_browsing/content/browser:safe_browsing_service",
        "//components/safe_browsing/content/browser/password_protection",
        "//components/safe_browsing/content/browser/password_protection:test_support",
-@@ -5349,7 +5348,6 @@ test("unit_tests") {
+@@ -5405,7 +5404,6 @@ test("unit_tests") {
      "//components/resources",
      "//components/safe_browsing:buildflags",
      "//components/safe_browsing/content/browser",
@@ -1772,17 +1809,6 @@
  }
  
  void PasswordReuseDetectionManager::SetClockForTesting(base::Clock* clock) {
---- a/components/safe_browsing/content/browser/BUILD.gn
-+++ b/components/safe_browsing/content/browser/BUILD.gn
-@@ -82,8 +82,6 @@ source_set("browser") {
-     "threat_details_cache.h",
-     "threat_details_history.cc",
-     "threat_details_history.h",
--    "user_population.cc",
--    "user_population.h",
-     "web_api_handshake_checker.cc",
-     "web_api_handshake_checker.h",
-   ]
 --- a/components/safe_browsing/content/common/proto/BUILD.gn
 +++ b/components/safe_browsing/content/common/proto/BUILD.gn
 @@ -5,8 +5,12 @@
@@ -1810,6 +1836,17 @@
  // Interface for setting the CSD model and to start phishing classification.
  interface PhishingDetector {
    // A classification model for client-side phishing detection.
+--- a/components/safe_browsing/core/browser/BUILD.gn
++++ b/components/safe_browsing/core/browser/BUILD.gn
+@@ -11,8 +11,6 @@ source_set("browser") {
+     "safe_browsing_url_checker_impl.cc",
+     "safe_browsing_url_checker_impl.h",
+     "url_checker_delegate.h",
+-    "user_population.cc",
+-    "user_population.h",
+   ]
+ 
+   public_deps = [ "//google_apis:google_apis" ]
 --- a/content/browser/file_system_access/safe_move_helper.cc
 +++ b/content/browser/file_system_access/safe_move_helper.cc
 @@ -150,14 +150,8 @@ void SafeMoveHelper::Start(SafeMoveHelpe
@@ -1895,7 +1932,7 @@
    // 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
+@@ -115,13 +115,6 @@ void UpdateService::OnEvent(Events event
        break;
    }
  
@@ -1911,7 +1948,7 @@
  UpdateService::UpdateService(
 --- a/weblayer/BUILD.gn
 +++ b/weblayer/BUILD.gn
-@@ -463,7 +463,6 @@ source_set("weblayer_lib_base") {
+@@ -461,7 +461,6 @@ source_set("weblayer_lib_base") {
      "//components/prefs",
      "//components/profile_metrics",
      "//components/safe_browsing/content/browser",

+ 113 - 122
patches/core/ungoogled-chromium/remove-unused-preferences-fields.patch

@@ -23,7 +23,7 @@
  // TODO(amalova): Make sure NetworkContextParams is configured correctly when
 --- a/chrome/app/settings_strings.grdp
 +++ b/chrome/app/settings_strings.grdp
-@@ -1591,78 +1591,9 @@
+@@ -1636,69 +1636,9 @@
    <message name="IDS_SETTINGS_NETWORK_PREDICTION_ENABLED_DESC_COOKIES_PAGE" desc="On the cookies page, the secondary text next to the checkbox that enables prediction of network actions.">
      Preloads pages that Chrome thinks you might visit. To do this, Chrome may use cookies, if you allow cookies, and may encrypt and send pages through Google to hide your identity from sites.
    </message>
@@ -33,9 +33,6 @@
 -  <message name="IDS_SETTINGS_SAFEBROWSING_ENABLEPROTECTION_DESC" desc="Checkbox label: should Chrome protect user and user's device from dangerous sites">
 -    Sends URLs of some pages you visit to Google, when your security is at risk
 -  </message>
--  <message name="IDS_SETTINGS_SAFEBROWSING_ENABLE_REPORTING" desc="The section title of the extended safe browsing checkbox to help improve safe browsing">
--    Help improve Chrome security
--  </message>
 -  <message name="IDS_SETTINGS_SAFEBROWSING_ENABLE_REPORTING_DESC" desc="Description for extended safe browsing">
 -    Sends URLs of some pages you visit, limited system information, and some page content to Google, to help discover new threats and protect everyone on the web.
 -  </message>
@@ -54,9 +51,6 @@
 -  <message name="IDS_SETTINGS_SAFEBROWSING_ENHANCED_BULLET_ONE" desc="First bullet point under the safe browsing enhanced protection mode">
 -    Predicts and warns you about dangerous events before they happen
 -  </message>
--  <message name="IDS_SETTINGS_SAFEBROWSING_ENHANCED_BULLET_TWO" desc="Second bullet point under the safe browsing enhanced protection mode">
--    Keeps you safe on Chrome and may be used to improve your security in other Google apps when you are signed in
--  </message>
 -  <message name="IDS_SETTINGS_SAFEBROWSING_ENHANCED_BULLET_THREE" desc="Third bullet point under the safe browsing enhanced protection mode">
 -    Improves security for you and everyone on the web
 -  </message>
@@ -78,9 +72,6 @@
 -  <message name="IDS_SETTINGS_SAFEBROWSING_STANDARD_BULLET_ONE" desc="First bullet point under the safe browsing standard protection mode">
 -    Detects and warns you about dangerous events when they happen
 -  </message>
--  <message name="IDS_SETTINGS_SAFEBROWSING_STANDARD_BULLET_TWO" desc="First bullet point under the safe browsing standard protection mode">
--    Checks URLs with a list of unsafe sites stored in Chrome. If a site tries to steal your password, or when you download a harmful file, Chrome may also send URLs, including bits of page content, to Safe Browsing.
--  </message>
 -  <message name="IDS_SETTINGS_SAFEBROWSING_STANDARD_HELP_IMPROVE" desc="The name of the toggle to enable reporting to help improve safe browsing">
 -    Help improve security on the web for everyone
 -  </message>
@@ -233,7 +224,7 @@
    user_manager::known_user::SetStringPref(
 --- a/chrome/browser/chrome_content_browser_client.cc
 +++ b/chrome/browser/chrome_content_browser_client.cc
-@@ -225,7 +225,6 @@
+@@ -226,7 +226,6 @@
  #include "components/safe_browsing/core/browser/realtime/url_lookup_service.h"
  #include "components/safe_browsing/core/browser/url_checker_delegate.h"
  #include "components/safe_browsing/core/common/features.h"
@@ -304,7 +295,7 @@
  #include "components/policy/core/common/cloud/user_cloud_policy_manager.h"
  #include "components/policy/core/common/policy_types.h"
 -#include "components/safe_browsing/core/common/safe_browsing_prefs.h"
- #include "components/signin/public/identity_manager/consent_level.h"
+ #include "components/signin/public/base/consent_level.h"
  #include "components/signin/public/identity_manager/identity_manager.h"
  #include "components/user_prefs/user_prefs.h"
 @@ -406,8 +405,7 @@ std::string ConnectorsService::GetManage
@@ -610,7 +601,7 @@
  #include "components/search_engines/default_search_manager.h"
  #include "components/spellcheck/browser/pref_names.h"
  #include "components/translate/core/browser/translate_pref_names.h"
-@@ -283,16 +282,6 @@ const PrefsUtil::TypedPrefMap& PrefsUtil
+@@ -287,16 +286,6 @@ const PrefsUtil::TypedPrefMap& PrefsUtil
        settings_api::PrefType::PREF_TYPE_BOOLEAN;
  
    // Security page
@@ -717,7 +708,7 @@
  #include "content/public/browser/browser_context.h"
  #include "content/public/browser/browser_thread.h"
  #include "content/public/browser/network_service_instance.h"
-@@ -741,13 +740,6 @@ void ProfileNetworkContextService::Confi
+@@ -759,13 +758,6 @@ void ProfileNetworkContextService::Confi
    network_context_params->enable_certificate_reporting = true;
    network_context_params->enable_expect_ct_reporting = true;
  
@@ -905,7 +896,7 @@
  }
 --- a/chrome/browser/policy/configuration_policy_handler_list_factory.cc
 +++ b/chrome/browser/policy/configuration_policy_handler_list_factory.cc
-@@ -83,12 +83,9 @@
+@@ -85,12 +85,9 @@
  #include "components/policy/core/common/schema.h"
  #include "components/policy/policy_constants.h"
  #include "components/proxy_config/proxy_policy_handler.h"
@@ -918,7 +909,7 @@
  #include "components/spellcheck/spellcheck_buildflags.h"
  #include "components/sync/base/pref_names.h"
  #include "components/sync/driver/sync_policy_handler.h"
-@@ -209,15 +206,6 @@ const PolicyToPreferenceMapEntry kSimple
+@@ -211,15 +208,6 @@ const PolicyToPreferenceMapEntry kSimple
    { key::kQuicAllowed,
      prefs::kQuicAllowed,
      base::Value::Type::BOOLEAN },
@@ -934,7 +925,7 @@
    { key::kUrlKeyedAnonymizedDataCollectionEnabled,
      unified_consent::prefs::kUrlKeyedAnonymizedDataCollectionEnabled,
      base::Value::Type::BOOLEAN },
-@@ -353,15 +341,6 @@ const PolicyToPreferenceMapEntry kSimple
+@@ -355,15 +343,6 @@ const PolicyToPreferenceMapEntry kSimple
    { key::kGloballyScopeHTTPAuthCacheEnabled,
      prefs::kGloballyScopeHTTPAuthCacheEnabled,
      base::Value::Type::BOOLEAN },
@@ -950,7 +941,7 @@
    { key::kSafeSitesFilterBehavior,
      policy_prefs::kSafeSitesFilterBehavior,
      base::Value::Type::INTEGER },
-@@ -470,18 +449,12 @@ const PolicyToPreferenceMapEntry kSimple
+@@ -472,18 +451,12 @@ const PolicyToPreferenceMapEntry kSimple
    { key::kMaxConnectionsPerProxy,
      prefs::kMaxConnectionsPerProxy,
      base::Value::Type::INTEGER },
@@ -969,7 +960,7 @@
    { key::kCECPQ2Enabled,
      prefs::kCECPQ2Enabled,
      base::Value::Type::BOOLEAN },
-@@ -684,9 +657,6 @@ const PolicyToPreferenceMapEntry kSimple
+@@ -683,9 +656,6 @@ const PolicyToPreferenceMapEntry kSimple
    { key::kIntranetRedirectBehavior,
      omnibox::kIntranetRedirectBehavior,
      base::Value::Type::INTEGER },
@@ -979,7 +970,7 @@
    { key::kAccessibilityImageLabelsEnabled,
      prefs::kAccessibilityImageLabelsEnabled,
      base::Value::Type::BOOLEAN },
-@@ -1642,8 +1612,6 @@ std::unique_ptr<ConfigurationPolicyHandl
+@@ -1665,8 +1635,6 @@ std::unique_ptr<ConfigurationPolicyHandl
    handlers->AddHandler(std::make_unique<JavascriptPolicyHandler>());
    handlers->AddHandler(std::make_unique<NetworkPredictionPolicyHandler>());
    handlers->AddHandler(std::make_unique<RestoreOnStartupPolicyHandler>());
@@ -988,7 +979,7 @@
    handlers->AddHandler(std::make_unique<SimpleDeprecatingPolicyHandler>(
        std::make_unique<SimplePolicyHandler>(key::kAuthServerWhitelist,
                                              prefs::kAuthServerAllowlist,
-@@ -1667,9 +1635,6 @@ std::unique_ptr<ConfigurationPolicyHandl
+@@ -1690,9 +1658,6 @@ std::unique_ptr<ConfigurationPolicyHandl
            key::kWindowOcclusionEnabled,
            policy::policy_prefs::kNativeWindowOcclusionEnabled,
            base::Value::Type::BOOLEAN)));
@@ -998,7 +989,7 @@
    handlers->AddHandler(std::make_unique<syncer::SyncPolicyHandler>());
    handlers->AddHandler(std::make_unique<BrowsingHistoryPolicyHandler>());
  
-@@ -1762,12 +1727,6 @@ std::unique_ptr<ConfigurationPolicyHandl
+@@ -1783,12 +1748,6 @@ std::unique_ptr<ConfigurationPolicyHandl
            key::kOnSecurityEventEnterpriseConnector,
            enterprise_connectors::kOnSecurityEventPref,
            enterprise_connectors::kOnSecurityEventScopePref, chrome_schema));
@@ -1011,7 +1002,7 @@
  
    handlers->AddHandler(std::make_unique<BrowsingDataLifetimePolicyHandler>(
        key::kClearBrowsingDataOnExitList,
-@@ -1806,17 +1765,6 @@ std::unique_ptr<ConfigurationPolicyHandl
+@@ -1827,17 +1786,6 @@ std::unique_ptr<ConfigurationPolicyHandl
    signin_legacy_policies.push_back(std::make_unique<SimplePolicyHandler>(
        key::kForceBrowserSignin, prefs::kForceBrowserSignin,
        base::Value::Type::BOOLEAN));
@@ -1031,7 +1022,7 @@
        std::make_unique<BrowserSigninPolicyHandler>(chrome_schema)));
 --- a/chrome/browser/prefs/browser_prefs.cc
 +++ b/chrome/browser/prefs/browser_prefs.cc
-@@ -139,7 +139,6 @@
+@@ -135,7 +135,6 @@
  #include "components/prefs/pref_service.h"
  #include "components/privacy_sandbox/privacy_sandbox_prefs.h"
  #include "components/proxy_config/pref_proxy_config_tracker_impl.h"
@@ -1039,7 +1030,7 @@
  #include "components/search_engines/template_url_prepopulate_data.h"
  #include "components/security_interstitials/content/insecure_form_blocking_page.h"
  #include "components/security_interstitials/content/stateful_ssl_host_state_delegate.h"
-@@ -921,7 +920,6 @@ void RegisterLocalState(PrefRegistrySimp
+@@ -940,7 +939,6 @@ void RegisterLocalState(PrefRegistrySimp
    ProfileNetworkContextService::RegisterLocalStatePrefs(registry);
    profiles::RegisterPrefs(registry);
    RegisterScreenshotPrefs(registry);
@@ -1047,7 +1038,7 @@
    secure_origin_allowlist::RegisterPrefs(registry);
  #if !defined(OS_ANDROID)
    SerialPolicyAllowedPorts::RegisterPrefs(registry);
-@@ -1171,7 +1169,6 @@ void RegisterProfilePrefs(user_prefs::Pr
+@@ -1188,7 +1186,6 @@ void RegisterProfilePrefs(user_prefs::Pr
    PushMessagingAppIdentifier::RegisterProfilePrefs(registry);
    QuietNotificationPermissionUiState::RegisterProfilePrefs(registry);
    RegisterBrowserUserPrefs(registry);
@@ -1146,14 +1137,14 @@
    EXPECT_FALSE(prefs->GetBoolean(prefs::kSearchSuggestEnabled));
 --- a/chrome/browser/profiles/gaia_info_update_service.cc
 +++ b/chrome/browser/profiles/gaia_info_update_service.cc
-@@ -19,7 +19,6 @@
- #include "chrome/common/pref_names.h"
+@@ -20,7 +20,6 @@
  #include "components/prefs/pref_service.h"
  #include "components/signin/public/base/avatar_icon_util.h"
+ #include "components/signin/public/base/consent_level.h"
 -#include "components/signin/public/base/signin_pref_names.h"
  #include "components/signin/public/identity_manager/account_info.h"
  #include "components/signin/public/identity_manager/accounts_in_cookie_jar_info.h"
- #include "components/signin/public/identity_manager/consent_level.h"
+ #include "content/public/browser/notification_details.h"
 --- a/chrome/browser/profiles/gaia_info_update_service_unittest.cc
 +++ b/chrome/browser/profiles/gaia_info_update_service_unittest.cc
 @@ -27,7 +27,6 @@
@@ -1183,7 +1174,7 @@
  }
  
  size_t ProfileAttributesEntry::GetAvatarIconIndex() const {
-@@ -672,9 +671,6 @@ void ProfileAttributesEntry::SetLastDown
+@@ -670,9 +669,6 @@ void ProfileAttributesEntry::SetLastDown
  }
  
  void ProfileAttributesEntry::SetSignedInWithCredentialProvider(bool value) {
@@ -1224,15 +1215,15 @@
  #include "components/spellcheck/spellcheck_buildflags.h"
 --- a/chrome/browser/profiles/profile_manager.cc
 +++ b/chrome/browser/profiles/profile_manager.cc
-@@ -94,7 +94,6 @@
- #include "components/search_engines/default_search_manager.h"
+@@ -96,7 +96,6 @@
+ #include "components/signin/public/base/consent_level.h"
  #include "components/signin/public/base/signin_buildflags.h"
  #include "components/signin/public/base/signin_metrics.h"
 -#include "components/signin/public/base/signin_pref_names.h"
- #include "components/signin/public/identity_manager/consent_level.h"
  #include "components/signin/public/identity_manager/identity_manager.h"
  #include "components/signin/public/identity_manager/primary_account_mutator.h"
-@@ -2105,8 +2104,7 @@ void ProfileManager::AddProfileToStorage
+ #include "components/sync/base/stop_source.h"
+@@ -2104,8 +2103,7 @@ void ProfileManager::AddProfileToStorage
        entry->SetAuthInfo(account_info.gaia, username,
                           is_consented_primary_account);
  
@@ -1242,7 +1233,7 @@
  
  #if !defined(OS_ANDROID) && !BUILDFLAG(IS_CHROMEOS_ASH)
        // Sign out if force-sign-in policy is enabled and profile is not signed
-@@ -2161,14 +2159,13 @@ void ProfileManager::AddProfileToStorage
+@@ -2160,14 +2158,13 @@ void ProfileManager::AddProfileToStorage
  
    init_params.is_ephemeral = IsEphemeral(profile);
    init_params.is_signed_in_with_credential_provider =
@@ -1306,7 +1297,7 @@
            <settings-subpage page-title="$i18n{siteSettingsAds}"
 --- a/chrome/browser/resources/settings/privacy_page/privacy_page.ts
 +++ b/chrome/browser/resources/settings/privacy_page/privacy_page.ts
-@@ -90,7 +90,7 @@ export class SettingsPrivacyPageElement
+@@ -85,7 +85,7 @@ export class SettingsPrivacyPageElement
        enableSafeBrowsingSubresourceFilter_: {
          type: Boolean,
          value() {
@@ -1434,7 +1425,7 @@
 -    </template>
 --- a/chrome/browser/resources/settings/privacy_page/security_page.ts
 +++ b/chrome/browser/resources/settings/privacy_page/security_page.ts
-@@ -182,15 +182,6 @@ export class SettingsSecurityPageElement
+@@ -176,15 +176,6 @@ export class SettingsSecurityPageElement
  
    ready() {
      super.ready();
@@ -1450,7 +1441,7 @@
    }
  
    /**
-@@ -239,8 +230,7 @@ export class SettingsSecurityPageElement
+@@ -233,8 +224,7 @@ export class SettingsSecurityPageElement
    }
  
    private getDisabledExtendedSafeBrowsing_(): boolean {
@@ -1488,9 +1479,9 @@
  #include "components/prefs/pref_service.h"
  #include "components/safe_browsing/core/common/features.h"
 -#include "components/safe_browsing/core/common/safe_browsing_prefs.h"
+ #include "components/signin/public/base/consent_level.h"
  #include "components/signin/public/identity_manager/account_info.h"
  #include "components/signin/public/identity_manager/accounts_mutator.h"
- #include "components/signin/public/identity_manager/consent_level.h"
 @@ -63,9 +62,7 @@ void AdvancedProtectionStatusManager::Ma
  
    is_under_advanced_protection_ = core_info.is_under_advanced_protection;
@@ -1604,7 +1595,7 @@
  #include "components/safe_browsing/core/common/safebrowsing_constants.h"
  #include "components/safe_browsing/core/common/utils.h"
  #include "components/security_interstitials/content/unsafe_resource_util.h"
-@@ -1220,14 +1219,6 @@ bool ChromePasswordProtectionService::Ha
+@@ -1219,14 +1218,6 @@ bool ChromePasswordProtectionService::Ha
  }
  
  void ChromePasswordProtectionService::OnWarningTriggerChanged() {
@@ -1619,7 +1610,7 @@
    // Clears captured enterprise password hashes or GSuite sync password hashes.
    password_manager::PasswordReuseManager* reuse_manager =
        GetPasswordReuseManager();
-@@ -1385,7 +1376,7 @@ PrefService* ChromePasswordProtectionSer
+@@ -1384,7 +1375,7 @@ PrefService* ChromePasswordProtectionSer
  }
  
  bool ChromePasswordProtectionService::IsSafeBrowsingEnabled() {
@@ -1628,7 +1619,7 @@
  }
  
  bool ChromePasswordProtectionService::IsExtendedReporting() {
-@@ -1405,44 +1396,7 @@ bool ChromePasswordProtectionService::Is
+@@ -1404,44 +1395,7 @@ bool ChromePasswordProtectionService::Is
  bool ChromePasswordProtectionService::IsPingingEnabled(
      LoginReputationClientRequest::TriggerType trigger_type,
      ReusedPasswordAccountType password_type) {
@@ -1674,7 +1665,7 @@
  }
  
  RequestOutcome ChromePasswordProtectionService::GetPingNotSentReason(
-@@ -1661,22 +1615,6 @@ MaybeCreateNavigationThrottle(content::N
+@@ -1665,22 +1619,6 @@ MaybeCreateNavigationThrottle(content::N
                   : nullptr;
  }
  
@@ -1699,7 +1690,7 @@
    if (!profile_)
 --- a/chrome/browser/safe_browsing/chrome_password_protection_service.h
 +++ b/chrome/browser/safe_browsing/chrome_password_protection_service.h
-@@ -211,13 +211,6 @@ class ChromePasswordProtectionService :
+@@ -212,13 +212,6 @@ class ChromePasswordProtectionService :
    bool UserClickedThroughSBInterstitial(
        PasswordProtectionRequest* request) override;
  
@@ -1980,7 +1971,7 @@
  
 --- a/chrome/browser/safe_browsing/safe_browsing_blocking_page_test.cc
 +++ b/chrome/browser/safe_browsing/safe_browsing_blocking_page_test.cc
-@@ -74,7 +74,6 @@
+@@ -77,7 +77,6 @@
  #include "components/safe_browsing/core/browser/safe_browsing_metrics_collector.h"
  #include "components/safe_browsing/core/browser/verdict_cache_manager.h"
  #include "components/safe_browsing/core/common/features.h"
@@ -1990,7 +1981,7 @@
  #include "components/security_interstitials/content/security_interstitial_tab_helper.h"
 --- a/chrome/browser/safe_browsing/safe_browsing_service.cc
 +++ b/chrome/browser/safe_browsing/safe_browsing_service.cc
-@@ -103,7 +103,6 @@ base::FilePath SafeBrowsingService::GetB
+@@ -121,7 +121,6 @@ base::FilePath SafeBrowsingService::GetB
  
  SafeBrowsingService::SafeBrowsingService()
      : services_delegate_(ServicesDelegate::Create(this)),
@@ -1998,7 +1989,7 @@
        shutdown_(false),
        enabled_(false),
        enabled_by_prefs_(false) {}
-@@ -257,8 +256,6 @@ TriggerManager* SafeBrowsingService::tri
+@@ -256,8 +255,6 @@ TriggerManager* SafeBrowsingService::tri
  
  PasswordProtectionService* SafeBrowsingService::GetPasswordProtectionService(
      Profile* profile) const {
@@ -2007,7 +1998,7 @@
    return nullptr;
  }
  
-@@ -387,9 +384,6 @@ void SafeBrowsingService::OnProfileAdded
+@@ -381,9 +378,6 @@ void SafeBrowsingService::OnProfileAdded
    std::unique_ptr<PrefChangeRegistrar> registrar =
        std::make_unique<PrefChangeRegistrar>();
    registrar->Init(pref_service);
@@ -2017,7 +2008,7 @@
    // ClientSideDetectionService will need to be refresh the models
    // renderers have if extended-reporting changes.
    registrar->Add(prefs::kSafeBrowsingScoutReportingEnabled,
-@@ -418,14 +412,6 @@ void SafeBrowsingService::OnProfileAdded
+@@ -412,14 +406,6 @@ void SafeBrowsingService::OnProfileAdded
                            NoCachedPopulationReason::kChangeMbbPref));
    user_population_prefs_[pref_service] = std::move(registrar);
  
@@ -2032,7 +2023,7 @@
    // Extended Reporting metrics are handled together elsewhere.
    RecordExtendedReportingMetrics(*pref_service);
  
-@@ -465,18 +451,6 @@ void SafeBrowsingService::RefreshState()
+@@ -461,18 +447,6 @@ void SafeBrowsingService::RefreshState()
  
    // Check if any profile requires the service to be active.
    enabled_by_prefs_ = false;
@@ -2077,7 +2068,7 @@
    // Get current enabled status. Must be called on IO thread.
    bool enabled() const {
      DCHECK_CURRENTLY_ON(content::BrowserThread::IO);
-@@ -287,10 +277,6 @@ class SafeBrowsingService : public SafeB
+@@ -280,10 +270,6 @@ class SafeBrowsingService : public SafeB
    // Provides phishing and malware statistics. Accessed on UI thread.
    std::unique_ptr<PingManager> ping_manager_;
  
@@ -2333,17 +2324,17 @@
    // Display the signin promo if the user is not signed in.
 --- a/chrome/browser/signin/signin_ui_util.cc
 +++ b/chrome/browser/signin/signin_ui_util.cc
-@@ -34,7 +34,6 @@
- #include "components/feature_engagement/public/tracker.h"
+@@ -35,7 +35,6 @@
  #include "components/prefs/pref_service.h"
+ #include "components/signin/public/base/consent_level.h"
  #include "components/signin/public/base/signin_metrics.h"
 -#include "components/signin/public/base/signin_pref_names.h"
  #include "components/signin/public/identity_manager/account_info.h"
  #include "components/signin/public/identity_manager/accounts_in_cookie_jar_info.h"
- #include "components/signin/public/identity_manager/consent_level.h"
+ #include "components/signin/public/identity_manager/identity_manager.h"
 --- a/chrome/browser/signin/signin_util.cc
 +++ b/chrome/browser/signin/signin_util.cc
-@@ -30,7 +30,6 @@
+@@ -31,7 +31,6 @@
  #include "components/google/core/common/google_util.h"
  #include "components/prefs/pref_service.h"
  #include "components/signin/public/base/signin_metrics.h"
@@ -2351,7 +2342,7 @@
  #include "components/signin/public/identity_manager/identity_manager.h"
  #include "components/signin/public/identity_manager/identity_utils.h"
  #include "components/signin/public/identity_manager/primary_account_mutator.h"
-@@ -232,7 +231,7 @@ void EnsurePrimaryAccountAllowedForProfi
+@@ -235,7 +234,7 @@ void EnsurePrimaryAccountAllowedForProfi
  
    CoreAccountInfo primary_account =
        identity_manager->GetPrimaryAccountInfo(signin::ConsentLevel::kSync);
@@ -2443,7 +2434,7 @@
  }
 --- a/chrome/browser/ssl/ssl_browsertest.cc
 +++ b/chrome/browser/ssl/ssl_browsertest.cc
-@@ -94,7 +94,6 @@
+@@ -93,7 +93,6 @@
  #include "components/policy/policy_constants.h"
  #include "components/prefs/testing_pref_service.h"
  #include "components/safe_browsing/core/common/features.h"
@@ -2510,7 +2501,7 @@
  #include "content/public/browser/native_web_keyboard_event.h"
  #include "content/public/browser/navigation_controller.h"
  #include "content/public/browser/navigation_entry.h"
-@@ -184,10 +183,6 @@ BrowserCommandController::BrowserCommand
+@@ -202,10 +201,6 @@ BrowserCommandController::BrowserCommand
            &BrowserCommandController::UpdateCommandsForFullscreenMode,
            base::Unretained(this)));
  #endif
@@ -2521,7 +2512,7 @@
  
    InitCommandState();
  
-@@ -1526,7 +1521,7 @@ void BrowserCommandController::UpdateSho
+@@ -1543,7 +1538,7 @@ void BrowserCommandController::UpdateSho
      return;
  
    command_updater_.UpdateCommandEnabled(
@@ -2529,10 +2520,10 @@
 +      IDC_SHOW_SIGNIN, false);
  }
  
- // static
+ void BrowserCommandController::UpdateReloadStopState(bool is_loading,
 --- a/chrome/browser/ui/browser_command_controller.h
 +++ b/chrome/browser/ui/browser_command_controller.h
-@@ -211,7 +211,6 @@ class BrowserCommandController : public
+@@ -208,7 +208,6 @@ class BrowserCommandController : public
  
    PrefChangeRegistrar profile_pref_registrar_;
    PrefChangeRegistrar local_pref_registrar_;
@@ -2613,7 +2604,7 @@
    // this will not include content setting exceptions set via permission
 --- a/chrome/browser/ui/views/page_info/page_info_bubble_view_sync_browsertest.cc
 +++ b/chrome/browser/ui/views/page_info/page_info_bubble_view_sync_browsertest.cc
-@@ -20,7 +20,6 @@
+@@ -19,7 +19,6 @@
  #include "components/password_manager/core/browser/password_manager_metrics_util.h"
  #include "components/safe_browsing/content/browser/password_protection/password_protection_test_util.h"
  #include "components/safe_browsing/core/browser/password_protection/metrics_util.h"
@@ -2623,14 +2614,14 @@
  #include "components/signin/public/identity_manager/identity_test_utils.h"
 --- a/chrome/browser/ui/views/profiles/profile_menu_view.cc
 +++ b/chrome/browser/ui/views/profiles/profile_menu_view.cc
-@@ -53,7 +53,6 @@
- #include "chrome/grit/generated_resources.h"
+@@ -54,7 +54,6 @@
  #include "chrome/grit/theme_resources.h"
  #include "components/signin/core/browser/signin_error_controller.h"
+ #include "components/signin/public/base/consent_level.h"
 -#include "components/signin/public/base/signin_pref_names.h"
- #include "components/signin/public/identity_manager/consent_level.h"
  #include "components/signin/public/identity_manager/primary_account_mutator.h"
  #include "components/strings/grit/components_strings.h"
+ #include "components/vector_icons/vector_icons.h"
 @@ -501,7 +500,6 @@ void ProfileMenuView::BuildAutofillButto
  
  void ProfileMenuView::BuildSyncInfo() {
@@ -2641,14 +2632,14 @@
    signin::IdentityManager* identity_manager =
 --- a/chrome/browser/ui/views/profiles/profile_menu_view_browsertest.cc
 +++ b/chrome/browser/ui/views/profiles/profile_menu_view_browsertest.cc
-@@ -55,7 +55,6 @@
- #include "components/feature_engagement/public/tracker.h"
+@@ -56,7 +56,6 @@
  #include "components/feature_engagement/test/test_tracker.h"
  #include "components/prefs/pref_service.h"
+ #include "components/signin/public/base/consent_level.h"
 -#include "components/signin/public/base/signin_pref_names.h"
- #include "components/signin/public/identity_manager/consent_level.h"
  #include "components/signin/public/identity_manager/identity_test_utils.h"
  #include "components/sync/driver/sync_service.h"
+ #include "components/sync/driver/sync_user_settings.h"
 --- a/chrome/browser/ui/views/safe_browsing/password_reuse_modal_warning_dialog.cc
 +++ b/chrome/browser/ui/views/safe_browsing/password_reuse_modal_warning_dialog.cc
 @@ -122,7 +122,6 @@ PasswordReuseModalWarningDialog::Passwor
@@ -2746,6 +2737,25 @@
  #include "content/public/browser/browser_thread.h"
  #include "content/public/browser/download_manager.h"
  #include "content/public/browser/render_process_host.h"
+--- a/chrome/browser/ui/webui/history/history_ui.cc
++++ b/chrome/browser/ui/webui/history/history_ui.cc
+@@ -38,7 +38,6 @@
+ #include "components/history_clusters/core/history_clusters_prefs.h"
+ #include "components/history_clusters/core/memories_features.h"
+ #include "components/prefs/pref_service.h"
+-#include "components/signin/public/base/signin_pref_names.h"
+ #include "components/signin/public/identity_manager/identity_manager.h"
+ #include "components/strings/grit/components_strings.h"
+ #include "content/public/browser/web_ui.h"
+@@ -121,8 +120,6 @@ content::WebUIDataSource* CreateHistoryU
+   source->AddBoolean("allowDeletingHistory", allow_deleting_history);
+ 
+   source->AddBoolean("isGuestSession", profile->IsGuestSession());
+-  source->AddBoolean("isSignInAllowed",
+-                     prefs->GetBoolean(prefs::kSigninAllowed));
+ 
+   source->AddBoolean(kIsUserSignedInKey, IsUserSignedIn(profile));
+ 
 --- a/chrome/browser/ui/webui/management/management_ui_handler.cc
 +++ b/chrome/browser/ui/webui/management/management_ui_handler.cc
 @@ -29,7 +29,6 @@
@@ -2800,14 +2810,14 @@
  #include "components/user_prefs/user_prefs.h"
 --- a/chrome/browser/ui/webui/settings/people_handler.cc
 +++ b/chrome/browser/ui/webui/settings/people_handler.cc
-@@ -41,7 +41,6 @@
- #include "components/prefs/pref_service.h"
+@@ -42,7 +42,6 @@
  #include "components/signin/core/browser/signin_error_controller.h"
+ #include "components/signin/public/base/consent_level.h"
  #include "components/signin/public/base/signin_metrics.h"
 -#include "components/signin/public/base/signin_pref_names.h"
  #include "components/signin/public/identity_manager/accounts_mutator.h"
- #include "components/signin/public/identity_manager/consent_level.h"
  #include "components/signin/public/identity_manager/identity_manager.h"
+ #include "components/signin/public/identity_manager/primary_account_mutator.h"
 @@ -290,10 +289,6 @@ void PeopleHandler::RegisterMessages() {
  void PeopleHandler::OnJavascriptAllowed() {
    PrefService* prefs = profile_->GetPrefs();
@@ -2831,7 +2841,7 @@
  #include "content/public/browser/browser_context.h"
 --- a/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc
 +++ b/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc
-@@ -67,7 +67,6 @@
+@@ -68,7 +68,6 @@
  #include "components/password_manager/core/browser/manage_passwords_referrer.h"
  #include "components/password_manager/core/common/password_manager_features.h"
  #include "components/prefs/pref_service.h"
@@ -2839,12 +2849,10 @@
  #include "components/signin/public/base/signin_buildflags.h"
  #include "components/strings/grit/components_chromium_strings.h"
  #include "components/strings/grit/components_strings.h"
-@@ -1391,46 +1390,6 @@ void AddPrivacyStrings(content::WebUIDat
+@@ -1402,44 +1401,6 @@ void AddPrivacyStrings(content::WebUIDat
      {"clearBrowsingData", IDS_SETTINGS_CLEAR_BROWSING_DATA},
      {"clearBrowsingDataDescription", IDS_SETTINGS_CLEAR_DATA_DESCRIPTION},
      {"titleAndCount", IDS_SETTINGS_TITLE_AND_COUNT},
--    {"safeBrowsingEnableExtendedReporting",
--     IDS_SETTINGS_SAFEBROWSING_ENABLE_REPORTING},
 -    {"safeBrowsingEnableExtendedReportingDesc",
 -     IDS_SETTINGS_SAFEBROWSING_ENABLE_REPORTING_DESC},
 -    {"safeBrowsingEnhanced", IDS_SETTINGS_SAFEBROWSING_ENHANCED},
@@ -2886,7 +2894,7 @@
      {"safeBrowsingSectionLabel", IDS_SETTINGS_SAFEBROWSING_SECTION_LABEL},
      {"syncAndGoogleServicesPrivacyDescription",
       IDS_SETTINGS_SYNC_AND_GOOGLE_SERVICES_PRIVACY_DESC_UNIFIED_CONSENT},
-@@ -2626,11 +2585,6 @@ void AddSiteSettingsStrings(content::Web
+@@ -2673,11 +2634,6 @@ void AddSiteSettingsStrings(content::Web
    html_source->AddLocalizedStrings(kSensorsLocalizedStrings);
  
    html_source->AddBoolean(
@@ -2908,7 +2916,7 @@
  #include "content/public/browser/url_data_source.h"
  #include "content/public/browser/web_contents.h"
  #include "content/public/browser/web_ui.h"
-@@ -274,9 +273,7 @@ SettingsUI::SettingsUI(content::WebUI* w
+@@ -270,9 +269,7 @@ SettingsUI::SettingsUI(content::WebUI* w
            ? "enable-branding-update"
            : "");
  
@@ -3363,7 +3371,7 @@
  
 --- a/components/safe_browsing/content/browser/ui_manager.cc
 +++ b/components/safe_browsing/content/browser/ui_manager.cc
-@@ -18,7 +18,6 @@
+@@ -17,7 +17,6 @@
  #include "components/safe_browsing/core/browser/db/v4_protocol_manager_util.h"
  #include "components/safe_browsing/core/browser/ping_manager.h"
  #include "components/safe_browsing/core/common/features.h"
@@ -3441,7 +3449,7 @@
  
 --- a/components/safe_browsing/core/browser/db/v4_local_database_manager.cc
 +++ b/components/safe_browsing/core/browser/db/v4_local_database_manager.cc
-@@ -337,10 +337,9 @@ const V4LocalDatabaseManager*
+@@ -334,10 +334,9 @@ const V4LocalDatabaseManager*
  scoped_refptr<V4LocalDatabaseManager> V4LocalDatabaseManager::Create(
      const base::FilePath& base_path,
      scoped_refptr<base::SequencedTaskRunner> ui_task_runner,
@@ -3454,7 +3462,7 @@
        std::move(io_task_runner), nullptr));
  }
  
-@@ -363,14 +362,12 @@ void V4LocalDatabaseManager::CollectData
+@@ -360,14 +359,12 @@ void V4LocalDatabaseManager::CollectData
  
  V4LocalDatabaseManager::V4LocalDatabaseManager(
      const base::FilePath& base_path,
@@ -3469,7 +3477,7 @@
        list_infos_(GetListInfos()),
        task_runner_(task_runner_for_tests
                         ? task_runner_for_tests
-@@ -1137,8 +1134,7 @@ void V4LocalDatabaseManager::SetupUpdate
+@@ -1119,8 +1116,7 @@ void V4LocalDatabaseManager::SetupUpdate
                            weak_factory_.GetWeakPtr());
  
    v4_update_protocol_manager_ = V4UpdateProtocolManager::Create(
@@ -3491,7 +3499,7 @@
  
    V4LocalDatabaseManager(const V4LocalDatabaseManager&) = delete;
    V4LocalDatabaseManager& operator=(const V4LocalDatabaseManager&) = delete;
-@@ -108,7 +107,6 @@ class V4LocalDatabaseManager : public Sa
+@@ -107,7 +106,6 @@ class V4LocalDatabaseManager : public Sa
    // Must be initialized by calling StartOnIOThread() before using.
    V4LocalDatabaseManager(
        const base::FilePath& base_path,
@@ -3499,7 +3507,7 @@
        scoped_refptr<base::SequencedTaskRunner> ui_task_runner,
        scoped_refptr<base::SequencedTaskRunner> io_task_runner,
        scoped_refptr<base::SequencedTaskRunner> task_runner_for_tests);
-@@ -367,10 +365,6 @@ class V4LocalDatabaseManager : public Sa
+@@ -366,10 +364,6 @@ class V4LocalDatabaseManager : public Sa
    // ready to process next update.
    DatabaseUpdatedCallback db_updated_callback_;
  
@@ -3741,7 +3749,7 @@
  #include "components/safe_browsing/core/common/utils.h"
  #include "components/unified_consent/pref_names.h"
  #include "components/user_prefs/user_prefs.h"
-@@ -35,7 +34,7 @@ bool RealTimePolicyEngine::IsUserMbbOpte
+@@ -36,7 +35,7 @@ bool RealTimePolicyEngine::IsUserMbbOpte
  
  // static
  bool RealTimePolicyEngine::IsUserEpOptedIn(PrefService* pref_service) {
@@ -3750,7 +3758,7 @@
  }
  
  // static
-@@ -81,9 +80,7 @@ bool RealTimePolicyEngine::CanPerformEnt
+@@ -82,9 +81,7 @@ bool RealTimePolicyEngine::CanPerformEnt
      return false;
    }
  
@@ -3771,7 +3779,7 @@
  #include "components/unified_consent/pref_names.h"
  #include "net/base/ip_address.h"
  #include "net/base/load_flags.h"
-@@ -61,10 +60,6 @@ RealTimeUrlLookupService::RealTimeUrlLoo
+@@ -59,10 +58,6 @@ RealTimeUrlLookupService::RealTimeUrlLoo
        variations_(variations_service) {
    pref_change_registrar_.Init(pref_service_);
    pref_change_registrar_.Add(
@@ -3782,7 +3790,7 @@
        unified_consent::prefs::kUrlKeyedAnonymizedDataCollectionEnabled,
        base::BindRepeating(&RealTimeUrlLookupService::OnPrefChanged,
                            base::Unretained(this)));
-@@ -144,7 +139,7 @@ bool RealTimeUrlLookupService::CanSendPa
+@@ -140,7 +135,7 @@ bool RealTimeUrlLookupService::CanSendPa
  }
  
  bool RealTimeUrlLookupService::CanCheckSubresourceURL() const {
@@ -3856,7 +3864,7 @@
    ScheduleNextLoggingAfterInterval(base::Days(kMetricsLoggingIntervalDay));
  }
  
-@@ -98,181 +78,40 @@ void SafeBrowsingMetricsCollector::Sched
+@@ -98,87 +78,16 @@ void SafeBrowsingMetricsCollector::Sched
  }
  
  void SafeBrowsingMetricsCollector::LogDailyOptInMetrics() {
@@ -3944,40 +3952,23 @@
  }
  
  absl::optional<base::Time>
- SafeBrowsingMetricsCollector::GetLatestEventTimestamp(EventType event_type) {
--  // Events are not logged when Safe Browsing is disabled.
+@@ -194,15 +103,7 @@ absl::optional<base::Time>
+ SafeBrowsingMetricsCollector::GetLatestEventTimestamp(
+     EventTypeFilter event_type_filter) {
+   // Events are not logged when Safe Browsing is disabled.
 -  SafeBrowsingState sb_state = GetSafeBrowsingState(*pref_service_);
 -  if (sb_state == SafeBrowsingState::NO_SAFE_BROWSING) {
      return absl::nullopt;
 -  }
 -
 -  const absl::optional<Event> event =
--      GetLatestEventFromEventType(GetUserState(), event_type);
+-      GetLatestEventFromEventTypeFilter(GetUserState(), event_type_filter);
 -  return event ? absl::optional<base::Time>(event.value().timestamp)
 -               : absl::nullopt;
  }
  
  absl::optional<base::Time>
- SafeBrowsingMetricsCollector::GetLatestSecuritySensitiveEventTimestamp() {
--  std::vector<absl::optional<base::Time>> security_sensitive_event_times{
--      GetLatestEventTimestamp(SECURITY_SENSITIVE_SAFE_BROWSING_INTERSTITIAL),
--      GetLatestEventTimestamp(SECURITY_SENSITIVE_SSL_INTERSTITIAL),
--      GetLatestEventTimestamp(SECURITY_SENSITIVE_PASSWORD_PROTECTION),
--      GetLatestEventTimestamp(SECURITY_SENSITIVE_DOWNLOAD)};
-   absl::optional<base::Time> latest_event_time = absl::nullopt;
--  for (absl::optional<base::Time> security_sensitive_event_time :
--       security_sensitive_event_times) {
--    if (!security_sensitive_event_time) {
--      continue;
--    }
--    if (!latest_event_time ||
--        (latest_event_time.value() < security_sensitive_event_time.value())) {
--      latest_event_time = security_sensitive_event_time;
--    }
--  }
-   return latest_event_time;
- }
- 
+@@ -214,60 +115,14 @@ SafeBrowsingMetricsCollector::GetLatestS
  void SafeBrowsingMetricsCollector::AddSafeBrowsingEventAndUserStateToPref(
      UserState user_state,
      EventType event_type) {
@@ -4039,7 +4030,7 @@
  }
  
  absl::optional<SafeBrowsingMetricsCollector::Event>
-@@ -370,20 +209,7 @@ int SafeBrowsingMetricsCollector::GetEve
+@@ -411,20 +266,7 @@ int SafeBrowsingMetricsCollector::GetEve
  }
  
  UserState SafeBrowsingMetricsCollector::GetUserState() {
@@ -4508,7 +4499,7 @@
  #include "components/sync_preferences/testing_pref_service_syncable.h"
 --- a/components/signin/core/browser/account_reconcilor_unittest.cc
 +++ b/components/signin/core/browser/account_reconcilor_unittest.cc
-@@ -29,7 +29,6 @@
+@@ -30,7 +30,6 @@
  #include "components/signin/public/base/list_accounts_test_utils.h"
  #include "components/signin/public/base/signin_buildflags.h"
  #include "components/signin/public/base/signin_metrics.h"
@@ -4748,7 +4739,7 @@
  #include "components/signin/public/identity_manager/set_accounts_in_cookie_result.h"
  #include "google_apis/gaia/gaia_constants.h"
  #include "google_apis/gaia/gaia_urls.h"
-@@ -456,9 +455,7 @@ GaiaCookieManagerService::GaiaCookieMana
+@@ -451,9 +450,7 @@ GaiaCookieManagerService::GaiaCookieMana
        listAccountsUnexpectedServerResponseRetried_(false),
        external_cc_result_fetched_(false),
        list_accounts_stale_(true) {
@@ -4759,7 +4750,7 @@
  
    if (!gaia_cookie_last_list_accounts_data.empty()) {
      if (!gaia::ParseListAccountsData(gaia_cookie_last_list_accounts_data,
-@@ -482,8 +479,6 @@ GaiaCookieManagerService::~GaiaCookieMan
+@@ -477,8 +474,6 @@ GaiaCookieManagerService::~GaiaCookieMan
  
  // static
  void GaiaCookieManagerService::RegisterPrefs(PrefRegistrySimple* registry) {
@@ -4768,7 +4759,7 @@
  }
  
  void GaiaCookieManagerService::InitCookieListener() {
-@@ -906,16 +901,12 @@ void GaiaCookieManagerService::OnListAcc
+@@ -896,16 +891,12 @@ void GaiaCookieManagerService::OnListAcc
                                     &signed_out_accounts_)) {
      listed_accounts_.clear();
      signed_out_accounts_.clear();
@@ -5091,7 +5082,7 @@
  #include "components/sync_preferences/testing_pref_service_syncable.h"
 --- a/components/signin/public/base/BUILD.gn
 +++ b/components/signin/public/base/BUILD.gn
-@@ -34,8 +34,6 @@ static_library("base") {
+@@ -35,8 +35,6 @@ static_library("base") {
      "signin_client.h",
      "signin_metrics.cc",
      "signin_metrics.h",
@@ -5229,17 +5220,17 @@
  namespace {
 --- a/components/signin/public/identity_manager/primary_account_mutator_unittest.cc
 +++ b/components/signin/public/identity_manager/primary_account_mutator_unittest.cc
-@@ -15,7 +15,6 @@
- #include "build/chromeos_buildflags.h"
+@@ -16,7 +16,6 @@
+ #include "components/signin/public/base/consent_level.h"
  #include "components/signin/public/base/signin_buildflags.h"
  #include "components/signin/public/base/signin_metrics.h"
 -#include "components/signin/public/base/signin_pref_names.h"
- #include "components/signin/public/identity_manager/consent_level.h"
  #include "components/signin/public/identity_manager/identity_test_environment.h"
  #include "components/signin/public/identity_manager/identity_test_utils.h"
+ #include "components/sync_preferences/testing_pref_service_syncable.h"
 --- a/tools/metrics/histograms/enums.xml
 +++ b/tools/metrics/histograms/enums.xml
-@@ -83754,7 +83754,6 @@ Full version information for the fingerp
+@@ -84626,7 +84626,6 @@ Full version information for the fingerp
    <int value="3" label="kRestoreOnStartup"/>
    <int value="4" label="kURLsToRestoreOnStartup"/>
    <int value="5" label="extensions::pref_names::kExtensions"/>
@@ -5247,7 +5238,7 @@
    <int value="7" label="kSearchProviderOverrides"/>
    <int value="8" label="kDefaultSearchProviderSearchURL (Obsolete 12/2016)"/>
    <int value="9" label="kDefaultSearchProviderKeyword (Obsolete 12/2016)"/>
-@@ -83769,10 +83768,7 @@ Full version information for the fingerp
+@@ -84641,10 +84640,7 @@ Full version information for the fingerp
    <int value="18" label="kSafeBrowsingIncidentsSent"/>
    <int value="19" label="kSwReporterPromptVersion"/>
    <int value="20" label="kSwReporterPromptReason"/>

+ 3 - 3
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
-@@ -133,6 +133,7 @@
+@@ -135,6 +135,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"
-@@ -1751,6 +1752,8 @@ void RenderViewContextMenu::AppendPageIt
+@@ -1767,6 +1768,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 =
-@@ -1772,6 +1775,7 @@ void RenderViewContextMenu::AppendPageIt
+@@ -1788,6 +1791,7 @@ void RenderViewContextMenu::AppendPageIt
          IDC_CONTENT_CONTEXT_TRANSLATE,
          l10n_util::GetStringFUTF16(IDS_CONTENT_CONTEXT_TRANSLATE, language));
    }

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

@@ -9,7 +9,7 @@
 
 --- a/chrome/browser/BUILD.gn
 +++ b/chrome/browser/BUILD.gn
-@@ -2370,6 +2370,7 @@ static_library("browser") {
+@@ -2383,6 +2383,7 @@ static_library("browser") {
      "//third_party/libyuv",
      "//third_party/metrics_proto",
      "//third_party/re2",
@@ -19,7 +19,7 @@
      "//third_party/widevine/cdm:headers",
 --- a/chrome/browser/about_flags.cc
 +++ b/chrome/browser/about_flags.cc
-@@ -151,6 +151,7 @@
+@@ -149,6 +149,7 @@
  #include "components/translate/core/browser/translate_ranker_impl.h"
  #include "components/translate/core/common/translate_util.h"
  #include "components/ui_devtools/switches.h"
@@ -44,7 +44,7 @@
  #endif  // CHROME_BROWSER_BROMITE_FLAG_ENTRIES_H_
 --- a/content/browser/BUILD.gn
 +++ b/content/browser/BUILD.gn
-@@ -222,6 +222,7 @@ source_set("browser") {
+@@ -221,6 +221,7 @@ source_set("browser") {
      "//third_party/libyuv",
      "//third_party/re2",
      "//third_party/sqlite",
@@ -62,7 +62,7 @@
  #include "components/viz/common/switches.h"
  #include "components/viz/host/gpu_client.h"
  #include "content/browser/bad_message.h"
-@@ -3465,6 +3466,8 @@ void RenderProcessHostImpl::PropagateBro
+@@ -3429,6 +3430,8 @@ void RenderProcessHostImpl::PropagateBro
      switches::kEnableWebGLDraftExtensions,
      switches::kEnableWebGLImageChromium,
      switches::kFileUrlPathAlias,
@@ -83,7 +83,7 @@
      "//ui/events/blink",
 --- a/content/child/runtime_features.cc
 +++ b/content/child/runtime_features.cc
-@@ -31,6 +31,7 @@
+@@ -32,6 +32,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"
-@@ -466,6 +467,10 @@ void SetRuntimeFeaturesFromCommandLine(c
+@@ -473,6 +474,10 @@ void SetRuntimeFeaturesFromCommandLine(c
        {wrf::EnableWebGPU, switches::kEnableUnsafeWebGPU, true},
        {wrf::ForceOverlayFullscreenVideo, switches::kForceOverlayFullscreenVideo,
         true},
@@ -123,7 +123,7 @@
  #include "base/time/time.h"
  #include "cc/input/overscroll_behavior.h"
  #include "cc/input/scroll_snap_data.h"
-@@ -855,6 +856,14 @@ Range* Document::CreateRangeAdjustedToTr
+@@ -854,6 +855,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>();
-@@ -2145,6 +2154,15 @@ void Document::UpdateStyleAndLayoutTreeF
+@@ -2138,6 +2147,15 @@ void Document::UpdateStyleAndLayoutTreeF
  #if DCHECK_IS_ON()
    AssertLayoutTreeUpdated(*this, true /* allow_dirty_container_subtrees */);
  #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
-@@ -456,6 +456,10 @@ class CORE_EXPORT Document : public Cont
+@@ -454,6 +454,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;
-@@ -2078,6 +2082,9 @@ class CORE_EXPORT Document : public Cont
+@@ -2070,6 +2074,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
-@@ -2114,6 +2114,11 @@ DOMRectList* Element::getClientRects() {
+@@ -2119,6 +2119,11 @@ DOMRectList* Element::getClientRects() {
    DCHECK(element_layout_object);
    GetDocument().AdjustFloatQuadsForScrollAndAbsoluteZoom(
        quads, *element_layout_object);
@@ -191,7 +191,7 @@
    return MakeGarbageCollected<DOMRectList>(quads);
  }
  
-@@ -2131,6 +2136,9 @@ FloatRect Element::GetBoundingClientRect
+@@ -2136,6 +2141,9 @@ FloatRect Element::GetBoundingClientRect
    DCHECK(element_layout_object);
    GetDocument().AdjustFloatRectForScrollAndAbsoluteZoom(result,
                                                          *element_layout_object);
@@ -285,7 +285,7 @@
  void CanvasRenderingContext2D::fillFormattedText(
 --- a/third_party/blink/renderer/platform/BUILD.gn
 +++ b/third_party/blink/renderer/platform/BUILD.gn
-@@ -1686,6 +1686,7 @@ component("platform") {
+@@ -1688,6 +1688,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
-@@ -689,4 +689,12 @@ void WebRuntimeFeatures::EnableCLSScroll
+@@ -685,4 +685,12 @@ void WebRuntimeFeatures::EnableCLSScroll
    RuntimeEnabledFeatures::SetCLSScrollAnchoringEnabled(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
-@@ -1076,6 +1076,12 @@
+@@ -1078,6 +1078,12 @@
        origin_trial_feature_name: "Fledge",
      },
      {

+ 6 - 6
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
-@@ -3468,6 +3468,7 @@ void RenderProcessHostImpl::PropagateBro
+@@ -3432,6 +3432,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
-@@ -471,6 +471,8 @@ void SetRuntimeFeaturesFromCommandLine(c
+@@ -478,6 +478,8 @@ void SetRuntimeFeaturesFromCommandLine(c
         switches::kFingerprintingClientRectsNoise, true},
        {wrf::EnableFingerprintingCanvasMeasureTextNoise,
         switches::kFingerprintingCanvasMeasureTextNoise, true},
@@ -73,7 +73,7 @@ approach to change color components.
  #include "third_party/blink/renderer/platform/graphics/stroke_data.h"
  #include "third_party/blink/renderer/platform/graphics/video_frame_image_util.h"
  #include "third_party/blink/renderer/platform/heap/heap.h"
-@@ -2311,6 +2312,9 @@ ImageData* BaseRenderingContext2D::getIm
+@@ -2332,6 +2333,9 @@ ImageData* BaseRenderingContext2D::getIm
            snapshot->PaintImageForCurrentFrame().GetSkImageInfo().bounds();
        DCHECK(!bounds.intersect(SkIRect::MakeXYWH(sx, sy, sw, sh)));
      }
@@ -85,7 +85,7 @@ approach to change color components.
    return image_data;
 --- a/third_party/blink/renderer/platform/BUILD.gn
 +++ b/third_party/blink/renderer/platform/BUILD.gn
-@@ -1645,7 +1645,9 @@ component("platform") {
+@@ -1646,7 +1646,9 @@ component("platform") {
      "//third_party/blink/renderer:non_test_config",
    ]
  
@@ -98,7 +98,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
-@@ -697,4 +697,8 @@ void WebRuntimeFeatures::EnableFingerpri
+@@ -693,4 +693,8 @@ void WebRuntimeFeatures::EnableFingerpri
    RuntimeEnabledFeatures::SetFingerprintingCanvasMeasureTextNoiseEnabled(enable);
  }
  
@@ -322,7 +322,7 @@ approach to change color components.
    // Methods overridden by all sub-classes
 --- a/third_party/blink/renderer/platform/runtime_enabled_features.json5
 +++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5
-@@ -1082,6 +1082,9 @@
+@@ -1084,6 +1084,9 @@
        name: "FingerprintingCanvasMeasureTextNoise",
      },
      {

+ 12 - 13
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
-@@ -2126,6 +2126,7 @@ static_library("browser") {
+@@ -2138,6 +2138,7 @@ static_library("browser") {
      "//components/net_log",
      "//components/network_hints/common:mojo_bindings",
      "//components/network_session_configurator/browser",
@@ -49,7 +49,7 @@ with limited CPU/memory resources and it is disabled by default.
  #endif  // CHROME_BROWSER_BROMITE_FLAG_ENTRIES_H_
 --- a/chrome/browser/browser_process_impl.cc
 +++ b/chrome/browser/browser_process_impl.cc
-@@ -19,12 +19,14 @@
+@@ -19,11 +19,13 @@
  #include "base/debug/leak_annotations.h"
  #include "base/files/file_path.h"
  #include "base/location.h"
@@ -59,12 +59,11 @@ with limited CPU/memory resources and it is disabled by default.
  #include "base/metrics/histogram_macros.h"
  #include "base/path_service.h"
  #include "base/run_loop.h"
- #include "base/single_thread_task_runner.h"
 +#include "base/strings/string_number_conversions.h"
  #include "base/synchronization/waitable_event.h"
+ #include "base/task/single_thread_task_runner.h"
  #include "base/task/task_traits.h"
- #include "base/task/thread_pool.h"
-@@ -103,6 +105,7 @@
+@@ -104,6 +106,7 @@
  #include "components/metrics/metrics_service.h"
  #include "components/metrics_services_manager/metrics_services_manager.h"
  #include "components/metrics_services_manager/metrics_services_manager_client.h"
@@ -72,7 +71,7 @@ with limited CPU/memory resources and it is disabled by default.
  #include "components/network_time/network_time_tracker.h"
  #include "components/permissions/permissions_client.h"
  #include "components/policy/core/common/policy_service.h"
-@@ -135,6 +138,7 @@
+@@ -136,6 +139,7 @@
  #include "media/media_buildflags.h"
  #include "mojo/public/cpp/bindings/pending_receiver.h"
  #include "net/log/net_log.h"
@@ -80,7 +79,7 @@ with limited CPU/memory resources and it is disabled by default.
  #include "ppapi/buildflags/buildflags.h"
  #include "printing/buildflags/buildflags.h"
  #include "services/network/public/cpp/features.h"
-@@ -345,6 +349,18 @@ void BrowserProcessImpl::Init() {
+@@ -346,6 +350,18 @@ void BrowserProcessImpl::Init() {
                               base::BindRepeating(&ApplyMetricsReportingPolicy));
  #endif
  
@@ -101,9 +100,9 @@ with limited CPU/memory resources and it is disabled by default.
  
 --- a/chrome/browser/flag_descriptions.cc
 +++ b/chrome/browser/flag_descriptions.cc
-@@ -1621,6 +1621,10 @@ const char kMediaHistoryDescription[] =
-     "Enables Media History which records data around media playbacks on "
-     "websites.";
+@@ -1580,6 +1580,10 @@ const char kLogJsConsoleMessagesDescript
+     "Enable logging JS console messages in system logs, please note that they "
+     "may contain PII.";
  
 +const char kMaxConnectionsPerHostName[] = "Maximum connections per host";
 +const char kMaxConnectionsPerHostDescription[] =
@@ -114,9 +113,9 @@ with limited CPU/memory resources and it is disabled by default.
  const char kMediaRouterCastAllowAllIPsDescription[] =
 --- a/chrome/browser/flag_descriptions.h
 +++ b/chrome/browser/flag_descriptions.h
-@@ -930,6 +930,9 @@ extern const char kLogJsConsoleMessagesD
- extern const char kMediaHistoryName[];
- extern const char kMediaHistoryDescription[];
+@@ -906,6 +906,9 @@ extern const char kLiteVideoForceOverrid
+ extern const char kLogJsConsoleMessagesName[];
+ extern const char kLogJsConsoleMessagesDescription[];
  
 +extern const char kMaxConnectionsPerHostName[];
 +extern const char kMaxConnectionsPerHostDescription[];

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

@@ -3,7 +3,7 @@ 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
-@@ -672,9 +672,6 @@ void StartupBrowserCreatorImpl::AddInfoB
+@@ -662,9 +662,6 @@ void StartupBrowserCreatorImpl::AddInfoB
      infobars::ContentInfoBarManager* infobar_manager =
          infobars::ContentInfoBarManager::FromWebContents(web_contents);
  

+ 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
-@@ -1310,7 +1310,7 @@ void ProfileManager::InitProfileUserPref
+@@ -1309,7 +1309,7 @@ void ProfileManager::InitProfileUserPref
      profile->GetPrefs()->SetString(prefs::kSupervisedUserId,
                                     supervised_user_id);
    }

+ 2 - 2
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
-@@ -1238,7 +1238,7 @@ void ChromeContentBrowserClient::Registe
+@@ -1246,7 +1246,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
-@@ -319,7 +319,7 @@ void ProfileNetworkContextService::Updat
+@@ -324,7 +324,7 @@ void ProfileNetworkContextService::Updat
  void ProfileNetworkContextService::RegisterProfilePrefs(
      user_prefs::PrefRegistrySyncable* registry) {
    registry->RegisterBooleanPref(

+ 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
-@@ -1492,8 +1492,6 @@ int ChromeBrowserMainParts::PreMainMessa
+@@ -1498,8 +1498,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-always-prompt-for-download-directory-by-defaul.patch

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

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

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

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

@@ -37,7 +37,7 @@
  #endif  // CHROME_BROWSER_UNGOOGLED_FLAG_CHOICES_H_
 --- a/chrome/browser/ungoogled_flag_entries.h
 +++ b/chrome/browser/ungoogled_flag_entries.h
-@@ -44,4 +44,8 @@
+@@ -40,4 +40,8 @@
       "Set internal PDF plugin name",
       "Sets the internal PDF viewer plugin name. Useful for sites that probe JS API navigator.plugins.  ungoogled-chromium flag.",
       kOsDesktop, MULTI_VALUE_TYPE(kPDFPluginNameChoices)},

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

@@ -1,6 +1,6 @@
 --- a/chrome/browser/ui/browser.cc
 +++ b/chrome/browser/ui/browser.cc
-@@ -140,6 +140,8 @@
+@@ -142,6 +142,8 @@
  #include "chrome/browser/ui/tabs/tab_strip_model.h"
  #include "chrome/browser/ui/tabs/tab_utils.h"
  #include "chrome/browser/ui/ui_features.h"
@@ -34,7 +34,7 @@
    unload_controller_.ResetTryToCloseWindow();
  }
  
-@@ -2702,6 +2706,62 @@ bool Browser::CanCloseWithInProgressDown
+@@ -2690,6 +2694,62 @@ bool Browser::CanCloseWithInProgressDown
    return false;
  }
  
@@ -97,7 +97,7 @@
  void Browser::InProgressDownloadResponse(bool cancel_downloads) {
    if (cancel_downloads) {
      cancel_download_confirmation_state_ = RESPONSE_RECEIVED;
-@@ -2720,6 +2780,22 @@ void Browser::InProgressDownloadResponse
+@@ -2708,6 +2768,22 @@ void Browser::InProgressDownloadResponse
  
    std::move(warn_before_closing_callback_)
        .Run(WarnBeforeClosingResult::kDoNotClose);
@@ -130,7 +130,7 @@
  #include "chrome/browser/ui/signin_view_controller.h"
  #include "chrome/browser/ui/tabs/tab_strip_model_observer.h"
  #include "chrome/browser/ui/unload_controller.h"
-@@ -1008,12 +1009,17 @@ class Browser : public TabStripModelObse
+@@ -1009,12 +1010,17 @@ class Browser : public TabStripModelObse
    // Returns true if the window can close, false otherwise.
    bool CanCloseWithInProgressDownloads();
  
@@ -148,7 +148,7 @@
    // Called when all warnings have completed when attempting to close the
    // browser directly (e.g. via hotkey, close button, terminate signal, etc.)
    // Used as a WarnBeforeClosingCallback by ShouldCloseWindow().
-@@ -1176,6 +1182,8 @@ class Browser : public TabStripModelObse
+@@ -1177,6 +1183,8 @@ class Browser : public TabStripModelObse
    // when the browser is closed with in-progress downloads.
    CancelDownloadConfirmationState cancel_download_confirmation_state_;
  
@@ -175,7 +175,7 @@
  #endif  // CHROME_BROWSER_UNGOOGLED_FLAG_CHOICES_H_
 --- a/chrome/browser/ungoogled_flag_entries.h
 +++ b/chrome/browser/ungoogled_flag_entries.h
-@@ -80,4 +80,8 @@
+@@ -76,4 +76,8 @@
       "Remove Grab Handle",
       "Removes the reserved empty space in the tabstrip for moving the window.  ungoogled-chromium flag",
       kOsDesktop, SINGLE_VALUE_TYPE("remove-grab-handle")},

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

@@ -1,6 +1,6 @@
 --- a/chrome/browser/chrome_content_browser_client.cc
 +++ b/chrome/browser/chrome_content_browser_client.cc
-@@ -743,6 +743,9 @@ bool HandleNewTabPageLocationOverride(
+@@ -751,6 +751,9 @@ bool HandleNewTabPageLocationOverride(
    Profile* profile = Profile::FromBrowserContext(browser_context);
    std::string ntp_location =
        profile->GetPrefs()->GetString(prefs::kNewTabPageLocationOverride);
@@ -12,7 +12,7 @@
    url::Component scheme;
 --- a/chrome/browser/ungoogled_flag_entries.h
 +++ b/chrome/browser/ungoogled_flag_entries.h
-@@ -84,4 +84,8 @@
+@@ -80,4 +80,8 @@
       "Close Confirmation",
       "Show a warning prompt when closing the browser window.  ungoogled-chromium flag",
       kOsDesktop, MULTI_VALUE_TYPE(kCloseConfirmation)},
@@ -23,15 +23,15 @@
  #endif  // CHROME_BROWSER_UNGOOGLED_FLAG_ENTRIES_H_
 --- a/components/flags_ui/flags_state.cc
 +++ b/components/flags_ui/flags_state.cc
-@@ -231,6 +231,7 @@ std::string GetCombinedOriginListValue(c
-           command_line_switch);
+@@ -239,6 +239,7 @@ std::string GetCombinedOriginListValue(c
+       command_line.GetSwitchValueASCII(command_line_switch);
    const std::string new_value =
        flags_storage.GetOriginListFlag(internal_entry_name);
 +  if (command_line_switch == "custom-ntp") return existing_value.empty() ? new_value : existing_value;
    return CombineAndSanitizeOriginLists(existing_value, new_value);
  }
  
-@@ -417,6 +418,7 @@ void FlagsState::SetOriginListFlag(const
+@@ -427,6 +428,7 @@ void FlagsState::SetOriginListFlag(const
                                     const std::string& value,
                                     FlagsStorage* flags_storage) {
    const std::string new_value =

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

@@ -1,6 +1,6 @@
 --- a/chrome/browser/ui/views/frame/tab_strip_region_view.cc
 +++ b/chrome/browser/ui/views/frame/tab_strip_region_view.cc
-@@ -42,6 +42,7 @@ class FrameGrabHandle : public views::Vi
+@@ -43,6 +43,7 @@ class FrameGrabHandle : public views::Vi
      // Reserve some space for the frame to be grabbed by, even if the tabstrip
      // is full.
      // TODO(tbergquist): Define this relative to the NTB insets again.
@@ -10,7 +10,7 @@
  };
 --- a/chrome/browser/ungoogled_flag_entries.h
 +++ b/chrome/browser/ungoogled_flag_entries.h
-@@ -76,4 +76,8 @@
+@@ -72,4 +72,8 @@
       "Disable QR Generator",
       "Disables the QR generator for sharing page links.  ungoogled-chromium flag",
       kOsDesktop, FEATURE_VALUE_TYPE(kDisableQRGenerator)},

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

@@ -22,7 +22,7 @@
  #endif  // CHROME_BROWSER_UNGOOGLED_FLAG_CHOICES_H_
 --- a/chrome/browser/ungoogled_flag_entries.h
 +++ b/chrome/browser/ungoogled_flag_entries.h
-@@ -48,4 +48,8 @@
+@@ -44,4 +44,8 @@
       "Bookmark Bar on New-Tab-Page",
       "Disable the Bookmark Bar on the New-Tab-Page.  ungoogled-chromium flag.",
       kOsDesktop, MULTI_VALUE_TYPE(kBookmarkBarNewTab)},

+ 7 - 7
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
-@@ -6001,7 +6001,7 @@ bool ChromeContentBrowserClient::ShouldA
+@@ -6014,7 +6014,7 @@ bool ChromeContentBrowserClient::ShouldA
      const url::Origin& embedder_origin,
      const content::PepperPluginInfo& plugin_info) {
  #if BUILDFLAG(ENABLE_PDF)
@@ -22,7 +22,7 @@
  }
 --- a/chrome/browser/plugins/pdf_iframe_navigation_throttle_unittest.cc
 +++ b/chrome/browser/plugins/pdf_iframe_navigation_throttle_unittest.cc
-@@ -65,7 +65,7 @@ class PDFIFrameNavigationThrottleTest :
+@@ -66,7 +66,7 @@ class PDFIFrameNavigationThrottleTest :
      // Register a fake PDF Viewer plugin into our plugin service.
      content::WebPluginInfo info;
      info.name =
@@ -240,7 +240,7 @@
  #endif  // CHROME_BROWSER_UNGOOGLED_FLAG_CHOICES_H_
 --- a/chrome/browser/ungoogled_flag_entries.h
 +++ b/chrome/browser/ungoogled_flag_entries.h
-@@ -40,4 +40,8 @@
+@@ -36,4 +36,8 @@
       "Scroll switches tab",
       "Switch to the left/right tab if the wheel-scroll happens over the tabstrip, or the empty space beside the tabstrip.  ungoogled-chromium flag.",
       kOsDesktop, MULTI_VALUE_TYPE(kScrollEventChangesTab)},
@@ -251,7 +251,7 @@
  #endif  // CHROME_BROWSER_UNGOOGLED_FLAG_ENTRIES_H_
 --- a/chrome/common/BUILD.gn
 +++ b/chrome/common/BUILD.gn
-@@ -249,6 +249,7 @@ static_library("common") {
+@@ -250,6 +250,7 @@ static_library("common") {
      "//components/no_state_prefetch/common",
      "//components/no_state_prefetch/common:mojo_bindings",
      "//components/page_load_metrics/common:common",
@@ -360,7 +360,7 @@
      FILE_PATH_LITERAL("internal-pdf-viewer");
 --- a/chrome/renderer/chrome_content_renderer_client.cc
 +++ b/chrome/renderer/chrome_content_renderer_client.cc
-@@ -1047,7 +1047,7 @@ WebPlugin* ChromeContentRendererClient::
+@@ -1048,7 +1048,7 @@ WebPlugin* ChromeContentRendererClient::
              }
            }
          } else if (info.name ==
@@ -369,7 +369,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.
-@@ -1079,7 +1079,7 @@ WebPlugin* ChromeContentRendererClient::
+@@ -1080,7 +1080,7 @@ WebPlugin* ChromeContentRendererClient::
  
  #if BUILDFLAG(ENABLE_PDF)
          if (info.name ==
@@ -378,7 +378,7 @@
            return pdf::CreateInternalPlugin(
                info, std::move(params), render_frame,
                std::make_unique<ChromePdfInternalPluginDelegate>());
-@@ -1092,7 +1092,7 @@ WebPlugin* ChromeContentRendererClient::
+@@ -1093,7 +1093,7 @@ WebPlugin* ChromeContentRendererClient::
          PluginUMAReporter::GetInstance()->ReportPluginDisabled(orig_mime_type,
                                                                 url);
          if (info.name ==

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

@@ -1,9 +1,9 @@
 --- a/chrome/browser/sharing/features.cc
 +++ b/chrome/browser/sharing/features.cc
-@@ -32,3 +32,5 @@ const base::Feature kSharingPreferVapid
-       base::FEATURE_DISABLED_BY_DEFAULT
- #endif  // defined(OS_ANDROID)
- };
+@@ -26,3 +26,5 @@ const base::Feature kSharingSendViaSync{
+ 
+ const base::Feature kSharingPreferVapid {
+   "SharingPreferVapid", base::FEATURE_DISABLED_BY_DEFAULT};
 +
 +const base::Feature kDisableQRGenerator{"DisableQRGenerator", base::FEATURE_DISABLED_BY_DEFAULT};
 --- a/chrome/browser/sharing/features.h
@@ -39,7 +39,7 @@
      if (base::FeatureList::IsEnabled(kWebOTPCrossDevice))
 --- a/chrome/browser/ungoogled_flag_entries.h
 +++ b/chrome/browser/ungoogled_flag_entries.h
-@@ -72,4 +72,8 @@
+@@ -68,4 +68,8 @@
       "Remove Tabsearch Button",
       "Removes the tabsearch button from the tabstrip.  ungoogled-chromium flag",
       kOsDesktop, SINGLE_VALUE_TYPE("remove-tabsearch-button")},

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

@@ -2,7 +2,7 @@
 
 --- a/chrome/browser/ungoogled_flag_entries.h
 +++ b/chrome/browser/ungoogled_flag_entries.h
-@@ -16,4 +16,8 @@
+@@ -12,4 +12,8 @@
       "Handling of extension MIME type requests",
       "Used when deciding how to handle a request for a CRX or User Script MIME type.  ungoogled-chromium flag.",
       kOsAll, MULTI_VALUE_TYPE(kExtensionHandlingChoices)},
@@ -102,7 +102,7 @@
  }
  
  bool TemplateURLService::IsPrepopulatedOrCreatedByPolicy(
-@@ -1496,6 +1504,8 @@ SyncDataMap TemplateURLService::CreateGU
+@@ -1500,6 +1508,8 @@ SyncDataMap TemplateURLService::CreateGU
  
  void TemplateURLService::Init(const Initializer* initializers,
                                int num_initializers) {
@@ -111,7 +111,7 @@
    if (client_)
      client_->SetOwner(this);
  
-@@ -1632,6 +1642,9 @@ void TemplateURLService::ChangeToLoadedS
+@@ -1636,6 +1646,9 @@ void TemplateURLService::ChangeToLoadedS
  
  bool TemplateURLService::CanAddAutogeneratedKeywordForHost(
      const std::string& host) const {

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

@@ -8,7 +8,7 @@
  #include "base/debug/alias.h"
  #include "base/i18n/rtl.h"
  #include "base/metrics/user_metrics.h"
-@@ -641,6 +642,8 @@ void Tab::OnGestureEvent(ui::GestureEven
+@@ -636,6 +637,8 @@ void Tab::OnGestureEvent(ui::GestureEven
  }
  
  std::u16string Tab::GetTooltipText(const gfx::Point& p) const {
@@ -27,7 +27,7 @@
  #include "base/compiler_specific.h"
  #include "base/containers/adapters.h"
  #include "base/containers/contains.h"
-@@ -2153,6 +2154,8 @@ void TabStrip::OnMouseEventInTab(views::
+@@ -1844,6 +1845,8 @@ void TabStrip::OnMouseEventInTab(views::
  }
  
  void TabStrip::UpdateHoverCard(Tab* tab, HoverCardUpdateType update_type) {
@@ -54,7 +54,7 @@
  #endif  // CHROME_BROWSER_UNGOOGLED_FLAG_CHOICES_H_
 --- a/chrome/browser/ungoogled_flag_entries.h
 +++ b/chrome/browser/ungoogled_flag_entries.h
-@@ -88,4 +88,8 @@
+@@ -84,4 +84,8 @@
       "Custom New Tab Page",
       "Allows setting a custom URL for the new tab page.  Value can be internal (e.g. `about:blank`), external (e.g. `example.com`), or local (e.g. `file:///tmp/startpage.html`).  This applies for incognito windows as well when not set to a `chrome://` internal page.  ungoogled-chromium flag",
       kOsDesktop, ORIGIN_LIST_VALUE_TYPE("custom-ntp", "")},

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

@@ -1,6 +1,6 @@
 --- a/chrome/browser/ui/browser_command_controller.cc
 +++ b/chrome/browser/ui/browser_command_controller.cc
-@@ -1139,7 +1139,8 @@ void BrowserCommandController::InitComma
+@@ -1154,7 +1154,8 @@ void BrowserCommandController::InitComma
    command_updater_.UpdateCommandEnabled(IDC_WINDOW_CLOSE_OTHER_TABS,
                                          normal_window);
  
@@ -20,19 +20,19 @@
  #include "base/strings/utf_string_conversions.h"
  #include "build/build_config.h"
  #include "chrome/browser/themes/theme_properties.h"
-@@ -132,7 +133,8 @@ TabStripRegionView::TabStripRegionView(s
+@@ -134,7 +135,8 @@ TabStripRegionView::TabStripRegionView(s
      return;
- #endif
-   const Browser* browser = tab_strip_->controller()->GetBrowser();
--  if (browser && browser->is_type_normal()) {
-+  if (browser && browser->is_type_normal() &&
+   }
+ 
+-  if (browser->is_type_normal()) {
++  if (browser->is_type_normal() &&
 +      !base::CommandLine::ForCurrentProcess()->HasSwitch("remove-tabsearch-button")) {
      auto tab_search_button = std::make_unique<TabSearchButton>(tab_strip_);
      tab_search_button->SetTooltipText(
          l10n_util::GetStringUTF16(IDS_TOOLTIP_TAB_SEARCH));
 --- a/chrome/browser/ungoogled_flag_entries.h
 +++ b/chrome/browser/ungoogled_flag_entries.h
-@@ -68,4 +68,8 @@
+@@ -64,4 +64,8 @@
       "Clear data on exit",
       "Clears all browsing data on exit.  ungoogled-chromium flag",
       kOsDesktop, FEATURE_VALUE_TYPE(browsing_data::features::kClearDataOnExit)},

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

@@ -66,7 +66,7 @@
    Profile* profile = Profile::FromBrowserContext(context);
 --- a/chrome/browser/ungoogled_flag_entries.h
 +++ b/chrome/browser/ungoogled_flag_entries.h
-@@ -64,4 +64,8 @@
+@@ -60,4 +60,8 @@
       "Keep old history",
       "Keep history older than 3 months.  ungoogled-chromium flag",
       kOsAll, SINGLE_VALUE_TYPE("keep-old-history")},

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

@@ -34,7 +34,7 @@
  #endif  // CHROME_BROWSER_UNGOOGLED_FLAG_CHOICES_H_
 --- a/chrome/browser/ungoogled_flag_entries.h
 +++ b/chrome/browser/ungoogled_flag_entries.h
-@@ -52,4 +52,8 @@
+@@ -48,4 +48,8 @@
       "Omnibox Autocomplete Filtering",
       "Restrict omnibox autocomplete results to a combination of search suggestions (if enabled), bookmarks, and internal chrome pages.  ungoogled-chromium flag.",
       kOsAll, MULTI_VALUE_TYPE(kOmniboxAutocompleteFiltering)},

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

@@ -109,10 +109,10 @@
  #endif  // CHROME_BROWSER_UNGOOGLED_FLAG_CHOICES_H_
 --- a/chrome/browser/ungoogled_flag_entries.h
 +++ b/chrome/browser/ungoogled_flag_entries.h
-@@ -12,4 +12,8 @@
-      "Enable stacking in the tab strip",
-      "Forces tabs to be stacked in the tab strip. Otherwise, they follow default behavior.  ungoogled-chromium flag.",
-      kOsAll, SINGLE_VALUE_TYPE("enable-stacked-tab-strip")},
+@@ -8,4 +8,8 @@
+      "SetIpv6ProbeFalse",
+      "Forces the result of the browser's IPv6 probing (i.e. IPv6 connectivity test) to be unsuccessful. This causes IPv4 addresses to be prioritized over IPv6 addresses. Without this flag, the probing result is set to be successful, which causes IPv6 to be used over IPv4 when possible.  ungoogled-chromium flag.",
+      kOsAll, FEATURE_VALUE_TYPE(net::features::kSetIpv6ProbeFalse)},
 +    {"extension-mime-request-handling",
 +     "Handling of extension MIME type requests",
 +     "Used when deciding how to handle a request for a CRX or User Script MIME type.  ungoogled-chromium flag.",

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

@@ -2,7 +2,7 @@
 
 --- a/chrome/browser/ungoogled_flag_entries.h
 +++ b/chrome/browser/ungoogled_flag_entries.h
-@@ -56,4 +56,8 @@
+@@ -52,4 +52,8 @@
       "Close window with last tab",
       "Determines whether a window should close once the last tab is closed.  ungoogled-chromium flag.",
       kOsDesktop, MULTI_VALUE_TYPE(kCloseWindowWithLastTab)},

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

@@ -2,7 +2,7 @@
 
 --- a/chrome/browser/ungoogled_flag_entries.h
 +++ b/chrome/browser/ungoogled_flag_entries.h
-@@ -20,4 +20,8 @@
+@@ -16,4 +16,8 @@
       "Disable search engine collection",
       "Prevents search engines from being added automatically.  ungoogled-chromium flag.",
       kOsAll, SINGLE_VALUE_TYPE("disable-search-engine-collection")},

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

@@ -2,7 +2,7 @@
 
 --- a/chrome/browser/ungoogled_flag_entries.h
 +++ b/chrome/browser/ungoogled_flag_entries.h
-@@ -60,4 +60,8 @@
+@@ -56,4 +56,8 @@
       "Popups to tabs",
       "Makes popups open in new tabs.  ungoogled-chromium flag",
       kOsAll, SINGLE_VALUE_TYPE("popups-to-tabs")},

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

@@ -2,7 +2,7 @@
 
 --- a/chrome/browser/ungoogled_flag_entries.h
 +++ b/chrome/browser/ungoogled_flag_entries.h
-@@ -24,4 +24,8 @@
+@@ -20,4 +20,8 @@
       "Disable beforeunload",
       "Disables JavaScript dialog boxes triggered by beforeunload.  ungoogled-chromium flag.",
       kOsAll, SINGLE_VALUE_TYPE("disable-beforeunload")},

+ 2 - 2
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
-@@ -648,7 +648,8 @@ void StartupBrowserCreatorImpl::AddInfoB
+@@ -638,7 +638,8 @@ void StartupBrowserCreatorImpl::AddInfoB
    if (command_line_.HasSwitch(switches::kKioskMode))
      return;
  
@@ -15,7 +15,7 @@
  
 --- a/chrome/browser/ungoogled_flag_entries.h
 +++ b/chrome/browser/ungoogled_flag_entries.h
-@@ -32,4 +32,8 @@
+@@ -28,4 +28,8 @@
       "Show avatar/people/profile button",
       "Show avatar/people/profile button in the browser toolbar.  ungoogled-chromium flag.",
       kOsDesktop, MULTI_VALUE_TYPE(kShowAvatarButtonChoices)},

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

@@ -1,17 +1,29 @@
---- a/chrome/browser/ui/views/tabs/tab_strip.cc
-+++ b/chrome/browser/ui/views/tabs/tab_strip.cc
-@@ -1909,6 +1909,8 @@ bool TabStrip::SupportsMultipleSelection
- }
+--- a/chrome/browser/ui/views/tabs/tab.cc
++++ b/chrome/browser/ui/views/tabs/tab.cc
+@@ -972,7 +972,11 @@ void Tab::UpdateIconVisibility() {
+   if (IsActive()) {
+     // Close button is shown on active tabs regardless of the size.
+     showing_close_button_ = true;
++    if (base::CommandLine::ForCurrentProcess()->HasSwitch("hide-tab-close-buttons")) {
++      showing_close_button_ = false;
++    } else {
+     available_width -= close_button_width;
++    }
+ 
+     showing_alert_indicator_ =
+         has_alert_icon && alert_icon_width <= available_width;
+@@ -993,6 +997,8 @@ void Tab::UpdateIconVisibility() {
+       available_width -= favicon_width;
+ 
+     showing_close_button_ = large_enough_for_close_button;
++    if (base::CommandLine::ForCurrentProcess()->HasSwitch("hide-tab-close-buttons"))
++      showing_close_button_ = false;
+     if (showing_close_button_)
+       available_width -= close_button_width;
  
- bool TabStrip::ShouldHideCloseButtonForTab(Tab* tab) const {
-+  if (base::CommandLine::ForCurrentProcess()->HasSwitch("hide-tab-close-buttons"))
-+    return true;
-   if (tab->IsActive())
-     return false;
-   return !!touch_layout_;
 --- a/chrome/browser/ungoogled_flag_entries.h
 +++ b/chrome/browser/ungoogled_flag_entries.h
-@@ -92,4 +92,8 @@
+@@ -88,4 +88,8 @@
       "Tab Hover Cards",
       "Allows removing the tab hover cards or using a tooltip as a replacement.  ungoogled-chromium flag.",
       kOsDesktop, MULTI_VALUE_TYPE(kTabHoverCards)},

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

@@ -76,7 +76,7 @@
  #endif  // CHROME_BROWSER_UNGOOGLED_FLAG_CHOICES_H_
 --- a/chrome/browser/ungoogled_flag_entries.h
 +++ b/chrome/browser/ungoogled_flag_entries.h
-@@ -36,4 +36,8 @@
+@@ -32,4 +32,8 @@
       "Hide crashed bubble",
       "Hides the bubble box with the message \"Restore Pages? Chromium didn't shut down correctly.\" that shows on startup after the browser did not exit cleanly.  ungoogled-chromium flag.",
       kOsAll, SINGLE_VALUE_TYPE("hide-crashed-bubble")},

+ 2 - 2
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
-@@ -273,12 +273,28 @@ void ToolbarView::Init() {
+@@ -275,12 +275,28 @@ void ToolbarView::Init() {
  
    std::unique_ptr<ToolbarAccountIconContainerView>
        toolbar_account_icon_container;
@@ -52,7 +52,7 @@
  #endif  // CHROME_BROWSER_UNGOOGLED_FLAG_CHOICES_H_
 --- a/chrome/browser/ungoogled_flag_entries.h
 +++ b/chrome/browser/ungoogled_flag_entries.h
-@@ -28,4 +28,8 @@
+@@ -24,4 +24,8 @@
       "Force punycode hostnames",
       "Force punycode in hostnames instead of Unicode when displaying Internationalized Domain Names (IDNs).  ungoogled-chromium flag.",
       kOsAll, SINGLE_VALUE_TYPE("force-punycode-hostnames")},

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

@@ -1,33 +0,0 @@
-# Add --enable-stacked-tab-strip and --enable-tab-adjust-layout flags to tweak tab strip behavior
-
---- a/chrome/browser/ui/views/tabs/browser_tab_strip_controller.cc
-+++ b/chrome/browser/ui/views/tabs/browser_tab_strip_controller.cc
-@@ -83,14 +83,13 @@ using content::WebContents;
- namespace {
- 
- bool DetermineTabStripLayoutStacked(PrefService* prefs, bool* adjust_layout) {
--  *adjust_layout = false;
--  // For ash, always allow entering stacked mode.
- #if BUILDFLAG(IS_CHROMEOS_ASH)
-   *adjust_layout = true;
-   return prefs->GetBoolean(prefs::kTabStripStackedLayout);
- #else
--  return base::CommandLine::ForCurrentProcess()->HasSwitch(
--      switches::kForceStackedTabStripLayout);
-+  *adjust_layout = base::CommandLine::ForCurrentProcess()->HasSwitch("enable-tab-adjust-layout");
-+  return prefs->GetBoolean(prefs::kTabStripStackedLayout) ||
-+      base::CommandLine::ForCurrentProcess()->HasSwitch("enable-stacked-tab-strip");
- #endif
- }
- 
---- a/chrome/browser/ungoogled_flag_entries.h
-+++ b/chrome/browser/ungoogled_flag_entries.h
-@@ -8,4 +8,8 @@
-      "SetIpv6ProbeFalse",
-      "Forces the result of the browser's IPv6 probing (i.e. IPv6 connectivity test) to be unsuccessful. This causes IPv4 addresses to be prioritized over IPv6 addresses. Without this flag, the probing result is set to be successful, which causes IPv6 to be used over IPv4 when possible.  ungoogled-chromium flag.",
-      kOsAll, FEATURE_VALUE_TYPE(net::features::kSetIpv6ProbeFalse)},
-+    {"enable-stacked-tab-strip",
-+     "Enable stacking in the tab strip",
-+     "Forces tabs to be stacked in the tab strip. Otherwise, they follow default behavior.  ungoogled-chromium flag.",
-+     kOsAll, SINGLE_VALUE_TYPE("enable-stacked-tab-strip")},
- #endif  // CHROME_BROWSER_UNGOOGLED_FLAG_ENTRIES_H_

+ 3 - 3
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
-@@ -263,5 +263,7 @@ const base::Feature kPartitionedCookies{
+@@ -260,5 +260,7 @@ const base::Feature kPartitionedCookies{
  const base::Feature kExtraCookieValidityChecks{
      "ExtraCookieValidityChecks", base::FEATURE_ENABLED_BY_DEFAULT};
  
@@ -23,7 +23,7 @@
  }  // namespace net
 --- a/net/base/features.h
 +++ b/net/base/features.h
-@@ -396,6 +396,8 @@ NET_EXPORT extern const base::Feature kP
+@@ -392,6 +392,8 @@ NET_EXPORT extern const base::Feature kP
  // feature flag, assuming no breakage occurs with it enabled.
  NET_EXPORT extern const base::Feature kExtraCookieValidityChecks;
  
@@ -46,7 +46,7 @@
  enum DnsResolveStatus {
    RESOLVE_STATUS_DNS_SUCCESS = 0,
    RESOLVE_STATUS_PROC_SUCCESS,
-@@ -3696,7 +3691,7 @@ bool HostResolverManager::IsIPv6Reachabl
+@@ -3698,7 +3693,7 @@ bool HostResolverManager::IsIPv6Reachabl
        (tick_clock_->NowTicks() - last_ipv6_probe_time_).InMilliseconds() >
            kIPv6ProbePeriodMs) {
      SetLastIPv6ProbeResult(

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

@@ -19,7 +19,7 @@
          <cr-button class="cancel-button" on-click="cancel_" id="cancel">
 --- a/chrome/browser/resources/settings/search_engines_page/search_engine_dialog.ts
 +++ b/chrome/browser/resources/settings/search_engines_page/search_engine_dialog.ts
-@@ -26,6 +26,7 @@ interface SettingsSearchEngineDialogElem
+@@ -27,6 +27,7 @@ export interface SettingsSearchEngineDia
      dialog: CrDialogElement,
      keyword: CrInputElement,
      queryUrl: CrInputElement,
@@ -27,7 +27,7 @@
      searchEngine: CrInputElement,
    };
  }
-@@ -54,6 +55,7 @@ class SettingsSearchEngineDialogElement
+@@ -55,6 +56,7 @@ export class SettingsSearchEngineDialogE
        searchEngine_: String,
        keyword_: String,
        queryUrl_: String,
@@ -35,7 +35,7 @@
        dialogTitle_: String,
        actionButtonText_: String,
      };
-@@ -63,6 +65,7 @@ class SettingsSearchEngineDialogElement
+@@ -64,6 +66,7 @@ export class SettingsSearchEngineDialogE
    private searchEngine_: string;
    private keyword_: string;
    private queryUrl_: string;
@@ -43,7 +43,7 @@
    private dialogTitle_: string;
    private actionButtonText_: string;
    private browserProxy_: SearchEnginesBrowserProxy =
-@@ -92,6 +95,7 @@ class SettingsSearchEngineDialogElement
+@@ -93,6 +96,7 @@ export class SettingsSearchEngineDialogE
        this.searchEngine_ = this.model.name;
        this.keyword_ = this.model.keyword;
        this.queryUrl_ = this.model.url;
@@ -51,7 +51,7 @@
      } else {
        this.dialogTitle_ =
            loadTimeData.getString('searchEnginesAddSearchEngine');
-@@ -127,8 +131,12 @@ class SettingsSearchEngineDialogElement
+@@ -128,8 +132,12 @@ export class SettingsSearchEngineDialogE
        }
      }
  
@@ -66,7 +66,7 @@
    }
  
    private cancel_() {
-@@ -137,7 +145,8 @@ class SettingsSearchEngineDialogElement
+@@ -138,7 +146,8 @@ export class SettingsSearchEngineDialogE
  
    private onActionButtonTap_() {
      this.browserProxy_.searchEngineEditCompleted(
@@ -76,7 +76,7 @@
      this.$.dialog.close();
    }
  
-@@ -165,9 +174,11 @@ class SettingsSearchEngineDialogElement
+@@ -166,9 +175,11 @@ export class SettingsSearchEngineDialogE
  
    private updateActionButtonState_() {
      const allValid = [
@@ -100,7 +100,7 @@
    urlLocked: boolean,
  };
  
-@@ -53,7 +54,7 @@ export interface SearchEnginesBrowserPro
+@@ -72,7 +73,7 @@ export interface SearchEnginesBrowserPro
    searchEngineEditCancelled(): void;
  
    searchEngineEditCompleted(
@@ -109,7 +109,7 @@
  
    getSearchEnginesList(): Promise<SearchEnginesInfo>;
  
-@@ -84,11 +85,12 @@ export class SearchEnginesBrowserProxyIm
+@@ -113,11 +114,12 @@ export class SearchEnginesBrowserProxyIm
    }
  
    searchEngineEditCompleted(
@@ -353,7 +353,7 @@
    dict->SetBoolean("urlLocked", template_url->prepopulate_id() > 0);
    GURL icon_url = template_url->favicon_url();
    if (icon_url.is_valid())
-@@ -325,12 +329,14 @@ void SearchEnginesHandler::HandleSearchE
+@@ -323,12 +327,14 @@ void SearchEnginesHandler::HandleSearchE
  void SearchEnginesHandler::OnEditedKeyword(TemplateURL* template_url,
                                             const std::u16string& title,
                                             const std::u16string& keyword,
@@ -371,7 +371,7 @@
  
    edit_controller_.reset();
  }
-@@ -361,6 +367,8 @@ bool SearchEnginesHandler::CheckFieldVal
+@@ -356,6 +362,8 @@ bool SearchEnginesHandler::CheckFieldVal
      is_valid = edit_controller_->IsKeywordValid(base::UTF8ToUTF16(field_value));
    else if (field_name.compare(kQueryUrlField) == 0)
      is_valid = edit_controller_->IsURLValid(field_value);
@@ -380,15 +380,11 @@
    else
      NOTREACHED();
  
-@@ -382,17 +390,21 @@ void SearchEnginesHandler::HandleSearchE
-   std::string search_engine;
-   std::string keyword;
-   std::string query_url;
-+  std::string suggestions_url;
-   CHECK(args->GetString(0, &search_engine));
-   CHECK(args->GetString(1, &keyword));
-   CHECK(args->GetString(2, &query_url));
-+  CHECK(args->GetString(3, &suggestions_url));
+@@ -377,14 +385,17 @@ void SearchEnginesHandler::HandleSearchE
+   const std::string& search_engine = args->GetList()[0].GetString();
+   const std::string& keyword = args->GetList()[1].GetString();
+   const std::string& query_url = args->GetList()[2].GetString();
++  const std::string& suggestions_url = args->GetList()[3].GetString();
  
    // Recheck validity. It's possible to get here with invalid input if e.g. the
    // user calls the right JS functions directly from the web inspector.

+ 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
-@@ -2728,7 +2728,13 @@ const FeatureEntry::FeatureVariation kWi
+@@ -2763,7 +2763,13 @@ const FeatureEntry::FeatureVariation kWi
  // calculate and verify checksum.
  //
  // When adding a new choice, add it to the end of the list.

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

@@ -10,7 +10,7 @@
  #include "crypto/secure_hash.h"
  
  #if defined(OS_WIN)
-@@ -535,105 +534,6 @@ DownloadInterruptReason BaseFile::Publis
+@@ -530,105 +529,6 @@ DownloadInterruptReason BaseFile::Publis
  }
  #endif  // defined(OS_ANDROID)
  
@@ -116,7 +116,7 @@
  
  void BaseFile::AnnotateWithSourceInformation(
      const std::string& client_guid,
-@@ -641,32 +541,8 @@ void BaseFile::AnnotateWithSourceInforma
+@@ -636,32 +536,8 @@ void BaseFile::AnnotateWithSourceInforma
      const GURL& referrer_url,
      mojo::PendingRemote<quarantine::mojom::Quarantine> remote_quarantine,
      OnAnnotationDoneCallback on_annotation_done_callback) {
@@ -153,7 +153,7 @@
  }  // namespace download
 --- a/content/browser/BUILD.gn
 +++ b/content/browser/BUILD.gn
-@@ -82,7 +82,6 @@ source_set("browser") {
+@@ -81,7 +81,6 @@ source_set("browser") {
      "//components/permissions:permissions_common",
      "//components/power_scheduler",
      "//components/services/filesystem:lib",
@@ -190,9 +190,9 @@
                                       weak_factory_.GetWeakPtr());
 -  }
    manager_->DoFileSystemOperation(
-       FROM_HERE, &storage::FileSystemOperationRunner::MoveFileLocal,
-       std::move(result_callback), source_url(), dest_url(), option_);
-@@ -220,7 +207,6 @@ void SafeMoveHelper::DidFileSkipQuaranti
+       FROM_HERE, &storage::FileSystemOperationRunner::Move,
+       std::move(result_callback), source_url(), dest_url(), options_,
+@@ -222,7 +209,6 @@ void SafeMoveHelper::DidFileSkipQuaranti
  void SafeMoveHelper::DidFileDoQuarantine(
      const storage::FileSystemURL& target_url,
      const GURL& referrer_url,
@@ -200,7 +200,7 @@
      base::File::Error result) {
    DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
  
-@@ -251,37 +237,9 @@ void SafeMoveHelper::DidFileDoQuarantine
+@@ -253,37 +239,9 @@ void SafeMoveHelper::DidFileDoQuarantine
        referrer_url.is_valid() && referrer_url.SchemeIsHTTPOrHTTPS()
            ? referrer_url
            : GURL();

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

@@ -0,0 +1,11 @@
+--- a/components/optimization_guide/core/optimization_guide_features.cc
++++ b/components/optimization_guide/core/optimization_guide_features.cc
+@@ -41,7 +41,7 @@ const base::Feature kOptimizationHintsFi
+ 
+ // Enables fetching from a remote Optimization Guide Service.
+ const base::Feature kRemoteOptimizationGuideFetching{
+-    "OptimizationHintsFetching", base::FEATURE_ENABLED_BY_DEFAULT};
++    "OptimizationHintsFetching", base::FEATURE_DISABLED_BY_DEFAULT};
+ 
+ const base::Feature kRemoteOptimizationGuideFetchingAnonymousDataConsent {
+   "OptimizationHintsFetchingAnonymousDataConsent",

+ 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
-@@ -3595,8 +3595,7 @@ ScriptValue WebGLRenderingContextBase::g
+@@ -3617,8 +3617,7 @@ ScriptValue WebGLRenderingContextBase::g
                pname, IdentifiabilityBenignStringToken(
                           String(ContextGL()->GetString(GL_RENDERER))));
          }
@@ -13,7 +13,7 @@
        }
        SynthesizeGLError(
            GL_INVALID_ENUM, "getParameter",
-@@ -3610,8 +3609,7 @@ ScriptValue WebGLRenderingContextBase::g
+@@ -3632,8 +3631,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
-@@ -416,7 +416,7 @@ const base::Feature kComputePressure{"Co
+@@ -422,7 +422,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
-@@ -440,11 +440,6 @@ int GetContentRestrictions(const Browser
+@@ -441,11 +441,6 @@ int GetContentRestrictions(const Browser
      CoreTabHelper* core_tab_helper =
          CoreTabHelper::FromWebContents(current_tab);
      content_restrictions = core_tab_helper->content_restrictions();
@@ -14,8 +14,8 @@
    }
    return content_restrictions;
  }
-@@ -1342,8 +1337,7 @@ bool CanSavePage(const Browser* browser)
-           prefs::kAllowFileSelectionDialogs)) {
+@@ -1351,8 +1346,7 @@ bool CanSavePage(const Browser* browser)
+       DownloadPrefs::DownloadRestriction::ALL_FILES) {
      return false;
    }
 -  return !browser->is_type_devtools() &&

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

@@ -1,6 +1,6 @@
 --- a/chrome/browser/ui/views/tabs/new_tab_button.cc
 +++ b/chrome/browser/ui/views/tabs/new_tab_button.cc
-@@ -58,10 +58,8 @@ NewTabButton::NewTabButton(TabStrip* tab
+@@ -59,10 +59,8 @@ NewTabButton::NewTabButton(TabStrip* tab
    SetAnimateOnStateChange(true);
  // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch
  // of lacros-chrome is complete.
@@ -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
-@@ -2680,8 +2680,6 @@ void TabStrip::NewTabButtonPressed(const
+@@ -2339,8 +2339,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;
-@@ -2689,7 +2687,6 @@ void TabStrip::NewTabButtonPressed(const
+@@ -2348,7 +2346,6 @@ void TabStrip::NewTabButtonPressed(const
                              /* data_dst = */ nullptr, &clipboard_text);
          if (!clipboard_text.empty())
            controller_->CreateNewTabWithLocation(clipboard_text);

+ 2 - 2
patches/extra/ungoogled-chromium/keep-expired-flags.patch

@@ -8,7 +8,7 @@
  #include "components/flags_ui/feature_entry.h"
  #include "components/flags_ui/flags_storage.h"
  #include "components/flags_ui/flags_ui_switches.h"
-@@ -577,14 +578,18 @@ void FlagsState::GetFlagFeatureEntries(
+@@ -587,14 +588,18 @@ void FlagsState::GetFlagFeatureEntries(
    int current_platform = GetCurrentPlatform();
  
    for (const FeatureEntry& entry : feature_entries_) {
@@ -28,7 +28,7 @@
  
      base::Value supported_platforms(base::Value::Type::LIST);
      AddOsStrings(entry.supported_platforms, &supported_platforms);
-@@ -901,6 +906,7 @@ bool FlagsState::IsSupportedFeature(cons
+@@ -913,6 +918,7 @@ bool FlagsState::IsSupportedFeature(cons
      if (!entry.InternalNameMatches(name))
        continue;
      if (delegate_ && delegate_->ShouldExcludeFlag(storage, entry))

+ 17 - 19
patches/extra/ungoogled-chromium/remove-uneeded-ui.patch

@@ -88,9 +88,9 @@
                label="$i18n{captionsTitle}"
                on-click="onCaptionsClick_"
 @@ -51,10 +51,6 @@
+             label="$i18n{accessibleImageLabelsTitle}"
              sub-label="$i18n{accessibleImageLabelsSubtitle}">
          </settings-toggle-button>
- </if>
 -        <cr-link-row class="hr" label="$i18n{moreFeaturesLink}"
 -            on-click="onMoreFeaturesLinkClick_" sub-label="$i18n{a11yWebStore}"
 -            external>
@@ -176,12 +176,12 @@
          border-top: none;
        }
      </style>
--<if expr="not chromeos">
+-<if expr="not chromeos and not lacros">
 +<if expr="false">
+     <!-- Signout is not supported yet on lacros, https://crbug.com/1217645 -->
      <settings-toggle-button id="signinAllowedToggle"
          class="hr"
-         hidden="[[!signinAvailable_]]"
-@@ -51,12 +51,6 @@
+@@ -52,12 +52,6 @@
      </settings-toggle-button>
  </if><!-- not chromeos -->
  </if><!-- _google_chrome -->
@@ -222,7 +222,7 @@
            prefs.default_search_provider_data.template_url_data)]]">
 --- a/chrome/browser/resources/settings/settings_menu/settings_menu.html
 +++ b/chrome/browser/resources/settings/settings_menu/settings_menu.html
-@@ -111,7 +111,7 @@
+@@ -118,7 +118,7 @@
              $i18n{autofillPageTitle}
              <paper-ripple></paper-ripple>
            </a>
@@ -264,19 +264,17 @@
          ui::ImageModel::FromImage(
 --- a/chrome/browser/ui/views/sad_tab_view.cc
 +++ b/chrome/browser/ui/views/sad_tab_view.cc
-@@ -556,15 +556,9 @@ SadTabView::SadTabView(content::WebConte
-       CreateErrorCodeLabel(GetErrorCodeFormatString(), GetCrashedErrorCode()),
-       2, 1.0, views::GridLayout::LEADING, views::GridLayout::LEADING);
- 
--  auto help_link = std::make_unique<views::Link>(
--      l10n_util::GetStringUTF16(GetHelpLinkTitle()));
+@@ -549,13 +549,6 @@ SadTabView::SadTabView(content::WebConte
+   auto* actions_container =
+       container->AddChildView(std::make_unique<views::FlexLayoutView>());
+   actions_container->SetCrossAxisAlignment(views::LayoutAlignment::kCenter);
+-  auto* help_link =
+-      actions_container->AddChildView(std::make_unique<views::Link>(
+-          l10n_util::GetStringUTF16(GetHelpLinkTitle())));
 -  help_link->SetCallback(base::BindRepeating(
 -      &SadTab::PerformAction, base::Unretained(this), Action::HELP_LINK));
-   layout->StartRowWithPadding(views::GridLayout::kFixedSize, column_set_id,
-                               views::GridLayout::kFixedSize,
-                               unrelated_vertical_spacing_large);
--  layout->AddView(std::move(help_link), 1.0, 1.0, views::GridLayout::LEADING,
--                  views::GridLayout::CENTER);
-   auto action_button = std::make_unique<views::MdTextButton>(
-       base::BindRepeating(&SadTabView::PerformAction, base::Unretained(this),
-                           Action::BUTTON),
+-  help_link->SetProperty(views::kTableVertAlignKey,
+-                         views::LayoutAlignment::kCenter);
+   action_button_ =
+       actions_container->AddChildView(std::make_unique<views::MdTextButton>(
+           base::BindRepeating(&SadTabView::PerformAction,

+ 1 - 1
patches/series

@@ -64,7 +64,6 @@ extra/ungoogled-chromium/disable-intranet-redirect-detector.patch
 extra/ungoogled-chromium/enable-page-saving-on-more-pages.patch
 extra/ungoogled-chromium/disable-download-quarantine.patch
 extra/ungoogled-chromium/fix-building-without-mdns-and-service-discovery.patch
-extra/ungoogled-chromium/add-flag-to-stack-tabs.patch
 extra/ungoogled-chromium/add-flag-to-configure-extension-downloading.patch
 extra/ungoogled-chromium/add-flag-for-search-engine-collection.patch
 extra/ungoogled-chromium/add-flag-to-disable-beforeunload.patch
@@ -97,6 +96,7 @@ extra/ungoogled-chromium/keep-expired-flags.patch
 extra/ungoogled-chromium/add-flag-for-custom-ntp.patch
 extra/ungoogled-chromium/add-flag-for-tab-hover-cards.patch
 extra/ungoogled-chromium/add-flag-to-hide-tab-close-buttons.patch
+extra/ungoogled-chromium/disable-remote-optimization-guide.patch
 extra/bromite/fingerprinting-flags-client-rects-and-measuretext.patch
 extra/bromite/flag-max-connections-per-host.patch
 extra/bromite/flag-fingerprinting-canvas-image-data-noise.patch

File diff suppressed because it is too large
+ 12 - 2309
pruning.list


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