summaryrefslogtreecommitdiff
path: root/Source/WebCore/loader
diff options
context:
space:
mode:
authorKonstantin Tokarev <annulen@yandex.ru>2017-06-01 15:54:01 +0300
committerKonstantin Tokarev <annulen@yandex.ru>2017-06-02 14:07:43 +0000
commit0a3506ebe5d7f431f0dd4dffa24ac32063b90ff1 (patch)
treef3d0b92fe7bc5b31426a838c354616fff335e82b /Source/WebCore/loader
parent881da28418d380042aa95a97f0cbd42560a64f7c (diff)
downloadqtwebkit-0a3506ebe5d7f431f0dd4dffa24ac32063b90ff1.tar.gz
Import WebKit commit 3ca7a25a550e473d60bbbe321475c6c0ef114b31
Change-Id: I480668a0cb8114dccf7a1195190a993282875759 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'Source/WebCore/loader')
-rw-r--r--Source/WebCore/loader/DocumentThreadableLoader.cpp8
-rw-r--r--Source/WebCore/loader/FrameLoader.cpp6
-rw-r--r--Source/WebCore/loader/FrameLoader.h2
-rw-r--r--Source/WebCore/loader/FrameLoaderStateMachine.h2
-rw-r--r--Source/WebCore/loader/HistoryController.cpp2
-rw-r--r--Source/WebCore/loader/LoaderStrategy.cpp10
-rw-r--r--Source/WebCore/loader/LoaderStrategy.h6
-rw-r--r--Source/WebCore/loader/WorkerThreadableLoader.cpp3
-rw-r--r--Source/WebCore/loader/icon/IconDatabaseBase.h1
9 files changed, 16 insertions, 24 deletions
diff --git a/Source/WebCore/loader/DocumentThreadableLoader.cpp b/Source/WebCore/loader/DocumentThreadableLoader.cpp
index 63cf08d01..731d2e844 100644
--- a/Source/WebCore/loader/DocumentThreadableLoader.cpp
+++ b/Source/WebCore/loader/DocumentThreadableLoader.cpp
@@ -401,8 +401,12 @@ void DocumentThreadableLoader::loadRequest(const ResourceRequest& request, Secur
ResourceError error;
ResourceResponse response;
unsigned long identifier = std::numeric_limits<unsigned long>::max();
- if (m_document.frame())
- identifier = m_document.frame()->loader().loadResourceSynchronously(request, m_options.allowCredentials(), m_options.clientCredentialPolicy(), error, response, data);
+ if (m_document.frame()) {
+ auto& frameLoader = m_document.frame()->loader();
+ if (!frameLoader.mixedContentChecker().canRunInsecureContent(m_document.securityOrigin(), requestURL))
+ return;
+ identifier = frameLoader.loadResourceSynchronously(request, m_options.allowCredentials(), m_options.clientCredentialPolicy(), error, response, data);
+ }
if (!error.isNull() && response.httpStatusCode() <= 0) {
if (requestURL.isLocalFile()) {
diff --git a/Source/WebCore/loader/FrameLoader.cpp b/Source/WebCore/loader/FrameLoader.cpp
index 5ca806300..705b0f5a5 100644
--- a/Source/WebCore/loader/FrameLoader.cpp
+++ b/Source/WebCore/loader/FrameLoader.cpp
@@ -1579,7 +1579,7 @@ void FrameLoader::reload(bool endToEndReload, bool contentBlockersEnabled)
void FrameLoader::stopAllLoaders(ClearProvisionalItemPolicy clearProvisionalItemPolicy)
{
- ASSERT(!m_frame.document() || !m_frame.document()->inPageCache());
+ ASSERT(!m_frame.document() || m_frame.document()->pageCacheState() != Document::InPageCache);
if (m_pageDismissalEventBeingDispatched != PageDismissalType::None)
return;
@@ -2081,7 +2081,7 @@ void FrameLoader::open(CachedFrameBase& cachedFrame)
clear(document, true, true, cachedFrame.isMainFrame());
- document->setInPageCache(false);
+ document->setPageCacheState(Document::NotInPageCache);
m_needsClear = true;
m_isComplete = false;
@@ -3100,6 +3100,8 @@ void FrameLoader::continueLoadAfterNewWindowPolicy(const ResourceRequest& reques
if (!mainFrame)
return;
+ mainFrame->loader().forceSandboxFlags(frame->loader().effectiveSandboxFlags());
+
if (frameName != "_blank")
mainFrame->tree().setName(frameName);
diff --git a/Source/WebCore/loader/FrameLoader.h b/Source/WebCore/loader/FrameLoader.h
index d087341c8..a98f369db 100644
--- a/Source/WebCore/loader/FrameLoader.h
+++ b/Source/WebCore/loader/FrameLoader.h
@@ -227,7 +227,7 @@ public:
bool checkIfFormActionAllowedByCSP(const URL&) const;
- Frame* opener();
+ WEBCORE_EXPORT Frame* opener();
WEBCORE_EXPORT void setOpener(Frame*);
void resetMultipleFormSubmissionProtection();
diff --git a/Source/WebCore/loader/FrameLoaderStateMachine.h b/Source/WebCore/loader/FrameLoaderStateMachine.h
index de7f7f835..f2ae631d7 100644
--- a/Source/WebCore/loader/FrameLoaderStateMachine.h
+++ b/Source/WebCore/loader/FrameLoaderStateMachine.h
@@ -55,7 +55,7 @@ public:
WEBCORE_EXPORT bool committingFirstRealLoad() const;
bool committedFirstRealDocumentLoad() const;
bool creatingInitialEmptyDocument() const;
- bool isDisplayingInitialEmptyDocument() const;
+ WEBCORE_EXPORT bool isDisplayingInitialEmptyDocument() const;
WEBCORE_EXPORT bool firstLayoutDone() const;
void advanceTo(State);
diff --git a/Source/WebCore/loader/HistoryController.cpp b/Source/WebCore/loader/HistoryController.cpp
index a33287d41..8f7efe81b 100644
--- a/Source/WebCore/loader/HistoryController.cpp
+++ b/Source/WebCore/loader/HistoryController.cpp
@@ -265,7 +265,7 @@ void HistoryController::invalidateCurrentItemCachedPage()
ASSERT(cachedPage->document() == m_frame.document());
if (cachedPage->document() == m_frame.document()) {
- cachedPage->document()->setInPageCache(false);
+ cachedPage->document()->setPageCacheState(Document::NotInPageCache);
cachedPage->clear();
}
}
diff --git a/Source/WebCore/loader/LoaderStrategy.cpp b/Source/WebCore/loader/LoaderStrategy.cpp
index 7fe7631a2..75aae4285 100644
--- a/Source/WebCore/loader/LoaderStrategy.cpp
+++ b/Source/WebCore/loader/LoaderStrategy.cpp
@@ -34,16 +34,6 @@ LoaderStrategy::~LoaderStrategy()
{
}
-ResourceLoadSuspender::ResourceLoadSuspender()
-{
- platformStrategies()->loaderStrategy()->suspendPendingRequests();
-}
-
-ResourceLoadSuspender::~ResourceLoadSuspender()
-{
- platformStrategies()->loaderStrategy()->resumePendingRequests();
-}
-
} // namespace WebCore
diff --git a/Source/WebCore/loader/LoaderStrategy.h b/Source/WebCore/loader/LoaderStrategy.h
index 35c0494c5..d01705ca8 100644
--- a/Source/WebCore/loader/LoaderStrategy.h
+++ b/Source/WebCore/loader/LoaderStrategy.h
@@ -65,12 +65,6 @@ protected:
virtual ~LoaderStrategy();
};
-class ResourceLoadSuspender {
-public:
- ResourceLoadSuspender();
- ~ResourceLoadSuspender();
-};
-
} // namespace WebCore
#endif // LoaderStrategy_h
diff --git a/Source/WebCore/loader/WorkerThreadableLoader.cpp b/Source/WebCore/loader/WorkerThreadableLoader.cpp
index bac254f35..4f263c4b3 100644
--- a/Source/WebCore/loader/WorkerThreadableLoader.cpp
+++ b/Source/WebCore/loader/WorkerThreadableLoader.cpp
@@ -97,7 +97,8 @@ WorkerThreadableLoader::MainThreadBridge::MainThreadBridge(PassRefPtr<Threadable
ASSERT(securityOrigin);
ASSERT(contentSecurityPolicy);
- auto* contentSecurityPolicyCopy = std::make_unique<ContentSecurityPolicy>(*securityOrigin).release();
+
+ auto* contentSecurityPolicyCopy = std::make_unique<ContentSecurityPolicy>(securityOrigin->isolatedCopy()).release();
contentSecurityPolicyCopy->copyStateFrom(contentSecurityPolicy);
StringCapture capturedOutgoingReferrer(outgoingReferrer);
diff --git a/Source/WebCore/loader/icon/IconDatabaseBase.h b/Source/WebCore/loader/icon/IconDatabaseBase.h
index 025465304..35d20839c 100644
--- a/Source/WebCore/loader/icon/IconDatabaseBase.h
+++ b/Source/WebCore/loader/icon/IconDatabaseBase.h
@@ -27,6 +27,7 @@
#define IconDatabaseBase_h
#include "NativeImagePtr.h"
+#include "SharedBuffer.h"
#include <wtf/Forward.h>
#include <wtf/Noncopyable.h>
#include <wtf/PassRefPtr.h>