Chromium Code Reviews| 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 f1da75b0e408206c7b87a6ce891b67ed7c7005fc..fe032de96309f39115ce4e43b1a725368d78255d 100644 | 
| --- a/third_party/WebKit/Source/core/editing/VisibleUnits.cpp | 
| +++ b/third_party/WebKit/Source/core/editing/VisibleUnits.cpp | 
| @@ -4048,4 +4048,38 @@ PositionInFlatTree skipWhitespace(const PositionInFlatTree& position) { | 
| return skipWhitespaceAlgorithm(position); | 
| } | 
| +template <typename Strategy> | 
| +static Vector<FloatQuad> textQuadAlgorithm( | 
| + const EphemeralRangeTemplate<Strategy>& range) { | 
| + const PositionTemplate<Strategy> startPosition = range.startPosition(); | 
| + const PositionTemplate<Strategy> endPosition = range.endPosition(); | 
| + Node* startContainer = startPosition.computeContainerNode(); | 
| + DCHECK(startContainer); | 
| + Node* endContainer = endPosition.computeContainerNode(); | 
| + DCHECK(endContainer); | 
| + | 
| + Vector<FloatQuad> quad; | 
| + for (Node& node : range.nodes()) { | 
| + LayoutObject* layoutObject = node.layoutObject(); | 
| + if (!layoutObject || !layoutObject->isText()) | 
| + continue; | 
| + LayoutText* layoutText = toLayoutText(layoutObject); | 
| + unsigned startOffset = | 
| + node == startContainer ? startPosition.offsetInContainerNode() : 0; | 
| + unsigned endOffset = node == endContainer | 
| + ? endPosition.offsetInContainerNode() | 
| + : std::numeric_limits<unsigned>::max(); | 
| + layoutText->absoluteQuadsForRange(quad, startOffset, endOffset); | 
| + } | 
| + return quad; | 
| +} | 
| + | 
| +Vector<FloatQuad> textQuad(const EphemeralRange& range) { | 
| 
 
Xiaocheng
2017/03/30 18:46:19
nit: s/textQuad/textQuads/
 
 | 
| + return textQuadAlgorithm(range); | 
| +} | 
| + | 
| +Vector<FloatQuad> textQuad(const EphemeralRangeInFlatTree& range) { | 
| 
 
Xiaocheng
2017/03/30 18:46:19
nit: nit: s/textQuad/textQuads/
 
 | 
| + return textQuadAlgorithm(range); | 
| +} | 
| + | 
| } // namespace blink |