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

Unified Diff: Source/core/dom/DocumentMarkerController.h

Issue 419563003: Adding a word to dictionary should remove spelling markers (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Addressed dcheng's comment Created 6 years, 4 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
« no previous file with comments | « no previous file | Source/core/dom/DocumentMarkerController.cpp » ('j') | Source/web/WebLocalFrameImpl.cpp » ('J')
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/core/dom/DocumentMarkerController.h
diff --git a/Source/core/dom/DocumentMarkerController.h b/Source/core/dom/DocumentMarkerController.h
index c7f0e456b21235def99ddf076e5002f96baea5f6..15980845f7ff9627d908a8fe9017da1c9401f101 100644
--- a/Source/core/dom/DocumentMarkerController.h
+++ b/Source/core/dom/DocumentMarkerController.h
@@ -28,6 +28,7 @@
#define DocumentMarkerController_h
#include "core/dom/DocumentMarker.h"
+#include "core/dom/Range.h"
#include "platform/geometry/IntRect.h"
#include "platform/heap/Handle.h"
#include "wtf/HashMap.h"
@@ -35,10 +36,32 @@
namespace blink {
+class MarkerRemoverPredicate {
+public:
+ MarkerRemoverPredicate(Document& document, const Vector<String>& words)
+ : m_document(document), m_words(words)
+ {
+ }
+
+ bool operator()(const DocumentMarker& documentMarker,
+ const Node* node) const {
+
yosin_UTC9 2014/08/11 01:01:59 nit: Please remove an extra blank line.
Klemen Forstnerič 2014/08/11 16:24:49 Done.
+ RefPtr<Range> markerRange = Range::create(m_document,
yosin_UTC9 2014/08/11 01:01:59 Please move implementation of this function to CPP
Klemen Forstnerič 2014/08/11 16:24:49 Done.
+ const_cast<Node*>(node), documentMarker.startOffset(),
+ const_cast<Node*>(node), documentMarker.endOffset());
+
+ return m_words.contains(markerRange->text())
+ ? true : false;
yosin_UTC9 2014/08/11 01:01:59 nit: We can use implicit |bool| casting, no need t
Klemen Forstnerič 2014/08/11 16:24:49 Done.
+ }
+
+private:
+ Document& m_document;
+ Vector<String> m_words;
yosin_UTC9 2014/08/11 01:01:59 Let's use WTF::HashSet<String> rather than WTF::Ve
Klemen Forstnerič 2014/08/11 16:24:49 m_words is likely to be very small, so even though
+};
+
class LayoutPoint;
class LayoutRect;
class Node;
-class Range;
class RenderedDocumentMarker;
class DocumentMarkerController FINAL : public NoBaseWillBeGarbageCollected<DocumentMarkerController> {
@@ -67,6 +90,7 @@ public:
void removeMarkers(DocumentMarker::MarkerTypes = DocumentMarker::AllMarkers());
void removeMarkers(Node*, DocumentMarker::MarkerTypes = DocumentMarker::AllMarkers());
+ void removeMarkers(const MarkerRemoverPredicate& shouldRemoveMarker);
void repaintMarkers(DocumentMarker::MarkerTypes = DocumentMarker::AllMarkers());
void invalidateRenderedRectsForMarkersInRect(const LayoutRect&);
void shiftMarkers(Node*, unsigned startOffset, int delta);
@@ -91,6 +115,7 @@ private:
typedef WillBeHeapVector<OwnPtrWillBeMember<RenderedDocumentMarker> > MarkerList;
typedef WillBeHeapVector<OwnPtrWillBeMember<MarkerList>, DocumentMarker::MarkerTypeIndexesCount> MarkerLists;
typedef WillBeHeapHashMap<RawPtrWillBeWeakMember<const Node>, OwnPtrWillBeMember<MarkerLists> > MarkerMap;
+
yosin_UTC9 2014/08/11 01:01:59 Accidental insertion of a blank line?
Klemen Forstnerič 2014/08/11 16:24:49 Whoops. Removed it.
void mergeOverlapping(MarkerList*, DocumentMarker&);
bool possiblyHasMarkers(DocumentMarker::MarkerTypes);
void removeMarkersFromList(MarkerMap::iterator, DocumentMarker::MarkerTypes);
« no previous file with comments | « no previous file | Source/core/dom/DocumentMarkerController.cpp » ('j') | Source/web/WebLocalFrameImpl.cpp » ('J')

Powered by Google App Engine
This is Rietveld 408576698