Title: [182073] trunk/Source
Revision
182073
Author
oli...@apple.com
Date
2015-03-27 12:04:28 -0700 (Fri, 27 Mar 2015)

Log Message

Forward additional CFNetwork ATS information to child processes
https://bugs.webkit.org/show_bug.cgi?id=143136

Reviewed by Anders Carlsson.

Source/WebCore:

Declare SPI.

* platform/spi/cf/CFNetworkSPI.h:

Source/WebKit2:

Add additional process creation parameter information, and pass it
to the child processes that actually use CFNetwork.

* NetworkProcess/cocoa/NetworkProcessCocoa.mm:
(WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa):
* Shared/Network/NetworkProcessCreationParameters.cpp:
(WebKit::NetworkProcessCreationParameters::encode):
(WebKit::NetworkProcessCreationParameters::decode):
* Shared/Network/NetworkProcessCreationParameters.h:
* Shared/Plugins/PluginProcessCreationParameters.cpp:
(WebKit::PluginProcessCreationParameters::encode):
(WebKit::PluginProcessCreationParameters::decode):
* Shared/Plugins/PluginProcessCreationParameters.h:
* Shared/WebProcessCreationParameters.cpp:
(WebKit::WebProcessCreationParameters::encode):
(WebKit::WebProcessCreationParameters::decode):
* Shared/WebProcessCreationParameters.h:
* UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::WebProcessPool::platformInitializeWebProcess):
(WebKit::WebProcessPool::platformInitializeNetworkProcess):
* UIProcess/Plugins/mac/PluginProcessProxyMac.mm:
(WebKit::PluginProcessProxy::platformInitializePluginProcess):
* WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::platformInitializeWebProcess):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (182072 => 182073)


--- trunk/Source/WebCore/ChangeLog	2015-03-27 19:04:04 UTC (rev 182072)
+++ trunk/Source/WebCore/ChangeLog	2015-03-27 19:04:28 UTC (rev 182073)
@@ -1,3 +1,14 @@
+2015-03-27  Oliver Hunt  <oli...@apple.com>
+
+        Forward additional CFNetwork ATS information to child processes
+        https://bugs.webkit.org/show_bug.cgi?id=143136
+
+        Reviewed by Anders Carlsson.
+
+        Declare SPI.
+
+        * platform/spi/cf/CFNetworkSPI.h:
+
 2015-03-27  Chris Dumez  <cdu...@apple.com>
 
         [WK2][NetworkCache] We only cache responses with status codes that are cacheable by default

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


--- trunk/Source/WebCore/platform/spi/cf/CFNetworkSPI.h	2015-03-27 19:04:04 UTC (rev 182072)
+++ trunk/Source/WebCore/platform/spi/cf/CFNetworkSPI.h	2015-03-27 19:04:28 UTC (rev 182073)
@@ -57,6 +57,7 @@
 typedef const struct _CFURLCache* CFURLCacheRef;
 typedef const struct _CFURLRequest *CFURLRequestRef;
 typedef const struct __CFURLStorageSession* CFURLStorageSessionRef;
+typedef const struct __CFData *CFDataRef;
 
 #ifdef __BLOCKS__
 typedef void (^CFCachedURLResponseCallBackBlock)(CFCachedURLResponseRef);
@@ -110,4 +111,9 @@
 @end
 #endif
 
+#if (TARGET_OS_IPHONE && __IPHONE_OS_VERSION_MIN_REQUIRED >= 90000) || (PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101100)
+EXTERN_C CFDataRef _CFNetworkCopyATSContext(void);
+EXTERN_C Boolean _CFNetworkSetATSContext(CFDataRef);
+#endif
+
 #endif // CFNetworkSPI_h

Modified: trunk/Source/WebKit2/ChangeLog (182072 => 182073)


--- trunk/Source/WebKit2/ChangeLog	2015-03-27 19:04:04 UTC (rev 182072)
+++ trunk/Source/WebKit2/ChangeLog	2015-03-27 19:04:28 UTC (rev 182073)
@@ -1,3 +1,35 @@
+2015-03-27  Oliver Hunt  <oli...@apple.com>
+
+        Forward additional CFNetwork ATS information to child processes
+        https://bugs.webkit.org/show_bug.cgi?id=143136
+
+        Reviewed by Anders Carlsson.
+
+        Add additional process creation parameter information, and pass it
+        to the child processes that actually use CFNetwork.
+
+        * NetworkProcess/cocoa/NetworkProcessCocoa.mm:
+        (WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa):
+        * Shared/Network/NetworkProcessCreationParameters.cpp:
+        (WebKit::NetworkProcessCreationParameters::encode):
+        (WebKit::NetworkProcessCreationParameters::decode):
+        * Shared/Network/NetworkProcessCreationParameters.h:
+        * Shared/Plugins/PluginProcessCreationParameters.cpp:
+        (WebKit::PluginProcessCreationParameters::encode):
+        (WebKit::PluginProcessCreationParameters::decode):
+        * Shared/Plugins/PluginProcessCreationParameters.h:
+        * Shared/WebProcessCreationParameters.cpp:
+        (WebKit::WebProcessCreationParameters::encode):
+        (WebKit::WebProcessCreationParameters::decode):
+        * Shared/WebProcessCreationParameters.h:
+        * UIProcess/Cocoa/WebProcessPoolCocoa.mm:
+        (WebKit::WebProcessPool::platformInitializeWebProcess):
+        (WebKit::WebProcessPool::platformInitializeNetworkProcess):
+        * UIProcess/Plugins/mac/PluginProcessProxyMac.mm:
+        (WebKit::PluginProcessProxy::platformInitializePluginProcess):
+        * WebProcess/cocoa/WebProcessCocoa.mm:
+        (WebKit::WebProcess::platformInitializeWebProcess):
+
 2015-03-27  Chris Dumez  <cdu...@apple.com>
 
         [WK2][NetworkCache] We only cache responses with status codes that are cacheable by default

Modified: trunk/Source/WebKit2/NetworkProcess/cocoa/NetworkProcessCocoa.mm (182072 => 182073)


--- trunk/Source/WebKit2/NetworkProcess/cocoa/NetworkProcessCocoa.mm	2015-03-27 19:04:04 UTC (rev 182072)
+++ trunk/Source/WebKit2/NetworkProcess/cocoa/NetworkProcessCocoa.mm	2015-03-27 19:04:28 UTC (rev 182073)
@@ -88,6 +88,9 @@
         return;
 
     _CFURLCacheSetMinSizeForVMCachedResource(cache.get(), NetworkResourceLoader::fileBackedResourceMinimumSize());
+#if (TARGET_OS_IPHONE && __IPHONE_OS_VERSION_MIN_REQUIRED >= 90000) || (PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101100)
+    _CFNetworkSetATSContext(parameters.networkATSContext.get());
+#endif
 }
 
 static uint64_t memorySize()

Modified: trunk/Source/WebKit2/Shared/Network/NetworkProcessCreationParameters.cpp (182072 => 182073)


--- trunk/Source/WebKit2/Shared/Network/NetworkProcessCreationParameters.cpp	2015-03-27 19:04:04 UTC (rev 182072)
+++ trunk/Source/WebKit2/Shared/Network/NetworkProcessCreationParameters.cpp	2015-03-27 19:04:28 UTC (rev 182073)
@@ -30,6 +30,10 @@
 
 #include "ArgumentCoders.h"
 
+#if PLATFORM(COCOA)
+#include "ArgumentCodersCF.h"
+#endif
+
 namespace WebKit {
 
 NetworkProcessCreationParameters::NetworkProcessCreationParameters()
@@ -63,7 +67,10 @@
     encoder << nsURLCacheDiskCapacity;
     encoder << httpProxy;
     encoder << httpsProxy;
+#if (TARGET_OS_IPHONE && __IPHONE_OS_VERSION_MIN_REQUIRED >= 90000) || (PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101100)
+    IPC::encode(encoder, networkATSContext.get());
 #endif
+#endif
 #if USE(SOUP)
     encoder << cookiePersistentStoragePath;
     encoder << cookiePersistentStorageType;
@@ -120,7 +127,11 @@
         return false;
     if (!decoder.decode(result.httpsProxy))
         return false;
+#if (TARGET_OS_IPHONE && __IPHONE_OS_VERSION_MIN_REQUIRED >= 90000) || (PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101100)
+    if (!IPC::decode(decoder, result.networkATSContext))
+        return false;
 #endif
+#endif
 
 #if USE(SOUP)
     if (!decoder.decode(result.cookiePersistentStoragePath))

Modified: trunk/Source/WebKit2/Shared/Network/NetworkProcessCreationParameters.h (182072 => 182073)


--- trunk/Source/WebKit2/Shared/Network/NetworkProcessCreationParameters.h	2015-03-27 19:04:04 UTC (rev 182072)
+++ trunk/Source/WebKit2/Shared/Network/NetworkProcessCreationParameters.h	2015-03-27 19:04:28 UTC (rev 182073)
@@ -84,7 +84,10 @@
 
     String httpProxy;
     String httpsProxy;
+#if (TARGET_OS_IPHONE && __IPHONE_OS_VERSION_MIN_REQUIRED >= 90000) || (PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101100)
+    RetainPtr<CFDataRef> networkATSContext;
 #endif
+#endif
 
 #if USE(SOUP)
     String cookiePersistentStoragePath;

Modified: trunk/Source/WebKit2/Shared/Plugins/PluginProcessCreationParameters.cpp (182072 => 182073)


--- trunk/Source/WebKit2/Shared/Plugins/PluginProcessCreationParameters.cpp	2015-03-27 19:04:04 UTC (rev 182072)
+++ trunk/Source/WebKit2/Shared/Plugins/PluginProcessCreationParameters.cpp	2015-03-27 19:04:28 UTC (rev 182073)
@@ -27,7 +27,9 @@
 #include "PluginProcessCreationParameters.h"
 
 #if ENABLE(NETSCAPE_PLUGIN_API)
-
+#if PLATFORM(COCOA)
+#include "ArgumentCodersCF.h"
+#endif
 #include "WebCoreArgumentCoders.h"
 
 namespace WebKit {
@@ -45,7 +47,10 @@
     encoder << terminationTimeout;
 #if PLATFORM(COCOA)
     encoder << acceleratedCompositingPort;
+#if (TARGET_OS_IPHONE && __IPHONE_OS_VERSION_MIN_REQUIRED >= 90000) || (PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101100)
+    IPC::encode(encoder, networkATSContext.get());
 #endif
+#endif
 }
 
 bool PluginProcessCreationParameters::decode(IPC::ArgumentDecoder& decoder, PluginProcessCreationParameters& result)
@@ -61,7 +66,11 @@
 #if PLATFORM(COCOA)
     if (!decoder.decode(result.acceleratedCompositingPort))
         return false;
+#if (TARGET_OS_IPHONE && __IPHONE_OS_VERSION_MIN_REQUIRED >= 90000) || (PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101100)
+    if (!IPC::decode(decoder, result.networkATSContext))
+        return false;
 #endif
+#endif
 
     return true;
 }

Modified: trunk/Source/WebKit2/Shared/Plugins/PluginProcessCreationParameters.h (182072 => 182073)


--- trunk/Source/WebKit2/Shared/Plugins/PluginProcessCreationParameters.h	2015-03-27 19:04:04 UTC (rev 182072)
+++ trunk/Source/WebKit2/Shared/Plugins/PluginProcessCreationParameters.h	2015-03-27 19:04:28 UTC (rev 182073)
@@ -55,7 +55,10 @@
 
 #if PLATFORM(COCOA)
     WebCore::MachSendRight acceleratedCompositingPort;
+#if (TARGET_OS_IPHONE && __IPHONE_OS_VERSION_MIN_REQUIRED >= 90000) || (PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101100)
+    RetainPtr<CFDataRef> networkATSContext;
 #endif
+#endif
 };
 
 } // namespace WebKit

Modified: trunk/Source/WebKit2/Shared/WebProcessCreationParameters.cpp (182072 => 182073)


--- trunk/Source/WebKit2/Shared/WebProcessCreationParameters.cpp	2015-03-27 19:04:04 UTC (rev 182072)
+++ trunk/Source/WebKit2/Shared/WebProcessCreationParameters.cpp	2015-03-27 19:04:28 UTC (rev 182073)
@@ -27,6 +27,9 @@
 #include "WebProcessCreationParameters.h"
 
 #include "APIData.h"
+#if PLATFORM(COCOA)
+#include "ArgumentCodersCF.h"
+#endif
 #include "WebCoreArgumentCoders.h"
 
 namespace WebKit {
@@ -148,6 +151,10 @@
 #if ENABLE(NETSCAPE_PLUGIN_API)
     encoder << pluginLoadClientPolicies;
 #endif
+
+#if (TARGET_OS_IPHONE && __IPHONE_OS_VERSION_MIN_REQUIRED >= 90000) || (PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101100)
+    IPC::encode(encoder, networkATSContext.get());
+#endif
 }
 
 bool WebProcessCreationParameters::decode(IPC::ArgumentDecoder& decoder, WebProcessCreationParameters& parameters)
@@ -311,6 +318,11 @@
         return false;
 #endif
 
+#if (TARGET_OS_IPHONE && __IPHONE_OS_VERSION_MIN_REQUIRED >= 90000) || (PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101100)
+    if (!IPC::decode(decoder, parameters.networkATSContext))
+        return false;
+#endif
+
     return true;
 }
 

Modified: trunk/Source/WebKit2/Shared/WebProcessCreationParameters.h (182072 => 182073)


--- trunk/Source/WebKit2/Shared/WebProcessCreationParameters.h	2015-03-27 19:04:04 UTC (rev 182072)
+++ trunk/Source/WebKit2/Shared/WebProcessCreationParameters.h	2015-03-27 19:04:28 UTC (rev 182073)
@@ -171,6 +171,10 @@
 #if ENABLE(NETSCAPE_PLUGIN_API)
     HashMap<String, HashMap<String, HashMap<String, uint8_t>>> pluginLoadClientPolicies;
 #endif
