When upgrading to oxide 1.19, tabs from saved session are not restored

Bug #1649861 reported by Olivier Tilloy on 2016-12-14
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Oxide
High
Olivier Tilloy
1.19
Critical
Olivier Tilloy
1.20
High
Olivier Tilloy
webbrowser-app (Ubuntu)
Undecided
Unassigned

Bug Description

When upgrading to oxide 1.19, tabs from a session saved with oxide 1.18 are not restored. I’m seeing the following in the browser’s log:

  Failed to read initial state: invalid data

It appears sessions::SerializedNavigationEntry::ReadFromPickle() fails, most likely because the format of the serialized entries was changed in chromium 55. Specifically, this commit seems like a good suspect: https://chromium.googlesource.com/chromium/src/+/f62ca6f9d33e93733fccb3f3815d9554429dbb38.

Related branches

Olivier Tilloy (osomon) on 2016-12-14
summary: - With oxide 1.19, tabs from saved session are not restored
+ When upgrading to oxide 1.19, tabs from saved session are not restored
Olivier Tilloy (osomon) wrote :

I confirm that https://chromium.googlesource.com/chromium/src/+/f62ca6f9d33e93733fccb3f3815d9554429dbb38 introduced the regression: serialized navigation entries are pickled one after the other, and the size of the resulting data is not stored anywhere. As a result, the new implementation of SerializedNavigationEntry::ReadFromPickle() starts reading from the beginning of the next entry looking for extended info.

It is unfortunate that navigation entries are serialized this way. To prevent this from happening again in the future when additional data is added to serialized navigation entries, we should pickle them separately, and for each entry store the size followed by the raw data.

Changed in webbrowser-app (Ubuntu):
status: New → Invalid
Changed in oxide:
status: New → Confirmed
assignee: nobody → Olivier Tilloy (osomon)
milestone: none → branch-1.20
importance: Undecided → High
Changed in oxide:
milestone: branch-1.20 → branch-1.21
Olivier Tilloy (osomon) on 2016-12-14
Changed in oxide:
status: Confirmed → In Progress
Olivier Tilloy (osomon) on 2017-01-16
Changed in oxide:
status: In Progress → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers