OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chrome/browser/extensions/extension_data_deleter.h" | 5 #include "chrome/browser/extensions/extension_data_deleter.h" |
6 | 6 |
7 #include "base/bind.h" | 7 #include "base/bind.h" |
8 #include "base/file_util.h" | 8 #include "base/file_util.h" |
9 #include "chrome/browser/profiles/profile.h" | 9 #include "chrome/browser/profiles/profile.h" |
10 #include "chrome/browser/extensions/extension_service.h" | 10 #include "chrome/browser/extensions/extension_service.h" |
(...skipping 24 matching lines...) Expand all Loading... |
35 scoped_refptr<ExtensionDataDeleter> deleter = | 35 scoped_refptr<ExtensionDataDeleter> deleter = |
36 new ExtensionDataDeleter( | 36 new ExtensionDataDeleter( |
37 profile, extension_id, storage_origin, is_storage_isolated); | 37 profile, extension_id, storage_origin, is_storage_isolated); |
38 | 38 |
39 BrowserThread::PostTask( | 39 BrowserThread::PostTask( |
40 BrowserThread::IO, FROM_HERE, | 40 BrowserThread::IO, FROM_HERE, |
41 base::Bind( | 41 base::Bind( |
42 &ExtensionDataDeleter::DeleteCookiesOnIOThread, deleter)); | 42 &ExtensionDataDeleter::DeleteCookiesOnIOThread, deleter)); |
43 | 43 |
44 BrowserThread::PostTask( | 44 BrowserThread::PostTask( |
45 BrowserThread::WEBKIT, FROM_HERE, | 45 BrowserThread::WEBKIT_DEPRECATED, FROM_HERE, |
46 base::Bind( | 46 base::Bind( |
47 &ExtensionDataDeleter::DeleteLocalStorageOnWebkitThread, deleter)); | 47 &ExtensionDataDeleter::DeleteLocalStorageOnWebkitThread, deleter)); |
48 | 48 |
49 BrowserThread::PostTask( | 49 BrowserThread::PostTask( |
50 BrowserThread::WEBKIT, FROM_HERE, | 50 BrowserThread::WEBKIT_DEPRECATED, FROM_HERE, |
51 base::Bind( | 51 base::Bind( |
52 &ExtensionDataDeleter::DeleteIndexedDBOnWebkitThread, deleter)); | 52 &ExtensionDataDeleter::DeleteIndexedDBOnWebkitThread, deleter)); |
53 | 53 |
54 BrowserThread::PostTask( | 54 BrowserThread::PostTask( |
55 BrowserThread::FILE, FROM_HERE, | 55 BrowserThread::FILE, FROM_HERE, |
56 base::Bind( | 56 base::Bind( |
57 &ExtensionDataDeleter::DeleteDatabaseOnFileThread, deleter)); | 57 &ExtensionDataDeleter::DeleteDatabaseOnFileThread, deleter)); |
58 | 58 |
59 BrowserThread::PostTask( | 59 BrowserThread::PostTask( |
60 BrowserThread::FILE, FROM_HERE, | 60 BrowserThread::FILE, FROM_HERE, |
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
110 storage_origin_, net::CookieMonster::DeleteCallback()); | 110 storage_origin_, net::CookieMonster::DeleteCallback()); |
111 } | 111 } |
112 | 112 |
113 void ExtensionDataDeleter::DeleteDatabaseOnFileThread() { | 113 void ExtensionDataDeleter::DeleteDatabaseOnFileThread() { |
114 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE)); | 114 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE)); |
115 int rv = database_tracker_->DeleteDataForOrigin(origin_id_, NULL); | 115 int rv = database_tracker_->DeleteDataForOrigin(origin_id_, NULL); |
116 DCHECK(rv == net::OK || rv == net::ERR_IO_PENDING); | 116 DCHECK(rv == net::OK || rv == net::ERR_IO_PENDING); |
117 } | 117 } |
118 | 118 |
119 void ExtensionDataDeleter::DeleteLocalStorageOnWebkitThread() { | 119 void ExtensionDataDeleter::DeleteLocalStorageOnWebkitThread() { |
120 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::WEBKIT)); | 120 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::WEBKIT_DEPRECATED)); |
121 webkit_context_->dom_storage_context()->DeleteLocalStorageForOrigin( | 121 webkit_context_->dom_storage_context()->DeleteLocalStorageForOrigin( |
122 origin_id_); | 122 origin_id_); |
123 } | 123 } |
124 | 124 |
125 void ExtensionDataDeleter::DeleteIndexedDBOnWebkitThread() { | 125 void ExtensionDataDeleter::DeleteIndexedDBOnWebkitThread() { |
126 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::WEBKIT)); | 126 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::WEBKIT_DEPRECATED)); |
127 webkit_context_->indexed_db_context()->DeleteIndexedDBForOrigin( | 127 webkit_context_->indexed_db_context()->DeleteIndexedDBForOrigin( |
128 storage_origin_); | 128 storage_origin_); |
129 } | 129 } |
130 | 130 |
131 void ExtensionDataDeleter::DeleteFileSystemOnFileThread() { | 131 void ExtensionDataDeleter::DeleteFileSystemOnFileThread() { |
132 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE)); | 132 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE)); |
133 file_system_context_->DeleteDataForOriginOnFileThread(storage_origin_); | 133 file_system_context_->DeleteDataForOriginOnFileThread(storage_origin_); |
134 | 134 |
135 // TODO(creis): The following call fails because the request context is still | 135 // TODO(creis): The following call fails because the request context is still |
136 // around, and holding open file handles in this directory. | 136 // around, and holding open file handles in this directory. |
137 // See http://crbug.com/85127 | 137 // See http://crbug.com/85127 |
138 if (!isolated_app_path_.empty()) | 138 if (!isolated_app_path_.empty()) |
139 file_util::Delete(isolated_app_path_, true); | 139 file_util::Delete(isolated_app_path_, true); |
140 } | 140 } |
141 | 141 |
142 void ExtensionDataDeleter::DeleteAppcachesOnIOThread() { | 142 void ExtensionDataDeleter::DeleteAppcachesOnIOThread() { |
143 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); | 143 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
144 appcache_service_->DeleteAppCachesForOrigin( | 144 appcache_service_->DeleteAppCachesForOrigin( |
145 storage_origin_, net::CompletionCallback()); | 145 storage_origin_, net::CompletionCallback()); |
146 } | 146 } |
OLD | NEW |