Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 /* | 1 /* |
| 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) | 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) |
| 3 * (C) 1999 Antti Koivisto (koivisto@kde.org) | 3 * (C) 1999 Antti Koivisto (koivisto@kde.org) |
| 4 * (C) 2001 Dirk Mueller (mueller@kde.org) | 4 * (C) 2001 Dirk Mueller (mueller@kde.org) |
| 5 * (C) 2006 Alexey Proskuryakov (ap@webkit.org) | 5 * (C) 2006 Alexey Proskuryakov (ap@webkit.org) |
| 6 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010 Apple Inc. All rights | 6 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010 Apple Inc. All rights |
| 7 * reserved. | 7 * reserved. |
| 8 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. | 8 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. |
| 9 * (http://www.torchmobile.com/) | 9 * (http://www.torchmobile.com/) |
| 10 * Copyright (C) Research In Motion Limited 2010. All rights reserved. | 10 * Copyright (C) Research In Motion Limited 2010. All rights reserved. |
| (...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 78 unsigned start_offset, | 78 unsigned start_offset, |
| 79 int length, | 79 int length, |
| 80 Node* dst_node, | 80 Node* dst_node, |
| 81 int delta); | 81 int delta); |
| 82 | 82 |
| 83 void PrepareForDestruction(); | 83 void PrepareForDestruction(); |
| 84 // When a marker partially overlaps with range, if | 84 // When a marker partially overlaps with range, if |
| 85 // removePartiallyOverlappingMarkers is true, we completely remove the marker. | 85 // removePartiallyOverlappingMarkers is true, we completely remove the marker. |
| 86 // If the argument is false, we will adjust the span of the marker so that it | 86 // If the argument is false, we will adjust the span of the marker so that it |
| 87 // retains the portion that is outside of the range. | 87 // retains the portion that is outside of the range. |
| 88 enum RemovePartiallyOverlappingMarkerOrNot { | 88 enum RemovePartiallyOverlappingMarkerOrNot { |
|
Xiaocheng
2017/04/10 21:22:10
Please also remove this enum.
| |
| 89 kDoNotRemovePartiallyOverlappingMarker, | 89 kDoNotRemovePartiallyOverlappingMarker, |
| 90 kRemovePartiallyOverlappingMarker | 90 kRemovePartiallyOverlappingMarker |
| 91 }; | 91 }; |
| 92 void RemoveMarkers(const EphemeralRange&, | 92 void RemoveMarkers( |
| 93 DocumentMarker::MarkerTypes = DocumentMarker::AllMarkers(), | 93 const EphemeralRange&, |
| 94 RemovePartiallyOverlappingMarkerOrNot = | 94 DocumentMarker::MarkerTypes = DocumentMarker::AllMarkers()); |
| 95 kDoNotRemovePartiallyOverlappingMarker); | 95 void RemoveMarkers( |
| 96 void RemoveMarkers(Node*, | 96 Node*, |
| 97 unsigned start_offset, | 97 unsigned start_offset, |
| 98 int length, | 98 int length, |
| 99 DocumentMarker::MarkerTypes = DocumentMarker::AllMarkers(), | 99 DocumentMarker::MarkerTypes = DocumentMarker::AllMarkers()); |
| 100 RemovePartiallyOverlappingMarkerOrNot = | |
| 101 kDoNotRemovePartiallyOverlappingMarker); | |
| 102 | |
| 103 void RemoveMarkers( | 100 void RemoveMarkers( |
| 104 DocumentMarker::MarkerTypes = DocumentMarker::AllMarkers()); | 101 DocumentMarker::MarkerTypes = DocumentMarker::AllMarkers()); |
| 105 void RemoveMarkers( | 102 void RemoveMarkers( |
| 106 Node*, | 103 Node*, |
| 107 DocumentMarker::MarkerTypes = DocumentMarker::AllMarkers()); | 104 DocumentMarker::MarkerTypes = DocumentMarker::AllMarkers()); |
| 108 void RemoveMarkers(const MarkerRemoverPredicate& should_remove_marker); | 105 void RemoveMarkers(const MarkerRemoverPredicate& should_remove_marker); |
| 109 void RepaintMarkers( | 106 void RepaintMarkers( |
| 110 DocumentMarker::MarkerTypes = DocumentMarker::AllMarkers()); | 107 DocumentMarker::MarkerTypes = DocumentMarker::AllMarkers()); |
| 111 // Returns true if markers within a range are found. | 108 // Returns true if markers within a range are found. |
| 112 bool SetMarkersActive(const EphemeralRange&, bool); | 109 bool SetMarkersActive(const EphemeralRange&, bool); |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 144 private: | 141 private: |
| 145 void AddMarker(Node*, const DocumentMarker&); | 142 void AddMarker(Node*, const DocumentMarker&); |
| 146 | 143 |
| 147 using MarkerList = HeapVector<Member<RenderedDocumentMarker>>; | 144 using MarkerList = HeapVector<Member<RenderedDocumentMarker>>; |
| 148 using MarkerLists = | 145 using MarkerLists = |
| 149 HeapVector<Member<MarkerList>, DocumentMarker::kMarkerTypeIndexesCount>; | 146 HeapVector<Member<MarkerList>, DocumentMarker::kMarkerTypeIndexesCount>; |
| 150 using MarkerMap = HeapHashMap<WeakMember<const Node>, Member<MarkerLists>>; | 147 using MarkerMap = HeapHashMap<WeakMember<const Node>, Member<MarkerLists>>; |
| 151 void MergeOverlapping(MarkerList*, RenderedDocumentMarker*); | 148 void MergeOverlapping(MarkerList*, RenderedDocumentMarker*); |
| 152 bool PossiblyHasMarkers(DocumentMarker::MarkerTypes); | 149 bool PossiblyHasMarkers(DocumentMarker::MarkerTypes); |
| 153 void RemoveMarkersFromList(MarkerMap::iterator, DocumentMarker::MarkerTypes); | 150 void RemoveMarkersFromList(MarkerMap::iterator, DocumentMarker::MarkerTypes); |
| 154 void RemoveMarkers(TextIterator&, | 151 void RemoveMarkers(TextIterator&, DocumentMarker::MarkerTypes); |
| 155 DocumentMarker::MarkerTypes, | |
| 156 RemovePartiallyOverlappingMarkerOrNot); | |
| 157 | 152 |
| 158 MarkerMap markers_; | 153 MarkerMap markers_; |
| 159 // Provide a quick way to determine whether a particular marker type is absent | 154 // Provide a quick way to determine whether a particular marker type is absent |
| 160 // without going through the map. | 155 // without going through the map. |
| 161 DocumentMarker::MarkerTypes possibly_existing_marker_types_; | 156 DocumentMarker::MarkerTypes possibly_existing_marker_types_; |
| 162 const Member<const Document> document_; | 157 const Member<const Document> document_; |
| 163 }; | 158 }; |
| 164 | 159 |
| 165 } // namespace blink | 160 } // namespace blink |
| 166 | 161 |
| 167 #ifndef NDEBUG | 162 #ifndef NDEBUG |
| 168 void showDocumentMarkers(const blink::DocumentMarkerController*); | 163 void showDocumentMarkers(const blink::DocumentMarkerController*); |
| 169 #endif | 164 #endif |
| 170 | 165 |
| 171 #endif // DocumentMarkerController_h | 166 #endif // DocumentMarkerController_h |
| OLD | NEW |