Closed Bug 1649628 Opened 4 years ago Closed 4 years ago

Embedded podcast player doesn't work with Fission enabled

Categories

(Core :: DOM: Navigation, defect)

defect

Tracking

()

VERIFIED FIXED
mozilla80
Fission Milestone M6b
Tracking Status
firefox80 --- verified

People

(Reporter: mccr8, Assigned: peterv)

References

Details

Attachments

(1 file)

This web page has an embedded media player for playing a podcast: https://www.vicioussyndicate.com/vs-data-reaper-podcast-episode-5/

Without Fission, the player loads as expected and you can click on the triangle to play the podcast. With Fission, the player appears, and the triangle is there, but instead of text on the player giving the title of the podcast, there's text that that says "starting in undefined...".

The embedded player looks to be from anchor.fm. Not surprisingly, the player works for podcasts right on their site: https://anchor.fm/haikunews/episodes/May-13-17-A-week-of-preservation-e446ii

This is because OOP iframes can't replace state in the session history. We can try to use the cache instead of history state to fix this sooner than session history in parent.

Assignee: nobody → peterv
Status: NEW → ASSIGNED
Fission Milestone: --- → M6b

Turns out this has nothing to do with replaceState at all, but with accessing history.length in a cross-origin frame. I considered creating a session history object in all child processes for a browsing context tree if fission is enabled and history in the parent is not. I have a patch that does it and it seems to work, but it's still a bit scary to have multiple inconsistent session histories.

Looking at the failures for both this and bug 1645435 I think we should try to make history.length return 1 if we don't have a session history object. That seems to fix these bugs, is a lot less scary and sort of makes sense too. If sites are trying to do other things to session history and either not dealing with exceptions being thrown or with getting incorrect data, then we need to come up with different short-term fixes. The final fix is session history in the parent though.

Pushed by pvanderbeken@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/fe60d5779f24 Make history.length return 1 if session history is unavailable. r=nika
Status: ASSIGNED → RESOLVED
Closed: 4 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla80
Flags: qe-verify+

Reproduced the issue with Firefox 80.0a1 (20200630214513) on Windows 10x64.
The issue is verified fixed with Firefox 80.0a1 from comment 7 on Windows 10x64, macOS 10.12 and Ubuntu 20.

Status: RESOLVED → VERIFIED
Flags: qe-verify+
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: