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

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

Issue 2366693005: Mark paragraph-related functions deprecated in VisibleUnits (Closed)
Patch Set: Exclude EditingUlities from using fooParagraphDeprecated Created 4 years, 2 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 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 1592 matching lines...) Expand 10 before | Expand all | Expand 10 after
1603 1603
1604 if (candidateType == PositionAnchorType::OffsetInAnchor) 1604 if (candidateType == PositionAnchorType::OffsetInAnchor)
1605 return PositionTemplate<Strategy>(candidateNode, candidateOffset); 1605 return PositionTemplate<Strategy>(candidateNode, candidateOffset);
1606 1606
1607 return PositionTemplate<Strategy>(candidateNode, candidateType); 1607 return PositionTemplate<Strategy>(candidateNode, candidateType);
1608 } 1608 }
1609 1609
1610 template <typename Strategy> 1610 template <typename Strategy>
1611 VisiblePositionTemplate<Strategy> startOfParagraphAlgorithm(const VisiblePositio nTemplate<Strategy>& visiblePosition, EditingBoundaryCrossingRule boundaryCrossi ngRule) 1611 VisiblePositionTemplate<Strategy> startOfParagraphAlgorithm(const VisiblePositio nTemplate<Strategy>& visiblePosition, EditingBoundaryCrossingRule boundaryCrossi ngRule)
1612 { 1612 {
1613 // TODO(xiaochengh): Ensure that this function is called with a valid 1613 DCHECK(visiblePosition.isValid());
1614 // |visiblePosition|, and add |DCHECK(visiblePosition.isValid())|; 1614 return createVisiblePosition(startOfParagraphAlgorithm(visiblePosition.deepE quivalent(), boundaryCrossingRule));
1615 return createVisiblePositionDeprecated(startOfParagraphAlgorithm(visiblePosi tion.deepEquivalent(), boundaryCrossingRule));
1616 } 1615 }
1617 1616
1618 VisiblePosition startOfParagraph(const VisiblePosition& c, EditingBoundaryCrossi ngRule boundaryCrossingRule) 1617 VisiblePosition startOfParagraph(const VisiblePosition& c, EditingBoundaryCrossi ngRule boundaryCrossingRule)
1619 { 1618 {
1620 return startOfParagraphAlgorithm<EditingStrategy>(c, boundaryCrossingRule); 1619 return startOfParagraphAlgorithm<EditingStrategy>(c, boundaryCrossingRule);
1621 } 1620 }
1622 1621
1623 VisiblePositionInFlatTree startOfParagraph(const VisiblePositionInFlatTree& c, E ditingBoundaryCrossingRule boundaryCrossingRule) 1622 VisiblePositionInFlatTree startOfParagraph(const VisiblePositionInFlatTree& c, E ditingBoundaryCrossingRule boundaryCrossingRule)
1624 { 1623 {
1625 return startOfParagraphAlgorithm<EditingInFlatTreeStrategy>(c, boundaryCross ingRule); 1624 return startOfParagraphAlgorithm<EditingInFlatTreeStrategy>(c, boundaryCross ingRule);
1626 } 1625 }
1627 1626
1628 template <typename Strategy> 1627 template <typename Strategy>
1628 VisiblePositionTemplate<Strategy> startOfParagraphAlgorithmDeprecated(const Visi blePositionTemplate<Strategy>& visiblePosition, EditingBoundaryCrossingRule boun daryCrossingRule)
1629 {
1630 return createVisiblePositionDeprecated(startOfParagraphAlgorithm(visiblePosi tion.deepEquivalent(), boundaryCrossingRule));
1631 }
1632
1633 VisiblePosition startOfParagraphDeprecated(const VisiblePosition& c, EditingBoun daryCrossingRule boundaryCrossingRule)
1634 {
1635 return startOfParagraphAlgorithmDeprecated<EditingStrategy>(c, boundaryCross ingRule);
1636 }
1637
1638 VisiblePositionInFlatTree startOfParagraphDeprecated(const VisiblePositionInFlat Tree& c, EditingBoundaryCrossingRule boundaryCrossingRule)
1639 {
1640 return startOfParagraphAlgorithmDeprecated<EditingInFlatTreeStrategy>(c, bou ndaryCrossingRule);
1641 }
1642
1643 template <typename Strategy>
1629 static PositionTemplate<Strategy> endOfParagraphAlgorithm(const PositionTemplate <Strategy>& position, EditingBoundaryCrossingRule boundaryCrossingRule) 1644 static PositionTemplate<Strategy> endOfParagraphAlgorithm(const PositionTemplate <Strategy>& position, EditingBoundaryCrossingRule boundaryCrossingRule)
1630 { 1645 {
1631 Node* const startNode = position.anchorNode(); 1646 Node* const startNode = position.anchorNode();
1632 1647
1633 if (!startNode) 1648 if (!startNode)
1634 return PositionTemplate<Strategy>(); 1649 return PositionTemplate<Strategy>();
1635 1650
1636 if (isRenderedAsNonInlineTableImageOrHR(startNode)) 1651 if (isRenderedAsNonInlineTableImageOrHR(startNode))
1637 return PositionTemplate<Strategy>::afterNode(startNode); 1652 return PositionTemplate<Strategy>::afterNode(startNode);
1638 1653
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
1696 1711
1697 if (candidateType == PositionAnchorType::OffsetInAnchor) 1712 if (candidateType == PositionAnchorType::OffsetInAnchor)
1698 return PositionTemplate<Strategy>(candidateNode, candidateOffset); 1713 return PositionTemplate<Strategy>(candidateNode, candidateOffset);
1699 1714
1700 return PositionTemplate<Strategy>(candidateNode, candidateType); 1715 return PositionTemplate<Strategy>(candidateNode, candidateType);
1701 } 1716 }
1702 1717
1703 template <typename Strategy> 1718 template <typename Strategy>
1704 static VisiblePositionTemplate<Strategy> endOfParagraphAlgorithm(const VisiblePo sitionTemplate<Strategy>& visiblePosition, EditingBoundaryCrossingRule boundaryC rossingRule) 1719 static VisiblePositionTemplate<Strategy> endOfParagraphAlgorithm(const VisiblePo sitionTemplate<Strategy>& visiblePosition, EditingBoundaryCrossingRule boundaryC rossingRule)
1705 { 1720 {
1706 // TODO(xiaochengh): Ensure that this function is called with a valid 1721 DCHECK(visiblePosition.isValid());
1707 // |visiblePosition|, and add |DCHECK(visiblePosition.isValid())|;
1708 return createVisiblePositionDeprecated(endOfParagraphAlgorithm(visiblePositi on.deepEquivalent(), boundaryCrossingRule)); 1722 return createVisiblePositionDeprecated(endOfParagraphAlgorithm(visiblePositi on.deepEquivalent(), boundaryCrossingRule));
1709 } 1723 }
1710 1724
1711 VisiblePosition endOfParagraph(const VisiblePosition& c, EditingBoundaryCrossing Rule boundaryCrossingRule) 1725 VisiblePosition endOfParagraph(const VisiblePosition& c, EditingBoundaryCrossing Rule boundaryCrossingRule)
1712 { 1726 {
1713 return endOfParagraphAlgorithm<EditingStrategy>(c, boundaryCrossingRule); 1727 return endOfParagraphAlgorithm<EditingStrategy>(c, boundaryCrossingRule);
1714 } 1728 }
1715 1729
1716 VisiblePositionInFlatTree endOfParagraph(const VisiblePositionInFlatTree& c, Edi tingBoundaryCrossingRule boundaryCrossingRule) 1730 VisiblePositionInFlatTree endOfParagraph(const VisiblePositionInFlatTree& c, Edi tingBoundaryCrossingRule boundaryCrossingRule)
1717 { 1731 {
1718 return endOfParagraphAlgorithm<EditingInFlatTreeStrategy>(c, boundaryCrossin gRule); 1732 return endOfParagraphAlgorithm<EditingInFlatTreeStrategy>(c, boundaryCrossin gRule);
1719 } 1733 }
1720 1734
1735 template <typename Strategy>
1736 static VisiblePositionTemplate<Strategy> endOfParagraphAlgorithmDeprecated(const VisiblePositionTemplate<Strategy>& visiblePosition, EditingBoundaryCrossingRule boundaryCrossingRule)
1737 {
1738 return createVisiblePositionDeprecated(endOfParagraphAlgorithm(visiblePositi on.deepEquivalent(), boundaryCrossingRule));
1739 }
1740
1741 VisiblePosition endOfParagraphDeprecated(const VisiblePosition& c, EditingBounda ryCrossingRule boundaryCrossingRule)
1742 {
1743 return endOfParagraphAlgorithmDeprecated<EditingStrategy>(c, boundaryCrossin gRule);
1744 }
1745
1746 VisiblePositionInFlatTree endOfParagraphDeprecated(const VisiblePositionInFlatTr ee& c, EditingBoundaryCrossingRule boundaryCrossingRule)
1747 {
1748 return endOfParagraphAlgorithmDeprecated<EditingInFlatTreeStrategy>(c, bound aryCrossingRule);
1749 }
1750
1721 // FIXME: isStartOfParagraph(startOfNextParagraph(pos)) is not always true 1751 // FIXME: isStartOfParagraph(startOfNextParagraph(pos)) is not always true
1722 VisiblePosition startOfNextParagraph(const VisiblePosition& visiblePosition) 1752 VisiblePosition startOfNextParagraph(const VisiblePosition& visiblePosition)
1723 { 1753 {
1754 DCHECK(visiblePosition.isValid());
1724 VisiblePosition paragraphEnd(endOfParagraph(visiblePosition, CanSkipOverEdit ingBoundary)); 1755 VisiblePosition paragraphEnd(endOfParagraph(visiblePosition, CanSkipOverEdit ingBoundary));
1725 VisiblePosition afterParagraphEnd(nextPositionOf(paragraphEnd, CannotCrossEd itingBoundary)); 1756 VisiblePosition afterParagraphEnd(nextPositionOf(paragraphEnd, CannotCrossEd itingBoundary));
1726 // The position after the last position in the last cell of a table 1757 // The position after the last position in the last cell of a table
1727 // is not the start of the next paragraph. 1758 // is not the start of the next paragraph.
1728 if (tableElementJustBefore(afterParagraphEnd)) 1759 if (tableElementJustBefore(afterParagraphEnd))
1729 return nextPositionOf(afterParagraphEnd, CannotCrossEditingBoundary); 1760 return nextPositionOf(afterParagraphEnd, CannotCrossEditingBoundary);
1730 return afterParagraphEnd; 1761 return afterParagraphEnd;
1731 } 1762 }
1732 1763
1764 // FIXME: isStartOfParagraph(startOfNextParagraph(pos)) is not always true
1765 VisiblePosition startOfNextParagraphDeprecated(const VisiblePosition& visiblePos ition)
1766 {
1767 VisiblePosition paragraphEnd(endOfParagraphDeprecated(visiblePosition, CanSk ipOverEditingBoundary));
1768 VisiblePosition afterParagraphEnd(nextPositionOf(paragraphEnd, CannotCrossEd itingBoundary));
1769 // The position after the last position in the last cell of a table
1770 // is not the start of the next paragraph.
1771 if (tableElementJustBefore(afterParagraphEnd))
1772 return nextPositionOf(afterParagraphEnd, CannotCrossEditingBoundary);
1773 return afterParagraphEnd;
1774 }
1775
1733 bool inSameParagraph(const VisiblePosition& a, const VisiblePosition& b, Editing BoundaryCrossingRule boundaryCrossingRule) 1776 bool inSameParagraph(const VisiblePosition& a, const VisiblePosition& b, Editing BoundaryCrossingRule boundaryCrossingRule)
1734 { 1777 {
1778 DCHECK(a.isValid());
yosin_UTC9 2016/09/26 01:29:09 nit: Could you add "<< a" for ease of debug?
Xiaocheng 2016/09/26 01:36:14 I'm thinking about having a scope that asserts VP:
1779 DCHECK(b.isValid());
yosin_UTC9 2016/09/26 01:29:09 nit: Could you add "<< b" for ease of debug?
1735 return a.isNotNull() && startOfParagraph(a, boundaryCrossingRule).deepEquiva lent() == startOfParagraph(b, boundaryCrossingRule).deepEquivalent(); 1780 return a.isNotNull() && startOfParagraph(a, boundaryCrossingRule).deepEquiva lent() == startOfParagraph(b, boundaryCrossingRule).deepEquivalent();
1736 } 1781 }
1737 1782
1783 bool inSameParagraphDeprecated(const VisiblePosition& a, const VisiblePosition& b, EditingBoundaryCrossingRule boundaryCrossingRule)
1784 {
1785 return a.isNotNull() && startOfParagraphDeprecated(a, boundaryCrossingRule). deepEquivalent() == startOfParagraphDeprecated(b, boundaryCrossingRule).deepEqui valent();
1786 }
1787
1738 template <typename Strategy> 1788 template <typename Strategy>
1739 static bool isStartOfParagraphAlgorithm(const VisiblePositionTemplate<Strategy>& pos, EditingBoundaryCrossingRule boundaryCrossingRule) 1789 static bool isStartOfParagraphAlgorithm(const VisiblePositionTemplate<Strategy>& pos, EditingBoundaryCrossingRule boundaryCrossingRule)
1740 { 1790 {
1791 DCHECK(pos.isValid());
yosin_UTC9 2016/09/26 01:29:09 nit: Could you add "<< pos" for ease of debugging?
1741 return pos.isNotNull() && pos.deepEquivalent() == startOfParagraph(pos, boun daryCrossingRule).deepEquivalent(); 1792 return pos.isNotNull() && pos.deepEquivalent() == startOfParagraph(pos, boun daryCrossingRule).deepEquivalent();
1742 } 1793 }
1743 1794
1744 bool isStartOfParagraph(const VisiblePosition& pos, EditingBoundaryCrossingRule boundaryCrossingRule) 1795 bool isStartOfParagraph(const VisiblePosition& pos, EditingBoundaryCrossingRule boundaryCrossingRule)
1745 { 1796 {
1746 return isStartOfParagraphAlgorithm<EditingStrategy>(pos, boundaryCrossingRul e); 1797 return isStartOfParagraphAlgorithm<EditingStrategy>(pos, boundaryCrossingRul e);
1747 } 1798 }
1748 1799
1749 bool isStartOfParagraph(const VisiblePositionInFlatTree& pos, EditingBoundaryCro ssingRule boundaryCrossingRule) 1800 bool isStartOfParagraph(const VisiblePositionInFlatTree& pos, EditingBoundaryCro ssingRule boundaryCrossingRule)
1750 { 1801 {
1751 return isStartOfParagraphAlgorithm<EditingInFlatTreeStrategy>(pos, boundaryC rossingRule); 1802 return isStartOfParagraphAlgorithm<EditingInFlatTreeStrategy>(pos, boundaryC rossingRule);
1752 } 1803 }
1753 1804
1754 template <typename Strategy> 1805 template <typename Strategy>
1806 static bool isStartOfParagraphAlgorithmDeprecated(const VisiblePositionTemplate< Strategy>& pos, EditingBoundaryCrossingRule boundaryCrossingRule)
1807 {
1808 return pos.isNotNull() && pos.deepEquivalent() == startOfParagraphDeprecated (pos, boundaryCrossingRule).deepEquivalent();
1809 }
1810
1811 bool isStartOfParagraphDeprecated(const VisiblePosition& pos, EditingBoundaryCro ssingRule boundaryCrossingRule)
1812 {
1813 return isStartOfParagraphAlgorithmDeprecated<EditingStrategy>(pos, boundaryC rossingRule);
1814 }
1815
1816 bool isStartOfParagraphDeprecated(const VisiblePositionInFlatTree& pos, EditingB oundaryCrossingRule boundaryCrossingRule)
1817 {
1818 return isStartOfParagraphAlgorithmDeprecated<EditingInFlatTreeStrategy>(pos, boundaryCrossingRule);
1819 }
1820
1821 template <typename Strategy>
1755 static bool isEndOfParagraphAlgorithm(const VisiblePositionTemplate<Strategy>& p os, EditingBoundaryCrossingRule boundaryCrossingRule) 1822 static bool isEndOfParagraphAlgorithm(const VisiblePositionTemplate<Strategy>& p os, EditingBoundaryCrossingRule boundaryCrossingRule)
1756 { 1823 {
1824 DCHECK(pos.isValid());
1757 return pos.isNotNull() && pos.deepEquivalent() == endOfParagraph(pos, bounda ryCrossingRule).deepEquivalent(); 1825 return pos.isNotNull() && pos.deepEquivalent() == endOfParagraph(pos, bounda ryCrossingRule).deepEquivalent();
1758 } 1826 }
1759 1827
1760 bool isEndOfParagraph(const VisiblePosition& pos, EditingBoundaryCrossingRule bo undaryCrossingRule) 1828 bool isEndOfParagraph(const VisiblePosition& pos, EditingBoundaryCrossingRule bo undaryCrossingRule)
1761 { 1829 {
1762 return isEndOfParagraphAlgorithm<EditingStrategy>(pos, boundaryCrossingRule) ; 1830 return isEndOfParagraphAlgorithm<EditingStrategy>(pos, boundaryCrossingRule) ;
1763 } 1831 }
1764 1832
1765 bool isEndOfParagraph(const VisiblePositionInFlatTree& pos, EditingBoundaryCross ingRule boundaryCrossingRule) 1833 bool isEndOfParagraph(const VisiblePositionInFlatTree& pos, EditingBoundaryCross ingRule boundaryCrossingRule)
1766 { 1834 {
1767 return isEndOfParagraphAlgorithm<EditingInFlatTreeStrategy>(pos, boundaryCro ssingRule); 1835 return isEndOfParagraphAlgorithm<EditingInFlatTreeStrategy>(pos, boundaryCro ssingRule);
1768 } 1836 }
1769 1837
1838 template <typename Strategy>
1839 static bool isEndOfParagraphAlgorithmDeprecated(const VisiblePositionTemplate<St rategy>& pos, EditingBoundaryCrossingRule boundaryCrossingRule)
1840 {
1841 return pos.isNotNull() && pos.deepEquivalent() == endOfParagraphDeprecated(p os, boundaryCrossingRule).deepEquivalent();
1842 }
1843
1844 bool isEndOfParagraphDeprecated(const VisiblePosition& pos, EditingBoundaryCross ingRule boundaryCrossingRule)
1845 {
1846 return isEndOfParagraphAlgorithmDeprecated<EditingStrategy>(pos, boundaryCro ssingRule);
1847 }
1848
1849 bool isEndOfParagraphDeprecated(const VisiblePositionInFlatTree& pos, EditingBou ndaryCrossingRule boundaryCrossingRule)
1850 {
1851 return isEndOfParagraphAlgorithmDeprecated<EditingInFlatTreeStrategy>(pos, b oundaryCrossingRule);
1852 }
1853
1770 VisiblePosition previousParagraphPosition(const VisiblePosition& p, LayoutUnit x ) 1854 VisiblePosition previousParagraphPosition(const VisiblePosition& p, LayoutUnit x )
1771 { 1855 {
1772 VisiblePosition pos = p; 1856 VisiblePosition pos = p;
1773 do { 1857 do {
1774 VisiblePosition n = previousLinePosition(pos, x); 1858 VisiblePosition n = previousLinePosition(pos, x);
1775 if (n.isNull() || n.deepEquivalent() == pos.deepEquivalent()) 1859 if (n.isNull() || n.deepEquivalent() == pos.deepEquivalent())
1776 break; 1860 break;
1777 pos = n; 1861 pos = n;
1778 } while (inSameParagraph(p, pos)); 1862 } while (inSameParagraph(p, pos));
1779 return pos; 1863 return pos;
(...skipping 1564 matching lines...) Expand 10 before | Expand all | Expand 10 after
3344 { 3428 {
3345 return previousPositionOfAlgorithm<EditingStrategy>(visiblePosition, rule); 3429 return previousPositionOfAlgorithm<EditingStrategy>(visiblePosition, rule);
3346 } 3430 }
3347 3431
3348 VisiblePositionInFlatTree previousPositionOf(const VisiblePositionInFlatTree& vi siblePosition, EditingBoundaryCrossingRule rule) 3432 VisiblePositionInFlatTree previousPositionOf(const VisiblePositionInFlatTree& vi siblePosition, EditingBoundaryCrossingRule rule)
3349 { 3433 {
3350 return previousPositionOfAlgorithm<EditingInFlatTreeStrategy>(visiblePositio n, rule); 3434 return previousPositionOfAlgorithm<EditingInFlatTreeStrategy>(visiblePositio n, rule);
3351 } 3435 }
3352 3436
3353 } // namespace blink 3437 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698