Browse Source

Upgrade to chromium 83.0.4103.61

Zoraver Kang 3 years ago
parent
commit
588c197d3c
59 changed files with 1181 additions and 896 deletions
  1. 1 1
      chromium_version.txt
  2. 145 94
      domain_substitution.list
  3. 19 8
      patches/core/bromite/disable-fetching-field-trials.patch
  4. 4 4
      patches/core/debian/disable/unrar.patch
  5. 107 97
      patches/core/inox-patchset/0001-fix-building-without-safebrowsing.patch
  6. 1 1
      patches/core/inox-patchset/0005-disable-default-extensions.patch
  7. 1 1
      patches/core/inox-patchset/0009-disable-google-ipv6-probes.patch
  8. 2 2
      patches/core/inox-patchset/0014-disable-translation-lang-fetch.patch
  9. 55 42
      patches/core/iridium-browser/all-add-trk-prefixes-to-possibly-evil-connections.patch
  10. 3 3
      patches/core/iridium-browser/safe_browsing-disable-incident-reporting.patch
  11. 9 4
      patches/core/iridium-browser/safe_browsing-disable-reporting-of-safebrowsing-over.patch
  12. 11 11
      patches/core/ungoogled-chromium/block-trk-and-subdomains.patch
  13. 8 9
      patches/core/ungoogled-chromium/disable-crash-reporter.patch
  14. 45 18
      patches/core/ungoogled-chromium/disable-domain-reliability.patch
  15. 4 4
      patches/core/ungoogled-chromium/disable-gaia.patch
  16. 3 3
      patches/core/ungoogled-chromium/disable-gcm.patch
  17. 49 45
      patches/core/ungoogled-chromium/disable-google-host-detection.patch
  18. 2 2
      patches/core/ungoogled-chromium/disable-mei-preload.patch
  19. 3 3
      patches/core/ungoogled-chromium/disable-profile-avatar-downloading.patch
  20. 2 3
      patches/core/ungoogled-chromium/disable-signin.patch
  21. 1 1
      patches/core/ungoogled-chromium/disable-translate.patch
  22. 5 5
      patches/core/ungoogled-chromium/disable-untraceable-urls.patch
  23. 6 6
      patches/core/ungoogled-chromium/disable-webstore-urls.patch
  24. 1 1
      patches/core/ungoogled-chromium/fix-building-without-one-click-signin.patch
  25. 66 56
      patches/core/ungoogled-chromium/fix-building-without-safebrowsing.patch
  26. 323 196
      patches/core/ungoogled-chromium/remove-unused-preferences-fields.patch
  27. 18 18
      patches/core/ungoogled-chromium/use-local-devtools-files.patch
  28. 25 25
      patches/extra/bromite/fingerprinting-flags-client-rects-and-measuretext.patch
  29. 9 9
      patches/extra/bromite/flag-fingerprinting-canvas-image-data-noise.patch
  30. 11 11
      patches/extra/bromite/flag-max-connections-per-host.patch
  31. 0 10
      patches/extra/debian/disable/android.patch
  32. 1 1
      patches/extra/debian/disable/device-notifications.patch
  33. 3 3
      patches/extra/debian/disable/fuzzers.patch
  34. 1 1
      patches/extra/debian/disable/google-api-warning.patch
  35. 1 1
      patches/extra/debian/disable/welcome-page.patch
  36. 5 22
      patches/extra/inox-patchset/0006-modify-default-prefs.patch
  37. 1 1
      patches/extra/inox-patchset/0008-restore-classic-ntp.patch
  38. 1 1
      patches/extra/iridium-browser/browser-disable-profile-auto-import-on-first-run.patch
  39. 1 1
      patches/extra/iridium-browser/mime_util-force-text-x-suse-ymp-to-be-downloaded.patch
  40. 2 2
      patches/extra/iridium-browser/prefs-only-keep-cookies-until-exit.patch
  41. 1 1
      patches/extra/iridium-browser/updater-disable-auto-update.patch
  42. 14 7
      patches/extra/ungoogled-chromium/add-flag-for-search-engine-collection.patch
  43. 4 4
      patches/extra/ungoogled-chromium/add-flag-to-configure-extension-downloading.patch
  44. 3 3
      patches/extra/ungoogled-chromium/add-flag-to-disable-beforeunload.patch
  45. 1 1
      patches/extra/ungoogled-chromium/add-flag-to-force-punycode-hostnames.patch
  46. 3 3
      patches/extra/ungoogled-chromium/add-flag-to-hide-crashed-bubble.patch
  47. 6 6
      patches/extra/ungoogled-chromium/add-flag-to-scroll-tabs.patch
  48. 9 12
      patches/extra/ungoogled-chromium/add-flag-to-show-avatar-button.patch
  49. 2 2
      patches/extra/ungoogled-chromium/add-flag-to-stack-tabs.patch
  50. 6 6
      patches/extra/ungoogled-chromium/add-ipv6-probing-option.patch
  51. 4 4
      patches/extra/ungoogled-chromium/add-suggestions-url-field.patch
  52. 4 4
      patches/extra/ungoogled-chromium/default-to-https-scheme.patch
  53. 2 2
      patches/extra/ungoogled-chromium/disable-download-quarantine.patch
  54. 1 1
      patches/extra/ungoogled-chromium/disable-webgl-renderer-info.patch
  55. 2 2
      patches/extra/ungoogled-chromium/enable-page-saving-on-more-pages.patch
  56. 1 1
      patches/extra/ungoogled-chromium/enable-paste-and-go-new-tab-button.patch
  57. 1 1
      patches/extra/ungoogled-chromium/popups-to-tabs.patch
  58. 1 1
      patches/extra/ungoogled-chromium/remove-disable-setuid-sandbox-as-bad-flag.patch
  59. 161 109
      pruning.list

+ 1 - 1
chromium_version.txt

@@ -1 +1 @@
-81.0.4044.138
+83.0.4103.61

File diff suppressed because it is too large
+ 145 - 94
domain_substitution.list


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

@@ -10,11 +10,22 @@ Subject: Disable fetching of all field trials
 
 
 --- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
 --- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
 +++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
 +++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
-@@ -108,10 +108,7 @@ public abstract class ChromeFeatureList
+@@ -138,9 +138,7 @@ public abstract class ChromeFeatureList
+      *   the specified parameter does not exist.
+      */
+     public static String getFieldTrialParamByFeature(String featureName, String paramName) {
+-        if (FeatureList.hasTestFeatures()) return "";
+-        assert isInitialized();
+-        return ChromeFeatureListJni.get().getFieldTrialParamByFeature(featureName, paramName);
++        return "";
+     }
+ 
+     /**
+@@ -157,10 +155,7 @@ public abstract class ChromeFeatureList
       */
       */
      public static int getFieldTrialParamByFeatureAsInt(
      public static int getFieldTrialParamByFeatureAsInt(
              String featureName, String paramName, int defaultValue) {
              String featureName, String paramName, int defaultValue) {
--        if (sTestFeatures != null) return defaultValue;
+-        if (FeatureList.hasTestFeatures()) return defaultValue;
 -        assert isInitialized();
 -        assert isInitialized();
 -        return ChromeFeatureListJni.get().getFieldTrialParamByFeatureAsInt(
 -        return ChromeFeatureListJni.get().getFieldTrialParamByFeatureAsInt(
 -                featureName, paramName, defaultValue);
 -                featureName, paramName, defaultValue);
@@ -22,11 +33,11 @@ Subject: Disable fetching of all field trials
      }
      }
  
  
      /**
      /**
-@@ -128,10 +125,7 @@ public abstract class ChromeFeatureList
+@@ -177,10 +172,7 @@ public abstract class ChromeFeatureList
       */
       */
      public static double getFieldTrialParamByFeatureAsDouble(
      public static double getFieldTrialParamByFeatureAsDouble(
              String featureName, String paramName, double defaultValue) {
              String featureName, String paramName, double defaultValue) {
--        if (sTestFeatures != null) return defaultValue;
+-        if (FeatureList.hasTestFeatures()) return defaultValue;
 -        assert isInitialized();
 -        assert isInitialized();
 -        return ChromeFeatureListJni.get().getFieldTrialParamByFeatureAsDouble(
 -        return ChromeFeatureListJni.get().getFieldTrialParamByFeatureAsDouble(
 -                featureName, paramName, defaultValue);
 -                featureName, paramName, defaultValue);
@@ -34,21 +45,21 @@ Subject: Disable fetching of all field trials
      }
      }
  
  
      /**
      /**
-@@ -148,10 +142,7 @@ public abstract class ChromeFeatureList
+@@ -197,10 +189,7 @@ public abstract class ChromeFeatureList
       */
       */
      public static boolean getFieldTrialParamByFeatureAsBoolean(
      public static boolean getFieldTrialParamByFeatureAsBoolean(
              String featureName, String paramName, boolean defaultValue) {
              String featureName, String paramName, boolean defaultValue) {
--        if (sTestFeatures != null) return defaultValue;
+-        if (FeatureList.hasTestFeatures()) return defaultValue;
 -        assert isInitialized();
 -        assert isInitialized();
 -        return ChromeFeatureListJni.get().getFieldTrialParamByFeatureAsBoolean(
 -        return ChromeFeatureListJni.get().getFieldTrialParamByFeatureAsBoolean(
 -                featureName, paramName, defaultValue);
 -                featureName, paramName, defaultValue);
 +        return defaultValue;
 +        return defaultValue;
      }
      }
  
  
-     // Alphabetical:
+     /** Alphabetical: */
 --- a/components/variations/service/variations_service.cc
 --- a/components/variations/service/variations_service.cc
 +++ b/components/variations/service/variations_service.cc
 +++ b/components/variations/service/variations_service.cc
