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

Unified Diff: chrome/browser/renderer_host/database_dispatcher_host.cc

Issue 507014: Adding methods that will be used by the quota management UI.... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 10 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 | « chrome/browser/renderer_host/database_dispatcher_host.h ('k') | webkit/database/database_connections.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/renderer_host/database_dispatcher_host.cc
===================================================================
--- chrome/browser/renderer_host/database_dispatcher_host.cc (revision 35502)
+++ chrome/browser/renderer_host/database_dispatcher_host.cc (working copy)
@@ -67,6 +67,12 @@
void DatabaseDispatcherHost::RemoveObserver() {
DCHECK(ChromeThread::CurrentlyOn(ChromeThread::FILE));
+
+ // If the renderer process died without closing all databases,
+ // then we need to manually close those connections
+ db_tracker_->CloseDatabases(database_connections_);
+ database_connections_.RemoveAllConnections();
+
db_tracker_->RemoveObserver(this);
}
@@ -305,7 +311,7 @@
DCHECK(ChromeThread::CurrentlyOn(ChromeThread::FILE));
int64 database_size = 0;
int64 space_available = 0;
- AddAccessedOrigin(origin_identifier);
+ database_connections_.AddConnection(origin_identifier, database_name);
db_tracker_->DatabaseOpened(origin_identifier, database_name, description,
estimated_size, &database_size, &space_available);
ChromeThread::PostTask(
@@ -331,7 +337,8 @@
void DatabaseDispatcherHost::DatabaseModified(const string16& origin_identifier,
const string16& database_name) {
DCHECK(ChromeThread::CurrentlyOn(ChromeThread::FILE));
- if (!HasAccessedOrigin(origin_identifier)) {
+ if (!database_connections_.IsDatabaseOpened(
+ origin_identifier, database_name)) {
ReceivedBadMessage(ViewHostMsg_DatabaseModified::ID);
return;
}
@@ -352,12 +359,14 @@
void DatabaseDispatcherHost::DatabaseClosed(const string16& origin_identifier,
const string16& database_name) {
DCHECK(ChromeThread::CurrentlyOn(ChromeThread::FILE));
- if (!HasAccessedOrigin(origin_identifier)) {
+ if (!database_connections_.IsDatabaseOpened(
+ origin_identifier, database_name)) {
ReceivedBadMessage(ViewHostMsg_DatabaseClosed::ID);
return;
}
db_tracker_->DatabaseClosed(origin_identifier, database_name);
+ database_connections_.RemoveConnection(origin_identifier, database_name);
}
void DatabaseDispatcherHost::OnDatabaseSizeChanged(
@@ -366,7 +375,7 @@
int64 database_size,
int64 space_available) {
DCHECK(ChromeThread::CurrentlyOn(ChromeThread::FILE));
- if (HasAccessedOrigin(origin_identifier)) {
+ if (database_connections_.IsOriginUsed(origin_identifier)) {
ChromeThread::PostTask(
ChromeThread::IO, FROM_HERE,
NewRunnableMethod(this,
@@ -376,15 +385,3 @@
database_size, space_available)));
}
}
-
-void DatabaseDispatcherHost::AddAccessedOrigin(
- const string16& origin_identifier) {
- DCHECK(ChromeThread::CurrentlyOn(ChromeThread::FILE));
- accessed_origins_.insert(origin_identifier);
-}
-
-bool DatabaseDispatcherHost::HasAccessedOrigin(
- const string16& origin_identifier) {
- DCHECK(ChromeThread::CurrentlyOn(ChromeThread::FILE));
- return (accessed_origins_.find(origin_identifier) != accessed_origins_.end());
-}
« no previous file with comments | « chrome/browser/renderer_host/database_dispatcher_host.h ('k') | webkit/database/database_connections.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698