Index: content/browser/loader/resource_message_filter.h |
diff --git a/content/browser/loader/resource_message_filter.h b/content/browser/loader/resource_message_filter.h |
index d4c059a08cd4bd1e81a11d5a18a59a4307ca4905..e64a5c3a6aab17b4dbfb60fb675495ac4c359d77 100644 |
--- a/content/browser/loader/resource_message_filter.h |
+++ b/content/browser/loader/resource_message_filter.h |
@@ -10,8 +10,11 @@ |
#include "base/callback_forward.h" |
#include "base/macros.h" |
#include "base/memory/weak_ptr.h" |
+#include "base/sequenced_task_runner_helpers.h" |
#include "content/common/content_export.h" |
+#include "content/common/url_loader.mojom.h" |
#include "content/public/browser/browser_message_filter.h" |
+#include "content/public/browser/browser_thread.h" |
#include "content/public/common/resource_type.h" |
namespace storage { |
@@ -28,6 +31,7 @@ class ChromeAppCacheService; |
class ChromeBlobStorageContext; |
class ResourceContext; |
class ServiceWorkerContextWrapper; |
+struct GlobalRequestID; |
// This class filters out incoming IPC messages for network requests and |
// processes them on the IPC thread. As a result, network requests are not |
@@ -59,6 +63,7 @@ class CONTENT_EXPORT ResourceMessageFilter : public BrowserMessageFilter { |
// BrowserMessageFilter implementation. |
void OnChannelClosing() override; |
bool OnMessageReceived(const IPC::Message& message) override; |
+ void OnDestruct() const override; |
// |origin_pid| is only required for NPAPI plugin processes. Its value is |
// ignored otherwise. |
@@ -89,6 +94,15 @@ class CONTENT_EXPORT ResourceMessageFilter : public BrowserMessageFilter { |
int child_id() const { return child_id_; } |
int process_type() const { return process_type_; } |
+ // Call |OnStartLoadingResponseBody| for the URLLoaderClient associated with |
+ // |id|. |
+ void OnStartLoadingResponseBodyWithMojo( |
+ const GlobalRequestID& id, |
+ mojo::ScopedDataPipeConsumerHandle response_body); |
+ |
+ // IPC::Sender |
+ bool Send(IPC::Message* message) override; |
+ |
base::WeakPtr<ResourceMessageFilter> GetWeakPtr(); |
protected: |
@@ -96,6 +110,12 @@ class CONTENT_EXPORT ResourceMessageFilter : public BrowserMessageFilter { |
~ResourceMessageFilter() override; |
private: |
+ friend struct BrowserThread::DeleteOnThread<BrowserThread::IO>; |
+ friend class base::DeleteHelper<ResourceMessageFilter>; |
+ |
+ bool SendWithMojo(mojom::URLLoaderClient* client, |
+ const IPC::Message& message); |
+ |
// The ID of the child process. |
int child_id_; |