Closed Bug 1459065 Opened 6 years ago Closed 6 years ago

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

Categories

(Core :: Graphics: WebRender, defect, P1)

x86_64
Linux
defect

Tracking

()

VERIFIED FIXED
mozilla63
Tracking Status
firefox-esr52 --- unaffected
firefox-esr60 --- unaffected
firefox59 --- unaffected
firefox60 --- unaffected
firefox61 --- disabled
firefox62 --- disabled
firefox63 --- fixed

People

(Reporter: jan, Assigned: emilio)

References

(Blocks 1 open bug, )

Details

(Keywords: correctness, nightly-community, regression)

Attachments

(4 files, 1 obsolete file)

Attached image Screenshot_20180504_000634.png (deleted) —
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
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
Attached file esa_testcase.html (deleted) —
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)
Status: NEW → RESOLVED
Closed: 6 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla63
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.

Attachment

General

Creator:
Created:
Updated:
Size: