add-flag-to-clear-data-on-exit.patch 4.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. --- a/chrome/browser/browsing_data/chrome_browsing_data_lifetime_manager.cc
  2. +++ b/chrome/browser/browsing_data/chrome_browsing_data_lifetime_manager.cc
  3. @@ -26,6 +26,7 @@
  4. #include "chrome/browser/ui/browser.h"
  5. #include "chrome/browser/ui/browser_list.h"
  6. #include "chrome/browser/ui/tabs/tab_strip_model.h"
  7. +#include "components/browsing_data/core/features.h"
  8. #include "components/browsing_data/core/pref_names.h"
  9. #include "components/keep_alive_registry/keep_alive_types.h"
  10. #include "components/keep_alive_registry/scoped_keep_alive.h"
  11. @@ -137,6 +138,21 @@ class BrowsingDataRemoverObserver
  12. std::unique_ptr<ScopedKeepAlive> keep_alive_;
  13. };
  14. +uint64_t AllOriginTypeMask() {
  15. + return content::BrowsingDataRemover::ORIGIN_TYPE_PROTECTED_WEB |
  16. + content::BrowsingDataRemover::ORIGIN_TYPE_UNPROTECTED_WEB;
  17. +}
  18. +
  19. +uint64_t AllRemoveMask() {
  20. + return content::BrowsingDataRemover::DATA_TYPE_CACHE |
  21. + content::BrowsingDataRemover::DATA_TYPE_DOWNLOADS |
  22. + chrome_browsing_data_remover::DATA_TYPE_CONTENT_SETTINGS |
  23. + chrome_browsing_data_remover::DATA_TYPE_FORM_DATA |
  24. + chrome_browsing_data_remover::DATA_TYPE_HISTORY |
  25. + chrome_browsing_data_remover::DATA_TYPE_PASSWORDS |
  26. + chrome_browsing_data_remover::DATA_TYPE_SITE_DATA;
  27. +}
  28. +
  29. uint64_t GetOriginTypeMask(const base::Value& data_types) {
  30. uint64_t result = 0;
  31. for (const auto& data_type : data_types.GetList()) {
  32. @@ -277,8 +293,9 @@ void ChromeBrowsingDataLifetimeManager::
  33. bool keep_browser_alive) {
  34. auto* data_types = profile_->GetPrefs()->GetList(
  35. browsing_data::prefs::kClearBrowsingDataOnExitList);
  36. - if (data_types && !data_types->GetList().empty() &&
  37. - !ProfileSyncServiceFactory::IsSyncAllowed(profile_)) {
  38. + bool cdoe = base::FeatureList::IsEnabled(browsing_data::features::kClearDataOnExit);
  39. + if (cdoe || (data_types && !data_types->GetList().empty() &&
  40. + !ProfileSyncServiceFactory::IsSyncAllowed(profile_))) {
  41. profile_->GetPrefs()->SetBoolean(
  42. browsing_data::prefs::kClearBrowsingDataOnExitDeletionPending, true);
  43. auto* remover = profile_->GetBrowsingDataRemover();
  44. @@ -294,8 +311,8 @@ void ChromeBrowsingDataLifetimeManager::
  45. KeepAliveRestartOption::DISABLED)
  46. : nullptr;
  47. remover->RemoveAndReply(base::Time(), base::Time::Max(),
  48. - GetRemoveMask(*data_types),
  49. - GetOriginTypeMask(*data_types),
  50. + cdoe ? AllRemoveMask() : GetRemoveMask(*data_types),
  51. + cdoe ? AllOriginTypeMask() : GetOriginTypeMask(*data_types),
  52. BrowsingDataRemoverObserver::Create(
  53. remover, /*filterable_deletion=*/true, profile_,
  54. std::move(keep_alive)));
  55. --- a/chrome/browser/browsing_data/chrome_browsing_data_lifetime_manager_factory.cc
  56. +++ b/chrome/browser/browsing_data/chrome_browsing_data_lifetime_manager_factory.cc
  57. @@ -48,6 +48,8 @@ ChromeBrowsingDataLifetimeManagerFactory
  58. KeyedService* ChromeBrowsingDataLifetimeManagerFactory::BuildServiceInstanceFor(
  59. content::BrowserContext* context) const {
  60. if (!base::FeatureList::IsEnabled(
  61. + browsing_data::features::kClearDataOnExit) &&
  62. + !base::FeatureList::IsEnabled(
  63. browsing_data::features::kEnableBrowsingDataLifetimeManager))
  64. return nullptr;
  65. Profile* profile = Profile::FromBrowserContext(context);
  66. --- a/chrome/browser/ungoogled_flag_entries.h
  67. +++ b/chrome/browser/ungoogled_flag_entries.h
  68. @@ -64,4 +64,8 @@
  69. "Keep old history",
  70. "Keep history older than 3 months. ungoogled-chromium flag",
  71. kOsAll, SINGLE_VALUE_TYPE("keep-old-history")},
  72. + {"clear-data-on-exit",
  73. + "Clear data on exit",
  74. + "Clears all browsing data on exit. ungoogled-chromium flag",
  75. + kOsDesktop, FEATURE_VALUE_TYPE(browsing_data::features::kClearDataOnExit)},
  76. #endif // CHROME_BROWSER_UNGOOGLED_FLAG_ENTRIES_H_
  77. --- a/components/browsing_data/core/features.cc
  78. +++ b/components/browsing_data/core/features.cc
  79. @@ -12,5 +12,7 @@ const base::Feature kEnableRemovingAllTh
  80. const base::Feature kEnableBrowsingDataLifetimeManager{
  81. "BrowsingDataLifetimeManager", base::FEATURE_DISABLED_BY_DEFAULT};
  82. +
  83. +const base::Feature kClearDataOnExit{"ClearDataOnExit", base::FEATURE_DISABLED_BY_DEFAULT};
  84. } // namespace features
  85. } // namespace browsing_data
  86. --- a/components/browsing_data/core/features.h
  87. +++ b/components/browsing_data/core/features.h
  88. @@ -17,6 +17,7 @@ extern const base::Feature kEnableRemovi
  89. // defined by the BrowsingDataLifetime policy.
  90. extern const base::Feature kEnableBrowsingDataLifetimeManager;
  91. +extern const base::Feature kClearDataOnExit;
  92. } // namespace features
  93. } // namespace browsing_data