Title: [164272] trunk/Source
Revision
164272
Author
[email protected]
Date
2014-02-17 21:18:18 -0800 (Mon, 17 Feb 2014)

Log Message

Expose a way to clear cookies modified after a given date
https://bugs.webkit.org/show_bug.cgi?id=128845

Patch by Ricky Mondello <[email protected]> on 2014-02-17
Reviewed by Alexey Proskuryakov.

Source/WebCore:

* WebCore.exp.in: Add a symbol.
* platform/network/PlatformCookieJar.h: Declare deleteAllCookiesModifiedAfterDate.
* platform/network/cf/CookieJarCFNet.cpp:
(WebCore::deleteAllCookiesModifiedAfterDate): Add a stub.
* platform/network/curl/CookieJarCurl.cpp:
(WebCore::deleteAllCookiesModifiedAfterDate): Ditto.
* platform/network/soup/CookieJarSoup.cpp:
(WebCore::deleteAllCookiesModifiedAfterDate): Ditto.
* platform/network/mac/CookieJarMac.mm: Add a category NSHTTPCookieStorage category with the method
    used for time-based clearing so we can build on all platforms. For now, we'll check for support
    at runtime.
(WebCore::deleteAllCookiesModifiedAfterDate): Added. Without foundation API, we'll ignore the passed-in
    NetworkStorageSession.

Source/WebKit2:

* UIProcess/API/C/WKCookieManager.cpp:
(WKCookieManagerDeleteAllCookiesModifiedAfterDate): Added. Call out to the CookieManager.
* UIProcess/API/C/WKCookieManager.h: Declare WKCookieManagerDeleteAllCookiesModifiedAfterDate.
* UIProcess/WebCookieManagerProxy.cpp:
(WebKit::WebCookieManagerProxy::deleteAllCookiesModifiedAfterDate): Added. Dispatch message to the
    Network Process.
* UIProcess/WebCookieManagerProxy.h: Declare deleteAllCookiesModifiedAfterDate.
* WebProcess/Cookies/WebCookieManager.cpp:
(WebKit::WebCookieManager::deleteAllCookiesModifiedAfterDate): Added. Call out to WebCore to finish the job.
* WebProcess/Cookies/WebCookieManager.h: Declare deleteAllCookiesModifiedAfterDate.
* WebProcess/Cookies/WebCookieManager.messages.in: Add new message.

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (164271 => 164272)


--- trunk/Source/WebCore/ChangeLog	2014-02-18 05:13:18 UTC (rev 164271)
+++ trunk/Source/WebCore/ChangeLog	2014-02-18 05:18:18 UTC (rev 164272)
@@ -1,3 +1,24 @@
+2014-02-17  Ricky Mondello  <[email protected]>
+
+        Expose a way to clear cookies modified after a given date
+        https://bugs.webkit.org/show_bug.cgi?id=128845
+
+        Reviewed by Alexey Proskuryakov.
+
+        * WebCore.exp.in: Add a symbol.
+        * platform/network/PlatformCookieJar.h: Declare deleteAllCookiesModifiedAfterDate.
+        * platform/network/cf/CookieJarCFNet.cpp:
+        (WebCore::deleteAllCookiesModifiedAfterDate): Add a stub.
+        * platform/network/curl/CookieJarCurl.cpp:
+        (WebCore::deleteAllCookiesModifiedAfterDate): Ditto.
+        * platform/network/soup/CookieJarSoup.cpp:
+        (WebCore::deleteAllCookiesModifiedAfterDate): Ditto.
+        * platform/network/mac/CookieJarMac.mm: Add a category NSHTTPCookieStorage category with the method
+            used for time-based clearing so we can build on all platforms. For now, we'll check for support
+            at runtime.
+        (WebCore::deleteAllCookiesModifiedAfterDate): Added. Without foundation API, we'll ignore the passed-in
+            NetworkStorageSession.
+
 2014-02-17  Benjamin Poulain  <[email protected]>
 
         SelectorCompiler incorrectly saves a backtracking register for a child chain without descendant relation on the right

Modified: trunk/Source/WebCore/WebCore.exp.in (164271 => 164272)


--- trunk/Source/WebCore/WebCore.exp.in	2014-02-18 05:13:18 UTC (rev 164271)
+++ trunk/Source/WebCore/WebCore.exp.in	2014-02-18 05:18:18 UTC (rev 164272)
@@ -962,6 +962,7 @@
 __ZN7WebCore30overrideUserPreferredLanguagesERKN3WTF6VectorINS0_6StringELm0ENS0_15CrashOnOverflowEEE
 __ZN7WebCore31CrossOriginPreflightResultCache5emptyEv
 __ZN7WebCore31CrossOriginPreflightResultCache6sharedEv
