Diff
Modified: trunk/Source/WebKit/ChangeLog (235126 => 235127)
--- trunk/Source/WebKit/ChangeLog 2018-08-21 18:08:25 UTC (rev 235126)
+++ trunk/Source/WebKit/ChangeLog 2018-08-21 18:12:35 UTC (rev 235127)
@@ -1,3 +1,31 @@
+2018-08-21 Alex Christensen <[email protected]>
+
+ Add _WKWebsiteDataStoreConfiguration. sourceApplicationBundleIdentifier and sourceApplicationSecondaryIdentifier
+ https://bugs.webkit.org/show_bug.cgi?id=188748
+
+ Reviewed by Ryosuke Niwa.
+
+ * NetworkProcess/NetworkSessionCreationParameters.h:
+ (WebKit::NetworkSessionCreationParameters::encode const):
+ (WebKit::NetworkSessionCreationParameters::decode):
+ * NetworkProcess/cocoa/NetworkSessionCocoa.h:
+ * NetworkProcess/cocoa/NetworkSessionCocoa.mm:
+ (WebKit::NetworkSessionCocoa::NetworkSessionCocoa):
+ * Shared/WebsiteDataStoreParameters.cpp:
+ (WebKit::WebsiteDataStoreParameters::privateSessionParameters):
+ * UIProcess/API/Cocoa/WKWebsiteDataStore.mm:
+ (-[WKWebsiteDataStore _initWithConfiguration:]):
+ * UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h:
+ * UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.h:
+ * UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.mm:
+ (-[_WKWebsiteDataStoreConfiguration setSourceApplicationBundleIdentifier:]):
+ (-[_WKWebsiteDataStoreConfiguration sourceApplicationBundleIdentifier]):
+ (-[_WKWebsiteDataStoreConfiguration sourceApplicationSecondaryIdentifier]):
+ (-[_WKWebsiteDataStoreConfiguration setSourceApplicationSecondaryIdentifier:]):
+ * UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:
+ (WebKit::WebsiteDataStore::parameters):
+ * UIProcess/WebsiteData/WebsiteDataStore.h:
+
2018-08-21 Per Arne Vollan <[email protected]>
[WebGL] Contexts are not updated when display configuration changed.
Modified: trunk/Source/WebKit/NetworkProcess/NetworkSessionCreationParameters.h (235126 => 235127)
--- trunk/Source/WebKit/NetworkProcess/NetworkSessionCreationParameters.h 2018-08-21 18:08:25 UTC (rev 235126)
+++ trunk/Source/WebKit/NetworkProcess/NetworkSessionCreationParameters.h 2018-08-21 18:12:35 UTC (rev 235127)
@@ -49,6 +49,8 @@
AllowsCellularAccess allowsCellularAccess { AllowsCellularAccess::Yes };
#if PLATFORM(COCOA)
RetainPtr<CFDictionaryRef> proxyConfiguration;
+ String sourceApplicationBundleIdentifier;
+ String sourceApplicationSecondaryIdentifier;
#endif
};
@@ -59,6 +61,8 @@
encoder << allowsCellularAccess;
#if PLATFORM(COCOA)
IPC::encode(encoder, proxyConfiguration.get());
+ encoder << sourceApplicationBundleIdentifier;
+ encoder << sourceApplicationSecondaryIdentifier;
#endif
}
@@ -82,6 +86,16 @@
RetainPtr<CFDictionaryRef> proxyConfiguration;
if (!IPC::decode(decoder, proxyConfiguration))
return std::nullopt;
+
+ std::optional<String> sourceApplicationBundleIdentifier;
+ decoder >> sourceApplicationBundleIdentifier;
+ if (!sourceApplicationBundleIdentifier)
+ return std::nullopt;
+
+ std::optional<String> sourceApplicationSecondaryIdentifier;
+ decoder >> sourceApplicationSecondaryIdentifier;
+ if (!sourceApplicationSecondaryIdentifier)
+ return std::nullopt;
#endif
return {{
@@ -90,6 +104,8 @@
, WTFMove(*allowsCellularAccess)
#if PLATFORM(COCOA)
, WTFMove(proxyConfiguration)
+ , WTFMove(*sourceApplicationBundleIdentifier)
+ , WTFMove(*sourceApplicationSecondaryIdentifier)
#endif
}};
}
Modified: trunk/Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.h (235126 => 235127)
--- trunk/Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.h 2018-08-21 18:08:25 UTC (rev 235126)
+++ trunk/Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.h 2018-08-21 18:12:35 UTC (rev 235127)
@@ -82,6 +82,9 @@
String m_boundInterfaceIdentifier;
RetainPtr<CFDictionaryRef> m_proxyConfiguration;
+
+ String m_sourceApplicationBundleIdentifier;
+ String m_sourceApplicationSecondaryIdentifier;
};
} // namespace WebKit
Modified: trunk/Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.mm (235126 => 235127)
--- trunk/Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.mm 2018-08-21 18:08:25 UTC (rev 235126)
+++ trunk/Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.mm 2018-08-21 18:12:35 UTC (rev 235127)
@@ -680,13 +680,18 @@
configuration._sourceApplicationAuditTokenData = (__bridge NSData *)data.get();
auto& sourceApplicationBundleIdentifier = globalSourceApplicationBundleIdentifier();
- if (!sourceApplicationBundleIdentifier.isEmpty()) {
+ if (!m_sourceApplicationBundleIdentifier.isEmpty()) {
+ configuration._sourceApplicationBundleIdentifier = m_sourceApplicationBundleIdentifier;
+ configuration._sourceApplicationAuditTokenData = nil;
+ } else if (!sourceApplicationBundleIdentifier.isEmpty()) {
configuration._sourceApplicationBundleIdentifier = sourceApplicationBundleIdentifier;
configuration._sourceApplicationAuditTokenData = nil;
}
auto& sourceApplicationSecondaryIdentifier = globalSourceApplicationSecondaryIdentifier();
- if (!sourceApplicationSecondaryIdentifier.isEmpty())
+ if (!m_sourceApplicationSecondaryIdentifier.isEmpty())
+ configuration._sourceApplicationSecondaryIdentifier = m_sourceApplicationSecondaryIdentifier;
+ else if (!sourceApplicationSecondaryIdentifier.isEmpty())
configuration._sourceApplicationSecondaryIdentifier = sourceApplicationSecondaryIdentifier;
#if PLATFORM(IOS)
Modified: trunk/Source/WebKit/Shared/WebsiteDataStoreParameters.cpp (235126 => 235127)
--- trunk/Source/WebKit/Shared/WebsiteDataStoreParameters.cpp 2018-08-21 18:08:25 UTC (rev 235126)
+++ trunk/Source/WebKit/Shared/WebsiteDataStoreParameters.cpp 2018-08-21 18:12:35 UTC (rev 235127)
@@ -72,7 +72,7 @@
ASSERT(sessionID.isEphemeral());
return { { }, { }, { }, { sessionID, { }, AllowsCellularAccess::Yes
#if PLATFORM(COCOA)
- , nullptr
+ , nullptr , { } , { }
#endif
}};
}
Modified: trunk/Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataStore.mm (235126 => 235127)
--- trunk/Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataStore.mm 2018-08-21 18:08:25 UTC (rev 235126)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataStore.mm 2018-08-21 18:12:35 UTC (rev 235127)
@@ -207,6 +207,10 @@
config.cacheStorageDirectory = configuration._cacheStorageDirectory.path;
if (configuration._serviceWorkerRegistrationDirectory)
config.serviceWorkerRegistrationDirectory = configuration._serviceWorkerRegistrationDirectory.path;
+ if (configuration.sourceApplicationBundleIdentifier)
+ config.sourceApplicationBundleIdentifier = configuration.sourceApplicationBundleIdentifier;
+ if (configuration.sourceApplicationSecondaryIdentifier)
+ config.sourceApplicationSecondaryIdentifier = configuration.sourceApplicationSecondaryIdentifier;
API::Object::constructInWrapper<API::WebsiteDataStore>(self, config, PAL::SessionID::generatePersistentSessionID());
Modified: trunk/Source/WebKit/UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h (235126 => 235127)
--- trunk/Source/WebKit/UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h 2018-08-21 18:08:25 UTC (rev 235126)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h 2018-08-21 18:12:35 UTC (rev 235127)
@@ -54,8 +54,8 @@
@property (nonatomic, copy) NSArray *cachePartitionedURLSchemes;
@property (nonatomic, copy) NSArray<NSString *> *alwaysRevalidatedURLSchemes WK_API_AVAILABLE(macosx(10.12), ios(10.0));
@property (nonatomic) BOOL diskCacheSpeculativeValidationEnabled WK_API_AVAILABLE(macosx(10.12), ios(10.0));
-@property (nonatomic, nullable, copy) NSString *sourceApplicationBundleIdentifier WK_API_AVAILABLE(macosx(10.12.3), ios(10.3));
-@property (nonatomic, nullable, copy) NSString *sourceApplicationSecondaryIdentifier WK_API_AVAILABLE(macosx(10.12.3), ios(10.3));
+@property (nonatomic, nullable, copy) NSString *sourceApplicationBundleIdentifier WK_API_DEPRECATED_WITH_REPLACEMENT("_WKWebsiteDataStoreConfiguration.sourceApplicationBundleIdentifier", macosx(10.12.3, WK_MAC_TBA), ios(10.3, WK_IOS_TBA));
+@property (nonatomic, nullable, copy) NSString *sourceApplicationSecondaryIdentifier WK_API_DEPRECATED_WITH_REPLACEMENT("_WKWebsiteDataStoreConfiguration.sourceApplicationSecondaryIdentifier", macosx(10.12.3, WK_MAC_TBA), ios(10.3, WK_IOS_TBA));
@property (nonatomic) BOOL shouldCaptureAudioInUIProcess WK_API_AVAILABLE(macosx(10.13), ios(11.0));
#if TARGET_OS_IPHONE
@property (nonatomic, nullable, copy) NSString *CTDataConnectionServiceType WK_API_AVAILABLE(ios(10.3));
Modified: trunk/Source/WebKit/UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.h (235126 => 235127)
--- trunk/Source/WebKit/UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.h 2018-08-21 18:08:25 UTC (rev 235126)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.h 2018-08-21 18:12:35 UTC (rev 235127)
@@ -41,6 +41,8 @@
@property (nonatomic, copy, setter=_setResourceLoadStatisticsDirectory:) NSURL *_resourceLoadStatisticsDirectory WK_API_AVAILABLE(macosx(10.13.4), ios(11.3));
@property (nonatomic, copy, setter=_setCacheStorageDirectory:) NSURL *_cacheStorageDirectory WK_API_AVAILABLE(macosx(10.13.4), ios(11.3));
@property (nonatomic, copy, setter=_setServiceWorkerRegistrationDirectory:) NSURL *_serviceWorkerRegistrationDirectory WK_API_AVAILABLE(macosx(10.13.4), ios(11.3));
+@property (nonatomic, nullable, copy) NSString *sourceApplicationBundleIdentifier WK_API_AVAILABLE(macosx(WK_MAC_TBA), ios(WK_IOS_TBA));
+@property (nonatomic, nullable, copy) NSString *sourceApplicationSecondaryIdentifier WK_API_AVAILABLE(macosx(WK_MAC_TBA), ios(WK_IOS_TBA));
@end
Modified: trunk/Source/WebKit/UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.mm (235126 => 235127)
--- trunk/Source/WebKit/UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.mm 2018-08-21 18:08:25 UTC (rev 235126)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.mm 2018-08-21 18:12:35 UTC (rev 235127)
@@ -44,6 +44,8 @@
RetainPtr<NSURL> _resourceLoadStatisticsDirectoryURL;
RetainPtr<NSURL> _cacheStorageDirectoryURL;
RetainPtr<NSURL> _serviceWorkerRegistrationDirectoryURL;
+ RetainPtr<NSString> _sourceApplicationBundleIdentifier;
+ RetainPtr<NSString> _sourceApplicationSecondaryIdentifier;
}
- (NSURL *)_webStorageDirectory
@@ -126,6 +128,26 @@
_serviceWorkerRegistrationDirectoryURL = adoptNS([url copy]);
}
+- (void)setSourceApplicationBundleIdentifier:(NSString *)identifier
+{
+ _sourceApplicationBundleIdentifier = identifier;
+}
+
+- (NSString *)sourceApplicationBundleIdentifier
+{
+ return _sourceApplicationBundleIdentifier.get();
+}
+
+- (NSString *)sourceApplicationSecondaryIdentifier
+{
+ return _sourceApplicationSecondaryIdentifier.get();
+}
+
+- (void)setSourceApplicationSecondaryIdentifier:(NSString *)identifier
+{
+ _sourceApplicationSecondaryIdentifier = identifier;
+}
+
@end
#endif
Modified: trunk/Source/WebKit/UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm (235126 => 235127)
--- trunk/Source/WebKit/UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm 2018-08-21 18:08:25 UTC (rev 235126)
+++ trunk/Source/WebKit/UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm 2018-08-21 18:12:35 UTC (rev 235127)
@@ -58,11 +58,17 @@
resolveDirectoriesIfNecessary();
WebsiteDataStoreParameters parameters;
- parameters.networkSessionParameters = { m_sessionID, m_boundInterfaceIdentifier, m_allowsCellularAccess, m_proxyConfiguration };
+ parameters.networkSessionParameters = {
+ m_sessionID,
+ m_boundInterfaceIdentifier,
+ m_allowsCellularAccess,
+ m_proxyConfiguration,
+ m_configuration.sourceApplicationBundleIdentifier,
+ m_configuration.sourceApplicationSecondaryIdentifier,
+ };
auto cookieFile = resolvedCookieStorageFile();
-#if PLATFORM(COCOA)
if (m_uiProcessCookieStorageIdentifier.isEmpty()) {
auto utf8File = cookieFile.utf8();
auto url = "" (const UInt8 *)utf8File.data(), (CFIndex)utf8File.length(), true));
@@ -71,7 +77,8 @@
}
parameters.uiProcessCookieStorageIdentifier = m_uiProcessCookieStorageIdentifier;
-#endif
+ parameters.networkSessionParameters.sourceApplicationBundleIdentifier = m_configuration.sourceApplicationBundleIdentifier;
+ parameters.networkSessionParameters.sourceApplicationSecondaryIdentifier = m_configuration.sourceApplicationSecondaryIdentifier;
parameters.pendingCookies = copyToVector(m_pendingCookies);
Modified: trunk/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h (235126 => 235127)
--- trunk/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h 2018-08-21 18:08:25 UTC (rev 235126)
+++ trunk/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h 2018-08-21 18:12:35 UTC (rev 235127)
@@ -93,6 +93,8 @@
String resourceLoadStatisticsDirectory;
String _javascript_ConfigurationDirectory;
String cookieStorageFile;
+ String sourceApplicationBundleIdentifier;
+ String sourceApplicationSecondaryIdentifier;
explicit Configuration();
};