Auto merge of #25627 - pshaughn:definedpseudo, r=emilio,jdm

Implement :defined CSS selector

<!-- Please describe your changes on the following line: -->
ElementState::IN_DEFINED_STATE already existed but wasn't hooked up to anything; now it is set appropriately, and CSS is aware of it. The main test for this selector needed the window named getter for no important reason, so I made a one-line test change to avoid that. Remaining failures in the test are all about SVG elements.

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `___` with appropriate data: -->
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] These changes fix #25010

<!-- Either: -->
- [X] There are tests for these changes OR
- [ ] These changes do not require tests because ___

<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->
This commit is contained in:
bors-servo 2020-01-31 01:48:35 -05:00 committed by GitHub
commit 4edd1590f4
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
9 changed files with 52 additions and 7 deletions

View file

@ -667507,7 +667507,7 @@
"testharness"
],
"custom-elements/pseudo-class-defined.html": [
"24cb5fe4cd392246e292d255c0858aa7f2b5dd0e",
"ed12830d5a9582dbf3ec30c74a43fe381221a139",
"testharness"
],
"custom-elements/range-and-constructors.html": [

View file

@ -1,3 +0,0 @@
[Document-createElement.html]
[document.createElement must create an instance of autonomous custom elements when it has is attribute]
expected: FAIL

View file

@ -1,8 +1,37 @@
[pseudo-class-defined.html]
expected: ERROR
[Untitled]
expected: FAIL
[pseudo-class-defined]
expected: FAIL
[createElementNS("http://www.w3.org/2000/svg", "div") should be :defined]
expected: FAIL
[Without browsing context: createElementNS("http://www.w3.org/2000/svg", "div") should be :defined]
expected: FAIL
[Without browsing context: createElementNS("http://www.w3.org/2000/svg", "p", { is: "" }) should be :defined]
expected: FAIL
[createElementNS("http://www.w3.org/2000/svg", "p", { is: "" }) should be :defined]
expected: FAIL
[Without browsing context: createElementNS("http://www.w3.org/2000/svg", "abbr", { is: "my-abbr" }) should be :defined]
expected: FAIL
[createElementNS("http://www.w3.org/2000/svg", "abbr", { is: "my-abbr" }) should be :defined]
expected: FAIL
[createElementNS("http://www.w3.org/2000/svg", "font-face") should be :defined]
expected: FAIL
[Without browsing context: createElementNS("http://www.w3.org/2000/svg", "font-face") should be :defined]
expected: FAIL
[createElementNS("http://www.w3.org/2000/svg", "a-a") should be :defined]
expected: FAIL
[Without browsing context: createElementNS("http://www.w3.org/2000/svg", "a-a") should be :defined]
expected: FAIL

View file

@ -16,6 +16,7 @@ const testList = [
const neither = 'rgb(255, 0, 0)';
const defined = 'rgb(255, 165, 0)';
const not_defined = 'rgb(0, 0, 255)';
const iframe = document.getElementById("iframe");
iframe.srcdoc = `<style>
* { color:${neither}; }
:defined { color:${defined}; }