Title: [250521] trunk
Revision
250521
Author
[email protected]
Date
2019-09-30 11:49:19 -0700 (Mon, 30 Sep 2019)

Log Message

Move DownloadMonitor test speed multiplier from WebProcessPool to WebsiteDataStoreConfiguration
https://bugs.webkit.org/show_bug.cgi?id=202339

Reviewed by Youenn Fablet.

Source/WebKit:

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):

Tools:

* TestWebKitAPI/Tests/WebKitCocoa/Download.mm:
(TestWebKitAPI::webViewWithDownloadMonitorSpeedMultiplier):

Modified Paths

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

Reply via email to