summaryrefslogtreecommitdiffstats
path: root/src/webenginewidgets/api/qwebenginepage.cpp
diff options
context:
space:
mode:
authorJocelyn Turcotte <jocelyn.turcotte@digia.com>2014-03-21 14:43:21 +0100
committerThe Qt Project <gerrit-noreply@qt-project.org>2014-03-31 16:43:59 +0200
commite9575322f8068b2dd2bc0b30a0f444f769a861b9 (patch)
tree1a6fbc4a8cb71d10f436265d20bcb1538e836220 /src/webenginewidgets/api/qwebenginepage.cpp
parent3f69bf43c45e54789ce6cdc4a2f01ea129e6287c (diff)
Implement QWebEngineHistory serialization
This does uses logic taken from Chromium's state save and restore code. The history version is incremented from the same method in QtWebKit in cases where the application would try loading a stream from a previous version using QtWebKit. In all cases where Chromium does a restore of a serialized history, it does so on a fresh WebContents instance, thus we must do the same and some of the initialization code has to be updated. Change-Id: I45abb052073bd44c9cb47bc2abcf4b558fe3dbbd Reviewed-by: Pierre Rossi <pierre.rossi@gmail.com>
Diffstat (limited to 'src/webenginewidgets/api/qwebenginepage.cpp')
-rw-r--r--src/webenginewidgets/api/qwebenginepage.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/webenginewidgets/api/qwebenginepage.cpp b/src/webenginewidgets/api/qwebenginepage.cpp
index b6c84de6c..e9ad17cf0 100644
--- a/src/webenginewidgets/api/qwebenginepage.cpp
+++ b/src/webenginewidgets/api/qwebenginepage.cpp
@@ -354,6 +354,15 @@ void QWebEnginePagePrivate::_q_webActionTriggered(bool checked)
}
#endif // QT_NO_ACTION
+void QWebEnginePagePrivate::recreateFromSerializedHistory(QDataStream &input)
+{
+ QExplicitlySharedDataPointer<WebContentsAdapter> newWebContents = WebContentsAdapter::createFromSerializedNavigationHistory(input, this, WebContentsAdapterClient::SoftwareRenderingMode);
+ if (newWebContents) {
+ adapter = newWebContents.data();
+ adapter->initialize(this);
+ }
+}
+
QWebEnginePage::QWebEnginePage(QObject* parent)
: QObject(*new QWebEnginePagePrivate, parent)
{