Closed Bug 1602115 Opened 4 years ago Closed 4 years ago

Make history.length Fission compatible

Categories

(Core :: DOM: Navigation, defect, P2)

defect

Tracking

()

RESOLVED FIXED
mozilla80
Fission Milestone M6a
Tracking Status
firefox80 --- fixed

People

(Reporter: smaug, Assigned: smaug)

References

(Blocks 1 open bug)

Details

(Whiteboard: [7/14] patch r+, ready to land)

Attachments

(2 files, 1 obsolete file)

history.length is from web page point of view synchronous, but once session history lives in the parent process, we can't get the information synchronously.

My current plan is to store length in (each) top level browsing context.
If a child process does an operation which would add something to the session history synchronously (for example pushState), child sends an async message with return value (== MozPromise) to parent process. The history.length becomes the cached length + pending MozPromises.
(This also shouldn't have the webcompat issues 1/2+pushState count and similar approaches would have)

This can be emulated even without session history in parent and assertions can be added whether the behavior of the new implementation matches the old one.

Status: NEW → ASSIGNED
Fission Milestone: --- → M5
Priority: -- → P2

Deferring to Fission Nightly (M6) because this is related to session history.

Fission Milestone: M5 → M6

M6a

Blocks session history in the parent

Fission Milestone: M6 → M6a
Attachment #9122786 - Attachment is obsolete: true
Depends on: 1642275
Depends on: 1644119
Depends on: 1628249
Whiteboard: [7/14] patch r+, ready to land
Depends on: 1653123
Pushed by opettay@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/258d0ebd9e34
Make history.length Fission compatible, r=peterv
https://hg.mozilla.org/integration/autoland/rev/951c0fd65a00
make it possible to test async history.length handling even when session history lives in the child process, r=peterv
Pushed by opettay@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/a55eebd5cb97
Make history.length Fission compatible, r=peterv
https://hg.mozilla.org/integration/autoland/rev/75f5953053de
make it possible to test async history.length handling even when session history lives in the child process, r=peterv
Status: ASSIGNED → RESOLVED
Closed: 4 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla80
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: