Index: Source/core/loader/PingLoader.cpp |
diff --git a/Source/core/loader/PingLoader.cpp b/Source/core/loader/PingLoader.cpp |
index 99d5ee390a939d69df86c06c9b5492affa9027bd..8bc691a594ad59ebc3af89be2bc29b4f51750618 100644 |
--- a/Source/core/loader/PingLoader.cpp |
+++ b/Source/core/loader/PingLoader.cpp |
@@ -120,6 +120,12 @@ void PingLoader::sendViolationReport(LocalFrame* frame, const KURL& reportURL, P |
void PingLoader::start(LocalFrame* frame, ResourceRequest& request, const FetchInitiatorInfo& initiatorInfo, StoredCredentials credentialsAllowed) |
{ |
+ if (!frame->loader().mixedContentChecker()->canRunInsecureContent(frame->document()->securityOrigin(), request.url())) |
+ return; |
+ Frame* top = frame->tree().top(); |
+ if (top != frame && !toLocalFrame(top)->loader().mixedContentChecker()->canRunInsecureContent(toLocalFrame(top)->document()->securityOrigin(), request.url())) |
+ return; |
+ |
OwnPtr<PingLoader> pingLoader = adoptPtr(new PingLoader(frame, request, initiatorInfo, credentialsAllowed)); |
// Leak the ping loader, since it will kill itself as soon as it receives a response. |