| Index: third_party/WebKit/Source/core/workers/WorkerShadowFetchContext.h
|
| diff --git a/third_party/WebKit/Source/core/workers/WorkerShadowFetchContext.h b/third_party/WebKit/Source/core/workers/WorkerShadowFetchContext.h
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..6a20ae1d67ea5853fbd4a945a0f29312035a71a5
|
| --- /dev/null
|
| +++ b/third_party/WebKit/Source/core/workers/WorkerShadowFetchContext.h
|
| @@ -0,0 +1,139 @@
|
| +// Copyright 2017 The Chromium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +#ifndef WorkerShadowFetchContext_h
|
| +#define WorkerShadowFetchContext_h
|
| +
|
| +#include "core/loader/BaseFetchContext.h"
|
| +#include "public/platform/WebAddressSpace.h"
|
| +
|
| +namespace blink {
|
| +
|
| +class ApplicationCacheHost;
|
| +class KURL;
|
| +class ParentFrameTaskRunners;
|
| +class Settings;
|
| +class ThreadableLoadingContext;
|
| +class WebServiceWorkerNetworkProvider;
|
| +
|
| +// A shadow fetch context for {Shared,Service} workers. This fetch context is
|
| +// used by Workers but on the main thread.
|
| +//
|
| +// TODO: Needs to make DevTools work.
|
| +class CORE_EXPORT WorkerShadowFetchContext final : public BaseFetchContext {
|
| + public:
|
| + static WorkerShadowFetchContext* Create(
|
| + const KURL&,
|
| + const String& user_agent,
|
| + WebAddressSpace,
|
| + ApplicationCacheHost*,
|
| + std::unique_ptr<WebServiceWorkerNetworkProvider>,
|
| + std::unique_ptr<Settings>,
|
| + ParentFrameTaskRunners*);
|
| + ~WorkerShadowFetchContext() override;
|
| +
|
| + void Detach();
|
| +
|
| + // FetchContext overrides:
|
| + void AddAdditionalRequestHeaders(ResourceRequest&,
|
| + FetchResourceType) override;
|
| + WebCachePolicy ResourceRequestCachePolicy(
|
| + const ResourceRequest&,
|
| + Resource::Type,
|
| + FetchParameters::DeferOption) const override;
|
| + void PrepareRequest(ResourceRequest&, RedirectType) override;
|
| + void DispatchWillSendRequest(
|
| + unsigned long identifier,
|
| + ResourceRequest&,
|
| + const ResourceResponse& redirect_response,
|
| + const FetchInitiatorInfo& = FetchInitiatorInfo()) override;
|
| + void DispatchDidReceiveResponse(unsigned long identifier,
|
| + const ResourceResponse&,
|
| + WebURLRequest::FrameType,
|
| + WebURLRequest::RequestContext,
|
| + Resource*,
|
| + ResourceResponseType) override;
|
| + void DispatchDidReceiveData(unsigned long identifier,
|
| + const char* data,
|
| + int data_length) override;
|
| + void DispatchDidReceiveEncodedData(unsigned long identifier,
|
| + int encoded_data_length) override;
|
| + void DispatchDidFinishLoading(unsigned long identifier,
|
| + double finish_time,
|
| + int64_t encoded_data_length,
|
| + int64_t decoded_body_length) override;
|
| + void DispatchDidFail(unsigned long identifier,
|
| + const ResourceError&,
|
| + int64_t encoded_data_length,
|
| + bool is_internal_request) override;
|
| + void AddResourceTiming(const ResourceTimingInfo&) override;
|
| + bool AllowImage(bool, const KURL&) const override;
|
| + bool IsControlledByServiceWorker() const override;
|
| + int64_t ServiceWorkerID() const override;
|
| + void PopulateResourceRequest(const KURL&,
|
| + Resource::Type,
|
| + const ClientHintsPreferences&,
|
| + const FetchParameters::ResourceWidth&,
|
| + const ResourceLoaderOptions&,
|
| + SecurityViolationReportingPolicy,
|
| + ResourceRequest&) override;
|
| + void SetFirstPartyCookieAndRequestorOrigin(ResourceRequest&) override;
|
| + RefPtr<WebTaskRunner> LoadingTaskRunner() const override;
|
| +
|
| + ExecutionContext& GetExecutionContext();
|
| + SecurityContext& GetSecurityContext();
|
| + ThreadableLoadingContext& GetThreadableLoadingContext();
|
| +
|
| + DECLARE_TRACE();
|
| +
|
| + // BaseFetchContext overrides:
|
| + // TODO(kinuko): Implement these.
|
| + ContentSettingsClient* GetContentSettingsClient() const final {
|
| + return nullptr;
|
| + }
|
| + Settings* GetSettings() const final;
|
| + SubresourceFilter* GetSubresourceFilter() const final { return nullptr; }
|
| +
|
| + protected:
|
| + // BaseFetchContext overrides:
|
| + // TODO(kinuko): Implement these.
|
| + SecurityContext* GetParentSecurityContext() const final;
|
| + bool ShouldBlockRequestByInspector(const ResourceRequest&) const final {
|
| + return false;
|
| + }
|
| + void DispatchDidBlockRequest(const ResourceRequest&,
|
| + const FetchInitiatorInfo&,
|
| + ResourceRequestBlockedReason) const final {}
|
| + void ReportLocalLoadFailed(const KURL&) const final {}
|
| + bool ShouldBypassMainWorldCSP() const final { return false; }
|
| + bool IsSVGImageChromeClient() const final { return false; }
|
| + void CountUsage(UseCounter::Feature) const final;
|
| + void CountDeprecation(UseCounter::Feature) const final;
|
| + bool ShouldBlockFetchByMixedContentCheck(
|
| + const ResourceRequest&,
|
| + const KURL&,
|
| + SecurityViolationReportingPolicy) const final {
|
| + return false;
|
| + }
|
| +
|
| + private:
|
| + class ExecutionContextImpl; // ExecutionContext implementation.
|
| + class LoadingContextImpl; // ThreadableLoadingContext implementation.
|
| +
|
| + WorkerShadowFetchContext(ExecutionContextImpl*,
|
| + ApplicationCacheHost*,
|
| + std::unique_ptr<WebServiceWorkerNetworkProvider>,
|
| + std::unique_ptr<Settings>,
|
| + ParentFrameTaskRunners*);
|
| +
|
| + Member<ExecutionContextImpl> execution_context_;
|
| + Member<LoadingContextImpl> loading_context_;
|
| + Member<ApplicationCacheHost> app_cache_host_;
|
| + std::unique_ptr<WebServiceWorkerNetworkProvider> service_worker_provider_;
|
| + std::unique_ptr<Settings> settings_;
|
| +};
|
| +
|
| +} // namespace blink
|
| +
|
| +#endif // WorkerShadowFetchContext_h
|
|
|