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

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& description)
160 : origin(origin), 156 : origin(origin),
161 description(description) { 157 description(description) {
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 return origin < other.origin;
167 }
168
168 CannedBrowsingDataIndexedDBHelper::CannedBrowsingDataIndexedDBHelper() 169 CannedBrowsingDataIndexedDBHelper::CannedBrowsingDataIndexedDBHelper()
169 : is_fetching_(false) { 170 : is_fetching_(false) {
170 } 171 }
171 172
173 CannedBrowsingDataIndexedDBHelper::~CannedBrowsingDataIndexedDBHelper() {}
174
172 CannedBrowsingDataIndexedDBHelper* CannedBrowsingDataIndexedDBHelper::Clone() { 175 CannedBrowsingDataIndexedDBHelper* CannedBrowsingDataIndexedDBHelper::Clone() {
173 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 176 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
174 CannedBrowsingDataIndexedDBHelper* clone = 177 CannedBrowsingDataIndexedDBHelper* clone =
175 new CannedBrowsingDataIndexedDBHelper(); 178 new CannedBrowsingDataIndexedDBHelper();
176 179
177 base::AutoLock auto_lock(lock_); 180 base::AutoLock auto_lock(lock_);
178 clone->pending_indexed_db_info_ = pending_indexed_db_info_; 181 clone->pending_indexed_db_info_ = pending_indexed_db_info_;
179 clone->indexed_db_info_ = indexed_db_info_; 182 clone->indexed_db_info_ = indexed_db_info_;
180 return clone; 183 return clone;
181 } 184 }
182 185
183 void CannedBrowsingDataIndexedDBHelper::AddIndexedDB( 186 void CannedBrowsingDataIndexedDBHelper::AddIndexedDB(
184 const GURL& origin, const string16& description) { 187 const GURL& origin, const string16& description) {
185 if (!BrowsingDataHelper::HasValidScheme(origin)) 188 if (!BrowsingDataHelper::HasValidScheme(origin))
186 return; // Non-websafe state is not considered browsing data. 189 return; // Non-websafe state is not considered browsing data.
187 190
188 base::AutoLock auto_lock(lock_); 191 base::AutoLock auto_lock(lock_);
189 pending_indexed_db_info_.push_back(PendingIndexedDBInfo(origin, description)); 192 pending_indexed_db_info_.insert(PendingIndexedDBInfo(origin, description));
190 } 193 }
191 194
192 void CannedBrowsingDataIndexedDBHelper::Reset() { 195 void CannedBrowsingDataIndexedDBHelper::Reset() {
193 base::AutoLock auto_lock(lock_); 196 base::AutoLock auto_lock(lock_);
194 indexed_db_info_.clear(); 197 indexed_db_info_.clear();
195 pending_indexed_db_info_.clear(); 198 pending_indexed_db_info_.clear();
196 } 199 }
197 200
198 bool CannedBrowsingDataIndexedDBHelper::empty() const { 201 bool CannedBrowsingDataIndexedDBHelper::empty() const {
199 base::AutoLock auto_lock(lock_); 202 base::AutoLock auto_lock(lock_);
200 return indexed_db_info_.empty() && pending_indexed_db_info_.empty(); 203 return indexed_db_info_.empty() && pending_indexed_db_info_.empty();
201 } 204 }
202 205
203 size_t CannedBrowsingDataIndexedDBHelper::GetIndexedDBCount() const { 206 size_t CannedBrowsingDataIndexedDBHelper::GetIndexedDBCount() const {
207 base::AutoLock auto_lock(lock_);
204 return pending_indexed_db_info_.size(); 208 return pending_indexed_db_info_.size();
205 } 209 }
206 210
211 const std::set<CannedBrowsingDataIndexedDBHelper::PendingIndexedDBInfo>&
212 CannedBrowsingDataIndexedDBHelper::GetIndexedDBInfo() const {
213 base::AutoLock auto_lock(lock_);
214 return pending_indexed_db_info_;
215 }
216
207 void CannedBrowsingDataIndexedDBHelper::StartFetching( 217 void CannedBrowsingDataIndexedDBHelper::StartFetching(
208 const base::Callback<void(const std::list<IndexedDBInfo>&)>& callback) { 218 const base::Callback<void(const std::list<IndexedDBInfo>&)>& callback) {
209 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 219 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
210 DCHECK(!is_fetching_); 220 DCHECK(!is_fetching_);
211 DCHECK_EQ(false, callback.is_null()); 221 DCHECK_EQ(false, callback.is_null());
212 222
213 is_fetching_ = true; 223 is_fetching_ = true;
214 completion_callback_ = callback; 224 completion_callback_ = callback;
215 BrowserThread::PostTask( 225 BrowserThread::PostTask(
216 BrowserThread::WEBKIT_DEPRECATED, FROM_HERE, 226 BrowserThread::WEBKIT_DEPRECATED, FROM_HERE,
217 base::Bind( 227 base::Bind(
218 &CannedBrowsingDataIndexedDBHelper::ConvertPendingInfoInWebKitThread, 228 &CannedBrowsingDataIndexedDBHelper::ConvertPendingInfoInWebKitThread,
219 this)); 229 this));
220 } 230 }
221 231
222 CannedBrowsingDataIndexedDBHelper::~CannedBrowsingDataIndexedDBHelper() {}
223
224 void CannedBrowsingDataIndexedDBHelper::ConvertPendingInfoInWebKitThread() { 232 void CannedBrowsingDataIndexedDBHelper::ConvertPendingInfoInWebKitThread() {
225 base::AutoLock auto_lock(lock_); 233 base::AutoLock auto_lock(lock_);
226 for (std::list<PendingIndexedDBInfo>::const_iterator 234 indexed_db_info_.clear();
235 for (std::set<PendingIndexedDBInfo>::const_iterator
227 info = pending_indexed_db_info_.begin(); 236 info = pending_indexed_db_info_.begin();
228 info != pending_indexed_db_info_.end(); ++info) { 237 info != pending_indexed_db_info_.end(); ++info) {
229 bool duplicate = false; 238 bool duplicate = false;
Bernhard Bauer 2012/05/10 17:18:59 I think you don't need this anymore if you have a
markusheintz_ 2012/05/11 12:18:28 Done.
230 for (std::list<IndexedDBInfo>::iterator 239 for (std::list<IndexedDBInfo>::iterator
231 indexed_db = indexed_db_info_.begin(); 240 indexed_db = indexed_db_info_.begin();
232 indexed_db != indexed_db_info_.end(); ++indexed_db) { 241 indexed_db != indexed_db_info_.end(); ++indexed_db) {
233 if (indexed_db->origin == info->origin) { 242 if (indexed_db->origin == info->origin) {
234 duplicate = true; 243 duplicate = true;
235 break; 244 break;
236 } 245 }
237 } 246 }
238 if (duplicate) 247 if (duplicate)
239 continue; 248 continue;
240 249
241 indexed_db_info_.push_back(IndexedDBInfo( 250 indexed_db_info_.push_back(IndexedDBInfo(
242 info->origin, 251 info->origin,
243 0, 252 0,
244 base::Time())); 253 base::Time()));
245 } 254 }
246 pending_indexed_db_info_.clear();
247 255
248 BrowserThread::PostTask( 256 BrowserThread::PostTask(
249 BrowserThread::UI, FROM_HERE, 257 BrowserThread::UI, FROM_HERE,
250 base::Bind(&CannedBrowsingDataIndexedDBHelper::NotifyInUIThread, this)); 258 base::Bind(&CannedBrowsingDataIndexedDBHelper::NotifyInUIThread, this));
251 } 259 }
252 260
253 void CannedBrowsingDataIndexedDBHelper::NotifyInUIThread() { 261 void CannedBrowsingDataIndexedDBHelper::NotifyInUIThread() {
254 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 262 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
255 DCHECK(is_fetching_); 263 DCHECK(is_fetching_);
256 264
257 completion_callback_.Run(indexed_db_info_); 265 completion_callback_.Run(indexed_db_info_);
258 completion_callback_.Reset(); 266 completion_callback_.Reset();
259 is_fetching_ = false; 267 is_fetching_ = false;
260 } 268 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698