| Index: content/browser/blob_storage/blob_dispatcher_host.h
|
| diff --git a/content/browser/blob_storage/blob_dispatcher_host.h b/content/browser/blob_storage/blob_dispatcher_host.h
|
| index f9d1a98881e7556a12bf96bee12bb74c5975db21..b3bf551296d3d930eeb506f0d9e0269ea08b0434 100644
|
| --- a/content/browser/blob_storage/blob_dispatcher_host.h
|
| +++ b/content/browser/blob_storage/blob_dispatcher_host.h
|
| @@ -15,7 +15,10 @@
|
| #include "base/memory/ref_counted.h"
|
| #include "base/memory/shared_memory_handle.h"
|
| #include "content/common/content_export.h"
|
| +#include "content/common/blob.mojom.h"
|
| +#include "content/public/browser/browser_associated_interface.h"
|
| #include "content/public/browser/browser_message_filter.h"
|
| +#include "mojo/public/cpp/bindings/associated_binding_set.h"
|
| #include "storage/browser/blob/blob_async_builder_host.h"
|
| #include "storage/browser/blob/blob_transport_result.h"
|
| #include "storage/common/blob_storage/blob_storage_constants.h"
|
| @@ -44,7 +47,11 @@ class ChromeBlobStorageContext;
|
| // that process go away upon destruction of the instance.
|
| // This lives in the browser process, is single threaded (IO thread), and there
|
| // is one per child process.
|
| -class CONTENT_EXPORT BlobDispatcherHost : public BrowserMessageFilter {
|
| +class CONTENT_EXPORT BlobDispatcherHost
|
| + : public BrowserMessageFilter,
|
| + public BrowserAssociatedInterface<mojom::BlobFactory>,
|
| + public mojom::BlobFactory,
|
| + public mojom::Blob {
|
| public:
|
| BlobDispatcherHost(
|
| int process_id,
|
| @@ -100,18 +107,17 @@ class CONTENT_EXPORT BlobDispatcherHost : public BrowserMessageFilter {
|
|
|
| typedef std::map<std::string, int> BlobReferenceMap;
|
|
|
| - void OnRegisterBlobUUID(const std::string& uuid,
|
| - const std::string& content_type,
|
| - const std::string& content_disposition,
|
| - const std::set<std::string>& referenced_blob_uuids);
|
| - void OnStartBuildingBlob(
|
| - const std::string& uuid,
|
| - const std::vector<storage::DataElement>& descriptions);
|
| + // mojom::BlobFactory:
|
| + void BuildBlob(const std::string& uuid,
|
| + const std::string& content_type,
|
| + const std::string& content_disposition,
|
| + const std::vector<std::string>& referenced_blob_uuids,
|
| + const std::vector<storage::DataElement>& item_descriptions,
|
| + const BuildBlobCallback& callback);
|
| +
|
| void OnMemoryItemResponse(
|
| const std::string& uuid,
|
| const std::vector<storage::BlobItemBytesResponse>& response);
|
| - void OnCancelBuildingBlob(const std::string& uuid,
|
| - const storage::IPCBlobCreationCancelCode code);
|
|
|
| void OnIncrementBlobRefCount(const std::string& uuid);
|
| void OnDecrementBlobRefCount(const std::string& uuid);
|
| @@ -127,7 +133,7 @@ class CONTENT_EXPORT BlobDispatcherHost : public BrowserMessageFilter {
|
| std::unique_ptr<std::vector<base::File>> files);
|
|
|
| // Send the appropriate IPC response to the renderer for the given result.
|
| - void SendIPCResponse(const std::string& uuid,
|
| + void SendIPCResponse(const BuildBlobCallback& callback,
|
| storage::BlobTransportResult result);
|
|
|
| bool IsInUseInHost(const std::string& uuid);
|
| @@ -149,7 +155,11 @@ class CONTENT_EXPORT BlobDispatcherHost : public BrowserMessageFilter {
|
| scoped_refptr<ChromeBlobStorageContext> blob_storage_context_;
|
| storage::BlobAsyncBuilderHost async_builder_;
|
|
|
| + mojo::AssociatedBindingSet<mojom::Blob> blob_bindings_;
|
| +
|
| DISALLOW_COPY_AND_ASSIGN(BlobDispatcherHost);
|
| };
|
| +
|
| } // namespace content
|
| +
|
| #endif // CONTENT_BROWSER_BLOB_STORAGE_BLOB_DISPATCHER_HOST_H_
|
|
|