add-flag-for-search-engine-collection.patch 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. # Add flag to disable automatic search engine collection
  2. --- a/chrome/browser/ungoogled_flag_entries.h
  3. +++ b/chrome/browser/ungoogled_flag_entries.h
  4. @@ -12,4 +12,8 @@
  5. "Handling of extension MIME type requests",
  6. "Used when deciding how to handle a request for a CRX or User Script MIME type. ungoogled-chromium flag.",
  7. kOsAll, MULTI_VALUE_TYPE(kExtensionHandlingChoices)},
  8. + {"disable-search-engine-collection",
  9. + "Disable search engine collection",
  10. + "Prevents search engines from being added automatically. ungoogled-chromium flag.",
  11. + kOsAll, SINGLE_VALUE_TYPE("disable-search-engine-collection")},
  12. #endif // CHROME_BROWSER_UNGOOGLED_FLAG_ENTRIES_H_
  13. --- a/chrome/renderer/chrome_render_frame_observer.cc
  14. +++ b/chrome/renderer/chrome_render_frame_observer.cc
  15. @@ -252,14 +252,16 @@ void ChromeRenderFrameObserver::DidFinis
  16. if (frame->Parent() || frame->IsInFencedFrameTree())
  17. return;
  18. - GURL osdd_url = frame->GetDocument().OpenSearchDescriptionURL();
  19. - if (!osdd_url.is_empty()) {
  20. - mojo::Remote<chrome::mojom::OpenSearchDescriptionDocumentHandler>
  21. - osdd_handler;
  22. - render_frame()->GetBrowserInterfaceBroker()->GetInterface(
  23. - osdd_handler.BindNewPipeAndPassReceiver());
  24. - osdd_handler->PageHasOpenSearchDescriptionDocument(
  25. - frame->GetDocument().Url(), osdd_url);
  26. + if (!base::CommandLine::ForCurrentProcess()->HasSwitch("disable-search-engine-collection")) {
  27. + GURL osdd_url = frame->GetDocument().OpenSearchDescriptionURL();
  28. + if (!osdd_url.is_empty()) {
  29. + mojo::Remote<chrome::mojom::OpenSearchDescriptionDocumentHandler>
  30. + osdd_handler;
  31. + render_frame()->GetBrowserInterfaceBroker()->GetInterface(
  32. + osdd_handler.BindNewPipeAndPassReceiver());
  33. + osdd_handler->PageHasOpenSearchDescriptionDocument(
  34. + frame->GetDocument().Url(), osdd_url);
  35. + }
  36. }
  37. }
  38. --- a/components/search_engines/template_url_service.cc
  39. +++ b/components/search_engines/template_url_service.cc
  40. @@ -9,6 +9,7 @@
  41. #include "base/base64.h"
  42. #include "base/base64url.h"
  43. #include "base/check_is_test.h"
  44. +#include "base/command_line.h"
  45. #include "base/containers/contains.h"
  46. #include "base/debug/crash_logging.h"
  47. #include "base/feature_list.h"
  48. @@ -168,6 +169,12 @@ bool IsCreatedByExtension(const Template
  49. template_url->type() == TemplateURL::OMNIBOX_API_EXTENSION;
  50. }
  51. +bool ShouldAutocollect() {
  52. + const base::CommandLine& command_line =
  53. + *base::CommandLine::ForCurrentProcess();
  54. + return !command_line.HasSwitch("disable-search-engine-collection");
  55. +}
  56. +
  57. } // namespace
  58. // TemplateURLService::LessWithPrefix -----------------------------------------
  59. @@ -256,6 +263,7 @@ TemplateURLService::TemplateURLService(
  60. #endif // BUILDFLAG(IS_CHROMEOS_LACROS)
  61. )
  62. : prefs_(prefs),
  63. + should_autocollect_(true),
  64. search_terms_data_(std::move(search_terms_data)),
  65. web_data_service_(web_data_service),
  66. client_(std::move(client)),
  67. @@ -351,8 +359,8 @@ bool TemplateURLService::CanAddAutogener
  68. // that may interfere with search queries). An easy heuristic for this is
  69. // whether the user has a TemplateURL that has been manually modified (e.g.,
  70. // renamed) connected to the same host.
  71. - return !url.is_valid() || url.host().empty() ||
  72. - CanAddAutogeneratedKeywordForHost(url.host());
  73. + return should_autocollect_ && (!url.is_valid() || url.host().empty() ||
  74. + CanAddAutogeneratedKeywordForHost(url.host()));
  75. }
  76. bool TemplateURLService::IsPrepopulatedOrDefaultProviderByPolicy(
  77. @@ -1661,6 +1669,8 @@ SyncDataMap TemplateURLService::CreateGU
  78. void TemplateURLService::Init(const Initializer* initializers,
  79. int num_initializers) {
  80. + should_autocollect_ = ShouldAutocollect();
  81. +
  82. if (client_)
  83. client_->SetOwner(this);
  84. @@ -1812,6 +1822,9 @@ void TemplateURLService::ChangeToLoadedS
  85. bool TemplateURLService::CanAddAutogeneratedKeywordForHost(
  86. const std::string& host) const {
  87. + if (!should_autocollect_)
  88. + return false;
  89. +
  90. const TemplateURLSet* urls = provider_map_->GetURLsForHost(host);
  91. if (!urls)
  92. return true;
  93. --- a/components/search_engines/template_url_service.h
  94. +++ b/components/search_engines/template_url_service.h
  95. @@ -788,6 +788,8 @@ class TemplateURLService : public WebDat
  96. // ---------- Browser state related members ---------------------------------
  97. raw_ptr<PrefService> prefs_ = nullptr;
  98. + bool should_autocollect_; // Whether search engines should be auto-collected
  99. +
  100. std::unique_ptr<SearchTermsData> search_terms_data_ =
  101. std::make_unique<SearchTermsData>();