Chromium Code Reviews| 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 |