Index: content/browser/renderer_host/database_message_filter.cc |
diff --git a/content/browser/renderer_host/database_message_filter.cc b/content/browser/renderer_host/database_message_filter.cc |
index 98d930629a177c2e3af031b6daa5ea0db531228e..c19a628e62ef95c542def6d0dd6e0bc19579c35f 100644 |
--- a/content/browser/renderer_host/database_message_filter.cc |
+++ b/content/browser/renderer_host/database_message_filter.cc |
@@ -25,6 +25,7 @@ |
#include "storage/browser/quota/quota_manager_proxy.h" |
#include "storage/common/database/database_identifier.h" |
#include "third_party/sqlite/sqlite3.h" |
+#include "url/origin.h" |
#if defined(OS_POSIX) |
#include "base/file_descriptor_posix.h" |
@@ -250,7 +251,7 @@ void DatabaseMessageFilter::OnDatabaseGetFileSize( |
} |
void DatabaseMessageFilter::OnDatabaseGetSpaceAvailable( |
- const std::string& origin_identifier, IPC::Message* reply_msg) { |
+ const url::Origin& origin, IPC::Message* reply_msg) { |
DCHECK_CURRENTLY_ON(BrowserThread::IO); |
DCHECK(db_tracker_->quota_manager_proxy()); |
@@ -268,7 +269,7 @@ void DatabaseMessageFilter::OnDatabaseGetSpaceAvailable( |
TRACE_EVENT0("io", "DatabaseMessageFilter::OnDatabaseGetSpaceAvailable"); |
quota_manager->GetUsageAndQuota( |
- storage::GetOriginFromIdentifier(origin_identifier), |
+ GURL(origin.Serialize()), |
jsbell
2016/03/23 20:33:05
Any use of GURL(url::Origin::Serialize()) indicate
Mike West
2016/03/24 15:06:06
This LGTM, with the same caveat as the other CL. I
|
storage::kStorageTypeTemporary, |
base::Bind( |
&DatabaseMessageFilter::OnDatabaseGetUsageAndQuota, this, reply_msg)); |
@@ -299,36 +300,32 @@ void DatabaseMessageFilter::OnDatabaseSetFileSize( |
} |
void DatabaseMessageFilter::OnDatabaseOpened( |
- const std::string& origin_identifier, |
+ const url::Origin& origin, |
const base::string16& database_name, |
const base::string16& description, |
int64_t estimated_size) { |
DCHECK_CURRENTLY_ON(BrowserThread::FILE); |
- if (!storage::IsValidOriginIdentifier(origin_identifier)) { |
- bad_message::ReceivedBadMessage(this, |
- bad_message::DBMF_INVALID_ORIGIN_ON_OPEN); |
- return; |
- } |
- |
- UMA_HISTOGRAM_BOOLEAN( |
- "websql.OpenDatabase", |
- IsOriginSecure(storage::GetOriginFromIdentifier(origin_identifier))); |
+ GURL origin_url(origin.Serialize()); |
+ UMA_HISTOGRAM_BOOLEAN("websql.OpenDatabase", IsOriginSecure(origin_url)); |
int64_t database_size = 0; |
+ std::string origin_identifier(storage::GetIdentifierFromOrigin(origin_url)); |
db_tracker_->DatabaseOpened(origin_identifier, database_name, description, |
estimated_size, &database_size); |
+ |
database_connections_.AddConnection(origin_identifier, database_name); |
- Send(new DatabaseMsg_UpdateSize(origin_identifier, database_name, |
- database_size)); |
+ Send(new DatabaseMsg_UpdateSize(origin, database_name, database_size)); |
} |
void DatabaseMessageFilter::OnDatabaseModified( |
- const std::string& origin_identifier, |
+ const url::Origin& origin, |
const base::string16& database_name) { |
DCHECK_CURRENTLY_ON(BrowserThread::FILE); |
- if (!database_connections_.IsDatabaseOpened( |
- origin_identifier, database_name)) { |
+ std::string origin_identifier( |
+ storage::GetIdentifierFromOrigin(GURL(origin.Serialize()))); |
+ if (!database_connections_.IsDatabaseOpened(origin_identifier, |
+ database_name)) { |
bad_message::ReceivedBadMessage(this, |
bad_message::DBMF_DB_NOT_OPEN_ON_MODIFY); |
return; |
@@ -338,9 +335,11 @@ void DatabaseMessageFilter::OnDatabaseModified( |
} |
void DatabaseMessageFilter::OnDatabaseClosed( |
- const std::string& origin_identifier, |
+ const url::Origin& origin, |
const base::string16& database_name) { |
DCHECK_CURRENTLY_ON(BrowserThread::FILE); |
+ std::string origin_identifier( |
+ storage::GetIdentifierFromOrigin(GURL(origin.Serialize()))); |
if (!database_connections_.IsDatabaseOpened( |
origin_identifier, database_name)) { |
bad_message::ReceivedBadMessage(this, |
@@ -353,17 +352,13 @@ void DatabaseMessageFilter::OnDatabaseClosed( |
} |
void DatabaseMessageFilter::OnHandleSqliteError( |
- const std::string& origin_identifier, |
+ const url::Origin& origin, |
const base::string16& database_name, |
int error) { |
DCHECK_CURRENTLY_ON(BrowserThread::FILE); |
- if (!storage::IsValidOriginIdentifier(origin_identifier)) { |
- bad_message::ReceivedBadMessage( |
- this, bad_message::DBMF_INVALID_ORIGIN_ON_SQLITE_ERROR); |
- return; |
- } |
- |
- db_tracker_->HandleSqliteError(origin_identifier, database_name, error); |
+ db_tracker_->HandleSqliteError( |
+ storage::GetIdentifierFromOrigin(GURL(origin.Serialize())), database_name, |
+ error); |
} |
void DatabaseMessageFilter::OnDatabaseSizeChanged( |
@@ -372,8 +367,9 @@ void DatabaseMessageFilter::OnDatabaseSizeChanged( |
int64_t database_size) { |
DCHECK_CURRENTLY_ON(BrowserThread::FILE); |
if (database_connections_.IsOriginUsed(origin_identifier)) { |
- Send(new DatabaseMsg_UpdateSize(origin_identifier, database_name, |
- database_size)); |
+ Send(new DatabaseMsg_UpdateSize( |
+ url::Origin(storage::GetOriginFromIdentifier(origin_identifier)), |
+ database_name, database_size)); |
} |
} |
@@ -381,7 +377,9 @@ void DatabaseMessageFilter::OnDatabaseScheduledForDeletion( |
const std::string& origin_identifier, |
const base::string16& database_name) { |
DCHECK_CURRENTLY_ON(BrowserThread::FILE); |
- Send(new DatabaseMsg_CloseImmediately(origin_identifier, database_name)); |
+ Send(new DatabaseMsg_CloseImmediately( |
+ url::Origin(storage::GetOriginFromIdentifier(origin_identifier)), |
+ database_name)); |
} |
} // namespace content |