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)
|
, downloadBufferCurrentSize(0)
|
||||||
, totalDownloadSize(0)
|
, totalDownloadSize(0)
|
||||||
, percentFinished(0)
|
, percentFinished(0)
|
||||||
, m_fetch(0)
|
, m_fetch(nullptr)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -79,6 +79,9 @@ QNetworkReplyWasmImpl::QNetworkReplyWasmImpl(QObject *parent)
|
|||||||
|
|
||||||
QNetworkReplyWasmImpl::~QNetworkReplyWasmImpl()
|
QNetworkReplyWasmImpl::~QNetworkReplyWasmImpl()
|
||||||
{
|
{
|
||||||
|
if (isRunning())
|
||||||
|
abort();
|
||||||
|
close();
|
||||||
}
|
}
|
||||||
|
|
||||||
QByteArray QNetworkReplyWasmImpl::methodName() const
|
QByteArray QNetworkReplyWasmImpl::methodName() const
|
||||||
@ -131,6 +134,7 @@ void QNetworkReplyWasmImpl::abort()
|
|||||||
void QNetworkReplyWasmImplPrivate::setCanceled()
|
void QNetworkReplyWasmImplPrivate::setCanceled()
|
||||||
{
|
{
|
||||||
Q_Q(QNetworkReplyWasmImpl);
|
Q_Q(QNetworkReplyWasmImpl);
|
||||||
|
if (m_fetch)
|
||||||
m_fetch->userData = nullptr;
|
m_fetch->userData = nullptr;
|
||||||
|
|
||||||
emitReplyError(QNetworkReply::OperationCanceledError, QStringLiteral("Operation canceled"));
|
emitReplyError(QNetworkReply::OperationCanceledError, QStringLiteral("Operation canceled"));
|
||||||
@ -489,6 +493,7 @@ void QNetworkReplyWasmImplPrivate::downloadSucceeded(emscripten_fetch_t *fetch)
|
|||||||
void QNetworkReplyWasmImplPrivate::setReplyFinished()
|
void QNetworkReplyWasmImplPrivate::setReplyFinished()
|
||||||
{
|
{
|
||||||
Q_Q(QNetworkReplyWasmImpl);
|
Q_Q(QNetworkReplyWasmImpl);
|
||||||
|
state = QNetworkReplyPrivate::Finished;
|
||||||
q->setFinished(true);
|
q->setFinished(true);
|
||||||
emit q->readChannelFinished();
|
emit q->readChannelFinished();
|
||||||
emit q->finished();
|
emit q->finished();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user