Unreviewed, rolling out r226745.
https://bugs.webkit.org/show_bug.cgi?id=183132
This is breaking some websites (Requested by youenn on
#webkit).
Reverted changeset:
"Use no-cache fetch mode when loading main documents with
location.reload()"
https://bugs.webkit.org/show_bug.cgi?id=181285
https://trac.webkit.org/changeset/226745
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@229027 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog
index 8dfb6e47..772b952 100644
--- a/Source/WebCore/ChangeLog
+++ b/Source/WebCore/ChangeLog
@@ -1,3 +1,18 @@
+2018-02-26 Commit Queue <commit-queue@webkit.org>
+
+ Unreviewed, rolling out r226745.
+ https://bugs.webkit.org/show_bug.cgi?id=183132
+
+ This is breaking some websites (Requested by youenn on
+ #webkit).
+
+ Reverted changeset:
+
+ "Use no-cache fetch mode when loading main documents with
+ location.reload()"
+ https://bugs.webkit.org/show_bug.cgi?id=181285
+ https://trac.webkit.org/changeset/226745
+
2018-02-26 Philippe Normand <pnormand@igalia.com>
Unreviewed, USE_GSTREAMER_PLAYBIN3 build fix.
diff --git a/Source/WebCore/loader/DocumentLoader.cpp b/Source/WebCore/loader/DocumentLoader.cpp
index b1fa5cb..173e1bf 100644
--- a/Source/WebCore/loader/DocumentLoader.cpp
+++ b/Source/WebCore/loader/DocumentLoader.cpp
@@ -1678,32 +1678,9 @@
});
}
-static inline FetchOptions::Cache toFetchOptionsCache(ResourceRequestCachePolicy policy)
-{
- // We are setting FetchOptions::Cache values to keep current behavior consistency.
- // FIXME: We should merge FetchOptions::Cache with ResourceRequestCachePolicy and merge related class members.
- switch (policy) {
- case UseProtocolCachePolicy:
- return FetchOptions::Cache::Default;
- case ReloadIgnoringCacheData:
- return FetchOptions::Cache::Reload;
- case ReturnCacheDataElseLoad:
- return FetchOptions::Cache::Default;
- case ReturnCacheDataDontLoad:
- return FetchOptions::Cache::Default;
- case DoNotUseAnyCache:
- return FetchOptions::Cache::NoStore;
- case RefreshAnyCacheData:
- return FetchOptions::Cache::NoCache;
- }
- return FetchOptions::Cache::Default;
-}
-
void DocumentLoader::loadMainResource(ResourceRequest&& request)
{
- ResourceLoaderOptions mainResourceLoadOptions { SendCallbacks, SniffContent, BufferData, StoredCredentialsPolicy::Use, ClientCredentialPolicy::MayAskClientForCredentials, FetchOptions::Credentials::Include, SkipSecurityCheck, FetchOptions::Mode::Navigate, IncludeCertificateInfo, ContentSecurityPolicyImposition::SkipPolicyCheck, DefersLoadingPolicy::AllowDefersLoading, CachingPolicy::AllowCaching };
- mainResourceLoadOptions.cache = toFetchOptionsCache(request.cachePolicy());
-
+ static NeverDestroyed<ResourceLoaderOptions> mainResourceLoadOptions(SendCallbacks, SniffContent, BufferData, StoredCredentialsPolicy::Use, ClientCredentialPolicy::MayAskClientForCredentials, FetchOptions::Credentials::Include, SkipSecurityCheck, FetchOptions::Mode::Navigate, IncludeCertificateInfo, ContentSecurityPolicyImposition::SkipPolicyCheck, DefersLoadingPolicy::AllowDefersLoading, CachingPolicy::AllowCaching);
CachedResourceRequest mainResourceRequest(ResourceRequest(request), mainResourceLoadOptions);
if (!m_frame->isMainFrame() && m_frame->document()) {
// If we are loading the main resource of a subframe, use the cache partition of the main document.
diff --git a/Source/WebCore/loader/FrameLoader.cpp b/Source/WebCore/loader/FrameLoader.cpp
index 65db90b..206f6cb 100644
--- a/Source/WebCore/loader/FrameLoader.cpp
+++ b/Source/WebCore/loader/FrameLoader.cpp
@@ -1192,12 +1192,10 @@
referrer = String();
FrameLoadType loadType;
- if (request.resourceRequest().cachePolicy() == RefreshAnyCacheData)
+ if (request.resourceRequest().cachePolicy() == ReloadIgnoringCacheData)
loadType = FrameLoadType::Reload;
else if (request.lockBackForwardList() == LockBackForwardList::Yes)
loadType = FrameLoadType::RedirectWithLockedBackForwardList;
- else if (request.resourceRequest().cachePolicy() == ReloadIgnoringCacheData)
- loadType = FrameLoadType::ReloadFromOrigin;
else
loadType = FrameLoadType::Standard;
@@ -1287,7 +1285,7 @@
addExtraFieldsToRequest(request, newLoadType, true);
if (isReload(newLoadType))
- request.setCachePolicy(RefreshAnyCacheData);
+ request.setCachePolicy(ReloadIgnoringCacheData);
ASSERT(newLoadType != FrameLoadType::Same);
@@ -1424,7 +1422,7 @@
FrameLoadType type;
if (shouldTreatURLAsSameAsCurrent(newDocumentLoader->originalRequest().url())) {
- r.setCachePolicy(RefreshAnyCacheData);
+ r.setCachePolicy(ReloadIgnoringCacheData);
type = FrameLoadType::Same;
} else if (shouldTreatURLAsSameAsCurrent(newDocumentLoader->unreachableURL()) && m_loadType == FrameLoadType::Reload)
type = FrameLoadType::Reload;
@@ -1657,7 +1655,8 @@
ResourceRequest& request = loader->request();
- request.setCachePolicy(RefreshAnyCacheData);
+ // FIXME: We don't have a mechanism to revalidate the main resource without reloading at the moment.
+ request.setCachePolicy(ReloadIgnoringCacheData);
// If we're about to re-post, set up action so the application can warn the user.
if (request.httpMethod() == "POST")
@@ -2632,13 +2631,13 @@
if (isMainResource) {
if (isReload(loadType) || request.isConditional())
- return loadType == FrameLoadType::ReloadFromOrigin ? ReloadIgnoringCacheData : RefreshAnyCacheData;
+ return ReloadIgnoringCacheData;
return UseProtocolCachePolicy;
}
if (request.isConditional())
- return RefreshAnyCacheData;
+ return ReloadIgnoringCacheData;
if (documentLoader()->isLoadingInAPISense()) {
// If we inherit cache policy from a main resource, we use the DocumentLoader's
@@ -3498,10 +3497,8 @@
} else {
switch (loadType) {
case FrameLoadType::Reload:
- case FrameLoadType::ReloadExpiredOnly:
- request.setCachePolicy(RefreshAnyCacheData);
- break;
case FrameLoadType::ReloadFromOrigin:
+ case FrameLoadType::ReloadExpiredOnly:
request.setCachePolicy(ReloadIgnoringCacheData);
break;
case FrameLoadType::Back:
diff --git a/Source/WebCore/loader/NavigationScheduler.cpp b/Source/WebCore/loader/NavigationScheduler.cpp
index d284a91..caf2704 100644
--- a/Source/WebCore/loader/NavigationScheduler.cpp
+++ b/Source/WebCore/loader/NavigationScheduler.cpp
@@ -183,7 +183,7 @@
UserGestureIndicator gestureIndicator { userGestureToForward() };
bool refresh = equalIgnoringFragmentIdentifier(frame.document()->url(), url());
- ResourceRequest resourceRequest { url(), referrer(), refresh ? RefreshAnyCacheData : UseProtocolCachePolicy };
+ ResourceRequest resourceRequest { url(), referrer(), refresh ? ReloadIgnoringCacheData : UseProtocolCachePolicy };
FrameLoadRequest frameLoadRequest { initiatingDocument(), *securityOrigin(), resourceRequest, "_self", lockHistory(), lockBackForwardList(), MaybeSendReferrer, AllowNavigationToInvalidURL::No, NewFrameOpenerPolicy::Allow, shouldOpenExternalURLs(), initiatedByMainFrame() };
frame.loader().changeLocation(WTFMove(frameLoadRequest));
@@ -217,7 +217,7 @@
{
UserGestureIndicator gestureIndicator { userGestureToForward() };
- ResourceRequest resourceRequest { url(), referrer(), RefreshAnyCacheData };
+ ResourceRequest resourceRequest { url(), referrer(), ReloadIgnoringCacheData };
FrameLoadRequest frameLoadRequest { initiatingDocument(), *securityOrigin(), resourceRequest, "_self", lockHistory(), lockBackForwardList(), MaybeSendReferrer, AllowNavigationToInvalidURL::Yes, NewFrameOpenerPolicy::Allow, shouldOpenExternalURLs(), initiatedByMainFrame() };
frame.loader().changeLocation(WTFMove(frameLoadRequest));
@@ -320,7 +320,7 @@
ResourceResponse replacementResponse { m_originDocument.url(), ASCIILiteral("text/plain"), 0, ASCIILiteral("UTF-8") };
SubstituteData replacementData { SharedBuffer::create(), m_originDocument.url(), replacementResponse, SubstituteData::SessionHistoryVisibility::Hidden };
- ResourceRequest resourceRequest { m_originDocument.url(), emptyString(), RefreshAnyCacheData };
+ ResourceRequest resourceRequest { m_originDocument.url(), emptyString(), ReloadIgnoringCacheData };
FrameLoadRequest frameLoadRequest { m_originDocument, m_originDocument.securityOrigin(), resourceRequest, { }, lockHistory(), lockBackForwardList(), MaybeSendReferrer, AllowNavigationToInvalidURL::Yes, NewFrameOpenerPolicy::Allow, shouldOpenExternalURLs(), initiatedByMainFrame() };
frameLoadRequest.setSubstituteData(replacementData);
frame.loader().load(WTFMove(frameLoadRequest));