summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/core/web_contents_adapter.cpp8
-rw-r--r--src/webengine/api/qquickwebengineview.cpp13
2 files changed, 12 insertions, 9 deletions
diff --git a/src/core/web_contents_adapter.cpp b/src/core/web_contents_adapter.cpp
index 95bdaba53..900abac44 100644
--- a/src/core/web_contents_adapter.cpp
+++ b/src/core/web_contents_adapter.cpp
@@ -408,6 +408,10 @@ WebContentsAdapter::WebContentsAdapter(content::WebContents *webContents)
WebContentsAdapter::~WebContentsAdapter()
{
+ Q_D(WebContentsAdapter);
+ if (d->devToolsFrontend)
+ closeDevToolsFrontend();
+ Q_ASSERT(!d->devToolsFrontend);
}
void WebContentsAdapter::setClient(WebContentsAdapterClient *adapterClient)
@@ -1168,7 +1172,7 @@ void WebContentsAdapter::openDevToolsFrontend(QSharedPointer<WebContentsAdapter>
{
Q_D(WebContentsAdapter);
Q_ASSERT(isInitialized());
- if (d->devToolsFrontend &&
+ if (d->devToolsFrontend && frontendAdapter->webContents() &&
d->devToolsFrontend->frontendDelegate() == frontendAdapter->webContents()->GetDelegate())
return;
@@ -1183,7 +1187,6 @@ void WebContentsAdapter::openDevToolsFrontend(QSharedPointer<WebContentsAdapter>
void WebContentsAdapter::closeDevToolsFrontend()
{
Q_D(WebContentsAdapter);
- CHECK_INITIALIZED();
if (d->devToolsFrontend) {
d->devToolsFrontend->DisconnectFromTarget();
d->devToolsFrontend->Close();
@@ -1193,7 +1196,6 @@ void WebContentsAdapter::closeDevToolsFrontend()
void WebContentsAdapter::devToolsFrontendDestroyed(DevToolsFrontendQt *frontend)
{
Q_D(WebContentsAdapter);
- Q_ASSERT(isInitialized());
Q_ASSERT(frontend == d->devToolsFrontend);
Q_UNUSED(frontend);
d->devToolsFrontend = nullptr;
diff --git a/src/webengine/api/qquickwebengineview.cpp b/src/webengine/api/qquickwebengineview.cpp
index 8d5a30016..334def6c4 100644
--- a/src/webengine/api/qquickwebengineview.cpp
+++ b/src/webengine/api/qquickwebengineview.cpp
@@ -755,10 +755,9 @@ void QQuickWebEngineViewPrivate::initializationFinished()
adapter->setWebChannel(m_webChannel, m_webChannelWorld);
if (!qFuzzyCompare(adapter->currentZoomFactor(), m_defaultZoomFactor))
q->setZoomFactor(m_defaultZoomFactor);
+
if (devToolsView && devToolsView->d_ptr->adapter)
adapter->openDevToolsFrontend(devToolsView->d_ptr->adapter);
- else if (inspectedView && inspectedView->d_ptr->adapter)
- inspectedView->d_ptr->adapter->openDevToolsFrontend(adapter);
Q_FOREACH (QQuickWebEngineScript *script, m_userScripts)
script->d_func()->bind(browserContextAdapter()->userResourceController(), adapter.data());
@@ -1270,10 +1269,12 @@ void QQuickWebEngineView::setDevToolsView(QQuickWebEngineView *devToolsView)
d->devToolsView = devToolsView;
if (devToolsView)
devToolsView->setInspectedView(this);
- if (devToolsView)
- d->adapter->openDevToolsFrontend(devToolsView->d_ptr->adapter);
- else
- d->adapter->closeDevToolsFrontend();
+ if (d->adapter->isInitialized()) {
+ if (devToolsView)
+ d->adapter->openDevToolsFrontend(devToolsView->d_ptr->adapter);
+ else
+ d->adapter->closeDevToolsFrontend();
+ }
Q_EMIT devToolsViewChanged();
}