Auto merge of #23500 - sreeise:exposed_binding_gen, r=jdm

Make bindings aware of exposed members/partial interfaces

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

---
<!-- 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
- [ ] These changes fix #23332

<!-- Either: -->
- [ ] 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/23500)
<!-- Reviewable:end -->
This commit is contained in:
bors-servo 2019-07-14 12:53:14 -04:00 committed by GitHub
commit 95b304b786
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
25 changed files with 151 additions and 78 deletions

View file

@ -689369,7 +689369,7 @@
"testharness"
],
"xhr/abort-after-send.any.js": [
"41922c915a653ee96e949a3c8ce2aeeb4fd0630c",
"0ffd8877f87f9255668409c1fc9e973d006e6ae9",
"testharness"
],
"xhr/abort-after-stop.any.js": [

View file

@ -630,24 +630,6 @@
[WorkerNavigator interface: self.navigator must not have property "taintEnabled"]
expected: FAIL
[WorkerNavigator interface: self.navigator must not have property "vendor"]
expected: FAIL
[WorkerNavigator interface: self.navigator must not have property "vendorSub"]
expected: FAIL
[WorkerNavigator interface: self.navigator must not have property "productSub"]
expected: FAIL
[WorkerNavigator interface: member vendor]
expected: FAIL
[WorkerNavigator interface: member vendorSub]
expected: FAIL
[WorkerNavigator interface: member productSub]
expected: FAIL
[OffscreenCanvasRenderingContext2D interface: operation arc(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, boolean)]
expected: FAIL

View file

@ -30,24 +30,6 @@
[WorkerNavigator interface: attribute onLine]
expected: FAIL
[WorkerNavigator interface: member productSub]
expected: FAIL
[WorkerNavigator interface: member vendor]
expected: FAIL
[WorkerNavigator interface: member vendorSub]
expected: FAIL
[WorkerNavigator interface: self.navigator must not have property "productSub"]
expected: FAIL
[WorkerNavigator interface: self.navigator must not have property "vendor"]
expected: FAIL
[WorkerNavigator interface: self.navigator must not have property "vendorSub"]
expected: FAIL
[WorkerNavigator interface: self.navigator must inherit property "languages" with the proper type (7)]
expected: FAIL

View file

@ -12,9 +12,6 @@
[Resource timing seems to work in workers]
expected: FAIL
[performance.timing is not available in workers]
expected: FAIL
[performance.toJSON is available in workers]
expected: FAIL

View file

@ -18,12 +18,6 @@
[idlharness]
expected: FAIL
[XMLHttpRequest interface: new XMLHttpRequest() must not have property "responseXML"]
expected: FAIL
[XMLHttpRequest interface: member responseXML]
expected: FAIL
[Testing Symbol.iterator property of iterable interface FormData]
expected: FAIL

View file

@ -1,5 +0,0 @@
[responseXML-unavailable-in-worker.html]
type: testharness
[XMLHttpRequest's responseXML property should not be exposed in workers.]
expected: FAIL

View file

@ -9735,6 +9735,9 @@
"mozilla/webgl/tex_image_2d_simple_ref.html": [
[]
],
"mozilla/worker_member_test.js": [
[]
],
"mozilla/worklets/syntax_error.js": [
[]
],
@ -18895,7 +18898,7 @@
"testharness"
],
"mozilla/interface_member_exposed.html": [
"dd637cf92a894e4569e8fb0baf11eea6968033af",
"f408f9c3dae4b78b49bf77b5ad32c0d5ee406f7e",
"testharness"
],
"mozilla/interfaces.html": [
@ -19594,6 +19597,10 @@
"d5c75899eb546d7243d65b6f55e876c5008c6292",
"testharness"
],
"mozilla/worker_member_test.js": [
"abca5cd280ac07914cb21ee4968ac4d27e7feb68",
"support"
],
"mozilla/worklets/syntax_error.js": [
"4adade8939ce62eb5e83d73d4faf2261b264d809",
"support"

View file

@ -43,4 +43,22 @@ for (var i = 0; i < staticMembers.length; i++) {
test_member(name + 'Enabled', true, function(o) { return o; });
test_member(name + 'Disabled', false, function(o) { return o; });
}
members = [
'semiExposedBoolFromInterface',
'boolFromSemiExposedPartialInterface',
'semiExposedBoolFromPartialInterface',
];
for (const member of members) {
var interface = new TestBinding();
async_test(function(t) {
assert_true(member in interface);
assert_true(interface[member]);
let w = new Worker("worker_member_test.js?" + member);
w.onmessage = t.step_func(function(e) {
assert_equals(e.data, undefined);
t.done();
});
}, member);
}
</script>

View file

@ -0,0 +1,3 @@
let member = location.search.slice(1);
var binding = new TestBinding();
postMessage(binding[member]);

View file

@ -9,7 +9,9 @@
client.addEventListener("readystatechange", test.step_func(function() {
if(client.readyState == 4) {
control_flag = true
assert_equals(client.responseXML, null)
if (self.GLOBAL.isWindow()) {
assert_equals(client.responseXML, null)
}
assert_equals(client.responseText, "")
assert_equals(client.status, 0)
assert_equals(client.statusText, "")