Commit ce59d4c2 authored by Morten Stenshorne's avatar Morten Stenshorne Committed by Commit Bot

Add elementsFromPoint() tests for non-atomic inlines.

Added a comment to LayoutInline, pointing out that LayoutNG is doing the
right thing already, while legacy is wrong.

Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_layout_ng
Change-Id: I026404af70c33b0a94900773636d5e138a725976
Reviewed-on: https://chromium-review.googlesource.com/c/1261436Reviewed-by: default avatarAleks Totic <atotic@chromium.org>
Reviewed-by: default avatarKoji Ishii <kojii@chromium.org>
Commit-Queue: Morten Stenshorne <mstensho@chromium.org>
Cr-Commit-Position: refs/heads/master@{#597027}
parent a68eea5e
...@@ -190,6 +190,8 @@ crbug.com/591099 external/wpt/css/css-writing-modes/sizing-orthog-vrl-in-htb-004 ...@@ -190,6 +190,8 @@ crbug.com/591099 external/wpt/css/css-writing-modes/sizing-orthog-vrl-in-htb-004
crbug.com/591099 external/wpt/css/css-writing-modes/vertical-alignment-003.xht [ Pass ] crbug.com/591099 external/wpt/css/css-writing-modes/vertical-alignment-003.xht [ Pass ]
crbug.com/591099 external/wpt/css/css-writing-modes/vertical-alignment-009.xht [ Pass ] crbug.com/591099 external/wpt/css/css-writing-modes/vertical-alignment-009.xht [ Pass ]
crbug.com/591099 external/wpt/css/cssom/cssstyledeclaration-mutationrecord-001.html [ Pass ] crbug.com/591099 external/wpt/css/cssom/cssstyledeclaration-mutationrecord-001.html [ Pass ]
crbug.com/591099 external/wpt/css/cssom-view/elementsFromPoint-inline-vrl-ltr.html [ Pass ]
crbug.com/591099 external/wpt/css/cssom-view/elementsFromPoint-inline-vrl-rtl.html [ Pass ]
crbug.com/591099 external/wpt/css/cssom-view/offsetTopLeftInline.html [ Pass ] crbug.com/591099 external/wpt/css/cssom-view/offsetTopLeftInline.html [ Pass ]
crbug.com/591099 external/wpt/css/selectors/selector-placeholder-shown-type-change-001.html [ Pass ] crbug.com/591099 external/wpt/css/selectors/selector-placeholder-shown-type-change-001.html [ Pass ]
crbug.com/591099 external/wpt/css/selectors/selector-read-write-type-change-002.html [ Pass ] crbug.com/591099 external/wpt/css/selectors/selector-read-write-type-change-002.html [ Pass ]
......
...@@ -419,6 +419,8 @@ crbug.com/859233 external/wpt/css/css-break/hit-test-inline-fragmentation-with-b ...@@ -419,6 +419,8 @@ crbug.com/859233 external/wpt/css/css-break/hit-test-inline-fragmentation-with-b
crbug.com/845902 external/wpt/css/css-sizing/whitespace-and-break.html [ Failure ] crbug.com/845902 external/wpt/css/css-sizing/whitespace-and-break.html [ Failure ]
crbug.com/591099 external/wpt/css/css-sizing/intrinsic-percent-non-replaced-004.html [ Failure ] crbug.com/591099 external/wpt/css/css-sizing/intrinsic-percent-non-replaced-004.html [ Failure ]
crbug.com/591099 external/wpt/css/css-sizing/intrinsic-percent-non-replaced-005.html [ Failure ] crbug.com/591099 external/wpt/css/css-sizing/intrinsic-percent-non-replaced-005.html [ Failure ]
crbug.com/591099 external/wpt/css/cssom-view/elementsFromPoint-inline-vrl-ltr.html [ Failure ]
crbug.com/591099 external/wpt/css/cssom-view/elementsFromPoint-inline-vrl-rtl.html [ Failure ]
crbug.com/591099 external/wpt/css/cssom-view/offsetTopLeftInline.html [ Failure ] crbug.com/591099 external/wpt/css/cssom-view/offsetTopLeftInline.html [ Failure ]
crbug.com/591099 tables/mozilla/bugs/bug14159-1.html [ Failure ] crbug.com/591099 tables/mozilla/bugs/bug14159-1.html [ Failure ]
......
<!DOCTYPE html>
<link rel="author" title="Morten Stenshorne" href="mstensho@chromium.org">
<link rel="help" href="https://www.w3.org/TR/cssom-view-1/#extensions-to-the-document-interface">
<div id="container" style="width:200px; height:200px; writing-mode:horizontal-tb; direction:ltr;">
<span id="target">target</span>
</div>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script>
test(()=> {
var elements = document.elementsFromPoint(15, 15);
assert_equals(elements.length, 4);
assert_equals(elements[0].id, "target");
assert_equals(elements[1].id, "container");
assert_equals(elements[2].nodeName, "BODY");
assert_equals(elements[3].nodeName, "HTML");
}, "elementsFromPoint should return all elements under a point");
</script>
<!DOCTYPE html>
<link rel="author" title="Morten Stenshorne" href="mstensho@chromium.org">
<link rel="help" href="https://www.w3.org/TR/cssom-view-1/#extensions-to-the-document-interface">
<div id="container" style="width:200px; height:200px; writing-mode:horizontal-tb; direction:rtl;">
<span id="target">target</span>
</div>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script>
test(()=> {
var elements = document.elementsFromPoint(200, 15);
assert_equals(elements.length, 4);
assert_equals(elements[0].id, "target");
assert_equals(elements[1].id, "container");
assert_equals(elements[2].nodeName, "BODY");
assert_equals(elements[3].nodeName, "HTML");
}, "elementsFromPoint should return all elements under a point");
</script>
<!DOCTYPE html>
<link rel="author" title="Morten Stenshorne" href="mstensho@chromium.org">
<link rel="help" href="https://www.w3.org/TR/cssom-view-1/#extensions-to-the-document-interface">
<div id="container" style="width:200px; height:200px; writing-mode:vertical-lr; direction:ltr;">
<span id="target">target</span>
</div>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script>
test(()=> {
var elements = document.elementsFromPoint(15, 15);
assert_equals(elements.length, 4);
assert_equals(elements[0].id, "target");
assert_equals(elements[1].id, "container");
assert_equals(elements[2].nodeName, "BODY");
assert_equals(elements[3].nodeName, "HTML");
}, "elementsFromPoint should return all elements under a point");
</script>
<!DOCTYPE html>
<link rel="author" title="Morten Stenshorne" href="mstensho@chromium.org">
<link rel="help" href="https://www.w3.org/TR/cssom-view-1/#extensions-to-the-document-interface">
<div id="container" style="width:200px; height:200px; writing-mode:vertical-lr; direction:rtl;">
<span id="target">target</span>
</div>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script>
test(()=> {
var elements = document.elementsFromPoint(15, 200);
assert_equals(elements.length, 4);
assert_equals(elements[0].id, "target");
assert_equals(elements[1].id, "container");
assert_equals(elements[2].nodeName, "BODY");
assert_equals(elements[3].nodeName, "HTML");
}, "elementsFromPoint should return all elements under a point");
</script>
<!DOCTYPE html>
<link rel="author" title="Morten Stenshorne" href="mstensho@chromium.org">
<link rel="help" href="https://www.w3.org/TR/cssom-view-1/#extensions-to-the-document-interface">
<div id="container" style="width:200px; height:200px; writing-mode:vertical-rl; direction:ltr;">
<span id="target">target</span>
</div>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script>
test(()=> {
var elements = document.elementsFromPoint(200, 15);
assert_equals(elements.length, 4);
assert_equals(elements[0].id, "target");
assert_equals(elements[1].id, "container");
assert_equals(elements[2].nodeName, "BODY");
assert_equals(elements[3].nodeName, "HTML");
}, "elementsFromPoint should return all elements under a point");
</script>
<!DOCTYPE html>
<link rel="author" title="Morten Stenshorne" href="mstensho@chromium.org">
<link rel="help" href="https://www.w3.org/TR/cssom-view-1/#extensions-to-the-document-interface">
<div id="container" style="width:200px; height:200px; writing-mode:vertical-rl; direction:rtl;">
<span id="target">target</span>
</div>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script>
test(()=> {
var elements = document.elementsFromPoint(200, 200);
assert_equals(elements.length, 4);
assert_equals(elements[0].id, "target");
assert_equals(elements[1].id, "container");
assert_equals(elements[2].nodeName, "BODY");
assert_equals(elements[3].nodeName, "HTML");
}, "elementsFromPoint should return all elements under a point");
</script>
...@@ -999,6 +999,10 @@ bool LayoutInline::HitTestCulledInline( ...@@ -999,6 +999,10 @@ bool LayoutInline::HitTestCulledInline(
Region region_result; Region region_result;
HitTestCulledInlinesGeneratorContext context(region_result, HitTestCulledInlinesGeneratorContext context(region_result,
adjusted_location); adjusted_location);
// NG generates purely physical rectangles here, while legacy sets the block
// offset on the rectangles relatively to the block-start. NG is doing the
// right thing. Legacy is wrong.
if (container_fragment) { if (container_fragment) {
DCHECK(EnclosingNGBlockFlow()); DCHECK(EnclosingNGBlockFlow());
DCHECK(container_fragment->IsDescendantOfNotSelf( DCHECK(container_fragment->IsDescendantOfNotSelf(
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment