Index: content/browser/renderer_host/quota_dispatcher_host.cc |
diff --git a/content/browser/renderer_host/quota_dispatcher_host.cc b/content/browser/renderer_host/quota_dispatcher_host.cc |
index b6348203225f49a0aa3f0496f99c755eb4061bb8..707599da489c797c25913b6d62bae12247730626 100644 |
--- a/content/browser/renderer_host/quota_dispatcher_host.cc |
+++ b/content/browser/renderer_host/quota_dispatcher_host.cc |
@@ -19,6 +19,10 @@ using quota::StorageType; |
namespace content { |
+namespace { |
+const int kDefaultThreadId = 0; |
+} |
+ |
// Created one per request to carry the request's request_id around. |
// Dispatches requests from renderer/worker to the QuotaManager and |
// sends back the response to the renderer/worker. |
@@ -58,8 +62,10 @@ class QuotaDispatcherHost::QueryUsageAndQuotaDispatcher |
public: |
QueryUsageAndQuotaDispatcher( |
QuotaDispatcherHost* dispatcher_host, |
+ int ipc_thread_id, |
int request_id) |
: RequestDispatcher(dispatcher_host, request_id), |
+ ipc_thread_id_(ipc_thread_id), |
weak_factory_(this) {} |
virtual ~QueryUsageAndQuotaDispatcher() {} |
@@ -75,14 +81,16 @@ class QuotaDispatcherHost::QueryUsageAndQuotaDispatcher |
QuotaStatusCode status, int64 usage, int64 quota) { |
DCHECK(dispatcher_host()); |
if (status != quota::kQuotaStatusOk) { |
- dispatcher_host()->Send(new QuotaMsg_DidFail(request_id(), status)); |
+ dispatcher_host()->Send(new QuotaMsg_DidFail( |
+ ipc_thread_id_, request_id(), status)); |
} else { |
dispatcher_host()->Send(new QuotaMsg_DidQueryStorageUsageAndQuota( |
- request_id(), usage, quota)); |
+ ipc_thread_id_, request_id(), usage, quota)); |
} |
Completed(); |
} |
+ int ipc_thread_id_; |
base::WeakPtrFactory<QueryUsageAndQuotaDispatcher> weak_factory_; |
}; |
@@ -180,10 +188,11 @@ class QuotaDispatcherHost::RequestQuotaDispatcher |
void DidFinish(QuotaStatusCode status, int64 granted_quota) { |
DCHECK(dispatcher_host()); |
if (status != quota::kQuotaStatusOk) { |
- dispatcher_host()->Send(new QuotaMsg_DidFail(request_id(), status)); |
+ dispatcher_host()->Send( |
+ new QuotaMsg_DidFail(kDefaultThreadId, request_id(), status)); |
} else { |
dispatcher_host()->Send(new QuotaMsg_DidGrantStorageQuota( |
- request_id(), granted_quota)); |
+ kDefaultThreadId, request_id(), granted_quota)); |
} |
Completed(); |
} |
@@ -223,11 +232,12 @@ bool QuotaDispatcherHost::OnMessageReceived( |
QuotaDispatcherHost::~QuotaDispatcherHost() {} |
void QuotaDispatcherHost::OnQueryStorageUsageAndQuota( |
+ int ipc_thread_id, |
int request_id, |
const GURL& origin, |
StorageType type) { |
QueryUsageAndQuotaDispatcher* dispatcher = new QueryUsageAndQuotaDispatcher( |
- this, request_id); |
+ this, ipc_thread_id, request_id); |
dispatcher->QueryStorageUsageAndQuota(origin, type); |
} |
@@ -239,14 +249,16 @@ void QuotaDispatcherHost::OnRequestStorageQuota( |
int64 requested_size) { |
if (quota_manager_->IsStorageUnlimited(origin, type)) { |
// If the origin is marked 'unlimited' we always just return ok. |
- Send(new QuotaMsg_DidGrantStorageQuota(request_id, requested_size)); |
+ Send(new QuotaMsg_DidGrantStorageQuota( |
+ kDefaultThreadId, request_id, requested_size)); |
return; |
} |
if (type != quota::kStorageTypeTemporary && |
type != quota::kStorageTypePersistent) { |
// Unsupported storage types. |
- Send(new QuotaMsg_DidFail(request_id, quota::kQuotaErrorNotSupported)); |
+ Send(new QuotaMsg_DidFail( |
+ kDefaultThreadId, request_id, quota::kQuotaErrorNotSupported)); |
return; |
} |