Index: third_party/WebKit/Source/core/editing/markers/DocumentMarkerController.cpp |
diff --git a/third_party/WebKit/Source/core/editing/markers/DocumentMarkerController.cpp b/third_party/WebKit/Source/core/editing/markers/DocumentMarkerController.cpp |
index 5e71a42497cf11a979fea3b59ff801262adae7b8..5964f741ce826879a2248416ae36eee25e356d8e 100644 |
--- a/third_party/WebKit/Source/core/editing/markers/DocumentMarkerController.cpp |
+++ b/third_party/WebKit/Source/core/editing/markers/DocumentMarkerController.cpp |
@@ -396,7 +396,11 @@ DocumentMarkerVector DocumentMarkerController::Markers() { |
} |
Vector<IntRect> DocumentMarkerController::RenderedRectsForTextMatchMarkers() { |
+ DCHECK(!document_->View()->NeedsLayout()); |
+ DCHECK(!document_->NeedsLayoutTreeUpdate()); |
+ |
Vector<IntRect> result; |
+ |
if (!PossiblyHasMarkers(DocumentMarker::kTextMatch)) |
return result; |
DCHECK(!(markers_.IsEmpty())); |
@@ -412,17 +416,25 @@ Vector<IntRect> DocumentMarkerController::RenderedRectsForTextMatchMarkers() { |
MarkerLists* markers = node_iterator->value.Get(); |
DocumentMarkerList* const list = |
ListForType(markers, DocumentMarker::kTextMatch); |
- if (!list || list->IsEmpty()) |
+ if (!list) |
continue; |
+ result.AppendVector(ToTextMatchMarkerListImpl(list)->RenderedRects(node)); |
+ } |
- for (DocumentMarker* marker : list->GetMarkers()) { |
- RenderedDocumentMarker* const rendered_marker = |
- ToRenderedDocumentMarker(marker); |
- UpdateMarkerRenderedRectIfNeeded(node, *rendered_marker); |
- if (!rendered_marker->IsRendered()) |
- continue; |
- result.push_back(rendered_marker->RenderedRect()); |
- } |
+ return result; |
+} |
+ |
+// TODO(rlanday): move this to TextMatchMarkerListImpl.cpp |
+Vector<IntRect> TextMatchMarkerListImpl::RenderedRects(const Node& node) { |
+ Vector<IntRect> result; |
+ |
+ for (DocumentMarker* marker : markers_) { |
+ RenderedDocumentMarker* const rendered_marker = |
+ ToRenderedDocumentMarker(marker); |
+ UpdateMarkerRenderedRectIfNeeded(node, *rendered_marker); |
+ if (!rendered_marker->IsRendered()) |
+ continue; |
+ result.push_back(rendered_marker->RenderedRect()); |
} |
return result; |
@@ -433,11 +445,10 @@ static void InvalidatePaintForTickmarks(const Node& node) { |
frame_view->InvalidatePaintForTickmarks(); |
} |
-void DocumentMarkerController::UpdateMarkerRenderedRectIfNeeded( |
+// TODO(rlanday): move this to TextMatchMarkerListImpl.cpp |
+void TextMatchMarkerListImpl::UpdateMarkerRenderedRectIfNeeded( |
yosin_UTC9
2017/05/24 09:17:23
Since this function is just two lines, let's expan
|
const Node& node, |
RenderedDocumentMarker& marker) { |
- DCHECK(!document_->View() || !document_->View()->NeedsLayout()); |
- DCHECK(!document_->NeedsLayoutTreeUpdate()); |
if (!marker.IsValid()) |
UpdateMarkerRenderedRect(node, marker); |
} |