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

Side by Side Diff: chrome/browser/browsing_data_local_storage_helper.cc

Issue 7676002: When deleting storage through the cookies tree model, also update its cache (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: updates Created 9 years, 4 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
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/browsing_data_local_storage_helper.h" 5 #include "chrome/browser/browsing_data_local_storage_helper.h"
6 6
7 #include "base/file_util.h" 7 #include "base/file_util.h"
8 #include "base/message_loop.h" 8 #include "base/message_loop.h"
9 #include "base/string_util.h" 9 #include "base/string_util.h"
10 #include "base/utf_string_conversions.h" 10 #include "base/utf_string_conversions.h"
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
49 : profile_(profile), 49 : profile_(profile),
50 completion_callback_(NULL), 50 completion_callback_(NULL),
51 is_fetching_(false) { 51 is_fetching_(false) {
52 DCHECK(profile_); 52 DCHECK(profile_);
53 } 53 }
54 54
55 BrowsingDataLocalStorageHelper::~BrowsingDataLocalStorageHelper() { 55 BrowsingDataLocalStorageHelper::~BrowsingDataLocalStorageHelper() {
56 } 56 }
57 57
58 void BrowsingDataLocalStorageHelper::StartFetching( 58 void BrowsingDataLocalStorageHelper::StartFetching(
59 Callback1<const std::vector<LocalStorageInfo>& >::Type* callback) { 59 Callback1<const std::list<LocalStorageInfo>& >::Type* callback) {
60 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 60 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
61 DCHECK(!is_fetching_); 61 DCHECK(!is_fetching_);
62 DCHECK(callback); 62 DCHECK(callback);
63 is_fetching_ = true; 63 is_fetching_ = true;
64 completion_callback_.reset(callback); 64 completion_callback_.reset(callback);
65 BrowserThread::PostTask( 65 BrowserThread::PostTask(
66 BrowserThread::WEBKIT, FROM_HERE, 66 BrowserThread::WEBKIT, FROM_HERE,
67 NewRunnableMethod( 67 NewRunnableMethod(
68 this, 68 this,
69 &BrowsingDataLocalStorageHelper:: 69 &BrowsingDataLocalStorageHelper::
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after
174 local_storage_info_.clear(); 174 local_storage_info_.clear();
175 pending_local_storage_info_.clear(); 175 pending_local_storage_info_.clear();
176 } 176 }
177 177
178 bool CannedBrowsingDataLocalStorageHelper::empty() const { 178 bool CannedBrowsingDataLocalStorageHelper::empty() const {
179 base::AutoLock auto_lock(lock_); 179 base::AutoLock auto_lock(lock_);
180 return local_storage_info_.empty() && pending_local_storage_info_.empty(); 180 return local_storage_info_.empty() && pending_local_storage_info_.empty();
181 } 181 }
182 182
183 void CannedBrowsingDataLocalStorageHelper::StartFetching( 183 void CannedBrowsingDataLocalStorageHelper::StartFetching(
184 Callback1<const std::vector<LocalStorageInfo>& >::Type* callback) { 184 Callback1<const std::list<LocalStorageInfo>& >::Type* callback) {
185 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 185 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
186 DCHECK(!is_fetching_); 186 DCHECK(!is_fetching_);
187 DCHECK(callback); 187 DCHECK(callback);
188 is_fetching_ = true; 188 is_fetching_ = true;
189 completion_callback_.reset(callback); 189 completion_callback_.reset(callback);
190 BrowserThread::PostTask( 190 BrowserThread::PostTask(
191 BrowserThread::WEBKIT, FROM_HERE, 191 BrowserThread::WEBKIT, FROM_HERE,
192 NewRunnableMethod( 192 NewRunnableMethod(
193 this, 193 this,
194 &CannedBrowsingDataLocalStorageHelper:: 194 &CannedBrowsingDataLocalStorageHelper::
195 ConvertPendingInfoInWebKitThread)); 195 ConvertPendingInfoInWebKitThread));
196 } 196 }
197 197
198 CannedBrowsingDataLocalStorageHelper::~CannedBrowsingDataLocalStorageHelper() {} 198 CannedBrowsingDataLocalStorageHelper::~CannedBrowsingDataLocalStorageHelper() {}
199 199
200 void CannedBrowsingDataLocalStorageHelper::ConvertPendingInfoInWebKitThread() { 200 void CannedBrowsingDataLocalStorageHelper::ConvertPendingInfoInWebKitThread() {
201 base::AutoLock auto_lock(lock_); 201 base::AutoLock auto_lock(lock_);
202 for (std::set<GURL>::iterator info = pending_local_storage_info_.begin(); 202 for (std::set<GURL>::iterator info = pending_local_storage_info_.begin();
203 info != pending_local_storage_info_.end(); ++info) { 203 info != pending_local_storage_info_.end(); ++info) {
204 WebSecurityOrigin web_security_origin = 204 WebSecurityOrigin web_security_origin =
205 WebSecurityOrigin::createFromString( 205 WebSecurityOrigin::createFromString(
206 UTF8ToUTF16(info->spec())); 206 UTF8ToUTF16(info->spec()));
207 std::string security_origin(web_security_origin.toString().utf8()); 207 std::string security_origin(web_security_origin.toString().utf8());
208 208
209 bool duplicate = false; 209 bool duplicate = false;
210 for (std::vector<LocalStorageInfo>::iterator 210 for (std::list<LocalStorageInfo>::iterator
211 local_storage = local_storage_info_.begin(); 211 local_storage = local_storage_info_.begin();
212 local_storage != local_storage_info_.end(); ++local_storage) { 212 local_storage != local_storage_info_.end(); ++local_storage) {
213 if (local_storage->origin == security_origin) { 213 if (local_storage->origin == security_origin) {
214 duplicate = true; 214 duplicate = true;
215 break; 215 break;
216 } 216 }
217 } 217 }
218 if (duplicate) 218 if (duplicate)
219 continue; 219 continue;
220 220
221 local_storage_info_.push_back(LocalStorageInfo( 221 local_storage_info_.push_back(LocalStorageInfo(
222 web_security_origin.protocol().utf8(), 222 web_security_origin.protocol().utf8(),
223 web_security_origin.host().utf8(), 223 web_security_origin.host().utf8(),
224 web_security_origin.port(), 224 web_security_origin.port(),
225 web_security_origin.databaseIdentifier().utf8(), 225 web_security_origin.databaseIdentifier().utf8(),
226 security_origin, 226 security_origin,
227 profile_->GetWebKitContext()->dom_storage_context()-> 227 profile_->GetWebKitContext()->dom_storage_context()->
228 GetLocalStorageFilePath(web_security_origin.databaseIdentifier()), 228 GetLocalStorageFilePath(web_security_origin.databaseIdentifier()),
229 0, 229 0,
230 base::Time())); 230 base::Time()));
231 } 231 }
232 pending_local_storage_info_.clear(); 232 pending_local_storage_info_.clear();
233 233
234 BrowserThread::PostTask( 234 BrowserThread::PostTask(
235 BrowserThread::UI, FROM_HERE, 235 BrowserThread::UI, FROM_HERE,
236 NewRunnableMethod( 236 NewRunnableMethod(
237 this, &CannedBrowsingDataLocalStorageHelper::NotifyInUIThread)); 237 this, &CannedBrowsingDataLocalStorageHelper::NotifyInUIThread));
238 } 238 }
OLDNEW
« no previous file with comments | « chrome/browser/browsing_data_local_storage_helper.h ('k') | chrome/browser/browsing_data_local_storage_helper_browsertest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698