+__ZN7WebCore33deleteAllCookiesModifiedAfterDateERKNS_21NetworkStorageSessionEd
 __ZN7WebCore33stripLeadingAndTrailingHTMLSpacesERKN3WTF6StringE
 __ZN7WebCore36standardUserAgentWithApplicationNameERKN3WTF6StringES3_
 __ZN7WebCore37WidgetHierarchyUpdatesSuspensionScope11moveWidgetsEv

Modified: trunk/Source/WebCore/platform/network/PlatformCookieJar.h (164271 => 164272)


--- trunk/Source/WebCore/platform/network/PlatformCookieJar.h	2014-02-18 05:13:18 UTC (rev 164271)
+++ trunk/Source/WebCore/platform/network/PlatformCookieJar.h	2014-02-18 05:18:18 UTC (rev 164272)
@@ -48,6 +48,7 @@
 void getHostnamesWithCookies(const NetworkStorageSession&, HashSet<String>& hostnames);
 void deleteCookiesForHostname(const NetworkStorageSession&, const String& hostname);
 void deleteAllCookies(const NetworkStorageSession&);
+void deleteAllCookiesModifiedAfterDate(const NetworkStorageSession&, double date);
 
 }
 

Modified: trunk/Source/WebCore/platform/network/cf/CookieJarCFNet.cpp (164271 => 164272)


--- trunk/Source/WebCore/platform/network/cf/CookieJarCFNet.cpp	2014-02-18 05:13:18 UTC (rev 164271)
+++ trunk/Source/WebCore/platform/network/cf/CookieJarCFNet.cpp	2014-02-18 05:18:18 UTC (rev 164272)
@@ -239,6 +239,10 @@
     CFHTTPCookieStorageDeleteAllCookies(session.cookieStorage().get());
 }
 
+void deleteAllCookiesModifiedAfterDate(const NetworkStorageSession&, double)
+{
+}
+
 } // namespace WebCore
 
 #endif // USE(CFNETWORK)

Modified: trunk/Source/WebCore/platform/network/curl/CookieJarCurl.cpp (164271 => 164272)


--- trunk/Source/WebCore/platform/network/curl/CookieJarCurl.cpp	2014-02-18 05:13:18 UTC (rev 164271)
+++ trunk/Source/WebCore/platform/network/curl/CookieJarCurl.cpp	2014-02-18 05:18:18 UTC (rev 164272)
@@ -326,4 +326,9 @@
     // FIXME: Not yet implemented
 }
 
+void deleteAllCookiesModifiedAfterDate(const NetworkStorageSession&, double)
+{
+    // FIXME: Not yet implemented
 }
+
+}

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


--- trunk/Source/WebCore/platform/network/mac/CookieJarMac.mm	2014-02-18 05:13:18 UTC (rev 164271)
+++ trunk/Source/WebCore/platform/network/mac/CookieJarMac.mm	2014-02-18 05:18:18 UTC (rev 164272)
@@ -39,6 +39,10 @@
     NSHTTPCookieAcceptPolicyExclusivelyFromMainDocumentDomain = 3
 };
 
+@interface NSHTTPCookieStorage (Details)
+- (void)removeCookiesSinceDate:(NSDate *)date;
+@end
+
 namespace WebCore {
 
 static RetainPtr<NSArray> filterCookies(NSArray *unfilteredCookies)
@@ -192,6 +196,15 @@
     wkDeleteAllHTTPCookies(session.cookieStorage().get());
 }
 
+void deleteAllCookiesModifiedAfterDate(const NetworkStorageSession& session, double date)
+{
+    UNUSED_PARAM(session);
+
+    NSHTTPCookieStorage *cookieStorage = [NSHTTPCookieStorage sharedHTTPCookieStorage];
+    if ([cookieStorage respondsToSelector:@selector(removeCookiesSinceDate:)])
+        [cookieStorage removeCookiesSinceDate:[NSDate dateWithTimeIntervalSince1970:date]];
 }
 
+}
+
 #endif // !USE(CFNETWORK)

Modified: trunk/Source/WebCore/platform/network/soup/CookieJarSoup.cpp (164271 => 164272)


--- trunk/Source/WebCore/platform/network/soup/CookieJarSoup.cpp	2014-02-18 05:13:18 UTC (rev 164271)
+++ trunk/Source/WebCore/platform/network/soup/CookieJarSoup.cpp	2014-02-18 05:18:18 UTC (rev 164272)
@@ -224,4 +224,8 @@
     }
 }
 
