Changeset 268017 in webkit
- Timestamp:
- Oct 5, 2020 4:53:33 PM (4 years ago)
- Location:
- trunk/Source/WebKit
- Files:
-
- 24 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit/ChangeLog
r268015 r268017 1 2020-10-05 Alex Christensen <achristensen@webkit.org> 2 3 Make DownloadID an ObjectIdentifier 4 https://bugs.webkit.org/show_bug.cgi?id=203962 5 6 Reviewed by Youenn Fablet and Geoffrey Garen. 7 8 Also deprecate the unused WKDownloadGetID because this identifier is internal. 9 10 * NetworkProcess/Downloads/Download.cpp: 11 (WebKit::Download::Download): 12 (WebKit::Download::didReceiveData): 13 (WebKit::Download::didFinish): 14 (WebKit::Download::didFail): 15 (WebKit::Download::didCancel): 16 (WebKit::Download::messageSenderDestinationID const): 17 * NetworkProcess/Downloads/DownloadID.h: 18 (WebKit::DownloadID::DownloadID): Deleted. 19 (WebKit::DownloadID::operator== const): Deleted. 20 (WebKit::DownloadID::operator!= const): Deleted. 21 (WebKit::DownloadID::downloadID const): Deleted. 22 (IPC::ArgumentCoder<WebKit::DownloadID>::encode): Deleted. 23 (IPC::ArgumentCoder<WebKit::DownloadID>::decode): Deleted. 24 (WTF::DownloadIDHash::hash): Deleted. 25 (WTF::DownloadIDHash::equal): Deleted. 26 (WTF::HashTraits<WebKit::DownloadID>::emptyValue): Deleted. 27 (WTF::HashTraits<WebKit::DownloadID>::constructDeletedValue): Deleted. 28 (WTF::HashTraits<WebKit::DownloadID>::isDeletedValue): Deleted. 29 * NetworkProcess/Downloads/DownloadMonitor.cpp: 30 (WebKit::DownloadMonitor::applicationWillEnterForeground): 31 (WebKit::DownloadMonitor::applicationDidEnterBackground): 32 (WebKit::DownloadMonitor::timerFired): 33 * NetworkProcess/Downloads/PendingDownload.cpp: 34 (WebKit::PendingDownload::messageSenderDestinationID const): 35 * NetworkProcess/Downloads/PendingDownload.h: 36 * NetworkProcess/NetworkDataTask.h: 37 (WebKit::NetworkDataTask::setPendingDownloadID): 38 (WebKit::NetworkDataTask::isDownload const): 39 * NetworkProcess/NetworkProcess.cpp: 40 (WebKit::NetworkProcess::pendingDownloadCanceled): 41 (WebKit::NetworkProcess::findPendingDownloadLocation): 42 * NetworkProcess/NetworkProcess.h: 43 * NetworkProcess/NetworkResourceLoader.cpp: 44 (WebKit::NetworkResourceLoader::convertToDownload): 45 * NetworkProcess/cocoa/NetworkSessionCocoa.mm: 46 (-[WKNetworkSessionDelegate URLSession:task:didCompleteWithError:]): 47 (-[WKNetworkSessionDelegate URLSession:downloadTask:didFinishDownloadingToURL:]): 48 (-[WKNetworkSessionDelegate URLSession:downloadTask:didWriteData:totalBytesWritten:totalBytesExpectedToWrite:]): 49 (WebKit::NetworkSessionCocoa::continueDidReceiveChallenge): 50 * Scripts/webkit/messages.py: 51 * Shared/Authentication/AuthenticationManager.h: 52 * UIProcess/API/C/WKDownload.cpp: 53 (WKDownloadGetID): 54 * UIProcess/API/C/WKDownload.h: 55 * UIProcess/Downloads/DownloadProxy.cpp: 56 (WebKit::DownloadProxy::DownloadProxy): 57 (WebKit::generateDownloadID): Deleted. 58 * UIProcess/Downloads/DownloadProxy.h: 59 * UIProcess/Downloads/DownloadProxyMap.cpp: 60 (WebKit::DownloadProxyMap::createDownloadProxy): 61 (WebKit::DownloadProxyMap::downloadFinished): 62 (WebKit::DownloadProxyMap::invalidate): 63 * WebProcess/WebPage/WebFrame.cpp: 64 (WebKit::WebFrame::startDownload): 65 (WebKit::WebFrame::convertMainResourceLoadToDownload): 66 * WebProcess/WebPage/WebFrame.h: 67 * WebProcess/WebPage/WebPage.h: 68 1 69 2020-10-05 Alex Christensen <achristensen@webkit.org> 2 70 -
trunk/Source/WebKit/NetworkProcess/Downloads/Download.cpp
r261898 r268017 60 60 , m_testSpeedMultiplier(session.testSpeedMultiplier()) 61 61 { 62 ASSERT(m_downloadID .downloadID());62 ASSERT(m_downloadID); 63 63 64 64 m_downloadManager.didCreateDownload(); … … 75 75 , m_testSpeedMultiplier(session.testSpeedMultiplier()) 76 76 { 77 ASSERT(m_downloadID .downloadID());77 ASSERT(m_downloadID); 78 78 79 79 m_downloadManager.didCreateDownload(); … … 121 121 { 122 122 if (!m_hasReceivedData) { 123 RELEASE_LOG_IF_ALLOWED("didReceiveData: Started receiving data (id = %" PRIu64 ")", downloadID(). downloadID());123 RELEASE_LOG_IF_ALLOWED("didReceiveData: Started receiving data (id = %" PRIu64 ")", downloadID().toUInt64()); 124 124 m_hasReceivedData = true; 125 125 } … … 132 132 void Download::didFinish() 133 133 { 134 RELEASE_LOG_IF_ALLOWED("didFinish: (id = %" PRIu64 ")", downloadID(). downloadID());134 RELEASE_LOG_IF_ALLOWED("didFinish: (id = %" PRIu64 ")", downloadID().toUInt64()); 135 135 136 136 send(Messages::DownloadProxy::DidFinish()); … … 147 147 { 148 148 RELEASE_LOG_IF_ALLOWED("didFail: (id = %" PRIu64 ", isTimeout = %d, isCancellation = %d, errCode = %d)", 149 downloadID(). downloadID(), error.isTimeout(), error.isCancellation(), error.errorCode());149 downloadID().toUInt64(), error.isTimeout(), error.isCancellation(), error.errorCode()); 150 150 151 151 send(Messages::DownloadProxy::DidFail(error, resumeData)); … … 160 160 void Download::didCancel(const IPC::DataReference& resumeData) 161 161 { 162 RELEASE_LOG_IF_ALLOWED("didCancel: (id = %" PRIu64 ")", downloadID(). downloadID());162 RELEASE_LOG_IF_ALLOWED("didCancel: (id = %" PRIu64 ")", downloadID().toUInt64()); 163 163 164 164 send(Messages::DownloadProxy::DidCancel(resumeData)); … … 178 178 uint64_t Download::messageSenderDestinationID() const 179 179 { 180 return m_downloadID. downloadID();180 return m_downloadID.toUInt64(); 181 181 } 182 182 -
trunk/Source/WebKit/NetworkProcess/Downloads/DownloadID.h
r268008 r268017 26 26 #pragma once 27 27 28 #include "ArgumentCoder.h" 29 #include "Decoder.h" 30 #include "Encoder.h" 31 #include <wtf/HashTraits.h> 28 #include <wtf/ObjectIdentifier.h> 32 29 33 30 namespace WebKit { … … 35 32 enum class AllowOverwrite : bool { No, Yes }; 36 33 37 // FIXME: This should be an ObjectIdentifier. 38 class DownloadID { 39 public: 40 DownloadID() 41 { 42 } 43 44 explicit DownloadID(uint64_t downloadID) 45 : m_downloadID(downloadID) 46 { 47 } 48 49 bool operator==(DownloadID other) const { return m_downloadID == other.m_downloadID; } 50 bool operator!=(DownloadID other) const { return m_downloadID != other.m_downloadID; } 51 52 explicit operator bool() const { return downloadID(); } 53 54 uint64_t downloadID() const { return m_downloadID; } 55 private: 56 uint64_t m_downloadID { 0 }; 57 }; 34 enum DownloadIdentifierType { }; 35 using DownloadID = ObjectIdentifier<DownloadIdentifierType>; 58 36 59 37 } 60 61 namespace IPC {62 63 template<> struct ArgumentCoder<WebKit::DownloadID> {64 static void encode(Encoder& encoder, const WebKit::DownloadID& downloadID)65 {66 encoder << downloadID.downloadID();67 }68 static WARN_UNUSED_RETURN bool decode(Decoder& decoder, WebKit::DownloadID& downloadID)69 {70 uint64_t id;71 if (!decoder.decode(id))72 return false;73 74 downloadID = WebKit::DownloadID(id);75 76 return true;77 }78 };79 80 }81 82 namespace WTF {83 84 struct DownloadIDHash {85 static unsigned hash(const WebKit::DownloadID& d) { return intHash(d.downloadID()); }86 static bool equal(const WebKit::DownloadID& a, const WebKit::DownloadID& b) { return a.downloadID() == b.downloadID(); }87 static const bool safeToCompareToEmptyOrDeleted = true;88 };89 template<> struct HashTraits<WebKit::DownloadID> : GenericHashTraits<WebKit::DownloadID> {90 static WebKit::DownloadID emptyValue() { return { }; }91 92 static void constructDeletedValue(WebKit::DownloadID& slot) { slot = WebKit::DownloadID(std::numeric_limits<uint64_t>::max()); }93 static bool isDeletedValue(const WebKit::DownloadID& slot) { return slot.downloadID() == std::numeric_limits<uint64_t>::max(); }94 };95 template<> struct DefaultHash<WebKit::DownloadID> : DownloadIDHash { };96 97 } -
trunk/Source/WebKit/NetworkProcess/Downloads/DownloadMap.cpp
r259540 r268017 57 57 DownloadMap::DownloadMapType::AddResult DownloadMap::add(DownloadID downloadID, std::unique_ptr<Download>&& download) 58 58 { 59 RELEASE_LOG(Loading, "Adding download %" PRIu64 " to NetworkProcess DownloadMap", downloadID. downloadID());59 RELEASE_LOG(Loading, "Adding download %" PRIu64 " to NetworkProcess DownloadMap", downloadID.toUInt64()); 60 60 61 61 auto result = m_downloads.add(downloadID, WTFMove(download)); … … 71 71 bool DownloadMap::remove(DownloadID downloadID) 72 72 { 73 RELEASE_LOG(Loading, "Removing download %" PRIu64 " from NetworkProcess DownloadMap", downloadID. downloadID());73 RELEASE_LOG(Loading, "Removing download %" PRIu64 " from NetworkProcess DownloadMap", downloadID.toUInt64()); 74 74 75 75 auto result = m_downloads.remove(downloadID); -
trunk/Source/WebKit/NetworkProcess/Downloads/DownloadMonitor.cpp
r252274 r268017 94 94 void DownloadMonitor::applicationWillEnterForeground() 95 95 { 96 RELEASE_LOG_IF_ALLOWED("applicationWillEnterForeground (id = %" PRIu64 ")", m_download.downloadID(). downloadID());96 RELEASE_LOG_IF_ALLOWED("applicationWillEnterForeground (id = %" PRIu64 ")", m_download.downloadID().toUInt64()); 97 97 m_timer.stop(); 98 98 m_interval = 0; … … 101 101 void DownloadMonitor::applicationDidEnterBackground() 102 102 { 103 RELEASE_LOG_IF_ALLOWED("applicationDidEnterBackground (id = %" PRIu64 ")", m_download.downloadID(). downloadID());103 RELEASE_LOG_IF_ALLOWED("applicationDidEnterBackground (id = %" PRIu64 ")", m_download.downloadID().toUInt64()); 104 104 ASSERT(!m_timer.isActive()); 105 105 ASSERT(!m_interval); … … 118 118 RELEASE_ASSERT(m_interval < WTF_ARRAY_LENGTH(throughputIntervals)); 119 119 if (measuredThroughputRate() < throughputIntervals[m_interval].bytesPerSecond) { 120 RELEASE_LOG_IF_ALLOWED("timerFired: cancelling download (id = %" PRIu64 ")", m_download.downloadID(). downloadID());120 RELEASE_LOG_IF_ALLOWED("timerFired: cancelling download (id = %" PRIu64 ")", m_download.downloadID().toUInt64()); 121 121 m_download.cancel(); 122 122 } else if (m_interval + 1 < WTF_ARRAY_LENGTH(throughputIntervals)) { 123 RELEASE_LOG_IF_ALLOWED("timerFired: sufficient throughput rate (id = %" PRIu64 ")", m_download.downloadID(). downloadID());123 RELEASE_LOG_IF_ALLOWED("timerFired: sufficient throughput rate (id = %" PRIu64 ")", m_download.downloadID().toUInt64()); 124 124 m_timer.startOneShot(timeUntilNextInterval(m_interval++) / testSpeedMultiplier()); 125 125 } else 126 RELEASE_LOG_IF_ALLOWED("timerFired: Download reached threshold to not be terminated (id = %" PRIu64 ")", m_download.downloadID(). downloadID());126 RELEASE_LOG_IF_ALLOWED("timerFired: Download reached threshold to not be terminated (id = %" PRIu64 ")", m_download.downloadID().toUInt64()); 127 127 } 128 128 -
trunk/Source/WebKit/NetworkProcess/Downloads/PendingDownload.cpp
r264021 r268017 112 112 uint64_t PendingDownload::messageSenderDestinationID() const 113 113 { 114 return m_networkLoad->pendingDownloadID(). downloadID();114 return m_networkLoad->pendingDownloadID().toUInt64(); 115 115 } 116 116 -
trunk/Source/WebKit/NetworkProcess/Downloads/PendingDownload.h
r252274 r268017 26 26 #pragma once 27 27 28 #include "DownloadID.h" 28 29 #include "MessageSender.h" 29 30 #include "NetworkLoadClient.h" … … 42 43 43 44 class Download; 44 class DownloadID;45 45 class NetworkLoad; 46 46 class NetworkLoadParameters; -
trunk/Source/WebKit/NetworkProcess/NetworkDataTask.h
r264021 r268017 111 111 void setPendingDownloadID(DownloadID downloadID) 112 112 { 113 ASSERT(!m_pendingDownloadID .downloadID());114 ASSERT(downloadID .downloadID());113 ASSERT(!m_pendingDownloadID); 114 ASSERT(downloadID); 115 115 m_pendingDownloadID = downloadID; 116 116 } … … 123 123 virtual void setPendingDownloadLocation(const String& filename, SandboxExtension::Handle&&, bool /*allowOverwrite*/) { m_pendingDownloadLocation = filename; } 124 124 const String& pendingDownloadLocation() const { return m_pendingDownloadLocation; } 125 bool isDownload() const { return !!m_pendingDownloadID .downloadID(); }125 bool isDownload() const { return !!m_pendingDownloadID; } 126 126 127 127 const WebCore::ResourceRequest& firstRequest() const { return m_firstRequest; } -
trunk/Source/WebKit/NetworkProcess/NetworkProcess.cpp
r268015 r268017 2091 2091 void NetworkProcess::pendingDownloadCanceled(DownloadID downloadID) 2092 2092 { 2093 downloadProxyConnection()->send(Messages::DownloadProxy::DidCancel({ }), downloadID. downloadID());2093 downloadProxyConnection()->send(Messages::DownloadProxy::DidCancel({ }), downloadID.toUInt64()); 2094 2094 } 2095 2095 2096 2096 void NetworkProcess::findPendingDownloadLocation(NetworkDataTask& networkDataTask, ResponseCompletionHandler&& completionHandler, const ResourceResponse& response) 2097 2097 { 2098 uint64_t destinationID = networkDataTask.pendingDownloadID(). downloadID();2098 uint64_t destinationID = networkDataTask.pendingDownloadID().toUInt64(); 2099 2099 downloadProxyConnection()->send(Messages::DownloadProxy::DidReceiveResponse(response), destinationID); 2100 2100 -
trunk/Source/WebKit/NetworkProcess/NetworkProcess.h
r268008 r268017 29 29 #include "CacheModel.h" 30 30 #include "CallbackID.h" 31 #include "DownloadID.h" 31 32 #include "DownloadManager.h" 32 33 #include "LocalStorageDatabaseTracker.h" … … 78 79 class CertificateInfo; 79 80 class CurlProxySettings; 80 class DownloadID;81 81 class ProtectionSpace; 82 82 class StorageQuotaManager; -
trunk/Source/WebKit/NetworkProcess/NetworkResourceLoader.cpp
r266003 r268017 464 464 void NetworkResourceLoader::convertToDownload(DownloadID downloadID, const ResourceRequest& request, const ResourceResponse& response) 465 465 { 466 RELEASE_LOG_IF_ALLOWED("convertToDownload: (downloadID=%" PRIu64 ", hasNetworkLoad=%d, hasResponseCompletionHandler=%d)", downloadID. downloadID(), !!m_networkLoad, !!m_responseCompletionHandler);466 RELEASE_LOG_IF_ALLOWED("convertToDownload: (downloadID=%" PRIu64 ", hasNetworkLoad=%d, hasResponseCompletionHandler=%d)", downloadID.toUInt64(), !!m_networkLoad, !!m_responseCompletionHandler); 467 467 468 468 // This can happen if the resource came from the disk cache. -
trunk/Source/WebKit/NetworkProcess/WebSocketTask.h
r263797 r268017 32 32 #else 33 33 34 namespace IPC { 35 class DataReference; 36 } 37 34 38 namespace WebKit { 35 39 -
trunk/Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.mm
r266829 r268017 749 749 return; 750 750 auto downloadID = _sessionWrapper->downloadMap.take(task.taskIdentifier); 751 if (!downloadID .downloadID())751 if (!downloadID) 752 752 return; 753 753 if (!_session) … … 946 946 return; 947 947 auto downloadID = _sessionWrapper->downloadMap.take([downloadTask taskIdentifier]); 948 if (!downloadID .downloadID())948 if (!downloadID) 949 949 return; 950 950 if (!_session) … … 963 963 return; 964 964 auto downloadID = _sessionWrapper->downloadMap.get([downloadTask taskIdentifier]); 965 if (!downloadID .downloadID())965 if (!downloadID) 966 966 return; 967 967 if (!_session) … … 1539 1539 #endif 1540 1540 auto downloadID = sessionWrapper.downloadMap.get(taskIdentifier); 1541 if (downloadID .downloadID()) {1541 if (downloadID) { 1542 1542 if (auto* download = networkProcess().downloadManager().download(downloadID)) { 1543 1543 WebCore::AuthenticationChallenge authenticationChallenge { challenge }; -
trunk/Source/WebKit/Scripts/webkit/messages.py
r268008 r268017 236 236 'WebKit::ContentWorldIdentifier', 237 237 'WebKit::DisplayLinkObserverID', 238 'WebKit::DownloadID', 238 239 'WebKit::GeolocationIdentifier', 239 240 'WebKit::ImageBufferBackendHandle', -
trunk/Source/WebKit/Shared/PolicyDecision.h
r261506 r268017 39 39 WebCore::PolicyAction policyAction { WebCore::PolicyAction::Ignore }; 40 40 uint64_t navigationID { 0 }; 41 DownloadID downloadID { 0};41 Optional<DownloadID> downloadID { WTF::nullopt }; 42 42 Optional<WebsitePoliciesData> websitePoliciesData { WTF::nullopt }; 43 43 Optional<SandboxExtension::Handle> sandboxExtensionHandle { WTF::nullopt }; … … 78 78 return WTF::nullopt; 79 79 80 Optional< DownloadID> decodedDownloadID;80 Optional<Optional<DownloadID>> decodedDownloadID; 81 81 decoder >> decodedDownloadID; 82 82 if (!decodedDownloadID) -
trunk/Source/WebKit/UIProcess/API/C/WKDownload.cpp
r252274 r268017 41 41 } 42 42 43 uint64_t WKDownloadGetID(WKDownloadRef download)43 uint64_t WKDownloadGetID(WKDownloadRef) 44 44 { 45 return toImpl(download)->downloadID().downloadID();45 return 0; 46 46 } 47 47 -
trunk/Source/WebKit/UIProcess/API/C/WKDownload.h
r252274 r268017 28 28 29 29 #include <WebKit/WKBase.h> 30 #include <WebKit/WKDeprecated.h> 30 31 31 32 #ifndef __cplusplus … … 39 40 WK_EXPORT WKTypeID WKDownloadGetTypeID(); 40 41 41 WK_EXPORT uint64_t WKDownloadGetID(WKDownloadRef download) ;42 WK_EXPORT uint64_t WKDownloadGetID(WKDownloadRef download) WK_C_API_DEPRECATED; 42 43 WK_EXPORT WKURLRequestRef WKDownloadCopyRequest(WKDownloadRef download); 43 44 WK_EXPORT WKDataRef WKDownloadGetResumeData(WKDownloadRef download); -
trunk/Source/WebKit/UIProcess/Downloads/DownloadProxy.cpp
r268008 r268017 49 49 using namespace WebCore; 50 50 51 static uint64_t generateDownloadID()52 {53 static uint64_t uniqueDownloadID = 0;54 return ++uniqueDownloadID;55 }56 57 51 DownloadProxy::DownloadProxy(DownloadProxyMap& downloadProxyMap, WebsiteDataStore& dataStore, WebProcessPool& processPool, const ResourceRequest& resourceRequest, const FrameInfoData& frameInfoData, WebPageProxy* originatingPage) 58 52 : m_downloadProxyMap(downloadProxyMap) 59 53 , m_dataStore(&dataStore) 60 54 , m_processPool(&processPool) 61 , m_downloadID( generateDownloadID())55 , m_downloadID(DownloadID::generate()) 62 56 , m_request(resourceRequest) 63 57 , m_originatingPage(makeWeakPtr(originatingPage)) -
trunk/Source/WebKit/UIProcess/Downloads/DownloadProxyMap.cpp
r267763 r268017 84 84 m_downloads.set(downloadProxy->downloadID(), downloadProxy.copyRef()); 85 85 86 RELEASE_LOG(Loading, "Adding download %" PRIu64 " to UIProcess DownloadProxyMap", downloadProxy->downloadID(). downloadID());86 RELEASE_LOG(Loading, "Adding download %" PRIu64 " to UIProcess DownloadProxyMap", downloadProxy->downloadID().toUInt64()); 87 87 88 88 if (m_downloads.size() == 1 && m_shouldTakeAssertion) { … … 96 96 } 97 97 98 m_process.addMessageReceiver(Messages::DownloadProxy::messageReceiverName(), downloadProxy->downloadID(). downloadID(), downloadProxy.get());98 m_process.addMessageReceiver(Messages::DownloadProxy::messageReceiverName(), downloadProxy->downloadID().toUInt64(), downloadProxy.get()); 99 99 100 100 return downloadProxy; … … 105 105 auto downloadID = downloadProxy.downloadID(); 106 106 107 RELEASE_LOG(Loading, "Removing download %" PRIu64 " from UIProcess DownloadProxyMap", downloadID. downloadID());107 RELEASE_LOG(Loading, "Removing download %" PRIu64 " from UIProcess DownloadProxyMap", downloadID.toUInt64()); 108 108 109 109 ASSERT(m_downloads.contains(downloadID)); 110 110 111 m_process.removeMessageReceiver(Messages::DownloadProxy::messageReceiverName(), downloadID. downloadID());111 m_process.removeMessageReceiver(Messages::DownloadProxy::messageReceiverName(), downloadID.toUInt64()); 112 112 downloadProxy.invalidate(); 113 113 m_downloads.remove(downloadID); … … 128 128 download->processDidClose(); 129 129 download->invalidate(); 130 m_process.removeMessageReceiver(Messages::DownloadProxy::messageReceiverName(), download->downloadID(). downloadID());130 m_process.removeMessageReceiver(Messages::DownloadProxy::messageReceiverName(), download->downloadID().toUInt64()); 131 131 } 132 132 -
trunk/Source/WebKit/UIProcess/ProvisionalPageProxy.cpp
r261829 r268017 358 358 { 359 359 if (!isMainFrame || (m_mainFrame && m_mainFrame->frameID() != frameID) || navigationID != m_navigationID) { 360 reply(PolicyDecision { identifier, WTF::nullopt, WebCore::PolicyAction::Ignore, navigationID, DownloadID(), WTF::nullopt });360 reply(PolicyDecision { identifier, WTF::nullopt, WebCore::PolicyAction::Ignore, navigationID, WTF::nullopt, WTF::nullopt }); 361 361 return; 362 362 } -
trunk/Source/WebKit/UIProcess/WebPageProxy.cpp
r267966 r268017 3317 3317 { 3318 3318 if (!hasRunningProcess()) { 3319 sender->send(PolicyDecision { sender->identifier(), isNavigatingToAppBoundDomain(), PolicyAction::Ignore, 0, DownloadID(), WTF::nullopt });3319 sender->send(PolicyDecision { sender->identifier(), isNavigatingToAppBoundDomain(), PolicyAction::Ignore, 0, WTF::nullopt, WTF::nullopt }); 3320 3320 return; 3321 3321 } … … 3326 3326 m_pageLoadState.clearPendingAPIRequest(transaction); 3327 3327 3328 DownloadID downloadID = { };3328 Optional<DownloadID> downloadID; 3329 3329 if (action == PolicyAction::Download) { 3330 3330 // Create a download proxy. … … 5126 5126 if (!checkURLReceivedFromCurrentOrPreviousWebProcess(process, request.url())) { 5127 5127 RELEASE_LOG_ERROR_IF_ALLOWED(Process, "Ignoring request to load this main resource because it is outside the sandbox"); 5128 sender->send(PolicyDecision { sender->identifier(), isNavigatingToAppBoundDomain(), PolicyAction::Ignore, 0, DownloadID(), WTF::nullopt });5128 sender->send(PolicyDecision { sender->identifier(), isNavigatingToAppBoundDomain(), PolicyAction::Ignore, 0, WTF::nullopt, WTF::nullopt }); 5129 5129 return; 5130 5130 } … … 5384 5384 5385 5385 // If the client did not respond synchronously, proceed with the load. 5386 sender->send(PolicyDecision { sender->identifier(), isNavigatingToAppBoundDomain(), PolicyAction::Use, navigationID, DownloadID(), WTF::nullopt });5386 sender->send(PolicyDecision { sender->identifier(), isNavigatingToAppBoundDomain(), PolicyAction::Use, navigationID, WTF::nullopt, WTF::nullopt }); 5387 5387 } 5388 5388 -
trunk/Source/WebKit/WebProcess/WebPage/WebFrame.cpp
r266829 r268017 283 283 void WebFrame::startDownload(const WebCore::ResourceRequest& request, const String& suggestedName) 284 284 { 285 ASSERT(m_policyDownloadID.downloadID()); 286 287 auto policyDownloadID = m_policyDownloadID; 288 m_policyDownloadID = { }; 285 if (!m_policyDownloadID) { 286 ASSERT_NOT_REACHED(); 287 return; 288 } 289 auto policyDownloadID = *std::exchange(m_policyDownloadID, WTF::nullopt); 289 290 290 291 Optional<NavigatingToAppBoundDomain> isAppBound = NavigatingToAppBoundDomain::No; … … 295 296 void WebFrame::convertMainResourceLoadToDownload(DocumentLoader* documentLoader, const ResourceRequest& request, const ResourceResponse& response) 296 297 { 297 ASSERT(m_policyDownloadID.downloadID()); 298 299 auto policyDownloadID = m_policyDownloadID; 300 m_policyDownloadID = { }; 298 if (!m_policyDownloadID) { 299 ASSERT_NOT_REACHED(); 300 return; 301 } 302 auto policyDownloadID = *std::exchange(m_policyDownloadID, WTF::nullopt); 301 303 302 304 SubresourceLoader* mainResourceLoader = documentLoader->mainResourceLoader(); -
trunk/Source/WebKit/WebProcess/WebPage/WebFrame.h
r266829 r268017 191 191 ForNavigationAction m_policyFunctionForNavigationAction { ForNavigationAction::No }; 192 192 HashMap<uint64_t, CompletionHandler<void()>> m_willSubmitFormCompletionHandlers; 193 DownloadID m_policyDownloadID { 0 };193 Optional<DownloadID> m_policyDownloadID; 194 194 195 195 LoadListener* m_loadListener { nullptr }; -
trunk/Source/WebKit/WebProcess/WebPage/WebPage.h
r267973 r268017 35 35 #include "CallbackID.h" 36 36 #include "ContentAsStringIncludesChildFrames.h" 37 #include "DownloadID.h" 37 38 #include "DrawingAreaInfo.h" 38 39 #include "EditingRange.h" … … 233 234 234 235 class DrawingArea; 235 class DownloadID;236 236 class FindController; 237 237 class GamepadData;
Note: See TracChangeset
for help on using the changeset viewer.