12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- --- a/chrome/browser/browsing_data/chrome_browsing_data_lifetime_manager.cc
- +++ b/chrome/browser/browsing_data/chrome_browsing_data_lifetime_manager.cc
- @@ -26,6 +26,7 @@
- #include "chrome/browser/ui/browser.h"
- #include "chrome/browser/ui/browser_list.h"
- #include "chrome/browser/ui/tabs/tab_strip_model.h"
- +#include "components/browsing_data/core/features.h"
- #include "components/browsing_data/core/pref_names.h"
- #include "components/keep_alive_registry/keep_alive_types.h"
- #include "components/keep_alive_registry/scoped_keep_alive.h"
- @@ -137,6 +138,21 @@ class BrowsingDataRemoverObserver
- std::unique_ptr<ScopedKeepAlive> keep_alive_;
- };
-
- +uint64_t AllOriginTypeMask() {
- + return content::BrowsingDataRemover::ORIGIN_TYPE_PROTECTED_WEB |
- + content::BrowsingDataRemover::ORIGIN_TYPE_UNPROTECTED_WEB;
- +}
- +
- +uint64_t AllRemoveMask() {
- + return content::BrowsingDataRemover::DATA_TYPE_CACHE |
- + content::BrowsingDataRemover::DATA_TYPE_DOWNLOADS |
- + chrome_browsing_data_remover::DATA_TYPE_CONTENT_SETTINGS |
- + chrome_browsing_data_remover::DATA_TYPE_FORM_DATA |
- + chrome_browsing_data_remover::DATA_TYPE_HISTORY |
- + chrome_browsing_data_remover::DATA_TYPE_PASSWORDS |
- + chrome_browsing_data_remover::DATA_TYPE_SITE_DATA;
- +}
- +
- uint64_t GetOriginTypeMask(const base::Value& data_types) {
- uint64_t result = 0;
- for (const auto& data_type : data_types.GetList()) {
- @@ -277,8 +293,9 @@ void ChromeBrowsingDataLifetimeManager::
- bool keep_browser_alive) {
- auto* data_types = profile_->GetPrefs()->GetList(
- browsing_data::prefs::kClearBrowsingDataOnExitList);
- - if (data_types && !data_types->GetList().empty() &&
- - !ProfileSyncServiceFactory::IsSyncAllowed(profile_)) {
- + bool cdoe = base::FeatureList::IsEnabled(browsing_data::features::kClearDataOnExit);
- + if (cdoe || (data_types && !data_types->GetList().empty() &&
- + !ProfileSyncServiceFactory::IsSyncAllowed(profile_))) {
- profile_->GetPrefs()->SetBoolean(
- browsing_data::prefs::kClearBrowsingDataOnExitDeletionPending, true);
- auto* remover = profile_->GetBrowsingDataRemover();
- @@ -294,8 +311,8 @@ void ChromeBrowsingDataLifetimeManager::
- KeepAliveRestartOption::DISABLED)
- : nullptr;
- remover->RemoveAndReply(base::Time(), base::Time::Max(),
- - GetRemoveMask(*data_types),
- - GetOriginTypeMask(*data_types),
- + cdoe ? AllRemoveMask() : GetRemoveMask(*data_types),
- + cdoe ? AllOriginTypeMask() : GetOriginTypeMask(*data_types),
- BrowsingDataRemoverObserver::Create(
- remover, /*filterable_deletion=*/true, profile_,
- std::move(keep_alive)));
- --- a/chrome/browser/browsing_data/chrome_browsing_data_lifetime_manager_factory.cc
- +++ b/chrome/browser/browsing_data/chrome_browsing_data_lifetime_manager_factory.cc
- @@ -48,6 +48,8 @@ ChromeBrowsingDataLifetimeManagerFactory
- KeyedService* ChromeBrowsingDataLifetimeManagerFactory::BuildServiceInstanceFor(
- content::BrowserContext* context) const {
- if (!base::FeatureList::IsEnabled(
- + browsing_data::features::kClearDataOnExit) &&
- + !base::FeatureList::IsEnabled(
- browsing_data::features::kEnableBrowsingDataLifetimeManager))
- return nullptr;
- Profile* profile = Profile::FromBrowserContext(context);
- --- a/chrome/browser/ungoogled_flag_entries.h
- +++ b/chrome/browser/ungoogled_flag_entries.h
- @@ -64,4 +64,8 @@
- "Keep old history",
- "Keep history older than 3 months. ungoogled-chromium flag",
- kOsAll, SINGLE_VALUE_TYPE("keep-old-history")},
- + {"clear-data-on-exit",
- + "Clear data on exit",
- + "Clears all browsing data on exit. ungoogled-chromium flag",
- + kOsDesktop, FEATURE_VALUE_TYPE(browsing_data::features::kClearDataOnExit)},
- #endif // CHROME_BROWSER_UNGOOGLED_FLAG_ENTRIES_H_
- --- a/components/browsing_data/core/features.cc
- +++ b/components/browsing_data/core/features.cc
- @@ -12,5 +12,7 @@ const base::Feature kEnableRemovingAllTh
-
- const base::Feature kEnableBrowsingDataLifetimeManager{
- "BrowsingDataLifetimeManager", base::FEATURE_DISABLED_BY_DEFAULT};
- +
- +const base::Feature kClearDataOnExit{"ClearDataOnExit", base::FEATURE_DISABLED_BY_DEFAULT};
- } // namespace features
- } // namespace browsing_data
- --- a/components/browsing_data/core/features.h
- +++ b/components/browsing_data/core/features.h
- @@ -17,6 +17,7 @@ extern const base::Feature kEnableRemovi
- // defined by the BrowsingDataLifetime policy.
- extern const base::Feature kEnableBrowsingDataLifetimeManager;
-
- +extern const base::Feature kClearDataOnExit;
- } // namespace features
- } // namespace browsing_data
-
|