Chromium Code Reviews| Index: third_party/WebKit/Source/core/editing/markers/DocumentMarkerController.h |
| diff --git a/third_party/WebKit/Source/core/editing/markers/DocumentMarkerController.h b/third_party/WebKit/Source/core/editing/markers/DocumentMarkerController.h |
| index 34d0f267b06cb3f836c2f8884d7bec74da9cde96..bcd90f57423f196dc3a50be458884d22d6f84e9f 100644 |
| --- a/third_party/WebKit/Source/core/editing/markers/DocumentMarkerController.h |
| +++ b/third_party/WebKit/Source/core/editing/markers/DocumentMarkerController.h |
| @@ -30,6 +30,7 @@ |
| #define DocumentMarkerController_h |
| #include "core/CoreExport.h" |
| +#include "core/dom/SynchronousMutationObserver.h" |
| #include "core/editing/iterators/TextIterator.h" |
| #include "core/editing/markers/DocumentMarker.h" |
| #include "platform/geometry/IntRect.h" |
| @@ -53,11 +54,13 @@ class MarkerRemoverPredicate final { |
| }; |
| class CORE_EXPORT DocumentMarkerController final |
| - : public GarbageCollected<DocumentMarkerController> { |
| + : public GarbageCollected<DocumentMarkerController>, |
| + public SynchronousMutationObserver { |
| WTF_MAKE_NONCOPYABLE(DocumentMarkerController); |
| + USING_GARBAGE_COLLECTED_MIXIN(DocumentMarkerController); |
| public: |
| - explicit DocumentMarkerController(const Document&); |
| + explicit DocumentMarkerController(Document&); |
| void clear(); |
| void addMarker(const Position& start, |
| @@ -106,7 +109,6 @@ class CORE_EXPORT DocumentMarkerController final |
| void removeMarkers(const MarkerRemoverPredicate& shouldRemoveMarker); |
| void repaintMarkers( |
| DocumentMarker::MarkerTypes = DocumentMarker::AllMarkers()); |
| - void shiftMarkers(Node*, unsigned startOffset, int delta); |
| // Returns true if markers within a range are found. |
| bool setMarkersActive(const EphemeralRange&, bool); |
| // Returns true if markers within a range defined by a node, |startOffset| and |
| @@ -131,6 +133,12 @@ class CORE_EXPORT DocumentMarkerController final |
| void showMarkers() const; |
| #endif |
| + // SynchronousMutationObserver |
| + void didUpdateCharacterData(CharacterData*, |
| + unsigned offset, |
| + unsigned oldLength, |
| + unsigned newLength) override; |
| + |
| private: |
| void addMarker(Node*, const DocumentMarker&); |
| @@ -144,6 +152,7 @@ class CORE_EXPORT DocumentMarkerController final |
| void removeMarkers(TextIterator&, |
| DocumentMarker::MarkerTypes, |
| RemovePartiallyOverlappingMarkerOrNot); |
| + void removeZeroLengthMarkers(); |
|
Xiaocheng
2017/02/23 18:58:35
This should be removed.
|
| MarkerMap m_markers; |
| // Provide a quick way to determine whether a particular marker type is absent |