Closed Bug 1608178 Opened 4 years ago Closed 4 years ago

[wpt-sync] Sync PR 21115 - [css-layout-api] Custom layouts with no children nodes

Categories

(Core :: Layout, task, P4)

task

Tracking

()

RESOLVED FIXED
mozilla74
Tracking Status
firefox74 --- fixed

People

(Reporter: mozilla.org, Unassigned)

References

()

Details

(Whiteboard: [wptsync downstream])

Sync web-platform-tests PR 21115 into mozilla-central (this bug is closed when the sync is complete).

PR: https://github.com/web-platform-tests/wpt/pull/21115
Details from upstream follow.

Alison Maher <almaher@microsoft.com> wrote:

[css-layout-api] Custom layouts with no children nodes

It was discovered that creating a custom layout for an element with
no children nodes caused a crash. This reason being that if the node
being laid out is inline and has no child nodes,
NGBlockNode::FirstChild() will return the inline node being laid out
as its first child.
https://cs.chromium.org/chromium/src/third_party/blink/renderer/core/layout/ng/ng_block_node.cc?sq=package:chromium&g=0&l=744&ssfr=1

Calling child.GetCustomLayoutChild() on this element failed because
GetCustomLayoutChild() is expecting block level nodes rather than
inline nodes.

Thus, in the case of custom layouts, we don't want to treat the
element being laid out as a child. To fix this, we must check that
the child returned from NGBlockNode::FirstChild() is not the same as
the node being laid out when collecting children for custom layouts.

Bug: 1038501
Change-Id: I0816dab025f70613634a7c968f3d8abfe46ae01c

Reviewed-on: https://chromium-review.googlesource.com/1992213
WPT-Export-Revision: 45a4f3501e69ac31a44a9d5de8e2090f289e9b5f

Component: web-platform-tests → Layout
Product: Testing → Core

CI Results

Ran 13 Firefox configurations based on mozilla-central, and Firefox, Chrome, and Safari on GitHub CI

Total 2 tests

Status Summary

Firefox

FAIL : 2

Chrome

PASS : 1
CRASH: 1

Safari

FAIL : 2

Links

Gecko CI (Treeherder)
GitHub PR Head
GitHub PR Base

Details

New Tests That Don't Pass

/css/css-layout-api/layout-child/text-02.https.html: FAIL (Chrome: CRASH, Safari: FAIL)
/css/css-layout-api/layout-child/text-01.https.html: FAIL (Chrome: PASS, Safari: FAIL)

Pushed by wptsync@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/fcd44d7a7538
[wpt PR 21115] - [css-layout-api] Custom layouts with only text as children, a=testonly
https://hg.mozilla.org/integration/autoland/rev/e43dedfecd56
[wpt PR 21115] - Update wpt metadata, a=testonly
Status: NEW → RESOLVED
Closed: 4 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla74
You need to log in before you can comment on or make changes to this bug.