Index: Source/core/loader/DocumentLoader.cpp |
diff --git a/Source/core/loader/DocumentLoader.cpp b/Source/core/loader/DocumentLoader.cpp |
index 61dd9a6f06e2332186c2d879390caff31ce4a916..cd27caf6fa031a79a08d7a27c8725564e91781c6 100644 |
--- a/Source/core/loader/DocumentLoader.cpp |
+++ b/Source/core/loader/DocumentLoader.cpp |
@@ -376,6 +376,14 @@ |
if (newRequest.cachePolicy() == UseProtocolCachePolicy && isRedirectAfterPost(newRequest, redirectResponse)) |
newRequest.setCachePolicy(ReloadBypassingCache); |
+ // If this is a sub-frame, check for mixed content blocking against the parent frame. |
+ if (Frame* parent = m_frame->tree().parent()) { |
+ if (parent->isLocalFrame() && !toLocalFrame(parent)->loader().mixedContentChecker()->canFrameInsecureContent(toLocalFrame(parent)->document()->securityOrigin(), newRequest.url())) { |
+ cancelMainResourceLoad(ResourceError::cancelledError(newRequest.url())); |
+ return; |
+ } |
+ } |
+ |
m_request = newRequest; |
if (redirectResponse.isNull()) |