summaryrefslogtreecommitdiff
path: root/chromium/third_party/blink/renderer/core/layout/line
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/third_party/blink/renderer/core/layout/line')
-rw-r--r--chromium/third_party/blink/renderer/core/layout/line/breaking_context_inline_headers.h12
-rw-r--r--chromium/third_party/blink/renderer/core/layout/line/ellipsis_box.cc18
-rw-r--r--chromium/third_party/blink/renderer/core/layout/line/ellipsis_box.h4
-rw-r--r--chromium/third_party/blink/renderer/core/layout/line/glyph_overflow.h2
-rw-r--r--chromium/third_party/blink/renderer/core/layout/line/inline_box.cc31
-rw-r--r--chromium/third_party/blink/renderer/core/layout/line/inline_box.h10
-rw-r--r--chromium/third_party/blink/renderer/core/layout/line/inline_flow_box.cc44
-rw-r--r--chromium/third_party/blink/renderer/core/layout/line/inline_flow_box.h10
-rw-r--r--chromium/third_party/blink/renderer/core/layout/line/inline_iterator.h2
-rw-r--r--chromium/third_party/blink/renderer/core/layout/line/inline_text_box.cc19
-rw-r--r--chromium/third_party/blink/renderer/core/layout/line/inline_text_box.h4
-rw-r--r--chromium/third_party/blink/renderer/core/layout/line/layout_text_info.h2
-rw-r--r--chromium/third_party/blink/renderer/core/layout/line/line_box_list.cc31
-rw-r--r--chromium/third_party/blink/renderer/core/layout/line/line_box_list.h14
-rw-r--r--chromium/third_party/blink/renderer/core/layout/line/line_breaker.h2
-rw-r--r--chromium/third_party/blink/renderer/core/layout/line/line_info.h2
-rw-r--r--chromium/third_party/blink/renderer/core/layout/line/line_layout_state.h2
-rw-r--r--chromium/third_party/blink/renderer/core/layout/line/line_width.h2
-rw-r--r--chromium/third_party/blink/renderer/core/layout/line/root_inline_box.cc11
-rw-r--r--chromium/third_party/blink/renderer/core/layout/line/root_inline_box.h4
-rw-r--r--chromium/third_party/blink/renderer/core/layout/line/trailing_objects.h2
-rw-r--r--chromium/third_party/blink/renderer/core/layout/line/word_measurement.h2
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 {