| Index: content/child/web_url_loader_impl.cc
|
| diff --git a/content/child/web_url_loader_impl.cc b/content/child/web_url_loader_impl.cc
|
| index 24e9015628194b6d2e2da9ccca66d1222ed60de1..518feec48c9224aab68b61807194d669ec0e9ffa 100644
|
| --- a/content/child/web_url_loader_impl.cc
|
| +++ b/content/child/web_url_loader_impl.cc
|
| @@ -22,7 +22,6 @@
|
| #include "base/time/time.h"
|
| #include "build/build_config.h"
|
| #include "components/mime_util/mime_util.h"
|
| -#include "components/scheduler/child/web_task_runner_impl.h"
|
| #include "content/child/child_thread_impl.h"
|
| #include "content/child/ftp_directory_listing_response_delegate.h"
|
| #include "content/child/request_extra_data.h"
|
| @@ -52,7 +51,7 @@
|
| #include "net/url_request/url_request_data_job.h"
|
| #include "third_party/WebKit/public/platform/WebHTTPLoadInfo.h"
|
| #include "third_party/WebKit/public/platform/WebSecurityOrigin.h"
|
| -#include "third_party/WebKit/public/platform/WebTraceLocation.h"
|
| +#include "third_party/WebKit/public/platform/WebTaskRunner.h"
|
| #include "third_party/WebKit/public/platform/WebURL.h"
|
| #include "third_party/WebKit/public/platform/WebURLError.h"
|
| #include "third_party/WebKit/public/platform/WebURLLoadTiming.h"
|
| @@ -301,9 +300,7 @@ class WebURLLoaderImpl::Context : public base::RefCounted<Context> {
|
| public:
|
| using ReceivedData = RequestPeer::ReceivedData;
|
|
|
| - Context(WebURLLoaderImpl* loader,
|
| - ResourceDispatcher* resource_dispatcher,
|
| - std::unique_ptr<blink::WebTaskRunner> task_runner);
|
| + Context(WebURLLoaderImpl* loader, ResourceDispatcher* resource_dispatcher);
|
|
|
| WebURLLoaderClient* client() const { return client_; }
|
| void set_client(WebURLLoaderClient* client) { client_ = client; }
|
| @@ -314,7 +311,8 @@ class WebURLLoaderImpl::Context : public base::RefCounted<Context> {
|
| int intra_priority_value);
|
| void Start(const WebURLRequest& request,
|
| SyncLoadResponse* sync_load_response);
|
| - void SetWebTaskRunner(std::unique_ptr<blink::WebTaskRunner> task_runner);
|
| + void SetTaskRunner(
|
| + const scoped_refptr<base::SingleThreadTaskRunner>& task_runner);
|
|
|
| void OnUploadProgress(uint64_t position, uint64_t size);
|
| bool OnReceivedRedirect(const net::RedirectInfo& redirect_info,
|
| @@ -334,19 +332,6 @@ class WebURLLoaderImpl::Context : public base::RefCounted<Context> {
|
| friend class base::RefCounted<Context>;
|
| ~Context();
|
|
|
| - class HandleDataURLTask : public blink::WebTaskRunner::Task {
|
| - public:
|
| - explicit HandleDataURLTask(scoped_refptr<Context> context)
|
| - : context_(context) {}
|
| -
|
| - void run() override {
|
| - context_->HandleDataURL();
|
| - }
|
| -
|
| - private:
|
| - scoped_refptr<Context> context_;
|
| - };
|
| -
|
| // Called when the body data stream is detached from the reader side.
|
| void CancelBodyStreaming();
|
| // We can optimize the handling of data URLs in most cases.
|
| @@ -357,7 +342,7 @@ class WebURLLoaderImpl::Context : public base::RefCounted<Context> {
|
| WebURLRequest request_;
|
| WebURLLoaderClient* client_;
|
| ResourceDispatcher* resource_dispatcher_;
|
| - std::unique_ptr<blink::WebTaskRunner> web_task_runner_;
|
| + scoped_refptr<base::SingleThreadTaskRunner> task_runner_;
|
| WebReferrerPolicy referrer_policy_;
|
| std::unique_ptr<FtpDirectoryListingResponseDelegate> ftp_listing_delegate_;
|
| std::unique_ptr<StreamOverrideParameters> stream_override_;
|
| @@ -396,14 +381,12 @@ class WebURLLoaderImpl::RequestPeerImpl : public RequestPeer {
|
|
|
| // WebURLLoaderImpl::Context --------------------------------------------------
|
|
|
| -WebURLLoaderImpl::Context::Context(
|
| - WebURLLoaderImpl* loader,
|
| - ResourceDispatcher* resource_dispatcher,
|
| - std::unique_ptr<blink::WebTaskRunner> web_task_runner)
|
| +WebURLLoaderImpl::Context::Context(WebURLLoaderImpl* loader,
|
| + ResourceDispatcher* resource_dispatcher)
|
| : loader_(loader),
|
| client_(NULL),
|
| resource_dispatcher_(resource_dispatcher),
|
| - web_task_runner_(std::move(web_task_runner)),
|
| + task_runner_(base::ThreadTaskRunnerHandle::Get()),
|
| referrer_policy_(blink::WebReferrerPolicyDefault),
|
| defers_loading_(NOT_DEFERRING),
|
| request_id_(-1) {}
|
| @@ -437,11 +420,8 @@ void WebURLLoaderImpl::Context::SetDefersLoading(bool value) {
|
| defers_loading_ = SHOULD_DEFER;
|
| } else if (!value && defers_loading_ != NOT_DEFERRING) {
|
| if (defers_loading_ == DEFERRED_DATA) {
|
| - // TODO(alexclarke): Find a way to let blink and chromium FROM_HERE
|
| - // coexist.
|
| - web_task_runner_->postTask(
|
| - BLINK_FROM_HERE,
|
| - new HandleDataURLTask(this));
|
| + task_runner_->PostTask(FROM_HERE,
|
| + base::Bind(&Context::HandleDataURL, this));
|
| }
|
| defers_loading_ = NOT_DEFERRING;
|
| }
|
| @@ -471,11 +451,8 @@ void WebURLLoaderImpl::Context::Start(const WebURLRequest& request,
|
| GetInfoFromDataURL(sync_load_response->url, sync_load_response,
|
| &sync_load_response->data);
|
| } else {
|
| - // TODO(alexclarke): Find a way to let blink and chromium FROM_HERE
|
| - // coexist.
|
| - web_task_runner_->postTask(
|
| - BLINK_FROM_HERE,
|
| - new HandleDataURLTask(this));
|
| + task_runner_->PostTask(FROM_HERE,
|
| + base::Bind(&Context::HandleDataURL, this));
|
| }
|
| return;
|
| }
|
| @@ -546,7 +523,7 @@ void WebURLLoaderImpl::Context::Start(const WebURLRequest& request,
|
| GetRequestContextFrameTypeForWebURLRequest(request);
|
| request_info.extra_data = request.getExtraData();
|
| request_info.report_raw_headers = request.reportRawHeaders();
|
| - request_info.loading_web_task_runner = web_task_runner_->clone();
|
| + request_info.loading_task_runner = task_runner_;
|
| request_info.lofi_state = static_cast<LoFiState>(request.getLoFiState());
|
|
|
| scoped_refptr<ResourceRequestBodyImpl> request_body =
|
| @@ -579,9 +556,9 @@ void WebURLLoaderImpl::Context::Start(const WebURLRequest& request,
|
| resource_dispatcher_->SetDefersLoading(request_id_, true);
|
| }
|
|
|
| -void WebURLLoaderImpl::Context::SetWebTaskRunner(
|
| - std::unique_ptr<blink::WebTaskRunner> web_task_runner) {
|
| - web_task_runner_ = std::move(web_task_runner);
|
| +void WebURLLoaderImpl::Context::SetTaskRunner(
|
| + const scoped_refptr<base::SingleThreadTaskRunner>& task_runner) {
|
| + task_runner_ = task_runner;
|
| }
|
|
|
| void WebURLLoaderImpl::Context::OnUploadProgress(uint64_t position,
|
| @@ -944,11 +921,8 @@ void WebURLLoaderImpl::RequestPeerImpl::OnCompletedRequest(
|
|
|
| // WebURLLoaderImpl -----------------------------------------------------------
|
|
|
| -WebURLLoaderImpl::WebURLLoaderImpl(
|
| - ResourceDispatcher* resource_dispatcher,
|
| - std::unique_ptr<blink::WebTaskRunner> web_task_runner)
|
| - : context_(
|
| - new Context(this, resource_dispatcher, std::move(web_task_runner))) {}
|
| +WebURLLoaderImpl::WebURLLoaderImpl(ResourceDispatcher* resource_dispatcher)
|
| + : context_(new Context(this, resource_dispatcher)) {}
|
|
|
| WebURLLoaderImpl::~WebURLLoaderImpl() {
|
| cancel();
|
| @@ -1183,9 +1157,7 @@ void WebURLLoaderImpl::didChangePriority(WebURLRequest::Priority new_priority,
|
|
|
| void WebURLLoaderImpl::setLoadingTaskRunner(
|
| blink::WebTaskRunner* loading_task_runner) {
|
| - // There's no guarantee on the lifetime of |loading_task_runner| so we take a
|
| - // copy.
|
| - context_->SetWebTaskRunner(loading_task_runner->clone());
|
| + context_->SetTaskRunner(loading_task_runner->taskRunner());
|
| }
|
|
|
| // This function is implemented here because it uses net functions. it is
|
|
|