Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(4)

Unified Diff: chrome/browser/browsing_data/browsing_data_remover.cc

Issue 2578723002: Reduce BrowsingDataRemover's dependencies on Chrome (Closed)
Patch Set: A new callsite appeared through rebase - fixed the compilation error. Created 3 years, 12 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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)),

Powered by Google App Engine
This is Rietveld 408576698