summaryrefslogtreecommitdiffstats
path: root/src/core/renderer
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@theqtcompany.com>2016-03-01 10:55:34 +0100
committerAllan Sandfeld Jensen <allan.jensen@theqtcompany.com>2016-03-07 17:08:36 +0000
commitf7d343000d77c80f34a115fe9c78f101929292b1 (patch)
treedcc6d7d5513e6883e069d9dac965854194fb6a53 /src/core/renderer
parent29b4aa9dda40ac3761c856093bf8e27f7e4b2d15 (diff)
Register qrc as secure after blink initialization
We need blink to be initialized before we can rely on scheme registering to work. This should fix race-conditions of qrc as secure registrations. Change-Id: Icd4334a6ff74671bec2ccc506336d0e073d9ca39 Reviewed-by: Michael BrĂ¼ning <michael.bruning@theqtcompany.com>
Diffstat (limited to 'src/core/renderer')
-rw-r--r--src/core/renderer/content_renderer_client_qt.cpp14
-rw-r--r--src/core/renderer/content_renderer_client_qt.h5
2 files changed, 17 insertions, 2 deletions
diff --git a/src/core/renderer/content_renderer_client_qt.cpp b/src/core/renderer/content_renderer_client_qt.cpp
index 3d235ff0b..04b5e2c22 100644
--- a/src/core/renderer/content_renderer_client_qt.cpp
+++ b/src/core/renderer/content_renderer_client_qt.cpp
@@ -85,6 +85,16 @@ namespace QtWebEngineCore {
static const char kHttpErrorDomain[] = "http";
static const char kQrcSchemeQt[] = "qrc";
+class RenderProcessObserverQt : public content::RenderProcessObserver {
+public:
+ void WebKitInitialized() override
+ {
+ // mark qrc as a secure scheme (avoids deprecation warnings)
+ // Can only be done after blink is initialized.
+ blink::WebSecurityPolicy::registerURLSchemeAsSecure(blink::WebString::fromLatin1(kQrcSchemeQt));
+ }
+};
+
ContentRendererClientQt::ContentRendererClientQt()
{
}
@@ -98,12 +108,12 @@ void ContentRendererClientQt::RenderThreadStarted()
content::RenderThread *renderThread = content::RenderThread::Get();
m_visitedLinkSlave.reset(new visitedlink::VisitedLinkSlave);
m_webCacheObserver.reset(new web_cache::WebCacheRenderProcessObserver());
+ m_renderProcessObserver.reset(new RenderProcessObserverQt());
renderThread->AddObserver(m_visitedLinkSlave.data());
renderThread->AddObserver(m_webCacheObserver.data());
renderThread->AddObserver(UserResourceController::instance());
+ renderThread->AddObserver(m_renderProcessObserver.data());
- // mark qrc as a secure scheme (avoids deprecation warnings)
- blink::WebSecurityPolicy::registerURLSchemeAsSecure(blink::WebString::fromLatin1(kQrcSchemeQt));
#if defined(ENABLE_SPELLCHECK)
m_spellCheck.reset(new SpellCheck());
renderThread->AddObserver(m_spellCheck.data());
diff --git a/src/core/renderer/content_renderer_client_qt.h b/src/core/renderer/content_renderer_client_qt.h
index c80395140..53be90c97 100644
--- a/src/core/renderer/content_renderer_client_qt.h
+++ b/src/core/renderer/content_renderer_client_qt.h
@@ -44,6 +44,10 @@
#include <QtGlobal>
#include <QScopedPointer>
+namespace content {
+class RenderProcessObserver;
+}
+
namespace visitedlink {
class VisitedLinkSlave;
}
@@ -75,6 +79,7 @@ public:
private:
QScopedPointer<visitedlink::VisitedLinkSlave> m_visitedLinkSlave;
QScopedPointer<web_cache::WebCacheRenderProcessObserver> m_webCacheObserver;
+ QScopedPointer<content::RenderProcessObserver> m_renderProcessObserver;
#if defined(ENABLE_SPELLCHECK)
QScopedPointer<SpellCheck> m_spellCheck;
#endif