diff options
author | Allan Sandfeld Jensen <allan.jensen@theqtcompany.com> | 2015-02-20 11:59:02 +0100 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@theqtcompany.com> | 2015-02-20 14:16:22 +0000 |
commit | 61dec11a8bc36d37ed36acc6ad897653735d4564 (patch) | |
tree | 2de013b04c38fd6734f744182d1e40b13521516d /src/webenginewidgets/api/qwebengineurlschemehandler.cpp | |
parent | d2b9c003f87e34ca599d3264a9af371e435ad0f8 (diff) |
Fix crashes and ownership issues in Custom URL scheme handling
Fixes crashes exposed by implementing the qthelp protocol handler for
Qt assistant.
Change-Id: I0b1153bc52ff82838cde009f1fe1ac46edc43210
Reviewed-by: Andras Becsi <andras.becsi@theqtcompany.com>
Diffstat (limited to 'src/webenginewidgets/api/qwebengineurlschemehandler.cpp')
-rw-r--r-- | src/webenginewidgets/api/qwebengineurlschemehandler.cpp | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/src/webenginewidgets/api/qwebengineurlschemehandler.cpp b/src/webenginewidgets/api/qwebengineurlschemehandler.cpp index b52912b7c..ccb92258b 100644 --- a/src/webenginewidgets/api/qwebengineurlschemehandler.cpp +++ b/src/webenginewidgets/api/qwebengineurlschemehandler.cpp @@ -41,8 +41,6 @@ #include "qwebengineprofile_p.h" #include "qwebengineurlrequestjob_p.h" -#include <QSharedPointer> - QT_BEGIN_NAMESPACE QWebEngineUrlSchemeHandlerPrivate::QWebEngineUrlSchemeHandlerPrivate(const QByteArray &scheme, QWebEngineUrlSchemeHandler *q, QWebEngineProfile *profile) @@ -63,8 +61,8 @@ bool QWebEngineUrlSchemeHandlerPrivate::handleJob(URLRequestCustomJobDelegate *j return true; } -QWebEngineUrlSchemeHandler::QWebEngineUrlSchemeHandler(const QByteArray &scheme, QWebEngineProfile *profile) - : QObject(profile) +QWebEngineUrlSchemeHandler::QWebEngineUrlSchemeHandler(const QByteArray &scheme, QWebEngineProfile *profile, QObject *parent) + : QObject(parent) , d_ptr(new QWebEngineUrlSchemeHandlerPrivate(scheme, this, profile)) { profile->d_func()->installUrlSchemeHandler(this); @@ -72,7 +70,8 @@ QWebEngineUrlSchemeHandler::QWebEngineUrlSchemeHandler(const QByteArray &scheme, QWebEngineUrlSchemeHandler::~QWebEngineUrlSchemeHandler() { - d_ptr->m_profile->d_func()->removeUrlSchemeHandler(this); + if (d_ptr->m_profile) + d_ptr->m_profile->d_func()->removeUrlSchemeHandler(this); } QByteArray QWebEngineUrlSchemeHandler::scheme() const |