+
+#if (TARGET_OS_IPHONE && __IPHONE_OS_VERSION_MIN_REQUIRED >= 90000) || (PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101100)
+    RetainPtr<CFDataRef> networkATSContext;
+#endif
 };
 
 } // namespace WebKit

Modified: trunk/Source/WebKit2/UIProcess/Cocoa/WebProcessPoolCocoa.mm (182072 => 182073)


--- trunk/Source/WebKit2/UIProcess/Cocoa/WebProcessPoolCocoa.mm	2015-03-27 19:04:04 UTC (rev 182072)
+++ trunk/Source/WebKit2/UIProcess/Cocoa/WebProcessPoolCocoa.mm	2015-03-27 19:04:28 UTC (rev 182073)
@@ -234,6 +234,9 @@
             [(NSData *)data release];
         }, data.leakRef());
     }
+#if (TARGET_OS_IPHONE && __IPHONE_OS_VERSION_MIN_REQUIRED >= 90000) || (PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101100)
+    parameters.networkATSContext = adoptCF(_CFNetworkCopyATSContext());
+#endif
 }
 
 #if ENABLE(NETWORK_PROCESS)
@@ -251,6 +254,9 @@
 
     parameters.httpProxy = [[NSUserDefaults standardUserDefaults] stringForKey:WebKit2HTTPProxyDefaultsKey];
     parameters.httpsProxy = [[NSUserDefaults standardUserDefaults] stringForKey:WebKit2HTTPSProxyDefaultsKey];
+#if (TARGET_OS_IPHONE && __IPHONE_OS_VERSION_MIN_REQUIRED >= 90000) || (PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101100)
+    parameters.networkATSContext = adoptCF(_CFNetworkCopyATSContext());
+#endif
 
 #if ENABLE(NETWORK_CACHE)
     parameters.shouldEnableNetworkCache = [[NSUserDefaults standardUserDefaults] boolForKey:WebKitNetworkCacheEnabledDefaultsKey];

Modified: trunk/Source/WebKit2/UIProcess/Plugins/mac/PluginProcessProxyMac.mm (182072 => 182073)


--- trunk/Source/WebKit2/UIProcess/Plugins/mac/PluginProcessProxyMac.mm	2015-03-27 19:04:04 UTC (rev 182072)
+++ trunk/Source/WebKit2/UIProcess/Plugins/mac/PluginProcessProxyMac.mm	2015-03-27 19:04:28 UTC (rev 182073)
@@ -35,6 +35,7 @@
 #import "SandboxUtilities.h"
 #import "WebKitSystemInterface.h"
 #import <QuartzCore/CARemoteLayerServer.h>
+#import <WebCore/CFNetworkSPI.h>
 #import <WebCore/FileSystem.h>
 #import <WebCore/URL.h>
 #import <crt_externs.h>
@@ -166,6 +167,9 @@
 #if HAVE(HOSTED_CORE_ANIMATION)
     parameters.acceleratedCompositingPort = MachSendRight::create([CARemoteLayerServer sharedServer].serverPort);
 #endif
+#if (TARGET_OS_IPHONE && __IPHONE_OS_VERSION_MIN_REQUIRED >= 90000) || (PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101100)
+    parameters.networkATSContext = adoptCF(_CFNetworkCopyATSContext());
+#endif
 }
 
 bool PluginProcessProxy::getPluginProcessSerialNumber(ProcessSerialNumber& pluginProcessSerialNumber)

Modified: trunk/Source/WebKit2/WebProcess/cocoa/WebProcessCocoa.mm (182072 => 182073)


--- trunk/Source/WebKit2/WebProcess/cocoa/WebProcessCocoa.mm	2015-03-27 19:04:04 UTC (rev 182072)
+++ trunk/Source/WebKit2/WebProcess/cocoa/WebProcessCocoa.mm	2015-03-27 19:04:28 UTC (rev 182073)
@@ -207,6 +207,9 @@
     Method methodToPatch = class_getInstanceMethod([NSApplication class], @selector(accessibilityFocusedUIElement));
     method_setImplementation(methodToPatch, (IMP)NSApplicationAccessibilityFocusedUIElement);
 #endif
+#if (TARGET_OS_IPHONE && __IPHONE_OS_VERSION_MIN_REQUIRED >= 90000) || (PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101100)
+    _CFNetworkSetATSContext(parameters.networkATSContext.get());
+#endif
 }
 
 void WebProcess::initializeProcessName(const ChildProcessInitializationParameters& parameters)
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to