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

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

Issue 10092013: Display third party cookies and site data counts in the WebsiteSettings UI. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: " Created 8 years, 7 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_indexed_db_helper.h" 5 #include "chrome/browser/browsing_data_indexed_db_helper.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/callback.h" 8 #include "base/callback.h"
9 #include "base/compiler_specific.h" 9 #include "base/compiler_specific.h"
10 #include "base/file_util.h" 10 #include "base/file_util.h"
(...skipping 133 matching lines...) Expand 10 before | Expand all | Expand 10 after
144 144
145 BrowsingDataIndexedDBHelper::IndexedDBInfo::~IndexedDBInfo() {} 145 BrowsingDataIndexedDBHelper::IndexedDBInfo::~IndexedDBInfo() {}
146 146
147 // static 147 // static
148 BrowsingDataIndexedDBHelper* BrowsingDataIndexedDBHelper::Create( 148 BrowsingDataIndexedDBHelper* BrowsingDataIndexedDBHelper::Create(
149 Profile* profile) { 149 Profile* profile) {
150 return new BrowsingDataIndexedDBHelperImpl(profile); 150 return new BrowsingDataIndexedDBHelperImpl(profile);
151 } 151 }
152 152
153 CannedBrowsingDataIndexedDBHelper:: 153 CannedBrowsingDataIndexedDBHelper::
154 PendingIndexedDBInfo::PendingIndexedDBInfo() {
155 }
156
157 CannedBrowsingDataIndexedDBHelper::
158 PendingIndexedDBInfo::PendingIndexedDBInfo(const GURL& origin, 154 PendingIndexedDBInfo::PendingIndexedDBInfo(const GURL& origin,
159 const string16& description) 155 const string16& name)
160 : origin(origin), 156 : origin(origin),
161 description(description) { 157 name(name) {
162 } 158 }
163 159
164 CannedBrowsingDataIndexedDBHelper:: 160 CannedBrowsingDataIndexedDBHelper::
165 PendingIndexedDBInfo::~PendingIndexedDBInfo() { 161 PendingIndexedDBInfo::~PendingIndexedDBInfo() {
166 } 162 }
167 163
164 bool CannedBrowsingDataIndexedDBHelper::PendingIndexedDBInfo::operator<(
165 const PendingIndexedDBInfo& other) const {
166 if (origin == other.origin)
167 return name < other.name;
168 return origin < other.origin;
169 }
170
168 CannedBrowsingDataIndexedDBHelper::CannedBrowsingDataIndexedDBHelper() 171 CannedBrowsingDataIndexedDBHelper::CannedBrowsingDataIndexedDBHelper()
169 : is_fetching_(false) { 172 : is_fetching_(false) {
170 } 173 }
171 174
175 CannedBrowsingDataIndexedDBHelper::~CannedBrowsingDataIndexedDBHelper() {}
176
172 CannedBrowsingDataIndexedDBHelper* CannedBrowsingDataIndexedDBHelper::Clone() { 177 CannedBrowsingDataIndexedDBHelper* CannedBrowsingDataIndexedDBHelper::Clone() {
173 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 178 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
174 CannedBrowsingDataIndexedDBHelper* clone = 179 CannedBrowsingDataIndexedDBHelper* clone =
175 new CannedBrowsingDataIndexedDBHelper(); 180 new CannedBrowsingDataIndexedDBHelper();
176 181
177 base::AutoLock auto_lock(lock_); 182 base::AutoLock auto_lock(lock_);
178 clone->pending_indexed_db_info_ = pending_indexed_db_info_; 183 clone->pending_indexed_db_info_ = pending_indexed_db_info_;
179 clone->indexed_db_info_ = indexed_db_info_; 184 clone->indexed_db_info_ = indexed_db_info_;
180 return clone; 185 return clone;
181 } 186 }
182 187
183 void CannedBrowsingDataIndexedDBHelper::AddIndexedDB( 188 void CannedBrowsingDataIndexedDBHelper::AddIndexedDB(
184 const GURL& origin, const string16& description) { 189 const GURL& origin, const string16& name) {
Bernhard Bauer 2012/05/11 13:05:00 This doesn't match the declared signature anymore.
markusheintz_ 2012/05/14 11:00:54 Done.
185 if (!BrowsingDataHelper::HasValidScheme(origin)) 190 if (!BrowsingDataHelper::HasValidScheme(origin))
186 return; // Non-websafe state is not considered browsing data. 191 return; // Non-websafe state is not considered browsing data.
187 192
188 base::AutoLock auto_lock(lock_); 193 base::AutoLock auto_lock(lock_);
189 pending_indexed_db_info_.push_back(PendingIndexedDBInfo(origin, description)); 194 pending_indexed_db_info_.insert(PendingIndexedDBInfo(origin, name));
190 } 195 }
191 196
192 void CannedBrowsingDataIndexedDBHelper::Reset() { 197 void CannedBrowsingDataIndexedDBHelper::Reset() {
193 base::AutoLock auto_lock(lock_); 198 base::AutoLock auto_lock(lock_);
194 indexed_db_info_.clear(); 199 indexed_db_info_.clear();
195 pending_indexed_db_info_.clear(); 200 pending_indexed_db_info_.clear();
196 } 201 }
197 202
198 bool CannedBrowsingDataIndexedDBHelper::empty() const { 203 bool CannedBrowsingDataIndexedDBHelper::empty() const {
199 base::AutoLock auto_lock(lock_); 204 base::AutoLock auto_lock(lock_);
200 return indexed_db_info_.empty() && pending_indexed_db_info_.empty(); 205 return indexed_db_info_.empty() && pending_indexed_db_info_.empty();
201 } 206 }
202 207
203 size_t CannedBrowsingDataIndexedDBHelper::GetIndexedDBCount() const { 208 size_t CannedBrowsingDataIndexedDBHelper::GetIndexedDBCount() const {
209 base::AutoLock auto_lock(lock_);
204 return pending_indexed_db_info_.size(); 210 return pending_indexed_db_info_.size();
205 } 211 }
206 212
213 const std::set<CannedBrowsingDataIndexedDBHelper::PendingIndexedDBInfo>&
214 CannedBrowsingDataIndexedDBHelper::GetIndexedDBInfo() const {
215 base::AutoLock auto_lock(lock_);
216 return pending_indexed_db_info_;
217 }
218
207 void CannedBrowsingDataIndexedDBHelper::StartFetching( 219 void CannedBrowsingDataIndexedDBHelper::StartFetching(
208 const base::Callback<void(const std::list<IndexedDBInfo>&)>& callback) { 220 const base::Callback<void(const std::list<IndexedDBInfo>&)>& callback) {
209 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 221 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
210 DCHECK(!is_fetching_); 222 DCHECK(!is_fetching_);
211 DCHECK_EQ(false, callback.is_null()); 223 DCHECK_EQ(false, callback.is_null());
212 224
213 is_fetching_ = true; 225 is_fetching_ = true;
214 completion_callback_ = callback; 226 completion_callback_ = callback;
215 BrowserThread::PostTask( 227 BrowserThread::PostTask(
216 BrowserThread::WEBKIT_DEPRECATED, FROM_HERE, 228 BrowserThread::WEBKIT_DEPRECATED, FROM_HERE,
217 base::Bind( 229 base::Bind(
218 &CannedBrowsingDataIndexedDBHelper::ConvertPendingInfoInWebKitThread, 230 &CannedBrowsingDataIndexedDBHelper::ConvertPendingInfoInWebKitThread,
219 this)); 231 this));
220 } 232 }
221 233
222 CannedBrowsingDataIndexedDBHelper::~CannedBrowsingDataIndexedDBHelper() {}
223
224 void CannedBrowsingDataIndexedDBHelper::ConvertPendingInfoInWebKitThread() { 234 void CannedBrowsingDataIndexedDBHelper::ConvertPendingInfoInWebKitThread() {
225 base::AutoLock auto_lock(lock_); 235 base::AutoLock auto_lock(lock_);
226 for (std::list<PendingIndexedDBInfo>::const_iterator 236 indexed_db_info_.clear();
237 for (std::set<PendingIndexedDBInfo>::const_iterator
227 info = pending_indexed_db_info_.begin(); 238 info = pending_indexed_db_info_.begin();
228 info != pending_indexed_db_info_.end(); ++info) { 239 info != pending_indexed_db_info_.end(); ++info) {
229 bool duplicate = false;
230 for (std::list<IndexedDBInfo>::iterator
231 indexed_db = indexed_db_info_.begin();
232 indexed_db != indexed_db_info_.end(); ++indexed_db) {
233 if (indexed_db->origin == info->origin) {
234 duplicate = true;
235 break;
236 }
237 }
238 if (duplicate)
239 continue;
240
241 indexed_db_info_.push_back(IndexedDBInfo( 240 indexed_db_info_.push_back(IndexedDBInfo(
242 info->origin, 241 info->origin,
243 0, 242 0,
244 base::Time())); 243 base::Time()));
245 } 244 }
246 pending_indexed_db_info_.clear();
247 245
248 BrowserThread::PostTask( 246 BrowserThread::PostTask(
249 BrowserThread::UI, FROM_HERE, 247 BrowserThread::UI, FROM_HERE,
250 base::Bind(&CannedBrowsingDataIndexedDBHelper::NotifyInUIThread, this)); 248 base::Bind(&CannedBrowsingDataIndexedDBHelper::NotifyInUIThread, this));
251 } 249 }
252 250
253 void CannedBrowsingDataIndexedDBHelper::NotifyInUIThread() { 251 void CannedBrowsingDataIndexedDBHelper::NotifyInUIThread() {
254 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 252 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
255 DCHECK(is_fetching_); 253 DCHECK(is_fetching_);
256 254
257 completion_callback_.Run(indexed_db_info_); 255 completion_callback_.Run(indexed_db_info_);
258 completion_callback_.Reset(); 256 completion_callback_.Reset();
259 is_fetching_ = false; 257 is_fetching_ = false;
260 } 258 }
OLDNEW
« no previous file with comments | « chrome/browser/browsing_data_indexed_db_helper.h ('k') | chrome/browser/browsing_data_local_storage_helper.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698