Closed Bug 1640766 Opened 4 years ago Closed 3 years ago

Make nsGlobalWindowInner::Suspend/Resume work for nested in-process modal event loops in fission world

Categories

(Core :: DOM: Window and Location, defect, P2)

defect

Tracking

()

RESOLVED FIXED
88 Branch
Fission Milestone M7
Tracking Status
firefox88 --- fixed

People

(Reporter: hiro, Assigned: edgar)

References

(Blocks 1 open bug)

Details

Attachments

(1 file)

No description provided.
Component: DOM: Core & HTML → DOM: Window and Location

These functions are also used for session history.

Severity: -- → S3
Priority: -- → P3

The BFCache case can probably be handled separately, by calling nsGlobalWindowInner::Suspend/Resume in every process when the document enters the BFCache, and can be fixed in a separate bug.

We should probably make sure that we handle cases like a.com -iframe> b.com -iframe> a.com by suspending/resuming both a.com frames.

This bug doesn't need to block Fission Nightly. Tracking for Fission riding the trains to Beta (M7).

Fission Milestone: --- → M7
Summary: Make nsGlobalWindowInner::Suspend/Resume work in fission world → Make nsGlobalWindowInner::Suspend/Resume work for nested in-process modal event loops in fission world
Assignee: nobody → afarre
Status: NEW → ASSIGNED
Priority: P3 → P2

Jens, can someone from the DOM Core team work on this?

Assignee: afarre → nobody
Status: ASSIGNED → NEW
Flags: needinfo?(jstutte)
Assignee: nobody → echen
Flags: needinfo?(jstutte)

(In reply to Nika Layzell [:nika] (ni? for response) from comment #2)

We should probably make sure that we handle cases like a.com -iframe> b.com -iframe> a.com by suspending/resuming both a.com frames.

nsGlobalWindowInner::Suspend/Resume has already suspended/resumed all in-process child in

Nika, do we need to do something more in this bug? Thanks!

Flags: needinfo?(nika)

(In reply to Edgar Chen [:edgar] from comment #5)

(In reply to Nika Layzell [:nika] (ni? for response) from comment #2)

We should probably make sure that we handle cases like a.com -iframe> b.com -iframe> a.com by suspending/resuming both a.com frames.

nsGlobalWindowInner::Suspend/Resume has already suspended/resumed all in-process child in

Nika, do we need to do something more in this bug? Thanks!

That method doesn't handle cases such as the one which I mention in my comment, as CallOnAllInProcessChildren won't recurse into in-process subframes of out-of-process subframes. IIRC fixing that behaviour to correctly freeze everything in the same window agent is the purpose of this bug.

Flags: needinfo?(nika)

Yeah, right. Thanks!

Status: NEW → ASSIGNED
Pushed by echen@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/86d897662d5a
Make nsGlobalWindowInner::Suspend/Resume suspend/resume all in-process descendants; r=smaug
Status: ASSIGNED → RESOLVED
Closed: 3 years ago
Resolution: --- → FIXED
Target Milestone: --- → 88 Branch
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: