#include "third_party/blink/renderer/core/dom/text.h"
#include <utility>
#include "third_party/blink/renderer/core/css/resolver/style_resolver.h"
#include "third_party/blink/renderer/core/dom/events/scoped_event_queue.h"
#include "third_party/blink/renderer/core/dom/first_letter_pseudo_element.h"
#include "third_party/blink/renderer/core/dom/layout_tree_builder.h"
#include "third_party/blink/renderer/core/dom/layout_tree_builder_traversal.h"
#include "third_party/blink/renderer/core/dom/node_cloning_data.h"
#include "third_party/blink/renderer/core/dom/node_computed_style.h"
#include "third_party/blink/renderer/core/dom/node_traversal.h"
#include "third_party/blink/renderer/core/dom/shadow_root.h"
#include "third_party/blink/renderer/core/dom/text_diff_range.h"
#include "third_party/blink/renderer/core/dom/whitespace_attacher.h"
#include "third_party/blink/renderer/core/execution_context/agent.h"
#include "third_party/blink/renderer/core/html/html_html_element.h"
#include "third_party/blink/renderer/core/layout/layout_text.h"
#include "third_party/blink/renderer/core/layout/layout_text_fragment.h"
#include "third_party/blink/renderer/core/layout/svg/layout_svg_inline_text.h"
#include "third_party/blink/renderer/core/svg/svg_foreign_object_element.h"
#include "third_party/blink/renderer/core/svg_names.h"
#include "third_party/blink/renderer/platform/bindings/dom_data_store.h"
#include "third_party/blink/renderer/platform/bindings/exception_state.h"
#include "third_party/blink/renderer/platform/wtf/text/string_builder.h"
namespace blink {
Text* Text::Create(Document& document, const String& data) { … }
Text* Text::Create(Document& document, String&& data) { … }
Text* Text::CreateEditingText(Document& document, const String& data) { … }
Node* Text::MergeNextSiblingNodesIfPossible() { … }
Text* Text::splitText(unsigned offset, ExceptionState& exception_state) { … }
static const Text* EarliestLogicallyAdjacentTextNode(const Text* t) { … }
static const Text* LatestLogicallyAdjacentTextNode(const Text* t) { … }
String Text::wholeText() const { … }
Text* Text::ReplaceWholeText(const String& new_text) { … }
String Text::nodeName() const { … }
static inline bool EndsWithWhitespace(const String& text) { … }
static inline bool CanHaveWhitespaceChildren(
const ComputedStyle& style,
const Text::AttachContext& context) { … }
bool Text::TextLayoutObjectIsNeeded(const AttachContext& context,
const ComputedStyle& style) const { … }
static bool IsSVGText(Text* text) { … }
LayoutText* Text::CreateTextLayoutObject() { … }
void Text::AttachLayoutTree(AttachContext& context) { … }
void Text::ReattachLayoutTreeIfNeeded(AttachContext& context) { … }
namespace {
bool NeedsWhitespaceLayoutObject(const ComputedStyle& style) { … }
}
void Text::RecalcTextStyle(const StyleRecalcChange change) { … }
void Text::RebuildTextLayoutTree(WhitespaceAttacher& whitespace_attacher) { … }
static bool ShouldUpdateLayoutByReattaching(const Text& text_node,
LayoutText* text_layout_object) { … }
void Text::UpdateTextLayoutObject(const TextDiffRange& diff) { … }
CharacterData* Text::CloneWithData(Document& factory,
const String& data) const { … }
void Text::Trace(Visitor* visitor) const { … }
}