| Index: chrome/browser/browsing_data/browsing_data_remover.cc
|
| diff --git a/chrome/browser/browsing_data/browsing_data_remover.cc b/chrome/browser/browsing_data/browsing_data_remover.cc
|
| index dfe79007d07a9f558ced49a8c391092807e5d11f..3b3bbf21e2aa57dc4a498d638ef9148750772039 100644
|
| --- a/chrome/browser/browsing_data/browsing_data_remover.cc
|
| +++ b/chrome/browser/browsing_data/browsing_data_remover.cc
|
| @@ -19,14 +19,14 @@
|
| #include "chrome/browser/browsing_data/browsing_data_helper.h"
|
| #include "chrome/browser/browsing_data/browsing_data_remover_delegate.h"
|
| #include "chrome/browser/browsing_data/registrable_domain_filter_builder.h"
|
| -#include "chrome/browser/download/download_prefs.h"
|
| -#include "chrome/browser/io_thread.h"
|
| #include "chrome/browser/profiles/profile.h"
|
| #include "chrome/common/pref_names.h"
|
| #include "components/browsing_data/content/storage_partition_http_cache_data_remover.h"
|
| #include "components/prefs/pref_service.h"
|
| #include "components/web_cache/browser/web_cache_manager.h"
|
| +#include "content/public/browser/browser_context.h"
|
| #include "content/public/browser/browser_thread.h"
|
| +#include "content/public/browser/content_browser_client.h"
|
| #include "content/public/browser/download_manager.h"
|
| #include "content/public/browser/notification_service.h"
|
| #include "content/public/browser/plugin_data_remover.h"
|
| @@ -157,47 +157,14 @@ void BrowsingDataRemover::SubTask::CompletionCallback() {
|
| forward_callback_.Run();
|
| }
|
|
|
| -bool BrowsingDataRemover::TimeRange::operator==(
|
| - const BrowsingDataRemover::TimeRange& other) const {
|
| - return begin == other.begin && end == other.end;
|
| -}
|
| -
|
| -// static
|
| -BrowsingDataRemover::TimeRange BrowsingDataRemover::Unbounded() {
|
| - return TimeRange(base::Time(), base::Time::Max());
|
| -}
|
| -
|
| -// static
|
| -BrowsingDataRemover::TimeRange BrowsingDataRemover::Period(
|
| - browsing_data::TimePeriod period) {
|
| - switch (period) {
|
| - case browsing_data::LAST_HOUR:
|
| - content::RecordAction(UserMetricsAction("ClearBrowsingData_LastHour"));
|
| - break;
|
| - case browsing_data::LAST_DAY:
|
| - content::RecordAction(UserMetricsAction("ClearBrowsingData_LastDay"));
|
| - break;
|
| - case browsing_data::LAST_WEEK:
|
| - content::RecordAction(UserMetricsAction("ClearBrowsingData_LastWeek"));
|
| - break;
|
| - case browsing_data::FOUR_WEEKS:
|
| - content::RecordAction(UserMetricsAction("ClearBrowsingData_LastMonth"));
|
| - break;
|
| - case browsing_data::ALL_TIME:
|
| - content::RecordAction(UserMetricsAction("ClearBrowsingData_Everything"));
|
| - break;
|
| - }
|
| - return TimeRange(CalculateBeginDeleteTime(period), base::Time::Max());
|
| -}
|
| -
|
| BrowsingDataRemover::BrowsingDataRemover(
|
| content::BrowserContext* browser_context)
|
| - : profile_(Profile::FromBrowserContext(browser_context)),
|
| + : browser_context_(browser_context),
|
| remove_mask_(-1),
|
| origin_type_mask_(-1),
|
| is_removing_(false),
|
| #if BUILDFLAG(ENABLE_PLUGINS)
|
| - flash_lso_helper_(BrowsingDataFlashLSOHelper::Create(profile_)),
|
| + flash_lso_helper_(BrowsingDataFlashLSOHelper::Create(browser_context_)),
|
| #endif
|
| sub_task_forward_callback_(
|
| base::Bind(&BrowsingDataRemover::NotifyIfDone,
|
| @@ -209,7 +176,7 @@ BrowsingDataRemover::BrowsingDataRemover(
|
| clear_http_auth_cache_(sub_task_forward_callback_),
|
| clear_storage_partition_data_(sub_task_forward_callback_),
|
| weak_ptr_factory_(this) {
|
| - DCHECK(browser_context);
|
| + DCHECK(browser_context_);
|
| }
|
|
|
| BrowsingDataRemover::~BrowsingDataRemover() {
|
| @@ -238,36 +205,40 @@ void BrowsingDataRemover::SetRemoving(bool is_removing) {
|
| is_removing_ = is_removing;
|
| }
|
|
|
| -void BrowsingDataRemover::Remove(const TimeRange& time_range,
|
| +void BrowsingDataRemover::Remove(const base::Time& delete_begin,
|
| + const base::Time& delete_end,
|
| int remove_mask,
|
| int origin_type_mask) {
|
| - RemoveInternal(time_range, remove_mask, origin_type_mask,
|
| + RemoveInternal(delete_begin, delete_end, remove_mask, origin_type_mask,
|
| std::unique_ptr<RegistrableDomainFilterBuilder>(), nullptr);
|
| }
|
|
|
| void BrowsingDataRemover::RemoveAndReply(
|
| - const TimeRange& time_range,
|
| + const base::Time& delete_begin,
|
| + const base::Time& delete_end,
|
| int remove_mask,
|
| int origin_type_mask,
|
| Observer* observer) {
|
| DCHECK(observer);
|
| - RemoveInternal(time_range, remove_mask, origin_type_mask,
|
| + RemoveInternal(delete_begin, delete_end, remove_mask, origin_type_mask,
|
| std::unique_ptr<RegistrableDomainFilterBuilder>(), observer);
|
| }
|
|
|
| void BrowsingDataRemover::RemoveWithFilter(
|
| - const TimeRange& time_range,
|
| + const base::Time& delete_begin,
|
| + const base::Time& delete_end,
|
| int remove_mask,
|
| int origin_type_mask,
|
| std::unique_ptr<BrowsingDataFilterBuilder> filter_builder) {
|
| DCHECK_EQ(0, remove_mask & ~FILTERABLE_DATATYPES);
|
| DCHECK(filter_builder);
|
| - RemoveInternal(time_range, remove_mask, origin_type_mask,
|
| + RemoveInternal(delete_begin, delete_end, remove_mask, origin_type_mask,
|
| std::move(filter_builder), nullptr);
|
| }
|
|
|
| void BrowsingDataRemover::RemoveWithFilterAndReply(
|
| - const TimeRange& time_range,
|
| + const base::Time& delete_begin,
|
| + const base::Time& delete_end,
|
| int remove_mask,
|
| int origin_type_mask,
|
| std::unique_ptr<BrowsingDataFilterBuilder> filter_builder,
|
| @@ -275,12 +246,13 @@ void BrowsingDataRemover::RemoveWithFilterAndReply(
|
| DCHECK_EQ(0, remove_mask & ~FILTERABLE_DATATYPES);
|
| DCHECK(filter_builder);
|
| DCHECK(observer);
|
| - RemoveInternal(time_range, remove_mask, origin_type_mask,
|
| + RemoveInternal(delete_begin, delete_end, remove_mask, origin_type_mask,
|
| std::move(filter_builder), observer);
|
| }
|
|
|
| void BrowsingDataRemover::RemoveInternal(
|
| - const TimeRange& time_range,
|
| + const base::Time& delete_begin,
|
| + const base::Time& delete_end,
|
| int remove_mask,
|
| int origin_type_mask,
|
| std::unique_ptr<BrowsingDataFilterBuilder> filter_builder,
|
| @@ -298,7 +270,8 @@ void BrowsingDataRemover::RemoveInternal(
|
| }
|
|
|
| task_queue_.emplace(
|
| - time_range,
|
| + delete_begin,
|
| + delete_end,
|
| remove_mask,
|
| origin_type_mask,
|
| std::move(filter_builder),
|
| @@ -317,14 +290,16 @@ void BrowsingDataRemover::RunNextTask() {
|
| DCHECK(!task_queue_.empty());
|
| const RemovalTask& removal_task = task_queue_.front();
|
|
|
| - RemoveImpl(removal_task.time_range,
|
| + RemoveImpl(removal_task.delete_begin,
|
| + removal_task.delete_end,
|
| removal_task.remove_mask,
|
| *removal_task.filter_builder,
|
| removal_task.origin_type_mask);
|
| }
|
|
|
| void BrowsingDataRemover::RemoveImpl(
|
| - const TimeRange& time_range,
|
| + const base::Time& delete_begin,
|
| + const base::Time& delete_end,
|
| int remove_mask,
|
| const BrowsingDataFilterBuilder& filter_builder,
|
| int origin_type_mask) {
|
| @@ -342,10 +317,10 @@ void BrowsingDataRemover::RemoveImpl(
|
|
|
| // crbug.com/140910: Many places were calling this with base::Time() as
|
| // delete_end, even though they should've used base::Time::Max().
|
| - DCHECK_NE(base::Time(), time_range.end);
|
| + DCHECK_NE(base::Time(), delete_end);
|
|
|
| - delete_begin_ = time_range.begin;
|
| - delete_end_ = time_range.end;
|
| + delete_begin_ = delete_begin;
|
| + delete_end_ = delete_end;
|
| remove_mask_ = remove_mask;
|
| origin_type_mask_ = origin_type_mask;
|
|
|
| @@ -385,9 +360,12 @@ void BrowsingDataRemover::RemoveImpl(
|
|
|
| // Managed devices and supervised users can have restrictions on history
|
| // deletion.
|
| - PrefService* prefs = profile_->GetPrefs();
|
| - bool may_delete_history = prefs->GetBoolean(
|
| - prefs::kAllowDeletingBrowserHistory);
|
| + // TODO(crbug.com/668114): This should be provided via ContentBrowserClient
|
| + // once BrowsingDataRemover moves to content.
|
| + PrefService* prefs =
|
| + Profile::FromBrowserContext(browser_context_)->GetPrefs();
|
| + bool may_delete_history =
|
| + prefs->GetBoolean(prefs::kAllowDeletingBrowserHistory);
|
|
|
| // All the UI entry points into the BrowsingDataRemover should be disabled,
|
| // but this will fire if something was missed or added.
|
| @@ -405,8 +383,8 @@ void BrowsingDataRemover::RemoveImpl(
|
| // TODO(msramek): We can reuse the plugin filter here, since both plugins
|
| // and SSL host state are scoped to hosts and represent them as std::string.
|
| // Rename the method to indicate its more general usage.
|
| - if (profile_->GetSSLHostStateDelegate()) {
|
| - profile_->GetSSLHostStateDelegate()->Clear(
|
| + if (browser_context_->GetSSLHostStateDelegate()) {
|
| + browser_context_->GetSSLHostStateDelegate()->Clear(
|
| filter_builder.IsEmptyBlacklist()
|
| ? base::Callback<bool(const std::string&)>()
|
| : filter_builder.BuildPluginFilter());
|
| @@ -418,12 +396,9 @@ void BrowsingDataRemover::RemoveImpl(
|
| if ((remove_mask & REMOVE_DOWNLOADS) && may_delete_history) {
|
| content::RecordAction(UserMetricsAction("ClearBrowsingData_Downloads"));
|
| content::DownloadManager* download_manager =
|
| - BrowserContext::GetDownloadManager(profile_);
|
| + BrowserContext::GetDownloadManager(browser_context_);
|
| download_manager->RemoveDownloadsByURLAndTime(filter,
|
| delete_begin_, delete_end_);
|
| - DownloadPrefs* download_prefs = DownloadPrefs::FromDownloadManager(
|
| - download_manager);
|
| - download_prefs->SetSaveFilePath(download_prefs->DownloadPath());
|
| }
|
|
|
| //////////////////////////////////////////////////////////////////////////////
|
| @@ -436,7 +411,7 @@ void BrowsingDataRemover::RemoveImpl(
|
| UserMetricsAction("ClearBrowsingData_ChannelIDs"));
|
| // Since we are running on the UI thread don't call GetURLRequestContext().
|
| scoped_refptr<net::URLRequestContextGetter> rq_context =
|
| - content::BrowserContext::GetDefaultStoragePartition(profile_)->
|
| + content::BrowserContext::GetDefaultStoragePartition(browser_context_)->
|
| GetURLRequestContext();
|
| clear_channel_ids_.Start();
|
| BrowserThread::PostTask(
|
| @@ -502,10 +477,12 @@ void BrowsingDataRemover::RemoveImpl(
|
| clear_storage_partition_data_.Start();
|
|
|
| content::StoragePartition* storage_partition;
|
| - if (storage_partition_for_testing_)
|
| + if (storage_partition_for_testing_) {
|
| storage_partition = storage_partition_for_testing_;
|
| - else
|
| - storage_partition = BrowserContext::GetDefaultStoragePartition(profile_);
|
| + } else {
|
| + storage_partition =
|
| + BrowserContext::GetDefaultStoragePartition(browser_context_);
|
| + }
|
|
|
| uint32_t quota_storage_remove_mask =
|
| ~content::StoragePartition::QUOTA_MANAGED_STORAGE_MASK_PERSISTENT;
|
| @@ -547,7 +524,8 @@ void BrowsingDataRemover::RemoveImpl(
|
|
|
| if (filter_builder.IsEmptyBlacklist()) {
|
| DCHECK(!plugin_data_remover_);
|
| - plugin_data_remover_.reset(content::PluginDataRemover::Create(profile_));
|
| + plugin_data_remover_.reset(
|
| + content::PluginDataRemover::Create(browser_context_));
|
| base::WaitableEvent* event =
|
| plugin_data_remover_->StartRemoving(delete_begin_);
|
|
|
| @@ -578,13 +556,13 @@ void BrowsingDataRemover::RemoveImpl(
|
| // StoragePartitionHttpCacheDataRemover deletes itself when it is done.
|
| if (filter_builder.IsEmptyBlacklist()) {
|
| browsing_data::StoragePartitionHttpCacheDataRemover::CreateForRange(
|
| - BrowserContext::GetDefaultStoragePartition(profile_),
|
| + BrowserContext::GetDefaultStoragePartition(browser_context_),
|
| delete_begin_, delete_end_)
|
| ->Remove(clear_cache_.GetCompletionCallback());
|
| } else {
|
| browsing_data::StoragePartitionHttpCacheDataRemover::
|
| CreateForURLsAndRange(
|
| - BrowserContext::GetDefaultStoragePartition(profile_),
|
| + BrowserContext::GetDefaultStoragePartition(browser_context_),
|
| filter, delete_begin_, delete_end_)
|
| ->Remove(clear_cache_.GetCompletionCallback());
|
| }
|
| @@ -599,7 +577,8 @@ void BrowsingDataRemover::RemoveImpl(
|
| // Auth cache.
|
| if (remove_mask & REMOVE_COOKIES || remove_mask & REMOVE_PASSWORDS) {
|
| scoped_refptr<net::URLRequestContextGetter> request_context =
|
| - profile_->GetRequestContext();
|
| + BrowserContext::GetDefaultStoragePartition(browser_context_)
|
| + ->GetURLRequestContext();
|
| clear_http_auth_cache_.Start();
|
| BrowserThread::PostTaskAndReply(
|
| BrowserThread::IO, FROM_HERE,
|
| @@ -662,12 +641,14 @@ int BrowsingDataRemover::GetLastUsedOriginTypeMask() {
|
| }
|
|
|
| BrowsingDataRemover::RemovalTask::RemovalTask(
|
| - const TimeRange& time_range,
|
| + const base::Time& delete_begin,
|
| + const base::Time& delete_end,
|
| int remove_mask,
|
| int origin_type_mask,
|
| std::unique_ptr<BrowsingDataFilterBuilder> filter_builder,
|
| Observer* observer)
|
| - : time_range(time_range),
|
| + : delete_begin(delete_begin),
|
| + delete_end(delete_end),
|
| remove_mask(remove_mask),
|
| origin_type_mask(origin_type_mask),
|
| filter_builder(std::move(filter_builder)),
|
|
|