Diff
Modified: trunk/Source/WebKit/ChangeLog (231769 => 231770)
--- trunk/Source/WebKit/ChangeLog 2018-05-14 21:26:51 UTC (rev 231769)
+++ trunk/Source/WebKit/ChangeLog 2018-05-14 22:14:40 UTC (rev 231770)
@@ -1,3 +1,30 @@
+2018-05-14 Andy Estes <aes...@apple.com>
+
+ [Wi-Fi Assertions] Allow clients to specify a context identifier
+ https://bugs.webkit.org/show_bug.cgi?id=185620
+ <rdar://problem/39915196>
+
+ Reviewed by Brady Eidson.
+
+ Added an SPI on _WKProcessPoolConfiguration that allows clients to specify a
+ context identifier.
+
+ * NetworkProcess/NetworkProcessCreationParameters.cpp:
+ (WebKit::NetworkProcessCreationParameters::encode const):
+ (WebKit::NetworkProcessCreationParameters::decode):
+ * NetworkProcess/NetworkProcessCreationParameters.h:
+ * NetworkProcess/cocoa/NetworkProcessCocoa.mm:
+ (WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa):
+ * UIProcess/API/APIProcessPoolConfiguration.cpp:
+ (API::ProcessPoolConfiguration::copy):
+ * UIProcess/API/APIProcessPoolConfiguration.h:
+ * UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h:
+ * UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm:
+ (-[_WKProcessPoolConfiguration wirelessContextIdentifier]):
+ (-[_WKProcessPoolConfiguration setWirelessContextIdentifier:]):
+ * UIProcess/Cocoa/WebProcessPoolCocoa.mm:
+ (WebKit::WebProcessPool::platformInitializeNetworkProcess):
+
2018-05-11 Brian Burg <bb...@apple.com>
Web Automation: Automation.getBrowsingContext returns window origin that differs from window.screenX/Y
Modified: trunk/Source/WebKit/NetworkProcess/NetworkProcessCreationParameters.cpp (231769 => 231770)
--- trunk/Source/WebKit/NetworkProcess/NetworkProcessCreationParameters.cpp 2018-05-14 21:26:51 UTC (rev 231769)
+++ trunk/Source/WebKit/NetworkProcess/NetworkProcessCreationParameters.cpp 2018-05-14 22:14:40 UTC (rev 231770)
@@ -117,6 +117,10 @@
encoder << urlSchemesRegisteredAsCanDisplayOnlyIfCanRequest;
encoder << trackNetworkActivity;
+
+#if ENABLE(WIFI_ASSERTIONS)
+ encoder << wirelessContextIdentifier;
+#endif
}
bool NetworkProcessCreationParameters::decode(IPC::Decoder& decoder, NetworkProcessCreationParameters& result)
@@ -280,6 +284,11 @@
if (!decoder.decode(result.trackNetworkActivity))
return false;
+#if ENABLE(WIFI_ASSERTIONS)
+ if (!decoder.decode(result.wirelessContextIdentifier))
+ return false;
+#endif
+
return true;
}
Modified: trunk/Source/WebKit/NetworkProcess/NetworkProcessCreationParameters.h (231769 => 231770)
--- trunk/Source/WebKit/NetworkProcess/NetworkProcessCreationParameters.h 2018-05-14 21:26:51 UTC (rev 231769)
+++ trunk/Source/WebKit/NetworkProcess/NetworkProcessCreationParameters.h 2018-05-14 22:14:40 UTC (rev 231770)
@@ -134,6 +134,10 @@
Vector<String> urlSchemesRegisteredAsCORSEnabled;
bool trackNetworkActivity { false };
+
+#if ENABLE(WIFI_ASSERTIONS)
+ unsigned wirelessContextIdentifier { 0 };
+#endif
};
} // namespace WebKit
Modified: trunk/Source/WebKit/NetworkProcess/cocoa/NetworkProcessCocoa.mm (231769 => 231770)
--- trunk/Source/WebKit/NetworkProcess/cocoa/NetworkProcessCocoa.mm 2018-05-14 21:26:51 UTC (rev 231769)
+++ trunk/Source/WebKit/NetworkProcess/cocoa/NetworkProcessCocoa.mm 2018-05-14 22:14:40 UTC (rev 231770)
@@ -44,6 +44,10 @@
#import <wtf/CallbackAggregator.h>
#import <wtf/ProcessPrivilege.h>
+#if USE(APPLE_INTERNAL_SDK)
+#import <WebKitAdditions/NetworkProcessCocoaAdditions.mm>
+#endif
+
namespace WebKit {
static void initializeNetworkSettings()
@@ -111,6 +115,10 @@
SandboxExtension::consumePermanently(parameters.cacheStorageDirectoryExtensionHandle);
}
+#if ENABLE(WIFI_ASSERTIONS)
+ initializeWiFiAssertions(parameters);
+#endif
+
if (!m_diskCacheDirectory.isNull()) {
SandboxExtension::consumePermanently(parameters.diskCacheDirectoryExtensionHandle);
if (parameters.shouldEnableNetworkCache) {
Modified: trunk/Source/WebKit/UIProcess/API/APIProcessPoolConfiguration.cpp (231769 => 231770)
--- trunk/Source/WebKit/UIProcess/API/APIProcessPoolConfiguration.cpp 2018-05-14 21:26:51 UTC (rev 231769)
+++ trunk/Source/WebKit/UIProcess/API/APIProcessPoolConfiguration.cpp 2018-05-14 22:14:40 UTC (rev 231770)
@@ -131,6 +131,9 @@
copy->m_alwaysKeepAndReuseSwappedProcesses = this->m_alwaysKeepAndReuseSwappedProcesses;
copy->m_processSwapsOnWindowOpenWithOpener = this->m_processSwapsOnWindowOpenWithOpener;
copy->m_trackNetworkActivity = this->m_trackNetworkActivity;
+#if ENABLE(WIFI_ASSERTIONS)
+ copy->m_wirelessContextIdentifier = this->m_wirelessContextIdentifier;
+#endif
return copy;
}
Modified: trunk/Source/WebKit/UIProcess/API/APIProcessPoolConfiguration.h (231769 => 231770)
--- trunk/Source/WebKit/UIProcess/API/APIProcessPoolConfiguration.h 2018-05-14 21:26:51 UTC (rev 231769)
+++ trunk/Source/WebKit/UIProcess/API/APIProcessPoolConfiguration.h 2018-05-14 22:14:40 UTC (rev 231770)
@@ -147,6 +147,11 @@
bool trackNetworkActivity() const { return m_trackNetworkActivity; }
void setTrackNetworkActivity(bool track) { m_trackNetworkActivity = track; }
+#if ENABLE(WIFI_ASSERTIONS)
+ unsigned wirelessContextIdentifier() const { return m_wirelessContextIdentifier; }
+ void setWirelessContextIdentifier(unsigned wirelessContextIdentifier) { m_wirelessContextIdentifier = wirelessContextIdentifier; }
+#endif
+
private:
bool m_shouldHaveLegacyDataStore { false };
@@ -186,6 +191,10 @@
#if PLATFORM(IOS)
WTF::String m_ctDataConnectionServiceType;
#endif
+
+#if ENABLE(WIFI_ASSERTIONS)
+ unsigned m_wirelessContextIdentifier { 0 };
+#endif
};
} // namespace API
Modified: trunk/Source/WebKit/UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h (231769 => 231770)
--- trunk/Source/WebKit/UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h 2018-05-14 21:26:51 UTC (rev 231769)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h 2018-05-14 22:14:40 UTC (rev 231770)
@@ -40,6 +40,10 @@
@property (nonatomic, copy) NSArray<NSURL *> *additionalReadAccessAllowedURLs WK_API_AVAILABLE(macosx(10.13), ios(11.0));
+#if TARGET_OS_IPHONE && !TARGET_OS_SIMULATOR
+@property (nonatomic) NSUInteger wirelessContextIdentifier;
+#endif
+
// Network Process properties
// FIXME: These should be be per-session/data store when we support multiple non-persistent sessions/data stores.
Modified: trunk/Source/WebKit/UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm (231769 => 231770)
--- trunk/Source/WebKit/UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm 2018-05-14 21:26:51 UTC (rev 231769)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm 2018-05-14 22:14:40 UTC (rev 231770)
@@ -129,6 +129,18 @@
_processPoolConfiguration->setAdditionalReadAccessAllowedPaths(WTFMove(paths));
}
+#if ENABLE(WIFI_ASSERTIONS)
+- (NSUInteger)wirelessContextIdentifier
+{
+ return _processPoolConfiguration->wirelessContextIdentifier();
+}
+
+- (void)setWirelessContextIdentifier:(NSUInteger)identifier
+{
+ _processPoolConfiguration->setWirelessContextIdentifier(identifier);
+}
+#endif
+
- (NSArray *)cachePartitionedURLSchemes
{
auto schemes = _processPoolConfiguration->cachePartitionedURLSchemes();
Modified: trunk/Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm (231769 => 231770)
--- trunk/Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm 2018-05-14 21:26:51 UTC (rev 231769)
+++ trunk/Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm 2018-05-14 22:14:40 UTC (rev 231770)
@@ -328,6 +328,10 @@
if (parameters.recordReplayCacheLocation.isEmpty())
parameters.recordReplayCacheLocation = parameters.diskCacheDirectory;
#endif
+
+#if ENABLE(WIFI_ASSERTIONS)
+ parameters.wirelessContextIdentifier = m_configuration->wirelessContextIdentifier();
+#endif
}
void WebProcessPool::platformInvalidateContext()