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

Unified Diff: content/browser/indexed_db/indexed_db_factory.h

Issue 93873017: IndexedDBFactory now ForceCloses databases. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fixed memory leak Created 6 years, 11 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 | « content/browser/indexed_db/indexed_db_database.cc ('k') | content/browser/indexed_db/indexed_db_factory.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/browser/indexed_db/indexed_db_factory.h
diff --git a/content/browser/indexed_db/indexed_db_factory.h b/content/browser/indexed_db/indexed_db_factory.h
index ae0d9364f3bc5a08206428031f5025ea6f2bce4b..e42d4fa9180f90c81ca39d19d181877092433b95 100644
--- a/content/browser/indexed_db/indexed_db_factory.h
+++ b/content/browser/indexed_db/indexed_db_factory.h
@@ -26,6 +26,9 @@ class IndexedDBContextImpl;
class CONTENT_EXPORT IndexedDBFactory
: NON_EXPORTED_BASE(public base::RefCountedThreadSafe<IndexedDBFactory>) {
public:
+ typedef std::multimap<GURL, IndexedDBDatabase*> OriginDBMap;
+ typedef OriginDBMap::const_iterator OriginDBMapIterator;
+
explicit IndexedDBFactory(IndexedDBContextImpl* context);
// Notifications from weak pointers.
@@ -50,8 +53,7 @@ class CONTENT_EXPORT IndexedDBFactory
void HandleBackingStoreFailure(const GURL& origin_url);
- // Iterates over all databases; for diagnostics only.
- std::vector<IndexedDBDatabase*> GetOpenDatabasesForOrigin(
+ std::pair<OriginDBMapIterator, OriginDBMapIterator> GetOpenDatabasesForOrigin(
const GURL& origin_url) const;
// Called by IndexedDBContext after all connections are closed, to
@@ -64,6 +66,8 @@ class CONTENT_EXPORT IndexedDBFactory
// Called by an IndexedDBDatabase when it is actually deleted.
void DatabaseDeleted(const IndexedDBDatabase::Identifier& identifier);
+ size_t GetConnectionCount(const GURL& origin_url) const;
+
protected:
friend class base::RefCountedThreadSafe<IndexedDBFactory>;
@@ -104,12 +108,14 @@ class CONTENT_EXPORT IndexedDBFactory
const base::string16& name) const;
bool IsBackingStoreOpen(const GURL& origin_url) const;
bool IsBackingStorePendingClose(const GURL& origin_url) const;
+ void RemoveDatabaseFromMaps(const IndexedDBDatabase::Identifier& identifier);
IndexedDBContextImpl* context_;
typedef std::map<IndexedDBDatabase::Identifier,
IndexedDBDatabase*> IndexedDBDatabaseMap;
IndexedDBDatabaseMap database_map_;
+ OriginDBMap origin_dbs_;
typedef std::map<GURL, scoped_refptr<IndexedDBBackingStore> >
IndexedDBBackingStoreMap;
« no previous file with comments | « content/browser/indexed_db/indexed_db_database.cc ('k') | content/browser/indexed_db/indexed_db_factory.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698