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 |