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
 +++ 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(
              String featureName, String paramName, int defaultValue) {
--        if (sTestFeatures != null) return defaultValue;
+-        if (FeatureList.hasTestFeatures()) return defaultValue;
 -        assert isInitialized();
 -        return ChromeFeatureListJni.get().getFieldTrialParamByFeatureAsInt(
 -                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(
              String featureName, String paramName, double defaultValue) {
--        if (sTestFeatures != null) return defaultValue;
+-        if (FeatureList.hasTestFeatures()) return defaultValue;
 -        assert isInitialized();
 -        return ChromeFeatureListJni.get().getFieldTrialParamByFeatureAsDouble(
 -                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(
              String featureName, String paramName, boolean defaultValue) {
--        if (sTestFeatures != null) return defaultValue;
+-        if (FeatureList.hasTestFeatures()) return defaultValue;
 -        assert isInitialized();
 -        return ChromeFeatureListJni.get().getFieldTrialParamByFeatureAsBoolean(
 -                featureName, paramName, defaultValue);
 +        return defaultValue;
      }
  
-     // Alphabetical:
+     /** Alphabetical: */
 --- a/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
  // is specified on the command line, and for testing.
  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
 +++ 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) {
      StartExtractZipFeatures();
    } else if (inspection_type == DownloadFileType::RAR) {
@@ -15,7 +15,7 @@ bug: http://bugs.debian.org/914487
      StartExtractDmgFeatures();
 --- a/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" ]
    }
  
@@ -28,10 +28,10 @@ bug: http://bugs.debian.org/914487
 -    deps = [
 -      ":archive_analyzer_results",
 -      ":download_type_util",
--      ":file_type_policies",
 -      "//base",
 -      "//base:i18n",
 -      "//components/safe_browsing/core:features",
+-      "//components/safe_browsing/core:file_type_policies",
 -      "//third_party/unrar:unrar",
 -    ]
 -
@@ -55,7 +55,7 @@ bug: http://bugs.debian.org/914487
    source_set("disk_image_type_sniffer_mac") {
      sources = [
        "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",
        ":binary_feature_extractor",
        ":download_type_util",

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

@@ -1,6 +1,6 @@
 --- a/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_crx_util.cc",
        "download/download_crx_util.h",
@@ -11,7 +11,7 @@
        "download/download_dir_util.cc",
 --- a/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;
  }
  
@@ -22,7 +22,7 @@
  namespace subresource_filter {
  class RulesetService;
  }
-@@ -106,10 +102,6 @@ class ResourceCoordinatorParts;
+@@ -107,10 +103,6 @@ class ResourceCoordinatorParts;
  class TabManager;
  }
  
@@ -33,7 +33,7 @@
  // NOT THREAD SAFE, call only from the main thread.
  // These functions shouldn't return NULL unless otherwise noted.
  class BrowserProcess {
-@@ -210,14 +202,6 @@ class BrowserProcess {
+@@ -211,14 +203,6 @@ class BrowserProcess {
    // on this platform (or this is a unit test).
    virtual StatusTray* status_tray() = 0;
  
@@ -50,7 +50,7 @@
    virtual subresource_filter::RulesetService*
 --- a/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/profiles/profile_manager.h"
  #include "chrome/browser/resource_coordinator/resource_coordinator_parts.h"
@@ -58,7 +58,7 @@
  #include "chrome/browser/shell_integration.h"
  #include "chrome/browser/site_isolation/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();
    intranet_redirect_detector_.reset();
@@ -67,7 +67,7 @@
    network_time_tracker_.reset();
  #if BUILDFLAG(ENABLE_PLUGINS)
    plugins_resource_service_.reset();
-@@ -957,22 +954,6 @@ StatusTray* BrowserProcessImpl::status_t
+@@ -988,22 +985,6 @@ StatusTray* BrowserProcessImpl::status_t
    return status_tray_.get();
  }
  
@@ -90,7 +90,7 @@
  subresource_filter::RulesetService*
  BrowserProcessImpl::subresource_filter_ruleset_service() {
    DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
-@@ -1225,26 +1206,6 @@ void BrowserProcessImpl::CreateBackgroun
+@@ -1256,26 +1237,6 @@ void BrowserProcessImpl::CreateBackgroun
  #endif
  }
  
@@ -119,7 +119,7 @@
    created_subresource_filter_ruleset_service_ = true;
 --- a/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(
        std::unique_ptr<BackgroundModeManager> manager) override;
    StatusTray* status_tray() override;
@@ -129,7 +129,7 @@
    subresource_filter::RulesetService* subresource_filter_ruleset_service()
        override;
    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_;
  #endif
  
@@ -141,7 +141,7 @@
        subresource_filter_ruleset_service_;
 --- a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc
 +++ b/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc
-@@ -60,7 +60,6 @@
+@@ -62,7 +62,6 @@
  #include "chrome/browser/previews/previews_service.h"
  #include "chrome/browser/previews/previews_service_factory.h"
  #include "chrome/browser/profiles/profile.h"
@@ -149,7 +149,7 @@
  #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_factory.h"
-@@ -651,36 +650,6 @@ void ChromeBrowsingDataRemoverDelegate::
+@@ -649,36 +648,6 @@ void ChromeBrowsingDataRemoverDelegate::
          ContentSettingsType::CLIENT_HINTS, base::Time(), base::Time::Max(),
          website_settings_filter);
  
@@ -188,7 +188,7 @@
  
 --- a/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;
  }
  
@@ -219,7 +219,7 @@
  #if defined(OS_ANDROID)
  float GetDeviceScaleAdjustment() {
    static const float kMinFSM = 1.05f;
-@@ -1337,7 +1313,6 @@ void ChromeContentBrowserClient::PostAft
+@@ -1296,7 +1272,6 @@ void ChromeContentBrowserClient::PostAft
    InitNetworkContextsParentDirectory();
  
    DCHECK_CURRENTLY_ON(BrowserThread::UI);
@@ -227,16 +227,16 @@
  }
  
  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
        // 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()) {
 +          true) {
          command_line->AppendSwitch(
              switches::kDisableClientSidePhishingDetection);
        }
-@@ -3973,7 +3948,7 @@ ChromeContentBrowserClient::CreateThrott
+@@ -3956,7 +3931,7 @@ ChromeContentBrowserClient::CreateThrott
        base::BindRepeating(&MaybeTriggerSecurityInterstitialShownEvent));
    throttles.push_back(std::make_unique<SSLErrorNavigationThrottle>(
        handle,
@@ -245,7 +245,7 @@
        base::BindOnce(&HandleSSLErrorWrapper), base::BindOnce(&IsInHostedApp)));
  
    throttles.push_back(std::make_unique<LoginNavigationThrottle>(handle));
-@@ -3994,12 +3969,6 @@ ChromeContentBrowserClient::CreateThrott
+@@ -3977,12 +3952,6 @@ ChromeContentBrowserClient::CreateThrott
        GooglePasswordManagerNavigationThrottle::MaybeCreateThrottleFor(handle));
  #endif
  
@@ -260,7 +260,7 @@
    MaybeAddThrottle(&throttles,
 --- a/chrome/browser/component_updater/file_type_policies_component_installer.cc
 +++ b/chrome/browser/component_updater/file_type_policies_component_installer.cc
-@@ -38,20 +38,6 @@ const uint8_t kFileTypePoliciesPublicKey
+@@ -39,20 +39,6 @@ const uint8_t kFileTypePoliciesPublicKey
  const char kFileTypePoliciesManifestName[] = "File Type Policies";
  
  void LoadFileTypesFromDisk(const base::FilePath& pb_path) {
@@ -283,7 +283,7 @@
  }  // namespace
 --- a/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) {
    download_manager_ = dm;
@@ -297,7 +297,7 @@
  }
  
  #if defined(OS_ANDROID)
-@@ -638,16 +631,6 @@ void ChromeDownloadManagerDelegate::Choo
+@@ -639,16 +632,6 @@ void ChromeDownloadManagerDelegate::Choo
  
  void ChromeDownloadManagerDelegate::SanitizeSavePackageResourceName(
      base::FilePath* filename) {
@@ -316,7 +316,7 @@
  void ChromeDownloadManagerDelegate::SanitizeDownloadParameters(
 --- a/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
    // there was a user action associated with the download.
@@ -325,7 +325,7 @@
  
    // Whether the download is currently being revived.
    bool is_being_revived_;
-@@ -115,7 +115,7 @@ DownloadItemModelData::DownloadItemModel
+@@ -116,7 +116,7 @@ DownloadItemModelData::DownloadItemModel
      : should_show_in_shelf_(true),
        was_ui_notified_(false),
        should_prefer_opening_in_browser_(false),
@@ -334,7 +334,7 @@
        is_being_revived_(false) {}
  
  } // namespace
-@@ -397,13 +397,13 @@ void DownloadItemModel::SetShouldPreferO
+@@ -400,13 +400,13 @@ void DownloadItemModel::SetShouldPreferO
    data->should_prefer_opening_in_browser_ = preference;
  }
  
