regression: https://codepen.io/YusukeNakaya/pen/ZXmJjj isn't correctly clipped

VERIFIED FIXED in Firefox 63

Status

()

defect
P1
normal
VERIFIED FIXED
Last year
20 days ago

People

(Reporter: darkspirit, Assigned: emilio)

Tracking

(Blocks 2 bugs, Regressed 1 bug, {correctness, nightly-community, regression})

Trunk
mozilla63
x86_64
Linux
Points:
---
Dependency tree / graph

Firefox Tracking Flags

(firefox-esr52 unaffected, firefox-esr60 unaffected, firefox59 unaffected, firefox60 unaffected, firefox61 disabled, firefox62 disabled, firefox63 fixed)

Details

()

Attachments

(4 attachments, 1 obsolete attachment)

mozregression --good 2018-04-01 --bad 2018-05-01 --pref gfx.webrender.all:true gfx.webrender.async-scene-build:0 startup.homepage_welcome_url:'https://codepen.io/YusukeNakaya/pen/ZXmJjj'
> 8:40.58 INFO: Last good revision: 9f436684f4f7425e7af421dec2ae39464ec34b2d
> 8:40.58 INFO: First bad revision: f0ef44027999330a69d31db01e654a22949e2726
> 8:40.58 INFO: Pushlog:
> https://hg.mozilla.org/integration/autoland/pushloghtml?fromchange=9f436684f4f7425e7af421dec2ae39464ec34b2d&tochange=f0ef44027999330a69d31db01e654a22949e2726

2018-04-09
> f0ef44027999	Kartikaya Gupta — Bug 1451453 - Update reftest annotations for WR PR 2626. r=jrmuizel
> 636d99298004	Kartikaya Gupta — Bug 1451453 - Update some reftest annotations for changes in WR PR 2618. r=jrmuizel
> 140454d5de2e	Kartikaya Gupta — Bug 1451453 - Update for API change in WR PR 2613. r=jrmuizel
> 8f46d004ff0d	Kartikaya Gupta — Bug 1451453 - Update for API change in WR PR 2600. r=jrmuizel
> f20cbdbdc3ac	Kartikaya Gupta — Bug 1451453 - Update webrender to commit 092ada1154b72fe71d2f227a5df0239586d2323a. r=jrmuize

> WR @ f9ddc5261ad2cd35c60851c4091b682c900dbb0a with the fix
mozregression --repo try --launch 7993c019cfc0c3c70531ca6dafded002e3f4e66f --pref gfx.webrender.all:true gfx.webrender.async-scene-build:0 startup.homepage_welcome_url:'https://codepen.io/YusukeNakaya/pen/ZXmJjj'
gone

> WR @ 2494f70e8568b91e0e9ebf3dd552a2540a9f2aff
mozregression --repo try --launch 48d42bbe9f2c0545094745ffda853becadbbef73 --pref gfx.webrender.all:true gfx.webrender.async-scene-build:0 startup.homepage_welcome_url:'https://codepen.io/YusukeNakaya/pen/ZXmJjj'
gone

> WR @ 09109c7769f36267e1a981c3c69835f50a006202
mozregression --repo try --launch a0022985803f2a97a0c4b05ef126d6b3db03957d --pref gfx.webrender.all:true gfx.webrender.async-scene-build:0 startup.homepage_welcome_url:'https://codepen.io/YusukeNakaya/pen/ZXmJjj'
bad

Regression range: https://github.com/servo/webrender/compare/941bf5ac998061689a1bcd18d417f1f315e41ae6...09109c7769f36267e1a981c3c69835f50a006202
See Also: → 1459052
I can still repro this. The stuff inside the iframe isn't getting clipped to the iframe. This is similar to the issue that was fixed by servo/webrender#2875 except in this case it's an in-process iframe so the fix from that PR won't apply. From the WR point of view it's all just one document, so I guess we need to do a better job of linking up the clipchains on the gecko side for nsDisplaySubdocument items.
When I remove the blur it looks different, but the bug is gone.
This might be related: https://github.com/servo/webrender/issues/2934
Posted file esa_testcase.html
Problem: A blur breaks out of an iframe.
URL: https://www.esa.int/Our_Activities/Observing_the_Earth/Aeolus/Watch_Aeolus_launch_live
Range: 2018-04-08 is good, 2018-04-09 is bad. Seems to be the same regression.
Assignee: nobody → emilio
Depends on: 1485769
Try is running, but I think I'd submit this for feedback.
So, I'm still trying to wrap my head about all the stuff our clipping code is doing. A more targeted fix is https://treeherder.mozilla.org/#/jobs?repo=try&revision=f7fe2b0c8c4b1fbdf47fe3d472392946166ddda3, which should be fine except we double-apply opacity. I'm looking into that's because of the mHandleOpacity bit or an upstream WR issue.
Attachment #9003600 - Attachment is obsolete: true
Much like mask images. This is the easy fix, for now.

We need to override the ASR clips with Nothing() because we don't really want
children of this display item to get apply the parent filter. It's not only
redundant, but also may be incorrect if the mask image is not opaque for example
(maybe WR should prevent that?).

This was caught by layout/reftests/w3c-css/submitted/masking/mask-opacity-1a.html

I need to add a reftest for this.
Blocks: 1486557
Comment on attachment 9004278 [details]
Bug 1459065 - Clip filter effects at the stacking context level.

Markus Stange [:mstange] has approved the revision.
Attachment #9004278 - Flags: review+
This has been a fun first bug ;)
Flags: needinfo?(emilio)
Pushed by emilio@crisal.io:
https://hg.mozilla.org/integration/autoland/rev/f4739ab0ece1
Clip filter effects at the stacking context level. r=mstange
Created web-platform-tests PR https://github.com/web-platform-tests/wpt/pull/12709 for changes under testing/web-platform/tests
Upstream web-platform-tests status checks passed, PR will merge once commit reaches central.
Backed out for svg/filters failures.

backout: https://hg.mozilla.org/integration/autoland/rev/48028d39f5edeeee94a1ef62a0365664599f92b6


Push with failures: https://treeherder.mozilla.org/#/jobs?repo=autoland&revision=f4739ab0ece1b6014242b7b0c49e88d46ec2146f&filter-resultStatus=testfailed&filter-resultStatus=busted&filter-resultStatus=exception&filter-resultStatus=runnable

failure log example:
 https://treeherder.mozilla.org/logviewer.html#?job_id=196206608&repo=autoland&lineNumber=97851

08:15:11     INFO - REFTEST TEST-START | file:///Users/cltbld/tasks/task_1535466341/build/tests/reftest/tests/layout/reftests/svg/filters/css-filters/blur-cap-large-radius-on-software.html == file:///Users/cltbld/tasks/task_1535466341/build/tests/reftest/tests/layout/reftests/svg/filters/css-filters/blur-cap-large-radius-on-software-ref.html
08:15:11     INFO - REFTEST TEST-LOAD | file:///Users/cltbld/tasks/task_1535466341/build/tests/reftest/tests/layout/reftests/svg/filters/css-filters/blur-cap-large-radius-on-software.html | 4 / 66 (6%)
08:15:11     INFO - ++DOMWINDOW == 16 (0x123824000) [pid = 2454] [serial = 16] [outer = 0x11123c800]
08:15:11     INFO - REFTEST TEST-LOAD | file:///Users/cltbld/tasks/task_1535466341/build/tests/reftest/tests/layout/reftests/svg/filters/css-filters/blur-cap-large-radius-on-software-ref.html | 4 / 66 (6%)
08:15:11     INFO - ++DOMWINDOW == 17 (0x123828000) [pid = 2454] [serial = 17] [outer = 0x11123c800]
08:15:11     INFO - REFTEST INFO | REFTEST fuzzy test (3, 55913) <= (2, 56457) <= (3, 55913)
08:15:12     INFO - REFTEST TEST-UNEXPECTED-FAIL | file:///Users/cltbld/tasks/task_1535466341/build/tests/reftest/tests/layout/reftests/svg/filters/css-filters/blur-cap-large-radius-on-software.html == file:///Users/cltbld/tasks/task_1535466341/build/tests/reftest/tests/layout/reftests/svg/filters/css-filters/blur-cap-large-radius-on-software-ref.html | image comparison, max difference: 2, number of differing pixels: 56457
Flags: needinfo?(emilio)
Upstream PR was closed without merging
Pushed by emilio@crisal.io:
https://hg.mozilla.org/integration/autoland/rev/ccf47d95dc9b
Clip filter effects at the stacking context level. r=mstange
Upstream web-platform-tests status checks passed, PR will merge once commit reaches central.
Flags: needinfo?(emilio)
https://hg.mozilla.org/mozilla-central/rev/ccf47d95dc9b
Status: NEW → RESOLVED
Closed: 11 months ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla63
Upstream PR merged
Verified fixed in Nightly 63 x64 20180829100131 de_DE @ Debian Testing. Thank you!
Status: RESOLVED → VERIFIED
(In reply to Jan Andre Ikenmeyer [:darkspirit] from comment #21)
> Verified fixed in Nightly 63 x64 20180829100131 de_DE @ Debian Testing.
> Thank you!

Thank _you_.
Depends on: 1514384
Regressions: 1561447
You need to log in before you can comment on or make changes to this bug.