Commit 7a83606
committed
Implement <select> parser “relaxation” — for “customizable” <select>
This change, in order to support the “customizable” <select> element:
- “relaxes” parsing rules in <select> (to allow more elements as children)
- adds the <selectedcontent> element for cloning selected <option> content
ElementName.java
----------------
- Add <selectedcontent> element with TreeBuilder.SELECTEDCONTENT group
TreeBuilder.java
----------------
- Add SELECTEDCONTENT group constant and IN_SELECT_IN_CONTENT mode
- Track selectedContentPointer and activeOptionStackPos for cloning
- Allow <div>, <span>, and other elements in <select> in “relaxed” mode
- Deep clone <option> content to <selectedcontent> when <option> closes
- Handle <selectedcontent> special-casing (store pointer, no stack push)
SAXTreeBuilder.java
-------------------
- Implement clearSelectedContentChildren() for clearing before clone
- Implement deepCloneChildren() and deepCloneNode() for <option> cloning
ParentNode.java
---------------
- Add clearChildren() method, to support clearing <selectedcontent>
html5lib-tests submodule
------------------------
- Updated to pull in corresponding tests for “relaxed” <select> parsing1 parent 6904dd1 commit 7a83606
File tree
5 files changed
+604
-101
lines changed- src/nu/validator
- htmlparser
- impl
- sax
- saxtree
- test-src/test/resources
5 files changed
+604
-101
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
557 | 557 | | |
558 | 558 | | |
559 | 559 | | |
| 560 | + | |
| 561 | + | |
560 | 562 | | |
561 | 563 | | |
562 | 564 | | |
| |||
1424 | 1426 | | |
1425 | 1427 | | |
1426 | 1428 | | |
1427 | | - | |
| 1429 | + | |
| 1430 | + | |
| 1431 | + | |
| 1432 | + | |
| 1433 | + | |
1428 | 1434 | | |
1429 | 1435 | | |
1430 | 1436 | | |
| |||
1484 | 1490 | | |
1485 | 1491 | | |
1486 | 1492 | | |
1487 | | - | |
| 1493 | + | |
1488 | 1494 | | |
1489 | 1495 | | |
1490 | 1496 | | |
1491 | | - | |
| 1497 | + | |
1492 | 1498 | | |
1493 | 1499 | | |
1494 | 1500 | | |
1495 | 1501 | | |
1496 | 1502 | | |
1497 | | - | |
1498 | | - | |
| 1503 | + | |
| 1504 | + | |
1499 | 1505 | | |
1500 | 1506 | | |
1501 | 1507 | | |
| |||
1507 | 1513 | | |
1508 | 1514 | | |
1509 | 1515 | | |
1510 | | - | |
1511 | | - | |
1512 | | - | |
1513 | | - | |
| 1516 | + | |
| 1517 | + | |
| 1518 | + | |
| 1519 | + | |
1514 | 1520 | | |
1515 | 1521 | | |
1516 | 1522 | | |
| |||
1533 | 1539 | | |
1534 | 1540 | | |
1535 | 1541 | | |
1536 | | - | |
1537 | | - | |
1538 | | - | |
1539 | | - | |
1540 | | - | |
1541 | | - | |
1542 | | - | |
1543 | | - | |
| 1542 | + | |
| 1543 | + | |
| 1544 | + | |
| 1545 | + | |
| 1546 | + | |
| 1547 | + | |
| 1548 | + | |
| 1549 | + | |
1544 | 1550 | | |
1545 | 1551 | | |
1546 | 1552 | | |
| |||
1585 | 1591 | | |
1586 | 1592 | | |
1587 | 1593 | | |
1588 | | - | |
1589 | | - | |
1590 | | - | |
1591 | | - | |
1592 | | - | |
1593 | | - | |
1594 | | - | |
1595 | | - | |
1596 | | - | |
1597 | | - | |
1598 | | - | |
1599 | | - | |
1600 | | - | |
1601 | | - | |
1602 | | - | |
1603 | | - | |
1604 | | - | |
| 1594 | + | |
| 1595 | + | |
| 1596 | + | |
| 1597 | + | |
| 1598 | + | |
| 1599 | + | |
| 1600 | + | |
| 1601 | + | |
| 1602 | + | |
| 1603 | + | |
| 1604 | + | |
| 1605 | + | |
| 1606 | + | |
| 1607 | + | |
| 1608 | + | |
| 1609 | + | |
| 1610 | + | |
1605 | 1611 | | |
1606 | 1612 | | |
1607 | 1613 | | |
| |||
1689 | 1695 | | |
1690 | 1696 | | |
1691 | 1697 | | |
| 1698 | + | |
1692 | 1699 | | |
1693 | 1700 | | |
1694 | 1701 | | |
1695 | 1702 | | |
1696 | | - | |
| 1703 | + | |
1697 | 1704 | | |
1698 | 1705 | | |
1699 | 1706 | | |
1700 | | - | |
| 1707 | + | |
1701 | 1708 | | |
1702 | 1709 | | |
1703 | 1710 | | |
1704 | 1711 | | |
1705 | 1712 | | |
1706 | | - | |
1707 | | - | |
| 1713 | + | |
| 1714 | + | |
1708 | 1715 | | |
1709 | 1716 | | |
1710 | 1717 | | |
| |||
1716 | 1723 | | |
1717 | 1724 | | |
1718 | 1725 | | |
1719 | | - | |
1720 | | - | |
1721 | | - | |
1722 | | - | |
| 1726 | + | |
| 1727 | + | |
| 1728 | + | |
| 1729 | + | |
1723 | 1730 | | |
1724 | 1731 | | |
1725 | 1732 | | |
| |||
1742 | 1749 | | |
1743 | 1750 | | |
1744 | 1751 | | |
1745 | | - | |
1746 | | - | |
1747 | | - | |
1748 | | - | |
1749 | | - | |
1750 | | - | |
1751 | | - | |
1752 | | - | |
| 1752 | + | |
| 1753 | + | |
| 1754 | + | |
| 1755 | + | |
| 1756 | + | |
| 1757 | + | |
| 1758 | + | |
| 1759 | + | |
1753 | 1760 | | |
1754 | 1761 | | |
1755 | 1762 | | |
| |||
1794 | 1801 | | |
1795 | 1802 | | |
1796 | 1803 | | |
1797 | | - | |
1798 | | - | |
1799 | | - | |
1800 | | - | |
1801 | | - | |
1802 | | - | |
1803 | | - | |
1804 | | - | |
1805 | | - | |
1806 | | - | |
1807 | | - | |
1808 | | - | |
1809 | | - | |
1810 | | - | |
1811 | | - | |
1812 | | - | |
1813 | | - | |
| 1804 | + | |
| 1805 | + | |
| 1806 | + | |
| 1807 | + | |
| 1808 | + | |
| 1809 | + | |
| 1810 | + | |
| 1811 | + | |
| 1812 | + | |
| 1813 | + | |
| 1814 | + | |
| 1815 | + | |
| 1816 | + | |
| 1817 | + | |
| 1818 | + | |
| 1819 | + | |
| 1820 | + | |
1814 | 1821 | | |
1815 | 1822 | | |
1816 | 1823 | | |
| |||
1898 | 1905 | | |
1899 | 1906 | | |
1900 | 1907 | | |
| 1908 | + | |
1901 | 1909 | | |
1902 | 1910 | | |
0 commit comments