summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/core/renderer/content_renderer_client_qt.cpp18
-rw-r--r--src/core/renderer/content_renderer_client_qt.h5
2 files changed, 20 insertions, 3 deletions
diff --git a/src/core/renderer/content_renderer_client_qt.cpp b/src/core/renderer/content_renderer_client_qt.cpp
index 261b9c581..e53076525 100644
--- a/src/core/renderer/content_renderer_client_qt.cpp
+++ b/src/core/renderer/content_renderer_client_qt.cpp
@@ -65,6 +65,19 @@ namespace QtWebEngineCore {
static const char kHttpErrorDomain[] = "http";
static const char kQrcSchemeQt[] = "qrc";
+class RenderProcessObserverQt : public content::RenderProcessObserver {
+public:
+ void WebKitInitialized() override
+ {
+ // Can only be done after blink is initialized.
+ blink::WebString qrcScheme(base::ASCIIToUTF16(kQrcSchemeQt));
+ // mark qrc as a secure scheme (avoids deprecation warnings)
+ blink::WebSecurityPolicy::registerURLSchemeAsSecure(qrcScheme);
+ // mark qrc as a local scheme (allows local access to qrc)
+ blink::WebSecurityPolicy::registerURLSchemeAsLocal(qrcScheme);
+ }
+};
+
ContentRendererClientQt::ContentRendererClientQt()
{
}
@@ -79,12 +92,11 @@ void ContentRendererClientQt::RenderThreadStarted()
renderThread->RegisterExtension(WebChannelIPCTransport::getV8Extension());
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(UserScriptController::instance());
-
- // mark qrc as a secure scheme (avoids deprecation warnings)
- blink::WebSecurityPolicy::registerURLSchemeAsSecure(blink::WebString::fromLatin1(kQrcSchemeQt));
+ renderThread->AddObserver(m_renderProcessObserver.data());
}
void ContentRendererClientQt::RenderViewCreated(content::RenderView* render_view)
diff --git a/src/core/renderer/content_renderer_client_qt.h b/src/core/renderer/content_renderer_client_qt.h
index eb55156ad..7df824e3e 100644
--- a/src/core/renderer/content_renderer_client_qt.h
+++ b/src/core/renderer/content_renderer_client_qt.h
@@ -41,6 +41,10 @@
#include <QtGlobal>
#include <QScopedPointer>
+namespace content {
+class RenderProcessObserver;
+}
+
namespace visitedlink {
class VisitedLinkSlave;
}
@@ -69,6 +73,7 @@ public:
private:
QScopedPointer<visitedlink::VisitedLinkSlave> m_visitedLinkSlave;
QScopedPointer<web_cache::WebCacheRenderProcessObserver> m_webCacheObserver;
+ QScopedPointer<content::RenderProcessObserver> m_renderProcessObserver;
};
} // namespace