diff options
author | kinuko@chromium.org <kinuko@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-12-03 03:21:37 +0000 |
---|---|---|
committer | kinuko@chromium.org <kinuko@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-12-03 03:21:37 +0000 |
commit | 09a31602ef7b10148b28b894bdbf7cc359443084 (patch) | |
tree | 9eb740e700a27db1a2ea947cb94e1f989e10ebd0 /chrome/browser/extensions/extension_data_deleter.cc | |
parent | 815cce6882ce16b8fd022acfe8d764599dd060fa (diff) | |
download | chromium_src-09a31602ef7b10148b28b894bdbf7cc359443084.zip chromium_src-09a31602ef7b10148b28b894bdbf7cc359443084.tar.gz chromium_src-09a31602ef7b10148b28b894bdbf7cc359443084.tar.bz2 |
Delete FileSystem API data when uninstalling extensions.
BUG=63700
TEST=load an extension that keeps writing to file system and unload it. See if the origin data under the profile is deleted.
Review URL: http://codereview.chromium.org/5272010
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@68143 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 | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/chrome/browser/extensions/extension_data_deleter.cc b/chrome/browser/extensions/extension_data_deleter.cc index a1d2052..d87ffef 100644 --- a/chrome/browser/extensions/extension_data_deleter.cc +++ b/chrome/browser/extensions/extension_data_deleter.cc @@ -6,6 +6,7 @@ #include "chrome/browser/in_process_webkit/webkit_context.h" #include "chrome/browser/profiles/profile.h" +#include "chrome/browser/file_system/browser_file_system_context.h" #include "chrome/common/extensions/extension.h" #include "chrome/common/net/url_request_context_getter.h" #include "net/base/cookie_monster.h" @@ -19,6 +20,7 @@ ExtensionDataDeleter::ExtensionDataDeleter(Profile* profile, webkit_context_ = profile->GetWebKitContext(); database_tracker_ = profile->GetDatabaseTracker(); extension_request_context_ = profile->GetRequestContextForExtensions(); + file_system_context_ = profile->GetFileSystemContext(); extension_url_ = extension_url; origin_id_ = webkit_database::DatabaseUtil::GetOriginIdentifier(extension_url_); @@ -48,6 +50,11 @@ void ExtensionDataDeleter::StartDeleting() { BrowserThread::FILE, FROM_HERE, NewRunnableMethod( this, &ExtensionDataDeleter::DeleteDatabaseOnFileThread)); + + BrowserThread::PostTask( + BrowserThread::FILE, FROM_HERE, + NewRunnableMethod( + this, &ExtensionDataDeleter::DeleteFileSystemOnFileThread)); } void ExtensionDataDeleter::DeleteCookiesOnIOThread() { @@ -74,3 +81,8 @@ void ExtensionDataDeleter::DeleteIndexedDBOnWebkitThread() { DCHECK(BrowserThread::CurrentlyOn(BrowserThread::WEBKIT)); webkit_context_->indexed_db_context()->DeleteIndexedDBForOrigin(origin_id_); } + +void ExtensionDataDeleter::DeleteFileSystemOnFileThread() { + DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE)); + file_system_context_->DeleteDataForOriginOnFileThread(extension_url_); +} |