Diff
Modified: trunk/Source/WebCore/ChangeLog (251154 => 251155)
--- trunk/Source/WebCore/ChangeLog 2019-10-15 20:45:23 UTC (rev 251154)
+++ trunk/Source/WebCore/ChangeLog 2019-10-15 20:54:22 UTC (rev 251155)
@@ -1,3 +1,20 @@
+2019-10-15 youenn fablet <you...@apple.com>
+
+ Move headers to keep from a HTTPHeaderNameSet to an OptionSet
+ https://bugs.webkit.org/show_bug.cgi?id=202977
+
+ Reviewed by Anders Carlsson.
+
+ Covered by existing tests.
+ New representation is smaller and more efficient to process.
+
+ * loader/CrossOriginAccessControl.cpp:
+ (WebCore::httpHeadersToKeepFromCleaning):
+ (WebCore::cleanHTTPRequestHeadersForAccessControl):
+ * loader/CrossOriginAccessControl.h:
+ (WebCore::cleanHTTPRequestHeadersForAccessControl): Deleted.
+ * loader/ResourceLoaderOptions.h:
+
2019-10-15 Zalan Bujtas <za...@apple.com>
[LFC][TFC] Use <col> to adjust the preferred column width.
Modified: trunk/Source/WebCore/loader/CrossOriginAccessControl.cpp (251154 => 251155)
--- trunk/Source/WebCore/loader/CrossOriginAccessControl.cpp 2019-10-15 20:45:23 UTC (rev 251154)
+++ trunk/Source/WebCore/loader/CrossOriginAccessControl.cpp 2019-10-15 20:54:22 UTC (rev 251155)
@@ -134,34 +134,34 @@
&& redirectURL.pass().isEmpty();
}
-HTTPHeaderNameSet httpHeadersToKeepFromCleaning(const HTTPHeaderMap& headers)
+OptionSet<HTTPHeadersToKeepFromCleaning> httpHeadersToKeepFromCleaning(const HTTPHeaderMap& headers)
{
- HTTPHeaderNameSet headersToKeep;
+ OptionSet<HTTPHeadersToKeepFromCleaning> headersToKeep;
if (headers.contains(HTTPHeaderName::ContentType))
- headersToKeep.add(HTTPHeaderName::ContentType);
+ headersToKeep.add(HTTPHeadersToKeepFromCleaning::ContentType);
if (headers.contains(HTTPHeaderName::Referer))
- headersToKeep.add(HTTPHeaderName::Referer);
+ headersToKeep.add(HTTPHeadersToKeepFromCleaning::Referer);
if (headers.contains(HTTPHeaderName::Origin))
- headersToKeep.add(HTTPHeaderName::Origin);
+ headersToKeep.add(HTTPHeadersToKeepFromCleaning::Origin);
if (headers.contains(HTTPHeaderName::UserAgent))
- headersToKeep.add(HTTPHeaderName::UserAgent);
+ headersToKeep.add(HTTPHeadersToKeepFromCleaning::UserAgent);
if (headers.contains(HTTPHeaderName::AcceptEncoding))
- headersToKeep.add(HTTPHeaderName::AcceptEncoding);
+ headersToKeep.add(HTTPHeadersToKeepFromCleaning::AcceptEncoding);
return headersToKeep;
}
-void cleanHTTPRequestHeadersForAccessControl(ResourceRequest& request, const HashSet<HTTPHeaderName, WTF::IntHash<HTTPHeaderName>, WTF::StrongEnumHashTraits<HTTPHeaderName>>& headersToKeep)
+void cleanHTTPRequestHeadersForAccessControl(ResourceRequest& request, OptionSet<HTTPHeadersToKeepFromCleaning> headersToKeep)
{
// Remove headers that may have been added by the network layer that cause access control to fail.
- if (!headersToKeep.contains(HTTPHeaderName::ContentType) && !isCrossOriginSafeRequestHeader(HTTPHeaderName::ContentType, request.httpContentType()))
+ if (!headersToKeep.contains(HTTPHeadersToKeepFromCleaning::ContentType) && !isCrossOriginSafeRequestHeader(HTTPHeaderName::ContentType, request.httpContentType()))
request.clearHTTPContentType();
- if (!headersToKeep.contains(HTTPHeaderName::Referer))
+ if (!headersToKeep.contains(HTTPHeadersToKeepFromCleaning::Referer))
request.clearHTTPReferrer();
- if (!headersToKeep.contains(HTTPHeaderName::Origin))
+ if (!headersToKeep.contains(HTTPHeadersToKeepFromCleaning::Origin))
request.clearHTTPOrigin();
- if (!headersToKeep.contains(HTTPHeaderName::UserAgent))
+ if (!headersToKeep.contains(HTTPHeadersToKeepFromCleaning::UserAgent))
request.clearHTTPUserAgent();
- if (!headersToKeep.contains(HTTPHeaderName::AcceptEncoding))
+ if (!headersToKeep.contains(HTTPHeadersToKeepFromCleaning::AcceptEncoding))
request.clearHTTPAcceptEncoding();
}
Modified: trunk/Source/WebCore/loader/CrossOriginAccessControl.h (251154 => 251155)
--- trunk/Source/WebCore/loader/CrossOriginAccessControl.h 2019-10-15 20:45:23 UTC (rev 251154)
+++ trunk/Source/WebCore/loader/CrossOriginAccessControl.h 2019-10-15 20:54:22 UTC (rev 251155)
@@ -30,7 +30,7 @@
#include "ReferrerPolicy.h"
#include "StoredCredentialsPolicy.h"
#include <wtf/Forward.h>
-#include <wtf/HashSet.h>
+#include <wtf/OptionSet.h>
namespace WebCore {
@@ -56,10 +56,17 @@
bool isValidCrossOriginRedirectionURL(const URL&);
-using HTTPHeaderNameSet = HashSet<HTTPHeaderName, WTF::IntHash<HTTPHeaderName>, WTF::StrongEnumHashTraits<HTTPHeaderName>>;
-HTTPHeaderNameSet httpHeadersToKeepFromCleaning(const HTTPHeaderMap&);
-WEBCORE_EXPORT void cleanHTTPRequestHeadersForAccessControl(ResourceRequest&, const HTTPHeaderNameSet& = { });
+enum class HTTPHeadersToKeepFromCleaning {
+ ContentType = 1 << 0,
+ Referer = 1 << 1,
+ Origin = 1 << 2,
+ UserAgent = 1 << 3,
+ AcceptEncoding = 1 << 4
+};
+OptionSet<HTTPHeadersToKeepFromCleaning> httpHeadersToKeepFromCleaning(const HTTPHeaderMap&);
+WEBCORE_EXPORT void cleanHTTPRequestHeadersForAccessControl(ResourceRequest&, OptionSet<HTTPHeadersToKeepFromCleaning>);
+
WEBCORE_EXPORT bool passesAccessControlCheck(const ResourceResponse&, StoredCredentialsPolicy, SecurityOrigin&, String& errorDescription);
WEBCORE_EXPORT bool validatePreflightResponse(const ResourceRequest&, const ResourceResponse&, StoredCredentialsPolicy, SecurityOrigin&, String& errorDescription);
Modified: trunk/Source/WebCore/loader/ResourceLoaderOptions.h (251154 => 251155)
--- trunk/Source/WebCore/loader/ResourceLoaderOptions.h 2019-10-15 20:45:23 UTC (rev 251154)
+++ trunk/Source/WebCore/loader/ResourceLoaderOptions.h 2019-10-15 20:54:22 UTC (rev 251155)
@@ -152,7 +152,7 @@
#if ENABLE(SERVICE_WORKER)
Optional<ServiceWorkerRegistrationIdentifier> serviceWorkerRegistrationIdentifier;
#endif
- HTTPHeaderNameSet httpHeadersToKeep;
+ OptionSet<HTTPHeadersToKeepFromCleaning> httpHeadersToKeep;
Optional<ContentSecurityPolicyResponseHeaders> cspResponseHeaders;
unsigned maxRedirectCount { 20 };
Modified: trunk/Source/WebKit/ChangeLog (251154 => 251155)
--- trunk/Source/WebKit/ChangeLog 2019-10-15 20:45:23 UTC (rev 251154)
+++ trunk/Source/WebKit/ChangeLog 2019-10-15 20:54:22 UTC (rev 251155)
@@ -1,3 +1,14 @@
+2019-10-15 youenn fablet <you...@apple.com>
+
+ Move headers to keep from a HTTPHeaderNameSet to an OptionSet
+ https://bugs.webkit.org/show_bug.cgi?id=202977
+
+ Reviewed by Anders Carlsson.
+
+ * NetworkProcess/NetworkResourceLoadParameters.cpp:
+ (WebKit::NetworkResourceLoadParameters::decode):
+ * NetworkProcess/NetworkResourceLoadParameters.h:
+
2019-10-15 Jiewen Tan <jiewen_...@apple.com>
[WebAuthn] Rename -[WKUIDelegatePrivate webView:runWebAuthenticationPanel:initiatedByFrame:completionHandler:] to -[WKUIDelegatePrivate _webView:runWebAuthenticationPanel:initiatedByFrame:completionHandler:]
Modified: trunk/Source/WebKit/NetworkProcess/NetworkResourceLoadParameters.cpp (251154 => 251155)
--- trunk/Source/WebKit/NetworkProcess/NetworkResourceLoadParameters.cpp 2019-10-15 20:45:23 UTC (rev 251154)
+++ trunk/Source/WebKit/NetworkProcess/NetworkResourceLoadParameters.cpp 2019-10-15 20:54:22 UTC (rev 251155)
@@ -262,7 +262,7 @@
return WTF::nullopt;
result.serviceWorkerRegistrationIdentifier = *serviceWorkerRegistrationIdentifier;
- Optional<HTTPHeaderNameSet> httpHeadersToKeep;
+ Optional<OptionSet<HTTPHeadersToKeepFromCleaning>> httpHeadersToKeep;
decoder >> httpHeadersToKeep;
if (!httpHeadersToKeep)
return WTF::nullopt;
Modified: trunk/Source/WebKit/NetworkProcess/NetworkResourceLoadParameters.h (251154 => 251155)
--- trunk/Source/WebKit/NetworkProcess/NetworkResourceLoadParameters.h 2019-10-15 20:45:23 UTC (rev 251154)
+++ trunk/Source/WebKit/NetworkProcess/NetworkResourceLoadParameters.h 2019-10-15 20:54:22 UTC (rev 251155)
@@ -64,7 +64,7 @@
#if ENABLE(SERVICE_WORKER)
WebCore::ServiceWorkersMode serviceWorkersMode { WebCore::ServiceWorkersMode::None };
Optional<WebCore::ServiceWorkerRegistrationIdentifier> serviceWorkerRegistrationIdentifier;
- WebCore::HTTPHeaderNameSet httpHeadersToKeep;
+ OptionSet<WebCore::HTTPHeadersToKeepFromCleaning> httpHeadersToKeep;
#endif
#if ENABLE(CONTENT_EXTENSIONS)