summaryrefslogtreecommitdiffstats
path: root/src/webengine/api/qquickwebengineview.cpp
diff options
context:
space:
mode:
authorMichal Klocek <michal.klocek@theqtcompany.com>2016-06-21 16:01:03 +0200
committerMichal Klocek <michal.klocek@theqtcompany.com>2016-06-23 14:17:02 +0000
commit964963f76acbcc6df8f021b5b36dbc5e726027b6 (patch)
tree42fc67dd2da710205e8a31b2867c6d1e15562f10 /src/webengine/api/qquickwebengineview.cpp
parent99d3c34167e2ba8c0c505554cdcd4fca20d5223e (diff)
Fix memory leak of unhandled certificateError
If a user does not handle onCertificateError the instance of QQuickWebEngineCertificateError never gets to JavaScript land and never gets deleted. Create a strong reference before emitting the onCertificateError to guard against the memory leak. Change-Id: I49dbf89445d32291e2f52976f0f5e9deda201fcb Reviewed-by: Simon Hausmann <simon.hausmann@qt.io> Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'src/webengine/api/qquickwebengineview.cpp')
-rw-r--r--src/webengine/api/qquickwebengineview.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/webengine/api/qquickwebengineview.cpp b/src/webengine/api/qquickwebengineview.cpp
index 6b3614fc5..ddca1b670 100644
--- a/src/webengine/api/qquickwebengineview.cpp
+++ b/src/webengine/api/qquickwebengineview.cpp
@@ -351,7 +351,8 @@ void QQuickWebEngineViewPrivate::allowCertificateError(const QSharedPointer<Cert
Q_Q(QQuickWebEngineView);
QQuickWebEngineCertificateError *quickController = new QQuickWebEngineCertificateError(errorController);
- QQmlEngine::setObjectOwnership(quickController, QQmlEngine::JavaScriptOwnership);
+ // mark the object for gc by creating temporary jsvalue
+ qmlEngine(q)->newQObject(quickController);
Q_EMIT q->certificateError(quickController);
if (!quickController->deferred() && !quickController->answered())
quickController->rejectCertificate();