| Index: third_party/WebKit/Source/core/editing/markers/TextMatchMarkerListImpl.cpp
|
| diff --git a/third_party/WebKit/Source/core/editing/markers/TextMatchMarkerListImpl.cpp b/third_party/WebKit/Source/core/editing/markers/TextMatchMarkerListImpl.cpp
|
| index da557e5d802c6b4a0b7d718026f969affc797916..01bfa1bf31d8879938136a300b00594f6affcf16 100644
|
| --- a/third_party/WebKit/Source/core/editing/markers/TextMatchMarkerListImpl.cpp
|
| +++ b/third_party/WebKit/Source/core/editing/markers/TextMatchMarkerListImpl.cpp
|
| @@ -81,4 +81,25 @@ Vector<IntRect> TextMatchMarkerListImpl::RenderedRects(const Node& node) const {
|
| return result;
|
| }
|
|
|
| +bool TextMatchMarkerListImpl::SetTextMatchMarkersActive(unsigned start_offset,
|
| + unsigned end_offset,
|
| + bool active) {
|
| + bool doc_dirty = false;
|
| + const auto start = std::upper_bound(
|
| + markers_.begin(), markers_.end(), start_offset,
|
| + [](size_t start_offset, const Member<DocumentMarker>& marker) {
|
| + return start_offset < marker->EndOffset();
|
| + });
|
| + for (auto it = start; it != markers_.end(); ++it) {
|
| + DocumentMarker& marker = **it;
|
| + // Markers are returned in order, so stop if we are now past the specified
|
| + // range.
|
| + if (marker.StartOffset() >= end_offset)
|
| + break;
|
| + marker.SetIsActiveMatch(active);
|
| + doc_dirty = true;
|
| + }
|
| + return doc_dirty;
|
| +}
|
| +
|
| } // namespace blink
|
|
|