diff options
author | Michal Klocek <michal.klocek@theqtcompany.com> | 2016-06-21 16:01:03 +0200 |
---|---|---|
committer | Michal Klocek <michal.klocek@theqtcompany.com> | 2016-06-23 14:17:02 +0000 |
commit | 964963f76acbcc6df8f021b5b36dbc5e726027b6 (patch) | |
tree | 42fc67dd2da710205e8a31b2867c6d1e15562f10 /src/webengine/api/qquickwebengineview.cpp | |
parent | 99d3c34167e2ba8c0c505554cdcd4fca20d5223e (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.cpp | 3 |
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(); |