#ifdef UNSAFE_BUFFERS_BUILD
#pragma allow_unsafe_buffers
#endif
#include "third_party/blink/renderer/core/layout/inline/fragment_items_builder.h"
#include "base/not_fatal_until.h"
#include "third_party/blink/renderer/core/layout/box_fragment_builder.h"
#include "third_party/blink/renderer/core/layout/geometry/writing_mode_converter.h"
#include "third_party/blink/renderer/core/layout/inline/fragment_items.h"
#include "third_party/blink/renderer/core/layout/inline/inline_cursor.h"
#include "third_party/blink/renderer/core/layout/physical_box_fragment.h"
#include "third_party/blink/renderer/core/layout/svg/svg_text_layout_algorithm.h"
namespace blink {
FragmentItemsBuilder::FragmentItemsBuilder(
WritingDirectionMode writing_direction)
: … { … }
FragmentItemsBuilder::FragmentItemsBuilder(
const InlineNode& node,
WritingDirectionMode writing_direction,
bool is_block_fragmented)
: … { … }
FragmentItemsBuilder::~FragmentItemsBuilder() { … }
void FragmentItemsBuilder::ReleaseCurrentLogicalLineContainer() { … }
void FragmentItemsBuilder::MoveCurrentLogicalLineItemsToMap() { … }
LogicalLineContainer* FragmentItemsBuilder::AcquireLogicalLineContainer() { … }
const LogicalLineItems& FragmentItemsBuilder::GetLogicalLineItems(
const PhysicalLineBoxFragment& line_fragment) const { … }
void FragmentItemsBuilder::AssociateLogicalLineContainer(
LogicalLineContainer* line_container,
const PhysicalFragment& line_fragment) { … }
void FragmentItemsBuilder::AddLine(const PhysicalLineBoxFragment& line_fragment,
const LogicalOffset& offset) { … }
void FragmentItemsBuilder::AddItems(base::span<LogicalLineItem> child_span) { … }
void FragmentItemsBuilder::AddListMarker(
const PhysicalBoxFragment& marker_fragment,
const LogicalOffset& offset) { … }
FragmentItemsBuilder::AddPreviousItemsResult
FragmentItemsBuilder::AddPreviousItems(const PhysicalBoxFragment& container,
const FragmentItems& items,
BoxFragmentBuilder* container_builder,
const FragmentItem* end_item,
wtf_size_t max_lines) { … }
const FragmentItemsBuilder::ItemWithOffsetList& FragmentItemsBuilder::Items(
const PhysicalSize& outer_size) { … }
void FragmentItemsBuilder::ConvertToPhysical(const PhysicalSize& outer_size) { … }
void FragmentItemsBuilder::MoveChildrenInBlockDirection(LayoutUnit delta) { … }
std::optional<PhysicalSize> FragmentItemsBuilder::ToFragmentItems(
const PhysicalSize& outer_size,
void* data) { … }
}