summaryrefslogtreecommitdiffstats
path: root/src/core/renderer/content_renderer_client_qt.cpp
diff options
context:
space:
mode:
authorMichal Klocek <michal.klocek@qt.io>2020-10-07 13:05:00 +0200
committerMichal Klocek <michal.klocek@qt.io>2020-12-11 20:50:36 +0100
commit1fe372cdbdf6a6960e46c7555a9698c6b5d7e758 (patch)
treeb03634cb1c41ea4a88ba8cbe0beb30dc1068ff3e /src/core/renderer/content_renderer_client_qt.cpp
parentf6c4b79a31056aa83175b9ea073088063277ff6d (diff)
Fix crashes in user resource controller when single process
Mojo interface when running in single process was not correctly destructed, since we used user resource controller as global static object. Move user resource controller to content render client. Change-Id: I219510c9bc382545174aa5aae99ac8282a2049e6 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'src/core/renderer/content_renderer_client_qt.cpp')
-rw-r--r--src/core/renderer/content_renderer_client_qt.cpp9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/core/renderer/content_renderer_client_qt.cpp b/src/core/renderer/content_renderer_client_qt.cpp
index 9f1f5bcf3..a762c6fbb 100644
--- a/src/core/renderer/content_renderer_client_qt.cpp
+++ b/src/core/renderer/content_renderer_client_qt.cpp
@@ -134,11 +134,12 @@ void ContentRendererClientQt::RenderThreadStarted()
{
content::RenderThread *renderThread = content::RenderThread::Get();
m_renderThreadObserver.reset(new RenderThreadObserverQt());
+ m_userResourceController.reset(new UserResourceController());
m_visitedLinkReader.reset(new visitedlink::VisitedLinkReader);
m_webCacheImpl.reset(new web_cache::WebCacheImpl());
renderThread->AddObserver(m_renderThreadObserver.data());
- renderThread->AddObserver(UserResourceController::instance());
+ renderThread->AddObserver(m_userResourceController.data());
#if QT_CONFIG(webengine_spellchecker)
if (!m_spellCheck)
@@ -191,7 +192,7 @@ void ContentRendererClientQt::RenderViewCreated(content::RenderView *render_view
{
// RenderViewObservers destroy themselves with their RenderView.
new RenderViewObserverQt(render_view);
- UserResourceController::instance()->renderViewCreated(render_view);
+ m_userResourceController->renderViewCreated(render_view);
}
void ContentRendererClientQt::RenderFrameCreated(content::RenderFrame *render_frame)
@@ -203,7 +204,7 @@ void ContentRendererClientQt::RenderFrameCreated(content::RenderFrame *render_fr
new WebChannelIPCTransport(render_frame);
#endif
- UserResourceController::instance()->renderFrameCreated(render_frame);
+ m_userResourceController->renderFrameCreated(render_frame);
new QtWebEngineCore::ContentSettingsObserverQt(render_frame);
@@ -234,7 +235,7 @@ void ContentRendererClientQt::RunScriptsAtDocumentEnd(content::RenderFrame *rend
RenderFrameObserverQt *render_frame_observer = RenderFrameObserverQt::Get(render_frame);
if (render_frame_observer && !render_frame_observer->isFrameDetached())
- UserResourceController::instance()->RunScriptsAtDocumentEnd(render_frame);
+ m_userResourceController->RunScriptsAtDocumentEnd(render_frame);
#if BUILDFLAG(ENABLE_EXTENSIONS)
ExtensionsRendererClientQt::GetInstance()->RunScriptsAtDocumentEnd(render_frame);