Title: [196997] trunk
- Revision
- 196997
- Author
- [email protected]
- Date
- 2016-02-23 14:29:01 -0800 (Tue, 23 Feb 2016)
Log Message
WKProcessPool should conform to NSCoding
https://bugs.webkit.org/show_bug.cgi?id=154608
Reviewed by Sam Weinig.
Source/WebKit2:
Add +[WKProcessPool _sharedProcessPool] and encode/decode whether the process pool is shared.
* UIProcess/API/Cocoa/WKProcessPool.h:
* UIProcess/API/Cocoa/WKProcessPool.mm:
(-[WKProcessPool encodeWithCoder:]):
(-[WKProcessPool initWithCoder:]):
(+[WKProcessPool _sharedProcessPool]):
* UIProcess/API/Cocoa/WKProcessPoolPrivate.h:
Tools:
Add tests.
* TestWebKitAPI/Tests/WebKit2Cocoa/Coding.mm:
(TEST):
Modified Paths
Diff
Modified: trunk/Source/WebKit2/ChangeLog (196996 => 196997)
--- trunk/Source/WebKit2/ChangeLog 2016-02-23 22:17:24 UTC (rev 196996)
+++ trunk/Source/WebKit2/ChangeLog 2016-02-23 22:29:01 UTC (rev 196997)
@@ -1,5 +1,21 @@
2016-02-23 Anders Carlsson <[email protected]>
+ WKProcessPool should conform to NSCoding
+ https://bugs.webkit.org/show_bug.cgi?id=154608
+
+ Reviewed by Sam Weinig.
+
+ Add +[WKProcessPool _sharedProcessPool] and encode/decode whether the process pool is shared.
+
+ * UIProcess/API/Cocoa/WKProcessPool.h:
+ * UIProcess/API/Cocoa/WKProcessPool.mm:
+ (-[WKProcessPool encodeWithCoder:]):
+ (-[WKProcessPool initWithCoder:]):
+ (+[WKProcessPool _sharedProcessPool]):
+ * UIProcess/API/Cocoa/WKProcessPoolPrivate.h:
+
+2016-02-23 Anders Carlsson <[email protected]>
+
WKWebsiteDataStore should conform to NSCoding
https://bugs.webkit.org/show_bug.cgi?id=154605
Modified: trunk/Source/WebKit2/UIProcess/API/Cocoa/WKProcessPool.h (196996 => 196997)
--- trunk/Source/WebKit2/UIProcess/API/Cocoa/WKProcessPool.h 2016-02-23 22:17:24 UTC (rev 196996)
+++ trunk/Source/WebKit2/UIProcess/API/Cocoa/WKProcessPool.h 2016-02-23 22:29:01 UTC (rev 196997)
@@ -36,7 +36,7 @@
with the same process pool end up sharing web content processes.
*/
WK_CLASS_AVAILABLE(10_10, 8_0)
-@interface WKProcessPool : NSObject
+@interface WKProcessPool : NSObject <NSCoding>
@end
#endif
Modified: trunk/Source/WebKit2/UIProcess/API/Cocoa/WKProcessPool.mm (196996 => 196997)
--- trunk/Source/WebKit2/UIProcess/API/Cocoa/WKProcessPool.mm 2016-02-23 22:17:24 UTC (rev 196996)
+++ trunk/Source/WebKit2/UIProcess/API/Cocoa/WKProcessPool.mm 2016-02-23 22:29:01 UTC (rev 196997)
@@ -51,6 +51,8 @@
#import "WKGeolocationProviderIOS.h"
#endif
+static WKProcessPool *sharedProcessPool;
+
@implementation WKProcessPool {
WebKit::WeakObjCPtr<id <_WKAutomationDelegate>> _automationDelegate;
WebKit::WeakObjCPtr<id <_WKDownloadDelegate>> _downloadDelegate;
@@ -88,6 +90,28 @@
[super dealloc];
}
+- (void)encodeWithCoder:(NSCoder *)coder
+{
+ if (self == sharedProcessPool) {
+ [coder encodeBool:YES forKey:@"isSharedProcessPool"];
+ return;
+ }
+}
+
+- (instancetype)initWithCoder:(NSCoder *)coder
+{
+ if (!(self = [self init]))
+ return nil;
+
+ if ([coder decodeBoolForKey:@"isSharedProcessPool"]) {
+ [self release];
+
+ return [[WKProcessPool _sharedProcessPool] retain];
+ }
+
+ return self;
+}
+
- (NSString *)description
{
return [NSString stringWithFormat:@"<%@: %p; configuration = %@>", NSStringFromClass(self.class), self, wrapper(_processPool->configuration())];
@@ -116,6 +140,16 @@
@implementation WKProcessPool (WKPrivate)
++ (WKProcessPool *)_sharedProcessPool
+{
+ static dispatch_once_t onceToken;
+ dispatch_once(&onceToken, ^{
+ sharedProcessPool = [[WKProcessPool alloc] init];
+ });
+
+ return sharedProcessPool;
+}
+
+ (NSURL *)_websiteDataURLForContainerWithURL:(NSURL *)containerURL
{
return [WKProcessPool _websiteDataURLForContainerWithURL:containerURL bundleIdentifierIfNotInContainer:nil];
Modified: trunk/Source/WebKit2/UIProcess/API/Cocoa/WKProcessPoolPrivate.h (196996 => 196997)
--- trunk/Source/WebKit2/UIProcess/API/Cocoa/WKProcessPoolPrivate.h 2016-02-23 22:17:24 UTC (rev 196996)
+++ trunk/Source/WebKit2/UIProcess/API/Cocoa/WKProcessPoolPrivate.h 2016-02-23 22:29:01 UTC (rev 196997)
@@ -38,6 +38,8 @@
@interface WKProcessPool (WKPrivate)
++ (WKProcessPool *)_sharedProcessPool;
+
@property (nonatomic, readonly) _WKProcessPoolConfiguration *_configuration;
- (void)_setAllowsSpecificHTTPSCertificate:(NSArray *)certificateChain forHost:(NSString *)host;
Modified: trunk/Tools/ChangeLog (196996 => 196997)
--- trunk/Tools/ChangeLog 2016-02-23 22:17:24 UTC (rev 196996)
+++ trunk/Tools/ChangeLog 2016-02-23 22:29:01 UTC (rev 196997)
@@ -1,5 +1,17 @@
2016-02-23 Anders Carlsson <[email protected]>
+ WKProcessPool should conform to NSCoding
+ https://bugs.webkit.org/show_bug.cgi?id=154608
+
+ Reviewed by Sam Weinig.
+
+ Add tests.
+
+ * TestWebKitAPI/Tests/WebKit2Cocoa/Coding.mm:
+ (TEST):
+
+2016-02-23 Anders Carlsson <[email protected]>
+
WKWebsiteDataStore should conform to NSCoding
https://bugs.webkit.org/show_bug.cgi?id=154605
Modified: trunk/Tools/TestWebKitAPI/Tests/WebKit2Cocoa/Coding.mm (196996 => 196997)
--- trunk/Tools/TestWebKitAPI/Tests/WebKit2Cocoa/Coding.mm 2016-02-23 22:17:24 UTC (rev 196996)
+++ trunk/Tools/TestWebKitAPI/Tests/WebKit2Cocoa/Coding.mm 2016-02-23 22:29:01 UTC (rev 196997)
@@ -27,7 +27,7 @@
#if WK_API_ENABLED
-#import <WebKit/WKPreferences.h>
+#import <WebKit/WKProcessPoolPrivate.h>
#import <wtf/RetainPtr.h>
template<typename T>
@@ -65,6 +65,18 @@
#endif
}
+TEST(Coding, WKProcessPool_Shared)
+{
+ auto a = encodeAndDecode([WKProcessPool _sharedProcessPool]);
+ EXPECT_EQ([WKProcessPool _sharedProcessPool], a.get());
+}
+
+TEST(Coding, WKProcessPool)
+{
+ auto a = encodeAndDecode(adoptNS([[WKProcessPool alloc] init]).get());
+ EXPECT_NE([WKProcessPool _sharedProcessPool], a.get());
+}
+
TEST(Coding, WKWebsiteDataStore_Default)
{
auto a = encodeAndDecode([WKWebsiteDataStore defaultDataStore]);
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes