| Index: third_party/WebKit/Source/core/loader/WorkerFetchContext.cpp
|
| diff --git a/third_party/WebKit/Source/core/loader/WorkerFetchContext.cpp b/third_party/WebKit/Source/core/loader/WorkerFetchContext.cpp
|
| index a1ca5f31714127a3a48bfdc96d90dd9f33cc561a..767f6dca3b81059c7a2a0d2b34888677b1e9ca30 100644
|
| --- a/third_party/WebKit/Source/core/loader/WorkerFetchContext.cpp
|
| +++ b/third_party/WebKit/Source/core/loader/WorkerFetchContext.cpp
|
| @@ -4,14 +4,18 @@
|
|
|
| #include "core/loader/WorkerFetchContext.h"
|
|
|
| +#include "core/frame/Deprecation.h"
|
| +#include "core/frame/UseCounter.h"
|
| #include "core/workers/WorkerClients.h"
|
| #include "core/workers/WorkerGlobalScope.h"
|
| #include "platform/Supplementable.h"
|
| #include "platform/WebTaskRunner.h"
|
| #include "platform/exported/WrappedResourceRequest.h"
|
| +#include "platform/loader/fetch/ResourceFetcher.h"
|
| #include "platform/scheduler/child/web_scheduler.h"
|
| #include "public/platform/Platform.h"
|
| #include "public/platform/WebThread.h"
|
| +#include "public/platform/WebURLRequest.h"
|
| #include "public/platform/WebWorkerFetchContext.h"
|
|
|
| namespace blink {
|
| @@ -64,17 +68,90 @@ WorkerFetchContext* WorkerFetchContext::Create(
|
| return nullptr;
|
| std::unique_ptr<WebWorkerFetchContext> web_context = holder->TakeContext();
|
| DCHECK(web_context);
|
| - return new WorkerFetchContext(std::move(web_context));
|
| + return new WorkerFetchContext(worker_global_scope, std::move(web_context));
|
| }
|
|
|
| WorkerFetchContext::WorkerFetchContext(
|
| + WorkerGlobalScope& worker_global_scope,
|
| std::unique_ptr<WebWorkerFetchContext> web_context)
|
| - : web_context_(std::move(web_context)) {
|
| - web_context_->InitializeOnWorkerThread(Platform::Current()
|
| - ->CurrentThread()
|
| - ->Scheduler()
|
| - ->LoadingTaskRunner()
|
| - ->ToSingleThreadTaskRunner());
|
| + : BaseFetchContext(&worker_global_scope),
|
| + worker_global_scope_(worker_global_scope),
|
| + web_context_(std::move(web_context)),
|
| + loading_task_runner_(Platform::Current()
|
| + ->CurrentThread()
|
| + ->Scheduler()
|
| + ->LoadingTaskRunner()) {
|
| + web_context_->InitializeOnWorkerThread(
|
| + loading_task_runner_->ToSingleThreadTaskRunner());
|
| +}
|
| +
|
| +ResourceFetcher* WorkerFetchContext::GetResourceFetcher() {
|
| + if (resource_fetcher_)
|
| + return resource_fetcher_;
|
| + resource_fetcher_ = ResourceFetcher::Create(this);
|
| + return resource_fetcher_;
|
| +}
|
| +
|
| +ContentSettingsClient* WorkerFetchContext::GetContentSettingsClient() const {
|
| + // TODO(horo): Implement this.
|
| + return nullptr;
|
| +}
|
| +
|
| +Settings* WorkerFetchContext::GetSettings() const {
|
| + // TODO(horo): Implement this.
|
| + return nullptr;
|
| +}
|
| +
|
| +SubresourceFilter* WorkerFetchContext::GetSubresourceFilter() const {
|
| + // TODO(horo): Implement this.
|
| + return nullptr;
|
| +}
|
| +
|
| +SecurityContext* WorkerFetchContext::GetParentSecurityContext() const {
|
| + // TODO(horo): Implement this.
|
| + return nullptr;
|
| +}
|
| +
|
| +bool WorkerFetchContext::ShouldBlockRequestByInspector(
|
| + const ResourceRequest& resource_request) const {
|
| + // TODO(horo): Implement this.
|
| + return false;
|
| +}
|
| +
|
| +void WorkerFetchContext::DispatchDidBlockRequest(
|
| + const ResourceRequest& resource_request,
|
| + const FetchInitiatorInfo& fetch_initiator_info,
|
| + ResourceRequestBlockedReason blocked_reason) const {
|
| + // TODO(horo): Implement this.
|
| +}
|
| +
|
| +void WorkerFetchContext::ReportLocalLoadFailed(const KURL&) const {
|
| + // TODO(horo): Implement this.
|
| +}
|
| +
|
| +bool WorkerFetchContext::ShouldBypassMainWorldCSP() const {
|
| + // TODO(horo): Implement this.
|
| + return false;
|
| +}
|
| +
|
| +bool WorkerFetchContext::IsSVGImageChromeClient() const {
|
| + return false;
|
| +}
|
| +
|
| +void WorkerFetchContext::CountUsage(UseCounter::Feature feature) const {
|
| + UseCounter::Count(worker_global_scope_, feature);
|
| +}
|
| +
|
| +void WorkerFetchContext::CountDeprecation(UseCounter::Feature feature) const {
|
| + Deprecation::CountDeprecation(worker_global_scope_, feature);
|
| +}
|
| +
|
| +bool WorkerFetchContext::ShouldBlockFetchByMixedContentCheck(
|
| + const ResourceRequest& resource_request,
|
| + const KURL& url,
|
| + SecurityViolationReportingPolicy reporting_policy) const {
|
| + // TODO(horo): Implement this.
|
| + return false;
|
| }
|
|
|
| std::unique_ptr<WebURLLoader> WorkerFetchContext::CreateURLLoader() {
|
| @@ -87,10 +164,21 @@ bool WorkerFetchContext::IsControlledByServiceWorker() const {
|
|
|
| void WorkerFetchContext::PrepareRequest(ResourceRequest& request,
|
| RedirectType) {
|
| + request.OverrideLoadingIPCType(WebURLRequest::LoadingIPCType::kMojo);
|
| WrappedResourceRequest webreq(request);
|
| web_context_->WillSendRequest(webreq);
|
| }
|
|
|
| +RefPtr<WebTaskRunner> WorkerFetchContext::LoadingTaskRunner() const {
|
| + return loading_task_runner_;
|
| +}
|
| +
|
| +DEFINE_TRACE(WorkerFetchContext) {
|
| + visitor->Trace(worker_global_scope_);
|
| + visitor->Trace(resource_fetcher_);
|
| + BaseFetchContext::Trace(visitor);
|
| +}
|
| +
|
| void ProvideWorkerFetchContextToWorker(
|
| WorkerClients* clients,
|
| std::unique_ptr<WebWorkerFetchContext> web_context) {
|
|
|