Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(106)

Unified Diff: third_party/WebKit/Source/core/editing/FrameSelection.h

Issue 2638423005: Make FrameSelection to utilize SynchronousMutationObserver (Closed)
Patch Set: 2017-01-20T19:16:11 Rebase Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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;
« no previous file with comments | « third_party/WebKit/Source/core/dom/Document.cpp ('k') | third_party/WebKit/Source/core/editing/FrameSelection.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698