-@@ -242,17 +242,7 @@ bool GetInstanceManipulations(const net:
+@@ -243,17 +243,7 @@ bool GetInstanceManipulations(const net:
  // Variations seed fetching is only enabled in official Chrome builds, if a URL
  // Variations seed fetching is only enabled in official Chrome builds, if a URL
  // is specified on the command line, and for testing.
  // is specified on the command line, and for testing.
  bool IsFetchingEnabled() {
  bool IsFetchingEnabled() {

+ 4 - 4
patches/core/debian/disable/unrar.patch

@@ -4,7 +4,7 @@ bug: http://bugs.debian.org/914487
 
 
 --- a/chrome/browser/safe_browsing/download_protection/file_analyzer.cc
 --- a/chrome/browser/safe_browsing/download_protection/file_analyzer.cc
 +++ b/chrome/browser/safe_browsing/download_protection/file_analyzer.cc
 +++ b/chrome/browser/safe_browsing/download_protection/file_analyzer.cc
-@@ -92,7 +92,7 @@ void FileAnalyzer::Start(const base::Fil
+@@ -93,7 +93,7 @@ void FileAnalyzer::Start(const base::Fil
    if (inspection_type == DownloadFileType::ZIP) {
    if (inspection_type == DownloadFileType::ZIP) {
      StartExtractZipFeatures();
      StartExtractZipFeatures();
    } else if (inspection_type == DownloadFileType::RAR) {
    } else if (inspection_type == DownloadFileType::RAR) {
@@ -15,7 +15,7 @@ bug: http://bugs.debian.org/914487
      StartExtractDmgFeatures();
      StartExtractDmgFeatures();
 --- a/chrome/common/safe_browsing/BUILD.gn
 --- a/chrome/common/safe_browsing/BUILD.gn
 +++ b/chrome/common/safe_browsing/BUILD.gn
 +++ b/chrome/common/safe_browsing/BUILD.gn
-@@ -72,39 +72,6 @@ if (safe_browsing_mode == 1) {
+@@ -57,39 +57,6 @@ if (safe_browsing_mode == 1) {
      public_deps = [ "//components/safe_browsing/core:csd_proto" ]
      public_deps = [ "//components/safe_browsing/core:csd_proto" ]
    }
    }
  
  
@@ -28,10 +28,10 @@ bug: http://bugs.debian.org/914487
 -    deps = [
 -    deps = [
 -      ":archive_analyzer_results",
 -      ":archive_analyzer_results",
 -      ":download_type_util",
 -      ":download_type_util",
--      ":file_type_policies",
 -      "//base",
 -      "//base",
 -      "//base:i18n",
 -      "//base:i18n",
 -      "//components/safe_browsing/core:features",
 -      "//components/safe_browsing/core:features",
+-      "//components/safe_browsing/core:file_type_policies",
 -      "//third_party/unrar:unrar",
 -      "//third_party/unrar:unrar",
 -    ]
 -    ]
 -
 -
@@ -55,7 +55,7 @@ bug: http://bugs.debian.org/914487
    source_set("disk_image_type_sniffer_mac") {
    source_set("disk_image_type_sniffer_mac") {
      sources = [
      sources = [
        "disk_image_type_sniffer_mac.cc",
        "disk_image_type_sniffer_mac.cc",
-@@ -171,7 +138,6 @@ source_set("safe_browsing") {
+@@ -156,7 +123,6 @@ source_set("safe_browsing") {
        ":archive_analyzer_results",
        ":archive_analyzer_results",
        ":binary_feature_extractor",
        ":binary_feature_extractor",
        ":download_type_util",
        ":download_type_util",

+ 107 - 97
patches/core/inox-patchset/0001-fix-building-without-safebrowsing.patch

@@ -1,6 +1,6 @@
 --- a/chrome/browser/BUILD.gn
 --- a/chrome/browser/BUILD.gn
 +++ b/chrome/browser/BUILD.gn
 +++ b/chrome/browser/BUILD.gn
-@@ -3105,8 +3105,6 @@ jumbo_static_library("browser") {
+@@ -3180,8 +3180,6 @@ jumbo_static_library("browser") {
        "download/download_commands.h",
        "download/download_commands.h",
        "download/download_crx_util.cc",
        "download/download_crx_util.cc",
        "download/download_crx_util.h",
        "download/download_crx_util.h",
@@ -11,7 +11,7 @@
        "download/download_dir_util.cc",
        "download/download_dir_util.cc",
 --- a/chrome/browser/browser_process.h
 --- a/chrome/browser/browser_process.h
 +++ b/chrome/browser/browser_process.h
 +++ b/chrome/browser/browser_process.h
-@@ -45,10 +45,6 @@ class NetworkQualityTracker;
+@@ -46,10 +46,6 @@ class NetworkQualityTracker;
  class SharedURLLoaderFactory;
  class SharedURLLoaderFactory;
  }
  }
  
  
@@ -22,7 +22,7 @@
  namespace subresource_filter {
  namespace subresource_filter {
  class RulesetService;
  class RulesetService;
  }
  }
-@@ -106,10 +102,6 @@ class ResourceCoordinatorParts;
+@@ -107,10 +103,6 @@ class ResourceCoordinatorParts;
  class TabManager;
  class TabManager;
  }
  }
  
  
@@ -33,7 +33,7 @@
  // NOT THREAD SAFE, call only from the main thread.
  // NOT THREAD SAFE, call only from the main thread.
  // These functions shouldn't return NULL unless otherwise noted.
  // These functions shouldn't return NULL unless otherwise noted.
  class BrowserProcess {
  class BrowserProcess {
-@@ -210,14 +202,6 @@ class BrowserProcess {
+@@ -211,14 +203,6 @@ class BrowserProcess {
    // on this platform (or this is a unit test).
    // on this platform (or this is a unit test).
    virtual StatusTray* status_tray() = 0;
    virtual StatusTray* status_tray() = 0;
  
  
@@ -50,7 +50,7 @@
    virtual subresource_filter::RulesetService*
    virtual subresource_filter::RulesetService*
 --- a/chrome/browser/browser_process_impl.cc
 --- a/chrome/browser/browser_process_impl.cc
 +++ b/chrome/browser/browser_process_impl.cc
 +++ b/chrome/browser/browser_process_impl.cc
-@@ -67,7 +67,6 @@
+@@ -70,7 +70,6 @@
  #include "chrome/browser/printing/print_preview_dialog_controller.h"
  #include "chrome/browser/printing/print_preview_dialog_controller.h"
  #include "chrome/browser/profiles/profile_manager.h"
  #include "chrome/browser/profiles/profile_manager.h"
  #include "chrome/browser/resource_coordinator/resource_coordinator_parts.h"
  #include "chrome/browser/resource_coordinator/resource_coordinator_parts.h"
@@ -58,7 +58,7 @@
  #include "chrome/browser/shell_integration.h"
  #include "chrome/browser/shell_integration.h"
  #include "chrome/browser/site_isolation/prefs_observer.h"
  #include "chrome/browser/site_isolation/prefs_observer.h"
  #include "chrome/browser/ssl/secure_origin_prefs_observer.h"
  #include "chrome/browser/ssl/secure_origin_prefs_observer.h"
-@@ -356,8 +355,6 @@ void BrowserProcessImpl::StartTearDown()
+@@ -373,8 +372,6 @@ void BrowserProcessImpl::StartTearDown()
  
  
    metrics_services_manager_.reset();
    metrics_services_manager_.reset();
    intranet_redirect_detector_.reset();
    intranet_redirect_detector_.reset();
@@ -67,7 +67,7 @@
    network_time_tracker_.reset();
    network_time_tracker_.reset();
  #if BUILDFLAG(ENABLE_PLUGINS)
  #if BUILDFLAG(ENABLE_PLUGINS)
    plugins_resource_service_.reset();
    plugins_resource_service_.reset();
-@@ -957,22 +954,6 @@ StatusTray* BrowserProcessImpl::status_t
+@@ -988,22 +985,6 @@ StatusTray* BrowserProcessImpl::status_t
    return status_tray_.get();
    return status_tray_.get();
  }
  }
  
  
@@ -90,7 +90,7 @@
  subresource_filter::RulesetService*
  subresource_filter::RulesetService*
  BrowserProcessImpl::subresource_filter_ruleset_service() {
  BrowserProcessImpl::subresource_filter_ruleset_service() {
    DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
    DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
-@@ -1225,26 +1206,6 @@ void BrowserProcessImpl::CreateBackgroun
+@@ -1256,26 +1237,6 @@ void BrowserProcessImpl::CreateBackgroun
  #endif
  #endif
  }
  }
  
  
@@ -119,7 +119,7 @@
    created_subresource_filter_ruleset_service_ = true;
    created_subresource_filter_ruleset_service_ = true;
 --- a/chrome/browser/browser_process_impl.h
 --- a/chrome/browser/browser_process_impl.h
 +++ b/chrome/browser/browser_process_impl.h
 +++ b/chrome/browser/browser_process_impl.h
-@@ -165,9 +165,6 @@ class BrowserProcessImpl : public Browse
+@@ -169,9 +169,6 @@ class BrowserProcessImpl : public Browse
    void set_background_mode_manager_for_test(
    void set_background_mode_manager_for_test(
        std::unique_ptr<BackgroundModeManager> manager) override;
        std::unique_ptr<BackgroundModeManager> manager) override;
    StatusTray* status_tray() override;
    StatusTray* status_tray() override;
@@ -129,7 +129,7 @@
    subresource_filter::RulesetService* subresource_filter_ruleset_service()
    subresource_filter::RulesetService* subresource_filter_ruleset_service()
        override;
        override;
    optimization_guide::OptimizationGuideService* optimization_guide_service()
    optimization_guide::OptimizationGuideService* optimization_guide_service()
-@@ -308,9 +305,6 @@ class BrowserProcessImpl : public Browse
+@@ -315,9 +312,6 @@ class BrowserProcessImpl : public Browse
    std::unique_ptr<BackgroundModeManager> background_mode_manager_;
    std::unique_ptr<BackgroundModeManager> background_mode_manager_;
  #endif
  #endif
  
  
@@ -141,7 +141,7 @@
        subresource_filter_ruleset_service_;
        subresource_filter_ruleset_service_;
 --- a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc
 --- a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc
 +++ b/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc
 +++ b/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc
-@@ -60,7 +60,6 @@
+@@ -62,7 +62,6 @@
  #include "chrome/browser/previews/previews_service.h"
  #include "chrome/browser/previews/previews_service.h"
  #include "chrome/browser/previews/previews_service_factory.h"
  #include "chrome/browser/previews/previews_service_factory.h"
  #include "chrome/browser/profiles/profile.h"
  #include "chrome/browser/profiles/profile.h"
@@ -149,7 +149,7 @@
  #include "chrome/browser/translate/chrome_translate_client.h"
  #include "chrome/browser/translate/chrome_translate_client.h"
  #include "chrome/browser/ui/find_bar/find_bar_state.h"
  #include "chrome/browser/ui/find_bar/find_bar_state.h"
  #include "chrome/browser/ui/find_bar/find_bar_state_factory.h"
  #include "chrome/browser/ui/find_bar/find_bar_state_factory.h"
-@@ -651,36 +650,6 @@ void ChromeBrowsingDataRemoverDelegate::
+@@ -649,36 +648,6 @@ void ChromeBrowsingDataRemoverDelegate::
          ContentSettingsType::CLIENT_HINTS, base::Time(), base::Time::Max(),
          ContentSettingsType::CLIENT_HINTS, base::Time(), base::Time::Max(),
          website_settings_filter);
          website_settings_filter);
  
  
@@ -188,7 +188,7 @@
  
  
 --- a/chrome/browser/chrome_content_browser_client.cc
 --- a/chrome/browser/chrome_content_browser_client.cc
 +++ b/chrome/browser/chrome_content_browser_client.cc
 +++ b/chrome/browser/chrome_content_browser_client.cc
-@@ -874,30 +874,6 @@ void SetApplicationLocaleOnIOThread(cons
+@@ -843,30 +843,6 @@ void SetApplicationLocaleOnIOThread(cons
    GetIOThreadApplicationLocale() = locale;
    GetIOThreadApplicationLocale() = locale;
  }
  }
  
  
@@ -219,7 +219,7 @@
  #if defined(OS_ANDROID)
  #if defined(OS_ANDROID)
  float GetDeviceScaleAdjustment() {
  float GetDeviceScaleAdjustment() {
    static const float kMinFSM = 1.05f;
    static const float kMinFSM = 1.05f;
-@@ -1337,7 +1313,6 @@ void ChromeContentBrowserClient::PostAft
+@@ -1296,7 +1272,6 @@ void ChromeContentBrowserClient::PostAft
    InitNetworkContextsParentDirectory();
    InitNetworkContextsParentDirectory();
  
  
    DCHECK_CURRENTLY_ON(BrowserThread::UI);
    DCHECK_CURRENTLY_ON(BrowserThread::UI);
@@ -227,16 +227,16 @@
  }
  }
  
  
  bool ChromeContentBrowserClient::IsBrowserStartupComplete() {
  bool ChromeContentBrowserClient::IsBrowserStartupComplete() {
-@@ -2130,7 +2105,7 @@ void ChromeContentBrowserClient::AppendE
+@@ -2089,7 +2064,7 @@ void ChromeContentBrowserClient::AppendE
        // Disable client-side phishing detection in the renderer if it is
        // Disable client-side phishing detection in the renderer if it is
        // disabled in the Profile preferences or the browser process.
        // disabled in the Profile preferences or the browser process.
-       if (!prefs->GetBoolean(prefs::kSafeBrowsingEnabled) ||
+       if (!safe_browsing::IsSafeBrowsingEnabled(*prefs) ||
 -          !g_browser_process->safe_browsing_detection_service()) {
 -          !g_browser_process->safe_browsing_detection_service()) {
 +          true) {
 +          true) {
          command_line->AppendSwitch(
          command_line->AppendSwitch(
              switches::kDisableClientSidePhishingDetection);
              switches::kDisableClientSidePhishingDetection);
        }
        }
-@@ -3973,7 +3948,7 @@ ChromeContentBrowserClient::CreateThrott
+@@ -3956,7 +3931,7 @@ ChromeContentBrowserClient::CreateThrott
        base::BindRepeating(&MaybeTriggerSecurityInterstitialShownEvent));
        base::BindRepeating(&MaybeTriggerSecurityInterstitialShownEvent));
    throttles.push_back(std::make_unique<SSLErrorNavigationThrottle>(
    throttles.push_back(std::make_unique<SSLErrorNavigationThrottle>(
        handle,
        handle,
@@ -245,7 +245,7 @@
        base::BindOnce(&HandleSSLErrorWrapper), base::BindOnce(&IsInHostedApp)));
        base::BindOnce(&HandleSSLErrorWrapper), base::BindOnce(&IsInHostedApp)));
  
  
    throttles.push_back(std::make_unique<LoginNavigationThrottle>(handle));
    throttles.push_back(std::make_unique<LoginNavigationThrottle>(handle));
-@@ -3994,12 +3969,6 @@ ChromeContentBrowserClient::CreateThrott
+@@ -3977,12 +3952,6 @@ ChromeContentBrowserClient::CreateThrott
        GooglePasswordManagerNavigationThrottle::MaybeCreateThrottleFor(handle));
        GooglePasswordManagerNavigationThrottle::MaybeCreateThrottleFor(handle));
  #endif
  #endif
  
  
@@ -260,7 +260,7 @@
    MaybeAddThrottle(&throttles,
    MaybeAddThrottle(&throttles,
 --- a/chrome/browser/component_updater/file_type_policies_component_installer.cc
 --- a/chrome/browser/component_updater/file_type_policies_component_installer.cc
 +++ b/chrome/browser/component_updater/file_type_policies_component_installer.cc
 +++ b/chrome/browser/component_updater/file_type_policies_component_installer.cc
-@@ -38,20 +38,6 @@ const uint8_t kFileTypePoliciesPublicKey
+@@ -39,20 +39,6 @@ const uint8_t kFileTypePoliciesPublicKey
  const char kFileTypePoliciesManifestName[] = "File Type Policies";
  const char kFileTypePoliciesManifestName[] = "File Type Policies";
  
  
  void LoadFileTypesFromDisk(const base::FilePath& pb_path) {
  void LoadFileTypesFromDisk(const base::FilePath& pb_path) {
@@ -283,7 +283,7 @@
  }  // namespace
  }  // namespace
 --- a/chrome/browser/download/chrome_download_manager_delegate.cc
 --- a/chrome/browser/download/chrome_download_manager_delegate.cc
 +++ b/chrome/browser/download/chrome_download_manager_delegate.cc
 +++ b/chrome/browser/download/chrome_download_manager_delegate.cc
-@@ -327,13 +327,6 @@ ChromeDownloadManagerDelegate::~ChromeDo
+@@ -328,13 +328,6 @@ ChromeDownloadManagerDelegate::~ChromeDo
  
  
  void ChromeDownloadManagerDelegate::SetDownloadManager(DownloadManager* dm) {
  void ChromeDownloadManagerDelegate::SetDownloadManager(DownloadManager* dm) {
    download_manager_ = dm;
    download_manager_ = dm;
@@ -297,7 +297,7 @@
  }
  }
  
  
  #if defined(OS_ANDROID)
  #if defined(OS_ANDROID)
-@@ -638,16 +631,6 @@ void ChromeDownloadManagerDelegate::Choo
+@@ -639,16 +632,6 @@ void ChromeDownloadManagerDelegate::Choo
  
  
  void ChromeDownloadManagerDelegate::SanitizeSavePackageResourceName(
  void ChromeDownloadManagerDelegate::SanitizeSavePackageResourceName(
      base::FilePath* filename) {
      base::FilePath* filename) {
@@ -316,7 +316,7 @@
  void ChromeDownloadManagerDelegate::SanitizeDownloadParameters(
  void ChromeDownloadManagerDelegate::SanitizeDownloadParameters(
 --- a/chrome/browser/download/download_item_model.cc
 --- a/chrome/browser/download/download_item_model.cc
 +++ b/chrome/browser/download/download_item_model.cc
 +++ b/chrome/browser/download/download_item_model.cc
-@@ -78,7 +78,7 @@ class DownloadItemModelData : public bas
+@@ -79,7 +79,7 @@ class DownloadItemModelData : public bas
  
  
    // Danger level of the file determined based on the file type and whether
    // Danger level of the file determined based on the file type and whether
    // there was a user action associated with the download.
    // there was a user action associated with the download.
@@ -325,7 +325,7 @@
  
  
    // Whether the download is currently being revived.
    // Whether the download is currently being revived.
    bool is_being_revived_;
    bool is_being_revived_;
-@@ -115,7 +115,7 @@ DownloadItemModelData::DownloadItemModel
+@@ -116,7 +116,7 @@ DownloadItemModelData::DownloadItemModel
      : should_show_in_shelf_(true),
      : should_show_in_shelf_(true),
        was_ui_notified_(false),
        was_ui_notified_(false),
        should_prefer_opening_in_browser_(false),
        should_prefer_opening_in_browser_(false),
@@ -334,7 +334,7 @@
        is_being_revived_(false) {}
        is_being_revived_(false) {}
  
  
  } // namespace
  } // namespace
-@@ -397,13 +397,13 @@ void DownloadItemModel::SetShouldPreferO
+@@ -400,13 +400,13 @@ void DownloadItemModel::SetShouldPreferO
    data->should_prefer_opening_in_browser_ = preference;
    data->should_prefer_opening_in_browser_ = preference;
  }
  }
  
  
@@ -351,7 +351,7 @@
    DownloadItemModelData* data = DownloadItemModelData::GetOrCreate(download_);
    DownloadItemModelData* data = DownloadItemModelData::GetOrCreate(download_);
    data->danger_level_ = danger_level;
    data->danger_level_ = danger_level;
  }
  }
-@@ -560,9 +560,6 @@ bool DownloadItemModel::IsCommandEnabled
+@@ -563,9 +563,6 @@ bool DownloadItemModel::IsCommandEnabled
        // filename. Don't base an "Always open" decision based on it. Also
        // filename. Don't base an "Always open" decision based on it. Also
        // exclude extensions.
        // exclude extensions.
        return download_->CanOpenDownload() &&
        return download_->CanOpenDownload() &&
@@ -392,18 +392,21 @@
    extension.erase(0, 1);
    extension.erase(0, 1);
 --- a/chrome/browser/download/download_target_determiner.cc
 --- a/chrome/browser/download/download_target_determiner.cc
 +++ b/chrome/browser/download/download_target_determiner.cc
 +++ b/chrome/browser/download/download_target_determiner.cc
-@@ -258,9 +258,7 @@ DownloadTargetDeterminer::Result
-     // considered safe by safe browsing. Noticed that when generating file name,
-     // |suggested_filename| and Content-Disposition header have higher priority
-     // than the URL.
--    bool safe_file_ext =
--        !safe_browsing::FileTypePolicies::GetInstance()->IsCheckedBinaryFile(
--            generated_filename);
-+    bool safe_file_ext = true;
-     net::HttpContentDisposition content_disposition_header(
-         download_->GetContentDisposition(), referrer_charset);
-     bool should_replace_extension =
-@@ -1068,29 +1066,7 @@ DownloadFileType::DangerLevel DownloadTa
+@@ -292,13 +292,6 @@ base::FilePath DownloadTargetDeterminer:
+       download_->GetURL(), download_->GetContentDisposition(), referrer_charset,
+       suggested_filename, sniffed_mime_type, default_filename);
+ 
+-  // We don't replace the file extension if safe browsing consider the file
+-  // extension to be unsafe. Just let safe browsing scan the generated file.
+-  if (safe_browsing::FileTypePolicies::GetInstance()->IsCheckedBinaryFile(
+-          generated_filename)) {
+-    return generated_filename;
+-  }
+-
+   // If no mime type or explicitly specified a name, don't replace file
+   // extension.
+   if (sniffed_mime_type.empty() || !suggested_filename.empty())
+@@ -1085,29 +1078,7 @@ DownloadFileType::DangerLevel DownloadTa
        download_->HasUserGesture())
        download_->HasUserGesture())
      return DownloadFileType::NOT_DANGEROUS;
      return DownloadFileType::NOT_DANGEROUS;
  
  
@@ -444,17 +447,17 @@
  #include "chrome/browser/download/download_file_icon_extractor.h"
  #include "chrome/browser/download/download_file_icon_extractor.h"
  #include "chrome/browser/download/download_open_prompt.h"
  #include "chrome/browser/download/download_open_prompt.h"
  #include "chrome/browser/download/download_prefs.h"
  #include "chrome/browser/download/download_prefs.h"
-@@ -1327,9 +1326,6 @@ DownloadsAcceptDangerFunction::Downloads
+@@ -1330,9 +1329,6 @@ DownloadsAcceptDangerFunction::Downloads
  
  
  DownloadsAcceptDangerFunction::~DownloadsAcceptDangerFunction() {}
  DownloadsAcceptDangerFunction::~DownloadsAcceptDangerFunction() {}
  
  
 -DownloadsAcceptDangerFunction::OnPromptCreatedCallback*
 -DownloadsAcceptDangerFunction::OnPromptCreatedCallback*
 -    DownloadsAcceptDangerFunction::on_prompt_created_ = NULL;
 -    DownloadsAcceptDangerFunction::on_prompt_created_ = NULL;
 -
 -
- bool DownloadsAcceptDangerFunction::RunAsync() {
+ ExtensionFunction::ResponseAction DownloadsAcceptDangerFunction::Run() {
    std::unique_ptr<downloads::AcceptDanger::Params> params(
    std::unique_ptr<downloads::AcceptDanger::Params> params(
        downloads::AcceptDanger::Params::Create(*args_));
        downloads::AcceptDanger::Params::Create(*args_));
-@@ -1367,40 +1363,7 @@ void DownloadsAcceptDangerFunction::Prom
+@@ -1370,43 +1366,7 @@ void DownloadsAcceptDangerFunction::Prom
      return;
      return;
    }
    }
    RecordApiFunctions(DOWNLOADS_FUNCTION_ACCEPT_DANGER);
    RecordApiFunctions(DOWNLOADS_FUNCTION_ACCEPT_DANGER);
@@ -477,10 +480,13 @@
 -  DCHECK_CURRENTLY_ON(BrowserThread::UI);
 -  DCHECK_CURRENTLY_ON(BrowserThread::UI);
 -  DownloadItem* download_item = GetDownload(
 -  DownloadItem* download_item = GetDownload(
 -      browser_context(), include_incognito_information(), download_id);
 -      browser_context(), include_incognito_information(), download_id);
--  if (InvalidId(download_item, &error_) ||
+-  std::string error;
+-  if (InvalidId(download_item, &error) ||
 -      Fault(download_item->GetState() != DownloadItem::IN_PROGRESS,
 -      Fault(download_item->GetState() != DownloadItem::IN_PROGRESS,
--            download_extension_errors::kNotInProgress, &error_))
+-            download_extension_errors::kNotInProgress, &error)) {
+-    Respond(Error(error));
 -    return;
 -    return;
+-  }
 -  switch (action) {
 -  switch (action) {
 -    case DownloadDangerPrompt::ACCEPT:
 -    case DownloadDangerPrompt::ACCEPT:
 -      download_item->ValidateDangerousDownload();
 -      download_item->ValidateDangerousDownload();
@@ -491,7 +497,7 @@
 -    case DownloadDangerPrompt::DISMISS:
 -    case DownloadDangerPrompt::DISMISS:
 -      break;
 -      break;
 -  }
 -  }
--  SendResponse(error_.empty());
+-  Respond(NoArguments());
 +  download_item->ValidateDangerousDownload();
 +  download_item->ValidateDangerousDownload();
  }
  }
  
  
@@ -503,12 +509,12 @@
  #include "base/scoped_observer.h"
  #include "base/scoped_observer.h"
  #include "base/time/time.h"
  #include "base/time/time.h"
 -#include "chrome/browser/download/download_danger_prompt.h"
 -#include "chrome/browser/download/download_danger_prompt.h"
- #include "chrome/browser/extensions/chrome_extension_function.h"
  #include "chrome/common/extensions/api/downloads.h"
  #include "chrome/common/extensions/api/downloads.h"
  #include "components/download/content/public/all_download_item_notifier.h"
  #include "components/download/content/public/all_download_item_notifier.h"
-@@ -186,25 +185,16 @@ class DownloadsRemoveFileFunction : publ
+ #include "components/download/public/common/download_path_reservation_tracker.h"
+@@ -187,25 +186,16 @@ class DownloadsRemoveFileFunction : publ
  
  
- class DownloadsAcceptDangerFunction : public ChromeAsyncExtensionFunction {
+ class DownloadsAcceptDangerFunction : public ExtensionFunction {
   public:
   public:
 -  typedef base::Callback<void(DownloadDangerPrompt*)> OnPromptCreatedCallback;
 -  typedef base::Callback<void(DownloadDangerPrompt*)> OnPromptCreatedCallback;
 -  static void OnPromptCreatedForTesting(
 -  static void OnPromptCreatedForTesting(
@@ -518,7 +524,7 @@
 -
 -
    DECLARE_EXTENSION_FUNCTION("downloads.acceptDanger", DOWNLOADS_ACCEPTDANGER)
    DECLARE_EXTENSION_FUNCTION("downloads.acceptDanger", DOWNLOADS_ACCEPTDANGER)
    DownloadsAcceptDangerFunction();
    DownloadsAcceptDangerFunction();
-   bool RunAsync() override;
+   ResponseAction Run() override;
  
  
   protected:
   protected:
    ~DownloadsAcceptDangerFunction() override;
    ~DownloadsAcceptDangerFunction() override;
@@ -574,7 +580,7 @@
            referrer_entries)));
            referrer_entries)));
 --- a/chrome/browser/extensions/api/webstore_private/webstore_private_api.cc
 --- a/chrome/browser/extensions/api/webstore_private/webstore_private_api.cc
 +++ b/chrome/browser/extensions/api/webstore_private/webstore_private_api.cc
 +++ b/chrome/browser/extensions/api/webstore_private/webstore_private_api.cc
-@@ -732,51 +732,9 @@ WebstorePrivateGetReferrerChainFunction:
+@@ -998,51 +998,9 @@ WebstorePrivateGetReferrerChainFunction:
  
  
  ExtensionFunction::ResponseAction
  ExtensionFunction::ResponseAction
  WebstorePrivateGetReferrerChainFunction::Run() {
  WebstorePrivateGetReferrerChainFunction::Run() {
@@ -704,7 +710,7 @@
    // SimpleURLLoader -> (owned loader, extension id).
    // SimpleURLLoader -> (owned loader, extension id).
 --- a/chrome/browser/metrics/chrome_metrics_service_client.cc
 --- a/chrome/browser/metrics/chrome_metrics_service_client.cc
 +++ b/chrome/browser/metrics/chrome_metrics_service_client.cc
 +++ b/chrome/browser/metrics/chrome_metrics_service_client.cc
-@@ -776,9 +776,6 @@ void ChromeMetricsServiceClient::Registe
+@@ -737,9 +737,6 @@ void ChromeMetricsServiceClient::Registe
    metrics_service_->RegisterMetricsProvider(
    metrics_service_->RegisterMetricsProvider(
        std::make_unique<HttpsEngagementMetricsProvider>());
        std::make_unique<HttpsEngagementMetricsProvider>());
  
  
@@ -716,7 +722,7 @@
        std::make_unique<UpgradeMetricsProvider>());
        std::make_unique<UpgradeMetricsProvider>());
 --- a/chrome/browser/net/trial_comparison_cert_verifier_controller.cc
 --- a/chrome/browser/net/trial_comparison_cert_verifier_controller.cc
 +++ b/chrome/browser/net/trial_comparison_cert_verifier_controller.cc
 +++ b/chrome/browser/net/trial_comparison_cert_verifier_controller.cc
-@@ -127,9 +127,6 @@ void TrialComparisonCertVerifierControll
+@@ -131,9 +131,6 @@ void TrialComparisonCertVerifierControll
    std::string serialized_report;
    std::string serialized_report;
    if (!report.Serialize(&serialized_report))
    if (!report.Serialize(&serialized_report))
      return;
      return;
@@ -738,7 +744,7 @@
    ClientHintsFactory::GetInstance();
    ClientHintsFactory::GetInstance();
 --- a/chrome/browser/profiles/profile_impl.cc
 --- a/chrome/browser/profiles/profile_impl.cc
 +++ b/chrome/browser/profiles/profile_impl.cc
 +++ b/chrome/browser/profiles/profile_impl.cc
-@@ -89,7 +89,6 @@
+@@ -91,7 +91,6 @@
  #include "chrome/browser/profiles/profile_metrics.h"
  #include "chrome/browser/profiles/profile_metrics.h"
  #include "chrome/browser/push_messaging/push_messaging_service_factory.h"
  #include "chrome/browser/push_messaging/push_messaging_service_factory.h"
  #include "chrome/browser/push_messaging/push_messaging_service_impl.h"
  #include "chrome/browser/push_messaging/push_messaging_service_impl.h"
@@ -746,7 +752,7 @@
  #include "chrome/browser/sharing/sharing_service_factory.h"
  #include "chrome/browser/sharing/sharing_service_factory.h"
  #include "chrome/browser/signin/identity_manager_factory.h"
  #include "chrome/browser/signin/identity_manager_factory.h"
  #include "chrome/browser/signin/signin_ui_util.h"
  #include "chrome/browser/signin/signin_ui_util.h"
-@@ -583,17 +582,6 @@ void ProfileImpl::LoadPrefsForNormalStar
+@@ -585,17 +584,6 @@ void ProfileImpl::LoadPrefsForNormalStar
  
  
    mojo::PendingRemote<prefs::mojom::TrackedPreferenceValidationDelegate>
    mojo::PendingRemote<prefs::mojom::TrackedPreferenceValidationDelegate>
        pref_validation_delegate;
        pref_validation_delegate;
@@ -766,7 +772,7 @@
        CreatePrefService(pref_registry_, CreateExtensionPrefStore(this, false),
        CreatePrefService(pref_registry_, CreateExtensionPrefStore(this, false),
 --- a/chrome/browser/profiles/profiles_state.cc
 --- a/chrome/browser/profiles/profiles_state.cc
 +++ b/chrome/browser/profiles/profiles_state.cc
 +++ b/chrome/browser/profiles/profiles_state.cc
-@@ -222,9 +222,6 @@ void RemoveBrowsingDataForProfile(const
+@@ -217,9 +217,6 @@ void RemoveBrowsingDataForProfile(const
    // The BrowsingDataRemover relies on many objects that aren't created in unit
    // The BrowsingDataRemover relies on many objects that aren't created in unit
    // tests. Previously this code would depend on content::ResourceDispatcherHost
    // tests. Previously this code would depend on content::ResourceDispatcherHost
    // but that's gone, so do a similar hack for now.
    // but that's gone, so do a similar hack for now.
@@ -913,7 +919,7 @@
  void ChromeSubresourceFilterClient::OnReloadRequested() {
  void ChromeSubresourceFilterClient::OnReloadRequested() {
 --- a/chrome/browser/ui/BUILD.gn
 --- a/chrome/browser/ui/BUILD.gn
 +++ b/chrome/browser/ui/BUILD.gn
 +++ b/chrome/browser/ui/BUILD.gn
-@@ -2814,7 +2814,6 @@ jumbo_static_library("ui") {
+@@ -2903,7 +2903,6 @@ jumbo_static_library("ui") {
        "views/device_chooser_content_view.h",
        "views/device_chooser_content_view.h",
        "views/devtools_process_observer.cc",
        "views/devtools_process_observer.cc",
        "views/devtools_process_observer.h",
        "views/devtools_process_observer.h",
@@ -923,9 +929,9 @@
        "views/download/download_item_view.cc",
        "views/download/download_item_view.cc",
 --- a/chrome/browser/ui/tab_helpers.cc
 --- a/chrome/browser/ui/tab_helpers.cc
 +++ b/chrome/browser/ui/tab_helpers.cc
 +++ b/chrome/browser/ui/tab_helpers.cc
-@@ -272,10 +272,6 @@ void TabHelpers::AttachTabHelpers(WebCon
-   PreviewsUITabHelper::CreateForWebContents(web_contents);
-   RecentlyAudibleHelper::CreateForWebContents(web_contents);
+@@ -290,10 +290,6 @@ void TabHelpers::AttachTabHelpers(WebCon
+   resource_coordinator::ResourceCoordinatorTabHelper::CreateForWebContents(
+       web_contents);
    ResourceLoadingHintsWebContentsObserver::CreateForWebContents(web_contents);
    ResourceLoadingHintsWebContentsObserver::CreateForWebContents(web_contents);
 -  safe_browsing::SafeBrowsingNavigationObserver::MaybeCreateForWebContents(
 -  safe_browsing::SafeBrowsingNavigationObserver::MaybeCreateForWebContents(
 -      web_contents);
 -      web_contents);
@@ -934,14 +940,14 @@
    ReputationWebContentsObserver::CreateForWebContents(web_contents);
    ReputationWebContentsObserver::CreateForWebContents(web_contents);
    SearchEngineTabHelper::CreateForWebContents(web_contents);
    SearchEngineTabHelper::CreateForWebContents(web_contents);
    SecurityStateTabHelper::CreateForWebContents(web_contents);
    SecurityStateTabHelper::CreateForWebContents(web_contents);
-@@ -333,7 +329,6 @@ void TabHelpers::AttachTabHelpers(WebCon
+@@ -356,7 +352,6 @@ void TabHelpers::AttachTabHelpers(WebCon
    pdf::PDFWebContentsHelper::CreateForWebContentsWithClient(
    pdf::PDFWebContentsHelper::CreateForWebContentsWithClient(
        web_contents, std::make_unique<ChromePDFWebContentsHelperClient>());
        web_contents, std::make_unique<ChromePDFWebContentsHelperClient>());
    SadTabHelper::CreateForWebContents(web_contents);
    SadTabHelper::CreateForWebContents(web_contents);
 -  safe_browsing::SafeBrowsingTabObserver::CreateForWebContents(web_contents);
 -  safe_browsing::SafeBrowsingTabObserver::CreateForWebContents(web_contents);
    SearchTabHelper::CreateForWebContents(web_contents);
    SearchTabHelper::CreateForWebContents(web_contents);
-   if (base::FeatureList::IsEnabled(features::kSyncEncryptionKeysWebApi)) {
-     SyncEncryptionKeysTabHelper::CreateForWebContents(web_contents);
+   if (base::FeatureList::IsEnabled(
+           switches::kSyncSupportTrustedVaultPassphrase)) {
 --- a/chrome/browser/ui/webui/downloads/downloads_dom_handler.cc
 --- a/chrome/browser/ui/webui/downloads/downloads_dom_handler.cc
 +++ b/chrome/browser/ui/webui/downloads/downloads_dom_handler.cc
 +++ b/chrome/browser/ui/webui/downloads/downloads_dom_handler.cc
 @@ -23,7 +23,6 @@
 @@ -23,7 +23,6 @@
@@ -952,7 +958,7 @@
  #include "chrome/browser/download/download_history.h"
  #include "chrome/browser/download/download_history.h"
  #include "chrome/browser/download/download_item_model.h"
  #include "chrome/browser/download/download_item_model.h"
  #include "chrome/browser/download/download_prefs.h"
  #include "chrome/browser/download/download_prefs.h"
-@@ -167,9 +166,6 @@ void DownloadsDOMHandler::SaveDangerousR
+@@ -168,9 +167,6 @@ void DownloadsDOMHandler::SaveDangerousR
    }
    }
  
  
    CountDownloadsDOMEvents(DOWNLOADS_DOM_EVENT_SAVE_DANGEROUS);
    CountDownloadsDOMEvents(DOWNLOADS_DOM_EVENT_SAVE_DANGEROUS);
@@ -975,7 +981,7 @@
      DownloadItemModel item_model(download);
      DownloadItemModel item_model(download);
      if (!item_model.ShouldShowInShelf() ||
      if (!item_model.ShouldShowInShelf() ||
          download->GetState() == download::DownloadItem::IN_PROGRESS) {
          download->GetState() == download::DownloadItem::IN_PROGRESS) {
-@@ -379,44 +369,6 @@ void DownloadsDOMHandler::FinalizeRemova
+@@ -396,44 +386,6 @@ void DownloadsDOMHandler::FinalizeRemova
    }
    }
  }
  }
  
  
@@ -1027,10 +1033,10 @@
  #include "base/macros.h"
  #include "base/macros.h"
  #include "base/memory/weak_ptr.h"
  #include "base/memory/weak_ptr.h"
 -#include "chrome/browser/download/download_danger_prompt.h"
 -#include "chrome/browser/download/download_danger_prompt.h"
- #include "chrome/browser/ui/webui/downloads/downloads.mojom.h"
+ #include "chrome/browser/ui/webui/downloads/downloads.mojom-forward.h"
  #include "chrome/browser/ui/webui/downloads/downloads_list_tracker.h"
  #include "chrome/browser/ui/webui/downloads/downloads_list_tracker.h"
  #include "content/public/browser/web_contents_observer.h"
  #include "content/public/browser/web_contents_observer.h"
-@@ -88,18 +87,6 @@ class DownloadsDOMHandler : public conte
+@@ -89,18 +88,6 @@ class DownloadsDOMHandler : public conte
    // null-checking |original_notifier_|.
    // null-checking |original_notifier_|.
    content::DownloadManager* GetOriginalNotifierManager() const;
    content::DownloadManager* GetOriginalNotifierManager() const;
  
  
@@ -1051,19 +1057,17 @@
    bool IsDeletingHistoryAllowed();
    bool IsDeletingHistoryAllowed();
 --- a/chrome/browser/ui/webui/interstitials/interstitial_ui.cc
 --- a/chrome/browser/ui/webui/interstitials/interstitial_ui.cc
 +++ b/chrome/browser/ui/webui/interstitials/interstitial_ui.cc
 +++ b/chrome/browser/ui/webui/interstitials/interstitial_ui.cc
-@@ -273,115 +273,6 @@ LookalikeUrlInterstitialPage* CreateLook
+@@ -272,113 +272,6 @@ std::unique_ptr<LookalikeUrlBlockingPage
                                                       safe_url));
                                                       safe_url));
  }
  }
  
  
--safe_browsing::SafeBrowsingBlockingPage* CreateSafeBrowsingBlockingPage(
--    content::WebContents* web_contents) {
+-std::unique_ptr<safe_browsing::SafeBrowsingBlockingPage>
+-CreateSafeBrowsingBlockingPage(content::WebContents* web_contents) {
 -  safe_browsing::SBThreatType threat_type =
 -  safe_browsing::SBThreatType threat_type =
 -      safe_browsing::SB_THREAT_TYPE_URL_MALWARE;
 -      safe_browsing::SB_THREAT_TYPE_URL_MALWARE;
 -  GURL request_url("http://example.com");
 -  GURL request_url("http://example.com");
 -  std::string url_param;
 -  std::string url_param;
--  if (net::GetValueForKeyInQuery(web_contents->GetURL(),
--                                 "url",
--                                 &url_param)) {
+-  if (net::GetValueForKeyInQuery(web_contents->GetURL(), "url", &url_param)) {
 -    if (GURL(url_param).is_valid()) {
 -    if (GURL(url_param).is_valid()) {
 -      request_url = GURL(url_param);
 -      request_url = GURL(url_param);
 -    }
 -    }
@@ -1072,9 +1076,7 @@
 -  // TODO(mattm): add flag to change main_frame_url or add dedicated flag to
 -  // TODO(mattm): add flag to change main_frame_url or add dedicated flag to
 -  // test subresource interstitials.
 -  // test subresource interstitials.
 -  std::string type_param;
 -  std::string type_param;
--  if (net::GetValueForKeyInQuery(web_contents->GetURL(),
--                                 "type",
--                                 &type_param)) {
+-  if (net::GetValueForKeyInQuery(web_contents->GetURL(), "type", &type_param)) {
 -    if (type_param == "malware") {
 -    if (type_param == "malware") {
 -      threat_type = safe_browsing::SB_THREAT_TYPE_URL_MALWARE;
 -      threat_type = safe_browsing::SB_THREAT_TYPE_URL_MALWARE;
 -    } else if (type_param == "phishing") {
 -    } else if (type_param == "phishing") {
@@ -1108,13 +1110,14 @@
 -  // creates a SafeBrowsingBlockingPage but does not actually show a real
 -  // creates a SafeBrowsingBlockingPage but does not actually show a real
 -  // interstitial. Instead it extracts the html and displays it manually, so the
 -  // interstitial. Instead it extracts the html and displays it manually, so the
 -  // parts which depend on the NavigationEntry are not hit.
 -  // parts which depend on the NavigationEntry are not hit.
--  return safe_browsing::SafeBrowsingBlockingPage::CreateBlockingPage(
--      g_browser_process->safe_browsing_service()->ui_manager().get(),
--      web_contents, main_frame_url, resource, true);
+-  return base::WrapUnique<safe_browsing::SafeBrowsingBlockingPage>(
+-      safe_browsing::SafeBrowsingBlockingPage::CreateBlockingPage(
+-          g_browser_process->safe_browsing_service()->ui_manager().get(),
+-          web_contents, main_frame_url, resource, true));
 -}
 -}
 -
 -
--TestSafeBrowsingBlockingPageQuiet* CreateSafeBrowsingQuietBlockingPage(
--    content::WebContents* web_contents) {
+-std::unique_ptr<TestSafeBrowsingBlockingPageQuiet>
+-CreateSafeBrowsingQuietBlockingPage(content::WebContents* web_contents) {
 -  safe_browsing::SBThreatType threat_type =
 -  safe_browsing::SBThreatType threat_type =
 -      safe_browsing::SB_THREAT_TYPE_URL_MALWARE;
 -      safe_browsing::SB_THREAT_TYPE_URL_MALWARE;
 -  GURL request_url("http://example.com");
 -  GURL request_url("http://example.com");
@@ -1159,40 +1162,47 @@
 -  // creates a SafeBrowsingBlockingPage but does not actually show a real
 -  // creates a SafeBrowsingBlockingPage but does not actually show a real
 -  // interstitial. Instead it extracts the html and displays it manually, so the
 -  // interstitial. Instead it extracts the html and displays it manually, so the
 -  // parts which depend on the NavigationEntry are not hit.
 -  // parts which depend on the NavigationEntry are not hit.
--  return TestSafeBrowsingBlockingPageQuiet::CreateBlockingPage(
--      g_browser_process->safe_browsing_service()->ui_manager().get(),
--      web_contents, main_frame_url, resource, is_giant_webview);
+-  return base::WrapUnique<TestSafeBrowsingBlockingPageQuiet>(
+-      TestSafeBrowsingBlockingPageQuiet::CreateBlockingPage(
+-          g_browser_process->safe_browsing_service()->ui_manager().get(),
+-          web_contents, main_frame_url, resource, is_giant_webview));
 -}
 -}
 -
 -
  #if BUILDFLAG(ENABLE_CAPTIVE_PORTAL_DETECTION)
  #if BUILDFLAG(ENABLE_CAPTIVE_PORTAL_DETECTION)
- CaptivePortalBlockingPage* CreateCaptivePortalBlockingPage(
+ std::unique_ptr<CaptivePortalBlockingPage> CreateCaptivePortalBlockingPage(
      content::WebContents* web_contents) {
      content::WebContents* web_contents) {
-@@ -497,8 +388,6 @@ void InterstitialHTMLSource::StartDataRe
-         CreateBlockedInterceptionBlockingPage(web_contents));
+@@ -493,8 +386,6 @@ void InterstitialHTMLSource::StartDataRe
+     interstitial_delegate = CreateBlockedInterceptionBlockingPage(web_contents);
    } else if (path_without_query == "/legacy-tls") {
    } else if (path_without_query == "/legacy-tls") {
-     interstitial_delegate.reset(CreateLegacyTLSBlockingPage(web_contents));
+     interstitial_delegate = CreateLegacyTLSBlockingPage(web_contents);
 -  } else if (path_without_query == "/safebrowsing") {
 -  } else if (path_without_query == "/safebrowsing") {
--    interstitial_delegate.reset(CreateSafeBrowsingBlockingPage(web_contents));
+-    interstitial_delegate = CreateSafeBrowsingBlockingPage(web_contents);
    } else if (path_without_query == "/clock") {
    } else if (path_without_query == "/clock") {
-     interstitial_delegate.reset(CreateBadClockBlockingPage(web_contents));
+     interstitial_delegate = CreateBadClockBlockingPage(web_contents);
    } else if (path_without_query == "/lookalike") {
    } else if (path_without_query == "/lookalike") {
-@@ -510,13 +399,6 @@ void InterstitialHTMLSource::StartDataRe
-   } else if (path_without_query == "/origin_policy") {
-     interstitial_delegate.reset(
-         CreateOriginPolicyInterstitialPage(web_contents));
--  }
--
+@@ -507,16 +398,12 @@ void InterstitialHTMLSource::StartDataRe
+     interstitial_delegate = CreateOriginPolicyInterstitialPage(web_contents);
+   }
+ 
 -  if (path_without_query == "/quietsafebrowsing") {
 -  if (path_without_query == "/quietsafebrowsing") {
--    TestSafeBrowsingBlockingPageQuiet* blocking_page =
+-    std::unique_ptr<TestSafeBrowsingBlockingPageQuiet> blocking_page =
 -        CreateSafeBrowsingQuietBlockingPage(web_contents);
 -        CreateSafeBrowsingQuietBlockingPage(web_contents);
--    interstitial_delegate.reset(blocking_page);
 -    html = blocking_page->GetHTML();
 -    html = blocking_page->GetHTML();
+-    interstitial_delegate = std::move(blocking_page);
  #if BUILDFLAG(ENABLE_SUPERVISED_USERS)
  #if BUILDFLAG(ENABLE_SUPERVISED_USERS)
-   } else if (path_without_query == "/supervised_user") {
+-  } else if (path_without_query == "/supervised_user") {
++  if (path_without_query == "/supervised_user") {
      html = GetSupervisedUserInterstitialHTML(path);
      html = GetSupervisedUserInterstitialHTML(path);
++  } else
+ #endif
+-  } else if (interstitial_delegate.get()) {
++  if (interstitial_delegate.get()) {
+     html = interstitial_delegate.get()->GetHTMLContents();
+   } else {
+     html = ui::ResourceBundle::GetSharedInstance().LoadDataResourceString(
 --- a/chrome/renderer/chrome_content_renderer_client.cc
 --- a/chrome/renderer/chrome_content_renderer_client.cc
 +++ b/chrome/renderer/chrome_content_renderer_client.cc
 +++ b/chrome/renderer/chrome_content_renderer_client.cc
-@@ -86,7 +86,6 @@
+@@ -87,7 +87,6 @@
  #include "components/paint_preview/buildflags/buildflags.h"
  #include "components/paint_preview/buildflags/buildflags.h"
  #include "components/pdf/renderer/pepper_pdf_host.h"
  #include "components/pdf/renderer/pepper_pdf_host.h"
  #include "components/safe_browsing/buildflags.h"
  #include "components/safe_browsing/buildflags.h"

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

@@ -83,7 +83,7 @@
  }
  }
  
  
  // http://crbug.com/165634
  // http://crbug.com/165634
-@@ -724,21 +710,6 @@ void WebstoreInstaller::UpdateDownloadPr
+@@ -722,21 +708,6 @@ void WebstoreInstaller::UpdateDownloadPr
  void WebstoreInstaller::StartCrxInstaller(const DownloadItem& download) {
  void WebstoreInstaller::StartCrxInstaller(const DownloadItem& download) {
    DCHECK_CURRENTLY_ON(BrowserThread::UI);
    DCHECK_CURRENTLY_ON(BrowserThread::UI);
    DCHECK(!crx_installer_.get());
    DCHECK(!crx_installer_.get());

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

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

+ 2 - 2
patches/core/inox-patchset/0014-disable-translation-lang-fetch.patch

@@ -1,6 +1,6 @@
 --- a/chrome/browser/spellchecker/spellcheck_hunspell_dictionary.cc
 --- a/chrome/browser/spellchecker/spellcheck_hunspell_dictionary.cc
 +++ b/chrome/browser/spellchecker/spellcheck_hunspell_dictionary.cc
 +++ b/chrome/browser/spellchecker/spellcheck_hunspell_dictionary.cc
-@@ -162,7 +162,6 @@ void SpellcheckHunspellDictionary::Retry
+@@ -161,7 +161,6 @@ void SpellcheckHunspellDictionary::Retry
      return;
      return;
    }
    }
    browser_context_ = browser_context;
    browser_context_ = browser_context;
@@ -8,7 +8,7 @@
  }
  }
  
  
  bool SpellcheckHunspellDictionary::IsReady() const {
  bool SpellcheckHunspellDictionary::IsReady() const {
-@@ -400,9 +399,6 @@ void SpellcheckHunspellDictionary::Initi
+@@ -399,9 +398,6 @@ void SpellcheckHunspellDictionary::Initi
      }
      }
  
  
      if (browser_context_) {
      if (browser_context_) {

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

@@ -84,7 +84,7 @@ by default.
    for tag_suffix in _TagSuffixes():
    for tag_suffix in _TagSuffixes():
 --- a/chrome/browser/chromeos/customization/customization_document.cc
 --- a/chrome/browser/chromeos/customization/customization_document.cc
 +++ b/chrome/browser/chromeos/customization/customization_document.cc
 +++ b/chrome/browser/chromeos/customization/customization_document.cc
-@@ -172,7 +172,7 @@ std::string ReadFileInBackground(const b
+@@ -173,7 +173,7 @@ std::string ReadFileInBackground(const b
  
  
  // Template URL where to fetch OEM services customization manifest from.
  // Template URL where to fetch OEM services customization manifest from.
  const char ServicesCustomizationDocument::kManifestUrl[] =
  const char ServicesCustomizationDocument::kManifestUrl[] =
@@ -95,9 +95,9 @@ by default.
  // creates and uses to publish OEM default apps to the extensions system.
  // creates and uses to publish OEM default apps to the extensions system.
 --- a/chrome/browser/chromeos/extensions/file_manager/private_api_drive.cc
 --- a/chrome/browser/chromeos/extensions/file_manager/private_api_drive.cc
 +++ b/chrome/browser/chromeos/extensions/file_manager/private_api_drive.cc
 +++ b/chrome/browser/chromeos/extensions/file_manager/private_api_drive.cc
-@@ -1042,7 +1042,7 @@ void FileManagerPrivateInternalGetDownlo
-       IdentityManagerFactory::GetForProfile(chrome_details.GetProfile());
-   const CoreAccountId& account_id = identity_manager->GetPrimaryAccountId();
+@@ -1045,7 +1045,7 @@ void FileManagerPrivateInternalGetDownlo
+   const CoreAccountId& account_id =
+       identity_manager->GetPrimaryAccountId(signin::ConsentLevel::kNotRequired);
    std::vector<std::string> scopes;
    std::vector<std::string> scopes;
 -  scopes.emplace_back("https://www.googleapis.com/auth/drive.readonly");
 -  scopes.emplace_back("https://www.googleapis.com/auth/drive.readonly");
 +  scopes.emplace_back("trk:208:https://www.googleapis.com/auth/drive.readonly");
 +  scopes.emplace_back("trk:208:https://www.googleapis.com/auth/drive.readonly");
@@ -106,7 +106,7 @@ by default.
        content::BrowserContext::GetDefaultStoragePartition(
        content::BrowserContext::GetDefaultStoragePartition(
 --- a/chrome/browser/chromeos/extensions/file_manager/private_api_misc.cc
 --- a/chrome/browser/chromeos/extensions/file_manager/private_api_misc.cc
 +++ b/chrome/browser/chromeos/extensions/file_manager/private_api_misc.cc
 +++ b/chrome/browser/chromeos/extensions/file_manager/private_api_misc.cc
-@@ -82,7 +82,7 @@ namespace {
+@@ -83,7 +83,7 @@ namespace {
  
  
  using api::file_manager_private::ProfileInfo;
  using api::file_manager_private::ProfileInfo;
  
  
@@ -146,7 +146,7 @@ by default.
  const int kDownloadsLowSpaceWarningHelpNumber = 1061547;
  const int kDownloadsLowSpaceWarningHelpNumber = 1061547;
 --- a/chrome/browser/extensions/api/cryptotoken_private/cryptotoken_private_api.cc
 --- a/chrome/browser/extensions/api/cryptotoken_private/cryptotoken_private_api.cc
 +++ b/chrome/browser/extensions/api/cryptotoken_private/cryptotoken_private_api.cc
 +++ b/chrome/browser/extensions/api/cryptotoken_private/cryptotoken_private_api.cc
-@@ -52,8 +52,8 @@ enum class U2FAttestationPromptResult {
+@@ -60,8 +60,8 @@ enum class U2FAttestationPromptResult {
  
  
  const char kGoogleDotCom[] = "google.com";
  const char kGoogleDotCom[] = "google.com";
  constexpr const char* kGoogleGstaticAppIds[] = {
  constexpr const char* kGoogleGstaticAppIds[] = {
@@ -189,10 +189,10 @@ by default.
 +    "trk:271:https://www.gstatic.com/chrome/profile_avatars/";
 +    "trk:271:https://www.gstatic.com/chrome/profile_avatars/";
  }
  }
  
  
- ProfileAvatarDownloader::ProfileAvatarDownloader(
+ ProfileAvatarDownloader::ProfileAvatarDownloader(size_t icon_index,
 --- a/chrome/browser/resources/chromeos/accessibility/chromevox/background/prefs.js
 --- a/chrome/browser/resources/chromeos/accessibility/chromevox/background/prefs.js
 +++ b/chrome/browser/resources/chromeos/accessibility/chromevox/background/prefs.js
 +++ b/chrome/browser/resources/chromeos/accessibility/chromevox/background/prefs.js
-@@ -219,9 +219,9 @@ ChromeVoxPrefs.DEFAULT_PREFS = {
+@@ -218,9 +218,9 @@ ChromeVoxPrefs.DEFAULT_PREFS = {
    'position': '{}',
    'position': '{}',
    'siteSpecificEnhancements': true,
    'siteSpecificEnhancements': true,
    'siteSpecificScriptBase':
    'siteSpecificScriptBase':
@@ -249,7 +249,7 @@ by default.
  DownloadFeedbackFactory* DownloadFeedback::factory_ = nullptr;
  DownloadFeedbackFactory* DownloadFeedback::factory_ = nullptr;
 --- a/chrome/browser/spellchecker/spellcheck_hunspell_dictionary.cc
 --- a/chrome/browser/spellchecker/spellcheck_hunspell_dictionary.cc
 +++ b/chrome/browser/spellchecker/spellcheck_hunspell_dictionary.cc
 +++ b/chrome/browser/spellchecker/spellcheck_hunspell_dictionary.cc
-@@ -255,7 +255,7 @@ GURL SpellcheckHunspellDictionary::GetDi
+@@ -254,7 +254,7 @@ GURL SpellcheckHunspellDictionary::GetDi
    DCHECK(!bdict_file.empty());
    DCHECK(!bdict_file.empty());
  
  
    static const char kDownloadServerUrl[] =
    static const char kDownloadServerUrl[] =
@@ -260,7 +260,7 @@ by default.
                base::ToLowerASCII(bdict_file));
                base::ToLowerASCII(bdict_file));
 --- a/chrome/browser/supervised_user/supervised_user_service.cc
 --- a/chrome/browser/supervised_user/supervised_user_service.cc
 +++ b/chrome/browser/supervised_user/supervised_user_service.cc
 +++ b/chrome/browser/supervised_user/supervised_user_service.cc
-@@ -82,7 +82,7 @@ namespace {
+@@ -86,7 +86,7 @@ namespace {
  
  
  // The URL from which to download a host blacklist if no local one exists yet.
  // The URL from which to download a host blacklist if no local one exists yet.
  const char kBlacklistURL[] =
  const char kBlacklistURL[] =
@@ -271,7 +271,7 @@ by default.
  
  
 --- a/chrome/browser/tracing/crash_service_uploader.cc
 --- a/chrome/browser/tracing/crash_service_uploader.cc
 +++ b/chrome/browser/tracing/crash_service_uploader.cc
 +++ b/chrome/browser/tracing/crash_service_uploader.cc
-@@ -40,7 +40,7 @@ using std::string;
+@@ -41,7 +41,7 @@ using std::string;
  
  
  namespace {
  namespace {
  
  
@@ -282,7 +282,7 @@ by default.
      "----**--yradnuoBgoLtrapitluMklaTelgooG--**----";
      "----**--yradnuoBgoLtrapitluMklaTelgooG--**----";
 --- a/chrome/browser/ui/views/outdated_upgrade_bubble_view.cc
 --- a/chrome/browser/ui/views/outdated_upgrade_bubble_view.cc
 +++ b/chrome/browser/ui/views/outdated_upgrade_bubble_view.cc
 +++ b/chrome/browser/ui/views/outdated_upgrade_bubble_view.cc
-@@ -34,7 +34,7 @@ namespace {
+@@ -35,7 +35,7 @@ namespace {
  
  
  // The URL to be used to re-install Chrome when auto-update failed for too long.
  // The URL to be used to re-install Chrome when auto-update failed for too long.
  constexpr char kDownloadChromeUrl[] =
  constexpr char kDownloadChromeUrl[] =
@@ -293,7 +293,7 @@ by default.
  // The maximum number of ignored bubble we track in the NumLaterPerReinstall
  // The maximum number of ignored bubble we track in the NumLaterPerReinstall
 --- a/chrome/browser/ui/webui/ntp/ntp_resource_cache.cc
 --- a/chrome/browser/ui/webui/ntp/ntp_resource_cache.cc
 +++ b/chrome/browser/ui/webui/ntp/ntp_resource_cache.cc
 +++ b/chrome/browser/ui/webui/ntp/ntp_resource_cache.cc
-@@ -78,17 +78,17 @@ namespace {
+@@ -79,17 +79,17 @@ namespace {
  // The URL for the the Learn More page shown on incognito new tab.
  // The URL for the the Learn More page shown on incognito new tab.
  const char kLearnMoreIncognitoUrl[] =
  const char kLearnMoreIncognitoUrl[] =
  #if defined(OS_CHROMEOS)
  #if defined(OS_CHROMEOS)
@@ -331,7 +331,7 @@ by default.
  
  
 --- a/chrome/common/url_constants.cc
 --- a/chrome/common/url_constants.cc
 +++ b/chrome/common/url_constants.cc
 +++ b/chrome/common/url_constants.cc
-@@ -248,7 +248,7 @@ const char kSyncErrorsHelpURL[] =
+@@ -268,7 +268,7 @@ const char kSyncErrorsHelpURL[] =
      "https://support.google.com/chrome/?p=settings_sync_error";
      "https://support.google.com/chrome/?p=settings_sync_error";
  
  
  const char kSyncGoogleDashboardURL[] =
  const char kSyncGoogleDashboardURL[] =
@@ -340,15 +340,15 @@ by default.
  
  
  const char kSyncLearnMoreURL[] =
  const char kSyncLearnMoreURL[] =
      "https://support.google.com/chrome/?p=settings_sign_in";
      "https://support.google.com/chrome/?p=settings_sign_in";
-@@ -355,7 +355,7 @@ const char kNaturalScrollHelpURL[] =
+@@ -388,7 +388,7 @@ const char kNaturalScrollHelpURL[] =
  const char kOemEulaURLPath[] = "oem";
  const char kOemEulaURLPath[] = "oem";
  
  
  const char kOnlineEulaURLPath[] =
  const char kOnlineEulaURLPath[] =
--    "https://www.google.com/intl/%s/chrome/eula_text.html";
-+    "trk:250:https://www.google.com/intl/%s/chrome/eula_text.html";
+-    "https://policies.google.com/terms/embedded?hl=%s";
++    "trk:250:https://policies.google.com/terms/embedded?hl=%s";
  
  
- const char kOsSettingsSearchHelpURL[] =
-     "https://support.google.com/chromebook/?p=settings_search_help";
+ const char kAdditionalToSOnlineURLPath[] =
+     "https://www.google.com/intl/%s/chrome/terms/";
 --- a/chrome/installer/setup/google_chrome_behaviors.cc
 --- a/chrome/installer/setup/google_chrome_behaviors.cc
 +++ b/chrome/installer/setup/google_chrome_behaviors.cc
 +++ b/chrome/installer/setup/google_chrome_behaviors.cc
 @@ -44,7 +44,7 @@ base::string16 LocalizeUrl(const wchar_t
 @@ -44,7 +44,7 @@ base::string16 LocalizeUrl(const wchar_t
@@ -420,8 +420,8 @@ by default.
  
  
  }
  }
  
  
---- a/components/crash/content/app/breakpad_linux.cc
-+++ b/components/crash/content/app/breakpad_linux.cc
+--- a/components/crash/core/app/breakpad_linux.cc
++++ b/components/crash/core/app/breakpad_linux.cc
 @@ -103,7 +103,7 @@ namespace {
 @@ -103,7 +103,7 @@ namespace {
  // while we do have functions to deal with uint64_t's.
  // while we do have functions to deal with uint64_t's.
  uint64_t g_crash_loop_before_time = 0;
  uint64_t g_crash_loop_before_time = 0;
@@ -460,7 +460,7 @@ by default.
  
  
 --- a/components/gcm_driver/gcm_account_tracker.cc
 --- a/components/gcm_driver/gcm_account_tracker.cc
 +++ b/components/gcm_driver/gcm_account_tracker.cc
 +++ b/components/gcm_driver/gcm_account_tracker.cc
-@@ -26,9 +26,9 @@ namespace gcm {
+@@ -27,9 +27,9 @@ namespace gcm {
  namespace {
  namespace {
  
  
  // Scopes needed by the OAuth2 access tokens.
  // Scopes needed by the OAuth2 access tokens.
@@ -474,7 +474,7 @@ by default.
  // Minimum token validity when sending to GCM groups server.
  // Minimum token validity when sending to GCM groups server.
 --- a/components/history/core/browser/web_history_service.cc
 --- a/components/history/core/browser/web_history_service.cc
 +++ b/components/history/core/browser/web_history_service.cc
 +++ b/components/history/core/browser/web_history_service.cc
-@@ -40,13 +40,13 @@ namespace history {
+@@ -41,13 +41,13 @@ namespace history {
  namespace {
  namespace {
  
  
  const char kHistoryOAuthScope[] =
  const char kHistoryOAuthScope[] =
@@ -491,17 +491,6 @@ by default.
  
  
  const char kHistoryAudioHistoryUrl[] =
  const char kHistoryAudioHistoryUrl[] =
      "https://history.google.com/history/api/lookup?client=audio";
      "https://history.google.com/history/api/lookup?client=audio";
---- a/components/invalidation/impl/gcm_network_channel.cc
-+++ b/components/invalidation/impl/gcm_network_channel.cc
-@@ -40,7 +40,7 @@ namespace syncer {
- namespace {
- 
- const char kCacheInvalidationEndpointUrl[] =
--    "https://clients4.google.com/invalidation/android/request/";
-+    "trk:264:https://clients4.google.com/invalidation/android/request/";
- const char kCacheInvalidationPackageName[] = "com.google.chrome.invalidations";
- 
- // Register backoff policy.
 --- a/components/metrics/url_constants.cc
 --- a/components/metrics/url_constants.cc
 +++ b/components/metrics/url_constants.cc
 +++ b/components/metrics/url_constants.cc
 @@ -7,12 +7,12 @@
 @@ -7,12 +7,12 @@
@@ -550,7 +539,7 @@ by default.
  
  
 --- a/components/policy/resources/policy_templates.json
 --- a/components/policy/resources/policy_templates.json
 +++ b/components/policy/resources/policy_templates.json
 +++ b/components/policy/resources/policy_templates.json
-@@ -3937,7 +3937,7 @@
+@@ -4043,7 +4043,7 @@
          'dynamic_refresh': True,
          'dynamic_refresh': True,
          'per_profile': True,
          'per_profile': True,
        },
        },
@@ -559,7 +548,7 @@ by default.
        'id': 34,
        'id': 34,
        'caption': '''Configure the list of force-installed apps and extensions''',
        'caption': '''Configure the list of force-installed apps and extensions''',
        'tags': ['full-admin-access'],
        'tags': ['full-admin-access'],
-@@ -8269,7 +8269,7 @@
+@@ -8496,7 +8496,7 @@
        'features': {
        'features': {
          'dynamic_refresh': True,
          'dynamic_refresh': True,
        },
        },
@@ -588,7 +577,7 @@ by default.
 -    "https://safesearch.googleapis.com/v1:classify";
 -    "https://safesearch.googleapis.com/v1:classify";
 +    "trk:238:https://safesearch.googleapis.com/v1:classify";
 +    "trk:238:https://safesearch.googleapis.com/v1:classify";
  const char kDataContentType[] = "application/x-www-form-urlencoded";
  const char kDataContentType[] = "application/x-www-form-urlencoded";
- const char kDataFormat[] = "key=%s&urls=%s&region_code=%s";
+ const char kDataFormat[] = "key=%s&urls=%s";
  
  
 --- a/components/search_engines/prepopulated_engines.json
 --- a/components/search_engines/prepopulated_engines.json
 +++ b/components/search_engines/prepopulated_engines.json
 +++ b/components/search_engines/prepopulated_engines.json
@@ -646,9 +635,9 @@ by default.
  
  
 --- a/content/shell/browser/shell_browser_main_parts.cc
 --- a/content/shell/browser/shell_browser_main_parts.cc
 +++ b/content/shell/browser/shell_browser_main_parts.cc
 +++ b/content/shell/browser/shell_browser_main_parts.cc
-@@ -73,7 +73,7 @@ GURL GetStartupURL() {
- #endif
- 
+@@ -71,7 +71,7 @@ GURL GetStartupURL() {
+ #else
+   const base::CommandLine::StringVector& args = command_line->GetArgs();
    if (args.empty())
    if (args.empty())
 -    return GURL("https://www.google.com/");
 -    return GURL("https://www.google.com/");
 +    return GURL("trk:183:https://www.google.com/");
 +    return GURL("trk:183:https://www.google.com/");
@@ -679,7 +668,7 @@ by default.
    extensions::ExtensionsClient* client = extensions::ExtensionsClient::Get();
    extensions::ExtensionsClient* client = extensions::ExtensionsClient::Get();
 --- a/google_apis/gaia/gaia_constants.cc
 --- a/google_apis/gaia/gaia_constants.cc
 +++ b/google_apis/gaia/gaia_constants.cc
 +++ b/google_apis/gaia/gaia_constants.cc
-@@ -25,36 +25,36 @@ const char kSyncService[] = "chromiumsyn
+@@ -25,55 +25,55 @@ const char kSyncService[] = "chromiumsyn
  const char kRemotingService[] = "chromoting";
  const char kRemotingService[] = "chromoting";
  
  
  // OAuth scopes.
  // OAuth scopes.
@@ -707,6 +696,11 @@ by default.
 -    "https://www.googleapis.com/auth/chromesync_playpen";
 -    "https://www.googleapis.com/auth/chromesync_playpen";
 +    "trk:105:https://www.googleapis.com/auth/chromesync_playpen";
 +    "trk:105:https://www.googleapis.com/auth/chromesync_playpen";
  
  
+ // OAuth2 scope for parental consent logging for secondary account addition.
+ const char kKidManagementPrivilegedOAuth2Scope[] =
+-    "https://www.googleapis.com/auth/kid.management.privileged";
++    "trk:276:https://www.googleapis.com/auth/kid.management.privileged";
+ 
  // OAuth2 scope for access to Google Family Link Supervision Setup.
  // OAuth2 scope for access to Google Family Link Supervision Setup.
  const char kKidsSupervisionSetupChildOAuth2Scope[] =
  const char kKidsSupervisionSetupChildOAuth2Scope[] =
 -    "https://www.googleapis.com/auth/kids.supervision.setup.child";
 -    "https://www.googleapis.com/auth/kids.supervision.setup.child";
@@ -726,6 +720,25 @@ by default.
  
  
  // OAuth scope for access to the people API (read-only).
  // OAuth scope for access to the people API (read-only).
  const char kPeopleApiReadOnlyOAuth2Scope[] =
  const char kPeopleApiReadOnlyOAuth2Scope[] =
+-    "https://www.googleapis.com/auth/peopleapi.readonly";
++    "trk:277:https://www.googleapis.com/auth/peopleapi.readonly";
+ 
+ // OAuth scope for access to the Reauth flow.
+ const char kAccountsReauthOAuth2Scope[] =
+-    "https://www.googleapis.com/auth/accounts.reauth";
++    "trk:278:https://www.googleapis.com/auth/accounts.reauth";
+ 
+ // OAuth scope for access to audit recording (ARI).
+ const char kAuditRecordingOAuth2Scope[] =
+-    "https://www.googleapis.com/auth/auditrecording-pa";
++    "trk:279:https://www.googleapis.com/auth/auditrecording-pa";
+ 
+ // OAuth scope for access to clear cut logs.
+-const char kClearCutOAuth2Scope[] = "https://www.googleapis.com/auth/cclog";
++const char kClearCutOAuth2Scope[] = "trk:280:https://www.googleapis.com/auth/cclog";
+ 
+ // Used to mint uber auth tokens when needed.
+ const char kGaiaSid[] = "sid";
 --- a/google_apis/gcm/engine/gservices_settings.cc
 --- a/google_apis/gcm/engine/gservices_settings.cc
 +++ b/google_apis/gcm/engine/gservices_settings.cc
 +++ b/google_apis/gcm/engine/gservices_settings.cc
 @@ -29,18 +29,18 @@ const char kRegistrationURLKey[] = "gcm_
 @@ -29,18 +29,18 @@ const char kRegistrationURLKey[] = "gcm_
@@ -785,7 +798,7 @@ by default.
  
  
 --- a/ui/views/examples/webview_example.cc
 --- a/ui/views/examples/webview_example.cc
 +++ b/ui/views/examples/webview_example.cc
 +++ b/ui/views/examples/webview_example.cc
-@@ -25,7 +25,7 @@ void WebViewExample::CreateExampleView(V
+@@ -27,7 +27,7 @@ void WebViewExample::CreateExampleView(V
    container->SetLayoutManager(std::make_unique<FillLayout>());
    container->SetLayoutManager(std::make_unique<FillLayout>());
    container->AddChildView(webview_);
    container->AddChildView(webview_);
  
  

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

@@ -27,13 +27,13 @@ the URL so we get notified if this happens again in the future).
      kSafeBrowsingIncidentTrafficAnnotation =
      kSafeBrowsingIncidentTrafficAnnotation =
 --- a/chrome/browser/safe_browsing/incident_reporting/incident_reporting_service.cc
 --- a/chrome/browser/safe_browsing/incident_reporting/incident_reporting_service.cc
 +++ b/chrome/browser/safe_browsing/incident_reporting/incident_reporting_service.cc
 +++ b/chrome/browser/safe_browsing/incident_reporting/incident_reporting_service.cc
-@@ -301,11 +301,7 @@ IncidentReportingService::UploadContext:
+@@ -302,11 +302,7 @@ IncidentReportingService::UploadContext:
  
  
  // static
  // static
  bool IncidentReportingService::IsEnabledForProfile(Profile* profile) {
  bool IncidentReportingService::IsEnabledForProfile(Profile* profile) {
 -  if (profile->IsOffTheRecord())
 -  if (profile->IsOffTheRecord())
 -    return false;
 -    return false;
--  if (!profile->GetPrefs()->GetBoolean(prefs::kSafeBrowsingEnabled))
+-  if (!IsSafeBrowsingEnabled(*profile->GetPrefs()))
 -    return false;
 -    return false;
 -  return IsExtendedReportingEnabled(*profile->GetPrefs());
 -  return IsExtendedReportingEnabled(*profile->GetPrefs());
 +  return false;
 +  return false;
@@ -54,7 +54,7 @@ the URL so we get notified if this happens again in the future).
  
  
 --- a/chrome/browser/safe_browsing/safe_browsing_service.cc
 --- a/chrome/browser/safe_browsing/safe_browsing_service.cc
 +++ b/chrome/browser/safe_browsing/safe_browsing_service.cc
 +++ b/chrome/browser/safe_browsing/safe_browsing_service.cc
-@@ -229,7 +229,7 @@ SafeBrowsingUIManager* SafeBrowsingServi
+@@ -249,7 +249,7 @@ SafeBrowsingUIManager* SafeBrowsingServi
  }
  }
  
  
  void SafeBrowsingService::RegisterAllDelayedAnalysis() {
  void SafeBrowsingService::RegisterAllDelayedAnalysis() {

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

@@ -13,7 +13,7 @@ This prevents trk:148 (phishing) and trk:149 (malware).
 
 
 --- a/chrome/browser/safe_browsing/client_side_detection_service.cc
 --- a/chrome/browser/safe_browsing/client_side_detection_service.cc
 +++ b/chrome/browser/safe_browsing/client_side_detection_service.cc
 +++ b/chrome/browser/safe_browsing/client_side_detection_service.cc
-@@ -218,94 +218,8 @@ void ClientSideDetectionService::StartCl
+@@ -221,99 +221,8 @@ void ClientSideDetectionService::StartCl
    DCHECK_CURRENTLY_ON(BrowserThread::UI);
    DCHECK_CURRENTLY_ON(BrowserThread::UI);
    std::unique_ptr<ClientPhishingRequest> request(verdict);
    std::unique_ptr<ClientPhishingRequest> request(verdict);
  
  
@@ -24,10 +24,15 @@ This prevents trk:148 (phishing) and trk:149 (malware).
 -  }
 -  }
 -
 -
 -  // Fill in metadata about which model we used.
 -  // Fill in metadata about which model we used.
--  if (is_extended_reporting) {
+-  if (is_extended_reporting || is_enhanced_reporting) {
 -    request->set_model_filename(model_loader_extended_->name());
 -    request->set_model_filename(model_loader_extended_->name());
--    request->mutable_population()->set_user_population(
--        ChromeUserPopulation::EXTENDED_REPORTING);
+-    if (is_enhanced_reporting) {
+-      request->mutable_population()->set_user_population(
+-          ChromeUserPopulation::ENHANCED_PROTECTION);
+-    } else {
+-      request->mutable_population()->set_user_population(
+-          ChromeUserPopulation::EXTENDED_REPORTING);
+-    }
 -  } else {
 -  } else {
 -    request->set_model_filename(model_loader_standard_->name());
 -    request->set_model_filename(model_loader_standard_->name());
 -    request->mutable_population()->set_user_population(
 -    request->mutable_population()->set_user_population(

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

@@ -3,7 +3,7 @@
 
 
 --- a/chrome/browser/autocomplete/chrome_autocomplete_scheme_classifier.cc
 --- a/chrome/browser/autocomplete/chrome_autocomplete_scheme_classifier.cc
 +++ b/chrome/browser/autocomplete/chrome_autocomplete_scheme_classifier.cc
 +++ b/chrome/browser/autocomplete/chrome_autocomplete_scheme_classifier.cc
-@@ -28,6 +28,7 @@ ChromeAutocompleteSchemeClassifier::GetI
+@@ -55,6 +55,7 @@ ChromeAutocompleteSchemeClassifier::GetI
    if (base::IsStringASCII(scheme) &&
    if (base::IsStringASCII(scheme) &&
        (ProfileIOData::IsHandledProtocol(scheme) ||
        (ProfileIOData::IsHandledProtocol(scheme) ||
         base::LowerCaseEqualsASCII(scheme, content::kViewSourceScheme) ||
         base::LowerCaseEqualsASCII(scheme, content::kViewSourceScheme) ||
@@ -35,7 +35,7 @@
      GURL rewritten_tab_url = tab_url;
      GURL rewritten_tab_url = tab_url;
 --- a/components/omnibox/browser/autocomplete_input.cc
 --- a/components/omnibox/browser/autocomplete_input.cc
 +++ b/components/omnibox/browser/autocomplete_input.cc
 +++ b/components/omnibox/browser/autocomplete_input.cc
-@@ -496,7 +496,8 @@ void AutocompleteInput::ParseForEmphasiz
+@@ -487,7 +487,8 @@ void AutocompleteInput::ParseForEmphasiz
    // For the view-source and blob schemes, we should emphasize the host of the
    // For the view-source and blob schemes, we should emphasize the host of the
    // URL qualified by the view-source or blob prefix.
    // URL qualified by the view-source or blob prefix.
    if ((base::LowerCaseEqualsASCII(scheme_str, kViewSourceScheme) ||
    if ((base::LowerCaseEqualsASCII(scheme_str, kViewSourceScheme) ||
@@ -45,7 +45,7 @@
        (static_cast<int>(text.length()) > after_scheme_and_colon)) {
        (static_cast<int>(text.length()) > after_scheme_and_colon)) {
      // Obtain the URL prefixed by view-source or blob and parse it.
      // Obtain the URL prefixed by view-source or blob and parse it.
      base::string16 real_url(text.substr(after_scheme_and_colon));
      base::string16 real_url(text.substr(after_scheme_and_colon));
-@@ -569,7 +570,9 @@ int AutocompleteInput::NumNonHostCompone
+@@ -560,7 +561,9 @@ int AutocompleteInput::NumNonHostCompone
  bool AutocompleteInput::HasHTTPScheme(const base::string16& input) {
  bool AutocompleteInput::HasHTTPScheme(const base::string16& input) {
    std::string utf8_input(base::UTF16ToUTF8(input));
    std::string utf8_input(base::UTF16ToUTF8(input));
    url::Component scheme;
    url::Component scheme;
@@ -58,7 +58,7 @@
    return url::FindAndCompareScheme(utf8_input, url::kHttpScheme, nullptr);
    return url::FindAndCompareScheme(utf8_input, url::kHttpScheme, nullptr);
 --- a/components/url_formatter/url_fixer.cc
 --- a/components/url_formatter/url_fixer.cc
 +++ b/components/url_formatter/url_fixer.cc
 +++ b/components/url_formatter/url_fixer.cc
-@@ -566,6 +566,10 @@ GURL FixupURL(const std::string& text, c
+@@ -557,6 +557,10 @@ GURL FixupURL(const std::string& text, c
      }
      }
    }
    }
  
  
@@ -71,7 +71,7 @@
      return GURL(parts.scheme.is_valid() ? text : FixupPath(text));
      return GURL(parts.scheme.is_valid() ? text : FixupPath(text));
 --- a/content/browser/child_process_security_policy_impl.cc
 --- a/content/browser/child_process_security_policy_impl.cc
 +++ b/content/browser/child_process_security_policy_impl.cc
 +++ b/content/browser/child_process_security_policy_impl.cc
-@@ -620,6 +620,7 @@ ChildProcessSecurityPolicyImpl::ChildPro
+@@ -625,6 +625,7 @@ ChildProcessSecurityPolicyImpl::ChildPro
  #endif  // BUILDFLAG(ENABLE_WEBSOCKETS)
  #endif  // BUILDFLAG(ENABLE_WEBSOCKETS)
    RegisterWebSafeScheme(url::kFtpScheme);
    RegisterWebSafeScheme(url::kFtpScheme);
    RegisterWebSafeScheme(url::kDataScheme);
    RegisterWebSafeScheme(url::kDataScheme);
@@ -81,7 +81,7 @@
    // TODO(nick): https://crbug.com/651534 blob: and filesystem: schemes embed
    // TODO(nick): https://crbug.com/651534 blob: and filesystem: schemes embed
 --- a/net/BUILD.gn
 --- a/net/BUILD.gn
 +++ b/net/BUILD.gn
 +++ b/net/BUILD.gn
-@@ -1075,6 +1075,8 @@ component("net") {
+@@ -1084,6 +1084,8 @@ component("net") {
        "url_request/report_sender.h",
        "url_request/report_sender.h",
        "url_request/static_http_user_agent_settings.cc",
        "url_request/static_http_user_agent_settings.cc",
        "url_request/static_http_user_agent_settings.h",
        "url_request/static_http_user_agent_settings.h",
@@ -188,15 +188,15 @@
      return NetLogURLRequestConstructorParams(url, priority_,
      return NetLogURLRequestConstructorParams(url, priority_,
 --- a/net/url_request/url_request_context_builder.cc
 --- a/net/url_request/url_request_context_builder.cc
 +++ b/net/url_request/url_request_context_builder.cc
 +++ b/net/url_request/url_request_context_builder.cc
-@@ -40,6 +40,7 @@
+@@ -42,6 +42,7 @@
  #include "net/quic/quic_stream_factory.h"
  #include "net/quic/quic_stream_factory.h"
  #include "net/ssl/ssl_config_service_defaults.h"
  #include "net/ssl/ssl_config_service_defaults.h"
  #include "net/url_request/static_http_user_agent_settings.h"
  #include "net/url_request/static_http_user_agent_settings.h"
 +#include "net/url_request/trk_protocol_handler.h"
 +#include "net/url_request/trk_protocol_handler.h"
  #include "net/url_request/url_request_context.h"
  #include "net/url_request/url_request_context.h"
  #include "net/url_request/url_request_context_storage.h"
  #include "net/url_request/url_request_context_storage.h"
- #include "net/url_request/url_request_intercepting_job_factory.h"
-@@ -628,6 +629,9 @@ std::unique_ptr<URLRequestContext> URLRe
+ #include "net/url_request/url_request_job_factory_impl.h"
+@@ -614,6 +615,9 @@ std::unique_ptr<URLRequestContext> URLRe
    }
    }
    protocol_handlers_.clear();
    protocol_handlers_.clear();
  
  
@@ -228,7 +228,7 @@
  
  
 --- a/url/url_util.cc
 --- a/url/url_util.cc
 +++ b/url/url_util.cc
 +++ b/url/url_util.cc
-@@ -54,7 +54,7 @@ struct SchemeRegistry {
+@@ -56,7 +56,7 @@ struct SchemeRegistry {
  
  
    // Schemes that do not trigger mixed content warning.
    // Schemes that do not trigger mixed content warning.
    std::vector<std::string> secure_schemes = {
    std::vector<std::string> secure_schemes = {
@@ -237,7 +237,7 @@
    };
    };
  
  
    // Schemes that normal pages cannot link to or access (i.e., with the same
    // Schemes that normal pages cannot link to or access (i.e., with the same
-@@ -69,6 +69,7 @@ struct SchemeRegistry {
+@@ -71,6 +71,7 @@ struct SchemeRegistry {
        kAboutScheme,
        kAboutScheme,
        kJavaScriptScheme,
        kJavaScriptScheme,
        kDataScheme,
        kDataScheme,

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

@@ -2,29 +2,28 @@
 
 
 --- a/chrome/browser/tracing/crash_service_uploader.cc
 --- a/chrome/browser/tracing/crash_service_uploader.cc
 +++ b/chrome/browser/tracing/crash_service_uploader.cc
 +++ b/chrome/browser/tracing/crash_service_uploader.cc
-@@ -129,11 +129,16 @@ void TraceCrashServiceUploader::DoUpload
+@@ -130,11 +130,16 @@ void TraceCrashServiceUploader::DoUpload
    progress_callback_ = progress_callback;
    progress_callback_ = progress_callback;
    done_callback_ = std::move(done_callback);
    done_callback_ = std::move(done_callback);
  
  
--  base::PostTask(
--      FROM_HERE, {base::ThreadPool(), base::TaskPriority::BEST_EFFORT},
+-  base::ThreadPool::PostTask(
++  if (!progress_callback_.is_null()) {
++    base::ThreadPool::PostTask(
+       FROM_HERE, {base::TaskPriority::BEST_EFFORT},
 -      base::BindOnce(&TraceCrashServiceUploader::DoCompressOnBackgroundThread,
 -      base::BindOnce(&TraceCrashServiceUploader::DoCompressOnBackgroundThread,
 -                     base::Unretained(this), file_contents, upload_mode,
 -                     base::Unretained(this), file_contents, upload_mode,
 -                     upload_url_, std::move(metadata)));
 -                     upload_url_, std::move(metadata)));
-+  if (!progress_callback_.is_null()) {
-+    base::PostTask(
-+      FROM_HERE, {content::BrowserThread::UI},
 +      base::Bind(progress_callback_, 1, 1));
 +      base::Bind(progress_callback_, 1, 1));
 +  }
 +  }
 +  if (!done_callback_.is_null()) {
 +  if (!done_callback_.is_null()) {
-+    base::PostTask(
-+      FROM_HERE, {content::BrowserThread::UI},
++    base::ThreadPool::PostTask(
++      FROM_HERE, {base::TaskPriority::BEST_EFFORT},
 +      base::BindOnce(std::move(done_callback_), true, "Upload skipped."));
 +      base::BindOnce(std::move(done_callback_), true, "Upload skipped."));
 +  }
 +  }
  }
  }
  
  
  void TraceCrashServiceUploader::DoCompressOnBackgroundThread(
  void TraceCrashServiceUploader::DoCompressOnBackgroundThread(
-@@ -306,6 +311,7 @@ bool TraceCrashServiceUploader::Compress
+@@ -307,6 +312,7 @@ bool TraceCrashServiceUploader::Compress
  void TraceCrashServiceUploader::CreateAndStartURLLoader(
  void TraceCrashServiceUploader::CreateAndStartURLLoader(
      const std::string& upload_url,
      const std::string& upload_url,
      const std::string& post_data) {
      const std::string& post_data) {

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

@@ -2,7 +2,7 @@
 
 
 --- a/components/domain_reliability/BUILD.gn
 --- a/components/domain_reliability/BUILD.gn
 +++ b/components/domain_reliability/BUILD.gn
 +++ b/components/domain_reliability/BUILD.gn
-@@ -10,26 +10,6 @@ action("bake_in_configs") {
+@@ -9,26 +9,6 @@ action("bake_in_configs") {
    script = "bake_in_configs.py"
    script = "bake_in_configs.py"
  
  
    inputs = [
    inputs = [
@@ -29,7 +29,7 @@
    ]
    ]
  
  
    output_file = "$target_gen_dir/baked_in_configs.cc"
    output_file = "$target_gen_dir/baked_in_configs.cc"
-@@ -37,13 +17,21 @@ action("bake_in_configs") {
+@@ -36,13 +16,21 @@ action("bake_in_configs") {
  
  
    # The JSON file list is too long for the command line on Windows, so put
    # The JSON file list is too long for the command line on Windows, so put
    # them in a response file.
    # them in a response file.
@@ -71,7 +71,7 @@
  def quote_and_wrap_text(text, width=79, prefix='  "', suffix='"'):
  def quote_and_wrap_text(text, width=79, prefix='  "', suffix='"'):
 --- a/components/domain_reliability/google_configs.cc
 --- a/components/domain_reliability/google_configs.cc
 +++ b/components/domain_reliability/google_configs.cc
 +++ b/components/domain_reliability/google_configs.cc
-@@ -13,575 +13,10 @@
+@@ -10,564 +10,6 @@
  
  
  namespace domain_reliability {
  namespace domain_reliability {
  
  
@@ -318,7 +318,7 @@
 -    {"l.google.com", true, true, true},
 -    {"l.google.com", true, true, true},
 -
 -
 -    // google.com is a special case. We have a custom config for www.google.com,
 -    // google.com is a special case. We have a custom config for www.google.com,
--    // so set generate_config_for_www_subdomain = false.
+-    // so set duplicate_for_www = false.
 -    {"google.com", true, true, false},
 -    {"google.com", true, true, false},
 -
 -
 -    // Origins with subdomains and without same-origin collectors.
 -    // Origins with subdomains and without same-origin collectors.
@@ -603,7 +603,7 @@
 -const char* const kGoogleOriginSpecificCollectorPathString =
 -const char* const kGoogleOriginSpecificCollectorPathString =
 -    "/domainreliability/upload";
 -    "/domainreliability/upload";
 -
 -
--static std::unique_ptr<DomainReliabilityConfig> CreateGoogleConfig(
+-std::unique_ptr<const DomainReliabilityConfig> CreateGoogleConfig(
 -    const GoogleConfigParams& params,
 -    const GoogleConfigParams& params,
 -    bool is_www) {
 -    bool is_www) {
 -  if (is_www)
 -  if (is_www)
@@ -612,8 +612,7 @@
 -  std::string hostname = (is_www ? "www." : "") + std::string(params.hostname);
 -  std::string hostname = (is_www ? "www." : "") + std::string(params.hostname);
 -  bool include_subdomains = params.include_subdomains && !is_www;
 -  bool include_subdomains = params.include_subdomains && !is_www;
 -
 -
--  std::unique_ptr<DomainReliabilityConfig> config(
--      new DomainReliabilityConfig());
+-  auto config = std::make_unique<DomainReliabilityConfig>();
 -  config->origin = GURL("https://" + hostname + "/");
 -  config->origin = GURL("https://" + hostname + "/");
 -  config->include_subdomains = include_subdomains;
 -  config->include_subdomains = include_subdomains;
 -  config->collectors.clear();
 -  config->collectors.clear();
@@ -623,9 +622,9 @@
 -    config->collectors.push_back(
 -    config->collectors.push_back(
 -        std::make_unique<GURL>(config->origin.ReplaceComponents(replacements)));
 -        std::make_unique<GURL>(config->origin.ReplaceComponents(replacements)));
 -  }
 -  }
--  for (size_t i = 0; i < base::size(kGoogleStandardCollectors); i++)
--    config->collectors.push_back(
--        std::make_unique<GURL>(kGoogleStandardCollectors[i]));
+-  for (const char* collector : kGoogleStandardCollectors) {
+-    config->collectors.push_back(std::make_unique<GURL>(collector));
+-  }
 -  config->success_sample_rate = 0.05;
 -  config->success_sample_rate = 0.05;
 -  config->failure_sample_rate = 1.00;
 -  config->failure_sample_rate = 1.00;
 -  config->path_prefixes.clear();
 -  config->path_prefixes.clear();
@@ -634,19 +633,47 @@
 -
 -
 -}  // namespace
 -}  // namespace
 -
 -
- // static
- void GetAllGoogleConfigs(
-     std::vector<std::unique_ptr<DomainReliabilityConfig>>* configs_out) {
-   configs_out->clear();
+ std::unique_ptr<const DomainReliabilityConfig> MaybeGetGoogleConfig(
+     const std::string& hostname) {
+   bool is_www_subdomain =
+@@ -577,23 +19,6 @@ std::unique_ptr<const DomainReliabilityC
+   std::unique_ptr<const DomainReliabilityConfig> config = nullptr;
+   std::unique_ptr<const DomainReliabilityConfig> superdomain_config = nullptr;
+ 
+-  for (const auto& params : kGoogleConfigs) {
+-    if (params.hostname == hostname) {
+-      config = CreateGoogleConfig(params, false);
+-      break;
+-    }
+-    if (params.duplicate_for_www && is_www_subdomain &&
+-        params.hostname == hostname_parent) {
+-      config = CreateGoogleConfig(params, true);
+-      break;
+-    }
+-    // Don't break out of the loop upon finding a superdomain config, because
+-    // there might be an exact match later on.
+-    if (params.include_subdomains && params.hostname == hostname_parent) {
+-      superdomain_config = CreateGoogleConfig(params, false);
+-    }
+-  }
+-
+   if (config) {
+     DCHECK(config->origin.host() == hostname);
+     return config;
+@@ -611,12 +36,7 @@ std::unique_ptr<const DomainReliabilityC
+ std::vector<std::unique_ptr<const DomainReliabilityConfig>>
+ GetAllGoogleConfigsForTesting() {
+   std::vector<std::unique_ptr<const DomainReliabilityConfig>> configs_out;
 -
 -
--  for (auto& params : kGoogleConfigs) {
--    configs_out->push_back(CreateGoogleConfig(params, false));
+-  for (const auto& params : kGoogleConfigs) {
+-    configs_out.push_back(CreateGoogleConfig(params, false));
 -    if (params.duplicate_for_www)
 -    if (params.duplicate_for_www)
--      configs_out->push_back(CreateGoogleConfig(params, true));
+-      configs_out.push_back(CreateGoogleConfig(params, true));
 -  }
 -  }
++
+   return configs_out;
  }
  }
  
  
- }  // namespace domain_reliability
 --- a/components/domain_reliability/uploader.cc
 --- a/components/domain_reliability/uploader.cc
 +++ b/components/domain_reliability/uploader.cc
 +++ b/components/domain_reliability/uploader.cc
 @@ -82,7 +82,7 @@ class DomainReliabilityUploaderImpl
 @@ -82,7 +82,7 @@ class DomainReliabilityUploaderImpl

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

@@ -3,7 +3,7 @@
 
 
 --- a/chrome/browser/browser_resources.grd
 --- a/chrome/browser/browser_resources.grd
 +++ b/chrome/browser/browser_resources.grd
 +++ b/chrome/browser/browser_resources.grd
-@@ -142,7 +142,6 @@
+@@ -140,7 +140,6 @@
        <include name="IDR_INLINE_LOGIN_HTML" file="resources\inline_login\inline_login.html" compress="gzip" flattenhtml="true" allowexternalscript="true" type="BINDATA" preprocess="true" />
        <include name="IDR_INLINE_LOGIN_HTML" file="resources\inline_login\inline_login.html" compress="gzip" flattenhtml="true" allowexternalscript="true" type="BINDATA" preprocess="true" />
        <include name="IDR_INLINE_LOGIN_CSS" file="resources\inline_login\inline_login.css" compress="gzip" flattenhtml="true" type="BINDATA" preprocess="true" />
        <include name="IDR_INLINE_LOGIN_CSS" file="resources\inline_login\inline_login.css" compress="gzip" flattenhtml="true" type="BINDATA" preprocess="true" />
        <include name="IDR_INLINE_LOGIN_JS" file="resources\inline_login\inline_login.js" compress="gzip" flattenhtml="true" type="BINDATA" />
        <include name="IDR_INLINE_LOGIN_JS" file="resources\inline_login\inline_login.js" compress="gzip" flattenhtml="true" type="BINDATA" />
@@ -13,14 +13,14 @@
        <include name="IDR_INSPECT_HTML" file="resources\inspect\inspect.html" compress="gzip" flattenhtml="true" allowexternalscript="true" type="BINDATA" />
        <include name="IDR_INSPECT_HTML" file="resources\inspect\inspect.html" compress="gzip" flattenhtml="true" allowexternalscript="true" type="BINDATA" />
 --- a/chrome/browser/ui/webui/signin/inline_login_ui.cc
 --- a/chrome/browser/ui/webui/signin/inline_login_ui.cc
 +++ b/chrome/browser/ui/webui/signin/inline_login_ui.cc
 +++ b/chrome/browser/ui/webui/signin/inline_login_ui.cc
-@@ -52,7 +52,6 @@ content::WebUIDataSource* CreateWebUIDat
+@@ -120,7 +120,6 @@ content::WebUIDataSource* CreateWebUIDat
  
  
    source->AddResourcePath("inline_login.css", IDR_INLINE_LOGIN_CSS);
    source->AddResourcePath("inline_login.css", IDR_INLINE_LOGIN_CSS);
    source->AddResourcePath("inline_login.js", IDR_INLINE_LOGIN_JS);
    source->AddResourcePath("inline_login.js", IDR_INLINE_LOGIN_JS);
 -  source->AddResourcePath("gaia_auth_host.js", IDR_GAIA_AUTH_AUTHENTICATOR_JS);
 -  source->AddResourcePath("gaia_auth_host.js", IDR_GAIA_AUTH_AUTHENTICATOR_JS);
  
  
-   source->AddLocalizedString("title", IDS_CHROME_SIGNIN_TITLE);
-   source->AddLocalizedString(
+ #if defined(OS_CHROMEOS)
+   source->OverrideContentSecurityPolicyScriptSrc(
 --- a/google_apis/gaia/gaia_auth_fetcher.cc
 --- a/google_apis/gaia/gaia_auth_fetcher.cc
 +++ b/google_apis/gaia/gaia_auth_fetcher.cc
 +++ b/google_apis/gaia/gaia_auth_fetcher.cc
 @@ -293,65 +293,6 @@ void GaiaAuthFetcher::CreateAndStartGaia
 @@ -293,65 +293,6 @@ void GaiaAuthFetcher::CreateAndStartGaia

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

@@ -10,7 +10,7 @@
    std::vector<GURL> endpoints;
    std::vector<GURL> endpoints;
    endpoints.push_back(gservices_settings_.GetMCSMainEndpoint());
    endpoints.push_back(gservices_settings_.GetMCSMainEndpoint());
    GURL fallback_endpoint = gservices_settings_.GetMCSFallbackEndpoint();
    GURL fallback_endpoint = gservices_settings_.GetMCSFallbackEndpoint();
-@@ -670,27 +671,6 @@ void GCMClientImpl::RemoveHeartbeatInter
+@@ -672,27 +673,6 @@ void GCMClientImpl::RemoveHeartbeatInter
  
  
  void GCMClientImpl::StartCheckin() {
  void GCMClientImpl::StartCheckin() {
    DCHECK(io_task_runner_->RunsTasksInCurrentSequence());
    DCHECK(io_task_runner_->RunsTasksInCurrentSequence());
@@ -28,8 +28,8 @@
 -                                           chrome_build_proto);
 -                                           chrome_build_proto);
 -  checkin_request_.reset(new CheckinRequest(
 -  checkin_request_.reset(new CheckinRequest(
 -      gservices_settings_.GetCheckinURL(), request_info, GetGCMBackoffPolicy(),
 -      gservices_settings_.GetCheckinURL(), request_info, GetGCMBackoffPolicy(),
--      base::Bind(&GCMClientImpl::OnCheckinCompleted,
--                 weak_ptr_factory_.GetWeakPtr()),
+-      base::BindOnce(&GCMClientImpl::OnCheckinCompleted,
+-                     weak_ptr_factory_.GetWeakPtr()),
 -      url_loader_factory_, io_task_runner_, &recorder_));
 -      url_loader_factory_, io_task_runner_, &recorder_));
 -  // Taking a snapshot of the accounts count here, as there might be an asynch
 -  // Taking a snapshot of the accounts count here, as there might be an asynch
 -  // update of the account tokens while checkin is in progress.
 -  // update of the account tokens while checkin is in progress.

+ 49 - 45
patches/core/ungoogled-chromium/disable-google-host-detection.patch

@@ -2,8 +2,8 @@
 
 
 --- a/chrome/common/google_url_loader_throttle.cc
 --- a/chrome/common/google_url_loader_throttle.cc
 +++ b/chrome/common/google_url_loader_throttle.cc
 +++ b/chrome/common/google_url_loader_throttle.cc
-@@ -10,10 +10,6 @@
- #include "components/variations/net/variations_http_headers.h"
+@@ -9,10 +9,6 @@
+ #include "components/google/core/common/google_util.h"
  #include "services/network/public/mojom/url_response_head.mojom.h"
  #include "services/network/public/mojom/url_response_head.mojom.h"
  
  
 -#if BUILDFLAG(ENABLE_EXTENSIONS)
 -#if BUILDFLAG(ENABLE_EXTENSIONS)
@@ -13,16 +13,10 @@
  namespace {
  namespace {
  
  
  #if defined(OS_ANDROID)
  #if defined(OS_ANDROID)
-@@ -42,43 +38,6 @@ void GoogleURLLoaderThrottle::DetachFrom
+@@ -40,37 +36,6 @@ void GoogleURLLoaderThrottle::DetachFrom
  void GoogleURLLoaderThrottle::WillStartRequest(
  void GoogleURLLoaderThrottle::WillStartRequest(
      network::ResourceRequest* request,
      network::ResourceRequest* request,
      bool* defer) {
      bool* defer) {
--  variations::AppendVariationsHeaderWithCustomValue(
--      request->url,
--      is_off_the_record_ ? variations::InIncognito::kYes
--                         : variations::InIncognito::kNo,
--      dynamic_params_.variation_ids_header, request);
--
 -  if (dynamic_params_.force_safe_search) {
 -  if (dynamic_params_.force_safe_search) {
 -    GURL new_url;
 -    GURL new_url;
 -    safe_search_util::ForceGoogleSafeSearch(request->url, &new_url);
 -    safe_search_util::ForceGoogleSafeSearch(request->url, &new_url);
@@ -57,13 +51,10 @@
  }
  }
  
  
  void GoogleURLLoaderThrottle::WillRedirectRequest(
  void GoogleURLLoaderThrottle::WillRedirectRequest(
-@@ -87,39 +46,6 @@ void GoogleURLLoaderThrottle::WillRedire
+@@ -79,36 +44,6 @@ void GoogleURLLoaderThrottle::WillRedire
      bool* /* defer */,
      bool* /* defer */,
      std::vector<std::string>* to_be_removed_headers,
      std::vector<std::string>* to_be_removed_headers,
      net::HttpRequestHeaders* modified_headers) {
      net::HttpRequestHeaders* modified_headers) {
--  variations::RemoveVariationsHeaderIfNeeded(*redirect_info, response_head,
--                                             to_be_removed_headers);
--
 -  // URLLoaderThrottles can only change the redirect URL when the network
 -  // URLLoaderThrottles can only change the redirect URL when the network
 -  // service is enabled. The non-network service path handles this in
 -  // service is enabled. The non-network service path handles this in
 -  // ChromeNetworkDelegate.
 -  // ChromeNetworkDelegate.
@@ -97,7 +88,7 @@
  }
  }
  
  
  #if BUILDFLAG(ENABLE_EXTENSIONS)
  #if BUILDFLAG(ENABLE_EXTENSIONS)
-@@ -127,17 +53,5 @@ void GoogleURLLoaderThrottle::WillProces
+@@ -116,17 +51,5 @@ void GoogleURLLoaderThrottle::WillProces
      const GURL& response_url,
      const GURL& response_url,
      network::mojom::URLResponseHead* response_head,
      network::mojom::URLResponseHead* response_head,
      bool* defer) {
      bool* defer) {
@@ -117,7 +108,7 @@
  #endif
  #endif
 --- a/components/google/core/common/google_util.cc
 --- a/components/google/core/common/google_util.cc
 +++ b/components/google/core/common/google_util.cc
 +++ b/components/google/core/common/google_util.cc
-@@ -45,103 +45,6 @@ namespace {
+@@ -46,107 +46,6 @@ namespace {
  bool gUseMockLinkDoctorBaseURLForTesting = false;
  bool gUseMockLinkDoctorBaseURLForTesting = false;
  
  
  bool g_ignore_port_numbers = false;
  bool g_ignore_port_numbers = false;
@@ -133,13 +124,13 @@
 -}
 -}
 -
 -
 -// True if the given canonical |host| is "[www.]<domain_in_lower_case>.<TLD>"
 -// True if the given canonical |host| is "[www.]<domain_in_lower_case>.<TLD>"
--// with a valid TLD. If |subdomain_permission| is ALLOW_SUBDOMAIN, we check
--// against host "*.<domain_in_lower_case>.<TLD>" instead. Will return the TLD
--// string in |tld|, if specified and the |host| can be parsed.
+-// with a valid TLD that appears in |allowed_tlds|. If |subdomain_permission| is
+-// ALLOW_SUBDOMAIN, we check against host "*.<domain_in_lower_case>.<TLD>"
+-// instead.
 -bool IsValidHostName(base::StringPiece host,
 -bool IsValidHostName(base::StringPiece host,
 -                     base::StringPiece domain_in_lower_case,
 -                     base::StringPiece domain_in_lower_case,
 -                     SubdomainPermission subdomain_permission,
 -                     SubdomainPermission subdomain_permission,
--                     base::StringPiece* tld) {
+-                     const base::flat_set<base::StringPiece>& allowed_tlds) {
 -  // Fast path to avoid searching the registry set.
 -  // Fast path to avoid searching the registry set.
 -  if (host.find(domain_in_lower_case) == base::StringPiece::npos)
 -  if (host.find(domain_in_lower_case) == base::StringPiece::npos)
 -    return false;
 -    return false;
@@ -155,21 +146,23 @@
 -  base::StringPiece host_minus_tld =
 -  base::StringPiece host_minus_tld =
 -      host.substr(0, host.length() - tld_length - 1);
 -      host.substr(0, host.length() - tld_length - 1);
 -
 -
--  if (tld)
--    *tld = host.substr(host.length() - tld_length);
+-  base::StringPiece tld = host.substr(host.length() - tld_length);
+-  // Remove the trailing dot from tld if present, as for Google domains it's the
+-  // same page.
+-  StripTrailingDot(&tld);
+-  if (!allowed_tlds.contains(tld))
+-    return false;
 -
 -
 -  if (base::LowerCaseEqualsASCII(host_minus_tld, domain_in_lower_case))
 -  if (base::LowerCaseEqualsASCII(host_minus_tld, domain_in_lower_case))
 -    return true;
 -    return true;
 -
 -
 -  if (subdomain_permission == ALLOW_SUBDOMAIN) {
 -  if (subdomain_permission == ALLOW_SUBDOMAIN) {
--    std::string dot_domain(".");
--    domain_in_lower_case.AppendToString(&dot_domain);
+-    std::string dot_domain = base::StrCat({".", domain_in_lower_case});
 -    return base::EndsWith(host_minus_tld, dot_domain,
 -    return base::EndsWith(host_minus_tld, dot_domain,
 -                          base::CompareCase::INSENSITIVE_ASCII);
 -                          base::CompareCase::INSENSITIVE_ASCII);
 -  }
 -  }
 -
 -
--  std::string www_domain("www.");
--  domain_in_lower_case.AppendToString(&www_domain);
+-  std::string www_domain = base::StrCat({"www.", domain_in_lower_case});
 -  return base::LowerCaseEqualsASCII(host_minus_tld, www_domain);
 -  return base::LowerCaseEqualsASCII(host_minus_tld, www_domain);
 -}
 -}
 -
 -
@@ -188,17 +181,19 @@
 -  if (base_url.is_valid() && (canonical_host == base_url.host_piece()))
 -  if (base_url.is_valid() && (canonical_host == base_url.host_piece()))
 -    return true;
 -    return true;
 -
 -
--  base::StringPiece tld;
--  if (!IsValidHostName(canonical_host, "google", subdomain_permission, &tld))
--    return false;
--
--  // Remove the trailing dot from tld if present, as for google domain it's the
--  // same page.
--  StripTrailingDot(&tld);
--
 -  static const base::NoDestructor<base::flat_set<base::StringPiece>>
 -  static const base::NoDestructor<base::flat_set<base::StringPiece>>
 -      google_tlds(std::initializer_list<base::StringPiece>({GOOGLE_TLD_LIST}));
 -      google_tlds(std::initializer_list<base::StringPiece>({GOOGLE_TLD_LIST}));
--  return google_tlds->contains(tld);
+-  return IsValidHostName(canonical_host, "google", subdomain_permission,
+-                         *google_tlds);
+-}
+-
+-bool IsCanonicalHostYoutubeHostname(base::StringPiece canonical_host,
+-                                    SubdomainPermission subdomain_permission) {
+-  static const base::NoDestructor<base::flat_set<base::StringPiece>>
+-      youtube_tlds(
+-          std::initializer_list<base::StringPiece>({YOUTUBE_TLD_LIST}));
+-  return IsValidHostName(canonical_host, "youtube", subdomain_permission,
+-                         *youtube_tlds);
 -}
 -}
 -
 -
 -// True if |url| is a valid URL with a host that is in the static list of
 -// True if |url| is a valid URL with a host that is in the static list of
@@ -221,7 +216,7 @@
  }  // namespace
  }  // namespace
  
  
  // Global functions -----------------------------------------------------------
  // Global functions -----------------------------------------------------------
-@@ -149,19 +52,11 @@ bool IsGoogleSearchSubdomainUrl(const GU
+@@ -154,19 +53,11 @@ bool IsGoogleSearchSubdomainUrl(const GU
  const char kGoogleHomepageURL[] = "https://www.google.com/";
  const char kGoogleHomepageURL[] = "https://www.google.com/";
  
  
  bool HasGoogleSearchQueryParam(base::StringPiece str) {
  bool HasGoogleSearchQueryParam(base::StringPiece str) {
@@ -242,7 +237,7 @@
  }
  }
  
  
  void SetMockLinkDoctorBaseURLForTesting() {
  void SetMockLinkDoctorBaseURLForTesting() {
-@@ -175,162 +70,53 @@ std::string GetGoogleLocale(const std::s
+@@ -180,161 +71,53 @@ std::string GetGoogleLocale(const std::s
  
  
  GURL AppendGoogleLocaleParam(const GURL& url,
  GURL AppendGoogleLocaleParam(const GURL& url,
                               const std::string& application_locale) {
                               const std::string& application_locale) {
@@ -367,8 +362,7 @@
                          SubdomainPermission subdomain_permission,
                          SubdomainPermission subdomain_permission,
                          PortPermission port_permission) {
                          PortPermission port_permission) {
 -  return IsValidURL(url, port_permission) &&
 -  return IsValidURL(url, port_permission) &&
--         IsValidHostName(url.host_piece(), "youtube", subdomain_permission,
--                         nullptr);
+-         IsCanonicalHostYoutubeHostname(url.host_piece(), subdomain_permission);
 +  return false;
 +  return false;
  }
  }
  
  
@@ -487,7 +481,7 @@
  bool TemplateURLRef::ExtractSearchTermsFromURL(
  bool TemplateURLRef::ExtractSearchTermsFromURL(
 --- a/components/variations/net/variations_http_headers.cc
 --- a/components/variations/net/variations_http_headers.cc
 +++ b/components/variations/net/variations_http_headers.cc
 +++ b/components/variations/net/variations_http_headers.cc
-@@ -27,10 +27,6 @@ namespace variations {
+@@ -29,10 +29,6 @@ namespace variations {
  
  
  namespace {
  namespace {
  
  
@@ -498,10 +492,12 @@
  // The result of checking if a URL should have variations headers appended.
  // The result of checking if a URL should have variations headers appended.
  // This enum is used to record UMA histogram values, and should not be
  // This enum is used to record UMA histogram values, and should not be
  // reordered.
  // reordered.
-@@ -87,26 +83,7 @@ class VariationsHeaderHelper {
+@@ -89,28 +85,7 @@ class VariationsHeaderHelper {
    }
    }
  
  
    bool AppendHeaderIfNeeded(const GURL& url, InIncognito incognito) {
    bool AppendHeaderIfNeeded(const GURL& url, InIncognito incognito) {
+-    AppendOmniboxOnDeviceSuggestionsHeaderIfNeeded(url, resource_request_);
+-
 -    // Note the criteria for attaching client experiment headers:
 -    // Note the criteria for attaching client experiment headers:
 -    // 1. We only transmit to Google owned domains which can evaluate
 -    // 1. We only transmit to Google owned domains which can evaluate
 -    // experiments.
 -    // experiments.
@@ -526,7 +522,7 @@
    }
    }
  
  
   private:
   private:
-@@ -149,8 +126,6 @@ void RemoveVariationsHeaderIfNeeded(
+@@ -153,8 +128,6 @@ void RemoveVariationsHeaderIfNeeded(
      const net::RedirectInfo& redirect_info,
      const net::RedirectInfo& redirect_info,
      const network::mojom::URLResponseHead& response_head,
      const network::mojom::URLResponseHead& response_head,
      std::vector<std::string>* to_be_removed_headers) {
      std::vector<std::string>* to_be_removed_headers) {
@@ -535,31 +531,39 @@
  }
  }
  
  
  std::unique_ptr<network::SimpleURLLoader>
  std::unique_ptr<network::SimpleURLLoader>
-@@ -180,11 +155,11 @@ CreateSimpleURLLoaderWithVariationsHeade
+@@ -184,14 +157,11 @@ CreateSimpleURLLoaderWithVariationsHeade
  }
  }
  
  
  bool IsVariationsHeader(const std::string& header_name) {
  bool IsVariationsHeader(const std::string& header_name) {
--  return header_name == kClientDataHeader;
+-  return header_name == kClientDataHeader ||
+-         header_name == kOmniboxOnDeviceSuggestionsHeader;
 +  return false;
 +  return false;
  }
  }
  
  
  bool HasVariationsHeader(const network::ResourceRequest& request) {
  bool HasVariationsHeader(const network::ResourceRequest& request) {
+-  // Note: kOmniboxOnDeviceSuggestionsHeader is not listed because this function
+-  // is only used for testing.
 -  return request.cors_exempt_headers.HasHeader(kClientDataHeader);
 -  return request.cors_exempt_headers.HasHeader(kClientDataHeader);
 +  return false;
 +  return false;
  }
  }
  
  
  bool ShouldAppendVariationsHeaderForTesting(const GURL& url) {
  bool ShouldAppendVariationsHeaderForTesting(const GURL& url) {
-@@ -193,7 +168,6 @@ bool ShouldAppendVariationsHeaderForTest
+@@ -200,12 +170,6 @@ bool ShouldAppendVariationsHeaderForTest
  
  
  void UpdateCorsExemptHeaderForVariations(
  void UpdateCorsExemptHeaderForVariations(
      network::mojom::NetworkContextParams* params) {
      network::mojom::NetworkContextParams* params) {
 -  params->cors_exempt_header_list.push_back(kClientDataHeader);
 -  params->cors_exempt_header_list.push_back(kClientDataHeader);
+-
+-  if (base::FeatureList::IsEnabled(kReportOmniboxOnDeviceSuggestionsHeader)) {
+-    params->cors_exempt_header_list.push_back(
+-        kOmniboxOnDeviceSuggestionsHeader);
+-  }
  }
  }
  
  
  }  // namespace variations
  }  // namespace variations
 --- a/net/base/url_util.cc
 --- a/net/base/url_util.cc
 +++ b/net/base/url_util.cc
 +++ b/net/base/url_util.cc
-@@ -394,27 +394,6 @@ bool HasGoogleHost(const GURL& url) {
+@@ -401,27 +401,6 @@ bool HasGoogleHost(const GURL& url) {
  }
  }
  
  
  bool IsGoogleHost(base::StringPiece host) {
  bool IsGoogleHost(base::StringPiece host) {

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

@@ -7,7 +7,7 @@
 
 
 --- a/chrome/BUILD.gn
 --- a/chrome/BUILD.gn
 +++ b/chrome/BUILD.gn
 +++ b/chrome/BUILD.gn
-@@ -335,7 +335,6 @@ if (!is_android && !is_mac) {
+@@ -321,7 +321,6 @@ if (!is_android && !is_mac) {
      }
      }
  
  
      data_deps += [
      data_deps += [
@@ -15,7 +15,7 @@
        "//third_party/widevine/cdm",
        "//third_party/widevine/cdm",
      ]
      ]
  
  
-@@ -1109,7 +1108,6 @@ if (is_win) {
+@@ -1092,7 +1091,6 @@ if (is_win) {
        ":keystone_registration_framework",
        ":keystone_registration_framework",
        ":swiftshader_library",
        ":swiftshader_library",
        ":widevine_cdm_library",
        ":widevine_cdm_library",

+ 3 - 3
patches/core/ungoogled-chromium/disable-profile-avatar-downloading.patch

@@ -2,9 +2,9 @@
 
 
 --- a/chrome/browser/profiles/profile_avatar_downloader.cc
 --- a/chrome/browser/profiles/profile_avatar_downloader.cc
 +++ b/chrome/browser/profiles/profile_avatar_downloader.cc
 +++ b/chrome/browser/profiles/profile_avatar_downloader.cc
-@@ -27,8 +27,7 @@ ProfileAvatarDownloader::ProfileAvatarDo
-     : icon_index_(icon_index),
-       callback_(callback) {
+@@ -25,8 +25,7 @@ ProfileAvatarDownloader::ProfileAvatarDo
+                                                  FetchCompleteCallback callback)
+     : icon_index_(icon_index), callback_(std::move(callback)) {
    DCHECK(!callback_.is_null());
    DCHECK(!callback_.is_null());
 -  GURL url(std::string(kHighResAvatarDownloadUrlPrefix) +
 -  GURL url(std::string(kHighResAvatarDownloadUrlPrefix) +
 -           profiles::GetDefaultAvatarIconFileNameAtIndex(icon_index));
 -           profiles::GetDefaultAvatarIconFileNameAtIndex(icon_index));

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

@@ -2,7 +2,7 @@
 
 
 --- a/chrome/browser/ui/chrome_pages.cc
 --- a/chrome/browser/ui/chrome_pages.cc
 +++ b/chrome/browser/ui/chrome_pages.cc
 +++ b/chrome/browser/ui/chrome_pages.cc
-@@ -492,23 +492,6 @@ GURL GetOSSettingsUrl(const std::string&
+@@ -494,22 +494,6 @@ GURL GetOSSettingsUrl(const std::string&
  #if !defined(OS_ANDROID) && !defined(OS_CHROMEOS)
  #if !defined(OS_ANDROID) && !defined(OS_CHROMEOS)
  void ShowBrowserSignin(Browser* browser,
  void ShowBrowserSignin(Browser* browser,
                         signin_metrics::AccessPoint access_point) {
                         signin_metrics::AccessPoint access_point) {
@@ -21,8 +21,7 @@
 -              ->HasPrimaryAccount()
 -              ->HasPrimaryAccount()
 -          ? profiles::BUBBLE_VIEW_MODE_GAIA_REAUTH
 -          ? profiles::BUBBLE_VIEW_MODE_GAIA_REAUTH
 -          : profiles::BUBBLE_VIEW_MODE_GAIA_SIGNIN;
 -          : profiles::BUBBLE_VIEW_MODE_GAIA_SIGNIN;
--  browser->signin_view_controller()->ShowSignin(bubble_view_mode, browser,
--                                                access_point);
+-  browser->signin_view_controller()->ShowSignin(bubble_view_mode, access_point);
  }
  }
  
  
  void ShowBrowserSigninOrSettings(Browser* browser,
  void ShowBrowserSigninOrSettings(Browser* browser,

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

@@ -14,7 +14,7 @@
  TranslateAgent::~TranslateAgent() {}
  TranslateAgent::~TranslateAgent() {}
 --- a/components/translate/core/browser/translate_manager.cc
 --- a/components/translate/core/browser/translate_manager.cc
 +++ b/components/translate/core/browser/translate_manager.cc
 +++ b/components/translate/core/browser/translate_manager.cc
-@@ -708,8 +708,7 @@ void TranslateManager::FilterIsTranslate
+@@ -709,8 +709,7 @@ void TranslateManager::FilterIsTranslate
          TranslateBrowserMetrics::INITIATION_STATUS_NO_NETWORK);
          TranslateBrowserMetrics::INITIATION_STATUS_NO_NETWORK);
    }
    }
  
  

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

@@ -23,7 +23,7 @@
  }  // namespace
  }  // namespace
 --- a/chrome/browser/safe_browsing/client_side_model_loader.cc
 --- a/chrome/browser/safe_browsing/client_side_model_loader.cc
 +++ b/chrome/browser/safe_browsing/client_side_model_loader.cc
 +++ b/chrome/browser/safe_browsing/client_side_model_loader.cc
-@@ -33,8 +33,6 @@ namespace safe_browsing {
+@@ -57,8 +57,6 @@ std::string ReadFileIntoString(base::Fil
  // Model Loader strings
  // Model Loader strings
  const size_t ModelLoader::kMaxModelSizeBytes = 150 * 1024;
  const size_t ModelLoader::kMaxModelSizeBytes = 150 * 1024;
  const int ModelLoader::kClientModelFetchIntervalMs = 3600 * 1000;
  const int ModelLoader::kClientModelFetchIntervalMs = 3600 * 1000;
@@ -32,7 +32,7 @@
  const char ModelLoader::kClientModelNamePattern[] =
  const char ModelLoader::kClientModelNamePattern[] =
      "client_model_v5%s_variation_%d.pb";
      "client_model_v5%s_variation_%d.pb";
  const char ModelLoader::kClientModelFinchExperiment[] =
  const char ModelLoader::kClientModelFinchExperiment[] =
-@@ -88,7 +86,7 @@ ModelLoader::ModelLoader(
+@@ -115,7 +113,7 @@ ModelLoader::ModelLoader(
      scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory,
      scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory,
      bool is_extended_reporting)
      bool is_extended_reporting)
      : name_(FillInModelName(is_extended_reporting, GetModelNumber())),
      : name_(FillInModelName(is_extended_reporting, GetModelNumber())),
@@ -41,7 +41,7 @@
        update_renderers_callback_(update_renderers_callback),
        update_renderers_callback_(update_renderers_callback),
        url_loader_factory_(url_loader_factory),
        url_loader_factory_(url_loader_factory),
        last_client_model_status_(ClientModelStatus::MODEL_NEVER_FETCHED) {
        last_client_model_status_(ClientModelStatus::MODEL_NEVER_FETCHED) {
-@@ -101,7 +99,7 @@ ModelLoader::ModelLoader(
+@@ -128,7 +126,7 @@ ModelLoader::ModelLoader(
      scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory,
      scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory,
      const std::string& model_name)
      const std::string& model_name)
      : name_(model_name),
      : name_(model_name),
@@ -62,7 +62,7 @@
    // Enum used to keep stats about why we fail to get the client model. This
    // Enum used to keep stats about why we fail to get the client model. This
 --- a/rlz/lib/financial_ping.cc
 --- a/rlz/lib/financial_ping.cc
 +++ b/rlz/lib/financial_ping.cc
 +++ b/rlz/lib/financial_ping.cc
-@@ -339,7 +339,7 @@ FinancialPing::PingResponse FinancialPin
+@@ -340,7 +340,7 @@ FinancialPing::PingResponse FinancialPin
  
  
    // Open network connection.
    // Open network connection.
    InternetHandle connection_handle = InternetConnectA(inet_handle,
    InternetHandle connection_handle = InternetConnectA(inet_handle,
@@ -71,7 +71,7 @@
        INTERNET_FLAG_NO_CACHE_WRITE, 0);
        INTERNET_FLAG_NO_CACHE_WRITE, 0);
    if (!connection_handle)
    if (!connection_handle)
      return PING_FAILURE;
      return PING_FAILURE;
-@@ -383,7 +383,7 @@ FinancialPing::PingResponse FinancialPin
+@@ -384,7 +384,7 @@ FinancialPing::PingResponse FinancialPin
    return PING_SUCCESSFUL;
    return PING_SUCCESSFUL;
  #else
  #else
    std::string url =
    std::string url =

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

@@ -72,7 +72,7 @@
  };
  };
 --- a/extensions/browser/updater/extension_downloader.cc
 --- a/extensions/browser/updater/extension_downloader.cc
 +++ b/extensions/browser/updater/extension_downloader.cc
 +++ b/extensions/browser/updater/extension_downloader.cc
-@@ -94,27 +94,18 @@ const char kNotFromWebstoreInstallSource
+@@ -95,27 +95,18 @@ const char kNotFromWebstoreInstallSource
  const char kDefaultInstallSource[] = "";
  const char kDefaultInstallSource[] = "";
  const char kReinstallInstallSource[] = "reinstall";
  const char kReinstallInstallSource[] = "reinstall";
  
  
@@ -102,7 +102,7 @@
  
  
  bool ShouldRetryRequest(const network::SimpleURLLoader* loader) {
  bool ShouldRetryRequest(const network::SimpleURLLoader* loader) {
    DCHECK(loader);
    DCHECK(loader);
-@@ -308,12 +299,6 @@ void ExtensionDownloader::DoStartAllPend
+@@ -304,12 +295,6 @@ void ExtensionDownloader::DoStartAllPend
    ReportStats();
    ReportStats();
    url_stats_ = URLStats();
    url_stats_ = URLStats();
  
  
@@ -115,7 +115,7 @@
    fetches_preparing_.clear();
    fetches_preparing_.clear();
  }
  }
  
  
-@@ -347,11 +332,6 @@ bool ExtensionDownloader::AddExtensionDa
+@@ -343,11 +328,6 @@ bool ExtensionDownloader::AddExtensionDa
      return false;
      return false;
    }
    }
  
  
@@ -127,7 +127,7 @@
    // Skip extensions with empty IDs.
    // Skip extensions with empty IDs.
    if (id.empty()) {
    if (id.empty()) {
      DLOG(WARNING) << "Found extension with empty ID";
      DLOG(WARNING) << "Found extension with empty ID";
-@@ -360,12 +340,10 @@ bool ExtensionDownloader::AddExtensionDa
+@@ -356,12 +336,10 @@ bool ExtensionDownloader::AddExtensionDa
      return false;
      return false;
    }
    }
  
  
@@ -142,7 +142,7 @@
    } else {
    } else {
      url_stats_.other_url_count++;
      url_stats_.other_url_count++;
    }
    }
-@@ -709,20 +687,6 @@ void ExtensionDownloader::HandleManifest
+@@ -708,20 +686,6 @@ void ExtensionDownloader::HandleManifest
          fetch_data->request_ids()));
          fetch_data->request_ids()));
    }
    }
  
  
@@ -163,7 +163,7 @@
    NotifyExtensionsDownloadStageChanged(
    NotifyExtensionsDownloadStageChanged(
        no_updates, ExtensionDownloaderDelegate::Stage::FINISHED);
        no_updates, ExtensionDownloaderDelegate::Stage::FINISHED);
    NotifyExtensionsDownloadFailed(
    NotifyExtensionsDownloadFailed(
-@@ -1218,11 +1182,7 @@ bool ExtensionDownloader::IterateFetchCr
+@@ -1217,11 +1181,7 @@ bool ExtensionDownloader::IterateFetchCr
    // fetch.
    // fetch.
    switch (fetch->credentials) {
    switch (fetch->credentials) {
      case ExtensionFetch::CREDENTIALS_NONE:
      case ExtensionFetch::CREDENTIALS_NONE:

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

@@ -2,7 +2,7 @@
 
 
 --- a/chrome/browser/ui/BUILD.gn
 --- a/chrome/browser/ui/BUILD.gn
 +++ b/chrome/browser/ui/BUILD.gn
 +++ b/chrome/browser/ui/BUILD.gn
-@@ -3523,8 +3523,6 @@ jumbo_static_library("ui") {
+@@ -3622,8 +3622,6 @@ jumbo_static_library("ui") {
          "views/sync/dice_bubble_sync_promo_view.h",
          "views/sync/dice_bubble_sync_promo_view.h",
          "views/sync/dice_signin_button_view.cc",
          "views/sync/dice_signin_button_view.cc",
          "views/sync/dice_signin_button_view.h",
          "views/sync/dice_signin_button_view.h",

+ 66 - 56
patches/core/ungoogled-chromium/fix-building-without-safebrowsing.patch

@@ -2,7 +2,7 @@
 
 
 --- a/chrome/browser/chrome_content_browser_client.cc
 --- a/chrome/browser/chrome_content_browser_client.cc
 +++ b/chrome/browser/chrome_content_browser_client.cc
 +++ b/chrome/browser/chrome_content_browser_client.cc
-@@ -4966,18 +4966,7 @@ ChromeContentBrowserClient::GetSafeBrows
+@@ -4916,18 +4916,7 @@ ChromeContentBrowserClient::GetSafeBrows
      bool safe_browsing_enabled_for_profile) {
      bool safe_browsing_enabled_for_profile) {
    DCHECK_CURRENTLY_ON(BrowserThread::IO);
    DCHECK_CURRENTLY_ON(BrowserThread::IO);
  
  
@@ -24,17 +24,24 @@
  base::Optional<std::string>
  base::Optional<std::string>
 --- a/chrome/browser/download/download_item_model.cc
 --- a/chrome/browser/download/download_item_model.cc
 +++ b/chrome/browser/download/download_item_model.cc
 +++ b/chrome/browser/download/download_item_model.cc
-@@ -25,9 +25,6 @@
+@@ -25,16 +25,12 @@
  #include "chrome/browser/download/download_stats.h"
  #include "chrome/browser/download/download_stats.h"
  #include "chrome/browser/download/offline_item_utils.h"
  #include "chrome/browser/download/offline_item_utils.h"
  #include "chrome/browser/profiles/profile.h"
  #include "chrome/browser/profiles/profile.h"
+-#include "chrome/browser/safe_browsing/download_protection/deep_scanning_request.h"
 -#include "chrome/browser/safe_browsing/download_protection/download_feedback_service.h"
 -#include "chrome/browser/safe_browsing/download_protection/download_feedback_service.h"
--#include "chrome/common/safe_browsing/download_file_types.pb.h"
--#include "chrome/common/safe_browsing/file_type_policies.h"
  #include "chrome/grit/chromium_strings.h"
  #include "chrome/grit/chromium_strings.h"
  #include "chrome/grit/generated_resources.h"
  #include "chrome/grit/generated_resources.h"
  #include "components/download/public/common/download_danger_type.h"
  #include "components/download/public/common/download_danger_type.h"
-@@ -46,7 +43,6 @@
+ #include "components/download/public/common/download_interrupt_reasons.h"
+ #include "components/download/public/common/download_item.h"
+ #include "components/safe_browsing/buildflags.h"
+-#include "components/safe_browsing/core/file_type_policies.h"
+-#include "components/safe_browsing/core/proto/download_file_types.pb.h"
+ #include "content/public/browser/download_item_utils.h"
+ #include "ui/base/l10n/l10n_util.h"
+ #include "ui/base/l10n/time_format.h"
+@@ -47,7 +43,6 @@
  using base::TimeDelta;
  using base::TimeDelta;
  using download::DownloadItem;
  using download::DownloadItem;
  using MixedContentStatus = download::DownloadItem::MixedContentStatus;
  using MixedContentStatus = download::DownloadItem::MixedContentStatus;
@@ -42,7 +49,7 @@
  
  
  namespace {
  namespace {
  
  
-@@ -293,14 +289,7 @@ bool DownloadItemModel::IsMixedContent()
+@@ -296,14 +291,7 @@ bool DownloadItemModel::IsMixedContent()
  }
  }
  
  
  bool DownloadItemModel::ShouldAllowDownloadFeedback() const {
  bool DownloadItemModel::ShouldAllowDownloadFeedback() const {
@@ -59,15 +66,15 @@
  bool DownloadItemModel::ShouldRemoveFromShelfWhenComplete() const {
  bool DownloadItemModel::ShouldRemoveFromShelfWhenComplete() const {
 --- a/chrome/browser/native_file_system/chrome_native_file_system_permission_context.cc
 --- a/chrome/browser/native_file_system/chrome_native_file_system_permission_context.cc
 +++ b/chrome/browser/native_file_system/chrome_native_file_system_permission_context.cc
 +++ b/chrome/browser/native_file_system/chrome_native_file_system_permission_context.cc
-@@ -18,7 +18,6 @@
+@@ -19,7 +19,6 @@
  #include "chrome/browser/native_file_system/native_file_system_permission_context_factory.h"
  #include "chrome/browser/native_file_system/native_file_system_permission_context_factory.h"
  #include "chrome/browser/native_file_system/native_file_system_permission_request_manager.h"
  #include "chrome/browser/native_file_system/native_file_system_permission_request_manager.h"
  #include "chrome/browser/profiles/profile.h"
  #include "chrome/browser/profiles/profile.h"
 -#include "chrome/browser/safe_browsing/download_protection/download_protection_service.h"
 -#include "chrome/browser/safe_browsing/download_protection/download_protection_service.h"
- #include "chrome/browser/ui/browser_dialogs.h"
+ #include "chrome/browser/ui/native_file_system_dialogs.h"
  #include "chrome/common/chrome_paths.h"
  #include "chrome/common/chrome_paths.h"
  #include "components/content_settings/core/browser/host_content_settings_map.h"
  #include "components/content_settings/core/browser/host_content_settings_map.h"
-@@ -208,79 +207,6 @@ BindResultCallbackToCurrentSequence(
+@@ -214,81 +213,6 @@ BindResultCallbackToCurrentSequence(
        base::SequencedTaskRunnerHandle::Get(), std::move(callback));
        base::SequencedTaskRunnerHandle::Get(), std::move(callback));
  }
  }
  
  
@@ -77,10 +84,10 @@
 -    std::unique_ptr<content::NativeFileSystemWriteItem> item,
 -    std::unique_ptr<content::NativeFileSystemWriteItem> item,
 -    safe_browsing::CheckDownloadCallback callback) {
 -    safe_browsing::CheckDownloadCallback callback) {
 -  DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
 -  DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
--
+-  // Download Protection Service is not supported on Android.
+-#if BUILDFLAG(FULL_SAFE_BROWSING)
 -  safe_browsing::SafeBrowsingService* sb_service =
 -  safe_browsing::SafeBrowsingService* sb_service =
 -      g_browser_process->safe_browsing_service();
 -      g_browser_process->safe_browsing_service();
--
 -  if (!sb_service || !sb_service->download_protection_service() ||
 -  if (!sb_service || !sb_service->download_protection_service() ||
 -      !sb_service->download_protection_service()->enabled()) {
 -      !sb_service->download_protection_service()->enabled()) {
 -    std::move(callback).Run(safe_browsing::DownloadCheckResult::UNKNOWN);
 -    std::move(callback).Run(safe_browsing::DownloadCheckResult::UNKNOWN);
@@ -106,6 +113,7 @@
 -
 -
 -  sb_service->download_protection_service()->CheckNativeFileSystemWrite(
 -  sb_service->download_protection_service()->CheckNativeFileSystemWrite(
 -      std::move(item), std::move(callback));
 -      std::move(item), std::move(callback));
+-#endif
 -}
 -}
 -
 -
 -ChromeNativeFileSystemPermissionContext::AfterWriteCheckResult
 -ChromeNativeFileSystemPermissionContext::AfterWriteCheckResult
@@ -127,6 +135,7 @@
 -    case Result::POTENTIALLY_UNWANTED:
 -    case Result::POTENTIALLY_UNWANTED:
 -    case Result::BLOCKED_PASSWORD_PROTECTED:
 -    case Result::BLOCKED_PASSWORD_PROTECTED:
 -    case Result::BLOCKED_TOO_LARGE:
 -    case Result::BLOCKED_TOO_LARGE:
+-    case Result::BLOCKED_UNSUPPORTED_FILE_TYPE:
 -      return ChromeNativeFileSystemPermissionContext::AfterWriteCheckResult::
 -      return ChromeNativeFileSystemPermissionContext::AfterWriteCheckResult::
 -          kBlock;
 -          kBlock;
 -
 -
@@ -147,7 +156,7 @@
  }  // namespace
  }  // namespace
  
  
  ChromeNativeFileSystemPermissionContext::Grants::Grants() = default;
  ChromeNativeFileSystemPermissionContext::Grants::Grants() = default;
-@@ -363,29 +289,6 @@ void ChromeNativeFileSystemPermissionCon
+@@ -383,29 +307,6 @@ void ChromeNativeFileSystemPermissionCon
                       frame_id, std::move(callback)));
                       frame_id, std::move(callback)));
  }
  }
  
  
@@ -179,7 +188,7 @@
          const url::Origin& origin,
          const url::Origin& origin,
 --- a/chrome/browser/native_file_system/chrome_native_file_system_permission_context.h
 --- a/chrome/browser/native_file_system/chrome_native_file_system_permission_context.h
 +++ b/chrome/browser/native_file_system/chrome_native_file_system_permission_context.h
 +++ b/chrome/browser/native_file_system/chrome_native_file_system_permission_context.h
-@@ -58,11 +58,6 @@ class ChromeNativeFileSystemPermissionCo
+@@ -59,11 +59,6 @@ class ChromeNativeFileSystemPermissionCo
        int process_id,
        int process_id,
        int frame_id,
        int frame_id,
        base::OnceCallback<void(PermissionStatus)> callback) override;
        base::OnceCallback<void(PermissionStatus)> callback) override;
@@ -188,9 +197,9 @@
 -      int process_id,
 -      int process_id,
 -      int frame_id,
 -      int frame_id,
 -      base::OnceCallback<void(AfterWriteCheckResult)> callback) override;
 -      base::OnceCallback<void(AfterWriteCheckResult)> callback) override;
-   bool CanRequestWritePermission(const url::Origin& origin) override;
+   bool CanObtainWritePermission(const url::Origin& origin) override;
  
  
-   // Returns a snapshot of the currently granted permissions.
+   ContentSetting GetReadGuardContentSetting(const url::Origin& origin);
 --- a/chrome/browser/password_manager/chrome_password_manager_client.cc
 --- a/chrome/browser/password_manager/chrome_password_manager_client.cc
 +++ b/chrome/browser/password_manager/chrome_password_manager_client.cc
 +++ b/chrome/browser/password_manager/chrome_password_manager_client.cc
 @@ -26,7 +26,6 @@
 @@ -26,7 +26,6 @@
@@ -214,7 +223,7 @@
  
  
  #if defined(OS_ANDROID)
  #if defined(OS_ANDROID)
  #include "chrome/browser/android/tab_android.h"
  #include "chrome/browser/android/tab_android.h"
-@@ -558,6 +557,7 @@ bool ChromePasswordManagerClient::IsIsol
+@@ -606,6 +605,7 @@ bool ChromePasswordManagerClient::IsIsol
    return SiteIsolationPolicy::IsIsolationForPasswordSitesEnabled();
    return SiteIsolationPolicy::IsIsolationForPasswordSitesEnabled();
  }
  }
  
  
@@ -222,7 +231,7 @@
  #if defined(ON_FOCUS_PING_ENABLED) || \
  #if defined(ON_FOCUS_PING_ENABLED) || \
      defined(SYNC_PASSWORD_REUSE_DETECTION_ENABLED)
      defined(SYNC_PASSWORD_REUSE_DETECTION_ENABLED)
  safe_browsing::PasswordProtectionService*
  safe_browsing::PasswordProtectionService*
-@@ -580,6 +580,7 @@ void ChromePasswordManagerClient::CheckS
+@@ -628,6 +628,7 @@ void ChromePasswordManagerClient::CheckS
    }
    }
  }
  }
  #endif  // defined(ON_FOCUS_PING_ENABLED)
  #endif  // defined(ON_FOCUS_PING_ENABLED)
@@ -230,9 +239,9 @@
  
  
  #if defined(SYNC_PASSWORD_REUSE_DETECTION_ENABLED)
  #if defined(SYNC_PASSWORD_REUSE_DETECTION_ENABLED)
  void ChromePasswordManagerClient::CheckProtectedPasswordEntry(
  void ChromePasswordManagerClient::CheckProtectedPasswordEntry(
-@@ -587,24 +588,11 @@ void ChromePasswordManagerClient::CheckP
-     const std::string& username,
-     const std::vector<std::string>& matching_domains,
+@@ -636,24 +637,11 @@ void ChromePasswordManagerClient::CheckP
+     const std::vector<password_manager::MatchingReusedCredential>&
+         matching_reused_credentials,
      bool password_field_exists) {
      bool password_field_exists) {
 -  safe_browsing::PasswordProtectionService* pps =
 -  safe_browsing::PasswordProtectionService* pps =
 -      GetPasswordProtectionService();
 -      GetPasswordProtectionService();
@@ -241,7 +250,7 @@
 -
 -
 -  pps->MaybeStartProtectedPasswordEntryRequest(
 -  pps->MaybeStartProtectedPasswordEntryRequest(
 -      web_contents(), web_contents()->GetLastCommittedURL(), username,
 -      web_contents(), web_contents()->GetLastCommittedURL(), username,
--      password_type, matching_domains, password_field_exists);
+-      password_type, matching_reused_credentials, password_field_exists);
  }
  }
  #endif  // defined(SYNC_PASSWORD_REUSE_DETECTION_ENABLED)
  #endif  // defined(SYNC_PASSWORD_REUSE_DETECTION_ENABLED)
  
  
@@ -255,7 +264,7 @@
  }
  }
  #endif  // defined(SYNC_PASSWORD_REUSE_WARNING_ENABLED)
  #endif  // defined(SYNC_PASSWORD_REUSE_WARNING_ENABLED)
  
  
-@@ -728,7 +716,9 @@ void ChromePasswordManagerClient::OnInpu
+@@ -781,7 +769,9 @@ void ChromePasswordManagerClient::OnInpu
    if (key_event.windows_key_code == (ui::VKEY_V & 0x1f)) {
    if (key_event.windows_key_code == (ui::VKEY_V & 0x1f)) {
      OnPaste();
      OnPaste();
    } else {
    } else {
@@ -265,7 +274,7 @@
    }
    }
  #endif  // defined(OS_ANDROID)
  #endif  // defined(OS_ANDROID)
  }
  }
-@@ -854,9 +844,11 @@ void ChromePasswordManagerClient::OnPast
+@@ -907,9 +897,11 @@ void ChromePasswordManagerClient::OnPast
    base::string16 text;
    base::string16 text;
    clipboard->ReadText(ui::ClipboardBuffer::kCopyPaste, &text);
    clipboard->ReadText(ui::ClipboardBuffer::kCopyPaste, &text);
    was_on_paste_called_ = true;
    was_on_paste_called_ = true;
@@ -280,7 +289,7 @@
      const gfx::RectF& bounds) {
      const gfx::RectF& bounds) {
 --- a/chrome/browser/password_manager/chrome_password_manager_client.h
 --- a/chrome/browser/password_manager/chrome_password_manager_client.h
 +++ b/chrome/browser/password_manager/chrome_password_manager_client.h
 +++ b/chrome/browser/password_manager/chrome_password_manager_client.h
-@@ -192,7 +192,7 @@ class ChromePasswordManagerClient
+@@ -200,7 +200,7 @@ class ChromePasswordManagerClient
    void OnImeFinishComposingTextEvent() override;
    void OnImeFinishComposingTextEvent() override;
  #endif  // defined(OS_ANDROID)
  #endif  // defined(OS_ANDROID)
  
  
@@ -291,18 +300,20 @@
    safe_browsing::PasswordProtectionService* GetPasswordProtectionService()
    safe_browsing::PasswordProtectionService* GetPasswordProtectionService()
 --- a/chrome/browser/permissions/contextual_notification_permission_ui_selector.cc
 --- a/chrome/browser/permissions/contextual_notification_permission_ui_selector.cc
 +++ b/chrome/browser/permissions/contextual_notification_permission_ui_selector.cc
 +++ b/chrome/browser/permissions/contextual_notification_permission_ui_selector.cc
-@@ -17,10 +17,8 @@
- #include "chrome/browser/permissions/crowd_deny_preload_data.h"
+@@ -18,12 +18,10 @@
  #include "chrome/browser/permissions/quiet_notification_permission_ui_config.h"
  #include "chrome/browser/permissions/quiet_notification_permission_ui_config.h"
  #include "chrome/browser/permissions/quiet_notification_permission_ui_state.h"
  #include "chrome/browser/permissions/quiet_notification_permission_ui_state.h"
+ #include "chrome/browser/profiles/profile.h"
 -#include "chrome/browser/safe_browsing/safe_browsing_service.h"
 -#include "chrome/browser/safe_browsing/safe_browsing_service.h"
  #include "chrome/common/chrome_features.h"
  #include "chrome/common/chrome_features.h"
+ #include "chrome/common/pref_names.h"
  #include "components/permissions/permission_request.h"
  #include "components/permissions/permission_request.h"
+ #include "components/prefs/pref_service.h"
 -#include "components/safe_browsing/core/db/database_manager.h"
 -#include "components/safe_browsing/core/db/database_manager.h"
  
  
  namespace {
  namespace {
  
  
-@@ -111,50 +109,14 @@ void ContextualNotificationPermissionUiS
+@@ -114,50 +112,14 @@ void ContextualNotificationPermissionUiS
      Notify(UiToUse::kNormalUi, base::nullopt);
      Notify(UiToUse::kNormalUi, base::nullopt);
      return;
      return;
    }
    }
@@ -355,7 +366,7 @@
    DCHECK(safe_browsing_request_);
    DCHECK(safe_browsing_request_);
 --- a/chrome/browser/ui/tab_contents/chrome_web_contents_view_handle_drop.cc
 --- a/chrome/browser/ui/tab_contents/chrome_web_contents_view_handle_drop.cc
 +++ b/chrome/browser/ui/tab_contents/chrome_web_contents_view_handle_drop.cc
 +++ b/chrome/browser/ui/tab_contents/chrome_web_contents_view_handle_drop.cc
-@@ -37,35 +37,8 @@ void HandleOnPerformDrop(
+@@ -78,33 +78,8 @@ void HandleOnPerformDrop(
      content::WebContents* web_contents,
      content::WebContents* web_contents,
      const content::DropData& drop_data,
      const content::DropData& drop_data,
      content::WebContentsViewDelegate::DropCompletionCallback callback) {
      content::WebContentsViewDelegate::DropCompletionCallback callback) {
@@ -379,25 +390,23 @@
 -  if (!drop_data.file_contents.empty())
 -  if (!drop_data.file_contents.empty())
 -    data.text.push_back(base::UTF8ToUTF16(drop_data.file_contents));
 -    data.text.push_back(base::UTF8ToUTF16(drop_data.file_contents));
 -
 -
--  for (const auto& file : drop_data.filenames)
--    data.paths.push_back(file.path);
--
--  // TODO(crbug.com/1008040): how to handle drop_data.file_system_files?
--  // These are URLs that use the filesystem: schema.  Support for this API
--  // is unclear.
--
--  safe_browsing::DeepScanningDialogDelegate::ShowForWebContents(
--      web_contents, std::move(data),
--      base::BindOnce(&DeepScanCompletionCallback, std::move(callback)),
--      safe_browsing::DeepScanAccessPoint::DRAG_AND_DROP);
-+  // In original code, this ran safe_browsing::DeepScanningDialogDelegate
+-  if (drop_data.filenames.empty()) {
+-    ScanData(web_contents, std::move(callback), std::move(data));
+-  } else {
+-    base::ThreadPool::PostTaskAndReplyWithResult(
+-        FROM_HERE, {base::TaskPriority::USER_VISIBLE, base::MayBlock()},
+-        base::BindOnce(&GetPathsToScan, web_contents, std::move(drop_data),
+-                       std::move(data)),
+-        base::BindOnce(&ScanData, web_contents, std::move(callback)));
+-  }
++  // In the original code, this ran safe_browsing::DeepScanningDialogDelegate
 +  // Instead, run the code under "if (!safe_browsing::DeepScanningDialogDelegate::IsEnabled(...)) ..."
 +  // Instead, run the code under "if (!safe_browsing::DeepScanningDialogDelegate::IsEnabled(...)) ..."
 +  std::move(callback).Run(
 +  std::move(callback).Run(
-+    content::WebContentsViewDelegate::DropCompletionResult::kContinue);
++      content::WebContentsViewDelegate::DropCompletionResult::kContinue);
  }
  }
 --- a/chrome/browser/ui/views/download/download_item_view.cc
 --- a/chrome/browser/ui/views/download/download_item_view.cc
 +++ b/chrome/browser/ui/views/download/download_item_view.cc
 +++ b/chrome/browser/ui/views/download/download_item_view.cc
-@@ -1304,6 +1304,7 @@ void DownloadItemView::ShowDeepScanningD
+@@ -1306,6 +1306,7 @@ void DownloadItemView::ShowDeepScanningD
            },
            },
            base::Unretained(this))));
            base::Unretained(this))));
  
  
@@ -405,7 +414,7 @@
    int delay_delivery = g_browser_process->local_state()->GetInteger(
    int delay_delivery = g_browser_process->local_state()->GetInteger(
        prefs::kDelayDeliveryUntilVerdict);
        prefs::kDelayDeliveryUntilVerdict);
    if (delay_delivery != safe_browsing::DELAY_DOWNLOADS &&
    if (delay_delivery != safe_browsing::DELAY_DOWNLOADS &&
-@@ -1315,6 +1316,9 @@ void DownloadItemView::ShowDeepScanningD
+@@ -1317,6 +1318,9 @@ void DownloadItemView::ShowDeepScanningD
    } else {
    } else {
      open_button_->SetEnabled(false);
      open_button_->SetEnabled(false);
    }
    }
@@ -415,19 +424,19 @@
  
  
    file_name_label_->SetVisible(false);
    file_name_label_->SetVisible(false);
    status_label_->SetVisible(false);
    status_label_->SetVisible(false);
-@@ -1625,7 +1629,9 @@ base::string16 DownloadItemView::ElidedF
+@@ -1627,7 +1631,9 @@ base::string16 DownloadItemView::ElidedF
  }
  }
  
  
  void DownloadItemView::OpenDownloadDuringAsyncScanning() {
  void DownloadItemView::OpenDownloadDuringAsyncScanning() {
 +#if BUILDFLAG(FULL_SAFE_BROWSING)
 +#if BUILDFLAG(FULL_SAFE_BROWSING)
    model_->CompleteSafeBrowsingScan();
    model_->CompleteSafeBrowsingScan();
 +#endif
 +#endif
-   should_open_while_scanning_ = true;
+   model_->SetOpenWhenComplete(true);
  }
  }
  
  
 --- a/chrome/browser/ui/views/safe_browsing/password_reuse_modal_warning_dialog.cc
 --- 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
 +++ b/chrome/browser/ui/views/safe_browsing/password_reuse_modal_warning_dialog.cc
-@@ -183,10 +183,7 @@ PasswordReuseModalWarningDialog::Passwor
+@@ -184,10 +184,7 @@ PasswordReuseModalWarningDialog::Passwor
          placeholder_offsets);
          placeholder_offsets);
    } else {
    } else {
      views::Label* message_body_label = CreateMessageBodyLabel(
      views::Label* message_body_label = CreateMessageBodyLabel(
@@ -441,7 +450,7 @@
    modal_construction_start_time_ = base::TimeTicks::Now();
    modal_construction_start_time_ = base::TimeTicks::Now();
 --- a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc
 --- a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc
 +++ b/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc
 +++ b/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc
-@@ -81,8 +81,6 @@
+@@ -83,8 +83,6 @@
  #include "components/nacl/common/buildflags.h"
  #include "components/nacl/common/buildflags.h"
  #include "components/prefs/pref_service.h"
  #include "components/prefs/pref_service.h"
  #include "components/safe_browsing/buildflags.h"
  #include "components/safe_browsing/buildflags.h"
@@ -450,7 +459,7 @@
  #include "components/security_interstitials/content/connection_help_ui.h"
  #include "components/security_interstitials/content/connection_help_ui.h"
  #include "components/security_interstitials/content/known_interception_disclosure_ui.h"
  #include "components/security_interstitials/content/known_interception_disclosure_ui.h"
  #include "components/security_interstitials/content/urls.h"
  #include "components/security_interstitials/content/urls.h"
-@@ -423,8 +421,6 @@ WebUIFactoryFunction GetWebUIFactoryFunc
+@@ -444,8 +442,6 @@ WebUIFactoryFunction GetWebUIFactoryFunc
      return &NewWebUI<PredictorsUI>;
      return &NewWebUI<PredictorsUI>;
    if (url.host_piece() == chrome::kChromeUIQuotaInternalsHost)
    if (url.host_piece() == chrome::kChromeUIQuotaInternalsHost)
      return &NewWebUI<QuotaInternalsUI>;
      return &NewWebUI<QuotaInternalsUI>;
@@ -472,7 +481,7 @@
  }
  }
 --- a/components/password_manager/core/browser/password_manager_client.h
 --- a/components/password_manager/core/browser/password_manager_client.h
 +++ b/components/password_manager/core/browser/password_manager_client.h
 +++ b/components/password_manager/core/browser/password_manager_client.h
-@@ -290,7 +290,7 @@ class PasswordManagerClient {
+@@ -310,7 +310,7 @@ class PasswordManagerClient {
    // Returns the current best guess as to the page's display language.
    // Returns the current best guess as to the page's display language.
    virtual std::string GetPageLanguage() const;
    virtual std::string GetPageLanguage() const;
  
  
@@ -493,7 +502,7 @@
    // which it has started loading. Returns the serialized request proto and a
    // which it has started loading. Returns the serialized request proto and a
 --- a/content/browser/native_file_system/native_file_system_file_writer_impl.cc
 --- a/content/browser/native_file_system/native_file_system_file_writer_impl.cc
 +++ b/content/browser/native_file_system/native_file_system_file_writer_impl.cc
 +++ b/content/browser/native_file_system/native_file_system_file_writer_impl.cc
-@@ -93,8 +93,7 @@ NativeFileSystemFileWriterImpl::NativeFi
+@@ -94,8 +94,7 @@ NativeFileSystemFileWriterImpl::NativeFi
                                   url,
                                   url,
                                   handle_state,
                                   handle_state,
                                   /*is_directory=*/false),
                                   /*is_directory=*/false),
@@ -503,7 +512,7 @@
    DCHECK_EQ(swap_url.type(), url.type());
    DCHECK_EQ(swap_url.type(), url.type());
  }
  }
  
  
-@@ -302,50 +301,7 @@ void NativeFileSystemFileWriterImpl::Clo
+@@ -303,51 +302,7 @@ void NativeFileSystemFileWriterImpl::Clo
    // swap file even if the writer was destroyed at that point.
    // swap file even if the writer was destroyed at that point.
    state_ = State::kClosePending;
    state_ = State::kClosePending;
  
  
@@ -528,9 +537,10 @@
 -  if (!file_writer || hash_result != base::File::FILE_OK) {
 -  if (!file_writer || hash_result != base::File::FILE_OK) {
 -    // If writer was deleted, or calculating the hash failed try deleting the
 -    // If writer was deleted, or calculating the hash failed try deleting the
 -    // swap file and invoke the callback.
 -    // swap file and invoke the callback.
--    base::PostTask(FROM_HERE, {base::ThreadPool(), base::MayBlock()},
--                   base::BindOnce(base::IgnoreResult(&base::DeleteFile),
--                                  swap_path, /*recursive=*/false));
+-    base::ThreadPool::PostTask(
+-        FROM_HERE, {base::MayBlock()},
+-        base::BindOnce(base::IgnoreResult(&base::DeleteFile), swap_path,
+-                       /*recursive=*/false));
 -    std::move(callback).Run(native_file_system_error::FromStatus(
 -    std::move(callback).Run(native_file_system_error::FromStatus(
 -        NativeFileSystemStatus::kOperationAborted,
 -        NativeFileSystemStatus::kOperationAborted,
 -        "Failed to perform Safe Browsing check."));
 -        "Failed to perform Safe Browsing check."));
@@ -608,5 +618,5 @@
 -      int frame_id,
 -      int frame_id,
 -      base::OnceCallback<void(AfterWriteCheckResult)> callback) = 0;
 -      base::OnceCallback<void(AfterWriteCheckResult)> callback) = 0;
  
  
-   // Returns whether the given |origin| is allowed to ask for write access.
-   // This is used to block save file dialogs from being shown
+   // Returns whether the give |origin| already allows write permission, or it is
+   // possible to request one. This is used to block save file dialogs from being

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


+ 18 - 18
patches/core/ungoogled-chromium/use-local-devtools-files.patch

@@ -5,14 +5,14 @@
 
 
 --- a/third_party/devtools-frontend/src/BUILD.gn
 --- a/third_party/devtools-frontend/src/BUILD.gn
 +++ b/third_party/devtools-frontend/src/BUILD.gn
 +++ b/third_party/devtools-frontend/src/BUILD.gn
-@@ -2144,14 +2144,13 @@ generated_non_autostart_non_remote_modul
+@@ -840,14 +840,13 @@ generated_non_autostart_non_remote_modul
    "$resources_out_dir/timeline/timeline_module.js",
    "$resources_out_dir/timeline/timeline_module.js",
    "$resources_out_dir/web_audio/web_audio_module.js",
    "$resources_out_dir/web_audio/web_audio_module.js",
    "$resources_out_dir/workspace_diff/workspace_diff_module.js",
    "$resources_out_dir/workspace_diff/workspace_diff_module.js",
 -]
 -]
 -
 -
 -generated_remote_modules = [
 -generated_remote_modules = [
-   "$resources_out_dir/audits_worker/audits_worker_module.js",
+   "$resources_out_dir/lighthouse_worker/lighthouse_worker_module.js",
    "$resources_out_dir/dagre_layout/dagre_layout_module.js",
    "$resources_out_dir/dagre_layout/dagre_layout_module.js",
    "$resources_out_dir/emulated_devices/emulated_devices_module.js",
    "$resources_out_dir/emulated_devices/emulated_devices_module.js",
  ]
  ]
@@ -22,32 +22,22 @@
  generated_test_modules = [
  generated_test_modules = [
    "$resources_out_dir/accessibility_test_runner/accessibility_test_runner_module.js",
    "$resources_out_dir/accessibility_test_runner/accessibility_test_runner_module.js",
    "$resources_out_dir/application_test_runner/application_test_runner_module.js",
    "$resources_out_dir/application_test_runner/application_test_runner_module.js",
-@@ -2227,7 +2226,6 @@ devtools_frontend_resources_deps = devto
+@@ -939,7 +938,6 @@ devtools_frontend_resources_deps = devto
                                       ":copy_htaccess",
                                       ":copy_htaccess",
                                       ":copy_inspector_images",
                                       ":copy_inspector_images",
                                       ":copy_lighthouse_locale_files",
                                       ":copy_lighthouse_locale_files",
 -                                     ":copy_wasm_deps",
 -                                     ":copy_wasm_deps",
                                       ":devtools_extension_api",
                                       ":devtools_extension_api",
-                                      ":frontend_protocol_sources",
-                                      ":supported_css_properties",
-@@ -2294,7 +2292,6 @@ action("generate_devtools_grd") {
-       devtools_embedder_scripts + generated_scripts + generated_worker_bundles +
+                                    ]
+ 
+@@ -1650,7 +1648,6 @@ action("generate_devtools_grd") {
+       devtools_embedder_scripts + generated_worker_bundles +
        [
        [
          "$resources_out_dir/devtools_extension_api.js",
          "$resources_out_dir/devtools_extension_api.js",
 -        "$resources_out_dir/sdk/wasm_source_map/pkg/wasm_source_map_bg.wasm",
 -        "$resources_out_dir/sdk/wasm_source_map/pkg/wasm_source_map_bg.wasm",
        ]
        ]
  
  
    inputs = grd_files + devtools_image_files
    inputs = grd_files + devtools_image_files
---- a/third_party/devtools-frontend/src/front_end/audits_worker.json
-+++ b/third_party/devtools-frontend/src/front_end/audits_worker.json
-@@ -1,6 +1,6 @@
- {
-     "modules": [
-         { "name": "worker_service", "type": "autostart" },
--        { "name": "audits_worker", "type": "remote" }
-+        { "name": "audits_worker" }
-     ]
- }
 --- a/third_party/devtools-frontend/src/front_end/devtools_app.json
 --- a/third_party/devtools-frontend/src/front_end/devtools_app.json
 +++ b/third_party/devtools-frontend/src/front_end/devtools_app.json
 +++ b/third_party/devtools-frontend/src/front_end/devtools_app.json
 @@ -10,10 +10,10 @@
 @@ -10,10 +10,10 @@
@@ -60,6 +50,16 @@
      { "name": "elements" },
      { "name": "elements" },
 -    { "name": "emulated_devices" , "type": "remote" },
 -    { "name": "emulated_devices" , "type": "remote" },
 +    { "name": "emulated_devices" },
 +    { "name": "emulated_devices" },
+     { "name": "issues" },
      { "name": "har_importer" },
      { "name": "har_importer" },
      { "name": "help" },
      { "name": "help" },
-     { "name": "layers" },
+--- a/third_party/devtools-frontend/src/front_end/lighthouse_worker.json
++++ b/third_party/devtools-frontend/src/front_end/lighthouse_worker.json
+@@ -2,6 +2,6 @@
+     "worker": true,
+     "modules": [
+         { "name": "worker_service", "type": "autostart" },
+-        { "name": "lighthouse_worker", "type": "remote" }
++        { "name": "lighthouse_worker" }
+     ]
+ }

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

@@ -9,17 +9,17 @@
 
 
 --- a/chrome/browser/BUILD.gn
 --- a/chrome/browser/BUILD.gn
 +++ b/chrome/browser/BUILD.gn
 +++ b/chrome/browser/BUILD.gn
-@@ -2237,6 +2237,7 @@ jumbo_static_library("browser") {
+@@ -2272,6 +2272,7 @@ jumbo_static_library("browser") {
+     "//third_party/libyuv",
      "//third_party/metrics_proto",
      "//third_party/metrics_proto",
      "//third_party/re2",
      "//third_party/re2",
-     "//third_party/smhasher:cityhash",
 +    "//components/ungoogled:switches",
 +    "//components/ungoogled:switches",
      "//third_party/webrtc_overrides:webrtc_component",
      "//third_party/webrtc_overrides:webrtc_component",
      "//third_party/widevine/cdm:buildflags",
      "//third_party/widevine/cdm:buildflags",
      "//third_party/zlib",
      "//third_party/zlib",
 --- a/chrome/browser/about_flags.cc
 --- a/chrome/browser/about_flags.cc
 +++ b/chrome/browser/about_flags.cc
 +++ b/chrome/browser/about_flags.cc
-@@ -154,6 +154,7 @@
+@@ -157,6 +157,7 @@
  #include "third_party/blink/public/common/features.h"
  #include "third_party/blink/public/common/features.h"
  #include "third_party/blink/public/common/forcedark/forcedark_switches.h"
  #include "third_party/blink/public/common/forcedark/forcedark_switches.h"
  #include "third_party/leveldatabase/leveldb_features.h"
  #include "third_party/leveldatabase/leveldb_features.h"
@@ -27,7 +27,7 @@
  #include "ui/accessibility/accessibility_features.h"
  #include "ui/accessibility/accessibility_features.h"
  #include "ui/accessibility/accessibility_switches.h"
  #include "ui/accessibility/accessibility_switches.h"
  #include "ui/base/ui_base_features.h"
  #include "ui/base/ui_base_features.h"
-@@ -1580,6 +1581,14 @@ const FeatureEntry kFeatureEntries[] = {
+@@ -1801,6 +1802,14 @@ const FeatureEntry kFeatureEntries[] = {
       "Force punycode hostnames",
       "Force punycode hostnames",
       "Force punycode in hostnames instead of Unicode when displaying Internationalized Domain Names (IDNs).",
       "Force punycode in hostnames instead of Unicode when displaying Internationalized Domain Names (IDNs).",
       kOsAll, SINGLE_VALUE_TYPE("force-punycode-hostnames")},
       kOsAll, SINGLE_VALUE_TYPE("force-punycode-hostnames")},
@@ -44,7 +44,7 @@
       SINGLE_VALUE_TYPE(switches::kIgnoreGpuBlacklist)},
       SINGLE_VALUE_TYPE(switches::kIgnoreGpuBlacklist)},
 --- a/content/browser/BUILD.gn
 --- a/content/browser/BUILD.gn
 +++ b/content/browser/BUILD.gn
 +++ b/content/browser/BUILD.gn
-@@ -204,6 +204,7 @@ jumbo_source_set("browser") {
+@@ -208,6 +208,7 @@ jumbo_source_set("browser") {
      "//third_party/libyuv",
      "//third_party/libyuv",
      "//third_party/re2",
      "//third_party/re2",
      "//third_party/sqlite",
      "//third_party/sqlite",
@@ -54,7 +54,7 @@
      "//third_party/zlib/google:zip",
      "//third_party/zlib/google:zip",
 --- a/content/browser/renderer_host/render_process_host_impl.cc
 --- a/content/browser/renderer_host/render_process_host_impl.cc
 +++ b/content/browser/renderer_host/render_process_host_impl.cc
 +++ b/content/browser/renderer_host/render_process_host_impl.cc
-@@ -223,6 +223,7 @@
+@@ -225,6 +225,7 @@
  #include "third_party/blink/public/common/page/launching_process_state.h"
  #include "third_party/blink/public/common/page/launching_process_state.h"
  #include "third_party/blink/public/common/user_agent/user_agent_metadata.h"
  #include "third_party/blink/public/common/user_agent/user_agent_metadata.h"
  #include "third_party/blink/public/public_buildflags.h"
  #include "third_party/blink/public/public_buildflags.h"
@@ -62,18 +62,18 @@
  #include "third_party/skia/include/core/SkBitmap.h"
  #include "third_party/skia/include/core/SkBitmap.h"
  #include "ui/accessibility/accessibility_switches.h"
  #include "ui/accessibility/accessibility_switches.h"
  #include "ui/base/ui_base_switches.h"
  #include "ui/base/ui_base_switches.h"
-@@ -3149,6 +3150,8 @@ void RenderProcessHostImpl::PropagateBro
+@@ -3279,6 +3280,8 @@ void RenderProcessHostImpl::PropagateBro
      switches::kEnableWebGLDraftExtensions,
      switches::kEnableWebGLDraftExtensions,
      switches::kEnableWebGLImageChromium,
      switches::kEnableWebGLImageChromium,
      switches::kFileUrlPathAlias,
      switches::kFileUrlPathAlias,
 +    switches::kFingerprintingClientRectsNoise,
 +    switches::kFingerprintingClientRectsNoise,
 +    switches::kFingerprintingCanvasMeasureTextNoise,
 +    switches::kFingerprintingCanvasMeasureTextNoise,
-     switches::kForceDarkMode,
      switches::kForceDeviceScaleFactor,
      switches::kForceDeviceScaleFactor,
      switches::kForceDisableWebRtcApmInAudioService,
      switches::kForceDisableWebRtcApmInAudioService,
+     switches::kForceDisplayColorProfile,
 --- a/content/child/BUILD.gn
 --- a/content/child/BUILD.gn
 +++ b/content/child/BUILD.gn
 +++ b/content/child/BUILD.gn
-@@ -124,6 +124,7 @@ target(link_target_type, "child") {
+@@ -123,6 +123,7 @@ target(link_target_type, "child") {
      "//third_party/blink/public/common",
      "//third_party/blink/public/common",
      "//third_party/blink/public/strings",
      "//third_party/blink/public/strings",
      "//third_party/ced",
      "//third_party/ced",
@@ -91,7 +91,7 @@
  #include "ui/accessibility/accessibility_features.h"
  #include "ui/accessibility/accessibility_features.h"
  #include "ui/base/ui_base_features.h"
  #include "ui/base/ui_base_features.h"
  #include "ui/events/blink/blink_features.h"
  #include "ui/events/blink/blink_features.h"
-@@ -442,6 +443,10 @@ void SetRuntimeFeaturesFromCommandLine(c
+@@ -449,6 +450,10 @@ void SetRuntimeFeaturesFromCommandLine(c
         switches::kEnableAccessibilityObjectModel, true},
         switches::kEnableAccessibilityObjectModel, true},
        {wrf::EnableAllowSyncXHRInPageDismissal,
        {wrf::EnableAllowSyncXHRInPageDismissal,
         switches::kAllowSyncXHRInPageDismissal, true},
         switches::kAllowSyncXHRInPageDismissal, true},
@@ -104,7 +104,7 @@
        {wrf::EnableHTMLImports, switches::kWebComponentsV0Enabled, true},
        {wrf::EnableHTMLImports, switches::kWebComponentsV0Enabled, true},
 --- a/third_party/blink/public/platform/web_runtime_features.h
 --- a/third_party/blink/public/platform/web_runtime_features.h
 +++ b/third_party/blink/public/platform/web_runtime_features.h
 +++ b/third_party/blink/public/platform/web_runtime_features.h
-@@ -226,6 +226,8 @@ class WebRuntimeFeatures {
+@@ -220,6 +220,8 @@ class WebRuntimeFeatures {
    BLINK_PLATFORM_EXPORT static void EnableTranslateService(bool);
    BLINK_PLATFORM_EXPORT static void EnableTranslateService(bool);
    BLINK_PLATFORM_EXPORT static void EnableGetDisplayMedia(bool);
    BLINK_PLATFORM_EXPORT static void EnableGetDisplayMedia(bool);
    BLINK_PLATFORM_EXPORT static void EnableAllowSyncXHRInPageDismissal(bool);
    BLINK_PLATFORM_EXPORT static void EnableAllowSyncXHRInPageDismissal(bool);
@@ -123,7 +123,7 @@
  #include "base/time/time.h"
  #include "base/time/time.h"
  #include "cc/input/overscroll_behavior.h"
  #include "cc/input/overscroll_behavior.h"
  #include "cc/input/scroll_snap_data.h"
  #include "cc/input/scroll_snap_data.h"
-@@ -866,6 +867,14 @@ Range* Document::CreateRangeAdjustedToTr
+@@ -883,6 +884,14 @@ Range* Document::CreateRangeAdjustedToTr
                                       Position::BeforeNode(*shadow_host));
                                       Position::BeforeNode(*shadow_host));
  }
  }
  
  
@@ -138,7 +138,7 @@
  SelectorQueryCache& Document::GetSelectorQueryCache() {
  SelectorQueryCache& Document::GetSelectorQueryCache() {
    if (!selector_query_cache_)
    if (!selector_query_cache_)
      selector_query_cache_ = std::make_unique<SelectorQueryCache>();
      selector_query_cache_ = std::make_unique<SelectorQueryCache>();
-@@ -2436,6 +2445,15 @@ void Document::UpdateStyleAndLayoutTree(
+@@ -2628,6 +2637,15 @@ void Document::UpdateStyleAndLayoutTree(
  #if DCHECK_IS_ON()
  #if DCHECK_IS_ON()
    AssertLayoutTreeUpdated(*this);
    AssertLayoutTreeUpdated(*this);
  #endif
  #endif
@@ -156,7 +156,7 @@
  void Document::UpdateActiveStyle() {
  void Document::UpdateActiveStyle() {
 --- a/third_party/blink/renderer/core/dom/document.h
 --- a/third_party/blink/renderer/core/dom/document.h
 +++ b/third_party/blink/renderer/core/dom/document.h
 +++ b/third_party/blink/renderer/core/dom/document.h
-@@ -417,6 +417,10 @@ class CORE_EXPORT Document : public Cont
+@@ -534,6 +534,10 @@ class CORE_EXPORT Document : public Cont
      has_xml_declaration_ = has_xml_declaration ? 1 : 0;
      has_xml_declaration_ = has_xml_declaration ? 1 : 0;
    }
    }
  
  
@@ -167,7 +167,7 @@
    String visibilityState() const;
    String visibilityState() const;
    bool IsPageVisible() const;
    bool IsPageVisible() const;
    bool hidden() const;
    bool hidden() const;
-@@ -1957,6 +1961,9 @@ class CORE_EXPORT Document : public Cont
+@@ -2106,6 +2110,9 @@ class CORE_EXPORT Document : public Cont
  
  
    base::ElapsedTimer start_time_;
    base::ElapsedTimer start_time_;
  
  
@@ -179,7 +179,7 @@
    HeapVector<Member<ScriptElementBase>> current_script_stack_;
    HeapVector<Member<ScriptElementBase>> current_script_stack_;
 --- a/third_party/blink/renderer/core/dom/element.cc
 --- a/third_party/blink/renderer/core/dom/element.cc
 +++ b/third_party/blink/renderer/core/dom/element.cc
 +++ b/third_party/blink/renderer/core/dom/element.cc
-@@ -1948,6 +1948,11 @@ DOMRectList* Element::getClientRects() {
+@@ -1985,6 +1985,11 @@ DOMRectList* Element::getClientRects() {
    DCHECK(element_layout_object);
    DCHECK(element_layout_object);
    GetDocument().AdjustFloatQuadsForScrollAndAbsoluteZoom(
    GetDocument().AdjustFloatQuadsForScrollAndAbsoluteZoom(
        quads, *element_layout_object);
        quads, *element_layout_object);
@@ -191,7 +191,7 @@
    return MakeGarbageCollected<DOMRectList>(quads);
    return MakeGarbageCollected<DOMRectList>(quads);
  }
  }
  
  
-@@ -1965,6 +1970,9 @@ DOMRect* Element::getBoundingClientRect(
+@@ -2002,6 +2007,9 @@ DOMRect* Element::getBoundingClientRect(
    DCHECK(element_layout_object);
    DCHECK(element_layout_object);
    GetDocument().AdjustFloatRectForScrollAndAbsoluteZoom(result,
    GetDocument().AdjustFloatRectForScrollAndAbsoluteZoom(result,
                                                          *element_layout_object);
                                                          *element_layout_object);
@@ -203,7 +203,7 @@
  
  
 --- a/third_party/blink/renderer/core/dom/range.cc
 --- a/third_party/blink/renderer/core/dom/range.cc
 +++ b/third_party/blink/renderer/core/dom/range.cc
 +++ b/third_party/blink/renderer/core/dom/range.cc
-@@ -1631,11 +1631,21 @@ DOMRectList* Range::getClientRects() con
+@@ -1614,11 +1614,21 @@ DOMRectList* Range::getClientRects() con
    Vector<FloatQuad> quads;
    Vector<FloatQuad> quads;
    GetBorderAndTextQuads(quads);
    GetBorderAndTextQuads(quads);
  
  
@@ -266,7 +266,7 @@
                const TextDirection&,
                const TextDirection&,
 --- a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.cc
 --- a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.cc
 +++ b/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.cc
 +++ b/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.cc
-@@ -822,9 +822,15 @@ TextMetrics* CanvasRenderingContext2D::m
+@@ -815,9 +815,15 @@ TextMetrics* CanvasRenderingContext2D::m
    else
    else
      direction = ToTextDirection(GetState().GetDirection(), canvas());
      direction = ToTextDirection(GetState().GetDirection(), canvas());
  
  
@@ -285,18 +285,18 @@
  void CanvasRenderingContext2D::DrawTextInternal(
  void CanvasRenderingContext2D::DrawTextInternal(
 --- a/third_party/blink/renderer/platform/BUILD.gn
 --- a/third_party/blink/renderer/platform/BUILD.gn
 +++ b/third_party/blink/renderer/platform/BUILD.gn
 +++ b/third_party/blink/renderer/platform/BUILD.gn
-@@ -1524,6 +1524,7 @@ jumbo_component("platform") {
-     "//third_party/emoji-segmenter",
+@@ -1543,6 +1543,7 @@ jumbo_component("platform") {
+     "//third_party/harfbuzz-ng:hb_scoped_util",
      "//third_party/icu",
      "//third_party/icu",
      "//third_party/libyuv",
      "//third_party/libyuv",
 +    "//components/ungoogled:switches",
 +    "//components/ungoogled:switches",
      "//third_party/webrtc_overrides:webrtc_component",
      "//third_party/webrtc_overrides:webrtc_component",
      "//third_party/zlib/google:compression_utils",
      "//third_party/zlib/google:compression_utils",
-     "//ui/base:base",
+     "//ui/base/cursor",
 --- a/third_party/blink/renderer/platform/exported/web_runtime_features.cc
 --- a/third_party/blink/renderer/platform/exported/web_runtime_features.cc
 +++ b/third_party/blink/renderer/platform/exported/web_runtime_features.cc
 +++ b/third_party/blink/renderer/platform/exported/web_runtime_features.cc
-@@ -690,4 +690,12 @@ void WebRuntimeFeatures::EnableAccelerat
-   RuntimeEnabledFeatures::SetAcceleratedSmallCanvasesEnabled(enable);
+@@ -667,4 +667,12 @@ void WebRuntimeFeatures::EnableTrustToke
+   RuntimeEnabledFeatures::SetTrustTokensEnabled(enable);
  }
  }
  
  
 +void WebRuntimeFeatures::EnableFingerprintingClientRectsNoise(bool enable) {
 +void WebRuntimeFeatures::EnableFingerprintingClientRectsNoise(bool enable) {
@@ -310,7 +310,7 @@
  }  // namespace blink
  }  // namespace blink
 --- a/third_party/blink/renderer/platform/runtime_enabled_features.json5
 --- a/third_party/blink/renderer/platform/runtime_enabled_features.json5
 +++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5
 +++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5
-@@ -738,6 +738,12 @@
+@@ -747,6 +747,12 @@
        name: "FileSystem",
        name: "FileSystem",
        status: "stable",
        status: "stable",
      },
      },

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

@@ -23,7 +23,7 @@ approach to change color components.
 
 
 --- a/chrome/browser/about_flags.cc
 --- a/chrome/browser/about_flags.cc
 +++ b/chrome/browser/about_flags.cc
 +++ b/chrome/browser/about_flags.cc
-@@ -1594,6 +1594,10 @@ const FeatureEntry kFeatureEntries[] = {
+@@ -1815,6 +1815,10 @@ const FeatureEntry kFeatureEntries[] = {
       "Enable Canvas::measureText() fingerprint deception",
       "Enable Canvas::measureText() fingerprint deception",
       "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.",
       "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.",
       kOsAll, SINGLE_VALUE_TYPE(switches::kFingerprintingCanvasMeasureTextNoise)},
       kOsAll, SINGLE_VALUE_TYPE(switches::kFingerprintingCanvasMeasureTextNoise)},
@@ -36,17 +36,17 @@ approach to change color components.
       SINGLE_VALUE_TYPE(switches::kIgnoreGpuBlacklist)},
       SINGLE_VALUE_TYPE(switches::kIgnoreGpuBlacklist)},
 --- a/content/browser/renderer_host/render_process_host_impl.cc
 --- a/content/browser/renderer_host/render_process_host_impl.cc
 +++ b/content/browser/renderer_host/render_process_host_impl.cc
 +++ b/content/browser/renderer_host/render_process_host_impl.cc
-@@ -3152,6 +3152,7 @@ void RenderProcessHostImpl::PropagateBro
+@@ -3282,6 +3282,7 @@ void RenderProcessHostImpl::PropagateBro
      switches::kFileUrlPathAlias,
      switches::kFileUrlPathAlias,
      switches::kFingerprintingClientRectsNoise,
      switches::kFingerprintingClientRectsNoise,
      switches::kFingerprintingCanvasMeasureTextNoise,
      switches::kFingerprintingCanvasMeasureTextNoise,
 +    switches::kFingerprintingCanvasImageDataNoise,
 +    switches::kFingerprintingCanvasImageDataNoise,
-     switches::kForceDarkMode,
      switches::kForceDeviceScaleFactor,
      switches::kForceDeviceScaleFactor,
      switches::kForceDisableWebRtcApmInAudioService,
      switches::kForceDisableWebRtcApmInAudioService,
+     switches::kForceDisplayColorProfile,
 --- a/content/child/runtime_features.cc
 --- a/content/child/runtime_features.cc
 +++ b/content/child/runtime_features.cc
 +++ b/content/child/runtime_features.cc
-@@ -447,6 +447,8 @@ void SetRuntimeFeaturesFromCommandLine(c
+@@ -454,6 +454,8 @@ void SetRuntimeFeaturesFromCommandLine(c
         switches::kFingerprintingClientRectsNoise, true},
         switches::kFingerprintingClientRectsNoise, true},
        {wrf::EnableFingerprintingCanvasMeasureTextNoise,
        {wrf::EnableFingerprintingCanvasMeasureTextNoise,
         switches::kFingerprintingCanvasMeasureTextNoise, true},
         switches::kFingerprintingCanvasMeasureTextNoise, true},
@@ -57,7 +57,7 @@ approach to change color components.
        {wrf::EnableHTMLImports, switches::kWebComponentsV0Enabled, true},
        {wrf::EnableHTMLImports, switches::kWebComponentsV0Enabled, true},
 --- a/third_party/blink/public/platform/web_runtime_features.h
 --- a/third_party/blink/public/platform/web_runtime_features.h
 +++ b/third_party/blink/public/platform/web_runtime_features.h
 +++ b/third_party/blink/public/platform/web_runtime_features.h
-@@ -228,6 +228,7 @@ class WebRuntimeFeatures {
+@@ -222,6 +222,7 @@ class WebRuntimeFeatures {
    BLINK_PLATFORM_EXPORT static void EnableAllowSyncXHRInPageDismissal(bool);
    BLINK_PLATFORM_EXPORT static void EnableAllowSyncXHRInPageDismissal(bool);
    BLINK_PLATFORM_EXPORT static void EnableFingerprintingClientRectsNoise(bool);
    BLINK_PLATFORM_EXPORT static void EnableFingerprintingClientRectsNoise(bool);
    BLINK_PLATFORM_EXPORT static void EnableFingerprintingCanvasMeasureTextNoise(bool);
    BLINK_PLATFORM_EXPORT static void EnableFingerprintingCanvasMeasureTextNoise(bool);
@@ -67,7 +67,7 @@ approach to change color components.
    BLINK_PLATFORM_EXPORT static void EnableHTMLImports(bool);
    BLINK_PLATFORM_EXPORT static void EnableHTMLImports(bool);
 --- a/third_party/blink/renderer/platform/BUILD.gn
 --- a/third_party/blink/renderer/platform/BUILD.gn
 +++ b/third_party/blink/renderer/platform/BUILD.gn
 +++ b/third_party/blink/renderer/platform/BUILD.gn
-@@ -1482,7 +1482,9 @@ jumbo_component("platform") {
+@@ -1498,7 +1498,9 @@ jumbo_component("platform") {
      "//third_party/blink/renderer:non_test_config",
      "//third_party/blink/renderer:non_test_config",
    ]
    ]
  
  
@@ -80,7 +80,7 @@ approach to change color components.
      ":blink_platform_public_deps",
      ":blink_platform_public_deps",
 --- a/third_party/blink/renderer/platform/exported/web_runtime_features.cc
 --- a/third_party/blink/renderer/platform/exported/web_runtime_features.cc
 +++ b/third_party/blink/renderer/platform/exported/web_runtime_features.cc
 +++ b/third_party/blink/renderer/platform/exported/web_runtime_features.cc
-@@ -698,4 +698,8 @@ void WebRuntimeFeatures::EnableFingerpri
+@@ -675,4 +675,8 @@ void WebRuntimeFeatures::EnableFingerpri
    RuntimeEnabledFeatures::SetFingerprintingCanvasMeasureTextNoiseEnabled(enable);
    RuntimeEnabledFeatures::SetFingerprintingCanvasMeasureTextNoiseEnabled(enable);
  }
  }
  
  
@@ -302,7 +302,7 @@ approach to change color components.
  }  // namespace blink
  }  // namespace blink
 --- a/third_party/blink/renderer/platform/graphics/static_bitmap_image.h
 --- a/third_party/blink/renderer/platform/graphics/static_bitmap_image.h
 +++ b/third_party/blink/renderer/platform/graphics/static_bitmap_image.h
 +++ b/third_party/blink/renderer/platform/graphics/static_bitmap_image.h
-@@ -34,6 +34,8 @@ class PLATFORM_EXPORT StaticBitmapImage
+@@ -35,6 +35,8 @@ class PLATFORM_EXPORT StaticBitmapImage
  
  
    StaticBitmapImage(ImageOrientation orientation) : orientation_(orientation) {}
    StaticBitmapImage(ImageOrientation orientation) : orientation_(orientation) {}
  
  
@@ -313,7 +313,7 @@ approach to change color components.
    // Methods overridden by all sub-classes
    // Methods overridden by all sub-classes
 --- a/third_party/blink/renderer/platform/runtime_enabled_features.json5
 --- a/third_party/blink/renderer/platform/runtime_enabled_features.json5
 +++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5
 +++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5
-@@ -744,6 +744,9 @@
+@@ -753,6 +753,9 @@
      {
      {
        name: "FingerprintingCanvasMeasureTextNoise",
        name: "FingerprintingCanvasMeasureTextNoise",
      },
      },

+ 11 - 11
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
 --- a/chrome/browser/BUILD.gn
 +++ b/chrome/browser/BUILD.gn
 +++ b/chrome/browser/BUILD.gn
-@@ -2068,6 +2068,7 @@ jumbo_static_library("browser") {
+@@ -2104,6 +2104,7 @@ jumbo_static_library("browser") {
      "//components/net_log",
      "//components/net_log",
      "//components/network_hints/common:mojo_bindings",
      "//components/network_hints/common:mojo_bindings",
      "//components/network_session_configurator/browser",
      "//components/network_session_configurator/browser",
@@ -27,7 +27,7 @@ with limited CPU/memory resources and it is disabled by default.
      "//components/offline_items_collection/core",
      "//components/offline_items_collection/core",
 --- a/chrome/browser/about_flags.cc
 --- a/chrome/browser/about_flags.cc
 +++ b/chrome/browser/about_flags.cc
 +++ b/chrome/browser/about_flags.cc
-@@ -769,6 +769,11 @@ const FeatureEntry::Choice kForceEffecti
+@@ -767,6 +767,11 @@ const FeatureEntry::Choice kForceEffecti
       net::kEffectiveConnectionType4G},
       net::kEffectiveConnectionType4G},
  };
  };
  
  
@@ -39,7 +39,7 @@ with limited CPU/memory resources and it is disabled by default.
  // Ensure that all effective connection types returned by Network Quality
  // Ensure that all effective connection types returned by Network Quality
  // Estimator (NQE) are also exposed via flags.
  // Estimator (NQE) are also exposed via flags.
  static_assert(net::EFFECTIVE_CONNECTION_TYPE_LAST + 2 ==
  static_assert(net::EFFECTIVE_CONNECTION_TYPE_LAST + 2 ==
-@@ -2527,6 +2532,9 @@ const FeatureEntry kFeatureEntries[] = {
+@@ -2760,6 +2765,9 @@ const FeatureEntry kFeatureEntries[] = {
       flag_descriptions::kAutofillCreditCardUploadDescription, kOsAll,
       flag_descriptions::kAutofillCreditCardUploadDescription, kOsAll,
       FEATURE_VALUE_TYPE(autofill::features::kAutofillUpstream)},
       FEATURE_VALUE_TYPE(autofill::features::kAutofillUpstream)},
  #endif  // TOOLKIT_VIEWS || OS_ANDROID
  #endif  // TOOLKIT_VIEWS || OS_ANDROID
@@ -66,7 +66,7 @@ with limited CPU/memory resources and it is disabled by default.
  #include "base/synchronization/waitable_event.h"
  #include "base/synchronization/waitable_event.h"
  #include "base/task/post_task.h"
  #include "base/task/post_task.h"
  #include "base/task/task_traits.h"
  #include "base/task/task_traits.h"
-@@ -94,6 +96,7 @@
+@@ -98,6 +100,7 @@
  #include "components/metrics/metrics_service.h"
  #include "components/metrics/metrics_service.h"
  #include "components/metrics_services_manager/metrics_services_manager.h"
  #include "components/metrics_services_manager/metrics_services_manager.h"
  #include "components/metrics_services_manager/metrics_services_manager_client.h"
  #include "components/metrics_services_manager/metrics_services_manager_client.h"
@@ -74,15 +74,15 @@ with limited CPU/memory resources and it is disabled by default.
  #include "components/network_time/network_time_tracker.h"
  #include "components/network_time/network_time_tracker.h"
  #include "components/optimization_guide/optimization_guide_features.h"
  #include "components/optimization_guide/optimization_guide_features.h"
  #include "components/optimization_guide/optimization_guide_service.h"
  #include "components/optimization_guide/optimization_guide_service.h"
-@@ -129,6 +132,7 @@
- #include "extensions/common/constants.h"
+@@ -136,6 +139,7 @@
  #include "media/media_buildflags.h"
  #include "media/media_buildflags.h"
  #include "mojo/public/cpp/bindings/pending_receiver.h"
  #include "mojo/public/cpp/bindings/pending_receiver.h"
+ #include "net/log/net_log.h"
 +#include "net/socket/client_socket_pool_manager.h"
 +#include "net/socket/client_socket_pool_manager.h"
  #include "ppapi/buildflags/buildflags.h"
  #include "ppapi/buildflags/buildflags.h"
  #include "printing/buildflags/buildflags.h"
  #include "printing/buildflags/buildflags.h"
  #include "services/network/public/cpp/features.h"
  #include "services/network/public/cpp/features.h"
-@@ -308,6 +312,18 @@ void BrowserProcessImpl::Init() {
+@@ -325,6 +329,18 @@ void BrowserProcessImpl::Init() {
                               base::Bind(&ApplyMetricsReportingPolicy));
                               base::Bind(&ApplyMetricsReportingPolicy));
  #endif
  #endif
  
  
@@ -103,9 +103,9 @@ with limited CPU/memory resources and it is disabled by default.
  
  
 --- a/chrome/browser/flag_descriptions.cc
 --- a/chrome/browser/flag_descriptions.cc
 +++ b/chrome/browser/flag_descriptions.cc
 +++ b/chrome/browser/flag_descriptions.cc
-@@ -1168,6 +1168,10 @@ const char kMediaInspectorLoggingDescrip
-     "project; #enable-devtools-experiments must also be enabled as well on "
-     "desktop platforms";
+@@ -1137,6 +1137,10 @@ const char kMediaInspectorLoggingDescrip
+     "Move media logging from chrome://media-internals into the developer tools "
+     "project.";
  
  
 +const char kMaxConnectionsPerHostName[] = "Maximum connections per host";
 +const char kMaxConnectionsPerHostName[] = "Maximum connections per host";
 +const char kMaxConnectionsPerHostDescription[] =
 +const char kMaxConnectionsPerHostDescription[] =
@@ -116,7 +116,7 @@ with limited CPU/memory resources and it is disabled by default.
  const char kMediaRouterCastAllowAllIPsDescription[] =
  const char kMediaRouterCastAllowAllIPsDescription[] =
 --- a/chrome/browser/flag_descriptions.h
 --- a/chrome/browser/flag_descriptions.h
 +++ b/chrome/browser/flag_descriptions.h
 +++ b/chrome/browser/flag_descriptions.h
-@@ -694,6 +694,9 @@ extern const char kMarkHttpAsWarningAndD
+@@ -678,6 +678,9 @@ extern const char kMediaHistoryDescripti
  extern const char kMediaInspectorLoggingName[];
  extern const char kMediaInspectorLoggingName[];
  extern const char kMediaInspectorLoggingDescription[];
  extern const char kMediaInspectorLoggingDescription[];
  
  

+ 0 - 10
patches/extra/debian/disable/android.patch

@@ -12,13 +12,3 @@ author: Michael Gilbert <mgilbert@debian.org>
      deps +=
      deps +=
          [ "//third_party/android_crazy_linker:android_crazy_linker_zip_fuzzer" ]
          [ "//third_party/android_crazy_linker:android_crazy_linker_zip_fuzzer" ]
    }
    }
---- a/device/vr/buildflags/buildflags.gni
-+++ b/device/vr/buildflags/buildflags.gni
-@@ -5,7 +5,6 @@
- import("//build/config/chrome_build.gni")
- import("//build/config/chromecast_build.gni")
- import("//build/config/gclient_args.gni")
--import("//chrome/android/channel.gni")
- 
- declare_args() {
-   enable_gvr_services = is_android && !is_chromecast &&

+ 1 - 1
patches/extra/debian/disable/device-notifications.patch

@@ -4,7 +4,7 @@ bug-debian: http://bugs.debian.org/856571
 
 
 --- a/chrome/browser/printing/cloud_print/privet_notifications.cc
 --- a/chrome/browser/printing/cloud_print/privet_notifications.cc
 +++ b/chrome/browser/printing/cloud_print/privet_notifications.cc
 +++ b/chrome/browser/printing/cloud_print/privet_notifications.cc
-@@ -209,8 +209,7 @@ void PrivetNotificationService::DeviceCa
+@@ -211,8 +211,7 @@ void PrivetNotificationService::DeviceCa
  // static
  // static
  bool PrivetNotificationService::IsEnabled() {
  bool PrivetNotificationService::IsEnabled() {
    base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
    base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();

+ 3 - 3
patches/extra/debian/disable/fuzzers.patch

@@ -3,7 +3,7 @@ author: Michael Gilbert <mgilbert@debian.org>
 
 
 --- a/BUILD.gn
 --- a/BUILD.gn
 +++ b/BUILD.gn
 +++ b/BUILD.gn
-@@ -759,8 +759,7 @@ group("gn_all") {
+@@ -754,8 +754,7 @@ group("gn_all") {
      }
      }
    }
    }
  
  
@@ -15,7 +15,7 @@ author: Michael Gilbert <mgilbert@debian.org>
        "//testing/libfuzzer/fuzzers",
        "//testing/libfuzzer/fuzzers",
 --- a/content/test/BUILD.gn
 --- a/content/test/BUILD.gn
 +++ b/content/test/BUILD.gn
 +++ b/content/test/BUILD.gn
-@@ -2306,10 +2306,6 @@ test("content_perftests") {
+@@ -2383,10 +2383,6 @@ test("content_perftests") {
    }
    }
  }
  }
  
  
@@ -34,5 +34,5 @@ author: Michael Gilbert <mgilbert@debian.org>
      "gcmole:v8_run_gcmole",
      "gcmole:v8_run_gcmole",
 -    "jsfunfuzz:v8_jsfunfuzz",
 -    "jsfunfuzz:v8_jsfunfuzz",
    ]
    ]
- }
  
  
+   if (is_win) {

+ 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
 --- a/chrome/browser/ui/startup/startup_browser_creator_impl.cc
 +++ b/chrome/browser/ui/startup/startup_browser_creator_impl.cc
 +++ b/chrome/browser/ui/startup/startup_browser_creator_impl.cc
-@@ -876,10 +876,6 @@ void StartupBrowserCreatorImpl::AddInfoB
+@@ -901,10 +901,6 @@ void StartupBrowserCreatorImpl::AddInfoB
  
  
      InfoBarService* infobar_service =
      InfoBarService* infobar_service =
          InfoBarService::FromWebContents(web_contents);
          InfoBarService::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
 --- a/chrome/browser/profiles/profile_manager.cc
 +++ b/chrome/browser/profiles/profile_manager.cc
 +++ b/chrome/browser/profiles/profile_manager.cc
-@@ -1063,7 +1063,7 @@ void ProfileManager::InitProfileUserPref
+@@ -1076,7 +1076,7 @@ void ProfileManager::InitProfileUserPref
      profile->GetPrefs()->SetString(prefs::kSupervisedUserId,
      profile->GetPrefs()->SetString(prefs::kSupervisedUserId,
                                     supervised_user_id);
                                     supervised_user_id);
    }
    }

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

@@ -12,7 +12,7 @@
  void BackgroundModeManager::RegisterProfile(Profile* profile) {
  void BackgroundModeManager::RegisterProfile(Profile* profile) {
 --- a/chrome/browser/chrome_content_browser_client.cc
 --- a/chrome/browser/chrome_content_browser_client.cc
 +++ b/chrome/browser/chrome_content_browser_client.cc
 +++ b/chrome/browser/chrome_content_browser_client.cc
-@@ -1191,7 +1191,7 @@ void ChromeContentBrowserClient::Registe
+@@ -1152,7 +1152,7 @@ void ChromeContentBrowserClient::Registe
  void ChromeContentBrowserClient::RegisterProfilePrefs(
  void ChromeContentBrowserClient::RegisterProfilePrefs(
      user_prefs::PrefRegistrySyncable* registry) {
      user_prefs::PrefRegistrySyncable* registry) {
    registry->RegisterBooleanPref(prefs::kDisable3DAPIs, false);
    registry->RegisterBooleanPref(prefs::kDisable3DAPIs, false);
@@ -45,7 +45,7 @@
  enum class NetworkPredictionStatus {
  enum class NetworkPredictionStatus {
 --- a/chrome/browser/profiles/profile.cc
 --- a/chrome/browser/profiles/profile.cc
 +++ b/chrome/browser/profiles/profile.cc
 +++ b/chrome/browser/profiles/profile.cc
-@@ -148,7 +148,7 @@ const char Profile::kProfileKey[] = "__P
+@@ -183,7 +183,7 @@ const char Profile::kProfileKey[] = "__P
  void Profile::RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) {
  void Profile::RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) {
    registry->RegisterBooleanPref(
    registry->RegisterBooleanPref(
        prefs::kSearchSuggestEnabled,
        prefs::kSearchSuggestEnabled,
@@ -56,7 +56,7 @@
    registry->RegisterStringPref(
    registry->RegisterStringPref(
 --- a/chrome/browser/resources/settings/reset_page/reset_profile_dialog.html
 --- a/chrome/browser/resources/settings/reset_page/reset_profile_dialog.html
 +++ b/chrome/browser/resources/settings/reset_page/reset_profile_dialog.html
 +++ b/chrome/browser/resources/settings/reset_page/reset_profile_dialog.html
-@@ -50,7 +50,7 @@
+@@ -51,7 +51,7 @@
          </cr-button>
          </cr-button>
        </div>
        </div>
        <div slot="footer">
        <div slot="footer">
@@ -67,7 +67,7 @@
      </cr-dialog>
      </cr-dialog>
 --- a/chrome/browser/signin/account_consistency_mode_manager.cc
 --- a/chrome/browser/signin/account_consistency_mode_manager.cc
 +++ b/chrome/browser/signin/account_consistency_mode_manager.cc
 +++ b/chrome/browser/signin/account_consistency_mode_manager.cc
-@@ -132,7 +132,7 @@ void AccountConsistencyModeManager::Regi
+@@ -99,7 +99,7 @@ void AccountConsistencyModeManager::Regi
    registry->RegisterBooleanPref(prefs::kAccountConsistencyMirrorRequired,
    registry->RegisterBooleanPref(prefs::kAccountConsistencyMirrorRequired,
                                  false);
                                  false);
  #endif
  #endif
@@ -181,7 +181,7 @@
        prefs::kCookieControlsMode,
        prefs::kCookieControlsMode,
 --- a/components/password_manager/core/browser/password_manager.cc
 --- a/components/password_manager/core/browser/password_manager.cc
 +++ b/components/password_manager/core/browser/password_manager.cc
 +++ b/components/password_manager/core/browser/password_manager.cc
-@@ -185,10 +185,10 @@ void AddLocallySavedPredictions(FieldInf
+@@ -196,10 +196,10 @@ void AddLocallySavedPredictions(FieldInf
  void PasswordManager::RegisterProfilePrefs(
  void PasswordManager::RegisterProfilePrefs(
      user_prefs::PrefRegistrySyncable* registry) {
      user_prefs::PrefRegistrySyncable* registry) {
    registry->RegisterBooleanPref(
    registry->RegisterBooleanPref(
@@ -205,20 +205,3 @@
        user_prefs::PrefRegistrySyncable::SYNCABLE_PREF);
        user_prefs::PrefRegistrySyncable::SYNCABLE_PREF);
  }
  }
  
  
---- a/extensions/common/extension.cc
-+++ b/extensions/common/extension.cc
-@@ -333,14 +333,6 @@ bool Extension::ShouldDisplayInExtension
-   if (type == Manifest::TYPE_THEME)
-     return false;
- 
--  // Hide component extensions because they are only extensions as an
--  // implementation detail of Chrome.
--  if (Manifest::IsComponentLocation(location) &&
--      !base::CommandLine::ForCurrentProcess()->HasSwitch(
--          switches::kShowComponentExtensionOptions)) {
--    return false;
--  }
--
-   // Unless they are unpacked, never show hosted apps. Note: We intentionally
-   // show packaged apps and platform apps because there are some pieces of
-   // functionality that are only available in chrome://extensions/ but which

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

@@ -1,6 +1,6 @@
 --- a/chrome/browser/search/search.cc
 --- a/chrome/browser/search/search.cc
 +++ b/chrome/browser/search/search.cc
 +++ b/chrome/browser/search/search.cc
-@@ -182,26 +182,7 @@ struct NewTabURLDetails {
+@@ -183,26 +183,7 @@ struct NewTabURLDetails {
                               : chrome::kChromeSearchLocalNtpUrl);
                               : chrome::kChromeSearchLocalNtpUrl);
  #endif
  #endif
  
  

+ 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
 --- a/chrome/browser/chrome_browser_main.cc
 +++ b/chrome/browser/chrome_browser_main.cc
 +++ b/chrome/browser/chrome_browser_main.cc
-@@ -1576,8 +1576,6 @@ int ChromeBrowserMainParts::PreMainMessa
+@@ -1414,8 +1414,6 @@ int ChromeBrowserMainParts::PreMainMessa
    // and preferences have been registered since some of the import code depends
    // and preferences have been registered since some of the import code depends
    // on preferences.
    // on preferences.
    if (first_run::IsChromeFirstRun()) {
    if (first_run::IsChromeFirstRun()) {

+ 1 - 1
patches/extra/iridium-browser/mime_util-force-text-x-suse-ymp-to-be-downloaded.patch

@@ -11,7 +11,7 @@ very interesting in themselves. Force them to be stored.
 
 
 --- a/third_party/blink/common/mime_util/mime_util.cc
 --- a/third_party/blink/common/mime_util/mime_util.cc
 +++ b/third_party/blink/common/mime_util/mime_util.cc
 +++ b/third_party/blink/common/mime_util/mime_util.cc
-@@ -75,6 +75,7 @@ static const char* const kUnsupportedTex
+@@ -76,6 +76,7 @@ static const char* const kUnsupportedTex
      "text/x-csv",
      "text/x-csv",
      "text/x-vcf",
      "text/x-vcf",
      "text/rtf",
      "text/rtf",

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

@@ -10,7 +10,7 @@ Out with all those tracking cookies!
 
 
 --- a/components/content_settings/core/browser/content_settings_registry.cc
 --- a/components/content_settings/core/browser/content_settings_registry.cc
 +++ b/components/content_settings/core/browser/content_settings_registry.cc
 +++ b/components/content_settings/core/browser/content_settings_registry.cc
-@@ -140,7 +140,7 @@ void ContentSettingsRegistry::Init() {
+@@ -155,7 +155,7 @@ void ContentSettingsRegistry::Init() {
    // WARNING: The string names of the permissions passed in below are used to
    // WARNING: The string names of the permissions passed in below are used to
    // generate preference names and should never be changed!
    // generate preference names and should never be changed!
  
  
@@ -18,4 +18,4 @@ Out with all those tracking cookies!
 +  Register(ContentSettingsType::COOKIES, "cookies", CONTENT_SETTING_SESSION_ONLY,
 +  Register(ContentSettingsType::COOKIES, "cookies", CONTENT_SETTING_SESSION_ONLY,
             WebsiteSettingsInfo::SYNCABLE,
             WebsiteSettingsInfo::SYNCABLE,
             WhitelistedSchemes(kChromeUIScheme, kChromeDevToolsScheme),
             WhitelistedSchemes(kChromeUIScheme, kChromeDevToolsScheme),
-            ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK,
+            ForceAllowedOrigins(),

+ 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
 --- a/chrome/browser/app_controller_mac.mm
 +++ b/chrome/browser/app_controller_mac.mm
 +++ b/chrome/browser/app_controller_mac.mm
-@@ -660,7 +660,7 @@ static base::mac::ScopedObjCClassSwizzle
+@@ -670,7 +670,7 @@ static base::mac::ScopedObjCClassSwizzle
    CFStringRef checkInterval = CFSTR("checkInterval");
    CFStringRef checkInterval = CFSTR("checkInterval");
    CFPropertyListRef plist = CFPreferencesCopyAppValue(checkInterval, app);
    CFPropertyListRef plist = CFPreferencesCopyAppValue(checkInterval, app);
    if (!plist) {
    if (!plist) {

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

@@ -2,7 +2,7 @@
 
 
 --- a/chrome/browser/about_flags.cc
 --- a/chrome/browser/about_flags.cc
 +++ b/chrome/browser/about_flags.cc
 +++ b/chrome/browser/about_flags.cc
-@@ -1549,6 +1549,10 @@ const FeatureEntry kFeatureEntries[] = {
+@@ -1770,6 +1770,10 @@ const FeatureEntry kFeatureEntries[] = {
       "Enable stacking in tab strip",
       "Enable stacking in tab strip",
       "Forces tabs to be stacked in the tab strip. Otherwise, they follow default behavior.",
       "Forces tabs to be stacked in the tab strip. Otherwise, they follow default behavior.",
       kOsAll, SINGLE_VALUE_TYPE("enable-stacked-tab-strip")},
       kOsAll, SINGLE_VALUE_TYPE("enable-stacked-tab-strip")},
@@ -15,7 +15,7 @@
       SINGLE_VALUE_TYPE(switches::kIgnoreGpuBlacklist)},
       SINGLE_VALUE_TYPE(switches::kIgnoreGpuBlacklist)},
 --- a/chrome/renderer/chrome_render_frame_observer.cc
 --- a/chrome/renderer/chrome_render_frame_observer.cc
 +++ b/chrome/renderer/chrome_render_frame_observer.cc
 +++ b/chrome/renderer/chrome_render_frame_observer.cc
-@@ -165,9 +165,10 @@ ChromeRenderFrameObserver::ChromeRenderF
+@@ -129,9 +129,10 @@ ChromeRenderFrameObserver::ChromeRenderF
    if (!render_frame->IsMainFrame())
    if (!render_frame->IsMainFrame())
      return;
      return;
  
  
@@ -27,7 +27,7 @@
    if (!command_line.HasSwitch(switches::kDisableClientSidePhishingDetection))
    if (!command_line.HasSwitch(switches::kDisableClientSidePhishingDetection))
      SetClientSidePhishingDetection(true);
      SetClientSidePhishingDetection(true);
  #endif
  #endif
-@@ -367,14 +368,16 @@ void ChromeRenderFrameObserver::DidFinis
+@@ -365,14 +366,16 @@ void ChromeRenderFrameObserver::DidFinis
    if (frame->Parent())
    if (frame->Parent())
      return;
      return;
  
  
@@ -54,14 +54,21 @@
  
  
 --- a/chrome/renderer/chrome_render_frame_observer.h
 --- a/chrome/renderer/chrome_render_frame_observer.h
 +++ b/chrome/renderer/chrome_render_frame_observer.h
 +++ b/chrome/renderer/chrome_render_frame_observer.h
-@@ -115,6 +115,7 @@ class ChromeRenderFrameObserver : public
-   // Have the same lifetime as us.
-   translate::TranslateAgent* translate_agent_;
-   safe_browsing::PhishingClassifierDelegate* phishing_classifier_;
+@@ -133,6 +133,7 @@ class ChromeRenderFrameObserver : public
+ #if BUILDFLAG(SAFE_BROWSING_CSD)
+   safe_browsing::PhishingClassifierDelegate* phishing_classifier_ = nullptr;
+ #endif
 +  bool should_autocollect_; // Whether to autocollect search engines
 +  bool should_autocollect_; // Whether to autocollect search engines
  
  
    // Owned by ChromeContentRendererClient and outlive us.
    // Owned by ChromeContentRendererClient and outlive us.
    web_cache::WebCacheImpl* web_cache_impl_;
    web_cache::WebCacheImpl* web_cache_impl_;
+@@ -150,4 +151,4 @@ class ChromeRenderFrameObserver : public
+   DISALLOW_COPY_AND_ASSIGN(ChromeRenderFrameObserver);
+ };
+ 
+-#endif  // CHROME_RENDERER_CHROME_RENDER_FRAME_OBSERVER_H_
+\ No newline at end of file
++#endif  // CHROME_RENDERER_CHROME_RENDER_FRAME_OBSERVER_H_
 --- a/components/search_engines/template_url_service.cc
 --- a/components/search_engines/template_url_service.cc
 +++ b/components/search_engines/template_url_service.cc
 +++ b/components/search_engines/template_url_service.cc
 @@ -9,6 +9,7 @@
 @@ -9,6 +9,7 @@

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

@@ -3,7 +3,7 @@
 
 
 --- a/chrome/browser/about_flags.cc
 --- a/chrome/browser/about_flags.cc
 +++ b/chrome/browser/about_flags.cc
 +++ b/chrome/browser/about_flags.cc
-@@ -247,6 +247,16 @@ const unsigned kOsDesktop = kOsMac | kOs
+@@ -249,6 +249,16 @@ const unsigned kOsDesktop = kOsMac | kOs
  const unsigned kOsAura = kOsWin | kOsLinux | kOsCrOS;
  const unsigned kOsAura = kOsWin | kOsLinux | kOsCrOS;
  #endif  // USE_AURA || OS_ANDROID
  #endif  // USE_AURA || OS_ANDROID
  
  
@@ -20,7 +20,7 @@
  const FeatureEntry::Choice kTouchEventFeatureDetectionChoices[] = {
  const FeatureEntry::Choice kTouchEventFeatureDetectionChoices[] = {
      {flags_ui::kGenericExperimentChoiceDisabled, "", ""},
      {flags_ui::kGenericExperimentChoiceDisabled, "", ""},
      {flags_ui::kGenericExperimentChoiceEnabled,
      {flags_ui::kGenericExperimentChoiceEnabled,
-@@ -1531,6 +1541,10 @@ const FeatureEntry::Choice kEnableCrOSAc
+@@ -1752,6 +1762,10 @@ const FeatureEntry::Choice kWebOtpBacken
  //
  //
  // When adding a new choice, add it to the end of the list.
  // When adding a new choice, add it to the end of the list.
  const FeatureEntry kFeatureEntries[] = {
  const FeatureEntry kFeatureEntries[] = {
@@ -80,7 +80,7 @@
  bool IsExtensionDownload(const download::DownloadItem& download_item);
  bool IsExtensionDownload(const download::DownloadItem& download_item);
 --- a/chrome/browser/download/download_target_determiner.cc
 --- a/chrome/browser/download/download_target_determiner.cc
 +++ b/chrome/browser/download/download_target_determiner.cc
 +++ b/chrome/browser/download/download_target_determiner.cc
-@@ -1018,10 +1018,12 @@ DownloadConfirmationReason DownloadTarge
+@@ -1030,10 +1030,12 @@ DownloadConfirmationReason DownloadTarge
      return DownloadConfirmationReason::SAVE_AS;
      return DownloadConfirmationReason::SAVE_AS;
  
  
  #if BUILDFLAG(ENABLE_EXTENSIONS)
  #if BUILDFLAG(ENABLE_EXTENSIONS)
@@ -107,7 +107,7 @@
  #include "base/logging.h"
  #include "base/logging.h"
  #include "base/metrics/histogram_macros.h"
  #include "base/metrics/histogram_macros.h"
  #include "base/stl_util.h"
  #include "base/stl_util.h"
-@@ -191,6 +192,13 @@ bool ExtensionManagement::IsInstallation
+@@ -203,6 +204,13 @@ bool ExtensionManagement::IsInstallation
  bool ExtensionManagement::IsOffstoreInstallAllowed(
  bool ExtensionManagement::IsOffstoreInstallAllowed(
      const GURL& url,
      const GURL& url,
      const GURL& referrer_url) const {
      const GURL& referrer_url) const {

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

@@ -1,7 +1,7 @@
 # Add --disable-beforeunload to always disable beforeunload JavaScript dialogs
 # Add --disable-beforeunload to always disable beforeunload JavaScript dialogs
 
 
---- a/components/app_modal/javascript_dialog_manager.cc
-+++ b/components/app_modal/javascript_dialog_manager.cc
+--- a/components/javascript_dialogs/app_modal_dialog_manager.cc
++++ b/components/javascript_dialogs/app_modal_dialog_manager.cc
 @@ -8,6 +8,7 @@
 @@ -8,6 +8,7 @@
  #include <utility>
  #include <utility>
  
  
@@ -10,7 +10,7 @@
  #include "base/i18n/rtl.h"
  #include "base/i18n/rtl.h"
  #include "base/macros.h"
  #include "base/macros.h"
  #include "base/metrics/histogram_macros.h"
  #include "base/metrics/histogram_macros.h"
-@@ -200,7 +201,8 @@ void JavaScriptDialogManager::RunBeforeU
+@@ -199,7 +200,8 @@ void AppModalDialogManager::RunBeforeUnl
    ChromeJavaScriptDialogExtraData* extra_data =
    ChromeJavaScriptDialogExtraData* extra_data =
        &javascript_dialog_extra_data_[web_contents];
        &javascript_dialog_extra_data_[web_contents];
  
  

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

@@ -2,7 +2,7 @@
 
 
 --- a/chrome/browser/about_flags.cc
 --- a/chrome/browser/about_flags.cc
 +++ b/chrome/browser/about_flags.cc
 +++ b/chrome/browser/about_flags.cc
-@@ -1553,6 +1553,10 @@ const FeatureEntry kFeatureEntries[] = {
+@@ -1774,6 +1774,10 @@ const FeatureEntry kFeatureEntries[] = {
       "Disable search engine collection",
       "Disable search engine collection",
       "Prevents search engines from being added automatically.",
       "Prevents search engines from being added automatically.",
       kOsAll, SINGLE_VALUE_TYPE("disable-search-engine-collection")},
       kOsAll, SINGLE_VALUE_TYPE("disable-search-engine-collection")},

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

@@ -3,8 +3,8 @@
 
 
 --- a/chrome/browser/ui/startup/startup_browser_creator_impl.cc
 --- a/chrome/browser/ui/startup/startup_browser_creator_impl.cc
 +++ b/chrome/browser/ui/startup/startup_browser_creator_impl.cc
 +++ b/chrome/browser/ui/startup/startup_browser_creator_impl.cc
-@@ -848,7 +848,8 @@ void StartupBrowserCreatorImpl::AddInfoB
-   if (!browser || !profile_ || browser->tab_strip_model()->count() == 0)
+@@ -879,7 +879,8 @@ void StartupBrowserCreatorImpl::AddInfoB
+   if (command_line_.HasSwitch(switches::kKioskMode))
      return;
      return;
  
  
 -  if (HasPendingUncleanExit(browser->profile()))
 -  if (HasPendingUncleanExit(browser->profile()))
@@ -12,4 +12,4 @@
 +      !command_line_.HasSwitch("hide-crashed-bubble"))
 +      !command_line_.HasSwitch("hide-crashed-bubble"))
      SessionCrashedBubble::ShowIfNotOffTheRecordProfile(browser);
      SessionCrashedBubble::ShowIfNotOffTheRecordProfile(browser);
  
  
-   bool show_bad_flags_security_warnings = ShouldShowBadFlagsSecurityWarnings();
+   // The below info bars are only added to the first profile which is launched.

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

@@ -1,6 +1,6 @@
 --- a/chrome/browser/about_flags.cc
 --- a/chrome/browser/about_flags.cc
 +++ b/chrome/browser/about_flags.cc
 +++ b/chrome/browser/about_flags.cc
-@@ -270,6 +270,16 @@ const FeatureEntry::Choice kShowAvatarBu
+@@ -272,6 +272,16 @@ const FeatureEntry::Choice kShowAvatarBu
       "never"}
       "never"}
  };
  };
  
  
@@ -17,7 +17,7 @@
  const FeatureEntry::Choice kTouchEventFeatureDetectionChoices[] = {
  const FeatureEntry::Choice kTouchEventFeatureDetectionChoices[] = {
      {flags_ui::kGenericExperimentChoiceDisabled, "", ""},
      {flags_ui::kGenericExperimentChoiceDisabled, "", ""},
      {flags_ui::kGenericExperimentChoiceEnabled,
      {flags_ui::kGenericExperimentChoiceEnabled,
-@@ -3711,6 +3721,11 @@ const FeatureEntry kFeatureEntries[] = {
+@@ -3922,6 +3932,11 @@ const FeatureEntry kFeatureEntries[] = {
       FEATURE_VALUE_TYPE(
       FEATURE_VALUE_TYPE(
           autofill::features::kAutofillEnableAccountWalletStorage)},
           autofill::features::kAutofillEnableAccountWalletStorage)},
  
  
@@ -38,8 +38,8 @@
 +#include "base/command_line.h"
 +#include "base/command_line.h"
  #include "base/metrics/user_metrics.h"
  #include "base/metrics/user_metrics.h"
  #include "base/task/post_task.h"
  #include "base/task/post_task.h"
- #include "chrome/browser/autocomplete/autocomplete_classifier_factory.h"
-@@ -99,6 +100,18 @@ int GetDropEffect(const ui::DropTargetEv
+ #include "base/task/thread_pool.h"
+@@ -100,6 +101,18 @@ int GetDropEffect(const ui::DropTargetEv
    return ui::DragDropTypes::DRAG_MOVE;
    return ui::DragDropTypes::DRAG_MOVE;
  }
  }
  
  
@@ -58,7 +58,7 @@
  }  // namespace
  }  // namespace
  
  
  BrowserRootView::DropInfo::DropInfo() = default;
  BrowserRootView::DropInfo::DropInfo() = default;
-@@ -113,7 +126,9 @@ const char BrowserRootView::kViewClassNa
+@@ -114,7 +127,9 @@ const char BrowserRootView::kViewClassNa
  
  
  BrowserRootView::BrowserRootView(BrowserView* browser_view,
  BrowserRootView::BrowserRootView(BrowserView* browser_view,
                                   views::Widget* widget)
                                   views::Widget* widget)
@@ -69,7 +69,7 @@
  
  
  BrowserRootView::~BrowserRootView() {
  BrowserRootView::~BrowserRootView() {
    // It's possible to destroy the browser while a drop is active.  In this case,
    // It's possible to destroy the browser while a drop is active.  In this case,
-@@ -260,7 +275,7 @@ const char* BrowserRootView::GetClassNam
+@@ -259,7 +274,7 @@ const char* BrowserRootView::GetClassNam
  }
  }
  
  
  bool BrowserRootView::OnMouseWheel(const ui::MouseWheelEvent& event) {
  bool BrowserRootView::OnMouseWheel(const ui::MouseWheelEvent& event) {

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

@@ -1,6 +1,6 @@
 --- a/chrome/browser/about_flags.cc
 --- a/chrome/browser/about_flags.cc
 +++ b/chrome/browser/about_flags.cc
 +++ b/chrome/browser/about_flags.cc
-@@ -257,6 +257,19 @@ const FeatureEntry::Choice kExtensionHan
+@@ -259,6 +259,19 @@ const FeatureEntry::Choice kExtensionHan
       "always-prompt-for-install"},
       "always-prompt-for-install"},
  };
  };
  
  
@@ -20,7 +20,7 @@
  const FeatureEntry::Choice kTouchEventFeatureDetectionChoices[] = {
  const FeatureEntry::Choice kTouchEventFeatureDetectionChoices[] = {
      {flags_ui::kGenericExperimentChoiceDisabled, "", ""},
      {flags_ui::kGenericExperimentChoiceDisabled, "", ""},
      {flags_ui::kGenericExperimentChoiceEnabled,
      {flags_ui::kGenericExperimentChoiceEnabled,
-@@ -3812,6 +3825,11 @@ const FeatureEntry kFeatureEntries[] = {
+@@ -4023,6 +4036,11 @@ const FeatureEntry kFeatureEntries[] = {
       FEATURE_VALUE_TYPE(arc::kEnableUnifiedAudioFocusFeature)},
       FEATURE_VALUE_TYPE(arc::kEnableUnifiedAudioFocusFeature)},
  #endif  // defined(OS_CHROMEOS)
  #endif  // defined(OS_CHROMEOS)
  
  
@@ -34,7 +34,7 @@
       flag_descriptions::kUseAngleDescription, kOsWin,
       flag_descriptions::kUseAngleDescription, kOsWin,
 --- a/chrome/browser/ui/views/toolbar/toolbar_view.cc
 --- a/chrome/browser/ui/views/toolbar/toolbar_view.cc
 +++ b/chrome/browser/ui/views/toolbar/toolbar_view.cc
 +++ b/chrome/browser/ui/views/toolbar/toolbar_view.cc
-@@ -218,6 +218,15 @@ void ToolbarView::Init() {
+@@ -223,14 +223,30 @@ void ToolbarView::Init() {
  
  
    std::unique_ptr<ToolbarAccountIconContainerView>
    std::unique_ptr<ToolbarAccountIconContainerView>
        toolbar_account_icon_container;
        toolbar_account_icon_container;
@@ -48,18 +48,15 @@
 +                                    browser_->profile()->IsGuestSession();
 +                                    browser_->profile()->IsGuestSession();
 +
 +
    bool show_avatar_toolbar_button = true;
    bool show_avatar_toolbar_button = true;
-   if (base::FeatureList::IsEnabled(
-           autofill::features::kAutofillEnableToolbarStatusChip)) {
-@@ -229,11 +238,17 @@ void ToolbarView::Init() {
-   } else {
  #if defined(OS_CHROMEOS)
  #if defined(OS_CHROMEOS)
+   if (!base::FeatureList::IsEnabled(chromeos::features::kAvatarToolbarButton)) {
      // ChromeOS only badges Incognito and Guest icons in the browser window.
      // ChromeOS only badges Incognito and Guest icons in the browser window.
 -    show_avatar_toolbar_button = browser_->profile()->IsOffTheRecord() ||
 -    show_avatar_toolbar_button = browser_->profile()->IsOffTheRecord() ||
 -                                 browser_->profile()->IsGuestSession();
 -                                 browser_->profile()->IsGuestSession();
 +    show_avatar_toolbar_button = in_incognito_or_guest_mode;
 +    show_avatar_toolbar_button = in_incognito_or_guest_mode;
- #endif
    }
    }
- 
+ #endif
++
 +  if (flag_value == "always")
 +  if (flag_value == "always")
 +    show_avatar_toolbar_button = true;
 +    show_avatar_toolbar_button = true;
 +  else if (flag_value == "incognito-and-guest")
 +  else if (flag_value == "incognito-and-guest")
@@ -67,6 +64,6 @@
 +  else if (flag_value == "never")
 +  else if (flag_value == "never")
 +    show_avatar_toolbar_button = false;
 +    show_avatar_toolbar_button = false;
 +
 +
-   std::unique_ptr<AvatarToolbarButton> avatar;
-   if (show_avatar_toolbar_button)
-     avatar = std::make_unique<AvatarToolbarButton>(browser_);
+   if (base::FeatureList::IsEnabled(
+           autofill::features::kAutofillEnableToolbarStatusChip)) {
+     // The avatar button is contained inside the page-action container and

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

@@ -2,7 +2,7 @@
 
 
 --- a/chrome/browser/about_flags.cc
 --- a/chrome/browser/about_flags.cc
 +++ b/chrome/browser/about_flags.cc
 +++ b/chrome/browser/about_flags.cc
-@@ -1531,6 +1531,10 @@ const FeatureEntry::Choice kEnableCrOSAc
+@@ -1752,6 +1752,10 @@ const FeatureEntry::Choice kWebOtpBacken
  //
  //
  // When adding a new choice, add it to the end of the list.
  // When adding a new choice, add it to the end of the list.
  const FeatureEntry kFeatureEntries[] = {
  const FeatureEntry kFeatureEntries[] = {
@@ -15,7 +15,7 @@
       SINGLE_VALUE_TYPE(switches::kIgnoreGpuBlacklist)},
       SINGLE_VALUE_TYPE(switches::kIgnoreGpuBlacklist)},
 --- a/chrome/browser/ui/views/tabs/browser_tab_strip_controller.cc
 --- a/chrome/browser/ui/views/tabs/browser_tab_strip_controller.cc
 +++ b/chrome/browser/ui/views/tabs/browser_tab_strip_controller.cc
 +++ b/chrome/browser/ui/views/tabs/browser_tab_strip_controller.cc
-@@ -75,14 +75,13 @@ using content::WebContents;
+@@ -76,14 +76,13 @@ using content::WebContents;
  namespace {
  namespace {
  
  
  bool DetermineTabStripLayoutStacked(PrefService* prefs, bool* adjust_layout) {
  bool DetermineTabStripLayoutStacked(PrefService* prefs, bool* adjust_layout) {

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

@@ -3,15 +3,15 @@
 
 
 --- a/net/dns/host_resolver_manager.cc
 --- a/net/dns/host_resolver_manager.cc
 +++ b/net/dns/host_resolver_manager.cc
 +++ b/net/dns/host_resolver_manager.cc
-@@ -29,6 +29,7 @@
+@@ -30,6 +30,7 @@
  #include "base/bind_helpers.h"
  #include "base/bind_helpers.h"
  #include "base/callback.h"
  #include "base/callback.h"
  #include "base/callback_helpers.h"
  #include "base/callback_helpers.h"
 +#include "base/command_line.h"
 +#include "base/command_line.h"
  #include "base/compiler_specific.h"
  #include "base/compiler_specific.h"
+ #include "base/containers/flat_set.h"
  #include "base/containers/linked_list.h"
  #include "base/containers/linked_list.h"
- #include "base/debug/debugger.h"
-@@ -128,11 +129,6 @@ const unsigned kMinimumTTLSeconds = kCac
+@@ -130,11 +131,6 @@ const unsigned kMinimumTTLSeconds = kCac
  // cached.
  // cached.
  const int kIPv6ProbePeriodMs = 1000;
  const int kIPv6ProbePeriodMs = 1000;
  
  
@@ -23,9 +23,9 @@
  enum DnsResolveStatus {
  enum DnsResolveStatus {
    RESOLVE_STATUS_DNS_SUCCESS = 0,
    RESOLVE_STATUS_DNS_SUCCESS = 0,
    RESOLVE_STATUS_PROC_SUCCESS,
    RESOLVE_STATUS_PROC_SUCCESS,
-@@ -3594,7 +3590,7 @@ bool HostResolverManager::IsIPv6Reachabl
-   if ((tick_clock_->NowTicks() - last_ipv6_probe_time_).InMilliseconds() >
-       kIPv6ProbePeriodMs) {
+@@ -3565,7 +3561,7 @@ bool HostResolverManager::IsIPv6Reachabl
+       (tick_clock_->NowTicks() - last_ipv6_probe_time_).InMilliseconds() >
+           kIPv6ProbePeriodMs) {
      SetLastIPv6ProbeResult(
      SetLastIPv6ProbeResult(
 -        IsGloballyReachable(IPAddress(kIPv6ProbeAddress), net_log));
 -        IsGloballyReachable(IPAddress(kIPv6ProbeAddress), net_log));
 +        !base::CommandLine::ForCurrentProcess()->HasSwitch("set-ipv6-probe-false"));
 +        !base::CommandLine::ForCurrentProcess()->HasSwitch("set-ipv6-probe-false"));

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

@@ -78,7 +78,7 @@
    },
    },
 --- a/chrome/browser/resources/settings/search_engines_page/search_engines_browser_proxy.js
 --- a/chrome/browser/resources/settings/search_engines_page/search_engines_browser_proxy.js
 +++ b/chrome/browser/resources/settings/search_engines_page/search_engines_browser_proxy.js
 +++ b/chrome/browser/resources/settings/search_engines_page/search_engines_browser_proxy.js
-@@ -24,6 +24,7 @@
+@@ -28,6 +28,7 @@
   *            modelIndex: number,
   *            modelIndex: number,
   *            name: string,
   *            name: string,
   *            url: string,
   *            url: string,
@@ -86,7 +86,7 @@
   *            urlLocked: boolean}}
   *            urlLocked: boolean}}
   * @see chrome/browser/ui/webui/settings/search_engine_manager_handler.cc
   * @see chrome/browser/ui/webui/settings/search_engine_manager_handler.cc
   */
   */
-@@ -56,8 +57,10 @@ cr.define('settings', function() {
+@@ -60,8 +61,10 @@ cr.define('settings', function() {
       * @param {string} searchEngine
       * @param {string} searchEngine
       * @param {string} keyword
       * @param {string} keyword
       * @param {string} queryUrl
       * @param {string} queryUrl
@@ -98,7 +98,7 @@
  
  
      /** @return {!Promise<!SearchEnginesInfo>} */
      /** @return {!Promise<!SearchEnginesInfo>} */
      getSearchEnginesList() {}
      getSearchEnginesList() {}
-@@ -95,11 +98,12 @@ cr.define('settings', function() {
+@@ -99,11 +102,12 @@ cr.define('settings', function() {
      }
      }
  
  
      /** @override */
      /** @override */
@@ -435,7 +435,7 @@
    Update(url, TemplateURL(data));
    Update(url, TemplateURL(data));
  }
  }
  
  
-@@ -1979,7 +1981,7 @@ TemplateURL* TemplateURLService::Add(std
+@@ -1978,7 +1980,7 @@ TemplateURL* TemplateURLService::Add(std
          // Neither engine can be replaced. Uniquify the existing keyword.
          // Neither engine can be replaced. Uniquify the existing keyword.
          base::string16 new_keyword = UniquifyKeyword(*existing_turl, false);
          base::string16 new_keyword = UniquifyKeyword(*existing_turl, false);
          ResetTemplateURL(existing_turl, existing_turl->short_name(),
          ResetTemplateURL(existing_turl, existing_turl->short_name(),

+ 4 - 4
patches/extra/ungoogled-chromium/default-to-https-scheme.patch

@@ -28,7 +28,7 @@
        return true;
        return true;
 --- a/components/omnibox/browser/autocomplete_input.cc
 --- a/components/omnibox/browser/autocomplete_input.cc
 +++ b/components/omnibox/browser/autocomplete_input.cc
 +++ b/components/omnibox/browser/autocomplete_input.cc
-@@ -237,7 +237,7 @@ metrics::OmniboxInputType AutocompleteIn
+@@ -228,7 +228,7 @@ metrics::OmniboxInputType AutocompleteIn
      // We don't know about this scheme.  It might be that the user typed a
      // We don't know about this scheme.  It might be that the user typed a
      // URL of the form "username:password@foo.com".
      // URL of the form "username:password@foo.com".
      const base::string16 http_scheme_prefix =
      const base::string16 http_scheme_prefix =
@@ -37,7 +37,7 @@
                             url::kStandardSchemeSeparator);
                             url::kStandardSchemeSeparator);
      url::Parsed http_parts;
      url::Parsed http_parts;
      base::string16 http_scheme;
      base::string16 http_scheme;
-@@ -245,7 +245,7 @@ metrics::OmniboxInputType AutocompleteIn
+@@ -236,7 +236,7 @@ metrics::OmniboxInputType AutocompleteIn
      metrics::OmniboxInputType http_type =
      metrics::OmniboxInputType http_type =
          Parse(http_scheme_prefix + text, desired_tld, scheme_classifier,
          Parse(http_scheme_prefix + text, desired_tld, scheme_classifier,
                &http_parts, &http_scheme, &http_canonicalized_url);
                &http_parts, &http_scheme, &http_canonicalized_url);
@@ -46,7 +46,7 @@
                base::UTF16ToUTF8(http_scheme));
                base::UTF16ToUTF8(http_scheme));
  
  
      if ((http_type == metrics::OmniboxInputType::URL) &&
      if ((http_type == metrics::OmniboxInputType::URL) &&
-@@ -575,7 +575,7 @@ bool AutocompleteInput::HasHTTPScheme(co
+@@ -566,7 +566,7 @@ bool AutocompleteInput::HasHTTPScheme(co
    } else if (url::FindAndCompareScheme(utf8_input, kViewSourceScheme, &scheme)) {
    } else if (url::FindAndCompareScheme(utf8_input, kViewSourceScheme, &scheme)) {
      utf8_input.erase(0, scheme.end() + 1);
      utf8_input.erase(0, scheme.end() + 1);
    }
    }
@@ -73,7 +73,7 @@
      ++prefix_end;
      ++prefix_end;
 --- a/components/url_formatter/url_fixer.cc
 --- a/components/url_formatter/url_fixer.cc
 +++ b/components/url_formatter/url_fixer.cc
 +++ b/components/url_formatter/url_fixer.cc
-@@ -452,9 +452,9 @@ std::string SegmentURLInternal(std::stri
+@@ -451,9 +451,9 @@ std::string SegmentURLInternal(std::stri
          (*text)[semicolon] = ';';
          (*text)[semicolon] = ';';
      }
      }
      if (!found_scheme) {
      if (!found_scheme) {

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

@@ -10,7 +10,7 @@
  #include "crypto/secure_hash.h"
  #include "crypto/secure_hash.h"
  
  
  #if defined(OS_WIN)
  #if defined(OS_WIN)
-@@ -532,129 +531,12 @@ DownloadInterruptReason BaseFile::Publis
+@@ -533,129 +532,12 @@ DownloadInterruptReason BaseFile::Publis
  }
  }
  #endif  // defined(OS_ANDROID)
  #endif  // defined(OS_ANDROID)
  
  
@@ -140,7 +140,7 @@
  
  
  void BaseFile::AnnotateWithSourceInformation(
  void BaseFile::AnnotateWithSourceInformation(
      const std::string& client_guid,
      const std::string& client_guid,
-@@ -662,30 +544,8 @@ void BaseFile::AnnotateWithSourceInforma
+@@ -663,30 +545,8 @@ void BaseFile::AnnotateWithSourceInforma
      const GURL& referrer_url,
      const GURL& referrer_url,
      mojo::PendingRemote<quarantine::mojom::Quarantine> remote_quarantine,
      mojo::PendingRemote<quarantine::mojom::Quarantine> remote_quarantine,
      OnAnnotationDoneCallback on_annotation_done_callback) {
      OnAnnotationDoneCallback on_annotation_done_callback) {

+ 1 - 1
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
 --- a/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc
 +++ b/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc
 +++ b/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc
-@@ -3368,16 +3368,14 @@ ScriptValue WebGLRenderingContextBase::g
+@@ -3374,16 +3374,14 @@ ScriptValue WebGLRenderingContextBase::g
        return ScriptValue::CreateNull(script_state->GetIsolate());
        return ScriptValue::CreateNull(script_state->GetIsolate());
      case WebGLDebugRendererInfo::kUnmaskedRendererWebgl:
      case WebGLDebugRendererInfo::kUnmaskedRendererWebgl:
        if (ExtensionEnabled(kWebGLDebugRendererInfoName))
        if (ExtensionEnabled(kWebGLDebugRendererInfoName))

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

@@ -2,7 +2,7 @@
 
 
 --- a/chrome/browser/ui/browser_commands.cc
 --- a/chrome/browser/ui/browser_commands.cc
 +++ b/chrome/browser/ui/browser_commands.cc
 +++ b/chrome/browser/ui/browser_commands.cc
-@@ -413,12 +413,6 @@ int GetContentRestrictions(const Browser
+@@ -387,12 +387,6 @@ int GetContentRestrictions(const Browser
      CoreTabHelper* core_tab_helper =
      CoreTabHelper* core_tab_helper =
          CoreTabHelper::FromWebContents(current_tab);
          CoreTabHelper::FromWebContents(current_tab);
      content_restrictions = core_tab_helper->content_restrictions();
      content_restrictions = core_tab_helper->content_restrictions();
@@ -15,7 +15,7 @@
      if (current_tab->ShowingInterstitialPage())
      if (current_tab->ShowingInterstitialPage())
        content_restrictions |= CONTENT_RESTRICTION_PRINT;
        content_restrictions |= CONTENT_RESTRICTION_PRINT;
    }
    }
-@@ -1111,8 +1105,7 @@ bool CanSavePage(const Browser* browser)
+@@ -1119,8 +1113,7 @@ bool CanSavePage(const Browser* browser)
            prefs::kAllowFileSelectionDialogs)) {
            prefs::kAllowFileSelectionDialogs)) {
      return false;
      return false;
    }
    }

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

@@ -13,7 +13,7 @@
        AddChildView(std::make_unique<views::InkDropContainerView>());
        AddChildView(std::make_unique<views::InkDropContainerView>());
 --- a/chrome/browser/ui/views/tabs/tab_strip.cc
 --- a/chrome/browser/ui/views/tabs/tab_strip.cc
 +++ b/chrome/browser/ui/views/tabs/tab_strip.cc
 +++ b/chrome/browser/ui/views/tabs/tab_strip.cc
-@@ -3422,15 +3422,12 @@ void TabStrip::ButtonPressed(views::Butt
+@@ -3410,15 +3410,12 @@ void TabStrip::ButtonPressed(views::Butt
  
  
        const ui::MouseEvent& mouse = static_cast<const ui::MouseEvent&>(event);
        const ui::MouseEvent& mouse = static_cast<const ui::MouseEvent&>(event);
        if (mouse.IsOnlyMiddleMouseButton()) {
        if (mouse.IsOnlyMiddleMouseButton()) {

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

@@ -2,7 +2,7 @@
 
 
 --- a/content/renderer/render_view_impl.cc
 --- a/content/renderer/render_view_impl.cc
 +++ b/content/renderer/render_view_impl.cc
 +++ b/content/renderer/render_view_impl.cc
-@@ -260,7 +260,7 @@ WindowOpenDisposition RenderViewImpl::Na
+@@ -255,7 +255,7 @@ WindowOpenDisposition RenderViewImpl::Na
      case blink::kWebNavigationPolicyNewWindow:
      case blink::kWebNavigationPolicyNewWindow:
        return WindowOpenDisposition::NEW_WINDOW;
        return WindowOpenDisposition::NEW_WINDOW;
      case blink::kWebNavigationPolicyNewPopup:
      case blink::kWebNavigationPolicyNewPopup:

+ 1 - 1
patches/extra/ungoogled-chromium/remove-disable-setuid-sandbox-as-bad-flag.patch

@@ -2,7 +2,7 @@
 
 
 --- a/chrome/browser/ui/startup/bad_flags_prompt.cc
 --- a/chrome/browser/ui/startup/bad_flags_prompt.cc
 +++ b/chrome/browser/ui/startup/bad_flags_prompt.cc
 +++ b/chrome/browser/ui/startup/bad_flags_prompt.cc
-@@ -59,7 +59,6 @@ static const char* kBadFlags[] = {
+@@ -60,7 +60,6 @@ static const char* kBadFlags[] = {
      // These flags disable sandbox-related security.
      // These flags disable sandbox-related security.
      service_manager::switches::kDisableGpuSandbox,
      service_manager::switches::kDisableGpuSandbox,
      service_manager::switches::kDisableSeccompFilterSandbox,
      service_manager::switches::kDisableSeccompFilterSandbox,

File diff suppressed because it is too large
+ 161 - 109
pruning.list


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