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

Unified Diff: third_party/WebKit/Source/core/editing/VisibleUnits.cpp

Issue 2373483003: Ensure valid VisiblePosition input for absoluteCaretBoundsOf (Closed)
Patch Set: Created 4 years, 3 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/VisibleUnits.cpp
diff --git a/third_party/WebKit/Source/core/editing/VisibleUnits.cpp b/third_party/WebKit/Source/core/editing/VisibleUnits.cpp
index 5a9dda91338e369e5a20e3c4d6e43df14c3f4b9e..e83005201541b235418c4cdfaf7da83c332483dd 100644
--- a/third_party/WebKit/Source/core/editing/VisibleUnits.cpp
+++ b/third_party/WebKit/Source/core/editing/VisibleUnits.cpp
@@ -2936,8 +2936,7 @@ bool isVisuallyEquivalentCandidate(const PositionInFlatTree& position)
template <typename Strategy>
static IntRect absoluteCaretBoundsOfAlgorithm(const VisiblePositionTemplate<Strategy>& visiblePosition)
{
- // TODO(xiaochengh): Ensure that this function is called with a valid
- // |visiblePosition|, and add |DCHECK(visiblePosition.isValid())|;
+ DCHECK(visiblePosition.isValid()) << visiblePosition;
LayoutObject* layoutObject;
LayoutRect localRect = localCaretRectOfPosition(visiblePosition.toPositionWithAffinity(), layoutObject);
if (localRect.isEmpty() || !layoutObject)
@@ -2957,6 +2956,22 @@ IntRect absoluteCaretBoundsOf(const VisiblePositionInFlatTree& visiblePosition)
}
template <typename Strategy>
+static IntRect absoluteCaretBoundsOfAlgorithmDeprecated(const VisiblePositionTemplate<Strategy>& visiblePosition)
yosin_UTC9 2016/09/27 10:09:50 Let's make absoluteCaretBoundsOfAlgorithm to take
+{
+ LayoutObject* layoutObject;
+ LayoutRect localRect = localCaretRectOfPosition(visiblePosition.toPositionWithAffinity(), layoutObject);
+ if (localRect.isEmpty() || !layoutObject)
+ return IntRect();
+
+ return layoutObject->localToAbsoluteQuad(FloatRect(localRect)).enclosingBoundingBox();
+}
+
+IntRect absoluteCaretBoundsOfDeprecated(const VisiblePosition& visiblePosition)
+{
+ return absoluteCaretBoundsOfAlgorithmDeprecated<EditingStrategy>(visiblePosition);
+}
+
+template <typename Strategy>
static VisiblePositionTemplate<Strategy> skipToEndOfEditingBoundary(const VisiblePositionTemplate<Strategy>& pos, const PositionTemplate<Strategy>& anchor)
{
DCHECK(pos.isValid()) << pos;

Powered by Google App Engine
This is Rietveld 408576698