diff options
author | willchan@chromium.org <willchan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-06-21 16:04:50 +0000 |
---|---|---|
committer | willchan@chromium.org <willchan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-06-21 16:04:50 +0000 |
commit | 34d18e40e285579af3b5fae02ad21ce3d94745be (patch) | |
tree | f69d053360091d15a6adef6095c54f947a113812 /chrome/browser/extensions/extension_data_deleter.cc | |
parent | 379418079f6f422db211d61f1b1142e4025b730c (diff) | |
download | chromium_src-34d18e40e285579af3b5fae02ad21ce3d94745be.zip chromium_src-34d18e40e285579af3b5fae02ad21ce3d94745be.tar.gz chromium_src-34d18e40e285579af3b5fae02ad21ce3d94745be.tar.bz2 |
Revert 50296 (Causes DCHECK failures) - Make CookieMonster NonThreadSafe.
Made ExtensionFunction RefCountedThreadSafe so it can be posted to different threads.
Used WaitableEvent in AutomationProvider.
BUG=44083
Review URL: http://codereview.chromium.org/2756003
TBR=willchan@chromium.org
Review URL: http://codereview.chromium.org/2860012
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@50357 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/extensions/extension_data_deleter.cc')
-rw-r--r-- | chrome/browser/extensions/extension_data_deleter.cc | 26 |
1 files changed, 8 insertions, 18 deletions
diff --git a/chrome/browser/extensions/extension_data_deleter.cc b/chrome/browser/extensions/extension_data_deleter.cc index 1a9f84e..98cf433 100644 --- a/chrome/browser/extensions/extension_data_deleter.cc +++ b/chrome/browser/extensions/extension_data_deleter.cc @@ -23,28 +23,18 @@ ExtensionDataDeleter::ExtensionDataDeleter(Profile* profile, void ExtensionDataDeleter::StartDeleting() { DCHECK(ChromeThread::CurrentlyOn(ChromeThread::UI)); - - ChromeThread::PostTask( - ChromeThread::IO, FROM_HERE, - NewRunnableMethod(this, &ExtensionDataDeleter::DeleteCookiesOnIOThread)); - - ChromeThread::PostTask( - ChromeThread::WEBKIT, FROM_HERE, - NewRunnableMethod( - this, &ExtensionDataDeleter::DeleteLocalStorageOnWebkitThread)); - - ChromeThread::PostTask( - ChromeThread::FILE, FROM_HERE, - NewRunnableMethod( - this, &ExtensionDataDeleter::DeleteDatabaseOnFileThread)); -} - -void ExtensionDataDeleter::DeleteCookiesOnIOThread() { - DCHECK(ChromeThread::CurrentlyOn(ChromeThread::IO)); net::CookieMonster* cookie_monster = extension_request_context_->GetCookieStore()->GetCookieMonster(); if (cookie_monster) cookie_monster->DeleteAllForURL(extension_url_, true); + + ChromeThread::PostTask(ChromeThread::WEBKIT, FROM_HERE, + NewRunnableMethod(this, + &ExtensionDataDeleter::DeleteLocalStorageOnWebkitThread)); + + ChromeThread::PostTask(ChromeThread::FILE, FROM_HERE, + NewRunnableMethod(this, + &ExtensionDataDeleter::DeleteDatabaseOnFileThread)); } void ExtensionDataDeleter::DeleteDatabaseOnFileThread() { |