#include "third_party/blink/renderer/core/dom/first_letter_pseudo_element.h"
#include "third_party/blink/renderer/core/accessibility/ax_object_cache.h"
#include "third_party/blink/renderer/core/css/resolver/style_resolver.h"
#include "third_party/blink/renderer/core/css/style_change_reason.h"
#include "third_party/blink/renderer/core/css/style_request.h"
#include "third_party/blink/renderer/core/dom/element.h"
#include "third_party/blink/renderer/core/dom/node_computed_style.h"
#include "third_party/blink/renderer/core/layout/generated_children.h"
#include "third_party/blink/renderer/core/layout/layout_object.h"
#include "third_party/blink/renderer/core/layout/layout_object_inlines.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/list/layout_list_item.h"
#include "third_party/blink/renderer/platform/text/text_break_iterator.h"
#include "third_party/blink/renderer/platform/wtf/text/code_point_iterator.h"
#include "third_party/blink/renderer/platform/wtf/text/unicode.h"
#include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
namespace blink {
namespace {
inline bool IsPunctuationForFirstLetter(UChar32 c) { … }
bool IsPunctuationForFirstLetter(const String& string, unsigned offset) { … }
inline bool IsNewLine(UChar c) { … }
inline bool IsSpace(UChar c) { … }
inline bool IsSpaceForFirstLetter(UChar c, bool preserve_breaks) { … }
bool IsParentInlineLayoutObject(const LayoutObject* layout_object) { … }
}
unsigned FirstLetterPseudoElement::FirstLetterLength(const String& text,
bool preserve_breaks,
Punctuation& punctuation) { … }
void FirstLetterPseudoElement::Trace(Visitor* visitor) const { … }
namespace {
LayoutObject* FirstInFlowInlineDescendantForFirstLetter(LayoutObject& parent) { … }
}
LayoutText* FirstLetterPseudoElement::FirstLetterTextLayoutObject(
const Element& element) { … }
FirstLetterPseudoElement::FirstLetterPseudoElement(Element* parent)
: … { … }
FirstLetterPseudoElement::~FirstLetterPseudoElement() { … }
void FirstLetterPseudoElement::UpdateTextFragments() { … }
void FirstLetterPseudoElement::ClearRemainingTextLayoutObject() { … }
void FirstLetterPseudoElement::AttachLayoutTree(AttachContext& context) { … }
void FirstLetterPseudoElement::DetachLayoutTree(bool performing_reattach) { … }
LayoutObject* FirstLetterPseudoElement::CreateLayoutObject(
const ComputedStyle& style) { … }
const ComputedStyle* FirstLetterPseudoElement::CustomStyleForLayoutObject(
const StyleRecalcContext& style_recalc_context) { … }
void FirstLetterPseudoElement::AttachFirstLetterTextLayoutObjects(
LayoutText* first_letter_text) { … }
Node* FirstLetterPseudoElement::InnerNodeForHitTesting() { … }
}