diff options
Diffstat (limited to 'src/3rdparty/webkit/WebCore/loader/MainResourceLoader.cpp')
-rw-r--r-- | src/3rdparty/webkit/WebCore/loader/MainResourceLoader.cpp | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/3rdparty/webkit/WebCore/loader/MainResourceLoader.cpp b/src/3rdparty/webkit/WebCore/loader/MainResourceLoader.cpp index 325809b7ba..9476afba08 100644 --- a/src/3rdparty/webkit/WebCore/loader/MainResourceLoader.cpp +++ b/src/3rdparty/webkit/WebCore/loader/MainResourceLoader.cpp @@ -286,6 +286,15 @@ void MainResourceLoader::didReceiveResponse(const ResourceResponse& r) } #endif + HTTPHeaderMap::const_iterator it = r.httpHeaderFields().find(AtomicString("x-frame-options")); + if (it != r.httpHeaderFields().end()) { + String content = it->second; + if (m_frame->loader()->shouldInterruptLoadForXFrameOptions(content, r.url())) { + cancel(); + return; + } + } + // There is a bug in CFNetwork where callbacks can be dispatched even when loads are deferred. // See <rdar://problem/6304600> for more details. #if !PLATFORM(CF) |