#include "third_party/blink/renderer/core/layout/svg/svg_text_layout_attributes_builder.h"
#include <optional>
#include "base/containers/adapters.h"
#include "base/ranges/algorithm.h"
#include "third_party/blink/renderer/core/layout/inline/inline_item.h"
#include "third_party/blink/renderer/core/layout/inline/inline_node.h"
#include "third_party/blink/renderer/core/svg/svg_animated_length.h"
#include "third_party/blink/renderer/core/svg/svg_animated_length_list.h"
#include "third_party/blink/renderer/core/svg/svg_animated_number_list.h"
#include "third_party/blink/renderer/core/svg/svg_length_context.h"
#include "third_party/blink/renderer/core/svg/svg_text_positioning_element.h"
namespace blink {
struct SVGTextLengthContext { … };
}
WTF_ALLOW_MOVE_INIT_AND_COMPARE_WITH_MEM_FUNCTIONS(…)
namespace blink {
namespace {
class LayoutAttributesIterator final
: public GarbageCollected<LayoutAttributesIterator> { … };
class LayoutAttributesStack final { … };
bool HasUpdated(const SvgCharacterData& data) { … }
bool HasValidTextLength(const LayoutObject& layout_object) { … }
}
SvgTextLayoutAttributesBuilder::SvgTextLayoutAttributesBuilder(InlineNode ifc)
: … { … }
void SvgTextLayoutAttributesBuilder::Build(
const String& ifc_text_content,
const HeapVector<InlineItem>& items) { … }
SvgInlineNodeData* SvgTextLayoutAttributesBuilder::CreateSvgInlineNodeData() { … }
unsigned SvgTextLayoutAttributesBuilder::IfcTextContentOffsetAt(
wtf_size_t index) { … }
}