#include "third_party/blink/renderer/core/editing/commands/editing_commands_utilities.h"
#include "third_party/blink/public/web/web_local_frame_client.h"
#include "third_party/blink/renderer/core/dom/node_computed_style.h"
#include "third_party/blink/renderer/core/dom/text.h"
#include "third_party/blink/renderer/core/editing/commands/selection_for_undo_step.h"
#include "third_party/blink/renderer/core/editing/commands/typing_command.h"
#include "third_party/blink/renderer/core/editing/editing_utilities.h"
#include "third_party/blink/renderer/core/editing/frame_selection.h"
#include "third_party/blink/renderer/core/editing/selection_template.h"
#include "third_party/blink/renderer/core/editing/visible_position.h"
#include "third_party/blink/renderer/core/editing/visible_selection.h"
#include "third_party/blink/renderer/core/frame/local_frame.h"
#include "third_party/blink/renderer/core/frame/local_frame_client.h"
#include "third_party/blink/renderer/core/frame/web_feature_forward.h"
#include "third_party/blink/renderer/core/html/html_body_element.h"
#include "third_party/blink/renderer/core/html/html_frame_set_element.h"
#include "third_party/blink/renderer/core/html/html_head_element.h"
#include "third_party/blink/renderer/core/html/html_html_element.h"
#include "third_party/blink/renderer/core/html/html_olist_element.h"
#include "third_party/blink/renderer/core/html/html_ulist_element.h"
#include "third_party/blink/renderer/core/inspector/console_message.h"
#include "third_party/blink/renderer/core/layout/layout_object.h"
#include "third_party/blink/renderer/core/layout/layout_text.h"
#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
#include "third_party/blink/renderer/platform/instrumentation/use_counter.h"
namespace blink {
static bool HasARenderedDescendant(const Node* node,
const Node* excluded_node) { … }
Node* HighestNodeToRemoveInPruning(Node* node, const Node* exclude_node) { … }
bool IsTableStructureNode(const Node* node) { … }
bool IsNodeRendered(const Node& node) { … }
bool IsInlineElement(const Node* node) { … }
bool IsInlineNode(const Node* node) { … }
Node* EnclosingEmptyListItem(const VisiblePosition& visible_pos) { … }
bool AreIdenticalElements(const Node& first, const Node& second) { … }
static bool IsSpecialHTMLElement(const Node& n) { … }
static HTMLElement* FirstInSpecialElement(const Position& pos) { … }
static HTMLElement* LastInSpecialElement(const Position& pos) { … }
Position PositionBeforeContainingSpecialElement(
const Position& pos,
HTMLElement** containing_special_element) { … }
Position PositionAfterContainingSpecialElement(
const Position& pos,
HTMLElement** containing_special_element) { … }
bool LineBreakExistsAtPosition(const Position& position) { … }
static Position PreviousCharacterPosition(const Position& position,
TextAffinity affinity) { … }
Position LeadingCollapsibleWhitespacePosition(const Position& position,
TextAffinity affinity,
WhitespacePositionOption option) { … }
unsigned NumEnclosingMailBlockquotes(const Position& p) { … }
bool LineBreakExistsAtVisiblePosition(const VisiblePosition& visible_position) { … }
HTMLElement* CreateHTMLElement(Document& document, const QualifiedName& name) { … }
HTMLElement* EnclosingList(const Node* node) { … }
Node* EnclosingListChild(const Node* node) { … }
HTMLElement* OutermostEnclosingList(const Node* node,
const HTMLElement* root_list) { … }
static bool IsVisiblyAdjacent(const Position& first, const Position& second) { … }
bool CanMergeLists(const Element& first_list, const Element& second_list) { … }
VisibleSelection SelectionForParagraphIteration(
const VisibleSelection& original) { … }
const String& NonBreakingSpaceString() { … }
void TidyUpHTMLStructure(Document& document) { … }
InputEvent::InputType DeletionInputTypeFromTextGranularity(
DeleteDirection direction,
TextGranularity granularity) { … }
void DispatchEditableContentChangedEvents(Element* start_root,
Element* end_root) { … }
static void DispatchInputEvent(Element* target,
InputEvent::InputType input_type,
const String& data,
InputEvent::EventIsComposing is_composing) { … }
void DispatchInputEventEditableContentChanged(
Element* start_root,
Element* end_root,
InputEvent::InputType input_type,
const String& data,
InputEvent::EventIsComposing is_composing) { … }
SelectionInDOMTree CorrectedSelectionAfterCommand(
const SelectionForUndoStep& passed_selection,
Document* document) { … }
void ChangeSelectionAfterCommand(LocalFrame* frame,
const SelectionInDOMTree& new_selection,
const SetSelectionOptions& options) { … }
InputEvent::EventIsComposing IsComposingFromCommand(
const CompositeEditCommand* command) { … }
VisiblePosition StartOfBlock(const VisiblePosition& visible_position,
EditingBoundaryCrossingRule rule) { … }
VisiblePosition EndOfBlock(const VisiblePosition& visible_position,
EditingBoundaryCrossingRule rule) { … }
bool IsStartOfBlock(const VisiblePosition& pos) { … }
bool IsEndOfBlock(const VisiblePosition& pos) { … }
}