Closed Bug 1682197 Opened 3 years ago Closed 3 years ago

[non WebRender] OOP iframe contents gets incorrectly minus offset-ed without layerization on Fission

Categories

(Core :: Panning and Zooming, defect)

defect

Tracking

()

RESOLVED FIXED
86 Branch
Fission Milestone Future
Tracking Status
firefox86 --- fixed

People

(Reporter: hiro, Assigned: hiro)

References

(Blocks 2 open bugs)

Details

(Whiteboard: [fission:non-qr])

Attachments

(3 files, 1 obsolete file)

Attached file a test case

Steps to reproduce;

  1. Enable fission and disable WebRender
  2. Open the attaching file
  3. Pinch zoom in
  4. The contents in the iframe will go outside the iframe's viewport

If the iframe has will-change: transform style, it works properly.

Probably this is not a high priority issue for Fission because it only happens without WebRender.

Fission Milestone: --- → ?
Summary: [non WebRender] OOP iframe contents gets incorrectly offset-ed without layerization on Fission → [non WebRender] OOP iframe contents gets incorrectly minus offset-ed without layerization on Fission

Fission Future. We only support Fission with WebRender for now.

Fission Milestone: ? → Future
Whiteboard: [fission:non-qr]

S4 for a bug in a configuration we are not intending to ship.

Severity: -- → S4
Attached patch Fix for simple OOP iframe case (obsolete) — Splinter Review

I happened to notice where the problem underlies. The problem is here in nsDisplayRemote::BuildLayer to get the remote iframe offset. When the desktop zoom is applied, the offset should be multiplied by the zoom value.

Attaching file is a fix for simple OOP iframe case, it doesn't fix nested iframe cases unfortunately we need a way to get the desktop zoom value in OOP contents. I will introduce the way in bug 1649447.

An interesting thing (at least for me) is that we use the same offset for WebRender as well, but the rendering results on WebRender looks correct. (note that hit testing is incorrect on WebRender).

Assignee: nobody → hikezoe.birchill
Assignee: hikezoe.birchill → nobody

The issue is not a desktop zoom specific issue, it's an issue that we don't scale the offset to the iframe because we use PreScale. Using PostScale seems to fix this issue.

Assignee: nobody → hikezoe.birchill
Status: NEW → ASSIGNED

When the iframe is inside a scaled container, the offset to the reference frame
needs to be scaled.

This change fixes both a rendering issue (bug 1682197) and a hit-testing issue
(bug 1682200) altogether for non WebRender.

Attachment #9193180 - Attachment is obsolete: true
Pushed by hikezoe.birchill@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/1f6d62f03dd7
Scale the offset to remote iframe in nsDisplayRemote::BuildLayer. r=mattwoodrow
Regressions: 1686163
Status: ASSIGNED → RESOLVED
Closed: 3 years ago
Resolution: --- → FIXED
Target Milestone: --- → 86 Branch
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: