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

Unified Diff: webkit/database/database_tracker.h

Issue 600104: Actually delete databases in CookiesTreeModel. (Closed)
Patch Set: fixed comments Created 10 years, 10 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
« no previous file with comments | « chrome/browser/views/options/cookies_view.cc ('k') | webkit/database/database_tracker.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webkit/database/database_tracker.h
diff --git a/webkit/database/database_tracker.h b/webkit/database/database_tracker.h
index a6c7720560e60548f91d94833aea8f76b7b2f1bc..139e5fee32d5ea5624df5a9b9882df16d4a23ff8 100644
--- a/webkit/database/database_tracker.h
+++ b/webkit/database/database_tracker.h
@@ -41,28 +41,26 @@ class OriginInfo {
int64 TotalSize() const { return total_size_; }
int64 Quota() const { return quota_; }
void GetAllDatabaseNames(std::vector<string16>* databases) const {
- for (std::map<string16, DatabaseInfo>::const_iterator it =
- database_info_.begin(); it != database_info_.end(); it++) {
+ for (DatabaseInfoMap::const_iterator it = database_info_.begin();
+ it != database_info_.end(); it++) {
databases->push_back(it->first);
}
}
int64 GetDatabaseSize(const string16& database_name) const {
- std::map<string16, DatabaseInfo>::const_iterator it =
- database_info_.find(database_name);
+ DatabaseInfoMap::const_iterator it = database_info_.find(database_name);
if (it != database_info_.end())
return it->second.first;
return 0;
}
string16 GetDatabaseDescription(const string16& database_name) const {
- std::map<string16, DatabaseInfo>::const_iterator it =
- database_info_.find(database_name);
+ DatabaseInfoMap::const_iterator it = database_info_.find(database_name);
if (it != database_info_.end())
return it->second.second;
return string16();
}
protected:
- typedef std::pair<int64, string16> DatabaseInfo;
+ typedef std::map<string16, std::pair<int64, string16> > DatabaseInfoMap;
OriginInfo(const string16& origin, int64 total_size, int64 quota)
: origin_(origin), total_size_(total_size), quota_(quota) { }
@@ -70,7 +68,7 @@ class OriginInfo {
string16 origin_;
int64 total_size_;
int64 quota_;
- std::map<string16, DatabaseInfo> database_info_;
+ DatabaseInfoMap database_info_;
};
// This class manages the main database, and keeps track of per origin quotas.
@@ -101,9 +99,6 @@ class DatabaseTracker
explicit DatabaseTracker(const FilePath& profile_path);
- // Sets the default quota for all origins. Should be used in tests only.
- void SetDefaultQuota(int64 quota);
-
void DatabaseOpened(const string16& origin_identifier,
const string16& database_name,
const string16& database_details,
@@ -129,16 +124,24 @@ class DatabaseTracker
bool GetAllOriginsInfo(std::vector<OriginInfo>* origins_info);
void SetOriginQuota(const string16& origin_identifier, int64 new_quota);
- bool DeleteDatabase(const string16& origin_identifier,
- const string16& database_name);
- bool DeleteOrigin(const string16& origin_identifier);
+
+ // Sets the default quota for all origins. Should be used in tests only.
+ void SetDefaultQuota(int64 quota);
+
bool IsDatabaseScheduledForDeletion(const string16& origin_identifier,
const string16& database_name);
+ // Deletes a single database. Returns net::OK on success, net::FAILED on
+ // failure, or net::ERR_IO_PENDING and |callback| is invoked upon completion,
+ // if non-NULL.
+ int DeleteDatabase(const string16& origin_identifier,
+ const string16& database_name,
+ net::CompletionCallback* callback);
+
// Delete any databases that have been touched since the cutoff date that's
// supplied. Returns net::OK on success, net::FAILED if not all databases
// could be deleted, and net::ERR_IO_PENDING and |callback| is invoked upon
- // completion.
+ // completion, if non-NULL.
int DeleteDataModifiedSince(const base::Time& cutoff,
net::CompletionCallback* callback);
@@ -148,6 +151,9 @@ class DatabaseTracker
// Need this here to allow RefCountedThreadSafe to call ~DatabaseTracker().
friend class base::RefCountedThreadSafe<DatabaseTracker>;
+ typedef std::map<string16, std::set<string16> > DatabaseSet;
+ typedef std::map<net::CompletionCallback*, DatabaseSet> PendingCompletionMap;
+
class CachedOriginInfo : public OriginInfo {
public:
CachedOriginInfo() : OriginInfo(string16(), 0, 0) {}
@@ -169,6 +175,10 @@ class DatabaseTracker
~DatabaseTracker();
+ bool DeleteClosedDatabase(const string16& origin_identifier,
+ const string16& database_name);
+ bool DeleteOrigin(const string16& origin_identifier);
+
bool LazyInit();
bool UpgradeToCurrentVersion();
void InsertOrUpdateDatabaseDetails(const string16& origin_identifier,
@@ -200,8 +210,8 @@ class DatabaseTracker
DatabaseConnections database_connections_;
// The set of databases that should be deleted but are still opened
- std::map<string16, std::set<string16> > dbs_to_be_deleted_;
- net::CompletionCallback* dbs_deleted_callback_;
+ DatabaseSet dbs_to_be_deleted_;
+ PendingCompletionMap deletion_callbacks_;
// Default quota for all origins; changed only by tests
int64 default_quota_;
« no previous file with comments | « chrome/browser/views/options/cookies_view.cc ('k') | webkit/database/database_tracker.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698