| Index: content/child/resource_dispatcher.cc
|
| diff --git a/content/child/resource_dispatcher.cc b/content/child/resource_dispatcher.cc
|
| index ec4cb56c3551c57b5467e08dfac4f6cec6c5cfec..8ddfa8b7bc459a82fe563be3ef50573b2e0629d8 100644
|
| --- a/content/child/resource_dispatcher.cc
|
| +++ b/content/child/resource_dispatcher.cc
|
| @@ -89,6 +89,9 @@ class URLLoaderClientImpl final : public mojom::URLLoaderClient {
|
| }
|
|
|
| void OnReceiveResponse(const ResourceResponseHead& response_head) override {
|
| + has_received_response_ = true;
|
| + if (body_consumer_)
|
| + body_consumer_->Start(task_runner_.get());
|
| resource_dispatcher_->OnMessageReceived(
|
| ResourceMsg_ReceivedResponse(request_id_, response_head));
|
| }
|
| @@ -98,6 +101,8 @@ class URLLoaderClientImpl final : public mojom::URLLoaderClient {
|
| DCHECK(!body_consumer_);
|
| body_consumer_ = new URLResponseBodyConsumer(
|
| request_id_, resource_dispatcher_, std::move(body), task_runner_);
|
| + if (has_received_response_)
|
| + body_consumer_->Start(task_runner_.get());
|
| }
|
|
|
| void OnComplete(const ResourceRequestCompletionStatus& status) override {
|
| @@ -117,6 +122,7 @@ class URLLoaderClientImpl final : public mojom::URLLoaderClient {
|
| mojo::Binding<mojom::URLLoaderClient> binding_;
|
| scoped_refptr<URLResponseBodyConsumer> body_consumer_;
|
| const int request_id_;
|
| + bool has_received_response_ = false;
|
| ResourceDispatcher* const resource_dispatcher_;
|
| scoped_refptr<base::SingleThreadTaskRunner> task_runner_;
|
| };
|
|
|