@@ -351,7 +351,7 @@
    DownloadItemModelData* data = DownloadItemModelData::GetOrCreate(download_);
    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
        // exclude extensions.
        return download_->CanOpenDownload() &&
@@ -392,18 +392,21 @@
    extension.erase(0, 1);
 --- a/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())
      return DownloadFileType::NOT_DANGEROUS;
  
@@ -444,17 +447,17 @@
  #include "chrome/browser/download/download_file_icon_extractor.h"
  #include "chrome/browser/download/download_open_prompt.h"
  #include "chrome/browser/download/download_prefs.h"
-@@ -1327,9 +1326,6 @@ DownloadsAcceptDangerFunction::Downloads
+@@ -1330,9 +1329,6 @@ DownloadsAcceptDangerFunction::Downloads
  
  DownloadsAcceptDangerFunction::~DownloadsAcceptDangerFunction() {}
  
 -DownloadsAcceptDangerFunction::OnPromptCreatedCallback*
 -    DownloadsAcceptDangerFunction::on_prompt_created_ = NULL;
 -
- bool DownloadsAcceptDangerFunction::RunAsync() {
+ ExtensionFunction::ResponseAction DownloadsAcceptDangerFunction::Run() {
    std::unique_ptr<downloads::AcceptDanger::Params> params(
        downloads::AcceptDanger::Params::Create(*args_));
-@@ -1367,40 +1363,7 @@ void DownloadsAcceptDangerFunction::Prom
+@@ -1370,43 +1366,7 @@ void DownloadsAcceptDangerFunction::Prom
      return;
    }
    RecordApiFunctions(DOWNLOADS_FUNCTION_ACCEPT_DANGER);
@@ -477,10 +480,13 @@
 -  DCHECK_CURRENTLY_ON(BrowserThread::UI);
 -  DownloadItem* download_item = GetDownload(
 -      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,
--            download_extension_errors::kNotInProgress, &error_))
+-            download_extension_errors::kNotInProgress, &error)) {
+-    Respond(Error(error));
 -    return;
+-  }
 -  switch (action) {
 -    case DownloadDangerPrompt::ACCEPT:
 -      download_item->ValidateDangerousDownload();
@@ -491,7 +497,7 @@
 -    case DownloadDangerPrompt::DISMISS:
 -      break;
 -  }
--  SendResponse(error_.empty());
+-  Respond(NoArguments());
 +  download_item->ValidateDangerousDownload();
  }
  
@@ -503,12 +509,12 @@
  #include "base/scoped_observer.h"
  #include "base/time/time.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 "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:
 -  typedef base::Callback<void(DownloadDangerPrompt*)> OnPromptCreatedCallback;
 -  static void OnPromptCreatedForTesting(
@@ -518,7 +524,7 @@
 -
    DECLARE_EXTENSION_FUNCTION("downloads.acceptDanger", DOWNLOADS_ACCEPTDANGER)
    DownloadsAcceptDangerFunction();
-   bool RunAsync() override;
+   ResponseAction Run() override;
  
   protected:
    ~DownloadsAcceptDangerFunction() override;
@@ -574,7 +580,7 @@
            referrer_entries)));
 --- a/chrome/browser/extensions/api/webstore_private/webstore_private_api.cc
 +++ b/chrome/browser/extensions/api/webstore_private/webstore_private_api.cc
-@@ -732,51 +732,9 @@ WebstorePrivateGetReferrerChainFunction:
+@@ -998,51 +998,9 @@ WebstorePrivateGetReferrerChainFunction:
  
  ExtensionFunction::ResponseAction
  WebstorePrivateGetReferrerChainFunction::Run() {
@@ -704,7 +710,7 @@
    // SimpleURLLoader -> (owned loader, extension id).
 --- a/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(
        std::make_unique<HttpsEngagementMetricsProvider>());
  
@@ -716,7 +722,7 @@
        std::make_unique<UpgradeMetricsProvider>());
 --- a/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;
    if (!report.Serialize(&serialized_report))
      return;
@@ -738,7 +744,7 @@
    ClientHintsFactory::GetInstance();
 --- a/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/push_messaging/push_messaging_service_factory.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/signin/identity_manager_factory.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>
        pref_validation_delegate;
@@ -766,7 +772,7 @@
        CreatePrefService(pref_registry_, CreateExtensionPrefStore(this, false),
 --- a/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
    // tests. Previously this code would depend on content::ResourceDispatcherHost
    // but that's gone, so do a similar hack for now.
@@ -913,7 +919,7 @@
  void ChromeSubresourceFilterClient::OnReloadRequested() {
 --- a/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/devtools_process_observer.cc",
        "views/devtools_process_observer.h",
@@ -923,9 +929,9 @@
        "views/download/download_item_view.cc",
 --- a/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);
 -  safe_browsing::SafeBrowsingNavigationObserver::MaybeCreateForWebContents(
 -      web_contents);
@@ -934,14 +940,14 @@
    ReputationWebContentsObserver::CreateForWebContents(web_contents);
    SearchEngineTabHelper::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(
        web_contents, std::make_unique<ChromePDFWebContentsHelperClient>());
    SadTabHelper::CreateForWebContents(web_contents);
 -  safe_browsing::SafeBrowsingTabObserver::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
 +++ b/chrome/browser/ui/webui/downloads/downloads_dom_handler.cc
 @@ -23,7 +23,6 @@
@@ -952,7 +958,7 @@
  #include "chrome/browser/download/download_history.h"
  #include "chrome/browser/download/download_item_model.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);
@@ -975,7 +981,7 @@
      DownloadItemModel item_model(download);
      if (!item_model.ShouldShowInShelf() ||
          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/memory/weak_ptr.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 "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_|.
    content::DownloadManager* GetOriginalNotifierManager() const;
  
@@ -1051,19 +1057,17 @@
    bool IsDeletingHistoryAllowed();
 --- a/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_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::SB_THREAT_TYPE_URL_MALWARE;
 -  GURL request_url("http://example.com");
 -  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()) {
 -      request_url = GURL(url_param);
 -    }
@@ -1072,9 +1076,7 @@
 -  // TODO(mattm): add flag to change main_frame_url or add dedicated flag to
 -  // test subresource interstitials.
 -  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") {
 -      threat_type = safe_browsing::SB_THREAT_TYPE_URL_MALWARE;
 -    } else if (type_param == "phishing") {
@@ -1108,13 +1110,14 @@
 -  // creates a SafeBrowsingBlockingPage but does not actually show a real
 -  // interstitial. Instead it extracts the html and displays it manually, so the
 -  // 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::SB_THREAT_TYPE_URL_MALWARE;
 -  GURL request_url("http://example.com");
@@ -1159,40 +1162,47 @@
 -  // creates a SafeBrowsingBlockingPage but does not actually show a real
 -  // interstitial. Instead it extracts the html and displays it manually, so the
 -  // 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)
- CaptivePortalBlockingPage* CreateCaptivePortalBlockingPage(
+ std::unique_ptr<CaptivePortalBlockingPage> CreateCaptivePortalBlockingPage(
      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") {
-     interstitial_delegate.reset(CreateLegacyTLSBlockingPage(web_contents));
+     interstitial_delegate = CreateLegacyTLSBlockingPage(web_contents);
 -  } else if (path_without_query == "/safebrowsing") {
--    interstitial_delegate.reset(CreateSafeBrowsingBlockingPage(web_contents));
+-    interstitial_delegate = CreateSafeBrowsingBlockingPage(web_contents);
    } else if (path_without_query == "/clock") {
-     interstitial_delegate.reset(CreateBadClockBlockingPage(web_contents));
+     interstitial_delegate = CreateBadClockBlockingPage(web_contents);
    } 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") {
--    TestSafeBrowsingBlockingPageQuiet* blocking_page =
+-    std::unique_ptr<TestSafeBrowsingBlockingPageQuiet> blocking_page =
 -        CreateSafeBrowsingQuietBlockingPage(web_contents);
--    interstitial_delegate.reset(blocking_page);
 -    html = blocking_page->GetHTML();
+-    interstitial_delegate = std::move(blocking_page);
  #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);
++  } 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
 +++ 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/pdf/renderer/pepper_pdf_host.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
-@@ -724,21 +710,6 @@ void WebstoreInstaller::UpdateDownloadPr
+@@ -722,21 +708,6 @@ void WebstoreInstaller::UpdateDownloadPr
  void WebstoreInstaller::StartCrxInstaller(const DownloadItem& download) {
    DCHECK_CURRENTLY_ON(BrowserThread::UI);
    DCHECK(!crx_installer_.get());

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

@@ -1,6 +1,6 @@
 --- a/net/dns/host_resolver_manager.cc
 +++ b/net/dns/host_resolver_manager.cc
-@@ -128,10 +128,10 @@ const unsigned kMinimumTTLSeconds = kCac
+@@ -130,10 +130,10 @@ const unsigned kMinimumTTLSeconds = kCac
  // cached.
  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
 +++ b/chrome/browser/spellchecker/spellcheck_hunspell_dictionary.cc
-@@ -162,7 +162,6 @@ void SpellcheckHunspellDictionary::Retry
+@@ -161,7 +161,6 @@ void SpellcheckHunspellDictionary::Retry
      return;
    }
    browser_context_ = browser_context;
@@ -8,7 +8,7 @@
  }
  
  bool SpellcheckHunspellDictionary::IsReady() const {
-@@ -400,9 +399,6 @@ void SpellcheckHunspellDictionary::Initi
+@@ -399,9 +398,6 @@ void SpellcheckHunspellDictionary::Initi
      }
  
      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():
 --- a/chrome/browser/chromeos/customization/customization_document.cc
 +++ b/chrome/browser/chromeos/customization/customization_document.cc
