Title: [186863] trunk/Source/WebCore
Revision
186863
Author
[email protected]
Date
2015-07-15 15:22:58 -0700 (Wed, 15 Jul 2015)

Log Message

WebKit document.cookie mis-parsing.
rdar://problem/21715050 and https://bugs.webkit.org/show_bug.cgi?id=146976

Reviewed by Sam Weinig.

* platform/network/mac/CookieJarMac.mm:
(WebCore::setCookiesFromDOM): Use new CFNetwork SPI when available.

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (186862 => 186863)


--- trunk/Source/WebCore/ChangeLog	2015-07-15 21:54:44 UTC (rev 186862)
+++ trunk/Source/WebCore/ChangeLog	2015-07-15 22:22:58 UTC (rev 186863)
@@ -1,3 +1,13 @@
+2015-07-15  Brady Eidson  <[email protected]>
+
+        WebKit document.cookie mis-parsing.
+        rdar://problem/21715050 and https://bugs.webkit.org/show_bug.cgi?id=146976
+
+        Reviewed by Sam Weinig.
+
+        * platform/network/mac/CookieJarMac.mm:
+        (WebCore::setCookiesFromDOM): Use new CFNetwork SPI when available.
+
 2015-07-15  Jinyoung Hur  <[email protected]>
 
         [WinCairo] font fallback not working

Modified: trunk/Source/WebCore/platform/network/mac/CookieJarMac.mm (186862 => 186863)


--- trunk/Source/WebCore/platform/network/mac/CookieJarMac.mm	2015-07-15 21:54:44 UTC (rev 186862)
+++ trunk/Source/WebCore/platform/network/mac/CookieJarMac.mm	2015-07-15 22:22:58 UTC (rev 186863)
@@ -118,7 +118,18 @@
     String cookieString = cookieStr.contains('=') ? cookieStr : cookieStr + "=";
 
     NSURL *cookieURL = url;
-    RetainPtr<NSArray> filteredCookies = filterCookies([NSHTTPCookie cookiesWithResponseHeaderFields:[NSDictionary dictionaryWithObject:cookieString forKey:@"Set-Cookie"] forURL:cookieURL]);
+    NSDictionary *headerFields = [NSDictionary dictionaryWithObject:cookieString forKey:@"Set-Cookie"];
+
+    NSArray *unfilteredCookies;
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wundeclared-selector"
+    if ([[NSHTTPCookie class] respondsToSelector:@selector(_parsedCookiesWithResponseHeaderFields:forURL:)])
+        unfilteredCookies = [NSHTTPCookie performSelector:@selector(_parsedCookiesWithResponseHeaderFields:forURL:) withObject:headerFields withObject:cookieURL];
+#pragma clang diagnostic pop
+    else
+        unfilteredCookies = [NSHTTPCookie cookiesWithResponseHeaderFields:headerFields forURL:cookieURL];
+
+    RetainPtr<NSArray> filteredCookies = filterCookies(unfilteredCookies);
     ASSERT([filteredCookies.get() count] <= 1);
 
     wkSetHTTPCookiesForURL(session.cookieStorage().get(), filteredCookies.get(), cookieURL, firstParty);
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to