diff options
author | Allan Sandfeld Jensen <allan.jensen@theqtcompany.com> | 2015-11-20 16:01:37 +0100 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@theqtcompany.com> | 2015-11-20 16:04:42 +0100 |
commit | 1f474fcc4cd47a85ce8d99f07d18b46ef2af5898 (patch) | |
tree | d4e52b5ac98343b4c2417d622164bf320d781a59 /src/core/renderer | |
parent | 4cc28c7c89f794d469f5e8f778ff05effe8c646f (diff) | |
parent | 1173d48149a8133b607894b67e1ec32de68e21e8 (diff) |
Merge branch '5.6' into dev
Change-Id: I05fe27b8321944cf68cc96dfa9dfcaeb54c8c8cd
Diffstat (limited to 'src/core/renderer')
-rw-r--r-- | src/core/renderer/content_renderer_client_qt.cpp | 11 | ||||
-rw-r--r-- | src/core/renderer/content_renderer_client_qt.h | 5 | ||||
-rw-r--r-- | src/core/renderer/render_frame_observer_qt.cpp (renamed from src/core/renderer/qt_render_frame_observer.cpp) | 8 | ||||
-rw-r--r-- | src/core/renderer/render_frame_observer_qt.h (renamed from src/core/renderer/qt_render_frame_observer.h) | 14 | ||||
-rw-r--r-- | src/core/renderer/render_view_observer_qt.cpp (renamed from src/core/renderer/qt_render_view_observer.cpp) | 38 | ||||
-rw-r--r-- | src/core/renderer/render_view_observer_qt.h (renamed from src/core/renderer/qt_render_view_observer.h) | 20 |
6 files changed, 61 insertions, 35 deletions
diff --git a/src/core/renderer/content_renderer_client_qt.cpp b/src/core/renderer/content_renderer_client_qt.cpp index 0b8262c76..db50caad8 100644 --- a/src/core/renderer/content_renderer_client_qt.cpp +++ b/src/core/renderer/content_renderer_client_qt.cpp @@ -40,6 +40,7 @@ #include "chrome/common/localized_error.h" #include "components/error_page/common/error_page_params.h" #include "components/visitedlink/renderer/visitedlink_slave.h" +#include "components/web_cache/renderer/web_cache_render_process_observer.h" #include "content/public/renderer/render_frame.h" #include "content/public/renderer/render_thread.h" #include "content/public/renderer/render_view.h" @@ -53,8 +54,8 @@ #include "content/public/common/web_preferences.h" #include "renderer/web_channel_ipc_transport.h" -#include "renderer/qt_render_frame_observer.h" -#include "renderer/qt_render_view_observer.h" +#include "renderer/render_frame_observer_qt.h" +#include "renderer/render_view_observer_qt.h" #include "renderer/user_script_controller.h" #include "grit/renderer_resources.h" @@ -77,7 +78,9 @@ void ContentRendererClientQt::RenderThreadStarted() content::RenderThread *renderThread = content::RenderThread::Get(); renderThread->RegisterExtension(WebChannelIPCTransport::getV8Extension()); m_visitedLinkSlave.reset(new visitedlink::VisitedLinkSlave); + m_webCacheObserver.reset(new web_cache::WebCacheRenderProcessObserver()); renderThread->AddObserver(m_visitedLinkSlave.data()); + renderThread->AddObserver(m_webCacheObserver.data()); renderThread->AddObserver(UserScriptController::instance()); // mark qrc as a secure scheme (avoids deprecation warnings) @@ -87,14 +90,14 @@ void ContentRendererClientQt::RenderThreadStarted() void ContentRendererClientQt::RenderViewCreated(content::RenderView* render_view) { // RenderViewObservers destroy themselves with their RenderView. - new QtRenderViewObserver(render_view); + new RenderViewObserverQt(render_view, m_webCacheObserver.data()); new WebChannelIPCTransport(render_view); UserScriptController::instance()->renderViewCreated(render_view); } void ContentRendererClientQt::RenderFrameCreated(content::RenderFrame* render_frame) { - new QtWebEngineCore::QtRenderFrameObserver(render_frame); + new QtWebEngineCore::RenderFrameObserverQt(render_frame); } bool ContentRendererClientQt::HasErrorPage(int httpStatusCode, std::string *errorDomain) diff --git a/src/core/renderer/content_renderer_client_qt.h b/src/core/renderer/content_renderer_client_qt.h index fab88441f..eb55156ad 100644 --- a/src/core/renderer/content_renderer_client_qt.h +++ b/src/core/renderer/content_renderer_client_qt.h @@ -45,6 +45,10 @@ namespace visitedlink { class VisitedLinkSlave; } +namespace web_cache { +class WebCacheRenderProcessObserver; +} + namespace QtWebEngineCore { class ContentRendererClientQt : public content::ContentRendererClient { @@ -64,6 +68,7 @@ public: private: QScopedPointer<visitedlink::VisitedLinkSlave> m_visitedLinkSlave; + QScopedPointer<web_cache::WebCacheRenderProcessObserver> m_webCacheObserver; }; } // namespace diff --git a/src/core/renderer/qt_render_frame_observer.cpp b/src/core/renderer/render_frame_observer_qt.cpp index 5f06d1e4e..8130cc53a 100644 --- a/src/core/renderer/qt_render_frame_observer.cpp +++ b/src/core/renderer/render_frame_observer_qt.cpp @@ -34,7 +34,7 @@ ** ****************************************************************************/ -#include "qt_render_frame_observer.h" +#include "render_frame_observer_qt.h" #include "content/public/renderer/renderer_ppapi_host.h" #include "ppapi/host/ppapi_host.h" @@ -44,17 +44,17 @@ namespace QtWebEngineCore { -QtRenderFrameObserver::QtRenderFrameObserver(content::RenderFrame* render_frame) +RenderFrameObserverQt::RenderFrameObserverQt(content::RenderFrame* render_frame) : RenderFrameObserver(render_frame) { } -QtRenderFrameObserver::~QtRenderFrameObserver() +RenderFrameObserverQt::~RenderFrameObserverQt() { } #if defined(ENABLE_PLUGINS) -void QtRenderFrameObserver::DidCreatePepperPlugin(content::RendererPpapiHost* host) +void RenderFrameObserverQt::DidCreatePepperPlugin(content::RendererPpapiHost* host) { host->GetPpapiHost()->AddHostFactoryFilter( scoped_ptr<ppapi::host::HostFactory>( diff --git a/src/core/renderer/qt_render_frame_observer.h b/src/core/renderer/render_frame_observer_qt.h index 42f2b7464..4835e442e 100644 --- a/src/core/renderer/qt_render_frame_observer.h +++ b/src/core/renderer/render_frame_observer_qt.h @@ -34,8 +34,8 @@ ** ****************************************************************************/ -#ifndef QT_RENDER_FRAME_OBSERVER_H -#define QT_RENDER_FRAME_OBSERVER_H +#ifndef RENDER_FRAME_OBSERVER_QT_H +#define RENDER_FRAME_OBSERVER_QT_H #include "base/basictypes.h" #include "base/compiler_specific.h" @@ -48,19 +48,19 @@ class RenderFrame; namespace QtWebEngineCore { -class QtRenderFrameObserver : public content::RenderFrameObserver { +class RenderFrameObserverQt : public content::RenderFrameObserver { public: - explicit QtRenderFrameObserver(content::RenderFrame* render_frame); - ~QtRenderFrameObserver(); + explicit RenderFrameObserverQt(content::RenderFrame* render_frame); + ~RenderFrameObserverQt(); #if defined(ENABLE_PLUGINS) void DidCreatePepperPlugin(content::RendererPpapiHost* host) override; #endif private: - DISALLOW_COPY_AND_ASSIGN(QtRenderFrameObserver); + DISALLOW_COPY_AND_ASSIGN(RenderFrameObserverQt); }; } // namespace QtWebEngineCore -#endif // QT_RENDER_FRAME_OBSERVER_H +#endif // RENDER_FRAME_OBSERVER_QT_H diff --git a/src/core/renderer/qt_render_view_observer.cpp b/src/core/renderer/render_view_observer_qt.cpp index ba91e54ae..47efd07e4 100644 --- a/src/core/renderer/qt_render_view_observer.cpp +++ b/src/core/renderer/render_view_observer_qt.cpp @@ -34,55 +34,65 @@ ** ****************************************************************************/ -#include "renderer/qt_render_view_observer.h" +#include "renderer/render_view_observer_qt.h" #include "common/qt_messages.h" +#include "components/web_cache/renderer/web_cache_render_process_observer.h" #include "content/public/renderer/render_view.h" #include "third_party/WebKit/public/web/WebDocument.h" #include "third_party/WebKit/public/web/WebElement.h" #include "third_party/WebKit/public/web/WebFrame.h" #include "third_party/WebKit/public/web/WebView.h" -QtRenderViewObserver::QtRenderViewObserver(content::RenderView* render_view) +RenderViewObserverQt::RenderViewObserverQt( + content::RenderView* render_view, + web_cache::WebCacheRenderProcessObserver* web_cache_render_process_observer) : content::RenderViewObserver(render_view) + , m_web_cache_render_process_observer(web_cache_render_process_observer) { } -void QtRenderViewObserver::onFetchDocumentMarkup(quint64 requestId) +void RenderViewObserverQt::onFetchDocumentMarkup(quint64 requestId) { - Send(new QtRenderViewObserverHost_DidFetchDocumentMarkup( + Send(new RenderViewObserverHostQt_DidFetchDocumentMarkup( routing_id(), requestId, render_view()->GetWebView()->mainFrame()->contentAsMarkup())); } -void QtRenderViewObserver::onFetchDocumentInnerText(quint64 requestId) +void RenderViewObserverQt::onFetchDocumentInnerText(quint64 requestId) { - Send(new QtRenderViewObserverHost_DidFetchDocumentInnerText( + Send(new RenderViewObserverHostQt_DidFetchDocumentInnerText( routing_id(), requestId, render_view()->GetWebView()->mainFrame()->contentAsText(std::numeric_limits<std::size_t>::max()))); } -void QtRenderViewObserver::onSetBackgroundColor(quint32 color) +void RenderViewObserverQt::onSetBackgroundColor(quint32 color) { render_view()->GetWebView()->setBaseBackgroundColor(color); } -void QtRenderViewObserver::OnFirstVisuallyNonEmptyLayout() +void RenderViewObserverQt::OnFirstVisuallyNonEmptyLayout() { - Send(new QtRenderViewObserverHost_DidFirstVisuallyNonEmptyLayout(routing_id())); + Send(new RenderViewObserverHostQt_DidFirstVisuallyNonEmptyLayout(routing_id())); } -bool QtRenderViewObserver::OnMessageReceived(const IPC::Message& message) +bool RenderViewObserverQt::OnMessageReceived(const IPC::Message& message) { bool handled = true; - IPC_BEGIN_MESSAGE_MAP(QtRenderViewObserver, message) - IPC_MESSAGE_HANDLER(QtRenderViewObserver_FetchDocumentMarkup, onFetchDocumentMarkup) - IPC_MESSAGE_HANDLER(QtRenderViewObserver_FetchDocumentInnerText, onFetchDocumentInnerText) - IPC_MESSAGE_HANDLER(QtRenderViewObserver_SetBackgroundColor, onSetBackgroundColor) + IPC_BEGIN_MESSAGE_MAP(RenderViewObserverQt, message) + IPC_MESSAGE_HANDLER(RenderViewObserverQt_FetchDocumentMarkup, onFetchDocumentMarkup) + IPC_MESSAGE_HANDLER(RenderViewObserverQt_FetchDocumentInnerText, onFetchDocumentInnerText) + IPC_MESSAGE_HANDLER(RenderViewObserverQt_SetBackgroundColor, onSetBackgroundColor) IPC_MESSAGE_UNHANDLED(handled = false) IPC_END_MESSAGE_MAP() return handled; } + +void RenderViewObserverQt::Navigate(const GURL &) +{ + if (m_web_cache_render_process_observer) + m_web_cache_render_process_observer->ExecutePendingClearCache(); +} diff --git a/src/core/renderer/qt_render_view_observer.h b/src/core/renderer/render_view_observer_qt.h index 3f7829a92..166dcc9ea 100644 --- a/src/core/renderer/qt_render_view_observer.h +++ b/src/core/renderer/render_view_observer_qt.h @@ -33,16 +33,21 @@ ** $QT_END_LICENSE$ ** ****************************************************************************/ -#ifndef QT_RENDER_VIEW_OBSERVER_H -#define QT_RENDER_VIEW_OBSERVER_H +#ifndef RENDER_VIEW_OBSERVER_QT_H +#define RENDER_VIEW_OBSERVER_QT_H #include "content/public/renderer/render_view_observer.h" #include <QtGlobal> -class QtRenderViewObserver : public content::RenderViewObserver { +namespace web_cache { +class WebCacheRenderProcessObserver; +} + +class RenderViewObserverQt : public content::RenderViewObserver { public: - QtRenderViewObserver(content::RenderView* render_view); + RenderViewObserverQt(content::RenderView* render_view, + web_cache::WebCacheRenderProcessObserver* web_cache_render_process_observer); private: void onFetchDocumentMarkup(quint64 requestId); @@ -52,8 +57,11 @@ private: void OnFirstVisuallyNonEmptyLayout() Q_DECL_OVERRIDE; virtual bool OnMessageReceived(const IPC::Message& message) Q_DECL_OVERRIDE; + virtual void Navigate(const GURL& url) Q_DECL_OVERRIDE; + + web_cache::WebCacheRenderProcessObserver* m_web_cache_render_process_observer; - DISALLOW_COPY_AND_ASSIGN(QtRenderViewObserver); + DISALLOW_COPY_AND_ASSIGN(RenderViewObserverQt); }; -#endif // QT_RENDER_VIEW_OBSERVER_H +#endif // RENDER_VIEW_OBSERVER_QT_H |