-@@ -172,7 +172,7 @@ std::string ReadFileInBackground(const b
+@@ -173,7 +173,7 @@ std::string ReadFileInBackground(const b
  
  // Template URL where to fetch OEM services customization manifest from.
  const char ServicesCustomizationDocument::kManifestUrl[] =
@@ -95,9 +95,9 @@ by default.
  // creates and uses to publish OEM default apps to the extensions system.
 --- a/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;
 -  scopes.emplace_back("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(
 --- a/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;
  
@@ -146,7 +146,7 @@ by default.
  const int kDownloadsLowSpaceWarningHelpNumber = 1061547;
 --- a/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";
  constexpr const char* kGoogleGstaticAppIds[] = {
@@ -189,10 +189,10 @@ by default.
 +    "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
 +++ 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': '{}',
    'siteSpecificEnhancements': true,
    'siteSpecificScriptBase':
@@ -249,7 +249,7 @@ by default.
  DownloadFeedbackFactory* DownloadFeedback::factory_ = nullptr;
 --- a/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());
  
    static const char kDownloadServerUrl[] =
@@ -260,7 +260,7 @@ by default.
                base::ToLowerASCII(bdict_file));
 --- a/chrome/browser/supervised_user/supervised_user_service.cc
 +++ b/chrome/browser/supervised_user/supervised_user_service.cc
-@@ -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.
  const char kBlacklistURL[] =
@@ -271,7 +271,7 @@ by default.
  
 --- a/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 {
  
@@ -282,7 +282,7 @@ by default.
      "----**--yradnuoBgoLtrapitluMklaTelgooG--**----";
 --- a/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.
  constexpr char kDownloadChromeUrl[] =
@@ -293,7 +293,7 @@ by default.
  // The maximum number of ignored bubble we track in the NumLaterPerReinstall
 --- a/chrome/browser/ui/webui/ntp/ntp_resource_cache.cc
 +++ b/chrome/browser/ui/webui/ntp/ntp_resource_cache.cc
-@@ -78,17 +78,17 @@ namespace {
+@@ -79,17 +79,17 @@ namespace {
  // The URL for the the Learn More page shown on incognito new tab.
  const char kLearnMoreIncognitoUrl[] =
  #if defined(OS_CHROMEOS)
@@ -331,7 +331,7 @@ by default.
  
 --- a/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";
  
  const char kSyncGoogleDashboardURL[] =
@@ -340,15 +340,15 @@ by default.
  
  const char kSyncLearnMoreURL[] =
      "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 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
 +++ b/chrome/installer/setup/google_chrome_behaviors.cc
 @@ -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 {
  // while we do have functions to deal with uint64_t's.
  uint64_t g_crash_loop_before_time = 0;
@@ -460,7 +460,7 @@ by default.
  
 --- a/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 {
  
  // Scopes needed by the OAuth2 access tokens.
@@ -474,7 +474,7 @@ by default.
  // Minimum token validity when sending to GCM groups server.
 --- a/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 {
  
  const char kHistoryOAuthScope[] =
@@ -491,17 +491,6 @@ by default.
  
  const char kHistoryAudioHistoryUrl[] =
      "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
 +++ b/components/metrics/url_constants.cc
 @@ -7,12 +7,12 @@
@@ -550,7 +539,7 @@ by default.
  
 --- a/components/policy/resources/policy_templates.json
 +++ b/components/policy/resources/policy_templates.json
-@@ -3937,7 +3937,7 @@
+@@ -4043,7 +4043,7 @@
          'dynamic_refresh': True,
          'per_profile': True,
        },
@@ -559,7 +548,7 @@ by default.
        'id': 34,
        'caption': '''Configure the list of force-installed apps and extensions''',
        'tags': ['full-admin-access'],
-@@ -8269,7 +8269,7 @@
+@@ -8496,7 +8496,7 @@
        'features': {
          'dynamic_refresh': True,
        },
@@ -588,7 +577,7 @@ by default.
 -    "https://safesearch.googleapis.com/v1:classify";
 +    "trk:238:https://safesearch.googleapis.com/v1:classify";
  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
 +++ b/components/search_engines/prepopulated_engines.json
@@ -646,9 +635,9 @@ by default.
  
 --- a/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())
 -    return GURL("https://www.google.com/");
 +    return GURL("trk:183:https://www.google.com/");
@@ -679,7 +668,7 @@ by default.
    extensions::ExtensionsClient* client = extensions::ExtensionsClient::Get();
 --- a/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";
  
  // OAuth scopes.
@@ -707,6 +696,11 @@ by default.
 -    "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.
  const char kKidsSupervisionSetupChildOAuth2Scope[] =
 -    "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).
  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
 +++ b/google_apis/gcm/engine/gservices_settings.cc
 @@ -29,18 +29,18 @@ const char kRegistrationURLKey[] = "gcm_
@@ -785,7 +798,7 @@ by default.
  
 --- a/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->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 =
 --- a/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
  bool IncidentReportingService::IsEnabledForProfile(Profile* profile) {
 -  if (profile->IsOffTheRecord())
 -    return false;
--  if (!profile->GetPrefs()->GetBoolean(prefs::kSafeBrowsingEnabled))
+-  if (!IsSafeBrowsingEnabled(*profile->GetPrefs()))
 -    return false;
 -  return IsExtendedReportingEnabled(*profile->GetPrefs());
 +  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
 +++ b/chrome/browser/safe_browsing/safe_browsing_service.cc
-@@ -229,7 +229,7 @@ SafeBrowsingUIManager* SafeBrowsingServi
+@@ -249,7 +249,7 @@ SafeBrowsingUIManager* SafeBrowsingServi
  }
  
  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
 +++ 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);
    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.
--  if (is_extended_reporting) {
+-  if (is_extended_reporting || is_enhanced_reporting) {
 -    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 {
 -    request->set_model_filename(model_loader_standard_->name());
 -    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
 +++ 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) &&
        (ProfileIOData::IsHandledProtocol(scheme) ||
         base::LowerCaseEqualsASCII(scheme, content::kViewSourceScheme) ||
@@ -35,7 +35,7 @@
      GURL rewritten_tab_url = tab_url;
 --- a/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
    // URL qualified by the view-source or blob prefix.
    if ((base::LowerCaseEqualsASCII(scheme_str, kViewSourceScheme) ||
@@ -45,7 +45,7 @@
        (static_cast<int>(text.length()) > after_scheme_and_colon)) {
      // Obtain the URL prefixed by view-source or blob and parse it.
      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) {
    std::string utf8_input(base::UTF16ToUTF8(input));
    url::Component scheme;
@@ -58,7 +58,7 @@
    return url::FindAndCompareScheme(utf8_input, url::kHttpScheme, nullptr);
 --- a/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));
 --- a/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)
    RegisterWebSafeScheme(url::kFtpScheme);
    RegisterWebSafeScheme(url::kDataScheme);
@@ -81,7 +81,7 @@
    // TODO(nick): https://crbug.com/651534 blob: and filesystem: schemes embed
 --- a/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/static_http_user_agent_settings.cc",
        "url_request/static_http_user_agent_settings.h",
@@ -188,15 +188,15 @@
      return NetLogURLRequestConstructorParams(url, priority_,
 --- a/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/ssl/ssl_config_service_defaults.h"
  #include "net/url_request/static_http_user_agent_settings.h"
 +#include "net/url_request/trk_protocol_handler.h"
  #include "net/url_request/url_request_context.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();
  
@@ -228,7 +228,7 @@
  
 --- a/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.
    std::vector<std::string> secure_schemes = {
@@ -237,7 +237,7 @@
    };
  
    // 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,
        kJavaScriptScheme,
        kDataScheme,

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

@@ -2,29 +2,28 @@
 
 --- a/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;
    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::Unretained(this), file_contents, upload_mode,
 -                     upload_url_, std::move(metadata)));
-+  if (!progress_callback_.is_null()) {
-+    base::PostTask(
-+      FROM_HERE, {content::BrowserThread::UI},
 +      base::Bind(progress_callback_, 1, 1));
 +  }
 +  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."));
 +  }
  }
  
  void TraceCrashServiceUploader::DoCompressOnBackgroundThread(
-@@ -306,6 +311,7 @@ bool TraceCrashServiceUploader::Compress
+@@ -307,6 +312,7 @@ bool TraceCrashServiceUploader::Compress
  void TraceCrashServiceUploader::CreateAndStartURLLoader(
      const std::string& upload_url,
      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
 +++ 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"
  
    inputs = [
@@ -29,7 +29,7 @@
    ]
  
    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
    # them in a response file.
@@ -71,7 +71,7 @@
  def quote_and_wrap_text(text, width=79, prefix='  "', suffix='"'):
 --- a/components/domain_reliability/google_configs.cc
 +++ b/components/domain_reliability/google_configs.cc
-@@ -13,575 +13,10 @@
+@@ -10,564 +10,6 @@
  
  namespace domain_reliability {
  
@@ -318,7 +318,7 @@
 -    {"l.google.com", true, true, true},
 -
 -    // 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},
 -
 -    // Origins with subdomains and without same-origin collectors.
@@ -603,7 +603,7 @@
 -const char* const kGoogleOriginSpecificCollectorPathString =
 -    "/domainreliability/upload";
 -
--static std::unique_ptr<DomainReliabilityConfig> CreateGoogleConfig(
+-std::unique_ptr<const DomainReliabilityConfig> CreateGoogleConfig(
 -    const GoogleConfigParams& params,
 -    bool is_www) {
 -  if (is_www)
@@ -612,8 +612,7 @@
 -  std::string hostname = (is_www ? "www." : "") + std::string(params.hostname);
 -  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->include_subdomains = include_subdomains;
 -  config->collectors.clear();
@@ -623,9 +622,9 @@
 -    config->collectors.push_back(
 -        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->failure_sample_rate = 1.00;
 -  config->path_prefixes.clear();
@@ -634,19 +633,47 @@
 -
 -}  // 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)
--      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
 +++ b/components/domain_reliability/uploader.cc
 @@ -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
 +++ 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_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" />
@@ -13,14 +13,14 @@
        <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
 +++ 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.js", IDR_INLINE_LOGIN_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
 +++ b/google_apis/gaia/gaia_auth_fetcher.cc
 @@ -293,65 +293,6 @@ void GaiaAuthFetcher::CreateAndStartGaia

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

@@ -10,7 +10,7 @@
    std::vector<GURL> endpoints;
    endpoints.push_back(gservices_settings_.GetMCSMainEndpoint());
    GURL fallback_endpoint = gservices_settings_.GetMCSFallbackEndpoint();
-@@ -670,27 +671,6 @@ void GCMClientImpl::RemoveHeartbeatInter
+@@ -672,27 +673,6 @@ void GCMClientImpl::RemoveHeartbeatInter
  
  void GCMClientImpl::StartCheckin() {
    DCHECK(io_task_runner_->RunsTasksInCurrentSequence());
@@ -28,8 +28,8 @@
 -                                           chrome_build_proto);
 -  checkin_request_.reset(new CheckinRequest(
 -      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_));
 -  // Taking a snapshot of the accounts count here, as there might be an asynch
 -  // 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
 +++ 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"
  
 -#if BUILDFLAG(ENABLE_EXTENSIONS)
@@ -13,16 +13,10 @@
  namespace {
  
  #if defined(OS_ANDROID)
-@@ -42,43 +38,6 @@ void GoogleURLLoaderThrottle::DetachFrom
+@@ -40,37 +36,6 @@ void GoogleURLLoaderThrottle::DetachFrom
  void GoogleURLLoaderThrottle::WillStartRequest(
      network::ResourceRequest* request,
      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) {
 -    GURL new_url;
 -    safe_search_util::ForceGoogleSafeSearch(request->url, &new_url);
@@ -57,13 +51,10 @@
  }
  
  void GoogleURLLoaderThrottle::WillRedirectRequest(
-@@ -87,39 +46,6 @@ void GoogleURLLoaderThrottle::WillRedire
+@@ -79,36 +44,6 @@ void GoogleURLLoaderThrottle::WillRedire
      bool* /* defer */,
      std::vector<std::string>* to_be_removed_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
 -  // service is enabled. The non-network service path handles this in
 -  // ChromeNetworkDelegate.
@@ -97,7 +88,7 @@
  }
  
  #if BUILDFLAG(ENABLE_EXTENSIONS)
-@@ -127,17 +53,5 @@ void GoogleURLLoaderThrottle::WillProces
+@@ -116,17 +51,5 @@ void GoogleURLLoaderThrottle::WillProces
      const GURL& response_url,
      network::mojom::URLResponseHead* response_head,
      bool* defer) {
@@ -117,7 +108,7 @@
  #endif
 --- a/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 g_ignore_port_numbers = false;
@@ -133,13 +124,13 @@
 -}
 -
 -// 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,
 -                     base::StringPiece domain_in_lower_case,
 -                     SubdomainPermission subdomain_permission,
--                     base::StringPiece* tld) {
+-                     const base::flat_set<base::StringPiece>& allowed_tlds) {
 -  // Fast path to avoid searching the registry set.
 -  if (host.find(domain_in_lower_case) == base::StringPiece::npos)
 -    return false;
@@ -155,21 +146,23 @@
 -  base::StringPiece host_minus_tld =
 -      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))
 -    return true;
 -
 -  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,
 -                          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);
 -}
 -
@@ -188,17 +181,19 @@
 -  if (base_url.is_valid() && (canonical_host == base_url.host_piece()))
 -    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>>
 -      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
@@ -221,7 +216,7 @@
  }  // namespace
  
  // 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/";
  
  bool HasGoogleSearchQueryParam(base::StringPiece str) {
@@ -242,7 +237,7 @@
  }
  
  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,
                               const std::string& application_locale) {
@@ -367,8 +362,7 @@
                          SubdomainPermission subdomain_permission,
                          PortPermission port_permission) {
 -  return IsValidURL(url, port_permission) &&
--         IsValidHostName(url.host_piece(), "youtube", subdomain_permission,
--                         nullptr);
+-         IsCanonicalHostYoutubeHostname(url.host_piece(), subdomain_permission);
 +  return false;
  }
  
@@ -487,7 +481,7 @@
  bool TemplateURLRef::ExtractSearchTermsFromURL(
 --- a/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 {
  
@@ -498,10 +492,12 @@
  // 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
  // reordered.
-@@ -87,26 +83,7 @@ class VariationsHeaderHelper {
+@@ -89,28 +85,7 @@ class VariationsHeaderHelper {
    }
  
    bool AppendHeaderIfNeeded(const GURL& url, InIncognito incognito) {
+-    AppendOmniboxOnDeviceSuggestionsHeaderIfNeeded(url, resource_request_);
+-
 -    // Note the criteria for attaching client experiment headers:
 -    // 1. We only transmit to Google owned domains which can evaluate
 -    // experiments.
@@ -526,7 +522,7 @@
    }
  
   private:
-@@ -149,8 +126,6 @@ void RemoveVariationsHeaderIfNeeded(
+@@ -153,8 +128,6 @@ void RemoveVariationsHeaderIfNeeded(
      const net::RedirectInfo& redirect_info,
      const network::mojom::URLResponseHead& response_head,
      std::vector<std::string>* to_be_removed_headers) {
@@ -535,31 +531,39 @@
  }
  
  std::unique_ptr<network::SimpleURLLoader>
-@@ -180,11 +155,11 @@ CreateSimpleURLLoaderWithVariationsHeade
+@@ -184,14 +157,11 @@ CreateSimpleURLLoaderWithVariationsHeade
  }
  
  bool IsVariationsHeader(const std::string& header_name) {
--  return header_name == kClientDataHeader;
+-  return header_name == kClientDataHeader ||
+-         header_name == kOmniboxOnDeviceSuggestionsHeader;
 +  return false;
  }
  
  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 false;
  }
  
  bool ShouldAppendVariationsHeaderForTesting(const GURL& url) {
-@@ -193,7 +168,6 @@ bool ShouldAppendVariationsHeaderForTest
+@@ -200,12 +170,6 @@ bool ShouldAppendVariationsHeaderForTest
  
  void UpdateCorsExemptHeaderForVariations(
      network::mojom::NetworkContextParams* params) {
 -  params->cors_exempt_header_list.push_back(kClientDataHeader);
+-
+-  if (base::FeatureList::IsEnabled(kReportOmniboxOnDeviceSuggestionsHeader)) {
+-    params->cors_exempt_header_list.push_back(
+-        kOmniboxOnDeviceSuggestionsHeader);
+-  }
  }
  
  }  // namespace variations
 --- a/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) {

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

@@ -7,7 +7,7 @@
 
 --- a/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 += [
@@ -15,7 +15,7 @@
        "//third_party/widevine/cdm",
      ]
  
-@@ -1109,7 +1108,6 @@ if (is_win) {
+@@ -1092,7 +1091,6 @@ if (is_win) {
        ":keystone_registration_framework",
        ":swiftshader_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
 +++ 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());
 -  GURL url(std::string(kHighResAvatarDownloadUrlPrefix) +
 -           profiles::GetDefaultAvatarIconFileNameAtIndex(icon_index));

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

@@ -2,7 +2,7 @@
 
 --- a/chrome/browser/ui/chrome_pages.cc
 +++ b/chrome/browser/ui/chrome_pages.cc
-@@ -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)
  void ShowBrowserSignin(Browser* browser,
                         signin_metrics::AccessPoint access_point) {
@@ -21,8 +21,7 @@
 -              ->HasPrimaryAccount()
 -          ? profiles::BUBBLE_VIEW_MODE_GAIA_REAUTH
 -          : 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,

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

@@ -14,7 +14,7 @@
  TranslateAgent::~TranslateAgent() {}
 --- a/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);
    }
  

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

@@ -23,7 +23,7 @@
  }  // namespace
 --- a/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
  const size_t ModelLoader::kMaxModelSizeBytes = 150 * 1024;
  const int ModelLoader::kClientModelFetchIntervalMs = 3600 * 1000;
@@ -32,7 +32,7 @@
  const char ModelLoader::kClientModelNamePattern[] =
      "client_model_v5%s_variation_%d.pb";
  const char ModelLoader::kClientModelFinchExperiment[] =
-@@ -88,7 +86,7 @@ ModelLoader::ModelLoader(
+@@ -115,7 +113,7 @@ ModelLoader::ModelLoader(
      scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory,
      bool is_extended_reporting)
      : name_(FillInModelName(is_extended_reporting, GetModelNumber())),
@@ -41,7 +41,7 @@
        update_renderers_callback_(update_renderers_callback),
        url_loader_factory_(url_loader_factory),
        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,
      const std::string& model_name)
      : name_(model_name),
@@ -62,7 +62,7 @@
    // Enum used to keep stats about why we fail to get the client model. This
 --- a/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.
    InternetHandle connection_handle = InternetConnectA(inet_handle,
@@ -71,7 +71,7 @@
        INTERNET_FLAG_NO_CACHE_WRITE, 0);
    if (!connection_handle)
      return PING_FAILURE;
-@@ -383,7 +383,7 @@ FinancialPing::PingResponse FinancialPin
+@@ -384,7 +384,7 @@ FinancialPing::PingResponse FinancialPin
    return PING_SUCCESSFUL;
  #else
    std::string url =

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

@@ -72,7 +72,7 @@
  };
 --- a/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 kReinstallInstallSource[] = "reinstall";
  
@@ -102,7 +102,7 @@
  
  bool ShouldRetryRequest(const network::SimpleURLLoader* loader) {
    DCHECK(loader);
-@@ -308,12 +299,6 @@ void ExtensionDownloader::DoStartAllPend
+@@ -304,12 +295,6 @@ void ExtensionDownloader::DoStartAllPend
    ReportStats();
    url_stats_ = URLStats();
  
@@ -115,7 +115,7 @@
    fetches_preparing_.clear();
  }
  
-@@ -347,11 +332,6 @@ bool ExtensionDownloader::AddExtensionDa
+@@ -343,11 +328,6 @@ bool ExtensionDownloader::AddExtensionDa
      return false;
    }
  
@@ -127,7 +127,7 @@
    // Skip extensions with empty IDs.
    if (id.empty()) {
      DLOG(WARNING) << "Found extension with empty ID";
-@@ -360,12 +340,10 @@ bool ExtensionDownloader::AddExtensionDa
+@@ -356,12 +336,10 @@ bool ExtensionDownloader::AddExtensionDa
      return false;
    }
  
@@ -142,7 +142,7 @@
    } else {
      url_stats_.other_url_count++;
    }
-@@ -709,20 +687,6 @@ void ExtensionDownloader::HandleManifest
+@@ -708,20 +686,6 @@ void ExtensionDownloader::HandleManifest
          fetch_data->request_ids()));
    }
  
@@ -163,7 +163,7 @@
    NotifyExtensionsDownloadStageChanged(
        no_updates, ExtensionDownloaderDelegate::Stage::FINISHED);
    NotifyExtensionsDownloadFailed(
-@@ -1218,11 +1182,7 @@ bool ExtensionDownloader::IterateFetchCr
+@@ -1217,11 +1181,7 @@ bool ExtensionDownloader::IterateFetchCr
    // fetch.
    switch (fetch->credentials) {
      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
 +++ 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_signin_button_view.cc",
          "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
 +++ 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) {
    DCHECK_CURRENTLY_ON(BrowserThread::IO);
  
@@ -24,17 +24,24 @@
  base::Optional<std::string>
 --- a/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/offline_item_utils.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/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/generated_resources.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 download::DownloadItem;
  using MixedContentStatus = download::DownloadItem::MixedContentStatus;
@@ -42,7 +49,7 @@
  
  namespace {
  
-@@ -293,14 +289,7 @@ bool DownloadItemModel::IsMixedContent()
+@@ -296,14 +291,7 @@ bool DownloadItemModel::IsMixedContent()
  }
  
  bool DownloadItemModel::ShouldAllowDownloadFeedback() const {
@@ -59,15 +66,15 @@
  bool DownloadItemModel::ShouldRemoveFromShelfWhenComplete() const {
 --- 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
-@@ -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_request_manager.h"
  #include "chrome/browser/profiles/profile.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 "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));
  }
  
@@ -77,10 +84,10 @@
 -    std::unique_ptr<content::NativeFileSystemWriteItem> item,
 -    safe_browsing::CheckDownloadCallback callback) {
 -  DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
--
+-  // Download Protection Service is not supported on Android.
+-#if BUILDFLAG(FULL_SAFE_BROWSING)
 -  safe_browsing::SafeBrowsingService* sb_service =
 -      g_browser_process->safe_browsing_service();
--
 -  if (!sb_service || !sb_service->download_protection_service() ||
 -      !sb_service->download_protection_service()->enabled()) {
 -    std::move(callback).Run(safe_browsing::DownloadCheckResult::UNKNOWN);
@@ -106,6 +113,7 @@
 -
 -  sb_service->download_protection_service()->CheckNativeFileSystemWrite(
 -      std::move(item), std::move(callback));
+-#endif
 -}
 -
 -ChromeNativeFileSystemPermissionContext::AfterWriteCheckResult
@@ -127,6 +135,7 @@
 -    case Result::POTENTIALLY_UNWANTED:
 -    case Result::BLOCKED_PASSWORD_PROTECTED:
 -    case Result::BLOCKED_TOO_LARGE:
+-    case Result::BLOCKED_UNSUPPORTED_FILE_TYPE:
 -      return ChromeNativeFileSystemPermissionContext::AfterWriteCheckResult::
 -          kBlock;
 -
@@ -147,7 +156,7 @@
  }  // namespace
  
  ChromeNativeFileSystemPermissionContext::Grants::Grants() = default;
-@@ -363,29 +289,6 @@ void ChromeNativeFileSystemPermissionCon
+@@ -383,29 +307,6 @@ void ChromeNativeFileSystemPermissionCon
                       frame_id, std::move(callback)));
  }
  
@@ -179,7 +188,7 @@
          const url::Origin& origin,
 --- 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
-@@ -58,11 +58,6 @@ class ChromeNativeFileSystemPermissionCo
+@@ -59,11 +59,6 @@ class ChromeNativeFileSystemPermissionCo
        int process_id,
        int frame_id,
        base::OnceCallback<void(PermissionStatus)> callback) override;
@@ -188,9 +197,9 @@
 -      int process_id,
 -      int frame_id,
 -      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
 +++ b/chrome/browser/password_manager/chrome_password_manager_client.cc
 @@ -26,7 +26,6 @@
@@ -214,7 +223,7 @@
  
  #if defined(OS_ANDROID)
  #include "chrome/browser/android/tab_android.h"
-@@ -558,6 +557,7 @@ bool ChromePasswordManagerClient::IsIsol
+@@ -606,6 +605,7 @@ bool ChromePasswordManagerClient::IsIsol
    return SiteIsolationPolicy::IsIsolationForPasswordSitesEnabled();
  }
  
@@ -222,7 +231,7 @@
  #if defined(ON_FOCUS_PING_ENABLED) || \
      defined(SYNC_PASSWORD_REUSE_DETECTION_ENABLED)
  safe_browsing::PasswordProtectionService*
-@@ -580,6 +580,7 @@ void ChromePasswordManagerClient::CheckS
+@@ -628,6 +628,7 @@ void ChromePasswordManagerClient::CheckS
    }
  }
  #endif  // defined(ON_FOCUS_PING_ENABLED)
@@ -230,9 +239,9 @@
  
  #if defined(SYNC_PASSWORD_REUSE_DETECTION_ENABLED)
  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) {
 -  safe_browsing::PasswordProtectionService* pps =
 -      GetPasswordProtectionService();
@@ -241,7 +250,7 @@
 -
 -  pps->MaybeStartProtectedPasswordEntryRequest(
 -      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)
  
@@ -255,7 +264,7 @@
  }
  #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)) {
      OnPaste();
    } else {
@@ -265,7 +274,7 @@
    }
  #endif  // defined(OS_ANDROID)
  }
-@@ -854,9 +844,11 @@ void ChromePasswordManagerClient::OnPast
+@@ -907,9 +897,11 @@ void ChromePasswordManagerClient::OnPast
    base::string16 text;
    clipboard->ReadText(ui::ClipboardBuffer::kCopyPaste, &text);
    was_on_paste_called_ = true;
@@ -280,7 +289,7 @@
      const gfx::RectF& bounds) {
 --- a/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;
  #endif  // defined(OS_ANDROID)
  
@@ -291,18 +300,20 @@
    safe_browsing::PasswordProtectionService* GetPasswordProtectionService()
 --- a/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_state.h"
+ #include "chrome/browser/profiles/profile.h"
 -#include "chrome/browser/safe_browsing/safe_browsing_service.h"
  #include "chrome/common/chrome_features.h"
+ #include "chrome/common/pref_names.h"
  #include "components/permissions/permission_request.h"
+ #include "components/prefs/pref_service.h"
 -#include "components/safe_browsing/core/db/database_manager.h"
  
  namespace {
  
-@@ -111,50 +109,14 @@ void ContextualNotificationPermissionUiS
+@@ -114,50 +112,14 @@ void ContextualNotificationPermissionUiS
      Notify(UiToUse::kNormalUi, base::nullopt);
      return;
    }
@@ -355,7 +366,7 @@
    DCHECK(safe_browsing_request_);
 --- 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
-@@ -37,35 +37,8 @@ void HandleOnPerformDrop(
+@@ -78,33 +78,8 @@ void HandleOnPerformDrop(
      content::WebContents* web_contents,
      const content::DropData& drop_data,
      content::WebContentsViewDelegate::DropCompletionCallback callback) {
@@ -379,25 +390,23 @@
 -  if (!drop_data.file_contents.empty())
 -    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(...)) ..."
 +  std::move(callback).Run(
-+    content::WebContentsViewDelegate::DropCompletionResult::kContinue);
++      content::WebContentsViewDelegate::DropCompletionResult::kContinue);
  }
 --- a/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))));
  
@@ -405,7 +414,7 @@
    int delay_delivery = g_browser_process->local_state()->GetInteger(
        prefs::kDelayDeliveryUntilVerdict);
    if (delay_delivery != safe_browsing::DELAY_DOWNLOADS &&
-@@ -1315,6 +1316,9 @@ void DownloadItemView::ShowDeepScanningD
+@@ -1317,6 +1318,9 @@ void DownloadItemView::ShowDeepScanningD
    } else {
      open_button_->SetEnabled(false);
    }
@@ -415,19 +424,19 @@
  
    file_name_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() {
 +#if BUILDFLAG(FULL_SAFE_BROWSING)
    model_->CompleteSafeBrowsingScan();
 +#endif
-   should_open_while_scanning_ = true;
+   model_->SetOpenWhenComplete(true);
  }
  
 --- 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
-@@ -183,10 +183,7 @@ PasswordReuseModalWarningDialog::Passwor
+@@ -184,10 +184,7 @@ PasswordReuseModalWarningDialog::Passwor
          placeholder_offsets);
    } else {
      views::Label* message_body_label = CreateMessageBodyLabel(
@@ -441,7 +450,7 @@
    modal_construction_start_time_ = base::TimeTicks::Now();
 --- a/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/prefs/pref_service.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/known_interception_disclosure_ui.h"
  #include "components/security_interstitials/content/urls.h"
-@@ -423,8 +421,6 @@ WebUIFactoryFunction GetWebUIFactoryFunc
+@@ -444,8 +442,6 @@ WebUIFactoryFunction GetWebUIFactoryFunc
      return &NewWebUI<PredictorsUI>;
    if (url.host_piece() == chrome::kChromeUIQuotaInternalsHost)
      return &NewWebUI<QuotaInternalsUI>;
@@ -472,7 +481,7 @@
  }
 --- a/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.
    virtual std::string GetPageLanguage() const;
  
@@ -493,7 +502,7 @@
    // 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
 +++ 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,
                                   handle_state,
                                   /*is_directory=*/false),
@@ -503,7 +512,7 @@
    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.
    state_ = State::kClosePending;
  
@@ -528,9 +537,10 @@
 -  if (!file_writer || hash_result != base::File::FILE_OK) {
 -    // If writer was deleted, or calculating the hash failed try deleting the
 -    // 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(
 -        NativeFileSystemStatus::kOperationAborted,
 -        "Failed to perform Safe Browsing check."));
@@ -608,5 +618,5 @@
 -      int frame_id,
 -      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
 +++ 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/web_audio/web_audio_module.js",
    "$resources_out_dir/workspace_diff/workspace_diff_module.js",
 -]
 -
 -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/emulated_devices/emulated_devices_module.js",
  ]
@@ -22,32 +22,22 @@
  generated_test_modules = [
    "$resources_out_dir/accessibility_test_runner/accessibility_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_inspector_images",
                                       ":copy_lighthouse_locale_files",
 -                                     ":copy_wasm_deps",
                                       ":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/sdk/wasm_source_map/pkg/wasm_source_map_bg.wasm",
        ]
  
    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
 +++ b/third_party/devtools-frontend/src/front_end/devtools_app.json
 @@ -10,10 +10,10 @@
@@ -60,6 +50,16 @@
      { "name": "elements" },
 -    { "name": "emulated_devices" , "type": "remote" },
 +    { "name": "emulated_devices" },
+     { "name": "issues" },
      { "name": "har_importer" },
      { "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
 +++ 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/re2",
-     "//third_party/smhasher:cityhash",
 +    "//components/ungoogled:switches",
      "//third_party/webrtc_overrides:webrtc_component",
      "//third_party/widevine/cdm:buildflags",
      "//third_party/zlib",
 --- a/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/forcedark/forcedark_switches.h"
  #include "third_party/leveldatabase/leveldb_features.h"
@@ -27,7 +27,7 @@
  #include "ui/accessibility/accessibility_features.h"
  #include "ui/accessibility/accessibility_switches.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 in hostnames instead of Unicode when displaying Internationalized Domain Names (IDNs).",
       kOsAll, SINGLE_VALUE_TYPE("force-punycode-hostnames")},
@@ -44,7 +44,7 @@
       SINGLE_VALUE_TYPE(switches::kIgnoreGpuBlacklist)},
 --- a/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/re2",
      "//third_party/sqlite",
@@ -54,7 +54,7 @@
      "//third_party/zlib/google:zip",
 --- a/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/user_agent/user_agent_metadata.h"
  #include "third_party/blink/public/public_buildflags.h"
@@ -62,18 +62,18 @@
  #include "third_party/skia/include/core/SkBitmap.h"
  #include "ui/accessibility/accessibility_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::kEnableWebGLImageChromium,
      switches::kFileUrlPathAlias,
 +    switches::kFingerprintingClientRectsNoise,
 +    switches::kFingerprintingCanvasMeasureTextNoise,
-     switches::kForceDarkMode,
      switches::kForceDeviceScaleFactor,
      switches::kForceDisableWebRtcApmInAudioService,
+     switches::kForceDisplayColorProfile,
 --- a/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/strings",
      "//third_party/ced",
@@ -91,7 +91,7 @@
  #include "ui/accessibility/accessibility_features.h"
  #include "ui/base/ui_base_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},
        {wrf::EnableAllowSyncXHRInPageDismissal,
         switches::kAllowSyncXHRInPageDismissal, true},
@@ -104,7 +104,7 @@
        {wrf::EnableHTMLImports, switches::kWebComponentsV0Enabled, true},
 --- a/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 EnableGetDisplayMedia(bool);
    BLINK_PLATFORM_EXPORT static void EnableAllowSyncXHRInPageDismissal(bool);
@@ -123,7 +123,7 @@
  #include "base/time/time.h"
  #include "cc/input/overscroll_behavior.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));
  }
  
@@ -138,7 +138,7 @@
  SelectorQueryCache& Document::GetSelectorQueryCache() {
    if (!selector_query_cache_)
      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()
    AssertLayoutTreeUpdated(*this);
  #endif
@@ -156,7 +156,7 @@
  void Document::UpdateActiveStyle() {
 --- a/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;
    }
  
@@ -167,7 +167,7 @@
    String visibilityState() const;
    bool IsPageVisible() 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_;
  
@@ -179,7 +179,7 @@
    HeapVector<Member<ScriptElementBase>> current_script_stack_;
 --- a/third_party/blink/renderer/core/dom/element.cc
 +++ b/third_party/blink/renderer/core/dom/element.cc
-@@ -1948,6 +1948,11 @@ DOMRectList* Element::getClientRects() {
+@@ -1985,6 +1985,11 @@ DOMRectList* Element::getClientRects() {
    DCHECK(element_layout_object);
    GetDocument().AdjustFloatQuadsForScrollAndAbsoluteZoom(
        quads, *element_layout_object);
@@ -191,7 +191,7 @@
    return MakeGarbageCollected<DOMRectList>(quads);
  }
  
-@@ -1965,6 +1970,9 @@ DOMRect* Element::getBoundingClientRect(
+@@ -2002,6 +2007,9 @@ DOMRect* Element::getBoundingClientRect(
    DCHECK(element_layout_object);
    GetDocument().AdjustFloatRectForScrollAndAbsoluteZoom(result,
                                                          *element_layout_object);
@@ -203,7 +203,7 @@
  
 --- a/third_party/blink/renderer/core/dom/range.cc
 +++ b/third_party/blink/renderer/core/dom/range.cc
-@@ -1631,11 +1631,21 @@ DOMRectList* Range::getClientRects() con
+@@ -1614,11 +1614,21 @@ DOMRectList* Range::getClientRects() con
    Vector<FloatQuad> quads;
    GetBorderAndTextQuads(quads);
  
@@ -266,7 +266,7 @@
                const TextDirection&,
 --- a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.cc
 +++ b/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.cc
-@@ -822,9 +822,15 @@ TextMetrics* CanvasRenderingContext2D::m
+@@ -815,9 +815,15 @@ TextMetrics* CanvasRenderingContext2D::m
    else
      direction = ToTextDirection(GetState().GetDirection(), canvas());
  
@@ -285,18 +285,18 @@
  void CanvasRenderingContext2D::DrawTextInternal(
 --- a/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/libyuv",
 +    "//components/ungoogled:switches",
      "//third_party/webrtc_overrides:webrtc_component",
      "//third_party/zlib/google:compression_utils",
-     "//ui/base:base",
+     "//ui/base/cursor",
 --- a/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) {
@@ -310,7 +310,7 @@
  }  // namespace blink
 --- a/third_party/blink/renderer/platform/runtime_enabled_features.json5
 +++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5
-@@ -738,6 +738,12 @@
+@@ -747,6 +747,12 @@
        name: "FileSystem",
        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
 +++ 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",
       "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)},
@@ -36,17 +36,17 @@ approach to change color components.
       SINGLE_VALUE_TYPE(switches::kIgnoreGpuBlacklist)},
 --- a/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::kFingerprintingClientRectsNoise,
      switches::kFingerprintingCanvasMeasureTextNoise,
 +    switches::kFingerprintingCanvasImageDataNoise,
-     switches::kForceDarkMode,
      switches::kForceDeviceScaleFactor,
      switches::kForceDisableWebRtcApmInAudioService,
+     switches::kForceDisplayColorProfile,
 --- a/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},
        {wrf::EnableFingerprintingCanvasMeasureTextNoise,
         switches::kFingerprintingCanvasMeasureTextNoise, true},
@@ -57,7 +57,7 @@ approach to change color components.
        {wrf::EnableHTMLImports, switches::kWebComponentsV0Enabled, true},
 --- a/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 EnableFingerprintingClientRectsNoise(bool);
    BLINK_PLATFORM_EXPORT static void EnableFingerprintingCanvasMeasureTextNoise(bool);
@@ -67,7 +67,7 @@ approach to change color components.
    BLINK_PLATFORM_EXPORT static void EnableHTMLImports(bool);
 --- a/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",
    ]
  
@@ -80,7 +80,7 @@ approach to change color components.
      ":blink_platform_public_deps",
 --- a/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);
  }
  
@@ -302,7 +302,7 @@ approach to change color components.
  }  // namespace blink
 --- a/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) {}
  
@@ -313,7 +313,7 @@ approach to change color components.
    // Methods overridden by all sub-classes
 --- a/third_party/blink/renderer/platform/runtime_enabled_features.json5
 +++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5
-@@ -744,6 +744,9 @@
+@@ -753,6 +753,9 @@
      {
        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
 +++ 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/network_hints/common:mojo_bindings",
      "//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",
 --- a/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},
  };
  
@@ -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
  // Estimator (NQE) are also exposed via flags.
  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,
       FEATURE_VALUE_TYPE(autofill::features::kAutofillUpstream)},
  #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/task/post_task.h"
  #include "base/task/task_traits.h"
-@@ -94,6 +96,7 @@
+@@ -98,6 +100,7 @@
  #include "components/metrics/metrics_service.h"
  #include "components/metrics_services_manager/metrics_services_manager.h"
  #include "components/metrics_services_manager/metrics_services_manager_client.h"
@@ -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/optimization_guide/optimization_guide_features.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 "mojo/public/cpp/bindings/pending_receiver.h"
+ #include "net/log/net_log.h"
 +#include "net/socket/client_socket_pool_manager.h"
  #include "ppapi/buildflags/buildflags.h"
  #include "printing/buildflags/buildflags.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));
  #endif
  
@@ -103,9 +103,9 @@ with limited CPU/memory resources and it is disabled by default.
  
 --- a/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 kMaxConnectionsPerHostDescription[] =
@@ -116,7 +116,7 @@ with limited CPU/memory resources and it is disabled by default.
  const char kMediaRouterCastAllowAllIPsDescription[] =
 --- a/chrome/browser/flag_descriptions.h
 +++ b/chrome/browser/flag_descriptions.h
-@@ -694,6 +694,9 @@ extern const char kMarkHttpAsWarningAndD
+@@ -678,6 +678,9 @@ extern const char kMediaHistoryDescripti
  extern const char kMediaInspectorLoggingName[];
  extern const char kMediaInspectorLoggingDescription[];
  

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