+void deleteAllCookiesModifiedAfterDate(const NetworkStorageSession&, double)
+{
 }
+
+}

Modified: trunk/Source/WebKit2/ChangeLog (164271 => 164272)


--- trunk/Source/WebKit2/ChangeLog	2014-02-18 05:13:18 UTC (rev 164271)
+++ trunk/Source/WebKit2/ChangeLog	2014-02-18 05:18:18 UTC (rev 164272)
@@ -1,3 +1,22 @@
+2014-02-17  Ricky Mondello  <[email protected]>
+
+        Expose a way to clear cookies modified after a given date
+        https://bugs.webkit.org/show_bug.cgi?id=128845
+
+        Reviewed by Alexey Proskuryakov.
+
+        * UIProcess/API/C/WKCookieManager.cpp:
+        (WKCookieManagerDeleteAllCookiesModifiedAfterDate): Added. Call out to the CookieManager.
+        * UIProcess/API/C/WKCookieManager.h: Declare WKCookieManagerDeleteAllCookiesModifiedAfterDate.
+        * UIProcess/WebCookieManagerProxy.cpp:
+        (WebKit::WebCookieManagerProxy::deleteAllCookiesModifiedAfterDate): Added. Dispatch message to the
+            Network Process.
+        * UIProcess/WebCookieManagerProxy.h: Declare deleteAllCookiesModifiedAfterDate.
+        * WebProcess/Cookies/WebCookieManager.cpp:
+        (WebKit::WebCookieManager::deleteAllCookiesModifiedAfterDate): Added. Call out to WebCore to finish the job.
+        * WebProcess/Cookies/WebCookieManager.h: Declare deleteAllCookiesModifiedAfterDate.
+        * WebProcess/Cookies/WebCookieManager.messages.in: Add new message.
+
 2014-02-17  Ryuan Choi  <[email protected]>
 
         [EFL][WK2] Move and make WKColorPickerResultListener to EFL specific interface

Modified: trunk/Source/WebKit2/UIProcess/API/C/WKCookieManager.cpp (164271 => 164272)


--- trunk/Source/WebKit2/UIProcess/API/C/WKCookieManager.cpp	2014-02-18 05:13:18 UTC (rev 164271)
+++ trunk/Source/WebKit2/UIProcess/API/C/WKCookieManager.cpp	2014-02-18 05:18:18 UTC (rev 164272)
@@ -56,6 +56,11 @@
     toImpl(cookieManagerRef)->deleteAllCookies();
 }
 
+void WKCookieManagerDeleteAllCookiesModifiedAfterDate(WKCookieManagerRef cookieManagerRef, double date)
+{
+    toImpl(cookieManagerRef)->deleteAllCookiesModifiedAfterDate(date);
+}
+
 void WKCookieManagerSetHTTPCookieAcceptPolicy(WKCookieManagerRef cookieManager, WKHTTPCookieAcceptPolicy policy)
 {
     toImpl(cookieManager)->setHTTPCookieAcceptPolicy(toHTTPCookieAcceptPolicy(policy));

Modified: trunk/Source/WebKit2/UIProcess/API/C/WKCookieManager.h (164271 => 164272)


--- trunk/Source/WebKit2/UIProcess/API/C/WKCookieManager.h	2014-02-18 05:13:18 UTC (rev 164271)
+++ trunk/Source/WebKit2/UIProcess/API/C/WKCookieManager.h	2014-02-18 05:18:18 UTC (rev 164272)
@@ -73,6 +73,7 @@
 
 WK_EXPORT void WKCookieManagerDeleteCookiesForHostname(WKCookieManagerRef cookieManager, WKStringRef hostname);
 WK_EXPORT void WKCookieManagerDeleteAllCookies(WKCookieManagerRef cookieManager);
+WK_EXPORT void WKCookieManagerDeleteAllCookiesModifiedAfterDate(WKCookieManagerRef cookieManager, double);
 
 WK_EXPORT void WKCookieManagerSetHTTPCookieAcceptPolicy(WKCookieManagerRef cookieManager, WKHTTPCookieAcceptPolicy policy);
 typedef void (*WKCookieManagerGetHTTPCookieAcceptPolicyFunction)(WKHTTPCookieAcceptPolicy, WKErrorRef, void*);

Modified: trunk/Source/WebKit2/UIProcess/WebCookieManagerProxy.cpp (164271 => 164272)


--- trunk/Source/WebKit2/UIProcess/WebCookieManagerProxy.cpp	2014-02-18 05:13:18 UTC (rev 164271)
+++ trunk/Source/WebKit2/UIProcess/WebCookieManagerProxy.cpp	2014-02-18 05:18:18 UTC (rev 164272)
@@ -129,6 +129,11 @@
     context()->sendToNetworkingProcessRelaunchingIfNecessary(Messages::WebCookieManager::DeleteAllCookies());
 }
 
