Save/restore a webview’s state
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Oxide |
Fix Released
|
High
|
Olivier Tilloy | ||
webbrowser-app |
Fix Released
|
High
|
Olivier Tilloy | ||
webbrowser-app (Ubuntu) |
Fix Released
|
Undecided
|
Olivier Tilloy | ||
webbrowser-app (Ubuntu RTM) |
Fix Released
|
Undecided
|
Olivier Tilloy |
Bug Description
We need a mechanism to save and restore the current session of the browser/webapp container.
For the browser, each open tab should be saved, whereas for the webapp container there’s only one webview to handle.
A naive solution is to persist the URL of each open tab, and upon restore instantiate a webview and set its url property. However this won’t restore the corresponding navigation history, nor the current scroll offset or form data.
To implement this properly, we need to add an API in oxide that will allow reading the current state of a webview as an opaque blob, and writing the initial state at construction time. The API would look like this:
property string initialState (writable during construction only)
function getCurrentState()
(see the full discussion at https:/
Related branches
- Chris Coulson: Approve
-
Diff: 683 lines (+418/-4)10 files modifiedqt/core/glue/oxide_qt_web_view_adapter.cc (+97/-1)
qt/core/glue/oxide_qt_web_view_adapter.h (+13/-1)
qt/quick/api/oxideqquickwebview.cc (+62/-1)
qt/quick/api/oxideqquickwebview_p.h (+21/-0)
qt/quick/api/oxideqquickwebview_p_p.h (+5/-1)
qt/tests/qmltests/api/tst_WebView_save_restore_form_data.html (+5/-0)
qt/tests/qmltests/api/tst_WebView_save_restore_state.qml (+152/-0)
shared/browser/oxide_web_view.cc (+46/-0)
shared/browser/oxide_web_view.h (+16/-0)
shared/shared.gyp (+1/-0)
- Michael Vogt (community): Approve
- PS Jenkins bot: Needs Fixing (continuous-integration)
-
Diff: 242 lines (+45/-70)5 files modifieddebian/control (+2/-2)
src/app/webbrowser/Browser.qml (+27/-16)
src/app/webbrowser/BrowserTab.qml (+13/-1)
tests/autopilot/webbrowser_app/tests/test_session_save_restore.py (+0/-51)
tests/unittests/qml/tst_BrowserTab.qml (+3/-0)
Changed in oxide: | |
status: | New → Confirmed |
assignee: | nobody → Olivier Tilloy (osomon) |
importance: | Undecided → High |
Changed in oxide: | |
status: | Confirmed → Triaged |
milestone: | none → branch-1.3 |
Changed in oxide: | |
milestone: | branch-1.3 → branch-1.4 |
Changed in oxide: | |
status: | Triaged → In Progress |
Changed in oxide: | |
status: | In Progress → Fix Released |
Changed in webbrowser-app: | |
status: | Triaged → In Progress |
Changed in webbrowser-app (Ubuntu): | |
assignee: | nobody → Olivier Tilloy (osomon) |
status: | New → In Progress |
Changed in webbrowser-app: | |
status: | In Progress → Fix Released |
Changed in webbrowser-app (Ubuntu RTM): | |
status: | New → Confirmed |
Changed in webbrowser-app (Ubuntu RTM): | |
status: | Confirmed → Fix Released |
assignee: | nobody → Olivier Tilloy (osomon) |
This bug was fixed in the package webbrowser-app - 0.23+15. 04.20150203- 0ubuntu1
--------------- 04.20150203- 0ubuntu1) vivid; urgency=medium
webbrowser-app (0.23+15.
[ Florian Boucault ]
* Make splashscreen white instead of the default black. (LP: #1378379)
[ Niklas Wenzel ]
* Add the ability to open a link in a new background tab (LP:
#1339437)
[ Olivier Tilloy ]
* Use the new restoreState API in oxide 1.4 to properly save and
restore navigation state across sessions. (LP: #1353143)
* Add a UA override for youtube.com on desktop to fix video playback.
(LP: #1412880)
-- Ubuntu daily release <email address hidden> Tue, 03 Feb 2015 11:06:38 +0000