diff options
author | David Faure <david.faure@kdab.com> | 2017-03-12 22:59:59 +0100 |
---|---|---|
committer | David Faure <david.faure@kdab.com> | 2017-12-20 16:02:53 +0000 |
commit | 17ecc4e7e0c88d891e1b18d5810a7ac2fd0b83ba (patch) | |
tree | a706510ec58bb52c9199eb7363af042b6daf5219 /tests | |
parent | 5b160be90599d13707610f253f541ff0c97c08e3 (diff) |
Doc: QWebEngineUrlRequestJob: mention when to delete the device
It's used from another thread, so it shouldn't be deleted immediately,
and it's not deleted by the QtWebEngine code, so tell people to do it
themselves at the right time.
Change-Id: I54786be320f5fe82f144e7b1c2e6137260d9ceab
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/auto/widgets/qwebengineprofile/tst_qwebengineprofile.cpp | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/tests/auto/widgets/qwebengineprofile/tst_qwebengineprofile.cpp b/tests/auto/widgets/qwebengineprofile/tst_qwebengineprofile.cpp index 093bc2e43..639a8456f 100644 --- a/tests/auto/widgets/qwebengineprofile/tst_qwebengineprofile.cpp +++ b/tests/auto/widgets/qwebengineprofile/tst_qwebengineprofile.cpp @@ -162,20 +162,25 @@ public: class ReplyingUrlSchemeHandler : public QWebEngineUrlSchemeHandler { - QBuffer m_buffer; - QByteArray m_bufferData; public: ReplyingUrlSchemeHandler(QObject *parent = nullptr) : QWebEngineUrlSchemeHandler(parent) { - m_buffer.setBuffer(&m_bufferData); + } + ~ReplyingUrlSchemeHandler() + { } void requestStarted(QWebEngineUrlRequestJob *job) { - m_bufferData = job->requestUrl().toString().toUtf8(); - job->reply("text/plain;charset=utf-8", &m_buffer); + QBuffer *buffer = new QBuffer; + buffer->setData(job->requestUrl().toString().toUtf8()); + connect(buffer, &QIODevice::aboutToClose, buffer, &QObject::deleteLater); + m_buffers.append(buffer); + job->reply("text/plain;charset=utf-8", buffer); } + + QList<QPointer<QBuffer>> m_buffers; }; static bool loadSync(QWebEngineView *view, const QUrl &url, int timeout = 5000) @@ -234,6 +239,11 @@ void tst_QWebEngineProfile::urlSchemeHandlers() url = QUrl(QStringLiteral("aviancarrier:inspector.mortensen@politistyrke.dk")); QVERIFY(loadSync(&view, url)); QCOMPARE(toPlainTextSync(view.page()), url.toString()); + + // Check that all buffers got deleted + QCOMPARE(gopherHandler.m_buffers.count(), 2); + for (int i = 0; i < gopherHandler.m_buffers.count(); ++i) + QVERIFY(gopherHandler.m_buffers.at(i).isNull()); } class FailingUrlSchemeHandler : public QWebEngineUrlSchemeHandler |