Diff
Modified: trunk/Source/WebKit/ChangeLog (250520 => 250521)
--- trunk/Source/WebKit/ChangeLog 2019-09-30 18:15:27 UTC (rev 250520)
+++ trunk/Source/WebKit/ChangeLog 2019-09-30 18:49:19 UTC (rev 250521)
@@ -1,3 +1,67 @@
+2019-09-30 Alex Christensen <[email protected]>
+
+ Move DownloadMonitor test speed multiplier from WebProcessPool to WebsiteDataStoreConfiguration
+ https://bugs.webkit.org/show_bug.cgi?id=202339
+
+ Reviewed by Youenn Fablet.
+
+ This was only used for some unit tests, which still are accelerated so they pass in the same amount of time as before.
+ I need this value to not be process-global in the NetworkProcess.
+
+ * NetworkProcess/Downloads/Download.cpp:
+ (WebKit::Download::Download):
+ * NetworkProcess/Downloads/Download.h:
+ (WebKit::Download::Download):
+ (WebKit::Download::testSpeedMultiplier const):
+ * NetworkProcess/Downloads/DownloadManager.cpp:
+ (WebKit::DownloadManager::resumeDownload):
+ * NetworkProcess/Downloads/DownloadManager.h:
+ * NetworkProcess/Downloads/DownloadMonitor.cpp:
+ (WebKit::DownloadMonitor::applicationDidEnterBackground):
+ (WebKit::DownloadMonitor::testSpeedMultiplier const):
+ (WebKit::DownloadMonitor::timerFired):
+ (WebKit::DownloadMonitor::speedMultiplier const): Deleted.
+ * NetworkProcess/Downloads/DownloadMonitor.h:
+ * NetworkProcess/NetworkDataTaskBlob.cpp:
+ (WebKit::NetworkDataTaskBlob::download):
+ * NetworkProcess/NetworkProcess.cpp:
+ (WebKit::NetworkProcess::initializeNetworkProcess):
+ * NetworkProcess/NetworkProcess.h:
+ * NetworkProcess/NetworkProcessCreationParameters.cpp:
+ (WebKit::NetworkProcessCreationParameters::encode const):
+ (WebKit::NetworkProcessCreationParameters::decode):
+ * NetworkProcess/NetworkProcessCreationParameters.h:
+ * NetworkProcess/NetworkSession.cpp:
+ (WebKit::NetworkSession::NetworkSession):
+ * NetworkProcess/NetworkSession.h:
+ (WebKit::NetworkSession::testSpeedMultiplier const):
+ * NetworkProcess/NetworkSessionCreationParameters.cpp:
+ (WebKit::NetworkSessionCreationParameters::encode const):
+ (WebKit::NetworkSessionCreationParameters::decode):
+ * NetworkProcess/NetworkSessionCreationParameters.h:
+ * NetworkProcess/cocoa/NetworkSessionCocoa.mm:
+ (-[WKNetworkSessionDelegate URLSession:dataTask:didBecomeDownloadTask:]):
+ * UIProcess/API/APIProcessPoolConfiguration.cpp:
+ (API::ProcessPoolConfiguration::copy):
+ * UIProcess/API/APIProcessPoolConfiguration.h:
+ * UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h:
+ * UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm:
+ (-[_WKProcessPoolConfiguration downloadMonitorSpeedMultiplierForTesting]): Deleted.
+ (-[_WKProcessPoolConfiguration setDownloadMonitorSpeedMultiplierForTesting:]): Deleted.
+ * UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.h:
+ * UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.mm:
+ (-[_WKWebsiteDataStoreConfiguration testSpeedMultiplier]):
+ (-[_WKWebsiteDataStoreConfiguration setTestSpeedMultiplier:]):
+ * UIProcess/Cocoa/WebProcessPoolCocoa.mm:
+ (WebKit::WebProcessPool::platformInitializeNetworkProcess):
+ * UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:
+ (WebKit::WebsiteDataStore::parameters):
+ * UIProcess/WebsiteData/WebsiteDataStoreConfiguration.cpp:
+ (WebKit::WebsiteDataStoreConfiguration::copy):
+ * UIProcess/WebsiteData/WebsiteDataStoreConfiguration.h:
+ (WebKit::WebsiteDataStoreConfiguration::testSpeedMultiplier const):
+ (WebKit::WebsiteDataStoreConfiguration::setTestSpeedMultiplier):
+
2019-09-30 Carlos Garcia Campos <[email protected]>
[GTK] IconDatabase is not thread-safe
Modified: trunk/Source/WebKit/NetworkProcess/Downloads/Download.cpp (250520 => 250521)
--- trunk/Source/WebKit/NetworkProcess/Downloads/Download.cpp 2019-09-30 18:15:27 UTC (rev 250520)
+++ trunk/Source/WebKit/NetworkProcess/Downloads/Download.cpp 2019-09-30 18:49:19 UTC (rev 250521)
@@ -50,13 +50,14 @@
namespace WebKit {
using namespace WebCore;
-Download::Download(DownloadManager& downloadManager, DownloadID downloadID, NetworkDataTask& download, const PAL::SessionID& sessionID, const String& suggestedName)
+Download::Download(DownloadManager& downloadManager, DownloadID downloadID, NetworkDataTask& download, NetworkSession& session, const String& suggestedName)
: m_downloadManager(downloadManager)
, m_downloadID(downloadID)
, m_client(downloadManager.client())
, m_download(&download)
- , m_sessionID(sessionID)
+ , m_sessionID(session.sessionID())
, m_suggestedName(suggestedName)
+ , m_testSpeedMultiplier(session.testSpeedMultiplier())
{
ASSERT(m_downloadID.downloadID());
@@ -64,13 +65,14 @@
}
#if PLATFORM(COCOA)
-Download::Download(DownloadManager& downloadManager, DownloadID downloadID, NSURLSessionDownloadTask* download, const PAL::SessionID& sessionID, const String& suggestedName)
+Download::Download(DownloadManager& downloadManager, DownloadID downloadID, NSURLSessionDownloadTask* download, NetworkSession& session, const String& suggestedName)
: m_downloadManager(downloadManager)
, m_downloadID(downloadID)
, m_client(downloadManager.client())
, m_downloadTask(download)
- , m_sessionID(sessionID)
+ , m_sessionID(session.sessionID())
, m_suggestedName(suggestedName)
+ , m_testSpeedMultiplier(session.testSpeedMultiplier())
{
ASSERT(m_downloadID.downloadID());
Modified: trunk/Source/WebKit/NetworkProcess/Downloads/Download.h (250520 => 250521)
--- trunk/Source/WebKit/NetworkProcess/Downloads/Download.h 2019-09-30 18:15:27 UTC (rev 250520)
+++ trunk/Source/WebKit/NetworkProcess/Downloads/Download.h 2019-09-30 18:49:19 UTC (rev 250521)
@@ -68,9 +68,9 @@
class Download : public IPC::MessageSender, public CanMakeWeakPtr<Download> {
WTF_MAKE_NONCOPYABLE(Download); WTF_MAKE_FAST_ALLOCATED;
public:
- Download(DownloadManager&, DownloadID, NetworkDataTask&, const PAL::SessionID& sessionID, const String& suggestedFilename = { });
+ Download(DownloadManager&, DownloadID, NetworkDataTask&, NetworkSession&, const String& suggestedFilename = { });
#if PLATFORM(COCOA)
- Download(DownloadManager&, DownloadID, NSURLSessionDownloadTask*, const PAL::SessionID& sessionID, const String& suggestedFilename = { });
+ Download(DownloadManager&, DownloadID, NSURLSessionDownloadTask*, NetworkSession&, const String& suggestedFilename = { });
#endif
~Download();
@@ -99,6 +99,8 @@
void applicationWillEnterForeground() { m_monitor.applicationWillEnterForeground(); }
DownloadManager& manager() const { return m_downloadManager; }
+ unsigned testSpeedMultiplier() const { return m_testSpeedMultiplier; }
+
private:
// IPC::MessageSender
IPC::Connection* messageSenderConnection() const override;
@@ -124,6 +126,7 @@
bool m_wasCanceled { false };
bool m_hasReceivedData { false };
DownloadMonitor m_monitor { *this };
+ unsigned m_testSpeedMultiplier { 1 };
};
} // namespace WebKit
Modified: trunk/Source/WebKit/NetworkProcess/Downloads/DownloadManager.cpp (250520 => 250521)
--- trunk/Source/WebKit/NetworkProcess/Downloads/DownloadManager.cpp 2019-09-30 18:15:27 UTC (rev 250520)
+++ trunk/Source/WebKit/NetworkProcess/Downloads/DownloadManager.cpp 2019-09-30 18:49:19 UTC (rev 250521)
@@ -123,7 +123,10 @@
#if !PLATFORM(COCOA)
notImplemented();
#else
- auto download = makeUnique<Download>(*this, downloadID, nullptr, sessionID);
+ auto* networkSession = m_client.networkSession(sessionID);
+ if (!networkSession)
+ return;
+ auto download = makeUnique<Download>(*this, downloadID, nullptr, *networkSession);
download->resume(resumeData, path, WTFMove(sandboxExtensionHandle));
ASSERT(!m_downloads.contains(downloadID));
Modified: trunk/Source/WebKit/NetworkProcess/Downloads/DownloadManager.h (250520 => 250521)
--- trunk/Source/WebKit/NetworkProcess/Downloads/DownloadManager.h 2019-09-30 18:15:27 UTC (rev 250520)
+++ trunk/Source/WebKit/NetworkProcess/Downloads/DownloadManager.h 2019-09-30 18:49:19 UTC (rev 250521)
@@ -76,7 +76,6 @@
virtual NetworkSession* networkSession(PAL::SessionID) const = 0;
virtual void ref() const = 0;
virtual void deref() const = 0;
- virtual uint32_t downloadMonitorSpeedMultiplier() const = 0;
};
explicit DownloadManager(Client&);
Modified: trunk/Source/WebKit/NetworkProcess/Downloads/DownloadMonitor.cpp (250520 => 250521)
--- trunk/Source/WebKit/NetworkProcess/Downloads/DownloadMonitor.cpp 2019-09-30 18:15:27 UTC (rev 250520)
+++ trunk/Source/WebKit/NetworkProcess/Downloads/DownloadMonitor.cpp 2019-09-30 18:49:19 UTC (rev 250521)
@@ -103,12 +103,12 @@
RELEASE_LOG_IF_ALLOWED("applicationDidEnterBackground (id = %" PRIu64 ")", m_download.downloadID().downloadID());
ASSERT(!m_timer.isActive());
ASSERT(!m_interval);
- m_timer.startOneShot(throughputIntervals[0].time / speedMultiplier());
+ m_timer.startOneShot(throughputIntervals[0].time / testSpeedMultiplier());
}
-uint32_t DownloadMonitor::speedMultiplier() const
+uint32_t DownloadMonitor::testSpeedMultiplier() const
{
- return m_download.manager().client().downloadMonitorSpeedMultiplier();
+ return m_download.testSpeedMultiplier();
}
void DownloadMonitor::timerFired()
@@ -121,7 +121,7 @@
m_download.cancel();
} else if (m_interval + 1 < WTF_ARRAY_LENGTH(throughputIntervals)) {
RELEASE_LOG_IF_ALLOWED("timerFired: sufficient throughput rate (id = %" PRIu64 ")", m_download.downloadID().downloadID());
- m_timer.startOneShot(timeUntilNextInterval(m_interval++) / speedMultiplier());
+ m_timer.startOneShot(timeUntilNextInterval(m_interval++) / testSpeedMultiplier());
} else
RELEASE_LOG_IF_ALLOWED("timerFired: Download reached threshold to not be terminated (id = %" PRIu64 ")", m_download.downloadID().downloadID());
}
Modified: trunk/Source/WebKit/NetworkProcess/Downloads/DownloadMonitor.h (250520 => 250521)
--- trunk/Source/WebKit/NetworkProcess/Downloads/DownloadMonitor.h 2019-09-30 18:15:27 UTC (rev 250520)
+++ trunk/Source/WebKit/NetworkProcess/Downloads/DownloadMonitor.h 2019-09-30 18:49:19 UTC (rev 250521)
@@ -46,7 +46,7 @@
Download& m_download;
double measuredThroughputRate() const;
- uint32_t speedMultiplier() const;
+ uint32_t testSpeedMultiplier() const;
struct Timestamp {
MonotonicTime time;
Modified: trunk/Source/WebKit/NetworkProcess/NetworkDataTaskBlob.cpp (250520 => 250521)
--- trunk/Source/WebKit/NetworkProcess/NetworkDataTaskBlob.cpp 2019-09-30 18:15:27 UTC (rev 250520)
+++ trunk/Source/WebKit/NetworkProcess/NetworkDataTaskBlob.cpp 2019-09-30 18:49:19 UTC (rev 250521)
@@ -467,7 +467,7 @@
}
auto& downloadManager = m_networkProcess->downloadManager();
- auto download = makeUnique<Download>(downloadManager, m_pendingDownloadID, *this, m_session->sessionID(), suggestedFilename());
+ auto download = makeUnique<Download>(downloadManager, m_pendingDownloadID, *this, *m_session, suggestedFilename());
auto* downloadPtr = download.get();
downloadManager.dataTaskBecameDownloadTask(m_pendingDownloadID, WTFMove(download));
downloadPtr->didCreateDestination(m_pendingDownloadLocation);
Modified: trunk/Source/WebKit/NetworkProcess/NetworkProcess.cpp (250520 => 250521)
--- trunk/Source/WebKit/NetworkProcess/NetworkProcess.cpp 2019-09-30 18:15:27 UTC (rev 250520)
+++ trunk/Source/WebKit/NetworkProcess/NetworkProcess.cpp 2019-09-30 18:49:19 UTC (rev 250521)
@@ -362,8 +362,6 @@
for (auto& scheme : parameters.urlSchemesRegisteredAsCanDisplayOnlyIfCanRequest)
registerURLSchemeAsCanDisplayOnlyIfCanRequest(scheme);
- m_downloadMonitorSpeedMultiplier = parameters.downloadMonitorSpeedMultiplier;
-
RELEASE_LOG(Process, "%p - NetworkProcess::initializeNetworkProcess: Presenting process = %d", this, WebCore::presentingApplicationPID());
}
Modified: trunk/Source/WebKit/NetworkProcess/NetworkProcess.h (250520 => 250521)
--- trunk/Source/WebKit/NetworkProcess/NetworkProcess.h 2019-09-30 18:15:27 UTC (rev 250520)
+++ trunk/Source/WebKit/NetworkProcess/NetworkProcess.h 2019-09-30 18:49:19 UTC (rev 250521)
@@ -380,7 +380,6 @@
IPC::Connection* parentProcessConnectionForDownloads() override { return parentProcessConnection(); }
AuthenticationManager& downloadsAuthenticationManager() override;
void pendingDownloadCanceled(DownloadID) override;
- uint32_t downloadMonitorSpeedMultiplier() const override { return m_downloadMonitorSpeedMultiplier; }
// Message Handlers
void didReceiveSyncNetworkProcessMessage(IPC::Connection&, IPC::Decoder&, std::unique_ptr<IPC::Encoder>&);
@@ -557,7 +556,6 @@
HashMap<WebCore::ClientOrigin, std::unique_ptr<WebCore::StorageQuotaManager>> m_managersPerOrigin;
};
HashMap<PAL::SessionID, StorageQuotaManagers> m_storageQuotaManagers;
- uint32_t m_downloadMonitorSpeedMultiplier { 1 };
OptionSet<NetworkCache::CacheOption> m_cacheOptions;
WebCore::MessagePortChannelRegistry m_messagePortChannelRegistry;
Modified: trunk/Source/WebKit/NetworkProcess/NetworkProcessCreationParameters.cpp (250520 => 250521)
--- trunk/Source/WebKit/NetworkProcess/NetworkProcessCreationParameters.cpp 2019-09-30 18:15:27 UTC (rev 250520)
+++ trunk/Source/WebKit/NetworkProcess/NetworkProcessCreationParameters.cpp 2019-09-30 18:49:19 UTC (rev 250521)
@@ -80,7 +80,6 @@
encoder << serviceWorkerRegistrationDirectory << serviceWorkerRegistrationDirectoryExtensionHandle << urlSchemesServiceWorkersCanHandle << shouldDisableServiceWorkerProcessTerminationDelay;
#endif
encoder << shouldEnableITPDatabase;
- encoder << downloadMonitorSpeedMultiplier;
encoder << enableAdClickAttributionDebugMode;
encoder << hstsStorageDirectory;
encoder << hstsStorageDirectoryExtensionHandle;
@@ -188,12 +187,6 @@
if (!decoder.decode(result.shouldEnableITPDatabase))
return false;
- Optional<uint32_t> downloadMonitorSpeedMultiplier;
- decoder >> downloadMonitorSpeedMultiplier;
- if (!downloadMonitorSpeedMultiplier)
- return false;
- result.downloadMonitorSpeedMultiplier = *downloadMonitorSpeedMultiplier;
-
if (!decoder.decode(result.enableAdClickAttributionDebugMode))
return false;
Modified: trunk/Source/WebKit/NetworkProcess/NetworkProcessCreationParameters.h (250520 => 250521)
--- trunk/Source/WebKit/NetworkProcess/NetworkProcessCreationParameters.h 2019-09-30 18:15:27 UTC (rev 250520)
+++ trunk/Source/WebKit/NetworkProcess/NetworkProcessCreationParameters.h 2019-09-30 18:49:19 UTC (rev 250521)
@@ -100,7 +100,6 @@
bool shouldDisableServiceWorkerProcessTerminationDelay { false };
#endif
bool shouldEnableITPDatabase { false };
- uint32_t downloadMonitorSpeedMultiplier { 1 };
bool enableAdClickAttributionDebugMode { false };
String hstsStorageDirectory;
SandboxExtension::Handle hstsStorageDirectoryExtensionHandle;
Modified: trunk/Source/WebKit/NetworkProcess/NetworkSession.cpp (250520 => 250521)
--- trunk/Source/WebKit/NetworkProcess/NetworkSession.cpp 2019-09-30 18:15:27 UTC (rev 250520)
+++ trunk/Source/WebKit/NetworkProcess/NetworkSession.cpp 2019-09-30 18:49:19 UTC (rev 250521)
@@ -84,6 +84,7 @@
, m_enableResourceLoadStatisticsLogTestingEvent(parameters.enableResourceLoadStatisticsLogTestingEvent)
#endif
, m_adClickAttribution(makeUniqueRef<AdClickAttributionManager>(parameters.sessionID))
+ , m_testSpeedMultiplier(parameters.testSpeedMultiplier)
{
if (!m_sessionID.isEphemeral()) {
String networkCacheDirectory = parameters.networkCacheDirectory;
Modified: trunk/Source/WebKit/NetworkProcess/NetworkSession.h (250520 => 250521)
--- trunk/Source/WebKit/NetworkProcess/NetworkSession.h 2019-09-30 18:15:27 UTC (rev 250520)
+++ trunk/Source/WebKit/NetworkProcess/NetworkSession.h 2019-09-30 18:49:19 UTC (rev 250521)
@@ -122,6 +122,8 @@
WebCore::BlobRegistryImpl& blobRegistry() { return m_blobRegistry; }
+ unsigned testSpeedMultiplier() const { return m_testSpeedMultiplier; }
+
protected:
NetworkSession(NetworkProcess&, const NetworkSessionCreationParameters&);
@@ -153,6 +155,7 @@
#endif
RefPtr<NetworkCache::Cache> m_cache;
WebCore::BlobRegistryImpl m_blobRegistry;
+ unsigned m_testSpeedMultiplier { 1 };
};
} // namespace WebKit
Modified: trunk/Source/WebKit/NetworkProcess/NetworkSessionCreationParameters.cpp (250520 => 250521)
--- trunk/Source/WebKit/NetworkProcess/NetworkSessionCreationParameters.cpp 2019-09-30 18:15:27 UTC (rev 250520)
+++ trunk/Source/WebKit/NetworkProcess/NetworkSessionCreationParameters.cpp 2019-09-30 18:49:19 UTC (rev 250521)
@@ -78,6 +78,7 @@
encoder << fastServerTrustEvaluationEnabled;
encoder << networkCacheSpeculativeValidationEnabled;
encoder << shouldUseTestingNetworkSession;
+ encoder << testSpeedMultiplier;
}
Optional<NetworkSessionCreationParameters> NetworkSessionCreationParameters::decode(IPC::Decoder& decoder)
@@ -242,6 +243,11 @@
if (!shouldUseTestingNetworkSession)
return WTF::nullopt;
+ Optional<unsigned> testSpeedMultiplier;
+ decoder >> testSpeedMultiplier;
+ if (!testSpeedMultiplier)
+ return WTF::nullopt;
+
return {{
*sessionID
, WTFMove(*boundInterfaceIdentifier)
@@ -280,6 +286,7 @@
, WTFMove(*fastServerTrustEvaluationEnabled)
, WTFMove(*networkCacheSpeculativeValidationEnabled)
, WTFMove(*shouldUseTestingNetworkSession)
+ , WTFMove(*testSpeedMultiplier)
}};
}
Modified: trunk/Source/WebKit/NetworkProcess/NetworkSessionCreationParameters.h (250520 => 250521)
--- trunk/Source/WebKit/NetworkProcess/NetworkSessionCreationParameters.h 2019-09-30 18:15:27 UTC (rev 250520)
+++ trunk/Source/WebKit/NetworkProcess/NetworkSessionCreationParameters.h 2019-09-30 18:49:19 UTC (rev 250521)
@@ -96,6 +96,7 @@
bool fastServerTrustEvaluationEnabled { false };
bool networkCacheSpeculativeValidationEnabled { false };
bool shouldUseTestingNetworkSession { false };
+ unsigned testSpeedMultiplier { 1 };
};
} // namespace WebKit
Modified: trunk/Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.mm (250520 => 250521)
--- trunk/Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.mm 2019-09-30 18:15:27 UTC (rev 250520)
+++ trunk/Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.mm 2019-09-30 18:49:19 UTC (rev 250521)
@@ -787,7 +787,7 @@
Ref<NetworkDataTaskCocoa> protectedNetworkDataTask(*networkDataTask);
auto downloadID = networkDataTask->pendingDownloadID();
auto& downloadManager = _session->networkProcess().downloadManager();
- auto download = makeUnique<WebKit::Download>(downloadManager, downloadID, downloadTask, _session->sessionID(), networkDataTask->suggestedFilename());
+ auto download = makeUnique<WebKit::Download>(downloadManager, downloadID, downloadTask, *_session, networkDataTask->suggestedFilename());
networkDataTask->transferSandboxExtensionToDownload(*download);
ASSERT(FileSystem::fileExists(networkDataTask->pendingDownloadLocation()));
download->didCreateDestination(networkDataTask->pendingDownloadLocation());
Modified: trunk/Source/WebKit/NetworkProcess/soup/NetworkDataTaskSoup.cpp (250520 => 250521)
--- trunk/Source/WebKit/NetworkProcess/soup/NetworkDataTaskSoup.cpp 2019-09-30 18:15:27 UTC (rev 250520)
+++ trunk/Source/WebKit/NetworkProcess/soup/NetworkDataTaskSoup.cpp 2019-09-30 18:49:19 UTC (rev 250521)
@@ -909,7 +909,7 @@
m_downloadOutputStream = adoptGRef(G_OUTPUT_STREAM(outputStream.leakRef()));
auto& downloadManager = m_session->networkProcess().downloadManager();
- auto download = makeUnique<Download>(downloadManager, m_pendingDownloadID, *this, m_session->sessionID(), suggestedFilename());
+ auto download = makeUnique<Download>(downloadManager, m_pendingDownloadID, *this, *m_session, suggestedFilename());
auto* downloadPtr = download.get();
downloadManager.dataTaskBecameDownloadTask(m_pendingDownloadID, WTFMove(download));
downloadPtr->didCreateDestination(m_pendingDownloadLocation);
Modified: trunk/Source/WebKit/UIProcess/API/APIProcessPoolConfiguration.cpp (250520 => 250521)
--- trunk/Source/WebKit/UIProcess/API/APIProcessPoolConfiguration.cpp 2019-09-30 18:15:27 UTC (rev 250520)
+++ trunk/Source/WebKit/UIProcess/API/APIProcessPoolConfiguration.cpp 2019-09-30 18:49:19 UTC (rev 250521)
@@ -59,7 +59,6 @@
copy->m_shouldCaptureDisplayInUIProcess = this->m_shouldCaptureDisplayInUIProcess;
copy->m_shouldConfigureJSCForTesting = this->m_shouldConfigureJSCForTesting;
copy->m_isJITEnabled = this->m_isJITEnabled;
- copy->m_downloadMonitorSpeedMultiplier = this->m_downloadMonitorSpeedMultiplier;
#if PLATFORM(IOS_FAMILY)
copy->m_ctDataConnectionServiceType = this->m_ctDataConnectionServiceType;
#endif
Modified: trunk/Source/WebKit/UIProcess/API/APIProcessPoolConfiguration.h (250520 => 250521)
--- trunk/Source/WebKit/UIProcess/API/APIProcessPoolConfiguration.h 2019-09-30 18:15:27 UTC (rev 250520)
+++ trunk/Source/WebKit/UIProcess/API/APIProcessPoolConfiguration.h 2019-09-30 18:49:19 UTC (rev 250521)
@@ -54,9 +54,6 @@
bool usesSingleWebProcess() const { return m_usesSingleWebProcess; }
void setUsesSingleWebProcess(bool enabled) { m_usesSingleWebProcess = enabled; }
- uint32_t downloadMonitorSpeedMultiplier() const { return m_downloadMonitorSpeedMultiplier; }
- void setDownloadMonitorSpeedMultiplier(uint32_t multiplier) { m_downloadMonitorSpeedMultiplier = multiplier; }
-
bool isAutomaticProcessWarmingEnabled() const
{
return m_isAutomaticProcessWarmingEnabledByClient.valueOr(m_clientWouldBenefitFromAutomaticProcessPrewarming);
@@ -178,7 +175,6 @@
bool m_shouldConfigureJSCForTesting { false };
bool m_isJITEnabled { true };
bool m_usesSingleWebProcess { false };
- uint32_t m_downloadMonitorSpeedMultiplier { 1 };
#if PLATFORM(IOS_FAMILY)
WTF::String m_ctDataConnectionServiceType;
Modified: trunk/Source/WebKit/UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h (250520 => 250521)
--- trunk/Source/WebKit/UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h 2019-09-30 18:15:27 UTC (rev 250520)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h 2019-09-30 18:49:19 UTC (rev 250521)
@@ -70,7 +70,6 @@
@property (nonatomic) BOOL pageCacheEnabled WK_API_AVAILABLE(macos(10.14), ios(12.0));
@property (nonatomic) BOOL suppressesConnectionTerminationOnSystemChange WK_API_AVAILABLE(macos(10.14), ios(12.0));
@property (nonatomic, getter=isJITEnabled) BOOL JITEnabled WK_API_AVAILABLE(macos(10.14.4), ios(12.2));
-@property (nonatomic) NSUInteger downloadMonitorSpeedMultiplierForTesting WK_API_AVAILABLE(macos(WK_MAC_TBA), ios(WK_IOS_TBA));
@property (nonatomic, nullable, copy, setter=setHSTSStorageDirectory:) NSURL *hstsStorageDirectory WK_API_AVAILABLE(macos(WK_MAC_TBA), ios(WK_IOS_TBA));
@property (nonatomic) BOOL configureJSCForTesting WK_API_AVAILABLE(macos(WK_MAC_TBA), ios(WK_IOS_TBA));
Modified: trunk/Source/WebKit/UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm (250520 => 250521)
--- trunk/Source/WebKit/UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm 2019-09-30 18:15:27 UTC (rev 250520)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm 2019-09-30 18:49:19 UTC (rev 250521)
@@ -346,11 +346,6 @@
_processPoolConfiguration->setJITEnabled(enabled);
}
-- (NSUInteger)downloadMonitorSpeedMultiplierForTesting
-{
- return _processPoolConfiguration->downloadMonitorSpeedMultiplier();
-}
-
- (void)setHSTSStorageDirectory:(NSURL *)directory
{
if (directory && ![directory isFileURL])
@@ -365,11 +360,6 @@
return [NSURL fileURLWithPath:WebKit::LegacyGlobalSettings::singleton().hstsStorageDirectory() isDirectory:YES];
}
-- (void)setDownloadMonitorSpeedMultiplierForTesting:(NSUInteger)multiplier
-{
- _processPoolConfiguration->setDownloadMonitorSpeedMultiplier(multiplier);
-}
-
- (void)setSuppressesConnectionTerminationOnSystemChange:(BOOL)suppressesConnectionTerminationOnSystemChange
{
_processPoolConfiguration->setSuppressesConnectionTerminationOnSystemChange(suppressesConnectionTerminationOnSystemChange);
Modified: trunk/Source/WebKit/UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.h (250520 => 250521)
--- trunk/Source/WebKit/UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.h 2019-09-30 18:15:27 UTC (rev 250520)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.h 2019-09-30 18:49:19 UTC (rev 250521)
@@ -67,6 +67,7 @@
@property (nonatomic, nullable, copy) NSString *applicationCacheFlatFileSubdirectoryName WK_API_AVAILABLE(macos(WK_MAC_TBA), ios(WK_IOS_TBA));
@property (nonatomic, nullable, copy) NSURL *mediaCacheDirectory WK_API_AVAILABLE(macos(WK_MAC_TBA), ios(WK_IOS_TBA));
@property (nonatomic, nullable, copy) NSURL *mediaKeysStorageDirectory WK_API_AVAILABLE(macos(WK_MAC_TBA), ios(WK_IOS_TBA));
+@property (nonatomic) NSUInteger testSpeedMultiplier WK_API_AVAILABLE(macos(WK_MAC_TBA), ios(WK_IOS_TBA));
// Testing only.
@property (nonatomic) BOOL allLoadsBlockedByDeviceManagementRestrictionsForTesting WK_API_AVAILABLE(macos(WK_MAC_TBA), ios(WK_IOS_TBA));
Modified: trunk/Source/WebKit/UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.mm (250520 => 250521)
--- trunk/Source/WebKit/UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.mm 2019-09-30 18:15:27 UTC (rev 250520)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.mm 2019-09-30 18:49:19 UTC (rev 250521)
@@ -330,6 +330,16 @@
_configuration->setPerOriginStorageQuota(quota);
}
+- (NSUInteger)testSpeedMultiplier
+{
+ return _configuration->testSpeedMultiplier();
+}
+
+- (void)setTestSpeedMultiplier:(NSUInteger)quota
+{
+ _configuration->setTestSpeedMultiplier(quota);
+}
+
- (NSString *)boundInterfaceIdentifier
{
return _configuration->boundInterfaceIdentifier();
Modified: trunk/Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm (250520 => 250521)
--- trunk/Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm 2019-09-30 18:15:27 UTC (rev 250520)
+++ trunk/Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm 2019-09-30 18:49:19 UTC (rev 250521)
@@ -305,7 +305,6 @@
parameters.suppressesConnectionTerminationOnSystemChange = m_configuration->suppressesConnectionTerminationOnSystemChange();
parameters.shouldEnableITPDatabase = [defaults boolForKey:[NSString stringWithFormat:@"InternalDebug%@", WebPreferencesKey::isITPDatabaseEnabledKey().createCFString().get()]];
- parameters.downloadMonitorSpeedMultiplier = m_configuration->downloadMonitorSpeedMultiplier();
parameters.enableAdClickAttributionDebugMode = [defaults boolForKey:[NSString stringWithFormat:@"Experimental%@", WebPreferencesKey::adClickAttributionDebugModeEnabledKey().createCFString().get()]];
}
Modified: trunk/Source/WebKit/UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm (250520 => 250521)
--- trunk/Source/WebKit/UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm 2019-09-30 18:15:27 UTC (rev 250520)
+++ trunk/Source/WebKit/UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm 2019-09-30 18:49:19 UTC (rev 250521)
@@ -145,7 +145,8 @@
m_configuration->dataConnectionServiceType(),
m_configuration->fastServerTrustEvaluationEnabled(),
m_configuration->networkCacheSpeculativeValidationEnabled(),
- m_configuration->testingSessionEnabled()
+ m_configuration->testingSessionEnabled(),
+ m_configuration->testSpeedMultiplier(),
};
networkingHasBegun();
Modified: trunk/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStoreConfiguration.cpp (250520 => 250521)
--- trunk/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStoreConfiguration.cpp 2019-09-30 18:15:27 UTC (rev 250520)
+++ trunk/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStoreConfiguration.cpp 2019-09-30 18:49:19 UTC (rev 250521)
@@ -84,6 +84,7 @@
copy->m_allowsCellularAccess = this->m_allowsCellularAccess;
copy->m_dataConnectionServiceType = this->m_dataConnectionServiceType;
copy->m_testingSessionEnabled = this->m_testingSessionEnabled;
+ copy->m_testSpeedMultiplier = this->m_testSpeedMultiplier;
#if PLATFORM(COCOA)
if (m_proxyConfiguration)
copy->m_proxyConfiguration = adoptCF(CFDictionaryCreateCopy(nullptr, this->m_proxyConfiguration.get()));
Modified: trunk/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStoreConfiguration.h (250520 => 250521)
--- trunk/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStoreConfiguration.h 2019-09-30 18:15:27 UTC (rev 250520)
+++ trunk/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStoreConfiguration.h 2019-09-30 18:49:19 UTC (rev 250521)
@@ -85,6 +85,9 @@
bool testingSessionEnabled() const { return m_testingSessionEnabled; }
void setTestingSessionEnabled(bool enabled) { m_testingSessionEnabled = enabled; }
+ unsigned testSpeedMultiplier() const { return m_testSpeedMultiplier; }
+ void setTestSpeedMultiplier(unsigned multiplier) { m_testSpeedMultiplier = multiplier; }
+
#if PLATFORM(COCOA)
CFDictionaryRef proxyConfiguration() const { return m_proxyConfiguration.get(); }
void setProxyConfiguration(CFDictionaryRef configuration) { m_proxyConfiguration = configuration; }
@@ -171,6 +174,7 @@
bool m_fastServerTrustEvaluationEnabled { false };
bool m_serviceWorkerProcessTerminationDelayEnabled { true };
bool m_testingSessionEnabled { false };
+ unsigned m_testSpeedMultiplier { 1 };
#if PLATFORM(COCOA)
RetainPtr<CFDictionaryRef> m_proxyConfiguration;
#endif
Modified: trunk/Tools/ChangeLog (250520 => 250521)
--- trunk/Tools/ChangeLog 2019-09-30 18:15:27 UTC (rev 250520)
+++ trunk/Tools/ChangeLog 2019-09-30 18:49:19 UTC (rev 250521)
@@ -1,3 +1,13 @@
+2019-09-30 Alex Christensen <[email protected]>
+
+ Move DownloadMonitor test speed multiplier from WebProcessPool to WebsiteDataStoreConfiguration
+ https://bugs.webkit.org/show_bug.cgi?id=202339
+
+ Reviewed by Youenn Fablet.
+
+ * TestWebKitAPI/Tests/WebKitCocoa/Download.mm:
+ (TestWebKitAPI::webViewWithDownloadMonitorSpeedMultiplier):
+
2019-09-30 Carlos Garcia Campos <[email protected]>
[GTK] IconDatabase is not thread-safe
Modified: trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/Download.mm (250520 => 250521)
--- trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/Download.mm 2019-09-30 18:15:27 UTC (rev 250520)
+++ trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/Download.mm 2019-09-30 18:49:19 UTC (rev 250521)
@@ -39,9 +39,11 @@
#import <WebKit/WKUIDelegatePrivate.h>
#import <WebKit/WKWebView.h>
#import <WebKit/WKWebViewConfiguration.h>
+#import <WebKit/WKWebsiteDataStorePrivate.h>
#import <WebKit/_WKDownload.h>
#import <WebKit/_WKDownloadDelegate.h>
#import <WebKit/_WKProcessPoolConfiguration.h>
+#import <WebKit/_WKWebsiteDataStoreConfiguration.h>
#import <wtf/FileSystem.h>
#import <wtf/MainThread.h>
#import <wtf/MonotonicTime.h>
@@ -849,10 +851,11 @@
static auto navigationDelegate = adoptNS([DownloadNavigationDelegate new]);
static auto downloadDelegate = adoptNS([DownloadMonitorTestDelegate new]);
auto processPoolConfiguration = adoptNS([_WKProcessPoolConfiguration new]);
- [processPoolConfiguration setDownloadMonitorSpeedMultiplierForTesting:multiplier];
auto processPool = adoptNS([[WKProcessPool alloc] _initWithConfiguration:processPoolConfiguration.get()]);
+ _WKWebsiteDataStoreConfiguration *dataStoreConfiguration = [[_WKWebsiteDataStoreConfiguration new] autorelease];
+ dataStoreConfiguration.testSpeedMultiplier = multiplier;
auto webViewConfiguration = adoptNS([WKWebViewConfiguration new]);
- [webViewConfiguration setProcessPool:processPool.get()];
+ [webViewConfiguration setWebsiteDataStore:[[[WKWebsiteDataStore alloc] _initWithConfiguration:dataStoreConfiguration] autorelease]];
auto webView = adoptNS([[WKWebView alloc] initWithFrame:NSMakeRect(0, 0, 800, 600) configuration:webViewConfiguration.get()]);
[webView setNavigationDelegate:navigationDelegate.get()];
[webView configuration].processPool._downloadDelegate = downloadDelegate.get();