Diff
Modified: trunk/Source/WebKit/ChangeLog (248143 => 248144)
--- trunk/Source/WebKit/ChangeLog 2019-08-02 01:58:11 UTC (rev 248143)
+++ trunk/Source/WebKit/ChangeLog 2019-08-02 01:59:08 UTC (rev 248144)
@@ -1,5 +1,34 @@
2019-08-01 Alex Christensen <[email protected]>
+ Do not send NetworkProcessProxy::LogTestingEvent message if we are not testing
+ https://bugs.webkit.org/show_bug.cgi?id=200360
+
+ Reviewed by Tim Horton.
+
+ Sending this message causes instantiation of the default WebsiteDataStore in the UIProcess,
+ which causes more memory to be used than is needed if we are browsing without the default WebsiteDataStore.
+
+ Covered by an API test.
+
+ * NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp:
+ (WebKit::WebResourceLoadStatisticsStore::logTestingEvent):
+ * NetworkProcess/NetworkSession.cpp:
+ (WebKit::NetworkSession::NetworkSession):
+ * NetworkProcess/NetworkSession.h:
+ (WebKit::NetworkSession::enableResourceLoadStatisticsLogTestingEvent const):
+ * NetworkProcess/NetworkSessionCreationParameters.cpp:
+ (WebKit::NetworkSessionCreationParameters::encode const):
+ (WebKit::NetworkSessionCreationParameters::decode):
+ * NetworkProcess/NetworkSessionCreationParameters.h:
+ * UIProcess/WebProcessPool.cpp:
+ (WebKit::WebProcessPool::ensureNetworkProcess):
+ * UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:
+ (WebKit::WebsiteDataStore::parameters):
+ * UIProcess/WebsiteData/WebsiteDataStore.h:
+ (WebKit::WebsiteDataStore::hasStatisticsTestingCallback const):
+
+2019-08-01 Alex Christensen <[email protected]>
+
Move FormData zip file generation to NetworkProcess and enable it for all WebKit clients for uploading directories
https://bugs.webkit.org/show_bug.cgi?id=200102
<rdar://problem/53275114>
Modified: trunk/Source/WebKit/NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp (248143 => 248144)
--- trunk/Source/WebKit/NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp 2019-08-02 01:58:11 UTC (rev 248143)
+++ trunk/Source/WebKit/NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp 2019-08-02 01:59:08 UTC (rev 248144)
@@ -1006,7 +1006,7 @@
{
ASSERT(RunLoop::isMain());
- if (m_networkSession)
+ if (m_networkSession && m_networkSession->enableResourceLoadStatisticsLogTestingEvent())
m_networkSession->networkProcess().parentProcessConnection()->send(Messages::NetworkProcessProxy::LogTestingEvent(m_networkSession->sessionID(), event), 0);
}
Modified: trunk/Source/WebKit/NetworkProcess/NetworkProcess.cpp (248143 => 248144)
--- trunk/Source/WebKit/NetworkProcess/NetworkProcess.cpp 2019-08-02 01:58:11 UTC (rev 248143)
+++ trunk/Source/WebKit/NetworkProcess/NetworkProcess.cpp 2019-08-02 01:59:08 UTC (rev 248144)
@@ -1159,6 +1159,13 @@
});
}
+void NetworkProcess::setResourceLoadStatisticsLogTestingEvent(bool enabled)
+{
+ forEachNetworkSession([enabled](auto& networkSession) {
+ networkSession.setResourceLoadStatisticsLogTestingEvent(enabled);
+ });
+}
+
void NetworkProcess::setResourceLoadStatisticsDebugMode(PAL::SessionID sessionID, bool debugMode, CompletionHandler<void()>&& completionHandler)
{
if (auto* networkSession = this->networkSession(sessionID)) {
Modified: trunk/Source/WebKit/NetworkProcess/NetworkProcess.h (248143 => 248144)
--- trunk/Source/WebKit/NetworkProcess/NetworkProcess.h 2019-08-02 01:58:11 UTC (rev 248143)
+++ trunk/Source/WebKit/NetworkProcess/NetworkProcess.h 2019-08-02 01:59:08 UTC (rev 248144)
@@ -246,6 +246,7 @@
void setIsRunningResourceLoadStatisticsTest(PAL::SessionID, bool value, CompletionHandler<void()>&&);
void setNotifyPagesWhenTelemetryWasCaptured(PAL::SessionID, bool value, CompletionHandler<void()>&&);
void setResourceLoadStatisticsEnabled(bool);
+ void setResourceLoadStatisticsLogTestingEvent(bool);
void setResourceLoadStatisticsDebugMode(PAL::SessionID, bool debugMode, CompletionHandler<void()>&&d);
void setShouldClassifyResourcesBeforeDataRecordsRemoval(PAL::SessionID, bool value, CompletionHandler<void()>&&);
void setSubframeUnderTopFrameDomain(PAL::SessionID, const SubFrameDomain&, const TopFrameDomain&, CompletionHandler<void()>&&);
Modified: trunk/Source/WebKit/NetworkProcess/NetworkProcess.messages.in (248143 => 248144)
--- trunk/Source/WebKit/NetworkProcess/NetworkProcess.messages.in 2019-08-02 01:58:11 UTC (rev 248143)
+++ trunk/Source/WebKit/NetworkProcess/NetworkProcess.messages.in 2019-08-02 01:59:08 UTC (rev 248144)
@@ -91,6 +91,7 @@
ClearUserInteraction(PAL::SessionID sessionID, WebCore::RegistrableDomain resourceDomain) -> () Async
DumpResourceLoadStatistics(PAL::SessionID sessionID) -> (String dumpedStatistics) Async
SetResourceLoadStatisticsEnabled(bool enabled)
+ SetResourceLoadStatisticsLogTestingEvent(bool enabled)
UpdatePrevalentDomainsToBlockCookiesFor(PAL::SessionID sessionID, Vector<WebCore::RegistrableDomain> domainsToBlock) -> () Async
IsGrandfathered(PAL::SessionID sessionID, WebCore::RegistrableDomain targetDomain) -> (bool isGrandfathered) Async
IsPrevalentResource(PAL::SessionID sessionID, WebCore::RegistrableDomain targetDomain) -> (bool isPrevalent) Async
Modified: trunk/Source/WebKit/NetworkProcess/NetworkSession.cpp (248143 => 248144)
--- trunk/Source/WebKit/NetworkProcess/NetworkSession.cpp 2019-08-02 01:58:11 UTC (rev 248143)
+++ trunk/Source/WebKit/NetworkProcess/NetworkSession.cpp 2019-08-02 01:59:08 UTC (rev 248144)
@@ -81,6 +81,9 @@
NetworkSession::NetworkSession(NetworkProcess& networkProcess, const NetworkSessionCreationParameters& parameters)
: m_sessionID(parameters.sessionID)
, m_networkProcess(networkProcess)
+#if ENABLE(RESOURCE_LOAD_STATISTICS)
+ , m_enableResourceLoadStatisticsLogTestingEvent(parameters.enableResourceLoadStatisticsLogTestingEvent)
+#endif
, m_adClickAttribution(makeUniqueRef<AdClickAttributionManager>(parameters.sessionID))
, m_storageManager(StorageManager::create(String(parameters.localStorageDirectory)))
{
Modified: trunk/Source/WebKit/NetworkProcess/NetworkSession.h (248143 => 248144)
--- trunk/Source/WebKit/NetworkProcess/NetworkSession.h 2019-08-02 01:58:11 UTC (rev 248143)
+++ trunk/Source/WebKit/NetworkProcess/NetworkSession.h 2019-08-02 01:59:08 UTC (rev 248144)
@@ -90,6 +90,8 @@
void registrableDomainsWithWebsiteData(OptionSet<WebsiteDataType>, bool shouldNotifyPage, CompletionHandler<void(HashSet<WebCore::RegistrableDomain>&&)>&&);
void logDiagnosticMessageWithValue(const String& message, const String& description, unsigned value, unsigned significantFigures, WebCore::ShouldSample);
void notifyPageStatisticsTelemetryFinished(unsigned totalPrevalentResources, unsigned totalPrevalentResourcesWithUserInteraction, unsigned top3SubframeUnderTopFrameOrigins);
+ bool enableResourceLoadStatisticsLogTestingEvent() const { return m_enableResourceLoadStatisticsLogTestingEvent; }
+ void setResourceLoadStatisticsLogTestingEvent(bool log) { m_enableResourceLoadStatisticsLogTestingEvent = log; }
#endif
void storeAdClickAttribution(WebCore::AdClickAttribution&&);
void handleAdClickAttributionConversion(WebCore::AdClickAttribution::Conversion&&, const URL& requestURL, const WebCore::ResourceRequest& redirectRequest);
@@ -128,6 +130,7 @@
ShouldIncludeLocalhost m_shouldIncludeLocalhostInResourceLoadStatistics { ShouldIncludeLocalhost::Yes };
EnableResourceLoadStatisticsDebugMode m_enableResourceLoadStatisticsDebugMode { EnableResourceLoadStatisticsDebugMode::No };
WebCore::RegistrableDomain m_resourceLoadStatisticsManualPrevalentResource;
+ bool m_enableResourceLoadStatisticsLogTestingEvent;
#endif
UniqueRef<AdClickAttributionManager> m_adClickAttribution;
Modified: trunk/Source/WebKit/NetworkProcess/NetworkSessionCreationParameters.cpp (248143 => 248144)
--- trunk/Source/WebKit/NetworkProcess/NetworkSessionCreationParameters.cpp 2019-08-02 01:58:11 UTC (rev 248143)
+++ trunk/Source/WebKit/NetworkProcess/NetworkSessionCreationParameters.cpp 2019-08-02 01:59:08 UTC (rev 248144)
@@ -50,7 +50,7 @@
#if USE(CURL)
, { }, { }
#endif
- , { }, { }, false, { }, { }, { }, { }, { }, { }, { }, { }, { }
+ , { }, { }, false, false, { }, { }, { }, { }, { }, { }, { }, { }, { }
};
}
@@ -80,6 +80,7 @@
encoder << resourceLoadStatisticsDirectory;
encoder << resourceLoadStatisticsDirectoryExtensionHandle;
encoder << enableResourceLoadStatistics;
+ encoder << enableResourceLoadStatisticsLogTestingEvent;
encoder << shouldIncludeLocalhostInResourceLoadStatistics;
encoder << enableResourceLoadStatisticsDebugMode;
encoder << resourceLoadStatisticsManualPrevalentResource;
@@ -187,6 +188,11 @@
if (!enableResourceLoadStatistics)
return WTF::nullopt;
+ Optional<bool> enableResourceLoadStatisticsLogTestingEvent;
+ decoder >> enableResourceLoadStatisticsLogTestingEvent;
+ if (!enableResourceLoadStatisticsLogTestingEvent)
+ return WTF::nullopt;
+
Optional<bool> shouldIncludeLocalhostInResourceLoadStatistics;
decoder >> shouldIncludeLocalhostInResourceLoadStatistics;
if (!shouldIncludeLocalhostInResourceLoadStatistics)
@@ -257,6 +263,7 @@
, WTFMove(*resourceLoadStatisticsDirectory)
, WTFMove(*resourceLoadStatisticsDirectoryExtensionHandle)
, WTFMove(*enableResourceLoadStatistics)
+ , WTFMove(*enableResourceLoadStatisticsLogTestingEvent)
, WTFMove(*shouldIncludeLocalhostInResourceLoadStatistics)
, WTFMove(*enableResourceLoadStatisticsDebugMode)
, WTFMove(*deviceManagementRestrictionsEnabled)
Modified: trunk/Source/WebKit/NetworkProcess/NetworkSessionCreationParameters.h (248143 => 248144)
--- trunk/Source/WebKit/NetworkProcess/NetworkSessionCreationParameters.h 2019-08-02 01:58:11 UTC (rev 248143)
+++ trunk/Source/WebKit/NetworkProcess/NetworkSessionCreationParameters.h 2019-08-02 01:59:08 UTC (rev 248144)
@@ -84,6 +84,7 @@
String resourceLoadStatisticsDirectory;
SandboxExtension::Handle resourceLoadStatisticsDirectoryExtensionHandle;
bool enableResourceLoadStatistics { false };
+ bool enableResourceLoadStatisticsLogTestingEvent { false };
bool shouldIncludeLocalhostInResourceLoadStatistics { true };
bool enableResourceLoadStatisticsDebugMode { false };
bool deviceManagementRestrictionsEnabled { false };
Modified: trunk/Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataStore.mm (248143 => 248144)
--- trunk/Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataStore.mm 2019-08-02 01:58:11 UTC (rev 248143)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataStore.mm 2019-08-02 01:59:08 UTC (rev 248144)
@@ -456,8 +456,8 @@
return;
if (callback) {
- _websiteDataStore->websiteDataStore().enableResourceLoadStatisticsAndSetTestingCallback([callback = makeBlockPtr(callback), self](const String& event) {
- callback(self, (NSString *)event);
+ _websiteDataStore->websiteDataStore().setStatisticsTestingCallback([callback = makeBlockPtr(callback), self](const String& event) {
+ callback(self, event);
});
return;
}
Modified: trunk/Source/WebKit/UIProcess/WebProcessPool.cpp (248143 => 248144)
--- trunk/Source/WebKit/UIProcess/WebProcessPool.cpp 2019-08-02 01:58:11 UTC (rev 248143)
+++ trunk/Source/WebKit/UIProcess/WebProcessPool.cpp 2019-08-02 01:59:08 UTC (rev 248144)
@@ -594,11 +594,15 @@
SandboxExtension::createHandleForReadWriteDirectory(parameters.defaultDataStoreParameters.networkSessionParameters.resourceLoadStatisticsDirectory, parameters.defaultDataStoreParameters.networkSessionParameters.resourceLoadStatisticsDirectoryExtensionHandle);
bool enableResourceLoadStatistics = m_shouldEnableITPForDefaultSessions;
+ bool enableResourceLoadStatisticsLogTestingEvent = false;
bool shouldIncludeLocalhost = true;
bool enableResourceLoadStatisticsDebugMode = false;
WebCore::RegistrableDomain manualPrevalentResource { };
if (withWebsiteDataStore) {
enableResourceLoadStatistics = withWebsiteDataStore->resourceLoadStatisticsEnabled();
+#if ENABLE(RESOURCE_LOAD_STATISTICS)
+ enableResourceLoadStatisticsLogTestingEvent = withWebsiteDataStore->hasStatisticsTestingCallback();
+#endif
if (enableResourceLoadStatistics) {
auto networkSessionParameters = withWebsiteDataStore->parameters().networkSessionParameters;
shouldIncludeLocalhost = networkSessionParameters.shouldIncludeLocalhostInResourceLoadStatistics;
@@ -610,6 +614,9 @@
parameters.defaultDataStoreParameters.perThirdPartyOriginStorageQuota = withWebsiteDataStore->perThirdPartyOriginStorageQuota();
} else if (m_websiteDataStore) {
enableResourceLoadStatistics = m_websiteDataStore->resourceLoadStatisticsEnabled();
+#if ENABLE(RESOURCE_LOAD_STATISTICS)
+ enableResourceLoadStatisticsLogTestingEvent = m_websiteDataStore->websiteDataStore().hasStatisticsTestingCallback();
+#endif
if (enableResourceLoadStatistics) {
auto networkSessionParameters = m_websiteDataStore->websiteDataStore().parameters().networkSessionParameters;
shouldIncludeLocalhost = networkSessionParameters.shouldIncludeLocalhostInResourceLoadStatistics;
@@ -622,6 +629,7 @@
}
parameters.defaultDataStoreParameters.networkSessionParameters.enableResourceLoadStatistics = enableResourceLoadStatistics;
+ parameters.defaultDataStoreParameters.networkSessionParameters.enableResourceLoadStatisticsLogTestingEvent = enableResourceLoadStatisticsLogTestingEvent;
parameters.defaultDataStoreParameters.networkSessionParameters.shouldIncludeLocalhostInResourceLoadStatistics = shouldIncludeLocalhost;
parameters.defaultDataStoreParameters.networkSessionParameters.enableResourceLoadStatisticsDebugMode = enableResourceLoadStatisticsDebugMode;
parameters.defaultDataStoreParameters.networkSessionParameters.resourceLoadStatisticsManualPrevalentResource = manualPrevalentResource;
Modified: trunk/Source/WebKit/UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm (248143 => 248144)
--- trunk/Source/WebKit/UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm 2019-08-02 01:58:11 UTC (rev 248143)
+++ trunk/Source/WebKit/UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm 2019-08-02 01:59:08 UTC (rev 248144)
@@ -134,6 +134,7 @@
WTFMove(resourceLoadStatisticsDirectory),
WTFMove(resourceLoadStatisticsDirectoryHandle),
false,
+ false,
shouldIncludeLocalhostInResourceLoadStatistics,
enableResourceLoadStatisticsDebugMode,
m_configuration->deviceManagementRestrictionsEnabled(),
Modified: trunk/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp (248143 => 248144)
--- trunk/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp 2019-08-02 01:58:11 UTC (rev 248143)
+++ trunk/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp 2019-08-02 01:59:08 UTC (rev 248144)
@@ -1845,7 +1845,14 @@
return;
if (enabled) {
- enableResourceLoadStatisticsAndSetTestingCallback(nullptr);
+ m_resourceLoadStatisticsEnabled = true;
+
+ resolveDirectoriesIfNecessary();
+
+ for (auto& processPool : processPools(std::numeric_limits<size_t>::max(), false)) {
+ processPool->setResourceLoadStatisticsEnabled(true);
+ processPool->sendToNetworkingProcess(Messages::NetworkProcess::SetResourceLoadStatisticsEnabled(true));
+ }
return;
}
@@ -1860,6 +1867,18 @@
#endif
}
+#if ENABLE(RESOURCE_LOAD_STATISTICS)
+void WebsiteDataStore::setStatisticsTestingCallback(Function<void(const String&)>&& callback)
+{
+ if (callback) {
+ for (auto& processPool : processPools(std::numeric_limits<size_t>::max(), false))
+ processPool->sendToNetworkingProcess(Messages::NetworkProcess::SetResourceLoadStatisticsLogTestingEvent(true));
+ }
+
+ m_statisticsTestingCallback = WTFMove(callback);
+}
+#endif
+
void WebsiteDataStore::setResourceLoadStatisticsDebugMode(bool enabled)
{
setResourceLoadStatisticsDebugMode(enabled, []() { });
@@ -1881,21 +1900,6 @@
}
#if ENABLE(RESOURCE_LOAD_STATISTICS)
-void WebsiteDataStore::enableResourceLoadStatisticsAndSetTestingCallback(Function<void (const String&)>&& callback)
-{
- ASSERT(!m_sessionID.isEphemeral());
-
- m_resourceLoadStatisticsEnabled = true;
- setStatisticsTestingCallback(WTFMove(callback));
-
- resolveDirectoriesIfNecessary();
-
- for (auto& processPool : processPools(std::numeric_limits<size_t>::max(), false)) {
- processPool->setResourceLoadStatisticsEnabled(true);
- processPool->sendToNetworkingProcess(Messages::NetworkProcess::SetResourceLoadStatisticsEnabled(true));
- }
-}
-
void WebsiteDataStore::logTestingEvent(const String& event)
{
ASSERT(RunLoop::isMain());
Modified: trunk/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h (248143 => 248144)
--- trunk/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h 2019-08-02 01:58:11 UTC (rev 248143)
+++ trunk/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h 2019-08-02 01:59:08 UTC (rev 248144)
@@ -171,7 +171,8 @@
void setPrevalentResource(const URL&, CompletionHandler<void()>&&);
void setPrevalentResourceForDebugMode(const URL&, CompletionHandler<void()>&&);
void setShouldClassifyResourcesBeforeDataRecordsRemoval(bool, CompletionHandler<void()>&&);
- void setStatisticsTestingCallback(WTF::Function<void(const String&)>&& callback) { m_statisticsTestingCallback = WTFMove(callback); }
+ void setStatisticsTestingCallback(Function<void(const String&)>&&);
+ bool hasStatisticsTestingCallback() const { return !!m_statisticsTestingCallback; }
void setVeryPrevalentResource(const URL&, CompletionHandler<void()>&&);
void setSubframeUnderTopFrameDomain(const URL& subframe, const URL& topFrame);
void setCrossSiteLoadWithLinkDecorationForTesting(const URL& fromURL, const URL& toURL, CompletionHandler<void()>&&);
@@ -207,8 +208,6 @@
void removePendingCookie(const WebCore::Cookie&);
void clearPendingCookies();
- void enableResourceLoadStatisticsAndSetTestingCallback(Function<void (const String&)>&& callback);
-
void setBoundInterfaceIdentifier(String&& identifier) { m_boundInterfaceIdentifier = WTFMove(identifier); }
const String& boundInterfaceIdentifier() { return m_boundInterfaceIdentifier; }
Modified: trunk/Tools/ChangeLog (248143 => 248144)
--- trunk/Tools/ChangeLog 2019-08-02 01:58:11 UTC (rev 248143)
+++ trunk/Tools/ChangeLog 2019-08-02 01:59:08 UTC (rev 248144)
@@ -1,5 +1,16 @@
2019-08-01 Alex Christensen <[email protected]>
+ Do not send NetworkProcessProxy::LogTestingEvent message if we are not testing
+ https://bugs.webkit.org/show_bug.cgi?id=200360
+
+ Reviewed by Tim Horton.
+
+ * TestWebKitAPI/Tests/WebKitCocoa/ResourceLoadStatistics.mm:
+ (cleanupITPDatabase):
+ (TEST):
+
+2019-08-01 Alex Christensen <[email protected]>
+
Move FormData zip file generation to NetworkProcess and enable it for all WebKit clients for uploading directories
https://bugs.webkit.org/show_bug.cgi?id=200102
<rdar://problem/53275114>
Modified: trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/ResourceLoadStatistics.mm (248143 => 248144)
--- trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/ResourceLoadStatistics.mm 2019-08-02 01:58:11 UTC (rev 248143)
+++ trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/ResourceLoadStatistics.mm 2019-08-02 01:59:08 UTC (rev 248144)
@@ -27,6 +27,7 @@
#import "PlatformUtilities.h"
#import "TestNavigationDelegate.h"
+#import "TestWKWebView.h"
#import <WebKit/WKFoundation.h>
#import <WebKit/WKPreferencesPrivate.h>
#import <WebKit/WKProcessPoolPrivate.h>
@@ -214,10 +215,6 @@
// Make sure 'evil.com' is not in our data set.
static bool doneFlag;
- [dataStore _clearPrevalentDomain:[NSURL URLWithString:@"http://evil.com"] completionHandler: ^(void) {
- doneFlag = true;
- }];
-
static bool dataSyncCompleted;
[dataStore _setResourceLoadStatisticsTestingCallback:^(WKWebsiteDataStore *, NSString *message) {
if (![message isEqualToString:@"Storage Synced"])
@@ -225,6 +222,9 @@
dataSyncCompleted = true;
}];
+ [dataStore _clearPrevalentDomain:[NSURL URLWithString:@"http://evil.com"] completionHandler: ^(void) {
+ doneFlag = true;
+ }];
TestWebKitAPI::Util::run(&doneFlag);
@@ -473,3 +473,14 @@
TestWebKitAPI::Util::run(&doneFlag);
}
+
+TEST(ResourceLoadStatistics, NoMessagesWhenNotTesting)
+{
+ auto configuration = adoptNS([[WKWebViewConfiguration alloc] init]);
+ WKWebsiteDataStore *dataStore = [[[WKWebsiteDataStore alloc] _initWithConfiguration:[[[_WKWebsiteDataStoreConfiguration alloc] init] autorelease]] autorelease];
+ [configuration setWebsiteDataStore:dataStore];
+ [dataStore _setResourceLoadStatisticsEnabled:YES];
+ auto webView = adoptNS([[TestWKWebView alloc] initWithFrame:NSMakeRect(0, 0, 100, 100) configuration:configuration.get()]);
+ [webView synchronouslyLoadTestPageNamed:@"simple"];
+ EXPECT_FALSE([WKWebsiteDataStore _defaultDataStoreExists]);
+}