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

Side by Side Diff: third_party/WebKit/Source/core/editing/VisibleUnits.cpp

Issue 2962473002: Make Position::LastPositionInNode() to take const Node& instead of Node* (Closed)
Patch Set: 2017-06-26T14:00:00 Created 3 years, 5 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 unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights 2 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights
3 * reserved. 3 * reserved.
4 * 4 *
5 * Redistribution and use in source and binary forms, with or without 5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions 6 * modification, are permitted provided that the following conditions
7 * are met: 7 * are met:
8 * 1. Redistributions of source code must retain the above copyright 8 * 1. Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * 2. Redistributions in binary form must reproduce the above copyright 10 * 2. Redistributions in binary form must reproduce the above copyright
(...skipping 421 matching lines...) Expand 10 before | Expand all | Expand 10 after
432 } 432 }
433 433
434 unsigned prefix_length = prefix_string.Size(); 434 unsigned prefix_length = prefix_string.Size();
435 ForwardsTextBuffer string; 435 ForwardsTextBuffer string;
436 string.PushRange(prefix_string.Data(), prefix_string.Size()); 436 string.PushRange(prefix_string.Data(), prefix_string.Size());
437 437
438 const PositionTemplate<Strategy> search_start = 438 const PositionTemplate<Strategy> search_start =
439 PositionTemplate<Strategy>::EditingPositionOf( 439 PositionTemplate<Strategy>::EditingPositionOf(
440 start.AnchorNode(), start.OffsetInContainerNode()); 440 start.AnchorNode(), start.OffsetInContainerNode());
441 const PositionTemplate<Strategy> search_end = 441 const PositionTemplate<Strategy> search_end =
442 PositionTemplate<Strategy>::LastPositionInNode(boundary); 442 PositionTemplate<Strategy>::LastPositionInNode(*boundary);
443 TextIteratorAlgorithm<Strategy> it( 443 TextIteratorAlgorithm<Strategy> it(
444 search_start, search_end, 444 search_start, search_end,
445 TextIteratorBehavior::Builder() 445 TextIteratorBehavior::Builder()
446 .SetEmitsCharactersBetweenAllVisiblePositions(true) 446 .SetEmitsCharactersBetweenAllVisiblePositions(true)
447 .Build()); 447 .Build());
448 const unsigned kInvalidOffset = static_cast<unsigned>(-1); 448 const unsigned kInvalidOffset = static_cast<unsigned>(-1);
449 unsigned next = kInvalidOffset; 449 unsigned next = kInvalidOffset;
450 unsigned offset = prefix_length; 450 unsigned offset = prefix_length;
451 bool need_more_context = false; 451 bool need_more_context = false;
452 while (!it.AtEnd()) { 452 while (!it.AtEnd()) {
(...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after
604 template <typename Strategy> 604 template <typename Strategy>
605 static VisiblePositionTemplate<Strategy> EndOfDocumentAlgorithm( 605 static VisiblePositionTemplate<Strategy> EndOfDocumentAlgorithm(
606 const VisiblePositionTemplate<Strategy>& visible_position) { 606 const VisiblePositionTemplate<Strategy>& visible_position) {
607 DCHECK(visible_position.IsValid()) << visible_position; 607 DCHECK(visible_position.IsValid()) << visible_position;
608 Node* node = visible_position.DeepEquivalent().AnchorNode(); 608 Node* node = visible_position.DeepEquivalent().AnchorNode();
609 if (!node || !node->GetDocument().documentElement()) 609 if (!node || !node->GetDocument().documentElement())
610 return VisiblePositionTemplate<Strategy>(); 610 return VisiblePositionTemplate<Strategy>();
611 611
612 Element* doc = node->GetDocument().documentElement(); 612 Element* doc = node->GetDocument().documentElement();
613 return CreateVisiblePosition( 613 return CreateVisiblePosition(
614 PositionTemplate<Strategy>::LastPositionInNode(doc)); 614 PositionTemplate<Strategy>::LastPositionInNode(*doc));
615 } 615 }
616 616
617 VisiblePosition EndOfDocument(const VisiblePosition& c) { 617 VisiblePosition EndOfDocument(const VisiblePosition& c) {
618 return EndOfDocumentAlgorithm<EditingStrategy>(c); 618 return EndOfDocumentAlgorithm<EditingStrategy>(c);
619 } 619 }
620 620
621 VisiblePositionInFlatTree EndOfDocument(const VisiblePositionInFlatTree& c) { 621 VisiblePositionInFlatTree EndOfDocument(const VisiblePositionInFlatTree& c) {
622 return EndOfDocumentAlgorithm<EditingInFlatTreeStrategy>(c); 622 return EndOfDocumentAlgorithm<EditingInFlatTreeStrategy>(c);
623 } 623 }
624 624
(...skipping 1364 matching lines...) Expand 10 before | Expand all | Expand 10 after
1989 if (!node) 1989 if (!node)
1990 return EphemeralRangeTemplate<Strategy>(); 1990 return EphemeralRangeTemplate<Strategy>();
1991 Document& document = node->GetDocument(); 1991 Document& document = node->GetDocument();
1992 if (!document.documentElement()) 1992 if (!document.documentElement())
1993 return EphemeralRangeTemplate<Strategy>(); 1993 return EphemeralRangeTemplate<Strategy>();
1994 Element* boundary = EnclosingBlockFlowElement(*node); 1994 Element* boundary = EnclosingBlockFlowElement(*node);
1995 if (!boundary) 1995 if (!boundary)
1996 return EphemeralRangeTemplate<Strategy>(); 1996 return EphemeralRangeTemplate<Strategy>();
1997 1997
1998 return EphemeralRangeTemplate<Strategy>( 1998 return EphemeralRangeTemplate<Strategy>(
1999 pos, PositionTemplate<Strategy>::LastPositionInNode(boundary)); 1999 pos, PositionTemplate<Strategy>::LastPositionInNode(*boundary));
2000 } 2000 }
2001 2001
2002 template <typename Strategy> 2002 template <typename Strategy>
2003 static PositionTemplate<Strategy> SkipWhitespaceAlgorithm( 2003 static PositionTemplate<Strategy> SkipWhitespaceAlgorithm(
2004 const PositionTemplate<Strategy>& position) { 2004 const PositionTemplate<Strategy>& position) {
2005 const EphemeralRangeTemplate<Strategy>& search_range = 2005 const EphemeralRangeTemplate<Strategy>& search_range =
2006 MakeSearchRange(position); 2006 MakeSearchRange(position);
2007 if (search_range.IsNull()) 2007 if (search_range.IsNull())
2008 return position; 2008 return position;
2009 2009
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
2075 2075
2076 IntRect ComputeTextRect(const EphemeralRangeInFlatTree& range) { 2076 IntRect ComputeTextRect(const EphemeralRangeInFlatTree& range) {
2077 return EnclosingIntRect(ComputeTextRectTemplate(range)); 2077 return EnclosingIntRect(ComputeTextRectTemplate(range));
2078 } 2078 }
2079 2079
2080 FloatRect ComputeTextFloatRect(const EphemeralRange& range) { 2080 FloatRect ComputeTextFloatRect(const EphemeralRange& range) {
2081 return ComputeTextRectTemplate(range); 2081 return ComputeTextRectTemplate(range);
2082 } 2082 }
2083 2083
2084 } // namespace blink 2084 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698