Diff
Modified: trunk/Source/WebKit/ChangeLog (252259 => 252260)
--- trunk/Source/WebKit/ChangeLog 2019-11-08 21:26:15 UTC (rev 252259)
+++ trunk/Source/WebKit/ChangeLog 2019-11-08 21:34:49 UTC (rev 252260)
@@ -1,5 +1,73 @@
2019-11-08 Alex Christensen <achristen...@webkit.org>
+ Make DownloadID an ObjectIdentifier
+ https://bugs.webkit.org/show_bug.cgi?id=203962
+
+ Reviewed by Youenn Fablet.
+
+ Also deprecate the unused WKDownloadGetID because this identifier is internal.
+
+ * NetworkProcess/Downloads/Download.cpp:
+ (WebKit::Download::Download):
+ (WebKit::Download::didReceiveData):
+ (WebKit::Download::didFinish):
+ (WebKit::Download::didFail):
+ (WebKit::Download::didCancel):
+ (WebKit::Download::messageSenderDestinationID const):
+ * NetworkProcess/Downloads/DownloadID.h:
+ (WebKit::DownloadID::DownloadID): Deleted.
+ (WebKit::DownloadID::operator== const): Deleted.
+ (WebKit::DownloadID::operator!= const): Deleted.
+ (WebKit::DownloadID::downloadID const): Deleted.
+ (IPC::ArgumentCoder<WebKit::DownloadID>::encode): Deleted.
+ (IPC::ArgumentCoder<WebKit::DownloadID>::decode): Deleted.
+ (WTF::DownloadIDHash::hash): Deleted.
+ (WTF::DownloadIDHash::equal): Deleted.
+ (WTF::HashTraits<WebKit::DownloadID>::emptyValue): Deleted.
+ (WTF::HashTraits<WebKit::DownloadID>::constructDeletedValue): Deleted.
+ (WTF::HashTraits<WebKit::DownloadID>::isDeletedValue): Deleted.
+ * NetworkProcess/Downloads/DownloadMonitor.cpp:
+ (WebKit::DownloadMonitor::applicationWillEnterForeground):
+ (WebKit::DownloadMonitor::applicationDidEnterBackground):
+ (WebKit::DownloadMonitor::timerFired):
+ * NetworkProcess/Downloads/PendingDownload.cpp:
+ (WebKit::PendingDownload::messageSenderDestinationID const):
+ * NetworkProcess/Downloads/PendingDownload.h:
+ * NetworkProcess/NetworkDataTask.h:
+ (WebKit::NetworkDataTask::setPendingDownloadID):
+ (WebKit::NetworkDataTask::isDownload const):
+ * NetworkProcess/NetworkProcess.cpp:
+ (WebKit::NetworkProcess::pendingDownloadCanceled):
+ (WebKit::NetworkProcess::findPendingDownloadLocation):
+ * NetworkProcess/NetworkProcess.h:
+ * NetworkProcess/NetworkResourceLoader.cpp:
+ (WebKit::NetworkResourceLoader::convertToDownload):
+ * NetworkProcess/cocoa/NetworkSessionCocoa.mm:
+ (-[WKNetworkSessionDelegate URLSession:task:didCompleteWithError:]):
+ (-[WKNetworkSessionDelegate URLSession:downloadTask:didFinishDownloadingToURL:]):
+ (-[WKNetworkSessionDelegate URLSession:downloadTask:didWriteData:totalBytesWritten:totalBytesExpectedToWrite:]):
+ (WebKit::NetworkSessionCocoa::continueDidReceiveChallenge):
+ * Scripts/webkit/messages.py:
+ * Shared/Authentication/AuthenticationManager.h:
+ * UIProcess/API/C/WKDownload.cpp:
+ (WKDownloadGetID):
+ * UIProcess/API/C/WKDownload.h:
+ * UIProcess/Downloads/DownloadProxy.cpp:
+ (WebKit::DownloadProxy::DownloadProxy):
+ (WebKit::generateDownloadID): Deleted.
+ * UIProcess/Downloads/DownloadProxy.h:
+ * UIProcess/Downloads/DownloadProxyMap.cpp:
+ (WebKit::DownloadProxyMap::createDownloadProxy):
+ (WebKit::DownloadProxyMap::downloadFinished):
+ (WebKit::DownloadProxyMap::invalidate):
+ * WebProcess/WebPage/WebFrame.cpp:
+ (WebKit::WebFrame::startDownload):
+ (WebKit::WebFrame::convertMainResourceLoadToDownload):
+ * WebProcess/WebPage/WebFrame.h:
+ * WebProcess/WebPage/WebPage.h:
+
+2019-11-08 Alex Christensen <achristen...@webkit.org>
+
Fix flaky tests in http/tests/cache/disk-cache
https://bugs.webkit.org/show_bug.cgi?id=203822
Modified: trunk/Source/WebKit/NetworkProcess/Downloads/Download.cpp (252259 => 252260)
--- trunk/Source/WebKit/NetworkProcess/Downloads/Download.cpp 2019-11-08 21:26:15 UTC (rev 252259)
+++ trunk/Source/WebKit/NetworkProcess/Downloads/Download.cpp 2019-11-08 21:34:49 UTC (rev 252260)
@@ -59,7 +59,7 @@
, m_suggestedName(suggestedName)
, m_testSpeedMultiplier(session.testSpeedMultiplier())
{
- ASSERT(m_downloadID.downloadID());
+ ASSERT(m_downloadID);
m_downloadManager.didCreateDownload();
}
@@ -74,7 +74,7 @@
, m_suggestedName(suggestedName)
, m_testSpeedMultiplier(session.testSpeedMultiplier())
{
- ASSERT(m_downloadID.downloadID());
+ ASSERT(m_downloadID);
m_downloadManager.didCreateDownload();
}
@@ -120,7 +120,7 @@
void Download::didReceiveData(uint64_t length)
{
if (!m_hasReceivedData) {
- RELEASE_LOG_IF_ALLOWED("didReceiveData: Started receiving data (id = %" PRIu64 ")", downloadID().downloadID());
+ RELEASE_LOG_IF_ALLOWED("didReceiveData: Started receiving data (id = %" PRIu64 ")", downloadID().toUInt64());
m_hasReceivedData = true;
}
@@ -131,7 +131,7 @@
void Download::didFinish()
{
- RELEASE_LOG_IF_ALLOWED("didFinish: (id = %" PRIu64 ")", downloadID().downloadID());
+ RELEASE_LOG_IF_ALLOWED("didFinish: (id = %" PRIu64 ")", downloadID().toUInt64());
send(Messages::DownloadProxy::DidFinish());
@@ -146,7 +146,7 @@
void Download::didFail(const ResourceError& error, const IPC::DataReference& resumeData)
{
RELEASE_LOG_IF_ALLOWED("didFail: (id = %" PRIu64 ", isTimeout = %d, isCancellation = %d, errCode = %d)",
- downloadID().downloadID(), error.isTimeout(), error.isCancellation(), error.errorCode());
+ downloadID().toUInt64(), error.isTimeout(), error.isCancellation(), error.errorCode());
send(Messages::DownloadProxy::DidFail(error, resumeData));
@@ -159,7 +159,7 @@
void Download::didCancel(const IPC::DataReference& resumeData)
{
- RELEASE_LOG_IF_ALLOWED("didCancel: (id = %" PRIu64 ")", downloadID().downloadID());
+ RELEASE_LOG_IF_ALLOWED("didCancel: (id = %" PRIu64 ")", downloadID().toUInt64());
send(Messages::DownloadProxy::DidCancel(resumeData));
@@ -177,7 +177,7 @@
uint64_t Download::messageSenderDestinationID() const
{
- return m_downloadID.downloadID();
+ return m_downloadID.toUInt64();
}
bool Download::isAlwaysOnLoggingAllowed() const
Modified: trunk/Source/WebKit/NetworkProcess/Downloads/DownloadID.h (252259 => 252260)
--- trunk/Source/WebKit/NetworkProcess/Downloads/DownloadID.h 2019-11-08 21:26:15 UTC (rev 252259)
+++ trunk/Source/WebKit/NetworkProcess/Downloads/DownloadID.h 2019-11-08 21:34:49 UTC (rev 252260)
@@ -23,74 +23,13 @@
* THE POSSIBILITY OF SUCH DAMAGE.
*/
-#ifndef DownloadID_h
-#define DownloadID_h
+#pragma once
-#include "ArgumentCoder.h"
-#include "Decoder.h"
-#include "Encoder.h"
-#include <wtf/HashTraits.h>
+#include <wtf/ObjectIdentifier.h>
namespace WebKit {
-class DownloadID {
-public:
- DownloadID()
- {
- }
+enum DownloadIdentifierType { };
+using DownloadID = ObjectIdentifier<DownloadIdentifierType>;
- explicit DownloadID(uint64_t downloadID)
- : m_downloadID(downloadID)
- {
- }
-
- bool operator==(DownloadID other) const { return m_downloadID == other.m_downloadID; }
- bool operator!=(DownloadID other) const { return m_downloadID != other.m_downloadID; }
-
- uint64_t downloadID() const { return m_downloadID; }
-private:
- uint64_t m_downloadID { 0 };
-};
-
}
-
-namespace IPC {
-
-template<> struct ArgumentCoder<WebKit::DownloadID> {
- static void encode(Encoder& encoder, const WebKit::DownloadID& downloadID)
- {
- encoder << downloadID.downloadID();
- }
- static bool decode(Decoder& decoder, WebKit::DownloadID& downloadID)
- {
- uint64_t id;
- if (!decoder.decode(id))
- return false;
-
- downloadID = WebKit::DownloadID(id);
-
- return true;
- }
-};
-
-}
-
-namespace WTF {
-
-struct DownloadIDHash {
- static unsigned hash(const WebKit::DownloadID& d) { return intHash(d.downloadID()); }
- static bool equal(const WebKit::DownloadID& a, const WebKit::DownloadID& b) { return a.downloadID() == b.downloadID(); }
- static const bool safeToCompareToEmptyOrDeleted = true;
-};
-template<> struct HashTraits<WebKit::DownloadID> : GenericHashTraits<WebKit::DownloadID> {
- static WebKit::DownloadID emptyValue() { return { }; }
-
- static void constructDeletedValue(WebKit::DownloadID& slot) { slot = WebKit::DownloadID(std::numeric_limits<uint64_t>::max()); }
- static bool isDeletedValue(const WebKit::DownloadID& slot) { return slot.downloadID() == std::numeric_limits<uint64_t>::max(); }
-};
-template<> struct DefaultHash<WebKit::DownloadID> {
- typedef DownloadIDHash Hash;
-};
-
-}
-#endif /* DownloadID_h */
Modified: trunk/Source/WebKit/NetworkProcess/Downloads/DownloadMonitor.cpp (252259 => 252260)
--- trunk/Source/WebKit/NetworkProcess/Downloads/DownloadMonitor.cpp 2019-11-08 21:26:15 UTC (rev 252259)
+++ trunk/Source/WebKit/NetworkProcess/Downloads/DownloadMonitor.cpp 2019-11-08 21:34:49 UTC (rev 252260)
@@ -93,7 +93,7 @@
void DownloadMonitor::applicationWillEnterForeground()
{
- RELEASE_LOG_IF_ALLOWED("applicationWillEnterForeground (id = %" PRIu64 ")", m_download.downloadID().downloadID());
+ RELEASE_LOG_IF_ALLOWED("applicationWillEnterForeground (id = %" PRIu64 ")", m_download.downloadID().toUInt64());
m_timer.stop();
m_interval = 0;
}
@@ -100,7 +100,7 @@
void DownloadMonitor::applicationDidEnterBackground()
{
- RELEASE_LOG_IF_ALLOWED("applicationDidEnterBackground (id = %" PRIu64 ")", m_download.downloadID().downloadID());
+ RELEASE_LOG_IF_ALLOWED("applicationDidEnterBackground (id = %" PRIu64 ")", m_download.downloadID().toUInt64());
ASSERT(!m_timer.isActive());
ASSERT(!m_interval);
m_timer.startOneShot(throughputIntervals[0].time / testSpeedMultiplier());
@@ -117,13 +117,13 @@
RELEASE_ASSERT(m_interval < WTF_ARRAY_LENGTH(throughputIntervals));
if (measuredThroughputRate() < throughputIntervals[m_interval].bytesPerSecond) {
- RELEASE_LOG_IF_ALLOWED("timerFired: cancelling download (id = %" PRIu64 ")", m_download.downloadID().downloadID());
+ RELEASE_LOG_IF_ALLOWED("timerFired: cancelling download (id = %" PRIu64 ")", m_download.downloadID().toUInt64());
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());
+ RELEASE_LOG_IF_ALLOWED("timerFired: sufficient throughput rate (id = %" PRIu64 ")", m_download.downloadID().toUInt64());
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());
+ RELEASE_LOG_IF_ALLOWED("timerFired: Download reached threshold to not be terminated (id = %" PRIu64 ")", m_download.downloadID().toUInt64());
}
} // namespace WebKit
Modified: trunk/Source/WebKit/NetworkProcess/Downloads/PendingDownload.cpp (252259 => 252260)
--- trunk/Source/WebKit/NetworkProcess/Downloads/PendingDownload.cpp 2019-11-08 21:26:15 UTC (rev 252259)
+++ trunk/Source/WebKit/NetworkProcess/Downloads/PendingDownload.cpp 2019-11-08 21:34:49 UTC (rev 252260)
@@ -110,7 +110,7 @@
uint64_t PendingDownload::messageSenderDestinationID() const
{
- return m_networkLoad->pendingDownloadID().downloadID();
+ return m_networkLoad->pendingDownloadID().toUInt64();
}
}
Modified: trunk/Source/WebKit/NetworkProcess/Downloads/PendingDownload.h (252259 => 252260)
--- trunk/Source/WebKit/NetworkProcess/Downloads/PendingDownload.h 2019-11-08 21:26:15 UTC (rev 252259)
+++ trunk/Source/WebKit/NetworkProcess/Downloads/PendingDownload.h 2019-11-08 21:34:49 UTC (rev 252260)
@@ -25,6 +25,7 @@
#pragma once
+#include "DownloadID.h"
#include "MessageSender.h"
#include "NetworkLoadClient.h"
#include "SandboxExtension.h"
@@ -41,7 +42,6 @@
namespace WebKit {
class Download;
-class DownloadID;
class NetworkLoad;
class NetworkLoadParameters;
class NetworkSession;
Modified: trunk/Source/WebKit/NetworkProcess/NetworkDataTask.h (252259 => 252260)
--- trunk/Source/WebKit/NetworkProcess/NetworkDataTask.h 2019-11-08 21:26:15 UTC (rev 252259)
+++ trunk/Source/WebKit/NetworkProcess/NetworkDataTask.h 2019-11-08 21:34:49 UTC (rev 252260)
@@ -108,8 +108,8 @@
PendingDownload* pendingDownload() const { return m_pendingDownload; }
void setPendingDownloadID(DownloadID downloadID)
{
- ASSERT(!m_pendingDownloadID.downloadID());
- ASSERT(downloadID.downloadID());
+ ASSERT(!m_pendingDownloadID);
+ ASSERT(downloadID);
m_pendingDownloadID = downloadID;
}
void setPendingDownload(PendingDownload& pendingDownload)
@@ -120,7 +120,7 @@
virtual void setPendingDownloadLocation(const String& filename, SandboxExtension::Handle&&, bool /*allowOverwrite*/) { m_pendingDownloadLocation = filename; }
const String& pendingDownloadLocation() const { return m_pendingDownloadLocation; }
- bool isDownload() const { return !!m_pendingDownloadID.downloadID(); }
+ bool isDownload() const { return !!m_pendingDownloadID; }
const WebCore::ResourceRequest& firstRequest() const { return m_firstRequest; }
virtual String suggestedFilename() const { return String(); }
Modified: trunk/Source/WebKit/NetworkProcess/NetworkProcess.cpp (252259 => 252260)
--- trunk/Source/WebKit/NetworkProcess/NetworkProcess.cpp 2019-11-08 21:26:15 UTC (rev 252259)
+++ trunk/Source/WebKit/NetworkProcess/NetworkProcess.cpp 2019-11-08 21:34:49 UTC (rev 252260)
@@ -1967,12 +1967,12 @@
void NetworkProcess::pendingDownloadCanceled(DownloadID downloadID)
{
- downloadProxyConnection()->send(Messages::DownloadProxy::DidCancel({ }), downloadID.downloadID());
+ downloadProxyConnection()->send(Messages::DownloadProxy::DidCancel({ }), downloadID);
}
void NetworkProcess::findPendingDownloadLocation(NetworkDataTask& networkDataTask, ResponseCompletionHandler&& completionHandler, const ResourceResponse& response)
{
- uint64_t destinationID = networkDataTask.pendingDownloadID().downloadID();
+ auto destinationID = networkDataTask.pendingDownloadID();
downloadProxyConnection()->send(Messages::DownloadProxy::DidReceiveResponse(response), destinationID);
downloadManager().willDecidePendingDownloadDestination(networkDataTask, WTFMove(completionHandler));
Modified: trunk/Source/WebKit/NetworkProcess/NetworkProcess.h (252259 => 252260)
--- trunk/Source/WebKit/NetworkProcess/NetworkProcess.h 2019-11-08 21:26:15 UTC (rev 252259)
+++ trunk/Source/WebKit/NetworkProcess/NetworkProcess.h 2019-11-08 21:34:49 UTC (rev 252260)
@@ -27,6 +27,7 @@
#include "AuxiliaryProcess.h"
#include "CacheModel.h"
+#include "DownloadID.h"
#include "DownloadManager.h"
#include "LocalStorageDatabaseTracker.h"
#include "NetworkContentRuleListManager.h"
@@ -75,7 +76,6 @@
namespace WebCore {
class CertificateInfo;
class CurlProxySettings;
-class DownloadID;
class ProtectionSpace;
class StorageQuotaManager;
class NetworkStorageSession;
Modified: trunk/Source/WebKit/NetworkProcess/NetworkResourceLoader.cpp (252259 => 252260)
--- trunk/Source/WebKit/NetworkProcess/NetworkResourceLoader.cpp 2019-11-08 21:26:15 UTC (rev 252259)
+++ trunk/Source/WebKit/NetworkProcess/NetworkResourceLoader.cpp 2019-11-08 21:34:49 UTC (rev 252260)
@@ -356,7 +356,7 @@
void NetworkResourceLoader::convertToDownload(DownloadID downloadID, const ResourceRequest& request, const ResourceResponse& response)
{
- RELEASE_LOG(Loading, "Converting NetworkResourceLoader %p to download %" PRIu64 " (pageID = %" PRIu64 ", frameID = %" PRIu64 ", resourceID = %" PRIu64 ")", this, downloadID.downloadID(), m_parameters.webPageID.toUInt64(), m_parameters.webFrameID.toUInt64(), m_parameters.identifier);
+ RELEASE_LOG(Loading, "Converting NetworkResourceLoader %p to download %" PRIu64 " (pageID = %" PRIu64 ", frameID = %" PRIu64 ", resourceID = %" PRIu64 ")", this, downloadID.toUInt64(), m_parameters.webPageID.toUInt64(), m_parameters.webFrameID.toUInt64(), m_parameters.identifier);
// This can happen if the resource came from the disk cache.
if (!m_networkLoad) {
Modified: trunk/Source/WebKit/NetworkProcess/WebSocketTask.h (252259 => 252260)
--- trunk/Source/WebKit/NetworkProcess/WebSocketTask.h 2019-11-08 21:26:15 UTC (rev 252259)
+++ trunk/Source/WebKit/NetworkProcess/WebSocketTask.h 2019-11-08 21:34:49 UTC (rev 252260)
@@ -31,6 +31,10 @@
#include "WebSocketTaskSoup.h"
#else
+namespace IPC {
+class DataReference;
+}
+
namespace WebKit {
class WebSocketTask {
Modified: trunk/Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.mm (252259 => 252260)
--- trunk/Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.mm 2019-11-08 21:26:15 UTC (rev 252259)
+++ trunk/Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.mm 2019-11-08 21:34:49 UTC (rev 252260)
@@ -687,7 +687,7 @@
if (!_sessionWrapper)
return;
auto downloadID = _sessionWrapper->downloadMap.take(task.taskIdentifier);
- if (!downloadID.downloadID())
+ if (!downloadID)
return;
if (!_session)
return;
@@ -850,7 +850,7 @@
if (!_sessionWrapper)
return;
auto downloadID = _sessionWrapper->downloadMap.take([downloadTask taskIdentifier]);
- if (!downloadID.downloadID())
+ if (!downloadID)
return;
if (!_session)
return;
@@ -867,7 +867,7 @@
if (!_sessionWrapper)
return;
auto downloadID = _sessionWrapper->downloadMap.get([downloadTask taskIdentifier]);
- if (!downloadID.downloadID())
+ if (!downloadID)
return;
if (!_session)
return;
@@ -1305,7 +1305,7 @@
}
#endif
auto downloadID = sessionWrapper.downloadMap.get(taskIdentifier);
- if (downloadID.downloadID()) {
+ if (downloadID) {
if (auto* download = networkProcess().downloadManager().download(downloadID)) {
WebCore::AuthenticationChallenge authenticationChallenge { challenge };
// Received an authentication challenge for a download being resumed.
Modified: trunk/Source/WebKit/Scripts/webkit/messages.py (252259 => 252260)
--- trunk/Source/WebKit/Scripts/webkit/messages.py 2019-11-08 21:26:15 UTC (rev 252259)
+++ trunk/Source/WebKit/Scripts/webkit/messages.py 2019-11-08 21:34:49 UTC (rev 252260)
@@ -217,6 +217,7 @@
'WebCore::ServiceWorkerRegistrationIdentifier',
'WebCore::SWServerConnectionIdentifier',
'WebKit::ActivityStateChangeID',
+ 'WebKit::DownloadID',
'WebKit::LayerHostingContextID',
'WebKit::TransactionID',
'WebKit::StorageAreaIdentifier',
Modified: trunk/Source/WebKit/Shared/Authentication/AuthenticationManager.h (252259 => 252260)
--- trunk/Source/WebKit/Shared/Authentication/AuthenticationManager.h 2019-11-08 21:26:15 UTC (rev 252259)
+++ trunk/Source/WebKit/Shared/Authentication/AuthenticationManager.h 2019-11-08 21:34:49 UTC (rev 252260)
@@ -25,6 +25,7 @@
#pragma once
+#include "DownloadID.h"
#include "MessageReceiver.h"
#include "NetworkProcessSupplement.h"
#include "WebPageProxyIdentifier.h"
@@ -53,8 +54,6 @@
namespace WebKit {
-class Download;
-class DownloadID;
class NetworkProcess;
class WebFrame;
Modified: trunk/Source/WebKit/UIProcess/API/C/WKDownload.cpp (252259 => 252260)
--- trunk/Source/WebKit/UIProcess/API/C/WKDownload.cpp 2019-11-08 21:26:15 UTC (rev 252259)
+++ trunk/Source/WebKit/UIProcess/API/C/WKDownload.cpp 2019-11-08 21:34:49 UTC (rev 252260)
@@ -40,9 +40,9 @@
return toAPI(DownloadProxy::APIType);
}
-uint64_t WKDownloadGetID(WKDownloadRef download)
+uint64_t WKDownloadGetID(WKDownloadRef)
{
- return toImpl(download)->downloadID().downloadID();
+ return 0;
}
WKURLRequestRef WKDownloadCopyRequest(WKDownloadRef download)
Modified: trunk/Source/WebKit/UIProcess/API/C/WKDownload.h (252259 => 252260)
--- trunk/Source/WebKit/UIProcess/API/C/WKDownload.h 2019-11-08 21:26:15 UTC (rev 252259)
+++ trunk/Source/WebKit/UIProcess/API/C/WKDownload.h 2019-11-08 21:34:49 UTC (rev 252260)
@@ -27,6 +27,7 @@
#define WKDownload_h
#include <WebKit/WKBase.h>
+#include <WebKit/WKDeprecated.h>
#ifndef __cplusplus
#include <stdbool.h>
@@ -38,7 +39,7 @@
WK_EXPORT WKTypeID WKDownloadGetTypeID();
-WK_EXPORT uint64_t WKDownloadGetID(WKDownloadRef download);
+WK_EXPORT uint64_t WKDownloadGetID(WKDownloadRef download) WK_C_API_DEPRECATED;
WK_EXPORT WKURLRequestRef WKDownloadCopyRequest(WKDownloadRef download);
WK_EXPORT WKDataRef WKDownloadGetResumeData(WKDownloadRef download);
WK_EXPORT void WKDownloadCancel(WKDownloadRef download);
Modified: trunk/Source/WebKit/UIProcess/Downloads/DownloadProxy.cpp (252259 => 252260)
--- trunk/Source/WebKit/UIProcess/Downloads/DownloadProxy.cpp 2019-11-08 21:26:15 UTC (rev 252259)
+++ trunk/Source/WebKit/UIProcess/Downloads/DownloadProxy.cpp 2019-11-08 21:34:49 UTC (rev 252260)
@@ -44,12 +44,6 @@
namespace WebKit {
using namespace WebCore;
-
-static uint64_t generateDownloadID()
-{
- static uint64_t uniqueDownloadID = 0;
- return ++uniqueDownloadID;
-}
Ref<DownloadProxy> DownloadProxy::create(DownloadProxyMap& downloadProxyMap, WebsiteDataStore& dataStore, WebProcessPool& processPool, const ResourceRequest& resourceRequest)
{
@@ -60,7 +54,7 @@
: m_downloadProxyMap(downloadProxyMap)
, m_dataStore(&dataStore)
, m_processPool(&processPool)
- , m_downloadID(generateDownloadID())
+ , m_downloadID(DownloadID::generate())
, m_request(resourceRequest)
{
}
Modified: trunk/Source/WebKit/UIProcess/Downloads/DownloadProxy.h (252259 => 252260)
--- trunk/Source/WebKit/UIProcess/Downloads/DownloadProxy.h 2019-11-08 21:26:15 UTC (rev 252259)
+++ trunk/Source/WebKit/UIProcess/Downloads/DownloadProxy.h 2019-11-08 21:34:49 UTC (rev 252260)
@@ -48,7 +48,6 @@
namespace WebKit {
-class DownloadID;
class DownloadProxyMap;
class WebPageProxy;
class WebProcessPool;
Modified: trunk/Source/WebKit/UIProcess/Downloads/DownloadProxyMap.cpp (252259 => 252260)
--- trunk/Source/WebKit/UIProcess/Downloads/DownloadProxyMap.cpp 2019-11-08 21:26:15 UTC (rev 252259)
+++ trunk/Source/WebKit/UIProcess/Downloads/DownloadProxyMap.cpp 2019-11-08 21:34:49 UTC (rev 252260)
@@ -85,7 +85,7 @@
auto downloadProxy = DownloadProxy::create(*this, dataStore, processPool, resourceRequest);
m_downloads.set(downloadProxy->downloadID(), downloadProxy.copyRef());
- RELEASE_LOG(Loading, "Adding download %" PRIu64 " to UIProcess DownloadProxyMap", downloadProxy->downloadID().downloadID());
+ RELEASE_LOG(Loading, "Adding download %" PRIu64 " to UIProcess DownloadProxyMap", downloadProxy->downloadID().toUInt64());
if (m_downloads.size() == 1 && m_shouldTakeAssertion) {
ASSERT(!m_downloadUIAssertion);
@@ -98,7 +98,7 @@
RELEASE_LOG(ProcessSuspension, "UIProcess took 'WebKit downloads' assertions for UIProcess and NetworkProcess");
}
- m_process->addMessageReceiver(Messages::DownloadProxy::messageReceiverName(), downloadProxy->downloadID().downloadID(), downloadProxy.get());
+ m_process->addMessageReceiver(Messages::DownloadProxy::messageReceiverName(), downloadProxy->downloadID().toUInt64(), downloadProxy.get());
return downloadProxy;
}
@@ -107,7 +107,7 @@
{
auto downloadID = downloadProxy.downloadID();
- RELEASE_LOG(Loading, "Removing download %" PRIu64 " from UIProcess DownloadProxyMap", downloadID.downloadID());
+ RELEASE_LOG(Loading, "Removing download %" PRIu64 " from UIProcess DownloadProxyMap", downloadID.toUInt64());
// The DownloadProxy may be holding the last reference to the process pool.
auto protectedProcessPool = makeRefPtr(m_process->processPool());
@@ -114,7 +114,7 @@
ASSERT(m_downloads.contains(downloadID));
- m_process->removeMessageReceiver(Messages::DownloadProxy::messageReceiverName(), downloadID.downloadID());
+ m_process->removeMessageReceiver(Messages::DownloadProxy::messageReceiverName(), downloadID.toUInt64());
downloadProxy.invalidate();
m_downloads.remove(downloadID);
@@ -133,7 +133,7 @@
for (const auto& download : m_downloads.values()) {
download->processDidClose();
download->invalidate();
- m_process->removeMessageReceiver(Messages::DownloadProxy::messageReceiverName(), download->downloadID().downloadID());
+ m_process->removeMessageReceiver(Messages::DownloadProxy::messageReceiverName(), download->downloadID().toUInt64());
}
m_downloads.clear();
Modified: trunk/Source/WebKit/WebProcess/WebPage/WebFrame.cpp (252259 => 252260)
--- trunk/Source/WebKit/WebProcess/WebPage/WebFrame.cpp 2019-11-08 21:26:15 UTC (rev 252259)
+++ trunk/Source/WebKit/WebProcess/WebPage/WebFrame.cpp 2019-11-08 21:34:49 UTC (rev 252260)
@@ -279,7 +279,7 @@
void WebFrame::startDownload(const WebCore::ResourceRequest& request, const String& suggestedName)
{
- ASSERT(m_policyDownloadID.downloadID());
+ ASSERT(m_policyDownloadID);
auto policyDownloadID = m_policyDownloadID;
m_policyDownloadID = { };
@@ -289,7 +289,7 @@
void WebFrame::convertMainResourceLoadToDownload(DocumentLoader* documentLoader, const ResourceRequest& request, const ResourceResponse& response)
{
- ASSERT(m_policyDownloadID.downloadID());
+ ASSERT(m_policyDownloadID);
auto policyDownloadID = m_policyDownloadID;
m_policyDownloadID = { };
Modified: trunk/Source/WebKit/WebProcess/WebPage/WebFrame.h (252259 => 252260)
--- trunk/Source/WebKit/WebProcess/WebPage/WebFrame.h 2019-11-08 21:26:15 UTC (rev 252259)
+++ trunk/Source/WebKit/WebProcess/WebPage/WebFrame.h 2019-11-08 21:34:49 UTC (rev 252260)
@@ -181,7 +181,7 @@
WebCore::FramePolicyFunction m_policyFunction;
ForNavigationAction m_policyFunctionForNavigationAction { ForNavigationAction::No };
HashMap<uint64_t, CompletionHandler<void()>> m_willSubmitFormCompletionHandlers;
- DownloadID m_policyDownloadID { 0 };
+ DownloadID m_policyDownloadID;
std::unique_ptr<WebFrameLoaderClient> m_frameLoaderClient;
LoadListener* m_loadListener { nullptr };
Modified: trunk/Source/WebKit/WebProcess/WebPage/WebPage.h (252259 => 252260)
--- trunk/Source/WebKit/WebProcess/WebPage/WebPage.h 2019-11-08 21:26:15 UTC (rev 252259)
+++ trunk/Source/WebKit/WebProcess/WebPage/WebPage.h 2019-11-08 21:34:49 UTC (rev 252260)
@@ -33,6 +33,7 @@
#include "APIInjectedBundlePageUIClient.h"
#include "APIObject.h"
#include "CallbackID.h"
+#include "DownloadID.h"
#include "DrawingAreaInfo.h"
#include "EditingRange.h"
#include "FocusedElementInformation.h"
@@ -209,7 +210,6 @@
class DataReference;
class DrawingArea;
-class DownloadID;
class FindController;
class GamepadData;
class GeolocationPermissionRequestManager;