Title: [182815] trunk/Source
Revision
182815
Author
bweinst...@apple.com
Date
2015-04-14 15:56:59 -0700 (Tue, 14 Apr 2015)

Log Message

Add SPI to clear HSTS hosts added since a date.
https://bugs.webkit.org/show_bug.cgi?id=143726
and
rdar://problem/16664597

Source/WebCore:

Declare _CFNetworkResetHSTSHostsSinceDate in CFNetworkSPI.h.

Reviewed by Anders Carlsson.

* platform/spi/cf/CFNetworkSPI.h:

Source/WebKit2:

Reviewed by Anders Carlsson.

* UIProcess/API/C/mac/WKContextPrivateMac.h:
* UIProcess/API/C/mac/WKContextPrivateMac.mm:
(WKContextResetHSTSHostsAddedAfterDate): Call into the WebProcessPool.
* UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::WebProcessPool::resetHSTSHostsAddedAfterDate): Call CFNetwork SPI to clear HSTS hosts added
after the given date.
* UIProcess/WebProcessPool.h:

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (182814 => 182815)


--- trunk/Source/WebCore/ChangeLog	2015-04-14 21:55:46 UTC (rev 182814)
+++ trunk/Source/WebCore/ChangeLog	2015-04-14 22:56:59 UTC (rev 182815)
@@ -1,3 +1,16 @@
+2015-04-14  Brian Weinstein  <bweinst...@apple.com>
+
+        Add SPI to clear HSTS hosts added since a date.
+        https://bugs.webkit.org/show_bug.cgi?id=143726
+        and
+        rdar://problem/16664597
+
+        Declare _CFNetworkResetHSTSHostsSinceDate in CFNetworkSPI.h.
+
+        Reviewed by Anders Carlsson.
+
+        * platform/spi/cf/CFNetworkSPI.h:
+
 2015-04-14  Roger Fong  <roger_f...@apple.com>
 
         Unreviewed. Time numbers on media controls move as they update on OSX.

Modified: trunk/Source/WebCore/platform/spi/cf/CFNetworkSPI.h (182814 => 182815)


--- trunk/Source/WebCore/platform/spi/cf/CFNetworkSPI.h	2015-04-14 21:55:46 UTC (rev 182814)
+++ trunk/Source/WebCore/platform/spi/cf/CFNetworkSPI.h	2015-04-14 22:56:59 UTC (rev 182815)
@@ -116,4 +116,8 @@
 EXTERN_C Boolean _CFNetworkSetATSContext(CFDataRef);
 #endif
 
+#if PLATFORM(IOS) || (PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101000)
+EXTERN_C void _CFNetworkResetHSTSHostsSinceDate(CFURLStorageSessionRef, CFDateRef);
+#endif
+
 #endif // CFNetworkSPI_h

Modified: trunk/Source/WebKit2/ChangeLog (182814 => 182815)


--- trunk/Source/WebKit2/ChangeLog	2015-04-14 21:55:46 UTC (rev 182814)
+++ trunk/Source/WebKit2/ChangeLog	2015-04-14 22:56:59 UTC (rev 182815)
@@ -1,3 +1,20 @@
+2015-04-14  Brian Weinstein  <bweinst...@apple.com>
+
+        Add SPI to clear HSTS hosts added since a date.
+        https://bugs.webkit.org/show_bug.cgi?id=143726
+        and
+        rdar://problem/16664597
+
+        Reviewed by Anders Carlsson.
+
+        * UIProcess/API/C/mac/WKContextPrivateMac.h:
+        * UIProcess/API/C/mac/WKContextPrivateMac.mm:
+        (WKContextResetHSTSHostsAddedAfterDate): Call into the WebProcessPool.
+        * UIProcess/Cocoa/WebProcessPoolCocoa.mm:
+        (WebKit::WebProcessPool::resetHSTSHostsAddedAfterDate): Call CFNetwork SPI to clear HSTS hosts added
+        after the given date.
+        * UIProcess/WebProcessPool.h:
+
 2015-04-14  Anders Carlsson  <ander...@apple.com>
 
         More work on making the SharedMemory interface more sane

