Changeset 239699 in webkit
- Timestamp:
- Jan 7, 2019 2:29:22 PM (5 years ago)
- Location:
- trunk/Source/WebKit
- Files:
-
- 10 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit/ChangeLog
r239698 r239699 1 2019-01-07 Alex Christensen <achristensen@webkit.org> 2 3 Remove use of NetworkProcess::singleton for downloads 4 https://bugs.webkit.org/show_bug.cgi?id=193207 5 6 Reviewed by Brady Eidson. 7 8 No change in behavior. The DownloadManager is now a member of the NetworkProcess instead of a static singleton. 9 10 * NetworkProcess/Downloads/Download.cpp: 11 (WebKit::Download::Download): 12 (WebKit::Download::didReceiveChallenge): 13 * NetworkProcess/Downloads/Download.h: 14 * NetworkProcess/Downloads/DownloadManager.cpp: 15 (WebKit::DownloadManager::startDownload): 16 (WebKit::DownloadManager::convertNetworkLoadToDownload): 17 * NetworkProcess/Downloads/DownloadManager.h: 18 (WebKit::DownloadManager::client): 19 * NetworkProcess/Downloads/PendingDownload.cpp: 20 (WebKit::PendingDownload::PendingDownload): 21 (WebKit::PendingDownload::messageSenderConnection): 22 * NetworkProcess/Downloads/PendingDownload.h: 23 * NetworkProcess/NetworkLoadChecker.cpp: 24 * NetworkProcess/NetworkProcess.cpp: 25 (WebKit::NetworkProcess::NetworkProcess): 26 (WebKit::NetworkProcess::downloadManager): 27 * NetworkProcess/NetworkProcess.h: 28 1 29 2019-01-07 Devin Rousso <drousso@apple.com> 2 30 -
trunk/Source/WebKit/NetworkProcess/Downloads/Download.cpp
r238710 r239699 53 53 : m_downloadManager(downloadManager) 54 54 , m_downloadID(downloadID) 55 , m_client(downloadManager.client()) 55 56 , m_download(&download) 56 57 , m_sessionID(sessionID) … … 66 67 : m_downloadManager(downloadManager) 67 68 , m_downloadID(downloadID) 69 , m_client(downloadManager.client()) 68 70 , m_downloadTask(download) 69 71 , m_sessionID(sessionID) … … 99 101 } 100 102 101 NetworkProcess::singleton().authenticationManager().didReceiveAuthenticationChallenge(*this, challenge, WTFMove(completionHandler));103 m_client->downloadsAuthenticationManager().didReceiveAuthenticationChallenge(*this, challenge, WTFMove(completionHandler)); 102 104 } 103 105 -
trunk/Source/WebKit/NetworkProcess/Downloads/Download.h
r238771 r239699 27 27 28 28 #include "DownloadID.h" 29 #include "DownloadManager.h" 29 30 #include "MessageSender.h" 30 31 #include "NetworkDataTask.h" … … 58 59 namespace WebKit { 59 60 60 class DownloadManager;61 61 class NetworkDataTask; 62 62 class NetworkSession; … … 102 102 DownloadManager& m_downloadManager; 103 103 DownloadID m_downloadID; 104 Ref<DownloadManager::Client> m_client; 104 105 105 106 Vector<RefPtr<WebCore::BlobDataFileReference>> m_blobFileReferences; -
trunk/Source/WebKit/NetworkProcess/Downloads/DownloadManager.cpp
r238771 r239699 59 59 parameters.storedCredentialsPolicy = sessionID.isEphemeral() ? StoredCredentialsPolicy::DoNotUse : StoredCredentialsPolicy::Use; 60 60 61 m_pendingDownloads.add(downloadID, std::make_unique<PendingDownload>( WTFMove(parameters), downloadID, *networkSession, suggestedName));61 m_pendingDownloads.add(downloadID, std::make_unique<PendingDownload>(m_client.parentProcessConnectionForDownloads(), WTFMove(parameters), downloadID, *networkSession, suggestedName)); 62 62 } 63 63 … … 93 93 { 94 94 ASSERT(!m_pendingDownloads.contains(downloadID)); 95 m_pendingDownloads.add(downloadID, std::make_unique<PendingDownload>( WTFMove(networkLoad), WTFMove(completionHandler), downloadID, request, response));95 m_pendingDownloads.add(downloadID, std::make_unique<PendingDownload>(m_client.parentProcessConnectionForDownloads(), WTFMove(networkLoad), WTFMove(completionHandler), downloadID, request, response)); 96 96 } 97 97 -
trunk/Source/WebKit/NetworkProcess/Downloads/DownloadManager.h
r238771 r239699 70 70 virtual void didDestroyDownload() = 0; 71 71 virtual IPC::Connection* downloadProxyConnection() = 0; 72 virtual IPC::Connection* parentProcessConnectionForDownloads() = 0; 72 73 virtual AuthenticationManager& downloadsAuthenticationManager() = 0; 73 74 virtual void pendingDownloadCanceled(DownloadID) = 0; 75 virtual void ref() const = 0; 76 virtual void deref() const = 0; 74 77 }; 75 78 … … 101 104 IPC::Connection* downloadProxyConnection(); 102 105 AuthenticationManager& downloadsAuthenticationManager(); 106 107 Client& client() { return m_client; } 103 108 104 109 private: -
trunk/Source/WebKit/NetworkProcess/Downloads/PendingDownload.cpp
r238771 r239699 36 36 using namespace WebCore; 37 37 38 PendingDownload::PendingDownload( NetworkLoadParameters&& parameters, DownloadID downloadID, NetworkSession& networkSession, const String& suggestedName)38 PendingDownload::PendingDownload(IPC::Connection* parentProcessConnection, NetworkLoadParameters&& parameters, DownloadID downloadID, NetworkSession& networkSession, const String& suggestedName) 39 39 : m_networkLoad(std::make_unique<NetworkLoad>(*this, WTFMove(parameters), networkSession)) 40 , m_parentProcessConnection(parentProcessConnection) 40 41 { 41 42 m_isAllowedToAskUserForCredentials = parameters.clientCredentialPolicy == ClientCredentialPolicy::MayAskClientForCredentials; … … 48 49 } 49 50 50 PendingDownload::PendingDownload( std::unique_ptr<NetworkLoad>&& networkLoad, ResponseCompletionHandler&& completionHandler, DownloadID downloadID, const ResourceRequest& request, const ResourceResponse& response)51 PendingDownload::PendingDownload(IPC::Connection* parentProcessConnection, std::unique_ptr<NetworkLoad>&& networkLoad, ResponseCompletionHandler&& completionHandler, DownloadID downloadID, const ResourceRequest& request, const ResourceResponse& response) 51 52 : m_networkLoad(WTFMove(networkLoad)) 53 , m_parentProcessConnection(parentProcessConnection) 52 54 { 53 55 m_isAllowedToAskUserForCredentials = m_networkLoad->isAllowedToAskUserForCredentials(); … … 98 100 IPC::Connection* PendingDownload::messageSenderConnection() 99 101 { 100 return NetworkProcess::singleton().parentProcessConnection();102 return m_parentProcessConnection.get(); 101 103 } 102 104 -
trunk/Source/WebKit/NetworkProcess/Downloads/PendingDownload.h
r238771 r239699 29 29 #include "NetworkLoadClient.h" 30 30 31 namespace IPC { 32 class Connection; 33 } 34 31 35 namespace WebCore { 32 36 class ResourceResponse; … … 44 48 WTF_MAKE_FAST_ALLOCATED; 45 49 public: 46 PendingDownload( NetworkLoadParameters&&, DownloadID, NetworkSession&, const String& suggestedName);47 PendingDownload( std::unique_ptr<NetworkLoad>&&, ResponseCompletionHandler&&, DownloadID, const WebCore::ResourceRequest&, const WebCore::ResourceResponse&);50 PendingDownload(IPC::Connection*, NetworkLoadParameters&&, DownloadID, NetworkSession&, const String& suggestedName); 51 PendingDownload(IPC::Connection*, std::unique_ptr<NetworkLoad>&&, ResponseCompletionHandler&&, DownloadID, const WebCore::ResourceRequest&, const WebCore::ResourceResponse&); 48 52 49 53 void continueWillSendRequest(WebCore::ResourceRequest&&); … … 72 76 private: 73 77 std::unique_ptr<NetworkLoad> m_networkLoad; 78 RefPtr<IPC::Connection> m_parentProcessConnection; 74 79 bool m_isAllowedToAskUserForCredentials; 75 80 -
trunk/Source/WebKit/NetworkProcess/NetworkLoadChecker.cpp
r239594 r239699 27 27 #include "NetworkLoadChecker.h" 28 28 29 #include "Download.h" 29 30 #include "Logging.h" 30 31 #include "NetworkCORSPreflightChecker.h" -
trunk/Source/WebKit/NetworkProcess/NetworkProcess.cpp
r239680 r239699 125 125 , m_diskCacheIsDisabledForTesting(false) 126 126 , m_canHandleHTTPSServerTrustEvaluation(true) 127 , m_downloadManager(*this) 127 128 #if PLATFORM(COCOA) 128 129 , m_clearCacheDispatchGroup(0) … … 166 167 DownloadManager& NetworkProcess::downloadManager() 167 168 { 168 static NeverDestroyed<DownloadManager> downloadManager(*this); 169 return downloadManager; 169 return m_downloadManager; 170 170 } 171 171 -
trunk/Source/WebKit/NetworkProcess/NetworkProcess.h
r239683 r239699 95 95 { 96 96 WTF_MAKE_NONCOPYABLE(NetworkProcess); 97 friend NeverDestroyed<DownloadManager>;98 97 public: 99 98 ~NetworkProcess(); … … 212 211 const String& uiProcessBundleIdentifier() const { return m_uiProcessBundleIdentifier; } 213 212 213 void ref() const override { ThreadSafeRefCounted<NetworkProcess>::ref(); } 214 void deref() const override { ThreadSafeRefCounted<NetworkProcess>::deref(); } 215 214 216 private: 215 217 NetworkProcess(); … … 248 250 void didDestroyDownload() override; 249 251 IPC::Connection* downloadProxyConnection() override; 252 IPC::Connection* parentProcessConnectionForDownloads() override { return parentProcessConnection(); } 250 253 AuthenticationManager& downloadsAuthenticationManager() override; 251 254 void pendingDownloadCanceled(DownloadID) override; … … 355 358 bool m_canHandleHTTPSServerTrustEvaluation; 356 359 String m_uiProcessBundleIdentifier; 360 DownloadManager m_downloadManager; 357 361 358 362 RefPtr<NetworkCache::Cache> m_cache;
Note: See TracChangeset
for help on using the changeset viewer.