Bug 149160 - querySelector throws exception for -webkit prefixed pseudo elements
Summary: querySelector throws exception for -webkit prefixed pseudo elements
Status: NEW
Alias: None
Product: WebKit
Classification: Unclassified
Component: New Bugs (show other bugs)
Version: Safari 9
Hardware: Macintosh OS X 10.10
: P2 Normal
Assignee: Nobody
URL:
Keywords: HasReduction
Depends on:
Blocks:
 
Reported: 2015-09-15 05:45 PDT by Derk-Jan Hartman
Modified: 2017-01-11 19:36 PST (History)
6 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Derk-Jan Hartman 2015-09-15 05:45:44 PDT
Per: http://dev.w3.org/2006/webapi/selectors-api/#interface-definitions

Authors are advised that while the use of pseudo-elements in selectors is permitted, they will not match any elements in the document, and thus would not result in any elements being returned. Therefore, authors are advised to avoid the use of pseudo-elements in selectors that are passed to the methods defined in this specification.

This works as expected (returns null) in Webkit for pseudo elements like ::before and ::after, but all Webkit specific pseudo elements (like -webkit-search-decoration) throws DOM Exception 12

This fails:
document.querySelector( 'input::-webkit-search-decoration' )

See also the console output of this Fiddle: http://jsfiddle.net/TheDJ/db27kn7p/
This will return null in Chrome.
Comment 1 Derk-Jan Hartman 2015-09-15 06:31:52 PDT
Downstream ticket on Wikipedia where we noticed this: https://phabricator.wikimedia.org/T112650

Related ticket in Firefox:
https://bugzilla.mozilla.org/show_bug.cgi?id=1204880
Comment 2 Joseph Pecoraro 2017-01-11 19:36:09 PST
This is still the case.

For example:

    document.querySelector("input::placeholder");

Outputs an Exception in Safari, but returns null in Firefox and Chrome.