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

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

Issue 9700007: ContentAPI change - Post DomStorage tasks via a SequencedTaskRunner instead of directly to WEBKIT_DE (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 8 years, 9 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) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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_remover.h" 5 #include "chrome/browser/browsing_data_remover.h"
6 6
7 #include <map> 7 #include <map>
8 #include <set> 8 #include <set>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 283 matching lines...) Expand 10 before | Expand all | Expand 10 after
294 net::URLRequestContextGetter* rq_context = profile_->GetRequestContext(); 294 net::URLRequestContextGetter* rq_context = profile_->GetRequestContext();
295 if (rq_context) { 295 if (rq_context) {
296 waiting_for_clear_origin_bound_certs_ = true; 296 waiting_for_clear_origin_bound_certs_ = true;
297 BrowserThread::PostTask( 297 BrowserThread::PostTask(
298 BrowserThread::IO, FROM_HERE, 298 BrowserThread::IO, FROM_HERE,
299 base::Bind(&BrowsingDataRemover::ClearOriginBoundCertsOnIOThread, 299 base::Bind(&BrowsingDataRemover::ClearOriginBoundCertsOnIOThread,
300 base::Unretained(this), base::Unretained(rq_context))); 300 base::Unretained(this), base::Unretained(rq_context)));
301 } 301 }
302 } 302 }
303 303
304 if (remove_mask & REMOVE_LOCAL_STORAGE && 304 if (remove_mask & REMOVE_LOCAL_STORAGE) {
305 BrowserThread::IsMessageLoopValid(BrowserThread::WEBKIT_DEPRECATED)) {
306 DOMStorageContext* context = BrowserContext::GetDOMStorageContext(profile_); 305 DOMStorageContext* context = BrowserContext::GetDOMStorageContext(profile_);
307 BrowserThread::PostTask( 306 context->task_runner()->PostTask(
308 BrowserThread::WEBKIT_DEPRECATED, FROM_HERE, 307 FROM_HERE,
309 base::Bind(&BrowsingDataRemover::ClearDOMStorageOnWebKitThread, 308 base::Bind(&BrowsingDataRemover::ClearDOMStorageInSequencedTask,
310 base::Unretained(this), make_scoped_refptr(context))); 309 base::Unretained(this), make_scoped_refptr(context)));
311 } 310 }
312 311
313 if (remove_mask & REMOVE_INDEXEDDB || remove_mask & REMOVE_WEBSQL || 312 if (remove_mask & REMOVE_INDEXEDDB || remove_mask & REMOVE_WEBSQL ||
314 remove_mask & REMOVE_APPCACHE || remove_mask & REMOVE_FILE_SYSTEMS) { 313 remove_mask & REMOVE_APPCACHE || remove_mask & REMOVE_FILE_SYSTEMS) {
315 if (!quota_manager_) 314 if (!quota_manager_)
316 quota_manager_ = content::BrowserContext::GetQuotaManager(profile_); 315 quota_manager_ = content::BrowserContext::GetQuotaManager(profile_);
317 waiting_for_clear_quota_managed_data_ = true; 316 waiting_for_clear_quota_managed_data_ = true;
318 BrowserThread::PostTask( 317 BrowserThread::PostTask(
319 BrowserThread::IO, FROM_HERE, 318 BrowserThread::IO, FROM_HERE,
(...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after
429 case EVERYTHING: 428 case EVERYTHING:
430 delete_begin_time = base::Time(); 429 delete_begin_time = base::Time();
431 break; 430 break;
432 default: 431 default:
433 NOTREACHED() << L"Missing item"; 432 NOTREACHED() << L"Missing item";
434 break; 433 break;
435 } 434 }
436 return delete_begin_time - diff; 435 return delete_begin_time - diff;
437 } 436 }
438 437
439 void BrowsingDataRemover::ClearDOMStorageOnWebKitThread( 438 void BrowsingDataRemover::ClearDOMStorageInSequencedTask(
440 scoped_refptr<DOMStorageContext> dom_storage_context) { 439 DOMStorageContext* dom_storage_context) {
441 // We assume the end time is now. 440 // We assume the end time is now.
441 DCHECK(dom_storage_context->task_runner()->RunsTasksOnCurrentThread());
442 dom_storage_context->DeleteDataModifiedSince(delete_begin_); 442 dom_storage_context->DeleteDataModifiedSince(delete_begin_);
443 } 443 }
444 444
445 void BrowsingDataRemover::Observe(int type, 445 void BrowsingDataRemover::Observe(int type,
446 const content::NotificationSource& source, 446 const content::NotificationSource& source,
447 const content::NotificationDetails& details) { 447 const content::NotificationDetails& details) {
448 // TODO(brettw) bug 1139736: This should also observe session 448 // TODO(brettw) bug 1139736: This should also observe session
449 // clearing (what about other things such as passwords, etc.?) and wait for 449 // clearing (what about other things such as passwords, etc.?) and wait for
450 // them to complete before continuing. 450 // them to complete before continuing.
451 DCHECK(type == chrome::NOTIFICATION_TEMPLATE_URL_SERVICE_LOADED); 451 DCHECK(type == chrome::NOTIFICATION_TEMPLATE_URL_SERVICE_LOADED);
(...skipping 260 matching lines...) Expand 10 before | Expand all | Expand 10 after
712 BrowserThread::UI, FROM_HERE, 712 BrowserThread::UI, FROM_HERE,
713 base::Bind(&BrowsingDataRemover::OnClearedOriginBoundCerts, 713 base::Bind(&BrowsingDataRemover::OnClearedOriginBoundCerts,
714 base::Unretained(this))); 714 base::Unretained(this)));
715 } 715 }
716 716
717 void BrowsingDataRemover::OnClearedOriginBoundCerts() { 717 void BrowsingDataRemover::OnClearedOriginBoundCerts() {
718 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 718 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
719 waiting_for_clear_origin_bound_certs_ = false; 719 waiting_for_clear_origin_bound_certs_ = false;
720 NotifyAndDeleteIfDone(); 720 NotifyAndDeleteIfDone();
721 } 721 }
OLDNEW
« no previous file with comments | « chrome/browser/browsing_data_remover.h ('k') | chrome/browser/extensions/extension_data_deleter.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698