Modified: trunk/Source/WebKit2/UIProcess/API/C/mac/WKContextPrivateMac.h (182814 => 182815)


--- trunk/Source/WebKit2/UIProcess/API/C/mac/WKContextPrivateMac.h	2015-04-14 21:55:46 UTC (rev 182814)
+++ trunk/Source/WebKit2/UIProcess/API/C/mac/WKContextPrivateMac.h	2015-04-14 22:56:59 UTC (rev 182815)
@@ -48,6 +48,9 @@
 
 WK_EXPORT void WKContextResetHSTSHosts(WKContextRef context);
 
+// The time here is relative to the Unix epoch.
+WK_EXPORT void WKContextResetHSTSHostsAddedAfterDate(WKContextRef context, double startDateIntervalSince1970);
+
 WK_EXPORT void WKContextRegisterSchemeForCustomProtocol(WKContextRef context, WKStringRef scheme);
 WK_EXPORT void WKContextUnregisterSchemeForCustomProtocol(WKContextRef context, WKStringRef scheme);
 

Modified: trunk/Source/WebKit2/UIProcess/API/C/mac/WKContextPrivateMac.mm (182814 => 182815)


--- trunk/Source/WebKit2/UIProcess/API/C/mac/WKContextPrivateMac.mm	2015-04-14 21:55:46 UTC (rev 182814)
+++ trunk/Source/WebKit2/UIProcess/API/C/mac/WKContextPrivateMac.mm	2015-04-14 22:56:59 UTC (rev 182815)
@@ -107,8 +107,11 @@
     return toImpl(context)->resetHSTSHosts();
 }
 
+void WKContextResetHSTSHostsAddedAfterDate(WKContextRef context, double startDateIntervalSince1970)
+{
+    return toImpl(context)->resetHSTSHostsAddedAfterDate(startDateIntervalSince1970);
+}
 
-
 void WKContextRegisterSchemeForCustomProtocol(WKContextRef context, WKStringRef scheme)
 {
     WebProcessPool::registerGlobalURLSchemeAsHavingCustomProtocolHandlers(toWTFString(scheme));

Modified: trunk/Source/WebKit2/UIProcess/Cocoa/WebProcessPoolCocoa.mm (182814 => 182815)


--- trunk/Source/WebKit2/UIProcess/Cocoa/WebProcessPoolCocoa.mm	2015-04-14 21:55:46 UTC (rev 182814)
+++ trunk/Source/WebKit2/UIProcess/Cocoa/WebProcessPoolCocoa.mm	2015-04-14 22:56:59 UTC (rev 182815)
@@ -469,6 +469,15 @@
     _CFNetworkResetHSTSHostsWithSession(privateBrowsingSession());
 }
 
+void WebProcessPool::resetHSTSHostsAddedAfterDate(double startDateIntervalSince1970)
+{
+#if PLATFORM(IOS) || (PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101000)
+    NSDate *startDate = [NSDate dateWithTimeIntervalSince1970:startDateIntervalSince1970];
+    _CFNetworkResetHSTSHostsSinceDate(nullptr, (__bridge CFDateRef)startDate);
+    _CFNetworkResetHSTSHostsSinceDate(privateBrowsingSession(), (__bridge CFDateRef)startDate);
+#endif
+}
+
 int networkProcessLatencyQOS()
 {
     static int qos = [[NSUserDefaults standardUserDefaults] integerForKey:@"WebKitNetworkProcessLatencyQOS"];

Modified: trunk/Source/WebKit2/UIProcess/WebProcessPool.h (182814 => 182815)


--- trunk/Source/WebKit2/UIProcess/WebProcessPool.h	2015-04-14 21:55:46 UTC (rev 182814)
+++ trunk/Source/WebKit2/UIProcess/WebProcessPool.h	2015-04-14 22:56:59 UTC (rev 182815)
@@ -327,6 +327,7 @@
 
     bool isURLKnownHSTSHost(const String& urlString, bool privateBrowsingEnabled) const;
     void resetHSTSHosts();
+    void resetHSTSHostsAddedAfterDate(double startDateIntervalSince1970);
 
     void registerSchemeForCustomProtocol(const String&);
     void unregisterSchemeForCustomProtocol(const String&);
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to