summaryrefslogtreecommitdiffstats
path: root/src/core/renderer
diff options
context:
space:
mode:
authorJocelyn Turcotte <jocelyn.turcotte@digia.com>2014-01-15 19:10:22 +0100
committerThe Qt Project <gerrit-noreply@qt-project.org>2014-01-22 08:45:25 +0100
commit1fcd7970e07a0ecab206224824d1c71488fc19e9 (patch)
tree7bc6ba73623a69aa303f1f4d5c075e8ef37ca45e /src/core/renderer
parent3fcd31f5bd86cb568b1ca4f4f5c7c12c6675dceb (diff)
Implement QWebEnginePage::toHtml and toPlainText
Those methods are now made asynchronous and need to be given a callback to handle the result. Update the code in the browser and fancybrowser examples using std::bind when using C++11 or tr1::bind with C++03 (which should be available with compilers on platforms that we support). Add a (currently failing) earlyToHtml test to make sure that an empty page doesn't crash because of a possibly incomplete attachment of the QtRenderViewObserver. Change-Id: I3ab7cb6f25b91b584dd80df5e4e9ad1e3214348e Reviewed-by: Pierre Rossi <pierre.rossi@gmail.com>
Diffstat (limited to 'src/core/renderer')
-rw-r--r--src/core/renderer/qt_render_view_observer.cpp18
-rw-r--r--src/core/renderer/qt_render_view_observer.h3
2 files changed, 21 insertions, 0 deletions
diff --git a/src/core/renderer/qt_render_view_observer.cpp b/src/core/renderer/qt_render_view_observer.cpp
index b3b4c38c4..0f5ca6556 100644
--- a/src/core/renderer/qt_render_view_observer.cpp
+++ b/src/core/renderer/qt_render_view_observer.cpp
@@ -54,10 +54,28 @@ QtRenderViewObserver::QtRenderViewObserver(content::RenderView* render_view)
{
}
+void QtRenderViewObserver::onFetchDocumentMarkup(quint64 requestId)
+{
+ Send(new QtRenderViewObserverHost_DidFetchDocumentMarkup(
+ routing_id(),
+ render_view()->GetWebView()->mainFrame()->document().createMarkup(),
+ requestId));
+}
+
+void QtRenderViewObserver::onFetchDocumentInnerText(quint64 requestId)
+{
+ Send(new QtRenderViewObserverHost_DidFetchDocumentInnerText(
+ routing_id(),
+ render_view()->GetWebView()->mainFrame()->document().documentElement().innerText(),
+ requestId));
+}
+
bool QtRenderViewObserver::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_UNHANDLED(handled = false)
IPC_END_MESSAGE_MAP()
return handled;
diff --git a/src/core/renderer/qt_render_view_observer.h b/src/core/renderer/qt_render_view_observer.h
index 8c5713c4a..c37dce16d 100644
--- a/src/core/renderer/qt_render_view_observer.h
+++ b/src/core/renderer/qt_render_view_observer.h
@@ -48,6 +48,9 @@ public:
QtRenderViewObserver(content::RenderView* render_view);
private:
+ void onFetchDocumentMarkup(quint64 requestId);
+ void onFetchDocumentInnerText(quint64 requestId);
+
virtual bool OnMessageReceived(const IPC::Message& message) Q_DECL_OVERRIDE;
DISALLOW_COPY_AND_ASSIGN(QtRenderViewObserver);