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)