summaryrefslogtreecommitdiffstats
path: root/chrome/browser
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser')
-rw-r--r--chrome/browser/browsing_data_local_storage_helper.cc37
-rw-r--r--chrome/browser/browsing_data_local_storage_helper.h14
-rw-r--r--chrome/browser/browsing_data_remover.cc14
-rw-r--r--chrome/browser/browsing_data_remover.h6
-rw-r--r--chrome/browser/extensions/extension_data_deleter.cc16
-rw-r--r--chrome/browser/extensions/extension_data_deleter.h8
6 files changed, 46 insertions, 49 deletions
diff --git a/chrome/browser/browsing_data_local_storage_helper.cc b/chrome/browser/browsing_data_local_storage_helper.cc
index 57305d8..ff66398 100644
--- a/chrome/browser/browsing_data_local_storage_helper.cc
+++ b/chrome/browser/browsing_data_local_storage_helper.cc
@@ -66,10 +66,10 @@ void BrowsingDataLocalStorageHelper::StartFetching(
is_fetching_ = true;
completion_callback_ = callback;
- BrowserThread::PostTask(
- BrowserThread::WEBKIT_DEPRECATED, FROM_HERE,
+ dom_storage_context_->task_runner()->PostTask(
+ FROM_HERE,
base::Bind(
- &BrowsingDataLocalStorageHelper::FetchLocalStorageInfoInWebKitThread,
+ &BrowsingDataLocalStorageHelper::FetchLocalStorageInfoHelper,
this));
}
@@ -81,15 +81,15 @@ void BrowsingDataLocalStorageHelper::CancelNotification() {
void BrowsingDataLocalStorageHelper::DeleteLocalStorageFile(
const FilePath& file_path) {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
- BrowserThread::PostTask(
- BrowserThread::WEBKIT_DEPRECATED, FROM_HERE,
+ dom_storage_context_->task_runner()->PostTask(
+ FROM_HERE,
base::Bind(
- &BrowsingDataLocalStorageHelper::DeleteLocalStorageFileInWebKitThread,
+ &BrowsingDataLocalStorageHelper::DeleteLocalStorageFileHelper,
this, file_path));
}
-void BrowsingDataLocalStorageHelper::FetchLocalStorageInfoInWebKitThread() {
- DCHECK(BrowserThread::CurrentlyOn(BrowserThread::WEBKIT_DEPRECATED));
+void BrowsingDataLocalStorageHelper::FetchLocalStorageInfoHelper() {
+ DCHECK(dom_storage_context_->task_runner()->RunsTasksOnCurrentThread());
std::vector<FilePath> files = dom_storage_context_->GetAllStorageFiles();
for (size_t i = 0; i < files.size(); ++i) {
FilePath file_path = files[i];
@@ -132,12 +132,14 @@ void BrowsingDataLocalStorageHelper::NotifyInUIThread() {
is_fetching_ = false;
}
-void BrowsingDataLocalStorageHelper::DeleteLocalStorageFileInWebKitThread(
+void BrowsingDataLocalStorageHelper::DeleteLocalStorageFileHelper(
const FilePath& file_path) {
- DCHECK(BrowserThread::CurrentlyOn(BrowserThread::WEBKIT_DEPRECATED));
+ DCHECK(dom_storage_context_->task_runner()->RunsTasksOnCurrentThread());
dom_storage_context_->DeleteLocalStorageFile(file_path);
}
+//---------------------------------------------------------
+
CannedBrowsingDataLocalStorageHelper::CannedBrowsingDataLocalStorageHelper(
Profile* profile)
: BrowsingDataLocalStorageHelper(profile),
@@ -150,7 +152,6 @@ CannedBrowsingDataLocalStorageHelper::Clone() {
CannedBrowsingDataLocalStorageHelper* clone =
new CannedBrowsingDataLocalStorageHelper(profile_);
- base::AutoLock auto_lock(lock_);
clone->pending_local_storage_info_ = pending_local_storage_info_;
clone->local_storage_info_ = local_storage_info_;
return clone;
@@ -158,18 +159,15 @@ CannedBrowsingDataLocalStorageHelper::Clone() {
void CannedBrowsingDataLocalStorageHelper::AddLocalStorage(
const GURL& origin) {
- base::AutoLock auto_lock(lock_);
pending_local_storage_info_.insert(origin);
}
void CannedBrowsingDataLocalStorageHelper::Reset() {
- base::AutoLock auto_lock(lock_);
local_storage_info_.clear();
pending_local_storage_info_.clear();
}
bool CannedBrowsingDataLocalStorageHelper::empty() const {
- base::AutoLock auto_lock(lock_);
return local_storage_info_.empty() && pending_local_storage_info_.empty();
}
@@ -181,16 +179,17 @@ void CannedBrowsingDataLocalStorageHelper::StartFetching(
is_fetching_ = true;
completion_callback_ = callback;
- BrowserThread::PostTask(
- BrowserThread::WEBKIT_DEPRECATED, FROM_HERE,
+
+ // We post a task to emulate async fetching behavior.
+ MessageLoop::current()->PostTask(
+ FROM_HERE,
base::Bind(&CannedBrowsingDataLocalStorageHelper::
- ConvertPendingInfoInWebKitThread, this));
+ ConvertPendingInfo, this));
}
CannedBrowsingDataLocalStorageHelper::~CannedBrowsingDataLocalStorageHelper() {}
-void CannedBrowsingDataLocalStorageHelper::ConvertPendingInfoInWebKitThread() {
- base::AutoLock auto_lock(lock_);
+void CannedBrowsingDataLocalStorageHelper::ConvertPendingInfo() {
for (std::set<GURL>::iterator info = pending_local_storage_info_.begin();
info != pending_local_storage_info_.end(); ++info) {
WebSecurityOrigin web_security_origin =
diff --git a/chrome/browser/browsing_data_local_storage_helper.h b/chrome/browser/browsing_data_local_storage_helper.h
index 4cb8880..a2c79fe 100644
--- a/chrome/browser/browsing_data_local_storage_helper.h
+++ b/chrome/browser/browsing_data_local_storage_helper.h
@@ -99,10 +99,10 @@ class BrowsingDataLocalStorageHelper
std::list<LocalStorageInfo> local_storage_info_;
private:
- // Enumerates all local storage files in the WEBKIT thread.
- void FetchLocalStorageInfoInWebKitThread();
- // Delete a single local storage file in the WEBKIT thread.
- void DeleteLocalStorageFileInWebKitThread(const FilePath& file_path);
+ // Enumerates all local storage files in a sequenced task.
+ void FetchLocalStorageInfoHelper();
+ // Delete a single local storage file in a sequenced task.
+ void DeleteLocalStorageFileHelper(const FilePath& file_path);
DISALLOW_COPY_AND_ASSIGN(BrowsingDataLocalStorageHelper);
};
@@ -140,12 +140,8 @@ class CannedBrowsingDataLocalStorageHelper
virtual ~CannedBrowsingDataLocalStorageHelper();
// Convert the pending local storage info to local storage info objects.
- void ConvertPendingInfoInWebKitThread();
+ void ConvertPendingInfo();
- // Used to protect access to pending_local_storage_info_.
- mutable base::Lock lock_;
-
- // May mutate on WEBKIT and UI threads.
std::set<GURL> pending_local_storage_info_;
Profile* profile_;
diff --git a/chrome/browser/browsing_data_remover.cc b/chrome/browser/browsing_data_remover.cc
index d78154c..0612dde 100644
--- a/chrome/browser/browsing_data_remover.cc
+++ b/chrome/browser/browsing_data_remover.cc
@@ -302,12 +302,11 @@ void BrowsingDataRemover::RemoveImpl(int remove_mask,
}
}
- if (remove_mask & REMOVE_LOCAL_STORAGE &&
- BrowserThread::IsMessageLoopValid(BrowserThread::WEBKIT_DEPRECATED)) {
+ if (remove_mask & REMOVE_LOCAL_STORAGE) {
DOMStorageContext* context = BrowserContext::GetDOMStorageContext(profile_);
- BrowserThread::PostTask(
- BrowserThread::WEBKIT_DEPRECATED, FROM_HERE,
- base::Bind(&BrowsingDataRemover::ClearDOMStorageOnWebKitThread,
+ context->task_runner()->PostTask(
+ FROM_HERE,
+ base::Bind(&BrowsingDataRemover::ClearDOMStorageInSequencedTask,
base::Unretained(this), make_scoped_refptr(context)));
}
@@ -437,9 +436,10 @@ base::Time BrowsingDataRemover::CalculateBeginDeleteTime(
return delete_begin_time - diff;
}
-void BrowsingDataRemover::ClearDOMStorageOnWebKitThread(
- scoped_refptr<DOMStorageContext> dom_storage_context) {
+void BrowsingDataRemover::ClearDOMStorageInSequencedTask(
+ DOMStorageContext* dom_storage_context) {
// We assume the end time is now.
+ DCHECK(dom_storage_context->task_runner()->RunsTasksOnCurrentThread());
dom_storage_context->DeleteDataModifiedSince(delete_begin_);
}
diff --git a/chrome/browser/browsing_data_remover.h b/chrome/browser/browsing_data_remover.h
index b54ef03..a2459d1c 100644
--- a/chrome/browser/browsing_data_remover.h
+++ b/chrome/browser/browsing_data_remover.h
@@ -246,9 +246,9 @@ class BrowsingDataRemover : public content::NotificationObserver,
// Calculate the begin time for the deletion range specified by |time_period|.
base::Time CalculateBeginDeleteTime(TimePeriod time_period);
- // Invoked on the WEBKIT thread to clear local storage.
- void ClearDOMStorageOnWebKitThread(
- scoped_refptr<content::DOMStorageContext> dom_storage_context);
+ // Invoked in a background task to clear local storage.
+ void ClearDOMStorageInSequencedTask(
+ content::DOMStorageContext* dom_storage_context);
// Returns true if we're all done.
bool all_done() {
diff --git a/chrome/browser/extensions/extension_data_deleter.cc b/chrome/browser/extensions/extension_data_deleter.cc
index 3cae231..ab92bae 100644
--- a/chrome/browser/extensions/extension_data_deleter.cc
+++ b/chrome/browser/extensions/extension_data_deleter.cc
@@ -48,11 +48,13 @@ void ExtensionDataDeleter::StartDeleting(
base::Bind(
&ExtensionDataDeleter::DeleteCookiesOnIOThread, deleter));
- BrowserThread::PostTask(
- BrowserThread::WEBKIT_DEPRECATED, FROM_HERE,
+ scoped_refptr<DOMStorageContext> dom_storage_context =
+ BrowserContext::GetDOMStorageContext(profile);
+ dom_storage_context->task_runner()->PostTask(
+ FROM_HERE,
base::Bind(
- &ExtensionDataDeleter::DeleteLocalStorageOnWebkitThread, deleter,
- make_scoped_refptr(BrowserContext::GetDOMStorageContext(profile))));
+ &ExtensionDataDeleter::DeleteLocalStorageInSequencedTask, deleter,
+ dom_storage_context));
BrowserThread::PostTask(
BrowserThread::WEBKIT_DEPRECATED, FROM_HERE,
@@ -125,9 +127,9 @@ void ExtensionDataDeleter::DeleteDatabaseOnFileThread() {
DCHECK(rv == net::OK || rv == net::ERR_IO_PENDING);
}
-void ExtensionDataDeleter::DeleteLocalStorageOnWebkitThread(
- scoped_refptr<DOMStorageContext> dom_storage_context) {
- DCHECK(BrowserThread::CurrentlyOn(BrowserThread::WEBKIT_DEPRECATED));
+void ExtensionDataDeleter::DeleteLocalStorageInSequencedTask(
+ DOMStorageContext* dom_storage_context) {
+ DCHECK(dom_storage_context->task_runner()->RunsTasksOnCurrentThread());
dom_storage_context->DeleteForOrigin(origin_id_);
}
diff --git a/chrome/browser/extensions/extension_data_deleter.h b/chrome/browser/extensions/extension_data_deleter.h
index 6732445..c3ab6ce 100644
--- a/chrome/browser/extensions/extension_data_deleter.h
+++ b/chrome/browser/extensions/extension_data_deleter.h
@@ -70,10 +70,10 @@ class ExtensionDataDeleter
// thread.
void DeleteDatabaseOnFileThread();
- // Deletes local storage for the extension. May only be called on the webkit
- // thread.
- void DeleteLocalStorageOnWebkitThread(
- scoped_refptr<content::DOMStorageContext> dom_storage_context);
+ // Deletes local storage for the extension. May only be called in a
+ // DOMStorageContext sequenced task.
+ void DeleteLocalStorageInSequencedTask(
+ content::DOMStorageContext* dom_storage_context);
// Deletes indexed db files for the extension. May only be called on the
// webkit thread.