| Index: third_party/WebKit/Source/core/editing/FrameSelection.h
|
| diff --git a/third_party/WebKit/Source/core/editing/FrameSelection.h b/third_party/WebKit/Source/core/editing/FrameSelection.h
|
| index 71dd26ba379e6b1dd0030195bb86d3d6e4782e43..45bdc19f8114517dad79000f7c36b67c1c829b11 100644
|
| --- a/third_party/WebKit/Source/core/editing/FrameSelection.h
|
| +++ b/third_party/WebKit/Source/core/editing/FrameSelection.h
|
| @@ -29,6 +29,7 @@
|
|
|
| #include "core/CoreExport.h"
|
| #include "core/dom/Range.h"
|
| +#include "core/dom/SynchronousMutationObserver.h"
|
| #include "core/editing/EditingStyle.h"
|
| #include "core/editing/EphemeralRange.h"
|
| #include "core/editing/VisiblePosition.h"
|
| @@ -69,8 +70,10 @@ enum class CaretVisibility;
|
| enum class HandleVisibility { NotVisible, Visible };
|
|
|
| class CORE_EXPORT FrameSelection final
|
| - : public GarbageCollectedFinalized<FrameSelection> {
|
| + : public GarbageCollectedFinalized<FrameSelection>,
|
| + public SynchronousMutationObserver {
|
| WTF_MAKE_NONCOPYABLE(FrameSelection);
|
| + USING_GARBAGE_COLLECTED_MIXIN(FrameSelection);
|
|
|
| public:
|
| static FrameSelection* create(LocalFrame& frame) {
|
| @@ -207,16 +210,7 @@ class CORE_EXPORT FrameSelection final
|
| Range* firstRange() const;
|
|
|
| void documentAttached(Document*);
|
| - void documentDetached(const Document&);
|
| - void nodeChildrenWillBeRemoved(ContainerNode&);
|
| - void nodeWillBeRemoved(Node&);
|
| void dataWillChange(const CharacterData& node);
|
| - void didUpdateCharacterData(CharacterData*,
|
| - unsigned offset,
|
| - unsigned oldLength,
|
| - unsigned newLength);
|
| - void didMergeTextNodes(const Text& oldNode, unsigned offset);
|
| - void didSplitTextNode(const Text& oldNode);
|
|
|
| void didLayout();
|
| bool isAppearanceDirty() const;
|
| @@ -331,6 +325,19 @@ class CORE_EXPORT FrameSelection final
|
|
|
| GranularityStrategy* granularityStrategy();
|
|
|
| + // Implementation of |SynchronousMutationObserver| member functions.
|
| + void contextDestroyed(Document*) final;
|
| + void nodeChildrenWillBeRemoved(ContainerNode&) final;
|
| + void nodeWillBeRemoved(Node&) final;
|
| + void didUpdateCharacterData(CharacterData*,
|
| + unsigned offset,
|
| + unsigned oldLength,
|
| + unsigned newLength) final;
|
| + void didMergeTextNodes(const Text& mergedNode,
|
| + const NodeWithIndex& nodeToBeRemovedWithIndex,
|
| + unsigned oldLength) final;
|
| + void didSplitTextNode(const Text& oldNode) final;
|
| +
|
| // For unittests
|
| bool shouldPaintCaretForTesting() const;
|
| bool isPreviousCaretDirtyForTesting() const;
|
|
|