#include "third_party/blink/renderer/core/layout/inline/fragment_items.h"
#include "base/ranges/algorithm.h"
#include "third_party/blink/renderer/core/layout/inline/fragment_items_builder.h"
#include "third_party/blink/renderer/core/layout/inline/inline_cursor.h"
#include "third_party/blink/renderer/core/layout/layout_block.h"
#include "third_party/blink/renderer/core/layout/physical_box_fragment.h"
#include "third_party/blink/renderer/platform/heap/collection_support/clear_collection_scope.h"
namespace blink {
namespace {
#if DCHECK_IS_ON()
void CheckNoItemsAreAssociated(const PhysicalBoxFragment& fragment) { … }
void CheckIsLast(const FragmentItem& item) { … }
#endif
}
FragmentItems::FragmentItems(FragmentItemsBuilder* builder)
: … { … }
FragmentItems::FragmentItems(const FragmentItems& other)
: … { … }
bool FragmentItems::IsSubSpan(const Span& span) const { … }
void FragmentItems::FinalizeAfterLayout(
const HeapVector<Member<const LayoutResult>, 1>& results,
LayoutBlockFlow& container) { … }
void FragmentItems::ClearAssociatedFragments(LayoutObject* container) { … }
bool FragmentItems::CanReuseAll(InlineCursor* cursor) { … }
const FragmentItem* FragmentItems::EndOfReusableItems(
const PhysicalBoxFragment& container) const { … }
bool FragmentItems::IsContainerForCulledInline(
const LayoutInline& layout_inline,
bool* is_first_container,
bool* is_last_container,
bool* child_has_any_child_items) const { … }
bool FragmentItems::TryDirtyFirstLineFor(const LayoutObject& layout_object,
const LayoutBlockFlow& container) { … }
bool FragmentItems::TryDirtyLastLineFor(const LayoutObject& layout_object,
const LayoutBlockFlow& container) { … }
void FragmentItems::DirtyLinesFromChangedChild(
const LayoutObject& child,
const LayoutBlockFlow& container) { … }
void FragmentItems::DirtyFirstItem(const LayoutBlockFlow& container) { … }
void FragmentItems::DirtyLinesFromNeedsLayout(
const LayoutBlockFlow& container) { … }
bool FragmentItems::ReplaceBoxFragment(
const PhysicalBoxFragment& old_fragment,
const PhysicalBoxFragment& new_fragment,
const PhysicalBoxFragment& containing_fragment) { … }
void FragmentItems::LayoutObjectWillBeMoved(const LayoutObject& layout_object) { … }
void FragmentItems::LayoutObjectWillBeDestroyed(
const LayoutObject& layout_object) { … }
#if DCHECK_IS_ON()
void FragmentItems::CheckAllItemsAreValid() const { … }
#endif
void FragmentItems::Trace(Visitor* visitor) const { … }
}