Chromium Code Reviews| 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); |
| } |