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

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

Issue 1324123003: Introduce composed tree version of startOfDocument() (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: 2015-09-09T22:19:30 Rebase for VisibleUnitsTest.cpp conflict Created 5 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 unified diff | Download patch
« no previous file with comments | « Source/core/editing/VisibleUnits.h ('k') | Source/core/editing/VisibleUnitsTest.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reserv ed. 2 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reserv ed.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions 5 * modification, are permitted provided that the following conditions
6 * are met: 6 * are met:
7 * 1. Redistributions of source code must retain the above copyright 7 * 1. Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer. 8 * notice, this list of conditions and the following disclaimer.
9 * 2. Redistributions in binary form must reproduce the above copyright 9 * 2. Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the 10 * notice, this list of conditions and the following disclaimer in the
(...skipping 1539 matching lines...) Expand 10 before | Expand all | Expand 10 after
1550 return pos.isNotNull() && pos.deepEquivalent() == startOfBlock(pos, CanCross EditingBoundary).deepEquivalent(); 1550 return pos.isNotNull() && pos.deepEquivalent() == startOfBlock(pos, CanCross EditingBoundary).deepEquivalent();
1551 } 1551 }
1552 1552
1553 bool isEndOfBlock(const VisiblePosition& pos) 1553 bool isEndOfBlock(const VisiblePosition& pos)
1554 { 1554 {
1555 return pos.isNotNull() && pos.deepEquivalent() == endOfBlock(pos, CanCrossEd itingBoundary).deepEquivalent(); 1555 return pos.isNotNull() && pos.deepEquivalent() == endOfBlock(pos, CanCrossEd itingBoundary).deepEquivalent();
1556 } 1556 }
1557 1557
1558 // --------- 1558 // ---------
1559 1559
1560 VisiblePosition startOfDocument(const Node* node) 1560 template <typename Strategy>
1561 static VisiblePositionTemplate<Strategy> startOfDocumentAlgorithm(const VisibleP ositionTemplate<Strategy>& visiblePosition)
1561 { 1562 {
1563 Node* node = visiblePosition.deepEquivalent().anchorNode();
1562 if (!node || !node->document().documentElement()) 1564 if (!node || !node->document().documentElement())
1563 return VisiblePosition(); 1565 return VisiblePositionTemplate<Strategy>();
1564 1566
1565 return createVisiblePosition(firstPositionInNode(node->document().documentEl ement())); 1567 return createVisiblePosition(PositionAlgorithm<Strategy>::firstPositionInNod e(node->document().documentElement()));
1566 } 1568 }
1567 1569
1568 VisiblePosition startOfDocument(const VisiblePosition& c) 1570 VisiblePosition startOfDocument(const VisiblePosition& c)
1569 { 1571 {
1570 return startOfDocument(c.deepEquivalent().anchorNode()); 1572 return startOfDocumentAlgorithm<EditingStrategy>(c);
1573 }
1574
1575 VisiblePositionInComposedTree startOfDocument(const VisiblePositionInComposedTre e& c)
1576 {
1577 return startOfDocumentAlgorithm<EditingInComposedTreeStrategy>(c);
1571 } 1578 }
1572 1579
1573 template <typename Strategy> 1580 template <typename Strategy>
1574 static VisiblePositionTemplate<Strategy> endOfDocumentAlgorithm(const VisiblePos itionTemplate<Strategy>& visiblePosition) 1581 static VisiblePositionTemplate<Strategy> endOfDocumentAlgorithm(const VisiblePos itionTemplate<Strategy>& visiblePosition)
1575 { 1582 {
1576 Node* node = visiblePosition.deepEquivalent().anchorNode(); 1583 Node* node = visiblePosition.deepEquivalent().anchorNode();
1577 if (!node || !node->document().documentElement()) 1584 if (!node || !node->document().documentElement())
1578 return VisiblePositionTemplate<Strategy>(); 1585 return VisiblePositionTemplate<Strategy>();
1579 1586
1580 Element* doc = node->document().documentElement(); 1587 Element* doc = node->document().documentElement();
(...skipping 1469 matching lines...) Expand 10 before | Expand all | Expand 10 after
3050 { 3057 {
3051 return previousPositionOfAlgorithm<EditingStrategy>(visiblePosition, rule); 3058 return previousPositionOfAlgorithm<EditingStrategy>(visiblePosition, rule);
3052 } 3059 }
3053 3060
3054 VisiblePositionInComposedTree previousPositionOf(const VisiblePositionInComposed Tree& visiblePosition, EditingBoundaryCrossingRule rule) 3061 VisiblePositionInComposedTree previousPositionOf(const VisiblePositionInComposed Tree& visiblePosition, EditingBoundaryCrossingRule rule)
3055 { 3062 {
3056 return previousPositionOfAlgorithm<EditingInComposedTreeStrategy>(visiblePos ition, rule); 3063 return previousPositionOfAlgorithm<EditingInComposedTreeStrategy>(visiblePos ition, rule);
3057 } 3064 }
3058 3065
3059 } // namespace blink 3066 } // namespace blink
OLDNEW
« no previous file with comments | « Source/core/editing/VisibleUnits.h ('k') | Source/core/editing/VisibleUnitsTest.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698