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

Unified Diff: content/browser/renderer_host/database_message_filter.cc

Issue 1832473002: WebSQL: Use url::Origin rather than database identifiers for IPC (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 9 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/renderer_host/database_message_filter.h ('k') | content/child/database_util.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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
« no previous file with comments | « content/browser/renderer_host/database_message_filter.h ('k') | content/child/database_util.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698