Commit b97ba059 authored by Koji Ishii's avatar Koji Ishii Committed by Commit Bot

[LayoutNG] Disallow hit-testing NG list markers

List markers are not selectalbe. Before this change, it still
hits in |LayoutNGMixin::PositionForPoint()| as atomic inline,
which leads to crashes.

Change-Id: I4563c493417cf72900f9da48a052f564fb5f0369
Bug: 964813, 964814, 964925
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1619593
Commit-Queue: Emil A Eklund <eae@chromium.org>
Reviewed-by: default avatarEmil A Eklund <eae@chromium.org>
Cr-Commit-Position: refs/heads/master@{#661376}
parent e43cba67
......@@ -358,7 +358,7 @@ class CORE_EXPORT LayoutInline : public LayoutBoxModelObject {
TransformState&,
VisualRectFlags = kDefaultVisualRectFlags) const final;
PositionWithAffinity PositionForPoint(const LayoutPoint&) const final;
PositionWithAffinity PositionForPoint(const LayoutPoint&) const override;
IntRect BorderBoundingBox() const final {
IntRect bounding_box = EnclosingIntRect(PhysicalLinesBoundingBox());
......
......@@ -48,7 +48,7 @@ class LayoutNGMixin : public Base {
const LayoutPoint& accumulated_offset,
HitTestAction) final;
PositionWithAffinity PositionForPoint(const LayoutPoint&) const final;
PositionWithAffinity PositionForPoint(const LayoutPoint&) const override;
NGPaintFragment* PaintFragment() const final {
// TODO(layout-dev) crbug.com/963103
......
......@@ -24,4 +24,9 @@ bool LayoutNGInsideListMarker::IsOfType(LayoutObjectType type) const {
LayoutInline::IsOfType(type);
}
PositionWithAffinity LayoutNGInsideListMarker::PositionForPoint(
const LayoutPoint&) const {
return CreatePositionWithAffinity(0);
}
} // namespace blink
......@@ -30,6 +30,7 @@ class CORE_EXPORT LayoutNGInsideListMarker final : public LayoutInline {
private:
bool IsOfType(LayoutObjectType) const override;
PositionWithAffinity PositionForPoint(const LayoutPoint&) const override;
};
DEFINE_LAYOUT_OBJECT_TYPE_CASTS(LayoutNGInsideListMarker,
......
......@@ -53,4 +53,9 @@ bool LayoutNGListMarker::NeedsOccupyWholeLine() const {
return false;
}
PositionWithAffinity LayoutNGListMarker::PositionForPoint(
const LayoutPoint&) const {
return CreatePositionWithAffinity(0);
}
} // namespace blink
......@@ -32,6 +32,7 @@ class CORE_EXPORT LayoutNGListMarker final
private:
bool IsOfType(LayoutObjectType) const override;
PositionWithAffinity PositionForPoint(const LayoutPoint&) const override;
};
DEFINE_LAYOUT_OBJECT_TYPE_CASTS(LayoutNGListMarker, IsLayoutNGListMarker());
......
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