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

Unified 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: "Fix CannedBrowsingDataDatabaseHelperTest.*" 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/browsing_data_indexed_db_helper.cc
diff --git a/chrome/browser/browsing_data_indexed_db_helper.cc b/chrome/browser/browsing_data_indexed_db_helper.cc
index c12322542abb7d4a51b91c55ffdf9af59a6c1123..5b6ca566ea91c045adec1749251b619d911fee8d 100644
--- a/chrome/browser/browsing_data_indexed_db_helper.cc
+++ b/chrome/browser/browsing_data_indexed_db_helper.cc
@@ -47,7 +47,12 @@ class BrowsingDataIndexedDBHelperImpl : public BrowsingDataIndexedDBHelper {
scoped_refptr<IndexedDBContext> indexed_db_context_;
- // This only mutates in the WEBKIT thread.
+ // Access to |indexed_db_info_| is triggered indirectly via the UI thread and
+ // guarded by |is_fetching_|. This means |indexed_db_info_| is only accessed
+ // while |is_fetching_| is true. The flag |is_fetching_| is only accessed on
+ // the UI thread.
+ // In the context of this class |indexed_db_info_| is only accessed on the
+ // WEBKIT thread.
std::list<IndexedDBInfo> indexed_db_info_;
// This only mutates on the UI thread.
@@ -151,24 +156,29 @@ BrowsingDataIndexedDBHelper* BrowsingDataIndexedDBHelper::Create(
}
CannedBrowsingDataIndexedDBHelper::
-PendingIndexedDBInfo::PendingIndexedDBInfo() {
-}
-
-CannedBrowsingDataIndexedDBHelper::
PendingIndexedDBInfo::PendingIndexedDBInfo(const GURL& origin,
- const string16& description)
+ const string16& name)
: origin(origin),
- description(description) {
+ name(name) {
}
CannedBrowsingDataIndexedDBHelper::
PendingIndexedDBInfo::~PendingIndexedDBInfo() {
}
+bool CannedBrowsingDataIndexedDBHelper::PendingIndexedDBInfo::operator<(
+ const PendingIndexedDBInfo& other) const {
+ if (origin == other.origin)
+ return name < other.name;
+ return origin < other.origin;
+}
+
CannedBrowsingDataIndexedDBHelper::CannedBrowsingDataIndexedDBHelper()
: is_fetching_(false) {
}
+CannedBrowsingDataIndexedDBHelper::~CannedBrowsingDataIndexedDBHelper() {}
+
CannedBrowsingDataIndexedDBHelper* CannedBrowsingDataIndexedDBHelper::Clone() {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
CannedBrowsingDataIndexedDBHelper* clone =
@@ -181,12 +191,12 @@ CannedBrowsingDataIndexedDBHelper* CannedBrowsingDataIndexedDBHelper::Clone() {
}
void CannedBrowsingDataIndexedDBHelper::AddIndexedDB(
- const GURL& origin, const string16& description) {
+ const GURL& origin, const string16& name) {
if (!BrowsingDataHelper::HasValidScheme(origin))
return; // Non-websafe state is not considered browsing data.
base::AutoLock auto_lock(lock_);
- pending_indexed_db_info_.push_back(PendingIndexedDBInfo(origin, description));
+ pending_indexed_db_info_.insert(PendingIndexedDBInfo(origin, name));
}
void CannedBrowsingDataIndexedDBHelper::Reset() {
@@ -201,9 +211,16 @@ bool CannedBrowsingDataIndexedDBHelper::empty() const {
}
size_t CannedBrowsingDataIndexedDBHelper::GetIndexedDBCount() const {
+ base::AutoLock auto_lock(lock_);
return pending_indexed_db_info_.size();
}
+const std::set<CannedBrowsingDataIndexedDBHelper::PendingIndexedDBInfo>&
+CannedBrowsingDataIndexedDBHelper::GetIndexedDBInfo() const {
+ base::AutoLock auto_lock(lock_);
+ return pending_indexed_db_info_;
+}
+
void CannedBrowsingDataIndexedDBHelper::StartFetching(
const base::Callback<void(const std::list<IndexedDBInfo>&)>& callback) {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
@@ -219,35 +236,21 @@ void CannedBrowsingDataIndexedDBHelper::StartFetching(
this));
}
-CannedBrowsingDataIndexedDBHelper::~CannedBrowsingDataIndexedDBHelper() {}
-
void CannedBrowsingDataIndexedDBHelper::ConvertPendingInfoInWebKitThread() {
base::AutoLock auto_lock(lock_);
- for (std::list<PendingIndexedDBInfo>::const_iterator
+ indexed_db_info_.clear();
+ for (std::set<PendingIndexedDBInfo>::const_iterator
info = pending_indexed_db_info_.begin();
info != pending_indexed_db_info_.end(); ++info) {
- bool duplicate = false;
- for (std::list<IndexedDBInfo>::iterator
- indexed_db = indexed_db_info_.begin();
- indexed_db != indexed_db_info_.end(); ++indexed_db) {
- if (indexed_db->origin == info->origin) {
- duplicate = true;
- break;
- }
- }
- if (duplicate)
- continue;
-
indexed_db_info_.push_back(IndexedDBInfo(
info->origin,
0,
base::Time()));
}
- pending_indexed_db_info_.clear();
- BrowserThread::PostTask(
- BrowserThread::UI, FROM_HERE,
- base::Bind(&CannedBrowsingDataIndexedDBHelper::NotifyInUIThread, this));
+ BrowserThread::PostTask(
+ BrowserThread::UI, FROM_HERE,
+ base::Bind(&CannedBrowsingDataIndexedDBHelper::NotifyInUIThread, this));
}
void CannedBrowsingDataIndexedDBHelper::NotifyInUIThread() {
« 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