@@ -12,13 +12,3 @@ author: Michael Gilbert <mgilbert@debian.org>
      deps +=
          [ "//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
 +++ b/chrome/browser/printing/cloud_print/privet_notifications.cc
-@@ -209,8 +209,7 @@ void PrivetNotificationService::DeviceCa
+@@ -211,8 +211,7 @@ void PrivetNotificationService::DeviceCa
  // static
  bool PrivetNotificationService::IsEnabled() {
    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
 +++ 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",
 --- a/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",
 -    "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
 +++ 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::FromWebContents(web_contents);

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

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

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

@@ -12,7 +12,7 @@
  void BackgroundModeManager::RegisterProfile(Profile* profile) {
 --- a/chrome/browser/chrome_content_browser_client.cc
 +++ b/chrome/browser/chrome_content_browser_client.cc
-@@ -1191,7 +1191,7 @@ void ChromeContentBrowserClient::Registe
+@@ -1152,7 +1152,7 @@ void ChromeContentBrowserClient::Registe
  void ChromeContentBrowserClient::RegisterProfilePrefs(
      user_prefs::PrefRegistrySyncable* registry) {
    registry->RegisterBooleanPref(prefs::kDisable3DAPIs, false);
@@ -45,7 +45,7 @@
  enum class NetworkPredictionStatus {
 --- a/chrome/browser/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) {
    registry->RegisterBooleanPref(
        prefs::kSearchSuggestEnabled,
@@ -56,7 +56,7 @@
    registry->RegisterStringPref(
 --- a/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>
        </div>
        <div slot="footer">
@@ -67,7 +67,7 @@
      </cr-dialog>
 --- a/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,
                                  false);
  #endif
@@ -181,7 +181,7 @@
        prefs::kCookieControlsMode,
 --- a/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(
      user_prefs::PrefRegistrySyncable* registry) {
    registry->RegisterBooleanPref(
@@ -205,20 +205,3 @@
        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
 +++ b/chrome/browser/search/search.cc
-@@ -182,26 +182,7 @@ struct NewTabURLDetails {
+@@ -183,26 +183,7 @@ struct NewTabURLDetails {
                               : chrome::kChromeSearchLocalNtpUrl);
  #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
 +++ 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
    // on preferences.
    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
 +++ 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-vcf",
      "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
 +++ 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
    // 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,
             WebsiteSettingsInfo::SYNCABLE,
             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
 +++ 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");
    CFPropertyListRef plist = CFPreferencesCopyAppValue(checkInterval, app);
    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
 +++ 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",
       "Forces tabs to be stacked in the tab strip. Otherwise, they follow default behavior.",
       kOsAll, SINGLE_VALUE_TYPE("enable-stacked-tab-strip")},
@@ -15,7 +15,7 @@
       SINGLE_VALUE_TYPE(switches::kIgnoreGpuBlacklist)},
 --- a/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())
      return;
  
@@ -27,7 +27,7 @@
    if (!command_line.HasSwitch(switches::kDisableClientSidePhishingDetection))
      SetClientSidePhishingDetection(true);
  #endif
-@@ -367,14 +368,16 @@ void ChromeRenderFrameObserver::DidFinis
+@@ -365,14 +366,16 @@ void ChromeRenderFrameObserver::DidFinis
    if (frame->Parent())
      return;
  
@@ -54,14 +54,21 @@
  
 --- a/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
  
    // Owned by ChromeContentRendererClient and outlive us.
    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
 +++ b/components/search_engines/template_url_service.cc
 @@ -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
 +++ 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;
  #endif  // USE_AURA || OS_ANDROID
  
@@ -20,7 +20,7 @@
  const FeatureEntry::Choice kTouchEventFeatureDetectionChoices[] = {
      {flags_ui::kGenericExperimentChoiceDisabled, "", ""},
      {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.
  const FeatureEntry kFeatureEntries[] = {
@@ -80,7 +80,7 @@
  bool IsExtensionDownload(const download::DownloadItem& download_item);
 --- a/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;
  
  #if BUILDFLAG(ENABLE_EXTENSIONS)
@@ -107,7 +107,7 @@
  #include "base/logging.h"
  #include "base/metrics/histogram_macros.h"
  #include "base/stl_util.h"
-@@ -191,6 +192,13 @@ bool ExtensionManagement::IsInstallation
+@@ -203,6 +204,13 @@ bool ExtensionManagement::IsInstallation
  bool ExtensionManagement::IsOffstoreInstallAllowed(
      const GURL& url,
      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
 
---- 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 @@
  #include <utility>
  
@@ -10,7 +10,7 @@
  #include "base/i18n/rtl.h"
  #include "base/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 =
        &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
 +++ b/chrome/browser/about_flags.cc
-@@ -1553,6 +1553,10 @@ const FeatureEntry kFeatureEntries[] = {
+@@ -1774,6 +1774,10 @@ const FeatureEntry kFeatureEntries[] = {
       "Disable search engine collection",
       "Prevents search engines from being added automatically.",
       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
 +++ 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;
  
 -  if (HasPendingUncleanExit(browser->profile()))
@@ -12,4 +12,4 @@
 +      !command_line_.HasSwitch("hide-crashed-bubble"))
      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
 +++ b/chrome/browser/about_flags.cc
-@@ -270,6 +270,16 @@ const FeatureEntry::Choice kShowAvatarBu
+@@ -272,6 +272,16 @@ const FeatureEntry::Choice kShowAvatarBu
       "never"}
  };
  
@@ -17,7 +17,7 @@
  const FeatureEntry::Choice kTouchEventFeatureDetectionChoices[] = {
      {flags_ui::kGenericExperimentChoiceDisabled, "", ""},
      {flags_ui::kGenericExperimentChoiceEnabled,
-@@ -3711,6 +3721,11 @@ const FeatureEntry kFeatureEntries[] = {
+@@ -3922,6 +3932,11 @@ const FeatureEntry kFeatureEntries[] = {
       FEATURE_VALUE_TYPE(
           autofill::features::kAutofillEnableAccountWalletStorage)},
  
@@ -38,8 +38,8 @@
 +#include "base/command_line.h"
  #include "base/metrics/user_metrics.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;
  }
  
@@ -58,7 +58,7 @@
  }  // namespace
  
  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,
                                   views::Widget* widget)
@@ -69,7 +69,7 @@
  
  BrowserRootView::~BrowserRootView() {
    // 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) {

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

@@ -1,6 +1,6 @@
 --- a/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"},
  };
  
@@ -20,7 +20,7 @@
  const FeatureEntry::Choice kTouchEventFeatureDetectionChoices[] = {
      {flags_ui::kGenericExperimentChoiceDisabled, "", ""},
      {flags_ui::kGenericExperimentChoiceEnabled,
-@@ -3812,6 +3825,11 @@ const FeatureEntry kFeatureEntries[] = {
+@@ -4023,6 +4036,11 @@ const FeatureEntry kFeatureEntries[] = {
       FEATURE_VALUE_TYPE(arc::kEnableUnifiedAudioFocusFeature)},
  #endif  // defined(OS_CHROMEOS)
  
@@ -34,7 +34,7 @@
       flag_descriptions::kUseAngleDescription, kOsWin,
 --- a/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>
        toolbar_account_icon_container;
@@ -48,18 +48,15 @@
 +                                    browser_->profile()->IsGuestSession();
 +
    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 (!base::FeatureList::IsEnabled(chromeos::features::kAvatarToolbarButton)) {
      // ChromeOS only badges Incognito and Guest icons in the browser window.
 -    show_avatar_toolbar_button = browser_->profile()->IsOffTheRecord() ||
 -                                 browser_->profile()->IsGuestSession();
 +    show_avatar_toolbar_button = in_incognito_or_guest_mode;
- #endif
    }
- 
+ #endif
++
 +  if (flag_value == "always")
 +    show_avatar_toolbar_button = true;
 +  else if (flag_value == "incognito-and-guest")
@@ -67,6 +64,6 @@
 +  else if (flag_value == "never")
 +    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
 +++ 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.
  const FeatureEntry kFeatureEntries[] = {
@@ -15,7 +15,7 @@
       SINGLE_VALUE_TYPE(switches::kIgnoreGpuBlacklist)},
 --- a/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 {
  
  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
 +++ b/net/dns/host_resolver_manager.cc
-@@ -29,6 +29,7 @@
+@@ -30,6 +30,7 @@
  #include "base/bind_helpers.h"
  #include "base/callback.h"
  #include "base/callback_helpers.h"
 +#include "base/command_line.h"
  #include "base/compiler_specific.h"
+ #include "base/containers/flat_set.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.
  const int kIPv6ProbePeriodMs = 1000;
  
@@ -23,9 +23,9 @@
  enum DnsResolveStatus {
    RESOLVE_STATUS_DNS_SUCCESS = 0,
    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(
 -        IsGloballyReachable(IPAddress(kIPv6ProbeAddress), net_log));
 +        !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
 +++ b/chrome/browser/resources/settings/search_engines_page/search_engines_browser_proxy.js
-@@ -24,6 +24,7 @@
+@@ -28,6 +28,7 @@
   *            modelIndex: number,
   *            name: string,
   *            url: string,
@@ -86,7 +86,7 @@
   *            urlLocked: boolean}}
   * @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} keyword
       * @param {string} queryUrl
@@ -98,7 +98,7 @@
  
      /** @return {!Promise<!SearchEnginesInfo>} */
      getSearchEnginesList() {}
-@@ -95,11 +98,12 @@ cr.define('settings', function() {
+@@ -99,11 +102,12 @@ cr.define('settings', function() {
      }
  
      /** @override */
@@ -435,7 +435,7 @@
    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.
          base::string16 new_keyword = UniquifyKeyword(*existing_turl, false);
          ResetTemplateURL(existing_turl, existing_turl->short_name(),

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

@@ -28,7 +28,7 @@
        return true;
 --- a/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
      // URL of the form "username:password@foo.com".
      const base::string16 http_scheme_prefix =
@@ -37,7 +37,7 @@
                             url::kStandardSchemeSeparator);
      url::Parsed http_parts;
      base::string16 http_scheme;
-@@ -245,7 +245,7 @@ metrics::OmniboxInputType AutocompleteIn
+@@ -236,7 +236,7 @@ metrics::OmniboxInputType AutocompleteIn
      metrics::OmniboxInputType http_type =
          Parse(http_scheme_prefix + text, desired_tld, scheme_classifier,
                &http_parts, &http_scheme, &http_canonicalized_url);
@@ -46,7 +46,7 @@
                base::UTF16ToUTF8(http_scheme));
  
      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)) {
      utf8_input.erase(0, scheme.end() + 1);
    }
@@ -73,7 +73,7 @@
      ++prefix_end;
 --- a/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] = ';';
      }
      if (!found_scheme) {

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

@@ -10,7 +10,7 @@
  #include "crypto/secure_hash.h"
  
  #if defined(OS_WIN)
-@@ -532,129 +531,12 @@ DownloadInterruptReason BaseFile::Publis
+@@ -533,129 +532,12 @@ DownloadInterruptReason BaseFile::Publis
  }
  #endif  // defined(OS_ANDROID)
  
@@ -140,7 +140,7 @@
  
  void BaseFile::AnnotateWithSourceInformation(
      const std::string& client_guid,
-@@ -662,30 +544,8 @@ void BaseFile::AnnotateWithSourceInforma
+@@ -663,30 +545,8 @@ void BaseFile::AnnotateWithSourceInforma
      const GURL& referrer_url,
      mojo::PendingRemote<quarantine::mojom::Quarantine> remote_quarantine,
      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
 +++ 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());
      case WebGLDebugRendererInfo::kUnmaskedRendererWebgl:
        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
 +++ 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::FromWebContents(current_tab);
      content_restrictions = core_tab_helper->content_restrictions();
@@ -15,7 +15,7 @@
      if (current_tab->ShowingInterstitialPage())
        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)) {
      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>());
 --- a/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);
        if (mouse.IsOnlyMiddleMouseButton()) {

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

@@ -2,7 +2,7 @@
 
 --- a/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:
        return WindowOpenDisposition::NEW_WINDOW;
      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
 +++ 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.
      service_manager::switches::kDisableGpuSandbox,
      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