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

Unified Diff: third_party/WebKit/Source/core/editing/markers/DocumentMarkerController.cpp

Issue 2883503004: [DMC #7] Only create RenderedDocumentMarkers for TextMatchMarkerListImpl (Closed)
Patch Set: Created 3 years, 7 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
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 3c7563a06799a9ac1809dfc011f7f39982927d7c..64b37a14f0a444976ff1e7014d050968ca396dc7 100644
--- a/third_party/WebKit/Source/core/editing/markers/DocumentMarkerController.cpp
+++ b/third_party/WebKit/Source/core/editing/markers/DocumentMarkerController.cpp
@@ -394,7 +394,7 @@ DocumentMarkerVector DocumentMarkerController::MarkersInRange(
static_cast<unsigned>(range.EndPosition().ComputeOffsetInContainerNode());
for (Node& node : range.Nodes()) {
- for (DocumentMarker* marker : MarkersFor(&node)) {
+ for (DocumentMarker* const marker : MarkersFor(&node)) {
if (!marker_types.Contains(marker->GetType()))
continue;
if (node == start_container && marker->EndOffset() <= start_offset)
@@ -429,7 +429,9 @@ Vector<IntRect> DocumentMarkerController::RenderedRectsForMarkers(
if (!list || list->IsEmpty() || type != marker_type)
continue;
- for (RenderedDocumentMarker* rendered_marker : list->GetMarkers()) {
+ for (DocumentMarker* marker : list->GetMarkers()) {
+ RenderedDocumentMarker* const rendered_marker =
+ ToRenderedDocumentMarker(marker);
UpdateMarkerRenderedRectIfNeeded(node, *rendered_marker);
if (!rendered_marker->IsRendered())
continue;
@@ -459,18 +461,17 @@ void DocumentMarkerController::InvalidateRectsForMarkersInNode(
const Node& node) {
MarkerLists* markers = markers_.at(&node);
- for (auto& marker_list : *markers) {
- if (!marker_list || marker_list->IsEmpty())
- continue;
+ const DocumentMarkerList* const marker_list =
+ ListForType(markers, DocumentMarker::kTextMatch);
+ if (!marker_list || marker_list->IsEmpty())
+ return;
- const HeapVector<Member<RenderedDocumentMarker>>& markers_in_list =
- marker_list->GetMarkers();
- for (auto& marker : markers_in_list)
- marker->Invalidate();
+ const HeapVector<Member<DocumentMarker>>& markers_in_list =
+ marker_list->GetMarkers();
+ for (auto& marker : markers_in_list)
+ ToRenderedDocumentMarker(marker)->Invalidate();
- if (markers_in_list.front()->GetType() == DocumentMarker::kTextMatch)
- InvalidatePaintForTickmarks(node);
- }
+ InvalidatePaintForTickmarks(node);
}
void DocumentMarkerController::InvalidateRectsForAllMarkers() {
@@ -480,7 +481,7 @@ void DocumentMarkerController::InvalidateRectsForAllMarkers() {
if (!marker_list || marker_list->IsEmpty())
continue;
- const HeapVector<Member<RenderedDocumentMarker>>& markers_in_list =
+ const HeapVector<Member<DocumentMarker>>& markers_in_list =
marker_list->GetMarkers();
for (DocumentMarker* marker : markers_in_list)
ToRenderedDocumentMarker(marker)->Invalidate();
@@ -663,7 +664,7 @@ bool DocumentMarkerController::SetMarkersActive(Node* node,
if (!list)
return false;
- const HeapVector<Member<RenderedDocumentMarker>>& markers_in_list =
+ const HeapVector<Member<DocumentMarker>>& markers_in_list =
list->GetMarkers();
// TODO(rlanday): this assumes that the markers are stored in sorted order.
// This method should probably eventually be implemented by a
@@ -702,7 +703,7 @@ void DocumentMarkerController::ShowMarkers() const {
MarkerLists* markers = markers_.at(node);
for (DocumentMarker::MarkerType type : DocumentMarker::AllMarkers()) {
DocumentMarkerList* const list = ListForType(markers, type);
- const HeapVector<Member<RenderedDocumentMarker>>& markers_in_list =
+ const HeapVector<Member<DocumentMarker>>& markers_in_list =
list->GetMarkers();
for (const DocumentMarker* marker : markers_in_list) {
builder.Append(" ");

Powered by Google App Engine
This is Rietveld 408576698