Chromium Code Reviews| Index: content/child/resource_dispatcher.h |
| diff --git a/content/child/resource_dispatcher.h b/content/child/resource_dispatcher.h |
| index 11485286edaa714b04f92a3442c19b8627ff9773..aa80bbcaf57842adc8f33b95f1b4a332ab909830 100644 |
| --- a/content/child/resource_dispatcher.h |
| +++ b/content/child/resource_dispatcher.h |
| @@ -22,10 +22,12 @@ |
| #include "base/single_thread_task_runner.h" |
| #include "base/time/time.h" |
| #include "content/common/content_export.h" |
| +#include "content/common/url_loader.mojom.h" |
| #include "content/public/common/resource_type.h" |
| #include "ipc/ipc_listener.h" |
| #include "ipc/ipc_sender.h" |
| #include "net/base/request_priority.h" |
| +#include "third_party/WebKit/public/platform/WebURLRequest.h" |
| #include "url/gurl.h" |
| namespace net { |
| @@ -46,6 +48,10 @@ class SharedMemoryReceivedDataFactory; |
| struct SiteIsolationResponseMetaData; |
| struct SyncLoadResponse; |
| +namespace mojom { |
| +class URLLoaderFactory; |
| +} // namespace mojom |
| + |
| // This class serves as a communication interface to the ResourceDispatcherHost |
| // in the browser process. It can be used from any child process. |
| // Virtual methods are for tests. |
| @@ -68,14 +74,18 @@ class CONTENT_EXPORT ResourceDispatcher : public IPC::Listener { |
| // response parameter. |
| virtual void StartSync(const RequestInfo& request_info, |
| ResourceRequestBodyImpl* request_body, |
| - SyncLoadResponse* response); |
| + SyncLoadResponse* response, |
| + blink::WebURLRequest::LoadingIPCType ipc_type, |
| + mojom::URLLoaderFactory* url_loader_factory); |
| // Call this method to initiate the request. If this method succeeds, then |
| // the peer's methods will be called asynchronously to report various events. |
| // Returns the request id. |
|
kinuko
2016/08/08 15:47:25
nit: "|url_loader_factory| must be non-null if |ip
yhirano
2016/08/09 06:35:48
Done.
|
| virtual int StartAsync(const RequestInfo& request_info, |
| ResourceRequestBodyImpl* request_body, |
| - std::unique_ptr<RequestPeer> peer); |
| + std::unique_ptr<RequestPeer> peer, |
| + blink::WebURLRequest::LoadingIPCType ipc_type, |
| + mojom::URLLoaderFactory* url_loader_factory); |
| // Removes a request from the |pending_requests_| list, returning true if the |
| // request was found and removed. |
| @@ -119,6 +129,7 @@ class CONTENT_EXPORT ResourceDispatcher : public IPC::Listener { |
| scoped_refptr<ResourceSchedulingFilter> resource_scheduling_filter); |
| private: |
| + friend class URLResponseBodyConsumer; |
| friend class ResourceDispatcherTest; |
| typedef std::deque<IPC::Message*> MessageQueue; |
| @@ -155,6 +166,10 @@ class CONTENT_EXPORT ResourceDispatcher : public IPC::Listener { |
| scoped_refptr<SharedMemoryReceivedDataFactory> received_data_factory; |
| std::unique_ptr<SiteIsolationResponseMetaData> site_isolation_metadata; |
| int buffer_size; |
| + |
| + // For mojo loading. |
| + mojom::URLLoaderPtr url_loader; |
| + std::unique_ptr<mojom::URLLoaderClient> url_loader_client; |
| }; |
| using PendingRequestMap = std::map<int, std::unique_ptr<PendingRequestInfo>>; |