diff options
Diffstat (limited to 'chromium/third_party/blink/renderer/core/layout/line')
22 files changed, 116 insertions, 114 deletions
diff --git a/chromium/third_party/blink/renderer/core/layout/line/breaking_context_inline_headers.h b/chromium/third_party/blink/renderer/core/layout/line/breaking_context_inline_headers.h index bb4763cb437..982f459df05 100644 --- a/chromium/third_party/blink/renderer/core/layout/line/breaking_context_inline_headers.h +++ b/chromium/third_party/blink/renderer/core/layout/line/breaking_context_inline_headers.h @@ -45,7 +45,7 @@ #include "third_party/blink/renderer/platform/fonts/character_range.h" #include "third_party/blink/renderer/platform/text/hyphenation.h" #include "third_party/blink/renderer/platform/text/text_break_iterator.h" -#include "third_party/blink/renderer/platform/wtf/allocator.h" +#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h" #include "third_party/blink/renderer/platform/wtf/vector.h" namespace blink { @@ -533,8 +533,14 @@ inline void BreakingContext::HandleFloat() { // early by skipTrailingWhitespace(), and later on they all get placed by // the first float here in handleFloat(). Their position may then be wrong, // but it's too late to do anything about that now. See crbug.com/671577 - if (!floating_object->IsPlaced()) - block_.PositionAndLayoutFloat(*floating_object, block_.LogicalHeight()); + if (!floating_object->IsPlaced()) { + LayoutUnit logical_top = block_.LogicalHeight(); + if (const FloatingObject* last_placed_float = block_.LastPlacedFloat()) { + logical_top = std::max(logical_top, + block_.LogicalTopForFloat(*last_placed_float)); + } + block_.PositionAndLayoutFloat(*floating_object, logical_top); + } // Check if it fits in the current line; if it does, place it now, // otherwise, place it after moving to next line (in newLine() func). diff --git a/chromium/third_party/blink/renderer/core/layout/line/ellipsis_box.cc b/chromium/third_party/blink/renderer/core/layout/line/ellipsis_box.cc index 416e2791354..0dc0d846ea7 100644 --- a/chromium/third_party/blink/renderer/core/layout/line/ellipsis_box.cc +++ b/chromium/third_party/blink/renderer/core/layout/line/ellipsis_box.cc @@ -49,23 +49,19 @@ IntRect EllipsisBox::SelectionRect() const { } bool EllipsisBox::NodeAtPoint(HitTestResult& result, - const HitTestLocation& location_in_container, - const LayoutPoint& accumulated_offset, + const HitTestLocation& hit_test_location, + const PhysicalOffset& accumulated_offset, LayoutUnit line_top, LayoutUnit line_bottom) { - LayoutPoint adjusted_location = accumulated_offset + Location(); - - LayoutPoint box_origin = PhysicalLocation(); - box_origin.MoveBy(accumulated_offset); - LayoutRect bounds_rect(box_origin, Size()); + PhysicalOffset adjusted_location = accumulated_offset + PhysicalLocation(); + PhysicalRect bounds_rect(adjusted_location, Size()); if (VisibleToHitTestRequest(result.GetHitTestRequest()) && bounds_rect.Intersects( - HitTestLocation::RectForPoint(location_in_container.Point()))) { + HitTestLocation::RectForPoint(hit_test_location.Point()))) { GetLineLayoutItem().UpdateHitTestResult( - result, - location_in_container.Point() - ToLayoutSize(adjusted_location)); + result, hit_test_location.Point() - adjusted_location); if (result.AddNodeToListBasedTestResult(GetLineLayoutItem().GetNode(), - location_in_container, + hit_test_location, bounds_rect) == kStopHitTesting) return true; } diff --git a/chromium/third_party/blink/renderer/core/layout/line/ellipsis_box.h b/chromium/third_party/blink/renderer/core/layout/line/ellipsis_box.h index d5f4370c05f..a38a07da9a6 100644 --- a/chromium/third_party/blink/renderer/core/layout/line/ellipsis_box.h +++ b/chromium/third_party/blink/renderer/core/layout/line/ellipsis_box.h @@ -57,8 +57,8 @@ class EllipsisBox final : public InlineBox { LayoutUnit line_top, LayoutUnit line_bottom) const override; bool NodeAtPoint(HitTestResult&, - const HitTestLocation& location_in_container, - const LayoutPoint& accumulated_offset, + const HitTestLocation&, + const PhysicalOffset& accumulated_offset, LayoutUnit line_top, LayoutUnit line_bottom) override; IntRect SelectionRect() const; diff --git a/chromium/third_party/blink/renderer/core/layout/line/glyph_overflow.h b/chromium/third_party/blink/renderer/core/layout/line/glyph_overflow.h index 7bd75587dd1..c03a2cda32e 100644 --- a/chromium/third_party/blink/renderer/core/layout/line/glyph_overflow.h +++ b/chromium/third_party/blink/renderer/core/layout/line/glyph_overflow.h @@ -27,7 +27,7 @@ #include <algorithm> #include "third_party/blink/renderer/platform/geometry/float_rect.h" -#include "third_party/blink/renderer/platform/wtf/allocator.h" +#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h" namespace blink { diff --git a/chromium/third_party/blink/renderer/core/layout/line/inline_box.cc b/chromium/third_party/blink/renderer/core/layout/line/inline_box.cc index 3baa2cb9239..32e388df710 100644 --- a/chromium/third_party/blink/renderer/core/layout/line/inline_box.cc +++ b/chromium/third_party/blink/renderer/core/layout/line/inline_box.cc @@ -142,7 +142,7 @@ void InlineBox::DumpBox(StringBuilder& string_inlinebox) const { string_inlinebox.Append(' '); string_inlinebox.AppendFormat( "\t%s %p {pos=%g,%g size=%g,%g} baseline=%i/%i", - GetLineLayoutItem().DecoratedName().Ascii().data(), + GetLineLayoutItem().DecoratedName().Ascii().c_str(), GetLineLayoutItem().DebugPointer(), X().ToFloat(), Y().ToFloat(), Width().ToFloat(), Height().ToFloat(), BaselinePosition(kAlphabeticBaseline).ToInt(), @@ -239,22 +239,20 @@ void InlineBox::Paint(const PaintInfo& paint_info, } bool InlineBox::NodeAtPoint(HitTestResult& result, - const HitTestLocation& location_in_container, - const LayoutPoint& accumulated_offset, + const HitTestLocation& hit_test_location, + const PhysicalOffset& accumulated_offset, LayoutUnit /* lineTop */, LayoutUnit /* lineBottom */) { // Hit test all phases of replaced elements atomically, as though the replaced // element established its own stacking context. (See Appendix E.2, section // 6.4 on inline block/table elements in the CSS2.1 specification.) - LayoutPoint child_point = accumulated_offset; - // Faster than calling containingBlock(). - if (Parent()->GetLineLayoutItem().HasFlippedBlocksWritingMode()) - child_point = - GetLineLayoutItem().ContainingBlock().FlipForWritingModeForChild( - LineLayoutBox(GetLineLayoutItem()), child_point); - - return GetLineLayoutItem().HitTestAllPhases(result, location_in_container, - child_point); + PhysicalOffset layout_item_accumulated_offset = accumulated_offset; + if (GetLineLayoutItem().IsBox()) { + layout_item_accumulated_offset += + LineLayoutBox(GetLineLayoutItem()).PhysicalLocation(); + } + return GetLineLayoutItem().HitTestAllPhases(result, hit_test_location, + layout_item_accumulated_offset); } const RootInlineBox& InlineBox::Root() const { @@ -336,10 +334,10 @@ void InlineBox::ClearKnownToHaveNoOverflow() { Parent()->ClearKnownToHaveNoOverflow(); } -LayoutPoint InlineBox::PhysicalLocation() const { +PhysicalOffset InlineBox::PhysicalLocation() const { LayoutRect rect(Location(), Size()); FlipForWritingMode(rect); - return rect.Location(); + return PhysicalOffset(rect.Location()); } void InlineBox::FlipForWritingMode(LayoutRect& rect) const { @@ -354,13 +352,14 @@ LayoutPoint InlineBox::FlipForWritingMode(const LayoutPoint& point) const { return Root().Block().FlipForWritingMode(point); } -void InlineBox::SetShouldDoFullPaintInvalidationRecursively() { +void InlineBox::SetShouldDoFullPaintInvalidationForFirstLine() { + GetLineLayoutItem().StyleRef().ClearCachedPseudoStyles(); GetLineLayoutItem().SetShouldDoFullPaintInvalidation(); if (!IsInlineFlowBox()) return; for (InlineBox* child = ToInlineFlowBox(this)->FirstChild(); child; child = child->NextOnLine()) - child->SetShouldDoFullPaintInvalidationRecursively(); + child->SetShouldDoFullPaintInvalidationForFirstLine(); } void InlineBox::SetLineLayoutItemShouldDoFullPaintInvalidationIfNeeded() { diff --git a/chromium/third_party/blink/renderer/core/layout/line/inline_box.h b/chromium/third_party/blink/renderer/core/layout/line/inline_box.h index 96181986e3d..2d5dc2026b9 100644 --- a/chromium/third_party/blink/renderer/core/layout/line/inline_box.h +++ b/chromium/third_party/blink/renderer/core/layout/line/inline_box.h @@ -102,8 +102,8 @@ class CORE_EXPORT InlineBox : public DisplayItemClient { LayoutUnit line_top, LayoutUnit line_bottom) const; virtual bool NodeAtPoint(HitTestResult&, - const HitTestLocation& location_in_container, - const LayoutPoint& accumulated_offset, + const HitTestLocation&, + const PhysicalOffset& accumulated_offset, LayoutUnit line_top, LayoutUnit line_bottom); @@ -353,7 +353,7 @@ class CORE_EXPORT InlineBox : public DisplayItemClient { // Physical location of the top-left corner of the box in the containing // block. - LayoutPoint PhysicalLocation() const; + PhysicalOffset PhysicalLocation() const; // TODO(szager): The Rect versions should return a rect, not modify the // argument. @@ -374,8 +374,8 @@ class CORE_EXPORT InlineBox : public DisplayItemClient { } // Set all LineLayoutItems in the inline box subtree should do full paint - // invalidation. - void SetShouldDoFullPaintInvalidationRecursively(); + // invalidation and clear the first line style cache. + void SetShouldDoFullPaintInvalidationForFirstLine(); #define ADD_BOOLEAN_BITFIELD(field_name_, MethodNameBase) \ public: \ diff --git a/chromium/third_party/blink/renderer/core/layout/line/inline_flow_box.cc b/chromium/third_party/blink/renderer/core/layout/line/inline_flow_box.cc index f9767278f3e..909f16a6fed 100644 --- a/chromium/third_party/blink/renderer/core/layout/line/inline_flow_box.cc +++ b/chromium/third_party/blink/renderer/core/layout/line/inline_flow_box.cc @@ -1354,14 +1354,14 @@ void InlineFlowBox::SetLayoutOverflowFromLogicalRect( } bool InlineFlowBox::NodeAtPoint(HitTestResult& result, - const HitTestLocation& location_in_container, - const LayoutPoint& accumulated_offset, + const HitTestLocation& hit_test_location, + const PhysicalOffset& accumulated_offset, LayoutUnit line_top, LayoutUnit line_bottom) { - LayoutRect overflow_rect(VisualOverflowRect(line_top, line_bottom)); - FlipForWritingMode(overflow_rect); - overflow_rect.MoveBy(accumulated_offset); - if (!location_in_container.Intersects(overflow_rect)) + PhysicalRect overflow_rect = + PhysicalVisualOverflowRect(line_top, line_bottom); + overflow_rect.Move(accumulated_offset); + if (!hit_test_location.Intersects(overflow_rect)) return false; // We need to hit test both our inline children (Inline Boxes) and culled @@ -1377,11 +1377,10 @@ bool InlineFlowBox::NodeAtPoint(HitTestResult& result, // Layers will handle hit testing themselves. if (!curr->BoxModelObject() || !curr->BoxModelObject().HasSelfPaintingLayer()) { - if (curr->NodeAtPoint(result, location_in_container, accumulated_offset, + if (curr->NodeAtPoint(result, hit_test_location, accumulated_offset, line_top, line_bottom)) { GetLineLayoutItem().UpdateHitTestResult( - result, - location_in_container.Point() - ToLayoutSize(accumulated_offset)); + result, hit_test_location.Point() - accumulated_offset); return true; } } @@ -1412,7 +1411,7 @@ bool InlineFlowBox::NodeAtPoint(HitTestResult& result, if (culled_parent.IsLayoutInline() && LineLayoutInline(culled_parent) - .HitTestCulledInline(result, location_in_container, + .HitTestCulledInline(result, hit_test_location, accumulated_offset)) return true; @@ -1422,38 +1421,37 @@ bool InlineFlowBox::NodeAtPoint(HitTestResult& result, if (GetLineLayoutItem().IsBox() && ToLayoutBox(LineLayoutAPIShim::LayoutObjectFrom(GetLineLayoutItem())) - ->HitTestClippedOutByBorder(location_in_container, - overflow_rect.Location())) + ->HitTestClippedOutByBorder(hit_test_location, overflow_rect.offset)) return false; if (GetLineLayoutItem().StyleRef().HasBorderRadius()) { + // TODO(layout-dev): LogicalFrameRect() seems incorrect. LayoutRect border_rect = LogicalFrameRect(); - border_rect.MoveBy(accumulated_offset); + border_rect.MoveBy(accumulated_offset.ToLayoutPoint()); FloatRoundedRect border = GetLineLayoutItem().StyleRef().GetRoundedBorderFor( border_rect, IncludeLogicalLeftEdge(), IncludeLogicalRightEdge()); - if (!location_in_container.Intersects(border)) + if (!hit_test_location.Intersects(border)) return false; } // Now check ourselves. - LayoutRect rect = + LayoutRect layout_rect = InlineFlowBoxPainter(*this).FrameRectClampedToLineTopAndBottomIfNeeded(); - - FlipForWritingMode(rect); - rect.MoveBy(accumulated_offset); + FlipForWritingMode(layout_rect); + PhysicalRect rect(layout_rect); + rect.Move(accumulated_offset); // Pixel snap hit testing. - rect = LayoutRect(PixelSnappedIntRect(rect)); + rect = PhysicalRect(PixelSnappedIntRect(rect)); if (VisibleToHitTestRequest(result.GetHitTestRequest()) && - location_in_container.Intersects(rect)) { + hit_test_location.Intersects(rect)) { // Don't add in m_topLeft here, we want coords in the containing block's // coordinate space. GetLineLayoutItem().UpdateHitTestResult( - result, FlipForWritingMode(location_in_container.Point() - - ToLayoutSize(accumulated_offset))); + result, hit_test_location.Point() - accumulated_offset); if (result.AddNodeToListBasedTestResult(GetLineLayoutItem().GetNode(), - location_in_container, + hit_test_location, rect) == kStopHitTesting) return true; } diff --git a/chromium/third_party/blink/renderer/core/layout/line/inline_flow_box.h b/chromium/third_party/blink/renderer/core/layout/line/inline_flow_box.h index c8b322d2950..4055260939c 100644 --- a/chromium/third_party/blink/renderer/core/layout/line/inline_flow_box.h +++ b/chromium/third_party/blink/renderer/core/layout/line/inline_flow_box.h @@ -129,8 +129,8 @@ class InlineFlowBox : public InlineBox { LayoutUnit line_top, LayoutUnit line_bottom) const override; bool NodeAtPoint(HitTestResult&, - const HitTestLocation& location_in_container, - const LayoutPoint& accumulated_offset, + const HitTestLocation&, + const PhysicalOffset& accumulated_offset, LayoutUnit line_top, LayoutUnit line_bottom) override; @@ -318,6 +318,12 @@ class InlineFlowBox : public InlineBox { ? overflow_->visual_overflow->VisualOverflowRect() : FrameRectIncludingLineHeight(line_top, line_bottom); } + PhysicalRect PhysicalVisualOverflowRect(LayoutUnit line_top, + LayoutUnit line_bottom) const { + LayoutRect rect = VisualOverflowRect(line_top, line_bottom); + FlipForWritingMode(rect); + return PhysicalRect(rect); + } LayoutUnit LogicalLeftVisualOverflow() const { return VisualOverflowIsSet() ? (IsHorizontal() diff --git a/chromium/third_party/blink/renderer/core/layout/line/inline_iterator.h b/chromium/third_party/blink/renderer/core/layout/line/inline_iterator.h index 6a481c21487..ef198a493ca 100644 --- a/chromium/third_party/blink/renderer/core/layout/line/inline_iterator.h +++ b/chromium/third_party/blink/renderer/core/layout/line/inline_iterator.h @@ -29,7 +29,7 @@ #include "third_party/blink/renderer/core/layout/api/line_layout_text.h" #include "third_party/blink/renderer/core/layout/bidi_run.h" #include "third_party/blink/renderer/core/layout/layout_block_flow.h" -#include "third_party/blink/renderer/platform/wtf/allocator.h" +#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h" #include "third_party/blink/renderer/platform/wtf/std_lib_extras.h" namespace blink { diff --git a/chromium/third_party/blink/renderer/core/layout/line/inline_text_box.cc b/chromium/third_party/blink/renderer/core/layout/line/inline_text_box.cc index 7b5efaccde7..98caacb9488 100644 --- a/chromium/third_party/blink/renderer/core/layout/line/inline_text_box.cc +++ b/chromium/third_party/blink/renderer/core/layout/line/inline_text_box.cc @@ -430,23 +430,22 @@ bool InlineTextBox::IsLineBreak() const { } bool InlineTextBox::NodeAtPoint(HitTestResult& result, - const HitTestLocation& location_in_container, - const LayoutPoint& accumulated_offset, + const HitTestLocation& hit_test_location, + const PhysicalOffset& accumulated_offset, LayoutUnit /* lineTop */, LayoutUnit /*lineBottom*/) { if (IsLineBreak() || truncation_ == kCFullTruncation) return false; - LayoutPoint box_origin = PhysicalLocation(); - box_origin.MoveBy(accumulated_offset); - LayoutRect rect(box_origin, Size()); + PhysicalOffset box_origin = PhysicalLocation(); + box_origin += accumulated_offset; + PhysicalRect rect(box_origin, Size()); if (VisibleToHitTestRequest(result.GetHitTestRequest()) && - location_in_container.Intersects(rect)) { + hit_test_location.Intersects(rect)) { GetLineLayoutItem().UpdateHitTestResult( - result, FlipForWritingMode(location_in_container.Point() - - ToLayoutSize(accumulated_offset))); + result, hit_test_location.Point() - accumulated_offset); if (result.AddNodeToListBasedTestResult(GetLineLayoutItem().GetNode(), - location_in_container, + hit_test_location, rect) == kStopHitTesting) return true; } @@ -711,7 +710,7 @@ void InlineTextBox::DumpBox(StringBuilder& string_inlinetextbox) const { while (string_inlinetextbox.length() < kLayoutObjectCharacterOffset) string_inlinetextbox.Append(' '); string_inlinetextbox.AppendFormat("(%d,%d) \"%s\"", Start(), Start() + Len(), - value.Utf8().data()); + value.Utf8().c_str()); } #endif diff --git a/chromium/third_party/blink/renderer/core/layout/line/inline_text_box.h b/chromium/third_party/blink/renderer/core/layout/line/inline_text_box.h index 0c97dfea4bb..f2812873467 100644 --- a/chromium/third_party/blink/renderer/core/layout/line/inline_text_box.h +++ b/chromium/third_party/blink/renderer/core/layout/line/inline_text_box.h @@ -159,8 +159,8 @@ class CORE_EXPORT InlineTextBox : public InlineBox { LayoutUnit line_top, LayoutUnit line_bottom) const override; bool NodeAtPoint(HitTestResult&, - const HitTestLocation& location_in_container, - const LayoutPoint& accumulated_offset, + const HitTestLocation&, + const PhysicalOffset& accumulated_offset, LayoutUnit line_top, LayoutUnit line_bottom) override; diff --git a/chromium/third_party/blink/renderer/core/layout/line/layout_text_info.h b/chromium/third_party/blink/renderer/core/layout/line/layout_text_info.h index 80979ce2b5e..47b67824755 100644 --- a/chromium/third_party/blink/renderer/core/layout/line/layout_text_info.h +++ b/chromium/third_party/blink/renderer/core/layout/line/layout_text_info.h @@ -25,7 +25,7 @@ #define THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_LINE_LAYOUT_TEXT_INFO_H_ #include "third_party/blink/renderer/platform/text/text_break_iterator.h" -#include "third_party/blink/renderer/platform/wtf/allocator.h" +#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h" namespace blink { diff --git a/chromium/third_party/blink/renderer/core/layout/line/line_box_list.cc b/chromium/third_party/blink/renderer/core/layout/line/line_box_list.cc index de4cd29a24a..9d9d861f00c 100644 --- a/chromium/third_party/blink/renderer/core/layout/line/line_box_list.cc +++ b/chromium/third_party/blink/renderer/core/layout/line/line_box_list.cc @@ -50,13 +50,13 @@ void InlineBoxList<InlineBoxType>::AssertIsEmpty() { const LineBoxList& LineBoxList::Empty() { // Need to use "static" because DISALLOW_NEW. - static LineBoxList empty; + static const LineBoxList empty; return empty; } const InlineTextBoxList& InlineTextBoxList::Empty() { // Need to use "static" because DISALLOW_NEW. - static InlineTextBoxList empty; + static const InlineTextBoxList empty; return empty; } @@ -145,7 +145,7 @@ bool LineBoxList::RangeIntersectsRect(LineLayoutBoxModel layout_object, LayoutUnit logical_top, LayoutUnit logical_bottom, const CullRect& cull_rect, - const LayoutPoint& offset) const { + const PhysicalOffset& offset) const { LineLayoutBox block; if (layout_object.IsBox()) block = LineLayoutBox(layout_object); @@ -157,11 +157,11 @@ bool LineBoxList::RangeIntersectsRect(LineLayoutBoxModel layout_object, physical_start = std::min(physical_start, physical_end); if (layout_object.StyleRef().IsHorizontalWritingMode()) { - physical_start += offset.Y(); + physical_start += offset.top; return cull_rect.IntersectsVerticalRange(physical_start, physical_start + physical_extent); } else { - physical_start += offset.X(); + physical_start += offset.left; return cull_rect.IntersectsHorizontalRange( physical_start, physical_start + physical_extent); } @@ -169,7 +169,7 @@ bool LineBoxList::RangeIntersectsRect(LineLayoutBoxModel layout_object, bool LineBoxList::AnyLineIntersectsRect(LineLayoutBoxModel layout_object, const CullRect& cull_rect, - const LayoutPoint& offset) const { + const PhysicalOffset& offset) const { // We can check the first box and last box and avoid painting/hit testing if // we don't intersect. This is a quick short-circuit that we can take to avoid // walking any lines. @@ -190,7 +190,7 @@ bool LineBoxList::AnyLineIntersectsRect(LineLayoutBoxModel layout_object, bool LineBoxList::LineIntersectsDirtyRect(LineLayoutBoxModel layout_object, InlineFlowBox* box, const CullRect& cull_rect, - const LayoutPoint& offset) const { + const PhysicalOffset& offset) const { RootInlineBox& root = box->Root(); LayoutUnit logical_top = std::min<LayoutUnit>( box->LogicalTopVisualOverflow(root.LineTop()), root.SelectionTop()); @@ -203,8 +203,8 @@ bool LineBoxList::LineIntersectsDirtyRect(LineLayoutBoxModel layout_object, bool LineBoxList::HitTest(LineLayoutBoxModel layout_object, HitTestResult& result, - const HitTestLocation& location_in_container, - const LayoutPoint& accumulated_offset, + const HitTestLocation& hit_test_location, + const PhysicalOffset& accumulated_offset, HitTestAction hit_test_action) const { if (hit_test_action != kHitTestForeground) return false; @@ -217,14 +217,14 @@ bool LineBoxList::HitTest(LineLayoutBoxModel layout_object, if (!First()) return false; - const LayoutPoint& point = location_in_container.Point(); - IntRect hit_search_bounding_box = location_in_container.EnclosingIntRect(); + const PhysicalOffset& point = hit_test_location.Point(); + IntRect hit_search_bounding_box = hit_test_location.EnclosingIntRect(); CullRect cull_rect( First()->IsHorizontal() - ? IntRect(point.X().ToInt(), hit_search_bounding_box.Y(), 1, + ? IntRect(point.left.ToInt(), hit_search_bounding_box.Y(), 1, hit_search_bounding_box.Height()) - : IntRect(hit_search_bounding_box.X(), point.Y().ToInt(), + : IntRect(hit_search_bounding_box.X(), point.top.ToInt(), hit_search_bounding_box.Width(), 1)); if (!AnyLineIntersectsRect(layout_object, cull_rect, accumulated_offset)) @@ -240,12 +240,11 @@ bool LineBoxList::HitTest(LineLayoutBoxModel layout_object, curr->LogicalBottomVisualOverflow(root.LineBottom()), cull_rect, accumulated_offset)) { bool inside = - curr->NodeAtPoint(result, location_in_container, accumulated_offset, + curr->NodeAtPoint(result, hit_test_location, accumulated_offset, root.LineTop(), root.LineBottom()); if (inside) { layout_object.UpdateHitTestResult( - result, - location_in_container.Point() - ToLayoutSize(accumulated_offset)); + result, hit_test_location.Point() - accumulated_offset); return true; } } diff --git a/chromium/third_party/blink/renderer/core/layout/line/line_box_list.h b/chromium/third_party/blink/renderer/core/layout/line/line_box_list.h index 749752d0d47..de7fdd074ce 100644 --- a/chromium/third_party/blink/renderer/core/layout/line/line_box_list.h +++ b/chromium/third_party/blink/renderer/core/layout/line/line_box_list.h @@ -31,7 +31,7 @@ #include "third_party/blink/renderer/core/core_export.h" #include "third_party/blink/renderer/core/layout/api/hit_test_action.h" -#include "third_party/blink/renderer/platform/wtf/allocator.h" +#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h" #include "third_party/blink/renderer/platform/wtf/assertions.h" namespace blink { @@ -41,10 +41,10 @@ class HitTestLocation; class HitTestResult; class InlineFlowBox; class InlineTextBox; -class LayoutPoint; class LayoutUnit; class LineLayoutBoxModel; class LineLayoutItem; +struct PhysicalOffset; template <typename InlineBoxType> class InlineBoxList { @@ -154,23 +154,23 @@ class CORE_EXPORT LineBoxList : public InlineBoxList<InlineFlowBox> { bool HitTest(LineLayoutBoxModel, HitTestResult&, - const HitTestLocation& location_in_container, - const LayoutPoint& accumulated_offset, + const HitTestLocation&, + const PhysicalOffset& accumulated_offset, HitTestAction) const; bool AnyLineIntersectsRect(LineLayoutBoxModel, const CullRect&, - const LayoutPoint&) const; + const PhysicalOffset&) const; bool LineIntersectsDirtyRect(LineLayoutBoxModel, InlineFlowBox*, const CullRect&, - const LayoutPoint&) const; + const PhysicalOffset&) const; private: bool RangeIntersectsRect(LineLayoutBoxModel, LayoutUnit logical_top, LayoutUnit logical_bottom, const CullRect&, - const LayoutPoint&) const; + const PhysicalOffset&) const; }; class CORE_EXPORT InlineTextBoxList : public InlineBoxList<InlineTextBox> { diff --git a/chromium/third_party/blink/renderer/core/layout/line/line_breaker.h b/chromium/third_party/blink/renderer/core/layout/line/line_breaker.h index 3cdc60f3093..0fb96071048 100644 --- a/chromium/third_party/blink/renderer/core/layout/line/line_breaker.h +++ b/chromium/third_party/blink/renderer/core/layout/line/line_breaker.h @@ -27,7 +27,7 @@ #include "third_party/blink/renderer/core/layout/api/line_layout_block_flow.h" #include "third_party/blink/renderer/core/layout/line/inline_iterator.h" #include "third_party/blink/renderer/core/layout/line/line_info.h" -#include "third_party/blink/renderer/platform/wtf/allocator.h" +#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h" #include "third_party/blink/renderer/platform/wtf/vector.h" namespace blink { diff --git a/chromium/third_party/blink/renderer/core/layout/line/line_info.h b/chromium/third_party/blink/renderer/core/layout/line/line_info.h index 0f737c094fd..f8a87920903 100644 --- a/chromium/third_party/blink/renderer/core/layout/line/line_info.h +++ b/chromium/third_party/blink/renderer/core/layout/line/line_info.h @@ -27,7 +27,7 @@ #include "third_party/blink/renderer/core/layout/line/line_width.h" #include "third_party/blink/renderer/core/style/computed_style_constants.h" -#include "third_party/blink/renderer/platform/wtf/allocator.h" +#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h" namespace blink { diff --git a/chromium/third_party/blink/renderer/core/layout/line/line_layout_state.h b/chromium/third_party/blink/renderer/core/layout/line/line_layout_state.h index 1076bc614d3..d37d2348be3 100644 --- a/chromium/third_party/blink/renderer/core/layout/line/line_layout_state.h +++ b/chromium/third_party/blink/renderer/core/layout/line/line_layout_state.h @@ -27,7 +27,7 @@ #include "third_party/blink/renderer/core/layout/layout_block_flow.h" #include "third_party/blink/renderer/platform/geometry/layout_rect.h" -#include "third_party/blink/renderer/platform/wtf/allocator.h" +#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h" namespace blink { diff --git a/chromium/third_party/blink/renderer/core/layout/line/line_width.h b/chromium/third_party/blink/renderer/core/layout/line/line_width.h index 6ca5d0752bd..83081ea7d80 100644 --- a/chromium/third_party/blink/renderer/core/layout/line/line_width.h +++ b/chromium/third_party/blink/renderer/core/layout/line/line_width.h @@ -32,7 +32,7 @@ #include "third_party/blink/renderer/core/layout/api/line_layout_block_flow.h" #include "third_party/blink/renderer/platform/geometry/layout_unit.h" -#include "third_party/blink/renderer/platform/wtf/allocator.h" +#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h" namespace blink { diff --git a/chromium/third_party/blink/renderer/core/layout/line/root_inline_box.cc b/chromium/third_party/blink/renderer/core/layout/line/root_inline_box.cc index 173c2525a24..a60dcafcc26 100644 --- a/chromium/third_party/blink/renderer/core/layout/line/root_inline_box.cc +++ b/chromium/third_party/blink/renderer/core/layout/line/root_inline_box.cc @@ -181,21 +181,20 @@ void RootInlineBox::Paint(const PaintInfo& paint_info, } bool RootInlineBox::NodeAtPoint(HitTestResult& result, - const HitTestLocation& location_in_container, - const LayoutPoint& accumulated_offset, + const HitTestLocation& hit_test_location, + const PhysicalOffset& accumulated_offset, LayoutUnit line_top, LayoutUnit line_bottom) { if (HasEllipsisBox() && VisibleToHitTestRequest(result.GetHitTestRequest())) { - if (GetEllipsisBox()->NodeAtPoint(result, location_in_container, + if (GetEllipsisBox()->NodeAtPoint(result, hit_test_location, accumulated_offset, line_top, line_bottom)) { GetLineLayoutItem().UpdateHitTestResult( - result, - location_in_container.Point() - ToLayoutSize(accumulated_offset)); + result, hit_test_location.Point() - accumulated_offset); return true; } } - return InlineFlowBox::NodeAtPoint(result, location_in_container, + return InlineFlowBox::NodeAtPoint(result, hit_test_location, accumulated_offset, line_top, line_bottom); } diff --git a/chromium/third_party/blink/renderer/core/layout/line/root_inline_box.h b/chromium/third_party/blink/renderer/core/layout/line/root_inline_box.h index a5660d77128..73b8be82d3a 100644 --- a/chromium/third_party/blink/renderer/core/layout/line/root_inline_box.h +++ b/chromium/third_party/blink/renderer/core/layout/line/root_inline_box.h @@ -139,8 +139,8 @@ class RootInlineBox : public InlineFlowBox { LayoutUnit line_top, LayoutUnit line_bottom) const override; bool NodeAtPoint(HitTestResult&, - const HitTestLocation& location_in_container, - const LayoutPoint& accumulated_offset, + const HitTestLocation&, + const PhysicalOffset& accumulated_offset, LayoutUnit line_top, LayoutUnit line_bottom) override; diff --git a/chromium/third_party/blink/renderer/core/layout/line/trailing_objects.h b/chromium/third_party/blink/renderer/core/layout/line/trailing_objects.h index 0da53a2cb71..f929454e873 100644 --- a/chromium/third_party/blink/renderer/core/layout/line/trailing_objects.h +++ b/chromium/third_party/blink/renderer/core/layout/line/trailing_objects.h @@ -27,7 +27,7 @@ #include "third_party/blink/renderer/core/layout/api/line_layout_item.h" #include "third_party/blink/renderer/core/layout/api/line_layout_text.h" -#include "third_party/blink/renderer/platform/wtf/allocator.h" +#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h" #include "third_party/blink/renderer/platform/wtf/vector.h" namespace blink { diff --git a/chromium/third_party/blink/renderer/core/layout/line/word_measurement.h b/chromium/third_party/blink/renderer/core/layout/line/word_measurement.h index b129d8f74eb..3bb1f4bbeb7 100644 --- a/chromium/third_party/blink/renderer/core/layout/line/word_measurement.h +++ b/chromium/third_party/blink/renderer/core/layout/line/word_measurement.h @@ -26,7 +26,7 @@ #define THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_LINE_WORD_MEASUREMENT_H_ #include "third_party/blink/renderer/platform/fonts/simple_font_data.h" -#include "third_party/blink/renderer/platform/wtf/allocator.h" +#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h" #include "third_party/blink/renderer/platform/wtf/hash_set.h" namespace blink { |