| Index: content/browser/renderer_host/websocket_dispatcher_host.h
|
| diff --git a/content/browser/renderer_host/websocket_dispatcher_host.h b/content/browser/renderer_host/websocket_dispatcher_host.h
|
| index 56c5f3aaa5d74ab81f5eebe64b8b0eff53dce6e2..5d5c804ddf3e98edb607403c52b889fada6560da 100644
|
| --- a/content/browser/renderer_host/websocket_dispatcher_host.h
|
| +++ b/content/browser/renderer_host/websocket_dispatcher_host.h
|
| @@ -13,6 +13,7 @@
|
| #include "base/compiler_specific.h"
|
| #include "base/containers/hash_tables.h"
|
| #include "base/macros.h"
|
| +#include "base/memory/ref_counted.h"
|
| #include "base/time/time.h"
|
| #include "base/timer/timer.h"
|
| #include "content/common/content_export.h"
|
| @@ -23,8 +24,14 @@ namespace net {
|
| class URLRequestContext;
|
| } // namespace net
|
|
|
| +namespace storage {
|
| +class BlobStorageContext;
|
| +}
|
| +
|
| namespace content {
|
|
|
| +class ChromeBlobStorageContext;
|
| +class StoragePartition;
|
| struct WebSocketHandshakeRequest;
|
| struct WebSocketHandshakeResponse;
|
| class WebSocketHost;
|
| @@ -49,9 +56,10 @@ class CONTENT_EXPORT WebSocketDispatcherHost : public BrowserMessageFilter {
|
| WEBSOCKET_HOST_DELETED
|
| };
|
|
|
| - WebSocketDispatcherHost(
|
| - int process_id,
|
| - const GetRequestContextCallback& get_context_callback);
|
| + WebSocketDispatcherHost(int process_id,
|
| + const GetRequestContextCallback& get_context_callback,
|
| + ChromeBlobStorageContext* blob_storage_context,
|
| + StoragePartition* storage_partition);
|
|
|
| // BrowserMessageFilter:
|
| bool OnMessageReceived(const IPC::Message& message) override;
|
| @@ -96,6 +104,8 @@ class CONTENT_EXPORT WebSocketDispatcherHost : public BrowserMessageFilter {
|
| int routing_id,
|
| const std::string& message) WARN_UNUSED_RESULT;
|
|
|
| + WebSocketHostState BlobSendComplete(int routing_id);
|
| +
|
| // Sends a WebSocketMsg_DropChannel IPC and deletes and unregisters the
|
| // channel.
|
| WebSocketHostState DoDropChannel(int routing_id,
|
| @@ -109,6 +119,13 @@ class CONTENT_EXPORT WebSocketDispatcherHost : public BrowserMessageFilter {
|
|
|
| int render_process_id() const { return process_id_; }
|
|
|
| + // Returns a BlobStorageContext associated with this object's render process.
|
| + // The pointer will be valid for as long this object is.
|
| + storage::BlobStorageContext* blob_storage_context() const;
|
| +
|
| + // Returns the StoragePartition associated with this render process.
|
| + StoragePartition* storage_partition() const { return storage_partition_; }
|
| +
|
| protected:
|
| // For testing. Specify a factory method that creates mock version of
|
| // WebSocketHost.
|
| @@ -181,6 +198,12 @@ class CONTENT_EXPORT WebSocketDispatcherHost : public BrowserMessageFilter {
|
| int64_t num_current_failed_connections_;
|
| int64_t num_previous_failed_connections_;
|
|
|
| + // Needed to read from blobs for browser-side blob sending.
|
| + const scoped_refptr<const ChromeBlobStorageContext> blob_storage_context_;
|
| +
|
| + // Needed to access to the StoragePartition for browser-side blob sending.
|
| + StoragePartition* const storage_partition_;
|
| +
|
| DISALLOW_COPY_AND_ASSIGN(WebSocketDispatcherHost);
|
| };
|
|
|
|
|