Index: third_party/WebKit/Source/core/loader/DocumentLoader.cpp |
diff --git a/third_party/WebKit/Source/core/loader/DocumentLoader.cpp b/third_party/WebKit/Source/core/loader/DocumentLoader.cpp |
index 8868bda7f8631457ea7dd08ca2a25a180ed7d1a6..2f58bbae49401712035380b874fbffabab702dc4 100644 |
--- a/third_party/WebKit/Source/core/loader/DocumentLoader.cpp |
+++ b/third_party/WebKit/Source/core/loader/DocumentLoader.cpp |
@@ -94,6 +94,7 @@ DocumentLoader::DocumentLoader(LocalFrame* frame, const ResourceRequest& req, co |
, m_documentLoadTiming(*this) |
, m_timeOfLastDataReceived(0.0) |
, m_applicationCacheHost(ApplicationCacheHost::create(this)) |
+ , m_wasBlockedAfterXFrameOptionsOrCSP(false) |
, m_state(NotStarted) |
, m_inDataReceived(false) |
, m_dataBuffer(SharedBuffer::create()) |
@@ -379,13 +380,13 @@ void DocumentLoader::cancelLoadAfterXFrameOptionsOrCSPDenied(const ResourceRespo |
{ |
InspectorInstrumentation::continueAfterXFrameOptionsDenied(m_frame, this, mainResourceIdentifier(), response); |
- frame()->document()->enforceSandboxFlags(SandboxOrigin); |
- if (FrameOwner* owner = frame()->owner()) |
- owner->dispatchLoad(); |
+ setWasBlockedAfterXFrameOptionsOrCSP(); |
+ |
+ // Pretend that this was an empty HTTP 200 response. |
+ clearMainResourceHandle(); |
+ m_response = ResourceResponse(blankURL(), "text/html", 0, nullAtom, String()); |
+ finishedLoading(monotonicallyIncreasingTime()); |
- // The load event might have detached this frame. In that case, the load will already have been cancelled during detach. |
- if (frameLoader()) |
- cancelMainResourceLoad(ResourceError::cancelledError(m_request.url())); |
return; |
} |