| OLD | NEW |
| 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 "content/browser/storage_partition_impl.h" | 5 #include "content/browser/storage_partition_impl.h" |
| 6 | 6 |
| 7 #include "base/sequenced_task_runner.h" | 7 #include "base/sequenced_task_runner.h" |
| 8 #include "base/strings/utf_string_conversions.h" | 8 #include "base/strings/utf_string_conversions.h" |
| 9 #include "content/browser/browser_main_loop.h" | 9 #include "content/browser/browser_main_loop.h" |
| 10 #include "content/browser/fileapi/browser_file_system_helper.h" | 10 #include "content/browser/fileapi/browser_file_system_helper.h" |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 43 | 43 |
| 44 callback.Run(); | 44 callback.Run(); |
| 45 } | 45 } |
| 46 | 46 |
| 47 void ClearCookiesOnIOThread( | 47 void ClearCookiesOnIOThread( |
| 48 const scoped_refptr<net::URLRequestContextGetter>& rq_context, | 48 const scoped_refptr<net::URLRequestContextGetter>& rq_context, |
| 49 const base::Time begin, | 49 const base::Time begin, |
| 50 const base::Time end, | 50 const base::Time end, |
| 51 const GURL& storage_origin, | 51 const GURL& storage_origin, |
| 52 const base::Closure& callback) { | 52 const base::Closure& callback) { |
| 53 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); | 53 DCHECK_CURRENTLY_ON(BrowserThread::IO); |
| 54 net::CookieStore* cookie_store = rq_context-> | 54 net::CookieStore* cookie_store = rq_context-> |
| 55 GetURLRequestContext()->cookie_store(); | 55 GetURLRequestContext()->cookie_store(); |
| 56 if (storage_origin.is_empty()) { | 56 if (storage_origin.is_empty()) { |
| 57 cookie_store->DeleteAllCreatedBetweenAsync( | 57 cookie_store->DeleteAllCreatedBetweenAsync( |
| 58 begin, | 58 begin, |
| 59 end, | 59 end, |
| 60 base::Bind(&OnClearedCookies, callback)); | 60 base::Bind(&OnClearedCookies, callback)); |
| 61 } else { | 61 } else { |
| 62 cookie_store->DeleteAllCreatedBetweenForHostAsync( | 62 cookie_store->DeleteAllCreatedBetweenForHostAsync( |
| 63 begin, | 63 begin, |
| 64 end, | 64 end, |
| 65 storage_origin, base::Bind(&OnClearedCookies, callback)); | 65 storage_origin, base::Bind(&OnClearedCookies, callback)); |
| 66 } | 66 } |
| 67 } | 67 } |
| 68 | 68 |
| 69 void CheckQuotaManagedDataDeletionStatus(size_t* deletion_task_count, | 69 void CheckQuotaManagedDataDeletionStatus(size_t* deletion_task_count, |
| 70 const base::Closure& callback) { | 70 const base::Closure& callback) { |
| 71 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); | 71 DCHECK_CURRENTLY_ON(BrowserThread::IO); |
| 72 if (*deletion_task_count == 0) { | 72 if (*deletion_task_count == 0) { |
| 73 delete deletion_task_count; | 73 delete deletion_task_count; |
| 74 callback.Run(); | 74 callback.Run(); |
| 75 } | 75 } |
| 76 } | 76 } |
| 77 | 77 |
| 78 void OnQuotaManagedOriginDeleted(const GURL& origin, | 78 void OnQuotaManagedOriginDeleted(const GURL& origin, |
| 79 storage::StorageType type, | 79 storage::StorageType type, |
| 80 size_t* deletion_task_count, | 80 size_t* deletion_task_count, |
| 81 const base::Closure& callback, | 81 const base::Closure& callback, |
| 82 storage::QuotaStatusCode status) { | 82 storage::QuotaStatusCode status) { |
| 83 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); | 83 DCHECK_CURRENTLY_ON(BrowserThread::IO); |
| 84 DCHECK_GT(*deletion_task_count, 0u); | 84 DCHECK_GT(*deletion_task_count, 0u); |
| 85 if (status != storage::kQuotaStatusOk) { | 85 if (status != storage::kQuotaStatusOk) { |
| 86 DLOG(ERROR) << "Couldn't remove data of type " << type << " for origin " | 86 DLOG(ERROR) << "Couldn't remove data of type " << type << " for origin " |
| 87 << origin << ". Status: " << status; | 87 << origin << ". Status: " << status; |
| 88 } | 88 } |
| 89 | 89 |
| 90 (*deletion_task_count)--; | 90 (*deletion_task_count)--; |
| 91 CheckQuotaManagedDataDeletionStatus(deletion_task_count, callback); | 91 CheckQuotaManagedDataDeletionStatus(deletion_task_count, callback); |
| 92 } | 92 } |
| 93 | 93 |
| 94 void ClearedShaderCache(const base::Closure& callback) { | 94 void ClearedShaderCache(const base::Closure& callback) { |
| 95 if (!BrowserThread::CurrentlyOn(BrowserThread::UI)) { | 95 if (!BrowserThread::CurrentlyOn(BrowserThread::UI)) { |
| 96 BrowserThread::PostTask( | 96 BrowserThread::PostTask( |
| 97 BrowserThread::UI, FROM_HERE, | 97 BrowserThread::UI, FROM_HERE, |
| 98 base::Bind(&ClearedShaderCache, callback)); | 98 base::Bind(&ClearedShaderCache, callback)); |
| 99 return; | 99 return; |
| 100 } | 100 } |
| 101 callback.Run(); | 101 callback.Run(); |
| 102 } | 102 } |
| 103 | 103 |
| 104 void ClearShaderCacheOnIOThread(const base::FilePath& path, | 104 void ClearShaderCacheOnIOThread(const base::FilePath& path, |
| 105 const base::Time begin, | 105 const base::Time begin, |
| 106 const base::Time end, | 106 const base::Time end, |
| 107 const base::Closure& callback) { | 107 const base::Closure& callback) { |
| 108 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); | 108 DCHECK_CURRENTLY_ON(BrowserThread::IO); |
| 109 ShaderCacheFactory::GetInstance()->ClearByPath( | 109 ShaderCacheFactory::GetInstance()->ClearByPath( |
| 110 path, begin, end, base::Bind(&ClearedShaderCache, callback)); | 110 path, begin, end, base::Bind(&ClearedShaderCache, callback)); |
| 111 } | 111 } |
| 112 | 112 |
| 113 void OnLocalStorageUsageInfo( | 113 void OnLocalStorageUsageInfo( |
| 114 const scoped_refptr<DOMStorageContextWrapper>& dom_storage_context, | 114 const scoped_refptr<DOMStorageContextWrapper>& dom_storage_context, |
| 115 const scoped_refptr<storage::SpecialStoragePolicy>& special_storage_policy, | 115 const scoped_refptr<storage::SpecialStoragePolicy>& special_storage_policy, |
| 116 const StoragePartition::OriginMatcherFunction& origin_matcher, | 116 const StoragePartition::OriginMatcherFunction& origin_matcher, |
| 117 const base::Time delete_begin, | 117 const base::Time delete_begin, |
| 118 const base::Time delete_end, | 118 const base::Time delete_end, |
| 119 const base::Closure& callback, | 119 const base::Closure& callback, |
| 120 const std::vector<LocalStorageUsageInfo>& infos) { | 120 const std::vector<LocalStorageUsageInfo>& infos) { |
| 121 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 121 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
| 122 | 122 |
| 123 for (size_t i = 0; i < infos.size(); ++i) { | 123 for (size_t i = 0; i < infos.size(); ++i) { |
| 124 if (!origin_matcher.is_null() && | 124 if (!origin_matcher.is_null() && |
| 125 !origin_matcher.Run(infos[i].origin, special_storage_policy.get())) { | 125 !origin_matcher.Run(infos[i].origin, special_storage_policy.get())) { |
| 126 continue; | 126 continue; |
| 127 } | 127 } |
| 128 | 128 |
| 129 if (infos[i].last_modified >= delete_begin && | 129 if (infos[i].last_modified >= delete_begin && |
| 130 infos[i].last_modified <= delete_end) { | 130 infos[i].last_modified <= delete_end) { |
| 131 dom_storage_context->DeleteLocalStorage(infos[i].origin); | 131 dom_storage_context->DeleteLocalStorage(infos[i].origin); |
| 132 } | 132 } |
| 133 } | 133 } |
| 134 callback.Run(); | 134 callback.Run(); |
| 135 } | 135 } |
| 136 | 136 |
| 137 void OnSessionStorageUsageInfo( | 137 void OnSessionStorageUsageInfo( |
| 138 const scoped_refptr<DOMStorageContextWrapper>& dom_storage_context, | 138 const scoped_refptr<DOMStorageContextWrapper>& dom_storage_context, |
| 139 const scoped_refptr<storage::SpecialStoragePolicy>& special_storage_policy, | 139 const scoped_refptr<storage::SpecialStoragePolicy>& special_storage_policy, |
| 140 const StoragePartition::OriginMatcherFunction& origin_matcher, | 140 const StoragePartition::OriginMatcherFunction& origin_matcher, |
| 141 const base::Closure& callback, | 141 const base::Closure& callback, |
| 142 const std::vector<SessionStorageUsageInfo>& infos) { | 142 const std::vector<SessionStorageUsageInfo>& infos) { |
| 143 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 143 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
| 144 | 144 |
| 145 for (size_t i = 0; i < infos.size(); ++i) { | 145 for (size_t i = 0; i < infos.size(); ++i) { |
| 146 if (!origin_matcher.is_null() && | 146 if (!origin_matcher.is_null() && |
| 147 !origin_matcher.Run(infos[i].origin, special_storage_policy.get())) { | 147 !origin_matcher.Run(infos[i].origin, special_storage_policy.get())) { |
| 148 continue; | 148 continue; |
| 149 } | 149 } |
| 150 dom_storage_context->DeleteSessionStorage(infos[i]); | 150 dom_storage_context->DeleteSessionStorage(infos[i]); |
| 151 } | 151 } |
| 152 | 152 |
| 153 callback.Run(); | 153 callback.Run(); |
| 154 } | 154 } |
| 155 | 155 |
| 156 void ClearLocalStorageOnUIThread( | 156 void ClearLocalStorageOnUIThread( |
| 157 const scoped_refptr<DOMStorageContextWrapper>& dom_storage_context, | 157 const scoped_refptr<DOMStorageContextWrapper>& dom_storage_context, |
| 158 const scoped_refptr<storage::SpecialStoragePolicy>& special_storage_policy, | 158 const scoped_refptr<storage::SpecialStoragePolicy>& special_storage_policy, |
| 159 const StoragePartition::OriginMatcherFunction& origin_matcher, | 159 const StoragePartition::OriginMatcherFunction& origin_matcher, |
| 160 const GURL& storage_origin, | 160 const GURL& storage_origin, |
| 161 const base::Time begin, | 161 const base::Time begin, |
| 162 const base::Time end, | 162 const base::Time end, |
| 163 const base::Closure& callback) { | 163 const base::Closure& callback) { |
| 164 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 164 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
| 165 | 165 |
| 166 if (!storage_origin.is_empty()) { | 166 if (!storage_origin.is_empty()) { |
| 167 bool can_delete = origin_matcher.is_null() || | 167 bool can_delete = origin_matcher.is_null() || |
| 168 origin_matcher.Run(storage_origin, | 168 origin_matcher.Run(storage_origin, |
| 169 special_storage_policy.get()); | 169 special_storage_policy.get()); |
| 170 if (can_delete) | 170 if (can_delete) |
| 171 dom_storage_context->DeleteLocalStorage(storage_origin); | 171 dom_storage_context->DeleteLocalStorage(storage_origin); |
| 172 | 172 |
| 173 callback.Run(); | 173 callback.Run(); |
| 174 return; | 174 return; |
| 175 } | 175 } |
| 176 | 176 |
| 177 dom_storage_context->GetLocalStorageUsage( | 177 dom_storage_context->GetLocalStorageUsage( |
| 178 base::Bind(&OnLocalStorageUsageInfo, | 178 base::Bind(&OnLocalStorageUsageInfo, |
| 179 dom_storage_context, special_storage_policy, origin_matcher, | 179 dom_storage_context, special_storage_policy, origin_matcher, |
| 180 begin, end, callback)); | 180 begin, end, callback)); |
| 181 } | 181 } |
| 182 | 182 |
| 183 void ClearSessionStorageOnUIThread( | 183 void ClearSessionStorageOnUIThread( |
| 184 const scoped_refptr<DOMStorageContextWrapper>& dom_storage_context, | 184 const scoped_refptr<DOMStorageContextWrapper>& dom_storage_context, |
| 185 const scoped_refptr<storage::SpecialStoragePolicy>& special_storage_policy, | 185 const scoped_refptr<storage::SpecialStoragePolicy>& special_storage_policy, |
| 186 const StoragePartition::OriginMatcherFunction& origin_matcher, | 186 const StoragePartition::OriginMatcherFunction& origin_matcher, |
| 187 const base::Closure& callback) { | 187 const base::Closure& callback) { |
| 188 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 188 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
| 189 | 189 |
| 190 dom_storage_context->GetSessionStorageUsage( | 190 dom_storage_context->GetSessionStorageUsage( |
| 191 base::Bind(&OnSessionStorageUsageInfo, dom_storage_context, | 191 base::Bind(&OnSessionStorageUsageInfo, dom_storage_context, |
| 192 special_storage_policy, origin_matcher, | 192 special_storage_policy, origin_matcher, |
| 193 callback)); | 193 callback)); |
| 194 } | 194 } |
| 195 | 195 |
| 196 } // namespace | 196 } // namespace |
| 197 | 197 |
| 198 // static | 198 // static |
| (...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 341 int task_count; | 341 int task_count; |
| 342 }; | 342 }; |
| 343 | 343 |
| 344 void StoragePartitionImpl::DataDeletionHelper::ClearQuotaManagedDataOnIOThread( | 344 void StoragePartitionImpl::DataDeletionHelper::ClearQuotaManagedDataOnIOThread( |
| 345 const scoped_refptr<storage::QuotaManager>& quota_manager, | 345 const scoped_refptr<storage::QuotaManager>& quota_manager, |
| 346 const base::Time begin, | 346 const base::Time begin, |
| 347 const GURL& storage_origin, | 347 const GURL& storage_origin, |
| 348 const scoped_refptr<storage::SpecialStoragePolicy>& special_storage_policy, | 348 const scoped_refptr<storage::SpecialStoragePolicy>& special_storage_policy, |
| 349 const StoragePartition::OriginMatcherFunction& origin_matcher, | 349 const StoragePartition::OriginMatcherFunction& origin_matcher, |
| 350 const base::Closure& callback) { | 350 const base::Closure& callback) { |
| 351 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); | 351 DCHECK_CURRENTLY_ON(BrowserThread::IO); |
| 352 | 352 |
| 353 StoragePartitionImpl::QuotaManagedDataDeletionHelper* helper = | 353 StoragePartitionImpl::QuotaManagedDataDeletionHelper* helper = |
| 354 new StoragePartitionImpl::QuotaManagedDataDeletionHelper( | 354 new StoragePartitionImpl::QuotaManagedDataDeletionHelper( |
| 355 remove_mask, | 355 remove_mask, |
| 356 quota_storage_remove_mask, | 356 quota_storage_remove_mask, |
| 357 storage_origin, | 357 storage_origin, |
| 358 callback); | 358 callback); |
| 359 helper->ClearDataOnIOThread(quota_manager, begin, special_storage_policy, | 359 helper->ClearDataOnIOThread(quota_manager, begin, special_storage_policy, |
| 360 origin_matcher); | 360 origin_matcher); |
| 361 } | 361 } |
| (...skipping 213 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 575 | 575 |
| 576 void StoragePartitionImpl::ClearDataImpl( | 576 void StoragePartitionImpl::ClearDataImpl( |
| 577 uint32 remove_mask, | 577 uint32 remove_mask, |
| 578 uint32 quota_storage_remove_mask, | 578 uint32 quota_storage_remove_mask, |
| 579 const GURL& storage_origin, | 579 const GURL& storage_origin, |
| 580 const OriginMatcherFunction& origin_matcher, | 580 const OriginMatcherFunction& origin_matcher, |
| 581 net::URLRequestContextGetter* rq_context, | 581 net::URLRequestContextGetter* rq_context, |
| 582 const base::Time begin, | 582 const base::Time begin, |
| 583 const base::Time end, | 583 const base::Time end, |
| 584 const base::Closure& callback) { | 584 const base::Closure& callback) { |
| 585 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 585 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
| 586 DataDeletionHelper* helper = new DataDeletionHelper(remove_mask, | 586 DataDeletionHelper* helper = new DataDeletionHelper(remove_mask, |
| 587 quota_storage_remove_mask, | 587 quota_storage_remove_mask, |
| 588 callback); | 588 callback); |
| 589 // |helper| deletes itself when done in | 589 // |helper| deletes itself when done in |
| 590 // DataDeletionHelper::DecrementTaskCountOnUI(). | 590 // DataDeletionHelper::DecrementTaskCountOnUI(). |
| 591 helper->ClearDataOnUIThread(storage_origin, | 591 helper->ClearDataOnUIThread(storage_origin, |
| 592 origin_matcher, | 592 origin_matcher, |
| 593 GetPath(), | 593 GetPath(), |
| 594 rq_context, | 594 rq_context, |
| 595 dom_storage_context_.get(), | 595 dom_storage_context_.get(), |
| 596 quota_manager_.get(), | 596 quota_manager_.get(), |
| 597 special_storage_policy_.get(), | 597 special_storage_policy_.get(), |
| 598 webrtc_identity_store_.get(), | 598 webrtc_identity_store_.get(), |
| 599 begin, | 599 begin, |
| 600 end); | 600 end); |
| 601 } | 601 } |
| 602 | 602 |
| 603 void StoragePartitionImpl:: | 603 void StoragePartitionImpl:: |
| 604 QuotaManagedDataDeletionHelper::IncrementTaskCountOnIO() { | 604 QuotaManagedDataDeletionHelper::IncrementTaskCountOnIO() { |
| 605 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); | 605 DCHECK_CURRENTLY_ON(BrowserThread::IO); |
| 606 ++task_count; | 606 ++task_count; |
| 607 } | 607 } |
| 608 | 608 |
| 609 void StoragePartitionImpl:: | 609 void StoragePartitionImpl:: |
| 610 QuotaManagedDataDeletionHelper::DecrementTaskCountOnIO() { | 610 QuotaManagedDataDeletionHelper::DecrementTaskCountOnIO() { |
| 611 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); | 611 DCHECK_CURRENTLY_ON(BrowserThread::IO); |
| 612 DCHECK_GT(task_count, 0); | 612 DCHECK_GT(task_count, 0); |
| 613 --task_count; | 613 --task_count; |
| 614 if (task_count) | 614 if (task_count) |
| 615 return; | 615 return; |
| 616 | 616 |
| 617 callback.Run(); | 617 callback.Run(); |
| 618 delete this; | 618 delete this; |
| 619 } | 619 } |
| 620 | 620 |
| 621 void StoragePartitionImpl::QuotaManagedDataDeletionHelper::ClearDataOnIOThread( | 621 void StoragePartitionImpl::QuotaManagedDataDeletionHelper::ClearDataOnIOThread( |
| (...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 679 StoragePartitionImpl::QuotaManagedDataDeletionHelper::ClearOriginsOnIOThread( | 679 StoragePartitionImpl::QuotaManagedDataDeletionHelper::ClearOriginsOnIOThread( |
| 680 storage::QuotaManager* quota_manager, | 680 storage::QuotaManager* quota_manager, |
| 681 const scoped_refptr<storage::SpecialStoragePolicy>& special_storage_policy, | 681 const scoped_refptr<storage::SpecialStoragePolicy>& special_storage_policy, |
| 682 const StoragePartition::OriginMatcherFunction& origin_matcher, | 682 const StoragePartition::OriginMatcherFunction& origin_matcher, |
| 683 const base::Closure& callback, | 683 const base::Closure& callback, |
| 684 const std::set<GURL>& origins, | 684 const std::set<GURL>& origins, |
| 685 storage::StorageType quota_storage_type) { | 685 storage::StorageType quota_storage_type) { |
| 686 // The QuotaManager manages all storage other than cookies, LocalStorage, | 686 // The QuotaManager manages all storage other than cookies, LocalStorage, |
| 687 // and SessionStorage. This loop wipes out most HTML5 storage for the given | 687 // and SessionStorage. This loop wipes out most HTML5 storage for the given |
| 688 // origins. | 688 // origins. |
| 689 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); | 689 DCHECK_CURRENTLY_ON(BrowserThread::IO); |
| 690 if (!origins.size()) { | 690 if (!origins.size()) { |
| 691 callback.Run(); | 691 callback.Run(); |
| 692 return; | 692 return; |
| 693 } | 693 } |
| 694 | 694 |
| 695 size_t* deletion_task_count = new size_t(0u); | 695 size_t* deletion_task_count = new size_t(0u); |
| 696 (*deletion_task_count)++; | 696 (*deletion_task_count)++; |
| 697 for (std::set<GURL>::const_iterator origin = origins.begin(); | 697 for (std::set<GURL>::const_iterator origin = origins.begin(); |
| 698 origin != origins.end(); ++origin) { | 698 origin != origins.end(); ++origin) { |
| 699 // TODO(mkwst): Clean this up, it's slow. http://crbug.com/130746 | 699 // TODO(mkwst): Clean this up, it's slow. http://crbug.com/130746 |
| (...skipping 12 matching lines...) Expand all Loading... |
| 712 base::Bind(&OnQuotaManagedOriginDeleted, | 712 base::Bind(&OnQuotaManagedOriginDeleted, |
| 713 origin->GetOrigin(), quota_storage_type, | 713 origin->GetOrigin(), quota_storage_type, |
| 714 deletion_task_count, callback)); | 714 deletion_task_count, callback)); |
| 715 } | 715 } |
| 716 (*deletion_task_count)--; | 716 (*deletion_task_count)--; |
| 717 | 717 |
| 718 CheckQuotaManagedDataDeletionStatus(deletion_task_count, callback); | 718 CheckQuotaManagedDataDeletionStatus(deletion_task_count, callback); |
| 719 } | 719 } |
| 720 | 720 |
| 721 void StoragePartitionImpl::DataDeletionHelper::IncrementTaskCountOnUI() { | 721 void StoragePartitionImpl::DataDeletionHelper::IncrementTaskCountOnUI() { |
| 722 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 722 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
| 723 ++task_count; | 723 ++task_count; |
| 724 } | 724 } |
| 725 | 725 |
| 726 void StoragePartitionImpl::DataDeletionHelper::DecrementTaskCountOnUI() { | 726 void StoragePartitionImpl::DataDeletionHelper::DecrementTaskCountOnUI() { |
| 727 if (!BrowserThread::CurrentlyOn(BrowserThread::UI)) { | 727 if (!BrowserThread::CurrentlyOn(BrowserThread::UI)) { |
| 728 BrowserThread::PostTask( | 728 BrowserThread::PostTask( |
| 729 BrowserThread::UI, FROM_HERE, | 729 BrowserThread::UI, FROM_HERE, |
| 730 base::Bind(&DataDeletionHelper::DecrementTaskCountOnUI, | 730 base::Bind(&DataDeletionHelper::DecrementTaskCountOnUI, |
| 731 base::Unretained(this))); | 731 base::Unretained(this))); |
| 732 return; | 732 return; |
| (...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 829 | 829 |
| 830 DecrementTaskCountOnUI(); | 830 DecrementTaskCountOnUI(); |
| 831 } | 831 } |
| 832 | 832 |
| 833 void StoragePartitionImpl::ClearDataForOrigin( | 833 void StoragePartitionImpl::ClearDataForOrigin( |
| 834 uint32 remove_mask, | 834 uint32 remove_mask, |
| 835 uint32 quota_storage_remove_mask, | 835 uint32 quota_storage_remove_mask, |
| 836 const GURL& storage_origin, | 836 const GURL& storage_origin, |
| 837 net::URLRequestContextGetter* request_context_getter, | 837 net::URLRequestContextGetter* request_context_getter, |
| 838 const base::Closure& callback) { | 838 const base::Closure& callback) { |
| 839 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 839 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
| 840 ClearDataImpl(remove_mask, | 840 ClearDataImpl(remove_mask, |
| 841 quota_storage_remove_mask, | 841 quota_storage_remove_mask, |
| 842 storage_origin, | 842 storage_origin, |
| 843 OriginMatcherFunction(), | 843 OriginMatcherFunction(), |
| 844 request_context_getter, | 844 request_context_getter, |
| 845 base::Time(), | 845 base::Time(), |
| 846 base::Time::Max(), | 846 base::Time::Max(), |
| 847 callback); | 847 callback); |
| 848 } | 848 } |
| 849 | 849 |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 881 net::URLRequestContextGetter* url_request_context) { | 881 net::URLRequestContextGetter* url_request_context) { |
| 882 url_request_context_ = url_request_context; | 882 url_request_context_ = url_request_context; |
| 883 } | 883 } |
| 884 | 884 |
| 885 void StoragePartitionImpl::SetMediaURLRequestContext( | 885 void StoragePartitionImpl::SetMediaURLRequestContext( |
| 886 net::URLRequestContextGetter* media_url_request_context) { | 886 net::URLRequestContextGetter* media_url_request_context) { |
| 887 media_url_request_context_ = media_url_request_context; | 887 media_url_request_context_ = media_url_request_context; |
| 888 } | 888 } |
| 889 | 889 |
| 890 } // namespace content | 890 } // namespace content |
| OLD | NEW |