Title: [235127] trunk/Source/WebKit
Revision
235127
Author
[email protected]
Date
2018-08-21 11:12:35 -0700 (Tue, 21 Aug 2018)

Log Message

Add _WKWebsiteDataStoreConfiguration. sourceApplicationBundleIdentifier and sourceApplicationSecondaryIdentifier
https://bugs.webkit.org/show_bug.cgi?id=188748

Patch by Alex Christensen <[email protected]> on 2018-08-21
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:

Modified Paths

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();
     };
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to