Auto merge of #20689 - fabricedesre:mutation-take-records, r=emilio

MutationObserver api: Implement takeRecords() and characterData mutations

<!-- Please describe your changes on the following line: -->

I started by looking at adding support for `takeRecords()` to get fluent.js to work on Servo. To get the wpt tests to pass I ended up implementing character data mutations (most of the plumbing was already there) and this fixed a few more tests.

We are still missing support for `disconnect()`, which I keep for a followup.

---
<!-- 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 build-geckolib` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [ ] These changes fix #__ (github issue number if applicable).

<!-- 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. -->

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/20689)
<!-- Reviewable:end -->
This commit is contained in:
bors-servo 2018-05-02 14:05:00 -04:00 committed by GitHub
commit 2c9ef9e558
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
9 changed files with 98 additions and 112 deletions

View file

@ -1,28 +1,5 @@
[MutationObserver-attributes.html]
type: testharness
[attributes Element.id: same value mutation]
expected: FAIL
[attributes Element.className: new value mutation]
expected: FAIL
[attributes Element.classList.add: single token addition mutation]
expected: FAIL
[attributes Element.classList.add: multiple tokens addition mutation]
expected: FAIL
[attributes Element.setAttribute: classname mutation]
expected: FAIL
[attributes Element.setAttributeNS: creation mutation]
expected: FAIL
[attributes Element.setAttributeNS: prefixed attribute creation mutation]
expected: FAIL
[attributes Element.className: empty string update mutation]
expected: FAIL
[attributes/attributeFilter Element.id/Element.className: update mutation]
expected: FAIL
@ -32,4 +9,3 @@
[attributeFilter alone Element.id/Element.className: multiple filter update mutation]
expected: FAIL

View file

@ -1,11 +1,6 @@
[MutationObserver-characterData.html]
type: testharness
expected: TIMEOUT
[characterData Text.data: simple mutation without oldValue]
expected: TIMEOUT
[characterData Text.data: simple mutation]
expected: TIMEOUT
[characterData Text.appendData: simple mutation]
expected: TIMEOUT
@ -15,46 +10,3 @@
[characterData Text.appendData: null string mutation]
expected: TIMEOUT
[characterData Text.insertData: simple mutation]
expected: TIMEOUT
[characterData Text.insertData: empty string mutation]
expected: TIMEOUT
[characterData Text.insertData: null string mutation]
expected: TIMEOUT
[characterData Text.deleteData: simple mutation]
expected: TIMEOUT
[characterData Text.deleteData: empty mutation]
expected: TIMEOUT
[characterData Text.replaceData: simple mutation]
expected: TIMEOUT
[characterData Text.replaceData: empty mutation]
expected: TIMEOUT
[characterData ProcessingInstruction: data mutations]
expected: TIMEOUT
[characterData Comment: data mutations]
expected: TIMEOUT
[characterData Range.deleteContents: child and data removal mutation]
expected: TIMEOUT
[characterData Range.deleteContents: child and data removal mutation (2)]
expected: TIMEOUT
[characterData Range.extractContents: child and data removal mutation]
expected: TIMEOUT
[characterData Range.extractContents: child and data removal mutation (2)]
expected: TIMEOUT
[characterData/characterDataOldValue alone Text.data: simple mutation]
expected: TIMEOUT

View file

@ -1,11 +1,2 @@
[MutationObserver-takeRecords.html]
type: testharness
[unreachabled test]
expected: FAIL
[All records present]
expected: FAIL
[No more records present]
expected: FAIL