Index: third_party/WebKit/Source/modules/fetch/FetchManager.cpp |
diff --git a/third_party/WebKit/Source/modules/fetch/FetchManager.cpp b/third_party/WebKit/Source/modules/fetch/FetchManager.cpp |
index 5c309bf192aac36b29354f6efb09a1189941cfcc..9014e6a8ba487f4fbbbaf8147574123c149b3cf7 100644 |
--- a/third_party/WebKit/Source/modules/fetch/FetchManager.cpp |
+++ b/third_party/WebKit/Source/modules/fetch/FetchManager.cpp |
@@ -56,9 +56,9 @@ bool IsRedirectStatusCode(int statusCode) |
class FetchManager::Loader final : public GarbageCollectedFinalized<FetchManager::Loader>, public ThreadableLoaderClient, public ContextLifecycleObserver { |
WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(FetchManager::Loader); |
public: |
- static Loader* create(ExecutionContext* executionContext, FetchManager* fetchManager, ScriptPromiseResolver* resolver, FetchRequestData* request) |
+ static Loader* create(ExecutionContext* executionContext, FetchManager* fetchManager, ScriptPromiseResolver* resolver, FetchRequestData* request, bool isIsolatedWorld) |
{ |
- return new Loader(executionContext, fetchManager, resolver, request); |
+ return new Loader(executionContext, fetchManager, resolver, request, isIsolatedWorld); |
} |
~Loader() override; |
@@ -151,7 +151,7 @@ public: |
}; |
private: |
- Loader(ExecutionContext*, FetchManager*, ScriptPromiseResolver*, FetchRequestData*); |
+ Loader(ExecutionContext*, FetchManager*, ScriptPromiseResolver*, FetchRequestData*, bool isIsolatedWorld); |
void performBasicFetch(); |
void performNetworkError(const String& message); |
@@ -171,9 +171,10 @@ private: |
int m_responseHttpStatusCode; |
Member<SRIVerifier> m_integrityVerifier; |
bool m_didFinishLoading; |
+ bool m_isIsolatedWorld; |
}; |
-FetchManager::Loader::Loader(ExecutionContext* executionContext, FetchManager* fetchManager, ScriptPromiseResolver* resolver, FetchRequestData* request) |
+FetchManager::Loader::Loader(ExecutionContext* executionContext, FetchManager* fetchManager, ScriptPromiseResolver* resolver, FetchRequestData* request, bool isIsolatedWorld) |
: ContextLifecycleObserver(executionContext) |
, m_fetchManager(fetchManager) |
, m_resolver(resolver) |
@@ -183,6 +184,7 @@ FetchManager::Loader::Loader(ExecutionContext* executionContext, FetchManager* f |
, m_responseHttpStatusCode(0) |
, m_integrityVerifier(nullptr) |
, m_didFinishLoading(false) |
+ , m_isIsolatedWorld(isIsolatedWorld) |
{ |
} |
@@ -561,6 +563,7 @@ void FetchManager::Loader::performHTTPFetch(bool corsFlag, bool corsPreflightFla |
// referrer string (i.e. String()). |
request.setHTTPReferrer(SecurityPolicy::generateReferrer(policy, m_request->url(), m_request->referrerString())); |
} |
+ request.setSkipServiceWorker(m_isIsolatedWorld); |
// "3. Append `Host`, ..." |
// FIXME: Implement this when the spec is fixed. |
@@ -691,7 +694,7 @@ ScriptPromise FetchManager::fetch(ScriptState* scriptState, FetchRequestData* re |
request->setContext(WebURLRequest::RequestContextFetch); |
- Loader* loader = Loader::create(m_executionContext, this, resolver, request); |
+ Loader* loader = Loader::create(m_executionContext, this, resolver, request, scriptState->world().isIsolatedWorld()); |
m_loaders.add(loader); |
loader->start(); |
return promise; |