Closed Bug 1483649 Opened 6 years ago Closed 6 years ago

Clicking the X button to stop loading a page will fill it with white background on RTL locales

Categories

(Core :: Web Painting, defect, P2)

defect

Tracking

()

VERIFIED FIXED
mozilla63
Tracking Status
firefox-esr52 --- unaffected
firefox-esr60 --- unaffected
firefox61 --- unaffected
firefox62 --- unaffected
firefox63 --- verified

People

(Reporter: itiel_yn8, Assigned: mikokm)

References

Details

(Keywords: regression, rtl)

Attachments

(3 files, 1 obsolete file)

Attached image Screencast
Using Windows 10 x86, latest Nightly. STR: 1. Launch latest Nightly with intl.uidirection set to 1 2. Open any website, preferably a one that takes time to load 3. Click the X button on the toolbar to stop loading the page AR: White background underneath the already-clicked X button ER: No white background. This happens only on a mouse click; pressing Esc doesn't make this issue reappear. Regression range is 2018-07-18 to 2018-07-19. 2018-08-15T21:03:58: DEBUG : Starting merge handling... 2018-08-15T21:03:58: DEBUG : Using url: https://hg.mozilla.org/integration/autoland/json-pushes?changeset=92bd3b2178623a036ea91990aa5570e039890ff4&full=1 2018-08-15T21:03:59: DEBUG : Found commit message: Bug 1462672 - Part 8: Flatten inactive nsDisplayTransform items r=mattwoodrow See attached.
Has Regression Range: --- → yes
Has STR: --- → yes
Assignee: nobody → mikokm
Status: NEW → ASSIGNED
Component: General → Layout: Web Painting
Priority: -- → P2
Product: Firefox → Core
Attached file Testcase (obsolete) —
Miko, this is a (relatively) minimal testcase that reproduces this bug. Maybe you can reduce it further. You'll need to enable remote XUL. I tested this by toggling layout.display-list.flatten-transform on MacOS in my Nightly build from 2018-08-16. Hope this helps, happy debugging!
Flags: needinfo?(mikokm)
Attached file Testcase 2
Got rid of a few more styles that seem irrelevant to the bug.
Attachment #9001812 - Attachment is obsolete: true
Flags: needinfo?(mikokm)
Thank you for the reduced testcase. The testcase has two transformed elements, a XUL box and a XUL image. The transform for the XUL box is flattened and the box is drawn on the root painted layer. Because the XUL image also has an animation set, the transform flattening is disabled, and an active layer is created. When the layer background color is selected, the display items that are inside flattened effects are skipped (the XUL box in this case), and a wrong background color is set. Including flattened effect markers in ContainerState::FindOpaqueBackgroundColorInLayer() loop should fix this, because nsDisplayTransform::IsUniform() and nsDisplayOpacity::IsUniform() both return Nothing(), and thus force a transparent background.
The area covered by flattened effects and their children should be considered in the background color selection to avoid defaulting to canvas background color.
Comment on attachment 9002547 [details] Bug 1483649 - Do not skip display items for flattened effects in ContainerState::FindOpaqueBackgroundColorInLayer Matt Woodrow (:mattwoodrow) has approved the revision.
Attachment #9002547 - Flags: review+
Pushed by mikokm@gmail.com: https://hg.mozilla.org/integration/autoland/rev/19eadd36bbba Do not skip display items for flattened effects in ContainerState::FindOpaqueBackgroundColorInLayer r=mattwoodrow
Status: ASSIGNED → RESOLVED
Closed: 6 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla63
Looking good on latest Nightly.
Status: RESOLVED → VERIFIED
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: