Title: [239372] trunk/Source/WebCore
Revision
239372
Author
commit-qu...@webkit.org
Date
2018-12-19 00:00:27 -0800 (Wed, 19 Dec 2018)

Log Message

Merge parseAccessControlExposeHeadersAllowList into parseAccessControlAllowList
https://bugs.webkit.org/show_bug.cgi?id=192288

Patch by Rob Buis <rb...@igalia.com> on 2018-12-19
Reviewed by Frédéric Wang.

Prefer return value to out parameter for parseAccessControlAllowList.

* loader/CrossOriginPreflightResultCache.cpp:
(WebCore::CrossOriginPreflightResultCacheItem::parse):
* platform/network/HTTPParsers.h:
(WebCore::parseAccessControlAllowList):
* platform/network/ResourceResponseBase.cpp:
(WebCore::ResourceResponseBase::filter):
(WebCore::ResourceResponseBase::sanitizeHTTPHeaderFieldsAccordingToTainting):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (239371 => 239372)


--- trunk/Source/WebCore/ChangeLog	2018-12-19 07:41:19 UTC (rev 239371)
+++ trunk/Source/WebCore/ChangeLog	2018-12-19 08:00:27 UTC (rev 239372)
@@ -1,3 +1,20 @@
+2018-12-19  Rob Buis  <rb...@igalia.com>
+
+        Merge parseAccessControlExposeHeadersAllowList into parseAccessControlAllowList
+        https://bugs.webkit.org/show_bug.cgi?id=192288
+
+        Reviewed by Frédéric Wang.
+
+        Prefer return value to out parameter for parseAccessControlAllowList.
+
+        * loader/CrossOriginPreflightResultCache.cpp:
+        (WebCore::CrossOriginPreflightResultCacheItem::parse):
+        * platform/network/HTTPParsers.h:
+        (WebCore::parseAccessControlAllowList):
+        * platform/network/ResourceResponseBase.cpp:
+        (WebCore::ResourceResponseBase::filter):
+        (WebCore::ResourceResponseBase::sanitizeHTTPHeaderFieldsAccordingToTainting):
+
 2018-12-18  Zan Dobersek  <zdober...@igalia.com>
 
         REGRESSION(r235165): [GTK][WPE] Garbled rendering on GitLab

Modified: trunk/Source/WebCore/loader/CrossOriginPreflightResultCache.cpp (239371 => 239372)


--- trunk/Source/WebCore/loader/CrossOriginPreflightResultCache.cpp	2018-12-19 07:41:19 UTC (rev 239371)
+++ trunk/Source/WebCore/loader/CrossOriginPreflightResultCache.cpp	2018-12-19 08:00:27 UTC (rev 239372)
@@ -54,12 +54,9 @@
 
 bool CrossOriginPreflightResultCacheItem::parse(const ResourceResponse& response)
 {
-    m_methods.clear();
-    parseAccessControlAllowList(response.httpHeaderField(HTTPHeaderName::AccessControlAllowMethods), m_methods);
+    m_methods = parseAccessControlAllowList(response.httpHeaderField(HTTPHeaderName::AccessControlAllowMethods));
+    m_headers = parseAccessControlAllowList<ASCIICaseInsensitiveHash>(response.httpHeaderField(HTTPHeaderName::AccessControlAllowHeaders));
 
-    m_headers.clear();
-    parseAccessControlAllowList<ASCIICaseInsensitiveHash>(response.httpHeaderField(HTTPHeaderName::AccessControlAllowHeaders), m_headers);
-
     Seconds expiryDelta = 0_s;
     if (parseAccessControlMaxAge(response.httpHeaderField(HTTPHeaderName::AccessControlMaxAge), expiryDelta)) {
         if (expiryDelta > maxPreflightCacheTimeout)

Modified: trunk/Source/WebCore/platform/network/HTTPParsers.h (239371 => 239372)


--- trunk/Source/WebCore/platform/network/HTTPParsers.h	2018-12-19 07:41:19 UTC (rev 239371)
+++ trunk/Source/WebCore/platform/network/HTTPParsers.h	2018-12-19 08:00:27 UTC (rev 239372)
@@ -149,8 +149,9 @@
 }
 
 template<class HashType = DefaultHash<String>::Hash>
-void parseAccessControlAllowList(const String& string, HashSet<String, HashType>& set)
+HashSet<String, HashType> parseAccessControlAllowList(const String& string)
 {
+    HashSet<String, HashType> set;
     unsigned start = 0;
     size_t end;
     while ((end = string.find(',', start)) != notFound) {
@@ -160,6 +161,7 @@
     }
     if (start != string.length())
         addToAccessControlAllowList(string, start, string.length() - 1, set);
+    return set;
 }
 
 }

Modified: trunk/Source/WebCore/platform/network/ResourceResponseBase.cpp (239371 => 239372)


--- trunk/Source/WebCore/platform/network/ResourceResponseBase.cpp	2018-12-19 07:41:19 UTC (rev 239371)
+++ trunk/Source/WebCore/platform/network/ResourceResponseBase.cpp	2018-12-19 08:00:27 UTC (rev 239372)
@@ -163,8 +163,7 @@
     ASSERT(response.tainting() == Tainting::Cors);
     filteredResponse.setType(Type::Cors);
 
-    HTTPHeaderSet accessControlExposeHeaderSet;
-    parseAccessControlAllowList(response.httpHeaderField(HTTPHeaderName::AccessControlExposeHeaders), accessControlExposeHeaderSet);
+    auto accessControlExposeHeaderSet = parseAccessControlAllowList<ASCIICaseInsensitiveHash>(response.httpHeaderField(HTTPHeaderName::AccessControlExposeHeaders));
     filteredResponse.m_httpHeaderFields.uncommonHeaders().removeAllMatching([&](auto& entry) {
         return !isCrossOriginSafeHeader(entry.key, accessControlExposeHeaderSet);
     });
@@ -431,8 +430,7 @@
             if (isSafeCrossOriginResponseHeader(header.key))
                 filteredHeaders.add(header.key, WTFMove(header.value));
         }
-        HTTPHeaderSet corsSafeHeaderSet;
-        parseAccessControlAllowList(httpHeaderField(HTTPHeaderName::AccessControlExposeHeaders), corsSafeHeaderSet);
+        auto corsSafeHeaderSet = parseAccessControlAllowList<ASCIICaseInsensitiveHash>(httpHeaderField(HTTPHeaderName::AccessControlExposeHeaders));
         for (auto& headerName : corsSafeHeaderSet) {
             if (!filteredHeaders.contains(headerName)) {
                 auto value = m_httpHeaderFields.get(headerName);
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to