| Index: third_party/WebKit/Source/core/fetch/ResourceFetcher.cpp
|
| diff --git a/third_party/WebKit/Source/core/fetch/ResourceFetcher.cpp b/third_party/WebKit/Source/core/fetch/ResourceFetcher.cpp
|
| index 5ff0d0d3861a31c60532f733a76016d704734229..f1e4e28f0305003bfa5358121f0388d2476a9067 100644
|
| --- a/third_party/WebKit/Source/core/fetch/ResourceFetcher.cpp
|
| +++ b/third_party/WebKit/Source/core/fetch/ResourceFetcher.cpp
|
| @@ -1032,6 +1032,14 @@ bool ResourceFetcher::startLoad(Resource* resource)
|
| ResourceRequest request(resource->resourceRequest());
|
| willSendRequest(resource->identifier(), request, ResourceResponse(), resource->options());
|
|
|
| + // Resource requests from suborigins should not be intercepted by the
|
| + // service worker of the physical origin. This has the effect that, for
|
| + // now, suborigins do not work with service workers. See
|
| + // https://w3c.github.io/webappsec-suborigins/.
|
| + SecurityOrigin* sourceOrigin = context().getSecurityOrigin();
|
| + if (sourceOrigin && sourceOrigin->hasSuborigin())
|
| + request.setSkipServiceWorker(WebURLRequest::SkipServiceWorker::All);
|
| +
|
| ResourceLoader* loader = ResourceLoader::create(this, resource);
|
| if (resource->shouldBlockLoadEvent())
|
| m_loaders.add(loader);
|
| @@ -1039,7 +1047,7 @@ bool ResourceFetcher::startLoad(Resource* resource)
|
| m_nonBlockingLoaders.add(loader);
|
|
|
| storeResourceTimingInitiatorInformation(resource);
|
| - resource->setFetcherSecurityOrigin(context().getSecurityOrigin());
|
| + resource->setFetcherSecurityOrigin(sourceOrigin);
|
| loader->start(request, context().loadingTaskRunner(), context().defersLoading());
|
| return true;
|
| }
|
|
|