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

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

Issue 2900573002: [DMC #12] Move some method impls from DocumentMarkerController.cpp to final place (Closed)
Patch Set: Rebase 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
« no previous file with comments | « third_party/WebKit/Source/core/editing/markers/DocumentMarkerController.cpp ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 cea15c01f1c4d6a4190d6fa45444eede2de07ada..7e56e9673c183c41d001ef9422f22a45e6fca417 100644
--- a/third_party/WebKit/Source/core/editing/markers/TextMatchMarkerListImpl.cpp
+++ b/third_party/WebKit/Source/core/editing/markers/TextMatchMarkerListImpl.cpp
@@ -4,8 +4,12 @@
#include "core/editing/markers/TextMatchMarkerListImpl.h"
+#include "core/dom/Node.h"
+#include "core/dom/Range.h"
+#include "core/editing/EphemeralRange.h"
#include "core/editing/markers/DocumentMarkerListEditor.h"
#include "core/editing/markers/RenderedDocumentMarker.h"
+#include "third_party/WebKit/Source/core/editing/VisibleUnits.h"
namespace blink {
@@ -53,4 +57,31 @@ DEFINE_TRACE(TextMatchMarkerListImpl) {
DocumentMarkerList::Trace(visitor);
}
+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;
+}
+
+void TextMatchMarkerListImpl::UpdateMarkerRenderedRectIfNeeded(
+ const Node& node,
+ RenderedDocumentMarker& marker) {
+ if (marker.IsValid())
+ return;
+
+ const Position startPosition(&const_cast<Node&>(node), marker.StartOffset());
yosin_UTC9 2017/05/24 09:21:50 Is it useful to have DomcumentMaker::AsRange(const
rlanday 2017/05/24 20:25:06 Might be useful in a few places. I still wish Docu
+ const Position endPostion(&const_cast<Node&>(node), marker.EndOffset());
+ EphemeralRange range(startPosition, endPostion);
+ marker.SetRenderedRect(LayoutRect(ComputeTextRect(range)));
+}
+
} // namespace blink
« no previous file with comments | « third_party/WebKit/Source/core/editing/markers/DocumentMarkerController.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698