#include "third_party/blink/renderer/core/editing/frame_caret.h"
#include "base/location.h"
#include "base/task/single_thread_task_runner.h"
#include "third_party/blink/public/platform/task_type.h"
#include "third_party/blink/renderer/core/editing/caret_display_item_client.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/local_caret_rect.h"
#include "third_party/blink/renderer/core/editing/position_with_affinity.h"
#include "third_party/blink/renderer/core/editing/selection_editor.h"
#include "third_party/blink/renderer/core/editing/visible_position.h"
#include "third_party/blink/renderer/core/frame/local_frame.h"
#include "third_party/blink/renderer/core/frame/local_frame_view.h"
#include "third_party/blink/renderer/core/html/forms/text_control_element.h"
#include "third_party/blink/renderer/core/layout/layout_block.h"
#include "third_party/blink/renderer/core/layout/layout_embedded_content.h"
#include "third_party/blink/renderer/core/layout/layout_theme.h"
#include "third_party/blink/renderer/core/page/page.h"
#include "third_party/blink/renderer/platform/graphics/compositing/paint_artifact_compositor.h"
#include "third_party/blink/renderer/platform/graphics/graphics_context.h"
#include "third_party/blink/renderer/platform/graphics/paint/scoped_paint_chunk_properties.h"
#include "third_party/blink/renderer/platform/widget/frame_widget.h"
#include "ui/gfx/selection_bound.h"
namespace blink {
namespace {
}
FrameCaret::FrameCaret(LocalFrame& frame,
const SelectionEditor& selection_editor)
: … { … }
FrameCaret::~FrameCaret() = default;
void FrameCaret::Trace(Visitor* visitor) const { … }
EffectPaintPropertyNode::State FrameCaret::CaretEffectNodeState(
bool visible,
const TransformPaintPropertyNodeOrAlias& local_transform_space) const { … }
const PositionWithAffinity FrameCaret::CaretPosition() const { … }
bool FrameCaret::IsActive() const { … }
void FrameCaret::UpdateAppearance() { … }
void FrameCaret::StopCaretBlinkTimer() { … }
void FrameCaret::StartBlinkCaret() { … }
void FrameCaret::SetCaretEnabled(bool enabled) { … }
void FrameCaret::LayoutBlockWillBeDestroyed(const LayoutBlock& block) { … }
void FrameCaret::UpdateStyleAndLayoutIfNeeded() { … }
void FrameCaret::InvalidatePaint(const LayoutBlock& block,
const PaintInvalidatorContext& context) { … }
gfx::Rect FrameCaret::AbsoluteCaretBounds() const { … }
void FrameCaret::EnsureInvalidationOfPreviousLayoutBlock() { … }
bool FrameCaret::ShouldPaintCaret(const LayoutBlock& block) const { … }
bool FrameCaret::ShouldPaintCaret(
const PhysicalBoxFragment& box_fragment) const { … }
void FrameCaret::SetVisibleIfActive(bool visible) { … }
void FrameCaret::PaintCaret(GraphicsContext& context,
const PhysicalOffset& paint_offset) const { … }
bool FrameCaret::ShouldShowCaret() const { … }
void FrameCaret::CaretBlinkTimerFired(TimerBase*) { … }
void FrameCaret::ScheduleVisualUpdateForPaintInvalidationIfNeeded() { … }
void FrameCaret::RecreateCaretBlinkTimerForTesting(
scoped_refptr<base::SingleThreadTaskRunner> task_runner,
const base::TickClock* tick_clock) { … }
}