summaryrefslogtreecommitdiff
path: root/chromium/third_party/blink/renderer/core/loader/worker_fetch_context.h
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/third_party/blink/renderer/core/loader/worker_fetch_context.h')
-rw-r--r--chromium/third_party/blink/renderer/core/loader/worker_fetch_context.h41
1 files changed, 30 insertions, 11 deletions
diff --git a/chromium/third_party/blink/renderer/core/loader/worker_fetch_context.h b/chromium/third_party/blink/renderer/core/loader/worker_fetch_context.h
index 5b97752a90a..f1ad8cbc146 100644
--- a/chromium/third_party/blink/renderer/core/loader/worker_fetch_context.h
+++ b/chromium/third_party/blink/renderer/core/loader/worker_fetch_context.h
@@ -8,18 +8,21 @@
#include <memory>
#include "base/single_thread_task_runner.h"
#include "services/network/public/mojom/request_context_frame_type.mojom-blink.h"
+#include "third_party/blink/public/mojom/service_worker/service_worker_object.mojom-blink.h"
#include "third_party/blink/renderer/core/core_export.h"
#include "third_party/blink/renderer/core/loader/base_fetch_context.h"
+#include "third_party/blink/renderer/core/script/fetch_client_settings_object_impl.h"
#include "third_party/blink/renderer/platform/wtf/forward.h"
namespace blink {
-class ResourceFetcher;
class SubresourceFilter;
class WebURLLoader;
class WebURLLoaderFactory;
class WebWorkerFetchContext;
class WorkerClients;
+class WorkerContentSettingsClient;
+class WorkerSettings;
class WorkerOrWorkletGlobalScope;
CORE_EXPORT void ProvideWorkerFetchContextToWorker(
@@ -34,6 +37,8 @@ class WorkerFetchContext final : public BaseFetchContext {
~WorkerFetchContext() override;
// BaseFetchContext implementation:
+ const FetchClientSettingsObject* GetFetchClientSettingsObject()
+ const override;
KURL GetSiteForCookies() const override;
SubresourceFilter* GetSubresourceFilter() const override;
bool AllowScriptFromSource(const KURL&) const override;
@@ -58,8 +63,6 @@ class WorkerFetchContext final : public BaseFetchContext {
bool ShouldBlockFetchAsCredentialedSubresource(const ResourceRequest&,
const KURL&) const override;
bool ShouldLoadNewResource(Resource::Type) const override { return true; }
- ReferrerPolicy GetReferrerPolicy() const override;
- String GetOutgoingReferrer() const override;
const KURL& Url() const override;
const SecurityOrigin* GetParentSecurityOrigin() const override;
base::Optional<mojom::IPAddressSpace> GetAddressSpace() const override;
@@ -70,10 +73,10 @@ class WorkerFetchContext final : public BaseFetchContext {
const SecurityOrigin* GetSecurityOrigin() const override;
std::unique_ptr<WebURLLoader> CreateURLLoader(
const ResourceRequest&,
- scoped_refptr<base::SingleThreadTaskRunner>,
const ResourceLoaderOptions&) override;
void PrepareRequest(ResourceRequest&, RedirectType) override;
- bool IsControlledByServiceWorker() const override;
+ blink::mojom::ControllerServiceWorkerMode IsControlledByServiceWorker()
+ const override;
int ApplicationCacheHostID() const override;
void AddAdditionalRequestHeaders(ResourceRequest&,
FetchResourceType) override;
@@ -97,7 +100,7 @@ class WorkerFetchContext final : public BaseFetchContext {
TimeTicks finish_time,
int64_t encoded_data_length,
int64_t decoded_body_length,
- bool blocked_cross_site_document) override;
+ bool should_report_corb_blocking) override;
void DispatchDidFail(const KURL&,
unsigned long identifier,
const ResourceError&,
@@ -110,7 +113,13 @@ class WorkerFetchContext final : public BaseFetchContext {
ResourceRequest&) override;
scoped_refptr<base::SingleThreadTaskRunner> GetLoadingTaskRunner() override;
- WebWorkerFetchContext* GetWebWorkerFetchContext() {
+ std::unique_ptr<scheduler::WebResourceLoadingTaskRunnerHandle>
+ CreateResourceLoadingTaskRunnerHandle() override;
+
+ SecurityContext& GetSecurityContext() const;
+ WorkerSettings* GetWorkerSettings() const;
+ WorkerContentSettingsClient* GetWorkerContentSettingsClient() const;
+ WebWorkerFetchContext* GetWebWorkerFetchContext() const {
return web_context_.get();
}
@@ -122,12 +131,22 @@ class WorkerFetchContext final : public BaseFetchContext {
void SetFirstPartyCookieAndRequestorOrigin(ResourceRequest&);
- Member<WorkerOrWorkletGlobalScope> global_scope_;
- std::unique_ptr<WebWorkerFetchContext> web_context_;
+ const Member<WorkerOrWorkletGlobalScope> global_scope_;
+ const std::unique_ptr<WebWorkerFetchContext> web_context_;
+
+ // Responsible for regular loads from the worker (i.e., Fetch API).
std::unique_ptr<WebURLLoaderFactory> url_loader_factory_;
+
+ // Responsible for handling script loads in certian situations (i.e.,
+ // script import from service workers, which invole special processing
+ // to persist the script in storage). May be null, fallback to
+ // url_loader_factory_ in that case.
+ std::unique_ptr<WebURLLoaderFactory> script_loader_factory_;
+
Member<SubresourceFilter> subresource_filter_;
- Member<ResourceFetcher> resource_fetcher_;
- scoped_refptr<base::SingleThreadTaskRunner> loading_task_runner_;
+ const scoped_refptr<base::SingleThreadTaskRunner> loading_task_runner_;
+
+ const Member<FetchClientSettingsObjectImpl> fetch_client_settings_object_;
// The value of |save_data_enabled_| is read once per frame from
// NetworkStateNotifier, which is guarded by a mutex lock, and cached locally