Closed Bug 1606660 Opened 4 years ago Closed 4 years ago

Fission iframes don't handle allowfullscreen correctly.

Categories

(Core :: DOM: Core & HTML, defect, P3)

defect

Tracking

()

RESOLVED FIXED
mozilla79
Fission Milestone M6c
Tracking Status
firefox79 --- fixed

People

(Reporter: emilio, Assigned: emilio)

References

Details

Attachments

(2 files, 1 obsolete file)

This check only runs in the parent process.

The infrastructure added in the blocking bugs will be useful to fix this.

Tracking for Fission Nightly (M6)

Fission Milestone: --- → M6

I think we also should take allow="fullscreen" into account here.

The priority flag is not set for this bug.
:jimm, could you have a look please?

For more information, please visit auto_nag documentation.

Flags: needinfo?(jmathies)

This bug blocks Fission Nightly (milestone M6), which is targeting mid-2020. Therefore, this bug ought to be fixed some time in 2020 Q1 or Q2.

Flags: needinfo?(jmathies)
Priority: -- → P3

Emilio, did you have STR for this allowfullscreen bug?

kmag says this bug should also affect non-Fission e10s if the allowfullscreen check is in the parent process.

You added a comment (in bug 1606660) saying:

    // FIXME(emilio, bug 1606660): allowfullscreen should probably move to
    // OwnerShowInfo.

https://searchfox.org/mozilla-central/rev/598e50d2c3cd81cd616654f16af811adceb08f9f/dom/ipc/BrowserParent.cpp#458-459

Severity: normal → S3
Fission Milestone: M6 → M6c
Component: DOM: Content Processes → DOM: Core & HTML
Flags: needinfo?(emilio)
Summary: Fission iframes don't handle allowfullscreen correctly. → iframes don't handle allowfullscreen correctly.

Well, that is true in fairness. That being said, this is the check that's supposed to prevent it for regular frames, and it is still not fission-safe...

Yet http://crisal.io/tmp/youtube-embed.html does work as expected... So something is off.

Depends on: 1643493

Here's a test-case: http://crisal.io/tmp/allowfullscreen-fission.html

It incorrectly shows fullscreenEnabled = true everywhere, while it should show false, then true.

The reason is that this check doesn't work in fission.

Yet the test-case in comment 6 ~works on Fission because of this feature policy check, which is not here.

So allowfullscreen doesn't work, but that feature-policy check should cause fullscreenEnabled to return false in the first place.

Assignee: nobody → emilio
Flags: needinfo?(emilio)
Summary: iframes don't handle allowfullscreen correctly. → Fission iframes don't handle allowfullscreen correctly.

This has the side effect of fixing support of mozallowfullscreen when
feature policy is enabled, because it checks only AllowFullscreen, which
doesn't check for the moz-prefixed attribute.

I left the swapframeloader bits alone because they're mozbrowser
specific and I have no idea what they're trying to do.

So that they work properly on fission iframes.

I noticed that my previous patch wouldn't support it properly, and while
it could be feasible to fix it, it seems better to just remove the
feature. The current implementation doesn't work for remote browsers
already.

This was added in bug 1299795 but we no longer allow to load untrusted
content in the sidebar, afaict, and if we did we definitely don't allow
to load it in the parent process.

Depends on D78702

Attachment #9155128 - Attachment is obsolete: true
Pushed by ealvarez@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/615339857e65
Factor out AllowFullscreen checks for iframe. r=nika
https://hg.mozilla.org/integration/autoland/rev/fef0196c86dd
Move allowfullscreen checks to the browsing context. r=nika
Status: NEW → RESOLVED
Closed: 4 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla79
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: