diff options
author | Michal Klocek <michal.klocek@qt.io> | 2020-10-07 13:05:00 +0200 |
---|---|---|
committer | Michal Klocek <michal.klocek@qt.io> | 2020-12-11 20:50:36 +0100 |
commit | 1fe372cdbdf6a6960e46c7555a9698c6b5d7e758 (patch) | |
tree | b03634cb1c41ea4a88ba8cbe0beb30dc1068ff3e /src/core/renderer/content_renderer_client_qt.cpp | |
parent | f6c4b79a31056aa83175b9ea073088063277ff6d (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.cpp | 9 |
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); |