Commit cec02c3
committed
Add duplicate attribute tracking for CSP nonce validation.
Implements detection and propagation of duplicate attributes through
the tokenizer, tree builder, and TreeSink interface to support CSP
(Content Security Policy) nonce validation.
This enables html5ever consumers (e.g., Servo) to properly implement
step 3 of the CSP "is element nonceable" algorithm by checking the
`ElementFlags.had_duplicate_attrs` field during nonce validation.
Reference:
- https://www.w3.org/TR/CSP/#is-element-nonceable
- servo/servo@4821bc0
Signed-off-by: Dyego Aurélio <[email protected]>1 parent fa69d1a commit cec02c3
File tree
8 files changed
+415
-15
lines changed- html5ever/src
- tokenizer
- tree_builder
- markup5ever/interface
- rcdom
- custom-html5lib-tokenizer-tests
- tests
8 files changed
+415
-15
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
40 | 40 | | |
41 | 41 | | |
42 | 42 | | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
43 | 47 | | |
44 | 48 | | |
45 | 49 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
133 | 133 | | |
134 | 134 | | |
135 | 135 | | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
136 | 139 | | |
137 | 140 | | |
138 | 141 | | |
| |||
186 | 189 | | |
187 | 190 | | |
188 | 191 | | |
| 192 | + | |
189 | 193 | | |
190 | 194 | | |
191 | 195 | | |
| |||
440 | 444 | | |
441 | 445 | | |
442 | 446 | | |
| 447 | + | |
443 | 448 | | |
444 | 449 | | |
445 | 450 | | |
| |||
481 | 486 | | |
482 | 487 | | |
483 | 488 | | |
| 489 | + | |
484 | 490 | | |
485 | 491 | | |
486 | 492 | | |
| |||
523 | 529 | | |
524 | 530 | | |
525 | 531 | | |
| 532 | + | |
526 | 533 | | |
527 | 534 | | |
528 | 535 | | |
| |||
2217 | 2224 | | |
2218 | 2225 | | |
2219 | 2226 | | |
| 2227 | + | |
2220 | 2228 | | |
2221 | 2229 | | |
2222 | 2230 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
12 | 12 | | |
13 | 13 | | |
14 | 14 | | |
| 15 | + | |
15 | 16 | | |
16 | 17 | | |
17 | 18 | | |
| |||
733 | 734 | | |
734 | 735 | | |
735 | 736 | | |
| 737 | + | |
736 | 738 | | |
737 | 739 | | |
738 | 740 | | |
| |||
828 | 830 | | |
829 | 831 | | |
830 | 832 | | |
831 | | - | |
| 833 | + | |
832 | 834 | | |
833 | 835 | | |
834 | 836 | | |
| 837 | + | |
835 | 838 | | |
836 | 839 | | |
837 | 840 | | |
| |||
860 | 863 | | |
861 | 864 | | |
862 | 865 | | |
863 | | - | |
| 866 | + | |
864 | 867 | | |
865 | 868 | | |
866 | 869 | | |
| 870 | + | |
867 | 871 | | |
868 | 872 | | |
869 | 873 | | |
| |||
1010 | 1014 | | |
1011 | 1015 | | |
1012 | 1016 | | |
| 1017 | + | |
1013 | 1018 | | |
1014 | 1019 | | |
1015 | 1020 | | |
| |||
1363 | 1368 | | |
1364 | 1369 | | |
1365 | 1370 | | |
| 1371 | + | |
1366 | 1372 | | |
1367 | 1373 | | |
1368 | 1374 | | |
| |||
1372 | 1378 | | |
1373 | 1379 | | |
1374 | 1380 | | |
1375 | | - | |
| 1381 | + | |
| 1382 | + | |
| 1383 | + | |
| 1384 | + | |
| 1385 | + | |
| 1386 | + | |
1376 | 1387 | | |
1377 | 1388 | | |
1378 | 1389 | | |
| |||
1410 | 1421 | | |
1411 | 1422 | | |
1412 | 1423 | | |
1413 | | - | |
| 1424 | + | |
| 1425 | + | |
| 1426 | + | |
| 1427 | + | |
| 1428 | + | |
| 1429 | + | |
| 1430 | + | |
1414 | 1431 | | |
1415 | 1432 | | |
1416 | 1433 | | |
1417 | | - | |
| 1434 | + | |
| 1435 | + | |
| 1436 | + | |
| 1437 | + | |
| 1438 | + | |
| 1439 | + | |
| 1440 | + | |
1418 | 1441 | | |
1419 | 1442 | | |
1420 | 1443 | | |
1421 | | - | |
| 1444 | + | |
1422 | 1445 | | |
1423 | 1446 | | |
1424 | 1447 | | |
| |||
1429 | 1452 | | |
1430 | 1453 | | |
1431 | 1454 | | |
1432 | | - | |
1433 | | - | |
| 1455 | + | |
| 1456 | + | |
| 1457 | + | |
| 1458 | + | |
| 1459 | + | |
| 1460 | + | |
| 1461 | + | |
1434 | 1462 | | |
1435 | 1463 | | |
1436 | 1464 | | |
| |||
1520 | 1548 | | |
1521 | 1549 | | |
1522 | 1550 | | |
| 1551 | + | |
1523 | 1552 | | |
1524 | 1553 | | |
1525 | 1554 | | |
| |||
1655 | 1684 | | |
1656 | 1685 | | |
1657 | 1686 | | |
1658 | | - | |
| 1687 | + | |
| 1688 | + | |
| 1689 | + | |
| 1690 | + | |
| 1691 | + | |
| 1692 | + | |
| 1693 | + | |
1659 | 1694 | | |
1660 | 1695 | | |
1661 | | - | |
| 1696 | + | |
| 1697 | + | |
| 1698 | + | |
| 1699 | + | |
| 1700 | + | |
| 1701 | + | |
| 1702 | + | |
1662 | 1703 | | |
1663 | 1704 | | |
1664 | 1705 | | |
| |||
1823 | 1864 | | |
1824 | 1865 | | |
1825 | 1866 | | |
1826 | | - | |
| 1867 | + | |
| 1868 | + | |
| 1869 | + | |
| 1870 | + | |
| 1871 | + | |
| 1872 | + | |
| 1873 | + | |
1827 | 1874 | | |
1828 | 1875 | | |
1829 | | - | |
| 1876 | + | |
| 1877 | + | |
| 1878 | + | |
| 1879 | + | |
| 1880 | + | |
| 1881 | + | |
| 1882 | + | |
1830 | 1883 | | |
1831 | 1884 | | |
1832 | 1885 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
15 | 15 | | |
16 | 16 | | |
17 | 17 | | |
18 | | - | |
19 | | - | |
| 18 | + | |
20 | 19 | | |
21 | 20 | | |
| 21 | + | |
22 | 22 | | |
23 | 23 | | |
24 | 24 | | |
| |||
207 | 207 | | |
208 | 208 | | |
209 | 209 | | |
210 | | - | |
| 210 | + | |
211 | 211 | | |
212 | 212 | | |
213 | 213 | | |
| 214 | + | |
214 | 215 | | |
215 | 216 | | |
216 | 217 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
62 | 62 | | |
63 | 63 | | |
64 | 64 | | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
65 | 72 | | |
66 | 73 | | |
67 | 74 | | |
| |||
70 | 77 | | |
71 | 78 | | |
72 | 79 | | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
73 | 96 | | |
74 | 97 | | |
75 | 98 | | |
| |||
85 | 108 | | |
86 | 109 | | |
87 | 110 | | |
| 111 | + | |
88 | 112 | | |
89 | 113 | | |
90 | 114 | | |
| |||
Lines changed: 66 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
0 commit comments