| Index: third_party/WebKit/Source/core/editing/FrameCaret.h
|
| diff --git a/third_party/WebKit/Source/core/editing/FrameCaret.h b/third_party/WebKit/Source/core/editing/FrameCaret.h
|
| index b50e898ea1e5149d67d3a6dde381ba6625bc09a2..6fc747452faab4ef84588891e12c57e6fba5960b 100644
|
| --- a/third_party/WebKit/Source/core/editing/FrameCaret.h
|
| +++ b/third_party/WebKit/Source/core/editing/FrameCaret.h
|
| @@ -27,6 +27,7 @@
|
| #define FrameCaret_h
|
|
|
| #include "core/CoreExport.h"
|
| +#include "core/dom/SynchronousMutationObserver.h"
|
| #include "core/editing/PositionWithAffinity.h"
|
| #include "platform/Timer.h"
|
| #include "platform/geometry/LayoutRect.h"
|
| @@ -48,7 +49,10 @@ class SelectionEditor;
|
| enum class CaretVisibility { Visible, Hidden };
|
|
|
| class CORE_EXPORT FrameCaret final
|
| - : public GarbageCollectedFinalized<FrameCaret> {
|
| + : public GarbageCollectedFinalized<FrameCaret>,
|
| + public SynchronousMutationObserver {
|
| + USING_GARBAGE_COLLECTED_MIXIN(FrameCaret);
|
| +
|
| public:
|
| FrameCaret(LocalFrame&, const SelectionEditor&);
|
| ~FrameCaret();
|
| @@ -56,6 +60,7 @@ class CORE_EXPORT FrameCaret final
|
| const DisplayItemClient& displayItemClient() const;
|
| bool isActive() const { return caretPosition().isNotNull(); }
|
|
|
| + void documentAttached(Document*);
|
| void updateAppearance();
|
|
|
| // Used to suspend caret blinking while the mouse is down.
|
| @@ -79,9 +84,6 @@ class CORE_EXPORT FrameCaret final
|
| void paintCaret(GraphicsContext&, const LayoutPoint&);
|
|
|
| void dataWillChange(const CharacterData&);
|
| - void nodeWillBeRemoved(Node&);
|
| -
|
| - void documentDetached();
|
|
|
| // For unittests
|
| bool shouldPaintCaretForTesting() const { return m_shouldPaintCaret; }
|
| @@ -98,6 +100,10 @@ class CORE_EXPORT FrameCaret final
|
| void caretBlinkTimerFired(TimerBase*);
|
| bool caretPositionIsValidForDocument(const Document&) const;
|
|
|
| + // Implementation of |SynchronousMutationObserver| member functions.
|
| + void contextDestroyed(Document*) final;
|
| + void nodeWillBeRemoved(Node&) final;
|
| +
|
| const Member<const SelectionEditor> m_selectionEditor;
|
| const Member<LocalFrame> m_frame;
|
| const std::unique_ptr<CaretBase> m_caretBase;
|
|
|