Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(599)

Unified Diff: third_party/WebKit/Source/core/xmlhttprequest/XMLHttpRequest.cpp

Issue 1390943003: Bypass ServiceWorker when the request originates from isolated world. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 5 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/core/xmlhttprequest/XMLHttpRequest.cpp
diff --git a/third_party/WebKit/Source/core/xmlhttprequest/XMLHttpRequest.cpp b/third_party/WebKit/Source/core/xmlhttprequest/XMLHttpRequest.cpp
index 14efa5d7009dc8290eb51e5c5acd60e613f19cd2..8badf1f5f4dcd5aa361d7f1ffd989ce3d14ef1e7 100644
--- a/third_party/WebKit/Source/core/xmlhttprequest/XMLHttpRequest.cpp
+++ b/third_party/WebKit/Source/core/xmlhttprequest/XMLHttpRequest.cpp
@@ -191,8 +191,8 @@ XMLHttpRequest* XMLHttpRequest::create(ScriptState* scriptState)
{
ExecutionContext* context = scriptState->executionContext();
DOMWrapperWorld& world = scriptState->world();
- RefPtr<SecurityOrigin> securityOrigin = world.isIsolatedWorld() ? world.isolatedWorldSecurityOrigin() : nullptr;
- XMLHttpRequest* xmlHttpRequest = new XMLHttpRequest(context, securityOrigin);
+ RefPtr<SecurityOrigin> isolatedWorldSecurityOrigin = world.isIsolatedWorld() ? world.isolatedWorldSecurityOrigin() : nullptr;
+ XMLHttpRequest* xmlHttpRequest = new XMLHttpRequest(context, isolatedWorldSecurityOrigin);
xmlHttpRequest->suspendIfNeeded();
return xmlHttpRequest;
@@ -206,7 +206,7 @@ XMLHttpRequest* XMLHttpRequest::create(ExecutionContext* context)
return xmlHttpRequest;
}
-XMLHttpRequest::XMLHttpRequest(ExecutionContext* context, PassRefPtr<SecurityOrigin> securityOrigin)
+XMLHttpRequest::XMLHttpRequest(ExecutionContext* context, PassRefPtr<SecurityOrigin> isolatedWorldSecurityOrigin)
: ActiveDOMObject(context)
, m_timeoutMilliseconds(0)
, m_state(UNSENT)
@@ -215,7 +215,7 @@ XMLHttpRequest::XMLHttpRequest(ExecutionContext* context, PassRefPtr<SecurityOri
, m_exceptionCode(0)
, m_progressEventThrottle(XMLHttpRequestProgressEventThrottle::create(this))
, m_responseTypeCode(ResponseTypeDefault)
- , m_securityOrigin(securityOrigin)
+ , m_isolatedWorldSecurityOrigin(isolatedWorldSecurityOrigin)
, m_eventDispatchRecursionLevel(0)
, m_async(true)
, m_includeCredentials(false)
@@ -246,7 +246,7 @@ Document* XMLHttpRequest::document() const
SecurityOrigin* XMLHttpRequest::securityOrigin() const
{
- return m_securityOrigin ? m_securityOrigin.get() : executionContext()->securityOrigin();
+ return m_isolatedWorldSecurityOrigin ? m_isolatedWorldSecurityOrigin.get() : executionContext()->securityOrigin();
}
XMLHttpRequest::State XMLHttpRequest::readyState() const
@@ -893,6 +893,7 @@ void XMLHttpRequest::createRequest(PassRefPtr<EncodedFormData> httpBody, Excepti
request.setHTTPMethod(m_method);
request.setRequestContext(WebURLRequest::RequestContextXMLHttpRequest);
request.setFetchCredentialsMode(m_includeCredentials ? WebURLRequest::FetchCredentialsModeInclude : WebURLRequest::FetchCredentialsModeSameOrigin);
+ request.setSkipServiceWorker(m_isolatedWorldSecurityOrigin);
InspectorInstrumentation::willLoadXHR(&executionContext, this, this, m_method, m_url, m_async, httpBody ? httpBody->deepCopy() : nullptr, m_requestHeaders, m_includeCredentials);

Powered by Google App Engine
This is Rietveld 408576698