Commit 871334bf authored by Scott Violet's avatar Scott Violet Committed by Commit Bot

blink: fix LayoutObject::OffsetFromContainerInternal

It should only call OffsetFromScrollableContainer() if the
supplied LayoutObject is a scroll container.

BUG=1134184
TEST=covered by clusterfuzz

Change-Id: I1109a8514590882246dfebe46b7340ac654829cd
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2442895Reviewed-by: default avatarIan Kilpatrick <ikilpatrick@chromium.org>
Commit-Queue: Scott Violet <sky@chromium.org>
Cr-Commit-Position: refs/heads/master@{#813272}
parent d4fe6f2b
......@@ -3294,7 +3294,7 @@ PhysicalOffset LayoutObject::OffsetFromContainerInternal(
bool ignore_scroll_offset) const {
NOT_DESTROYED();
DCHECK_EQ(o, Container());
return o->HasNonVisibleOverflow()
return o->IsScrollContainer()
? OffsetFromScrollableContainer(o, ignore_scroll_offset)
: PhysicalOffset();
}
......@@ -3303,7 +3303,7 @@ PhysicalOffset LayoutObject::OffsetFromScrollableContainer(
const LayoutObject* container,
bool ignore_scroll_offset) const {
NOT_DESTROYED();
DCHECK(container->HasNonVisibleOverflow());
DCHECK(container->IsScrollContainer());
const LayoutBox* box = ToLayoutBox(container);
if (!ignore_scroll_offset)
return -PhysicalOffset(box->ScrolledContentOffset());
......
<!DOCTYPE html>
<link rel="author" title="Scott Violet" href="mailto:sky@chromium.org">
<link rel="help" href="https://bugs.chromium.org/p/chromium/issues/detail?id=1134184">
<style>
* { overflow-x: clip }
</style>
<p id="child">child</p>
<script>
window.getSelection().selectAllChildren(
document.getElementById("child"));
</script>
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