wasm: Abort network request on destruction of QNetworkReply
Deleting QNetworkReply is a common way to cancel pending request. Wasm implementation was not treating it properly. Task-number: QTBUG-124111 Change-Id: I46d8624e323fca0932411c575922415d9f9d7986 Reviewed-by: Piotr Wierciński <piotr.wiercinski@qt.io> (cherry picked from commit 655b98482e8339b287fb040fd25013dc1232a43d) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
This commit is contained in:
parent
5519bf0cf9
commit
d40f29353e
@ -62,7 +62,7 @@ QNetworkReplyWasmImplPrivate::QNetworkReplyWasmImplPrivate()
|
||||
, downloadBufferCurrentSize(0)
|
||||
, totalDownloadSize(0)
|
||||
, percentFinished(0)
|
||||
, m_fetch(0)
|
||||
, m_fetch(nullptr)
|
||||
{
|
||||
}
|
||||
|
||||
@ -79,6 +79,9 @@ QNetworkReplyWasmImpl::QNetworkReplyWasmImpl(QObject *parent)
|
||||
|
||||
QNetworkReplyWasmImpl::~QNetworkReplyWasmImpl()
|
||||
{
|
||||
if (isRunning())
|
||||
abort();
|
||||
close();
|
||||
}
|
||||
|
||||
QByteArray QNetworkReplyWasmImpl::methodName() const
|
||||
@ -131,6 +134,7 @@ void QNetworkReplyWasmImpl::abort()
|
||||
void QNetworkReplyWasmImplPrivate::setCanceled()
|
||||
{
|
||||
Q_Q(QNetworkReplyWasmImpl);
|
||||
if (m_fetch)
|
||||
m_fetch->userData = nullptr;
|
||||
|
||||
emitReplyError(QNetworkReply::OperationCanceledError, QStringLiteral("Operation canceled"));
|
||||
@ -489,6 +493,7 @@ void QNetworkReplyWasmImplPrivate::downloadSucceeded(emscripten_fetch_t *fetch)
|
||||
void QNetworkReplyWasmImplPrivate::setReplyFinished()
|
||||
{
|
||||
Q_Q(QNetworkReplyWasmImpl);
|
||||
state = QNetworkReplyPrivate::Finished;
|
||||
q->setFinished(true);
|
||||
emit q->readChannelFinished();
|
||||
emit q->finished();
|
||||
|
Loading…
x
Reference in New Issue
Block a user