+void WebCookieManagerProxy::deleteAllCookiesModifiedAfterDate(double date)
+{
+    context()->sendToNetworkingProcessRelaunchingIfNecessary(Messages::WebCookieManager::DeleteAllCookiesModifiedAfterDate(date));
+}
+
 void WebCookieManagerProxy::startObservingCookieChanges()
 {
     context()->sendToNetworkingProcessRelaunchingIfNecessary(Messages::WebCookieManager::StartObservingCookieChanges());

Modified: trunk/Source/WebKit2/UIProcess/WebCookieManagerProxy.h (164271 => 164272)


--- trunk/Source/WebKit2/UIProcess/WebCookieManagerProxy.h	2014-02-18 05:13:18 UTC (rev 164271)
+++ trunk/Source/WebKit2/UIProcess/WebCookieManagerProxy.h	2014-02-18 05:18:18 UTC (rev 164272)
@@ -63,6 +63,7 @@
     void getHostnamesWithCookies(PassRefPtr<ArrayCallback>);
     void deleteCookiesForHostname(const String& hostname);
     void deleteAllCookies();
+    void deleteAllCookiesModifiedAfterDate(double);
 
     void setHTTPCookieAcceptPolicy(HTTPCookieAcceptPolicy);
     void getHTTPCookieAcceptPolicy(PassRefPtr<HTTPCookieAcceptPolicyCallback>);

Modified: trunk/Source/WebKit2/WebProcess/Cookies/WebCookieManager.cpp (164271 => 164272)


--- trunk/Source/WebKit2/WebProcess/Cookies/WebCookieManager.cpp	2014-02-18 05:13:18 UTC (rev 164271)
+++ trunk/Source/WebKit2/WebProcess/Cookies/WebCookieManager.cpp	2014-02-18 05:18:18 UTC (rev 164272)
@@ -78,6 +78,11 @@
     WebCore::deleteAllCookies(NetworkStorageSession::defaultStorageSession());
 }
 
+void WebCookieManager::deleteAllCookiesModifiedAfterDate(double date)
+{
+    WebCore::deleteAllCookiesModifiedAfterDate(NetworkStorageSession::defaultStorageSession(), date);
+}
+
 void WebCookieManager::startObservingCookieChanges()
 {
     WebCore::startObservingCookieChanges(cookiesDidChange);

Modified: trunk/Source/WebKit2/WebProcess/Cookies/WebCookieManager.h (164271 => 164272)


--- trunk/Source/WebKit2/WebProcess/Cookies/WebCookieManager.h	2014-02-18 05:13:18 UTC (rev 164271)
+++ trunk/Source/WebKit2/WebProcess/Cookies/WebCookieManager.h	2014-02-18 05:18:18 UTC (rev 164272)
@@ -61,6 +61,7 @@
     void getHostnamesWithCookies(uint64_t callbackID);
     void deleteCookiesForHostname(const String&);
     void deleteAllCookies();
+    void deleteAllCookiesModifiedAfterDate(double date);
 
     void platformSetHTTPCookieAcceptPolicy(HTTPCookieAcceptPolicy);
     void getHTTPCookieAcceptPolicy(uint64_t callbackID);

Modified: trunk/Source/WebKit2/WebProcess/Cookies/WebCookieManager.messages.in (164271 => 164272)


--- trunk/Source/WebKit2/WebProcess/Cookies/WebCookieManager.messages.in	2014-02-18 05:13:18 UTC (rev 164271)
+++ trunk/Source/WebKit2/WebProcess/Cookies/WebCookieManager.messages.in	2014-02-18 05:18:18 UTC (rev 164272)
@@ -27,6 +27,7 @@
     void GetHostnamesWithCookies(uint64_t callbackID)
     void DeleteCookiesForHostname(String hostname)
     void DeleteAllCookies()
+    void DeleteAllCookiesModifiedAfterDate(double date)
 
     void SetHTTPCookieAcceptPolicy(uint32_t policy)
     void GetHTTPCookieAcceptPolicy(uint64_t callbackID)
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to