| OLD | NEW |
| 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 1551 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1562 return VisiblePosition(); | 1562 return VisiblePosition(); |
| 1563 | 1563 |
| 1564 return createVisiblePosition(firstPositionInNode(node->document().documentEl
ement())); | 1564 return createVisiblePosition(firstPositionInNode(node->document().documentEl
ement())); |
| 1565 } | 1565 } |
| 1566 | 1566 |
| 1567 VisiblePosition startOfDocument(const VisiblePosition& c) | 1567 VisiblePosition startOfDocument(const VisiblePosition& c) |
| 1568 { | 1568 { |
| 1569 return startOfDocument(c.deepEquivalent().anchorNode()); | 1569 return startOfDocument(c.deepEquivalent().anchorNode()); |
| 1570 } | 1570 } |
| 1571 | 1571 |
| 1572 VisiblePosition endOfDocument(const Node* node) | 1572 template <typename Strategy> |
| 1573 static VisiblePositionTemplate<Strategy> endOfDocumentAlgorithm(const VisiblePos
itionTemplate<Strategy>& visiblePosition) |
| 1573 { | 1574 { |
| 1575 Node* node = visiblePosition.deepEquivalent().anchorNode(); |
| 1574 if (!node || !node->document().documentElement()) | 1576 if (!node || !node->document().documentElement()) |
| 1575 return VisiblePosition(); | 1577 return VisiblePositionTemplate<Strategy>(); |
| 1576 | 1578 |
| 1577 Element* doc = node->document().documentElement(); | 1579 Element* doc = node->document().documentElement(); |
| 1578 return createVisiblePosition(lastPositionInNode(doc)); | 1580 return createVisiblePosition(PositionAlgorithm<Strategy>::lastPositionInNode
(doc)); |
| 1579 } | 1581 } |
| 1580 | 1582 |
| 1581 VisiblePosition endOfDocument(const VisiblePosition& c) | 1583 VisiblePosition endOfDocument(const VisiblePosition& c) |
| 1582 { | 1584 { |
| 1583 return endOfDocument(c.deepEquivalent().anchorNode()); | 1585 return endOfDocumentAlgorithm<EditingStrategy>(c); |
| 1586 } |
| 1587 |
| 1588 VisiblePositionInComposedTree endOfDocument(const VisiblePositionInComposedTree&
c) |
| 1589 { |
| 1590 return endOfDocumentAlgorithm<EditingInComposedTreeStrategy>(c); |
| 1584 } | 1591 } |
| 1585 | 1592 |
| 1586 bool isStartOfDocument(const VisiblePosition& p) | 1593 bool isStartOfDocument(const VisiblePosition& p) |
| 1587 { | 1594 { |
| 1588 return p.isNotNull() && previousPositionOf(p, CanCrossEditingBoundary).isNul
l(); | 1595 return p.isNotNull() && previousPositionOf(p, CanCrossEditingBoundary).isNul
l(); |
| 1589 } | 1596 } |
| 1590 | 1597 |
| 1591 bool isEndOfDocument(const VisiblePosition& p) | 1598 bool isEndOfDocument(const VisiblePosition& p) |
| 1592 { | 1599 { |
| 1593 return p.isNotNull() && nextPositionOf(p, CanCrossEditingBoundary).isNull(); | 1600 return p.isNotNull() && nextPositionOf(p, CanCrossEditingBoundary).isNull(); |
| (...skipping 1414 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3008 return honorEditingBoundaryAtOrBefore(prev, visiblePosition.deepEquivale
nt()); | 3015 return honorEditingBoundaryAtOrBefore(prev, visiblePosition.deepEquivale
nt()); |
| 3009 case CanSkipOverEditingBoundary: | 3016 case CanSkipOverEditingBoundary: |
| 3010 return skipToStartOfEditingBoundary(prev, visiblePosition.deepEquivalent
()); | 3017 return skipToStartOfEditingBoundary(prev, visiblePosition.deepEquivalent
()); |
| 3011 } | 3018 } |
| 3012 | 3019 |
| 3013 ASSERT_NOT_REACHED(); | 3020 ASSERT_NOT_REACHED(); |
| 3014 return honorEditingBoundaryAtOrBefore(prev, visiblePosition.deepEquivalent()
); | 3021 return honorEditingBoundaryAtOrBefore(prev, visiblePosition.deepEquivalent()
); |
| 3015 } | 3022 } |
| 3016 | 3023 |
| 3017 } // namespace blink | 3024 } // namespace blink |
| OLD | NEW |