Title: [261130] trunk/Source/WebCore
Revision
261130
Author
cdu...@apple.com
Date
2020-05-04 17:31:07 -0700 (Mon, 04 May 2020)

Log Message

Drop code path using the legacy CFNetwork cookie change notification SPI
https://bugs.webkit.org/show_bug.cgi?id=211411

Reviewed by John Wilander.

Source/WebCore:

* platform/network/cocoa/NetworkStorageSessionCocoa.mm:
(WebCore::NetworkStorageSession::registerCookieChangeListenersIfNecessary):
(WebCore::NetworkStorageSession::unregisterCookieChangeListenersIfNecessary):

Source/WebCore/PAL:

* pal/spi/cf/CFNetworkSPI.h:

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (261129 => 261130)


--- trunk/Source/WebCore/ChangeLog	2020-05-05 00:24:31 UTC (rev 261129)
+++ trunk/Source/WebCore/ChangeLog	2020-05-05 00:31:07 UTC (rev 261130)
@@ -1,3 +1,14 @@
+2020-05-04  Chris Dumez  <cdu...@apple.com>
+
+        Drop code path using the legacy CFNetwork cookie change notification SPI
+        https://bugs.webkit.org/show_bug.cgi?id=211411
+
+        Reviewed by John Wilander.
+
+        * platform/network/cocoa/NetworkStorageSessionCocoa.mm:
+        (WebCore::NetworkStorageSession::registerCookieChangeListenersIfNecessary):
+        (WebCore::NetworkStorageSession::unregisterCookieChangeListenersIfNecessary):
+
 2020-05-04  Jack Lee  <shihchieh_...@apple.com>
 
         Nullptr crash in CompositeEditCommand::moveParagraphs when changing style on elements that are

Modified: trunk/Source/WebCore/PAL/ChangeLog (261129 => 261130)


--- trunk/Source/WebCore/PAL/ChangeLog	2020-05-05 00:24:31 UTC (rev 261129)
+++ trunk/Source/WebCore/PAL/ChangeLog	2020-05-05 00:31:07 UTC (rev 261130)
@@ -1,3 +1,12 @@
+2020-05-04  Chris Dumez  <cdu...@apple.com>
+
+        Drop code path using the legacy CFNetwork cookie change notification SPI
+        https://bugs.webkit.org/show_bug.cgi?id=211411
+
+        Reviewed by John Wilander.
+
+        * pal/spi/cf/CFNetworkSPI.h:
+
 2020-05-04  Darin Adler  <da...@apple.com>
 
         Remove unneeded USE(MEDIAREMOTE)

Modified: trunk/Source/WebCore/PAL/pal/spi/cf/CFNetworkSPI.h (261129 => 261130)


--- trunk/Source/WebCore/PAL/pal/spi/cf/CFNetworkSPI.h	2020-05-05 00:24:31 UTC (rev 261129)
+++ trunk/Source/WebCore/PAL/pal/spi/cf/CFNetworkSPI.h	2020-05-05 00:31:07 UTC (rev 261130)
@@ -423,9 +423,6 @@
 - (NSArray* __nullable)_getCookiesForDomain:(NSString*)domain;
 - (void)_setCookiesChangedHandler:(void(^__nullable)(NSArray<NSHTTPCookie*>* addedCookies, NSString* domainForChangedCookie))cookiesChangedHandler onQueue:(dispatch_queue_t __nullable)queue;
 - (void)_setCookiesRemovedHandler:(void(^__nullable)(NSArray<NSHTTPCookie*>* __nullable removedCookies, NSString* __nullable domainForRemovedCookies, bool removeAllCookies))cookiesRemovedHandler onQueue:(dispatch_queue_t __nullable)queue;
-// FIXME: The following 2 should be removed are only kept to ensure smooth transition to the new _setCookiesChangedHandler / _setCookiesRemovedHandler SPI.
-- (void)_setCookiesAddedHandler:(void(^__nullable)(NSArray<NSHTTPCookie*>* addedCookies, NSURL* __nullable urlForAddedCookies))cookiesAddedHandler onQueue:(dispatch_queue_t __nullable)queue;
-- (void)_setCookiesDeletedHandler:(void(^__nullable)(NSArray<NSHTTPCookie*>* __nullable deletedCookies, bool deletedAllCookies))cookiesDeletedHandler onQueue:(dispatch_queue_t __nullable)queue;
 @end
 
 @interface NSURLResponse ()

Modified: trunk/Source/WebCore/platform/network/cocoa/NetworkStorageSessionCocoa.mm (261129 => 261130)


--- trunk/Source/WebCore/platform/network/cocoa/NetworkStorageSessionCocoa.mm	2020-05-05 00:24:31 UTC (rev 261129)
+++ trunk/Source/WebCore/platform/network/cocoa/NetworkStorageSessionCocoa.mm	2020-05-05 00:31:07 UTC (rev 261130)
@@ -617,71 +617,39 @@
 
     m_didRegisterCookieListeners = true;
 
