Changeset 243691 in webkit
- Timestamp:
- Apr 1, 2019, 5:50:44 AM (7 years ago)
- Location:
- trunk
- Files:
-
- 13 edited
-
LayoutTests/fast/css/parsing-css-attribute-case-insensitive-value-3-expected.txt (modified) (1 diff)
-
LayoutTests/fast/css/parsing-css-attribute-case-insensitive-value-3.html (modified) (1 diff)
-
LayoutTests/fast/selectors/invalid-functional-pseudo-class-expected.txt (modified) (20 diffs)
-
LayoutTests/fast/selectors/invalid-functional-pseudo-class.html (modified) (1 diff)
-
LayoutTests/imported/w3c/ChangeLog (modified) (1 diff)
-
LayoutTests/imported/w3c/web-platform-tests/css/selectors/missing-right-token-expected.txt (modified) (1 diff)
-
LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Element-matches-expected.txt (modified) (3 diffs)
-
LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Element-webkitMatchesSelector-expected.txt (modified) (3 diffs)
-
LayoutTests/imported/w3c/web-platform-tests/dom/nodes/ParentNode-querySelector-All-expected.txt (modified) (8 diffs)
-
LayoutTests/imported/w3c/web-platform-tests/dom/nodes/ParentNode-querySelector-All-xht-expected.txt (modified) (8 diffs)
-
LayoutTests/imported/w3c/web-platform-tests/dom/nodes/selectors.js (modified) (1 diff)
-
Source/WebCore/ChangeLog (modified) (1 diff)
-
Source/WebCore/css/parser/CSSSelectorParser.cpp (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/fast/css/parsing-css-attribute-case-insensitive-value-3-expected.txt
r219663 r243691 789 789 PASS document.getElementById('style-container').sheet.cssRules.length is 0 790 790 PASS document.getElementById('style-container').sheet.cssRules.length is 0 791 PASS document.querySelector("[foo=bar i") threw exception SyntaxError: The string did not match the expected pattern..792 PASS document.querySelector("[|foo=bar i") threw exception SyntaxError: The string did not match the expected pattern..793 PASS document.querySelector("[*|foo=bar i") threw exception SyntaxError: The string did not match the expected pattern..794 PASS document.querySelector("[WebKit|foo=bar i") threw exception SyntaxError: The string did not match the expected pattern..795 PASS document.getElementById('style-container').sheet.cssRules.length is 0796 PASS document.getElementById('style-container').sheet.cssRules.length is 0797 PASS document.getElementById('style-container').sheet.cssRules.length is 0798 PASS document.getElementById('style-container').sheet.cssRules.length is 0799 PASS document.querySelector("[foo=\"bar\" i") threw exception SyntaxError: The string did not match the expected pattern..800 PASS document.querySelector("[|foo=\"bar\" i") threw exception SyntaxError: The string did not match the expected pattern..801 PASS document.querySelector("[*|foo=\"bar\" i") threw exception SyntaxError: The string did not match the expected pattern..802 PASS document.querySelector("[WebKit|foo=\"bar\" i") threw exception SyntaxError: The string did not match the expected pattern..803 PASS document.getElementById('style-container').sheet.cssRules.length is 0804 PASS document.getElementById('style-container').sheet.cssRules.length is 0805 PASS document.getElementById('style-container').sheet.cssRules.length is 0806 PASS document.getElementById('style-container').sheet.cssRules.length is 0807 PASS document.querySelector("[foo~=bar i") threw exception SyntaxError: The string did not match the expected pattern..808 PASS document.querySelector("[|foo~=bar i") threw exception SyntaxError: The string did not match the expected pattern..809 PASS document.querySelector("[*|foo~=bar i") threw exception SyntaxError: The string did not match the expected pattern..810 PASS document.querySelector("[WebKit|foo~=bar i") threw exception SyntaxError: The string did not match the expected pattern..811 PASS document.getElementById('style-container').sheet.cssRules.length is 0812 PASS document.getElementById('style-container').sheet.cssRules.length is 0813 PASS document.getElementById('style-container').sheet.cssRules.length is 0814 PASS document.getElementById('style-container').sheet.cssRules.length is 0815 PASS document.querySelector("[foo~=\"bar\" i") threw exception SyntaxError: The string did not match the expected pattern..816 PASS document.querySelector("[|foo~=\"bar\" i") threw exception SyntaxError: The string did not match the expected pattern..817 PASS document.querySelector("[*|foo~=\"bar\" i") threw exception SyntaxError: The string did not match the expected pattern..818 PASS document.querySelector("[WebKit|foo~=\"bar\" i") threw exception SyntaxError: The string did not match the expected pattern..819 PASS document.getElementById('style-container').sheet.cssRules.length is 0820 PASS document.getElementById('style-container').sheet.cssRules.length is 0821 PASS document.getElementById('style-container').sheet.cssRules.length is 0822 PASS document.getElementById('style-container').sheet.cssRules.length is 0823 PASS document.querySelector("[foo|=bar i") threw exception SyntaxError: The string did not match the expected pattern..824 PASS document.querySelector("[|foo|=bar i") threw exception SyntaxError: The string did not match the expected pattern..825 PASS document.querySelector("[*|foo|=bar i") threw exception SyntaxError: The string did not match the expected pattern..826 PASS document.querySelector("[WebKit|foo|=bar i") threw exception SyntaxError: The string did not match the expected pattern..827 PASS document.getElementById('style-container').sheet.cssRules.length is 0828 PASS document.getElementById('style-container').sheet.cssRules.length is 0829 PASS document.getElementById('style-container').sheet.cssRules.length is 0830 PASS document.getElementById('style-container').sheet.cssRules.length is 0831 PASS document.querySelector("[foo|=\"bar\" i") threw exception SyntaxError: The string did not match the expected pattern..832 PASS document.querySelector("[|foo|=\"bar\" i") threw exception SyntaxError: The string did not match the expected pattern..833 PASS document.querySelector("[*|foo|=\"bar\" i") threw exception SyntaxError: The string did not match the expected pattern..834 PASS document.querySelector("[WebKit|foo|=\"bar\" i") threw exception SyntaxError: The string did not match the expected pattern..835 PASS document.getElementById('style-container').sheet.cssRules.length is 0836 PASS document.getElementById('style-container').sheet.cssRules.length is 0837 PASS document.getElementById('style-container').sheet.cssRules.length is 0838 PASS document.getElementById('style-container').sheet.cssRules.length is 0839 PASS document.querySelector("[foo^=bar i") threw exception SyntaxError: The string did not match the expected pattern..840 PASS document.querySelector("[|foo^=bar i") threw exception SyntaxError: The string did not match the expected pattern..841 PASS document.querySelector("[*|foo^=bar i") threw exception SyntaxError: The string did not match the expected pattern..842 PASS document.querySelector("[WebKit|foo^=bar i") threw exception SyntaxError: The string did not match the expected pattern..843 PASS document.getElementById('style-container').sheet.cssRules.length is 0844 PASS document.getElementById('style-container').sheet.cssRules.length is 0845 PASS document.getElementById('style-container').sheet.cssRules.length is 0846 PASS document.getElementById('style-container').sheet.cssRules.length is 0847 PASS document.querySelector("[foo^=\"bar\" i") threw exception SyntaxError: The string did not match the expected pattern..848 PASS document.querySelector("[|foo^=\"bar\" i") threw exception SyntaxError: The string did not match the expected pattern..849 PASS document.querySelector("[*|foo^=\"bar\" i") threw exception SyntaxError: The string did not match the expected pattern..850 PASS document.querySelector("[WebKit|foo^=\"bar\" i") threw exception SyntaxError: The string did not match the expected pattern..851 PASS document.getElementById('style-container').sheet.cssRules.length is 0852 PASS document.getElementById('style-container').sheet.cssRules.length is 0853 PASS document.getElementById('style-container').sheet.cssRules.length is 0854 PASS document.getElementById('style-container').sheet.cssRules.length is 0855 PASS document.querySelector("[foo$=bar i") threw exception SyntaxError: The string did not match the expected pattern..856 PASS document.querySelector("[|foo$=bar i") threw exception SyntaxError: The string did not match the expected pattern..857 PASS document.querySelector("[*|foo$=bar i") threw exception SyntaxError: The string did not match the expected pattern..858 PASS document.querySelector("[WebKit|foo$=bar i") threw exception SyntaxError: The string did not match the expected pattern..859 PASS document.getElementById('style-container').sheet.cssRules.length is 0860 PASS document.getElementById('style-container').sheet.cssRules.length is 0861 PASS document.getElementById('style-container').sheet.cssRules.length is 0862 PASS document.getElementById('style-container').sheet.cssRules.length is 0863 PASS document.querySelector("[foo$=\"bar\" i") threw exception SyntaxError: The string did not match the expected pattern..864 PASS document.querySelector("[|foo$=\"bar\" i") threw exception SyntaxError: The string did not match the expected pattern..865 PASS document.querySelector("[*|foo$=\"bar\" i") threw exception SyntaxError: The string did not match the expected pattern..866 PASS document.querySelector("[WebKit|foo$=\"bar\" i") threw exception SyntaxError: The string did not match the expected pattern..867 PASS document.getElementById('style-container').sheet.cssRules.length is 0868 PASS document.getElementById('style-container').sheet.cssRules.length is 0869 PASS document.getElementById('style-container').sheet.cssRules.length is 0870 PASS document.getElementById('style-container').sheet.cssRules.length is 0871 PASS document.querySelector("[foo*=bar i") threw exception SyntaxError: The string did not match the expected pattern..872 PASS document.querySelector("[|foo*=bar i") threw exception SyntaxError: The string did not match the expected pattern..873 PASS document.querySelector("[*|foo*=bar i") threw exception SyntaxError: The string did not match the expected pattern..874 PASS document.querySelector("[WebKit|foo*=bar i") threw exception SyntaxError: The string did not match the expected pattern..875 PASS document.getElementById('style-container').sheet.cssRules.length is 0876 PASS document.getElementById('style-container').sheet.cssRules.length is 0877 PASS document.getElementById('style-container').sheet.cssRules.length is 0878 PASS document.getElementById('style-container').sheet.cssRules.length is 0879 PASS document.querySelector("[foo*=\"bar\" i") threw exception SyntaxError: The string did not match the expected pattern..880 PASS document.querySelector("[|foo*=\"bar\" i") threw exception SyntaxError: The string did not match the expected pattern..881 PASS document.querySelector("[*|foo*=\"bar\" i") threw exception SyntaxError: The string did not match the expected pattern..882 PASS document.querySelector("[WebKit|foo*=\"bar\" i") threw exception SyntaxError: The string did not match the expected pattern..883 PASS document.getElementById('style-container').sheet.cssRules.length is 0884 PASS document.getElementById('style-container').sheet.cssRules.length is 0885 PASS document.getElementById('style-container').sheet.cssRules.length is 0886 PASS document.getElementById('style-container').sheet.cssRules.length is 0887 791 PASS successfullyParsed is true 888 792 -
trunk/LayoutTests/fast/css/parsing-css-attribute-case-insensitive-value-3.html
r219663 r243691 144 144 '[foo*=bar l]', 145 145 '[foo*="bar" l]', 146 147 // Missing the closing ']'.148 '[foo=bar i',149 '[foo="bar" i',150 '[foo~=bar i',151 '[foo~="bar" i',152 '[foo|=bar i',153 '[foo|="bar" i',154 '[foo^=bar i',155 '[foo^="bar" i',156 '[foo$=bar i',157 '[foo$="bar" i',158 '[foo*=bar i',159 '[foo*="bar" i',160 146 ]; 161 147 -
trunk/LayoutTests/fast/selectors/invalid-functional-pseudo-class-expected.txt
r219663 r243691 16 16 PASS document.querySelectorAll(":-webkit-any\\\ .foo").length threw exception SyntaxError: The string did not match the expected pattern.. 17 17 PASS document.querySelectorAll(":-webkit-any\\\\ .foo").length threw exception SyntaxError: The string did not match the expected pattern.. 18 PASS document.querySelectorAll(":-webkit-any\( .foo").length threw exception SyntaxError: The string did not match the expected pattern..19 18 PASS document.querySelectorAll(":-webkit-any\\( .foo").length threw exception SyntaxError: The string did not match the expected pattern.. 20 19 PASS document.querySelectorAll(":-webkit-any\\\( .foo").length threw exception SyntaxError: The string did not match the expected pattern.. … … 57 56 PASS document.styleSheets[1].cssRules.length is 0 58 57 PASS document.styleSheets[1].cssRules.length is 0 59 PASS document.styleSheets[1].cssRules.length is 060 58 PASS document.querySelectorAll(":dir\").length threw exception SyntaxError: Unexpected EOF. 61 59 PASS document.querySelectorAll(":dir\\").length threw exception SyntaxError: The string did not match the expected pattern.. … … 70 68 PASS document.querySelectorAll(":dir\\\ .foo").length threw exception SyntaxError: The string did not match the expected pattern.. 71 69 PASS document.querySelectorAll(":dir\\\\ .foo").length threw exception SyntaxError: The string did not match the expected pattern.. 72 PASS document.querySelectorAll(":dir\( .foo").length threw exception SyntaxError: The string did not match the expected pattern..73 70 PASS document.querySelectorAll(":dir\\( .foo").length threw exception SyntaxError: The string did not match the expected pattern.. 74 71 PASS document.querySelectorAll(":dir\\\( .foo").length threw exception SyntaxError: The string did not match the expected pattern.. … … 111 108 PASS document.styleSheets[1].cssRules.length is 0 112 109 PASS document.styleSheets[1].cssRules.length is 0 113 PASS document.styleSheets[1].cssRules.length is 0114 110 PASS document.querySelectorAll(":lang\").length threw exception SyntaxError: Unexpected EOF. 115 111 PASS document.querySelectorAll(":lang\\").length threw exception SyntaxError: The string did not match the expected pattern.. … … 124 120 PASS document.querySelectorAll(":lang\\\ .foo").length threw exception SyntaxError: The string did not match the expected pattern.. 125 121 PASS document.querySelectorAll(":lang\\\\ .foo").length threw exception SyntaxError: The string did not match the expected pattern.. 126 PASS document.querySelectorAll(":lang\( .foo").length threw exception SyntaxError: The string did not match the expected pattern..127 122 PASS document.querySelectorAll(":lang\\( .foo").length threw exception SyntaxError: The string did not match the expected pattern.. 128 123 PASS document.querySelectorAll(":lang\\\( .foo").length threw exception SyntaxError: The string did not match the expected pattern.. … … 165 160 PASS document.styleSheets[1].cssRules.length is 0 166 161 PASS document.styleSheets[1].cssRules.length is 0 167 PASS document.styleSheets[1].cssRules.length is 0168 162 PASS document.querySelectorAll(":not\").length threw exception SyntaxError: Unexpected EOF. 169 163 PASS document.querySelectorAll(":not\\").length threw exception SyntaxError: The string did not match the expected pattern.. … … 178 172 PASS document.querySelectorAll(":not\\\ .foo").length threw exception SyntaxError: The string did not match the expected pattern.. 179 173 PASS document.querySelectorAll(":not\\\\ .foo").length threw exception SyntaxError: The string did not match the expected pattern.. 180 PASS document.querySelectorAll(":not\( .foo").length threw exception SyntaxError: The string did not match the expected pattern..181 174 PASS document.querySelectorAll(":not\\( .foo").length threw exception SyntaxError: The string did not match the expected pattern.. 182 175 PASS document.querySelectorAll(":not\\\( .foo").length threw exception SyntaxError: The string did not match the expected pattern.. … … 219 212 PASS document.styleSheets[1].cssRules.length is 0 220 213 PASS document.styleSheets[1].cssRules.length is 0 221 PASS document.styleSheets[1].cssRules.length is 0222 214 PASS document.querySelectorAll(":nth-child\").length threw exception SyntaxError: Unexpected EOF. 223 215 PASS document.querySelectorAll(":nth-child\\").length threw exception SyntaxError: The string did not match the expected pattern.. … … 232 224 PASS document.querySelectorAll(":nth-child\\\ .foo").length threw exception SyntaxError: The string did not match the expected pattern.. 233 225 PASS document.querySelectorAll(":nth-child\\\\ .foo").length threw exception SyntaxError: The string did not match the expected pattern.. 234 PASS document.querySelectorAll(":nth-child\( .foo").length threw exception SyntaxError: The string did not match the expected pattern..235 226 PASS document.querySelectorAll(":nth-child\\( .foo").length threw exception SyntaxError: The string did not match the expected pattern.. 236 227 PASS document.querySelectorAll(":nth-child\\\( .foo").length threw exception SyntaxError: The string did not match the expected pattern.. … … 273 264 PASS document.styleSheets[1].cssRules.length is 0 274 265 PASS document.styleSheets[1].cssRules.length is 0 275 PASS document.styleSheets[1].cssRules.length is 0276 266 PASS document.querySelectorAll(":nth-last-child\").length threw exception SyntaxError: Unexpected EOF. 277 267 PASS document.querySelectorAll(":nth-last-child\\").length threw exception SyntaxError: The string did not match the expected pattern.. … … 286 276 PASS document.querySelectorAll(":nth-last-child\\\ .foo").length threw exception SyntaxError: The string did not match the expected pattern.. 287 277 PASS document.querySelectorAll(":nth-last-child\\\\ .foo").length threw exception SyntaxError: The string did not match the expected pattern.. 288 PASS document.querySelectorAll(":nth-last-child\( .foo").length threw exception SyntaxError: The string did not match the expected pattern..289 278 PASS document.querySelectorAll(":nth-last-child\\( .foo").length threw exception SyntaxError: The string did not match the expected pattern.. 290 279 PASS document.querySelectorAll(":nth-last-child\\\( .foo").length threw exception SyntaxError: The string did not match the expected pattern.. … … 327 316 PASS document.styleSheets[1].cssRules.length is 0 328 317 PASS document.styleSheets[1].cssRules.length is 0 329 PASS document.styleSheets[1].cssRules.length is 0330 318 PASS document.querySelectorAll(":nth-last-of-type\").length threw exception SyntaxError: Unexpected EOF. 331 319 PASS document.querySelectorAll(":nth-last-of-type\\").length threw exception SyntaxError: The string did not match the expected pattern.. … … 340 328 PASS document.querySelectorAll(":nth-last-of-type\\\ .foo").length threw exception SyntaxError: The string did not match the expected pattern.. 341 329 PASS document.querySelectorAll(":nth-last-of-type\\\\ .foo").length threw exception SyntaxError: The string did not match the expected pattern.. 342 PASS document.querySelectorAll(":nth-last-of-type\( .foo").length threw exception SyntaxError: The string did not match the expected pattern..343 330 PASS document.querySelectorAll(":nth-last-of-type\\( .foo").length threw exception SyntaxError: The string did not match the expected pattern.. 344 331 PASS document.querySelectorAll(":nth-last-of-type\\\( .foo").length threw exception SyntaxError: The string did not match the expected pattern.. … … 381 368 PASS document.styleSheets[1].cssRules.length is 0 382 369 PASS document.styleSheets[1].cssRules.length is 0 383 PASS document.styleSheets[1].cssRules.length is 0384 370 PASS document.querySelectorAll(":nth-of-type\").length threw exception SyntaxError: Unexpected EOF. 385 371 PASS document.querySelectorAll(":nth-of-type\\").length threw exception SyntaxError: The string did not match the expected pattern.. … … 394 380 PASS document.querySelectorAll(":nth-of-type\\\ .foo").length threw exception SyntaxError: The string did not match the expected pattern.. 395 381 PASS document.querySelectorAll(":nth-of-type\\\\ .foo").length threw exception SyntaxError: The string did not match the expected pattern.. 396 PASS document.querySelectorAll(":nth-of-type\( .foo").length threw exception SyntaxError: The string did not match the expected pattern..397 382 PASS document.querySelectorAll(":nth-of-type\\( .foo").length threw exception SyntaxError: The string did not match the expected pattern.. 398 383 PASS document.querySelectorAll(":nth-of-type\\\( .foo").length threw exception SyntaxError: The string did not match the expected pattern.. … … 435 420 PASS document.styleSheets[1].cssRules.length is 0 436 421 PASS document.styleSheets[1].cssRules.length is 0 437 PASS document.styleSheets[1].cssRules.length is 0438 422 PASS document.querySelectorAll(":matches\").length threw exception SyntaxError: Unexpected EOF. 439 423 PASS document.querySelectorAll(":matches\\").length threw exception SyntaxError: The string did not match the expected pattern.. … … 448 432 PASS document.querySelectorAll(":matches\\\ .foo").length threw exception SyntaxError: The string did not match the expected pattern.. 449 433 PASS document.querySelectorAll(":matches\\\\ .foo").length threw exception SyntaxError: The string did not match the expected pattern.. 450 PASS document.querySelectorAll(":matches\( .foo").length threw exception SyntaxError: The string did not match the expected pattern..451 434 PASS document.querySelectorAll(":matches\\( .foo").length threw exception SyntaxError: The string did not match the expected pattern.. 452 435 PASS document.querySelectorAll(":matches\\\( .foo").length threw exception SyntaxError: The string did not match the expected pattern.. … … 489 472 PASS document.styleSheets[1].cssRules.length is 0 490 473 PASS document.styleSheets[1].cssRules.length is 0 491 PASS document.styleSheets[1].cssRules.length is 0492 474 PASS document.querySelectorAll(":role\").length threw exception SyntaxError: Unexpected EOF. 493 475 PASS document.querySelectorAll(":role\\").length threw exception SyntaxError: The string did not match the expected pattern.. … … 502 484 PASS document.querySelectorAll(":role\\\ .foo").length threw exception SyntaxError: The string did not match the expected pattern.. 503 485 PASS document.querySelectorAll(":role\\\\ .foo").length threw exception SyntaxError: The string did not match the expected pattern.. 504 PASS document.querySelectorAll(":role\( .foo").length threw exception SyntaxError: The string did not match the expected pattern..505 486 PASS document.querySelectorAll(":role\\( .foo").length threw exception SyntaxError: The string did not match the expected pattern.. 506 487 PASS document.querySelectorAll(":role\\\( .foo").length threw exception SyntaxError: The string did not match the expected pattern.. … … 543 524 PASS document.styleSheets[1].cssRules.length is 0 544 525 PASS document.styleSheets[1].cssRules.length is 0 545 PASS document.styleSheets[1].cssRules.length is 0546 526 PASS successfullyParsed is true 547 527 -
trunk/LayoutTests/fast/selectors/invalid-functional-pseudo-class.html
r176545 r243691 22 22 ':' + functonalPseudoClassName + '\\\\\\ .foo', 23 23 ':' + functonalPseudoClassName + '\\\\\\\\ .foo', 24 ':' + functonalPseudoClassName + '\\( .foo',25 24 ':' + functonalPseudoClassName + '\\\\( .foo', 26 25 ':' + functonalPseudoClassName + '\\\\\\( .foo', -
trunk/LayoutTests/imported/w3c/ChangeLog
r243669 r243691 1 2019-04-01 Emilio Cobos Álvarez <emilio@crisal.io> 2 3 Be less strict about closing blocks in attribute and functional pseudo-element selectors. 4 https://bugs.webkit.org/show_bug.cgi?id=142167 5 6 Reviewed by Antti Koivisto. 7 8 * web-platform-tests/dom/nodes/selectors.js: Add tests for ::slotted 9 1 10 2019-03-29 Chris Dumez <cdumez@apple.com> 2 11 -
trunk/LayoutTests/imported/w3c/web-platform-tests/css/selectors/missing-right-token-expected.txt
r232903 r243691 1 1 2 FAIL attribute selectors with missing right tokens succeed The string did not match the expected pattern. 2 PASS attribute selectors with missing right tokens succeed 3 3 -
trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Element-matches-expected.txt
r229544 r243691 94 94 PASS In-document Element.matches: Attribute presence selector, matching multiple options with selected attributes (with no refNodes): #attr-presence-select3 option[selected] 95 95 PASS In-document Element.matches: Attribute value selector, matching align attribute with value (with no refNodes): #attr-value [align="center"] 96 FAIL In-document Element.matches: Attribute value selector, matching align attribute with value, unclosed bracket (with no refNodes): #attr-value [align="center" The string did not match the expected pattern. 96 PASS In-document Element.matches: Attribute value selector, matching align attribute with value, unclosed bracket (with no refNodes): #attr-value [align="center" 97 97 PASS In-document Element.matches: Attribute value selector, matching align attribute with empty value (with no refNodes): #attr-value [align=""] 98 98 PASS In-document Element.matches: Attribute value selector, matching custom data-* attribute with unicode escaped value (with no refNodes): [data-attr-value="\e9"] … … 257 257 PASS Detached Element.matches: Attribute presence selector, matching multiple options with selected attributes (with no refNodes): #attr-presence-select3 option[selected] 258 258 PASS Detached Element.matches: Attribute value selector, matching align attribute with value (with no refNodes): #attr-value [align="center"] 259 FAIL Detached Element.matches: Attribute value selector, matching align attribute with value, unclosed bracket (with no refNodes): #attr-value [align="center" The string did not match the expected pattern. 259 PASS Detached Element.matches: Attribute value selector, matching align attribute with value, unclosed bracket (with no refNodes): #attr-value [align="center" 260 260 PASS Detached Element.matches: Attribute value selector, matching align attribute with empty value (with no refNodes): #attr-value [align=""] 261 261 PASS Detached Element.matches: Attribute value selector, matching custom data-* attribute with unicode escaped value (with no refNodes): [data-attr-value="\e9"] … … 415 415 PASS Fragment Element.matches: Attribute presence selector, matching multiple options with selected attributes (with no refNodes): #attr-presence-select3 option[selected] 416 416 PASS Fragment Element.matches: Attribute value selector, matching align attribute with value (with no refNodes): #attr-value [align="center"] 417 FAIL Fragment Element.matches: Attribute value selector, matching align attribute with value, unclosed bracket (with no refNodes): #attr-value [align="center" The string did not match the expected pattern. 417 PASS Fragment Element.matches: Attribute value selector, matching align attribute with value, unclosed bracket (with no refNodes): #attr-value [align="center" 418 418 PASS Fragment Element.matches: Attribute value selector, matching align attribute with empty value (with no refNodes): #attr-value [align=""] 419 419 PASS Fragment Element.matches: Attribute value selector, matching custom data-* attribute with unicode escaped value (with no refNodes): [data-attr-value="\e9"] -
trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Element-webkitMatchesSelector-expected.txt
r229544 r243691 94 94 PASS In-document Element.webkitMatchesSelector: Attribute presence selector, matching multiple options with selected attributes (with no refNodes): #attr-presence-select3 option[selected] 95 95 PASS In-document Element.webkitMatchesSelector: Attribute value selector, matching align attribute with value (with no refNodes): #attr-value [align="center"] 96 FAIL In-document Element.webkitMatchesSelector: Attribute value selector, matching align attribute with value, unclosed bracket (with no refNodes): #attr-value [align="center" The string did not match the expected pattern. 96 PASS In-document Element.webkitMatchesSelector: Attribute value selector, matching align attribute with value, unclosed bracket (with no refNodes): #attr-value [align="center" 97 97 PASS In-document Element.webkitMatchesSelector: Attribute value selector, matching align attribute with empty value (with no refNodes): #attr-value [align=""] 98 98 PASS In-document Element.webkitMatchesSelector: Attribute value selector, matching custom data-* attribute with unicode escaped value (with no refNodes): [data-attr-value="\e9"] … … 257 257 PASS Detached Element.webkitMatchesSelector: Attribute presence selector, matching multiple options with selected attributes (with no refNodes): #attr-presence-select3 option[selected] 258 258 PASS Detached Element.webkitMatchesSelector: Attribute value selector, matching align attribute with value (with no refNodes): #attr-value [align="center"] 259 FAIL Detached Element.webkitMatchesSelector: Attribute value selector, matching align attribute with value, unclosed bracket (with no refNodes): #attr-value [align="center" The string did not match the expected pattern. 259 PASS Detached Element.webkitMatchesSelector: Attribute value selector, matching align attribute with value, unclosed bracket (with no refNodes): #attr-value [align="center" 260 260 PASS Detached Element.webkitMatchesSelector: Attribute value selector, matching align attribute with empty value (with no refNodes): #attr-value [align=""] 261 261 PASS Detached Element.webkitMatchesSelector: Attribute value selector, matching custom data-* attribute with unicode escaped value (with no refNodes): [data-attr-value="\e9"] … … 415 415 PASS Fragment Element.webkitMatchesSelector: Attribute presence selector, matching multiple options with selected attributes (with no refNodes): #attr-presence-select3 option[selected] 416 416 PASS Fragment Element.webkitMatchesSelector: Attribute value selector, matching align attribute with value (with no refNodes): #attr-value [align="center"] 417 FAIL Fragment Element.webkitMatchesSelector: Attribute value selector, matching align attribute with value, unclosed bracket (with no refNodes): #attr-value [align="center" The string did not match the expected pattern. 417 PASS Fragment Element.webkitMatchesSelector: Attribute value selector, matching align attribute with value, unclosed bracket (with no refNodes): #attr-value [align="center" 418 418 PASS Fragment Element.webkitMatchesSelector: Attribute value selector, matching align attribute with empty value (with no refNodes): #attr-value [align=""] 419 419 PASS Fragment Element.webkitMatchesSelector: Attribute value selector, matching custom data-* attribute with unicode escaped value (with no refNodes): [data-attr-value="\e9"] -
trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/ParentNode-querySelector-All-expected.txt
r229544 r243691 346 346 PASS Document.querySelectorAll: Attribute value selector, matching align attribute with value: #attr-value [align="center"] 347 347 PASS Document.querySelector: Attribute value selector, matching align attribute with value: #attr-value [align="center"] 348 FAIL Document.querySelectorAll: Attribute value selector, matching align attribute with value, unclosed bracket: #attr-value [align="center" The string did not match the expected pattern. 349 FAIL Document.querySelector: Attribute value selector, matching align attribute with value, unclosed bracket: #attr-value [align="center" The string did not match the expected pattern. 348 PASS Document.querySelectorAll: Attribute value selector, matching align attribute with value, unclosed bracket: #attr-value [align="center" 349 PASS Document.querySelector: Attribute value selector, matching align attribute with value, unclosed bracket: #attr-value [align="center" 350 350 PASS Document.querySelectorAll: Attribute value selector, matching align attribute with empty value: #attr-value [align=""] 351 351 PASS Document.querySelector: Attribute value selector, matching align attribute with empty value: #attr-value [align=""] … … 734 734 PASS Document.querySelectorAll: Syntax, group of selectors separator, no whitespace: #group em,#group strong 735 735 PASS Document.querySelector: Syntax, group of selectors separator, no whitespace: #group em,#group strong 736 PASS Document.querySelectorAll: Slotted selector: ::slotted(foo) 737 PASS Document.querySelector: Slotted selector: ::slotted(foo) 738 PASS Document.querySelectorAll: Slotted selector (no matching closing paren): ::slotted(foo 739 PASS Document.querySelector: Slotted selector (no matching closing paren): ::slotted(foo 736 740 PASS Detached Element.querySelectorAll: Type selector, matching html element: html 737 741 PASS Detached Element.querySelector: Type selector, matching html element: html … … 766 770 PASS Detached Element.querySelectorAll: Attribute value selector, matching align attribute with value: #attr-value [align="center"] 767 771 PASS Detached Element.querySelector: Attribute value selector, matching align attribute with value: #attr-value [align="center"] 768 FAIL Detached Element.querySelectorAll: Attribute value selector, matching align attribute with value, unclosed bracket: #attr-value [align="center" The string did not match the expected pattern. 769 FAIL Detached Element.querySelector: Attribute value selector, matching align attribute with value, unclosed bracket: #attr-value [align="center" The string did not match the expected pattern. 772 PASS Detached Element.querySelectorAll: Attribute value selector, matching align attribute with value, unclosed bracket: #attr-value [align="center" 773 PASS Detached Element.querySelector: Attribute value selector, matching align attribute with value, unclosed bracket: #attr-value [align="center" 770 774 PASS Detached Element.querySelectorAll: Attribute value selector, matching align attribute with empty value: #attr-value [align=""] 771 775 PASS Detached Element.querySelector: Attribute value selector, matching align attribute with empty value: #attr-value [align=""] … … 1154 1158 PASS Detached Element.querySelectorAll: Syntax, group of selectors separator, no whitespace: #group em,#group strong 1155 1159 PASS Detached Element.querySelector: Syntax, group of selectors separator, no whitespace: #group em,#group strong 1160 PASS Detached Element.querySelectorAll: Slotted selector: ::slotted(foo) 1161 PASS Detached Element.querySelector: Slotted selector: ::slotted(foo) 1162 PASS Detached Element.querySelectorAll: Slotted selector (no matching closing paren): ::slotted(foo 1163 PASS Detached Element.querySelector: Slotted selector (no matching closing paren): ::slotted(foo 1156 1164 PASS Fragment.querySelectorAll: Type selector, matching html element: html 1157 1165 PASS Fragment.querySelector: Type selector, matching html element: html … … 1186 1194 PASS Fragment.querySelectorAll: Attribute value selector, matching align attribute with value: #attr-value [align="center"] 1187 1195 PASS Fragment.querySelector: Attribute value selector, matching align attribute with value: #attr-value [align="center"] 1188 FAIL Fragment.querySelectorAll: Attribute value selector, matching align attribute with value, unclosed bracket: #attr-value [align="center" The string did not match the expected pattern. 1189 FAIL Fragment.querySelector: Attribute value selector, matching align attribute with value, unclosed bracket: #attr-value [align="center" The string did not match the expected pattern. 1196 PASS Fragment.querySelectorAll: Attribute value selector, matching align attribute with value, unclosed bracket: #attr-value [align="center" 1197 PASS Fragment.querySelector: Attribute value selector, matching align attribute with value, unclosed bracket: #attr-value [align="center" 1190 1198 PASS Fragment.querySelectorAll: Attribute value selector, matching align attribute with empty value: #attr-value [align=""] 1191 1199 PASS Fragment.querySelector: Attribute value selector, matching align attribute with empty value: #attr-value [align=""] … … 1574 1582 PASS Fragment.querySelectorAll: Syntax, group of selectors separator, no whitespace: #group em,#group strong 1575 1583 PASS Fragment.querySelector: Syntax, group of selectors separator, no whitespace: #group em,#group strong 1584 PASS Fragment.querySelectorAll: Slotted selector: ::slotted(foo) 1585 PASS Fragment.querySelector: Slotted selector: ::slotted(foo) 1586 PASS Fragment.querySelectorAll: Slotted selector (no matching closing paren): ::slotted(foo 1587 PASS Fragment.querySelector: Slotted selector (no matching closing paren): ::slotted(foo 1576 1588 PASS In-document Element.querySelectorAll: Type selector, matching html element: html 1577 1589 PASS In-document Element.querySelector: Type selector, matching html element: html … … 1606 1618 PASS In-document Element.querySelectorAll: Attribute value selector, matching align attribute with value: #attr-value [align="center"] 1607 1619 PASS In-document Element.querySelector: Attribute value selector, matching align attribute with value: #attr-value [align="center"] 1608 FAIL In-document Element.querySelectorAll: Attribute value selector, matching align attribute with value, unclosed bracket: #attr-value [align="center" The string did not match the expected pattern. 1609 FAIL In-document Element.querySelector: Attribute value selector, matching align attribute with value, unclosed bracket: #attr-value [align="center" The string did not match the expected pattern. 1620 PASS In-document Element.querySelectorAll: Attribute value selector, matching align attribute with value, unclosed bracket: #attr-value [align="center" 1621 PASS In-document Element.querySelector: Attribute value selector, matching align attribute with value, unclosed bracket: #attr-value [align="center" 1610 1622 PASS In-document Element.querySelectorAll: Attribute value selector, matching align attribute with empty value: #attr-value [align=""] 1611 1623 PASS In-document Element.querySelector: Attribute value selector, matching align attribute with empty value: #attr-value [align=""] … … 1996 2008 PASS In-document Element.querySelectorAll: Syntax, group of selectors separator, no whitespace: #group em,#group strong 1997 2009 PASS In-document Element.querySelector: Syntax, group of selectors separator, no whitespace: #group em,#group strong 2010 PASS In-document Element.querySelectorAll: Slotted selector: ::slotted(foo) 2011 PASS In-document Element.querySelector: Slotted selector: ::slotted(foo) 2012 PASS In-document Element.querySelectorAll: Slotted selector (no matching closing paren): ::slotted(foo 2013 PASS In-document Element.querySelector: Slotted selector (no matching closing paren): ::slotted(foo 1998 2014 -
trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/ParentNode-querySelector-All-xht-expected.txt
r229544 r243691 346 346 PASS Document.querySelectorAll: Attribute value selector, matching align attribute with value: #attr-value [align="center"] 347 347 PASS Document.querySelector: Attribute value selector, matching align attribute with value: #attr-value [align="center"] 348 FAIL Document.querySelectorAll: Attribute value selector, matching align attribute with value, unclosed bracket: #attr-value [align="center" The string did not match the expected pattern. 349 FAIL Document.querySelector: Attribute value selector, matching align attribute with value, unclosed bracket: #attr-value [align="center" The string did not match the expected pattern. 348 PASS Document.querySelectorAll: Attribute value selector, matching align attribute with value, unclosed bracket: #attr-value [align="center" 349 PASS Document.querySelector: Attribute value selector, matching align attribute with value, unclosed bracket: #attr-value [align="center" 350 350 PASS Document.querySelectorAll: Attribute value selector, matching align attribute with empty value: #attr-value [align=""] 351 351 PASS Document.querySelector: Attribute value selector, matching align attribute with empty value: #attr-value [align=""] … … 734 734 PASS Document.querySelectorAll: Syntax, group of selectors separator, no whitespace: #group em,#group strong 735 735 PASS Document.querySelector: Syntax, group of selectors separator, no whitespace: #group em,#group strong 736 PASS Document.querySelectorAll: Slotted selector: ::slotted(foo) 737 PASS Document.querySelector: Slotted selector: ::slotted(foo) 738 PASS Document.querySelectorAll: Slotted selector (no matching closing paren): ::slotted(foo 739 PASS Document.querySelector: Slotted selector (no matching closing paren): ::slotted(foo 736 740 PASS Detached Element.querySelectorAll: Type selector, matching html element: html 737 741 PASS Detached Element.querySelector: Type selector, matching html element: html … … 766 770 PASS Detached Element.querySelectorAll: Attribute value selector, matching align attribute with value: #attr-value [align="center"] 767 771 PASS Detached Element.querySelector: Attribute value selector, matching align attribute with value: #attr-value [align="center"] 768 FAIL Detached Element.querySelectorAll: Attribute value selector, matching align attribute with value, unclosed bracket: #attr-value [align="center" The string did not match the expected pattern. 769 FAIL Detached Element.querySelector: Attribute value selector, matching align attribute with value, unclosed bracket: #attr-value [align="center" The string did not match the expected pattern. 772 PASS Detached Element.querySelectorAll: Attribute value selector, matching align attribute with value, unclosed bracket: #attr-value [align="center" 773 PASS Detached Element.querySelector: Attribute value selector, matching align attribute with value, unclosed bracket: #attr-value [align="center" 770 774 PASS Detached Element.querySelectorAll: Attribute value selector, matching align attribute with empty value: #attr-value [align=""] 771 775 PASS Detached Element.querySelector: Attribute value selector, matching align attribute with empty value: #attr-value [align=""] … … 1154 1158 PASS Detached Element.querySelectorAll: Syntax, group of selectors separator, no whitespace: #group em,#group strong 1155 1159 PASS Detached Element.querySelector: Syntax, group of selectors separator, no whitespace: #group em,#group strong 1160 PASS Detached Element.querySelectorAll: Slotted selector: ::slotted(foo) 1161 PASS Detached Element.querySelector: Slotted selector: ::slotted(foo) 1162 PASS Detached Element.querySelectorAll: Slotted selector (no matching closing paren): ::slotted(foo 1163 PASS Detached Element.querySelector: Slotted selector (no matching closing paren): ::slotted(foo 1156 1164 PASS Fragment.querySelectorAll: Type selector, matching html element: html 1157 1165 PASS Fragment.querySelector: Type selector, matching html element: html … … 1186 1194 PASS Fragment.querySelectorAll: Attribute value selector, matching align attribute with value: #attr-value [align="center"] 1187 1195 PASS Fragment.querySelector: Attribute value selector, matching align attribute with value: #attr-value [align="center"] 1188 FAIL Fragment.querySelectorAll: Attribute value selector, matching align attribute with value, unclosed bracket: #attr-value [align="center" The string did not match the expected pattern. 1189 FAIL Fragment.querySelector: Attribute value selector, matching align attribute with value, unclosed bracket: #attr-value [align="center" The string did not match the expected pattern. 1196 PASS Fragment.querySelectorAll: Attribute value selector, matching align attribute with value, unclosed bracket: #attr-value [align="center" 1197 PASS Fragment.querySelector: Attribute value selector, matching align attribute with value, unclosed bracket: #attr-value [align="center" 1190 1198 PASS Fragment.querySelectorAll: Attribute value selector, matching align attribute with empty value: #attr-value [align=""] 1191 1199 PASS Fragment.querySelector: Attribute value selector, matching align attribute with empty value: #attr-value [align=""] … … 1574 1582 PASS Fragment.querySelectorAll: Syntax, group of selectors separator, no whitespace: #group em,#group strong 1575 1583 PASS Fragment.querySelector: Syntax, group of selectors separator, no whitespace: #group em,#group strong 1584 PASS Fragment.querySelectorAll: Slotted selector: ::slotted(foo) 1585 PASS Fragment.querySelector: Slotted selector: ::slotted(foo) 1586 PASS Fragment.querySelectorAll: Slotted selector (no matching closing paren): ::slotted(foo 1587 PASS Fragment.querySelector: Slotted selector (no matching closing paren): ::slotted(foo 1576 1588 PASS In-document Element.querySelectorAll: Type selector, matching html element: html 1577 1589 PASS In-document Element.querySelector: Type selector, matching html element: html … … 1606 1618 PASS In-document Element.querySelectorAll: Attribute value selector, matching align attribute with value: #attr-value [align="center"] 1607 1619 PASS In-document Element.querySelector: Attribute value selector, matching align attribute with value: #attr-value [align="center"] 1608 FAIL In-document Element.querySelectorAll: Attribute value selector, matching align attribute with value, unclosed bracket: #attr-value [align="center" The string did not match the expected pattern. 1609 FAIL In-document Element.querySelector: Attribute value selector, matching align attribute with value, unclosed bracket: #attr-value [align="center" The string did not match the expected pattern. 1620 PASS In-document Element.querySelectorAll: Attribute value selector, matching align attribute with value, unclosed bracket: #attr-value [align="center" 1621 PASS In-document Element.querySelector: Attribute value selector, matching align attribute with value, unclosed bracket: #attr-value [align="center" 1610 1622 PASS In-document Element.querySelectorAll: Attribute value selector, matching align attribute with empty value: #attr-value [align=""] 1611 1623 PASS In-document Element.querySelector: Attribute value selector, matching align attribute with empty value: #attr-value [align=""] … … 1996 2008 PASS In-document Element.querySelectorAll: Syntax, group of selectors separator, no whitespace: #group em,#group strong 1997 2009 PASS In-document Element.querySelector: Syntax, group of selectors separator, no whitespace: #group em,#group strong 2010 PASS In-document Element.querySelectorAll: Slotted selector: ::slotted(foo) 2011 PASS In-document Element.querySelector: Slotted selector: ::slotted(foo) 2012 PASS In-document Element.querySelectorAll: Slotted selector (no matching closing paren): ::slotted(foo 2013 PASS In-document Element.querySelector: Slotted selector (no matching closing paren): ::slotted(foo 1998 2014 -
trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/selectors.js
r229544 r243691 372 372 {name: "Syntax, group of selectors separator, whitespace before", selector: "#group em\t\r\n,#group strong", expect: ["group-em1", "group-strong1"], level: 1, testType: TEST_QSA | TEST_MATCH}, 373 373 {name: "Syntax, group of selectors separator, no whitespace", selector: "#group em,#group strong", expect: ["group-em1", "group-strong1"], level: 1, testType: TEST_QSA | TEST_MATCH}, 374 375 // ::slotted (shouldn't match anything, but is a valid selector) 376 {name: "Slotted selector", selector: "::slotted(foo)", expect: [], level: 3, testType: TEST_QSA}, 377 {name: "Slotted selector (no matching closing paren)", selector: "::slotted(foo", expect: [], level: 3, testType: TEST_QSA}, 374 378 ]; 375 379 -
trunk/Source/WebCore/ChangeLog
r243690 r243691 1 2019-04-01 Emilio Cobos Álvarez <emilio@crisal.io> 2 3 Be less strict about closing blocks in attribute and functional pseudo-element selectors. 4 https://bugs.webkit.org/show_bug.cgi?id=142167 5 6 Reviewed by Antti Koivisto. 7 8 This was also an issue for, e.g., "::slotted(foo", turns out. 9 10 This matches Chromium, Firefox, and the spec: 11 12 https://drafts.csswg.org/css-syntax/#parse-error: 13 14 > Certain points in the parsing algorithm are said to be parse errors. The error 15 > handling for parse errors is well-defined: user agents must either act as 16 > described below when encountering such problems, or must abort processing at 17 > the first error that they encounter for which they do not wish to apply the 18 > rules described below. 19 20 https://drafts.csswg.org/css-syntax/#consume-simple-block: 21 22 > <EOF-token> 23 > This is a parse error. Return the block. 24 25 Tests: web-platform-tests/dom/nodes/selectors.js (and probably others) 26 27 * css/parser/CSSSelectorParser.cpp: 28 (WebCore::CSSSelectorParser::consumeAttribute): 29 (WebCore::CSSSelectorParser::consumePseudo): 30 1 31 2019-04-01 Pablo Saavedra <psaavedra@igalia.com> 2 32 -
trunk/Source/WebCore/css/parser/CSSSelectorParser.cpp
r237932 r243691 399 399 ASSERT(range.peek().type() == LeftBracketToken); 400 400 CSSParserTokenRange block = range.consumeBlock(); 401 if (block.end() == range.end())402 return nullptr; // No ] was found. Be strict about this.403 404 401 block.consumeWhitespace(); 405 402 … … 521 518 522 519 CSSParserTokenRange block = range.consumeBlock(); 523 if (block.end() == range.end())524 return nullptr; // No ) was found. Be strict about this.525 520 block.consumeWhitespace(); 526 521 if (token.type() != FunctionToken)
Note:
See TracChangeset
for help on using the changeset viewer.