-    if ([nsCookieStorage() respondsToSelector:@selector(_setCookiesChangedHandler:onQueue:)]) {
-        [nsCookieStorage() _setCookiesChangedHandler:^(NSArray<NSHTTPCookie*>* addedCookies, NSString* domainForChangedCookie) {
-            String host = domainForChangedCookie;
-            auto it = m_cookieChangeObservers.find(host);
-            if (it == m_cookieChangeObservers.end())
-                return;
-            auto cookies = nsCookiesToCookieVector(addedCookies, [](NSHTTPCookie *cookie) { return !cookie.HTTPOnly; });
-            if (cookies.isEmpty())
-                return;
-            for (auto* observer : it->value)
-                observer->cookiesAdded(host, cookies);
-        } onQueue:dispatch_get_main_queue()];
-    } else {
-        // Old SPI.
-        // FIXME: This could can be removed after a while. It is only kept to ensure a smooth transition to the new SPI.
-        [nsCookieStorage() _setCookiesAddedHandler:^(NSArray<NSHTTPCookie *> * nsCookies, NSURL *urlForAddedCookies) {
-            auto cookies = nsCookiesToCookieVector(nsCookies, [](NSHTTPCookie *cookie) { return !cookie.HTTPOnly; });
-            if (cookies.isEmpty())
-                return;
-            auto host = URL(urlForAddedCookies).host().toString();
-            RELEASE_ASSERT(!host.isNull());
-            // FIXME: This is inefficient. Unfortunately, CFNetwork sends us notifications for hosts that do not match exactly the ones we
-            // are listening for (e.g. 'secure.hulu.com instead of 'www.hulu.com' for). See <rdar://problem/59973630>.
-            auto registrableDomain = RegistrableDomain::uncheckedCreateFromHost(host);
-            for (auto& pair : m_cookieChangeObservers) {
-                if (RegistrableDomain::uncheckedCreateFromHost(pair.key) == registrableDomain) {
-                    for (auto* observer : pair.value)
-                        observer->cookiesAdded(pair.key, cookies);
-                }
-            }
-        } onQueue:dispatch_get_main_queue()];
-    }
+    [nsCookieStorage() _setCookiesChangedHandler:^(NSArray<NSHTTPCookie*>* addedCookies, NSString* domainForChangedCookie) {
+        String host = domainForChangedCookie;
+        auto it = m_cookieChangeObservers.find(host);
+        if (it == m_cookieChangeObservers.end())
+            return;
+        auto cookies = nsCookiesToCookieVector(addedCookies, [](NSHTTPCookie *cookie) { return !cookie.HTTPOnly; });
+        if (cookies.isEmpty())
+            return;
+        for (auto* observer : it->value)
+            observer->cookiesAdded(host, cookies);
+    } onQueue:dispatch_get_main_queue()];
 
-    if ([nsCookieStorage() respondsToSelector:@selector(_setCookiesRemovedHandler:onQueue:)]) {
-        [nsCookieStorage() _setCookiesRemovedHandler:^(NSArray<NSHTTPCookie*>* removedCookies, NSString* domainForRemovedCookies, bool removeAllCookies)
-        {
-            if (removeAllCookies) {
-                for (auto& observers : m_cookieChangeObservers.values()) {
-                    for (auto* observer : observers)
-                        observer->allCookiesDeleted();
-                }
-                return;
-            }
-
-            String host = domainForRemovedCookies;
-            auto it = m_cookieChangeObservers.find(host);
-            if (it == m_cookieChangeObservers.end())
-                return;
-
-            auto cookies = nsCookiesToCookieVector(removedCookies, [](NSHTTPCookie *cookie) { return !cookie.HTTPOnly; });
-            if (cookies.isEmpty())
-                return;
-            for (auto* observer : it->value)
-                observer->cookiesDeleted(host, cookies);
-        } onQueue:dispatch_get_main_queue()];
-    } else {
-        // Old SPI.
-        // FIXME: This could can be removed after a while. It is only kept to ensure a smooth transition to the new SPI.
-        [nsCookieStorage() _setCookiesDeletedHandler:^(NSArray<NSHTTPCookie *> *, bool /*deletedAllCookies*/) {
+    [nsCookieStorage() _setCookiesRemovedHandler:^(NSArray<NSHTTPCookie*>* removedCookies, NSString* domainForRemovedCookies, bool removeAllCookies)
+    {
+        if (removeAllCookies) {
             for (auto& observers : m_cookieChangeObservers.values()) {
                 for (auto* observer : observers)
                     observer->allCookiesDeleted();
             }
-        } onQueue:dispatch_get_main_queue()];
-    }
+            return;
+        }
+
+        String host = domainForRemovedCookies;
+        auto it = m_cookieChangeObservers.find(host);
+        if (it == m_cookieChangeObservers.end())
+            return;
+
+        auto cookies = nsCookiesToCookieVector(removedCookies, [](NSHTTPCookie *cookie) { return !cookie.HTTPOnly; });
+        if (cookies.isEmpty())
+            return;
+        for (auto* observer : it->value)
+            observer->cookiesDeleted(host, cookies);
+    } onQueue:dispatch_get_main_queue()];
 }
 
 void NetworkStorageSession::unregisterCookieChangeListenersIfNecessary()
@@ -689,16 +657,8 @@
     if (!m_didRegisterCookieListeners)
         return;
 
-    if ([nsCookieStorage() respondsToSelector:@selector(_setCookiesChangedHandler:onQueue:)])
-        [nsCookieStorage() _setCookiesChangedHandler:nil onQueue:nil];
-    else
-        [nsCookieStorage() _setCookiesAddedHandler:nil onQueue:nil]; // Old SPI.
-
-    if ([nsCookieStorage() respondsToSelector:@selector(_setCookiesRemovedHandler:onQueue:)])
-        [nsCookieStorage() _setCookiesRemovedHandler:nil onQueue:nil];
-    else
-        [nsCookieStorage() _setCookiesDeletedHandler:nil onQueue:nil]; // Old SPI.
-
+    [nsCookieStorage() _setCookiesChangedHandler:nil onQueue:nil];
+    [nsCookieStorage() _setCookiesRemovedHandler:nil onQueue:nil];
     [nsCookieStorage() _setSubscribedDomainsForCookieChanges:nil];
     m_didRegisterCookieListeners = false;
 }
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to