Auto merge of #22812 - servo-wpt-sync:wpt_update_02-02-2019, r=jdm

Sync WPT with upstream (02-02-2019)

Automated downstream sync of changes from upstream as of 02-02-2019.
[no-wpt-sync]

<!-- 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/22812)
<!-- Reviewable:end -->
This commit is contained in:
bors-servo 2019-02-03 00:11:33 -05:00 committed by GitHub
commit 481662d0a7
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
13 changed files with 207 additions and 79 deletions

View file

@ -37,6 +37,3 @@
[Revoke blob URL after creating Request, will fetch]
expected: FAIL
[Revoke blob URL after calling fetch, fetch should succeed]
expected: FAIL

View file

@ -420459,6 +420459,12 @@
{}
]
],
"webrtc/RTCError.html": [
[
"/webrtc/RTCError.html",
{}
]
],
"webrtc/RTCIceCandidate-constructor.html": [
[
"/webrtc/RTCIceCandidate-constructor.html",
@ -423297,6 +423303,12 @@
{}
]
],
"webstorage/symbol-props.window.js": [
[
"/webstorage/symbol-props.window.html",
{}
]
],
"webusb/idlharness.https.any.js": [
[
"/webusb/idlharness.https.any.html",
@ -641159,7 +641171,7 @@
"support"
],
"interfaces/webxr.idl": [
"63643a11b6b0cb7ecf7aabc19b03edf1d47a6642",
"b1ed0f9072716efd5ef92ead32d58b396319dbfa",
"support"
],
"interfaces/worklets.idl": [
@ -686286,6 +686298,10 @@
"fd7215fa4e162acaed2af563c83b5b0846af3dd5",
"testharness"
],
"webrtc/RTCError.html": [
"e83dba27453cc4677479d7d601e169997ec63610",
"testharness"
],
"webrtc/RTCIceCandidate-constructor.html": [
"344007ded2b4d4496171402896d738817cdde12e",
"testharness"
@ -687906,6 +687922,10 @@
"d2911d867fef7752b1be963ce12d3602cd946cf3",
"testharness"
],
"webstorage/symbol-props.window.js": [
"61dd8f83dc4f5ba36aebe9f61253b2763346d36e",
"testharness"
],
"webusb/META.yml": [
"546094855e50f17ef6d92f4bec412af644f155ad",
"support"

View file

@ -32,7 +32,7 @@
[single-byte-decoder.html?XMLHttpRequest]
expected: CRASH
expected: TIMEOUT
[ISO-8859-2: iso_8859-2:1987 (XMLHttpRequest)]
expected: FAIL
@ -55,7 +55,7 @@
expected: FAIL
[windows-1252: iso_8859-1:1987 (XMLHttpRequest)]
expected: TIMEOUT
expected: FAIL
[windows-1254: iso_8859-9:1989 (XMLHttpRequest)]
expected: TIMEOUT
@ -72,9 +72,6 @@
[windows-1254: iso88599 (XMLHttpRequest)]
expected: TIMEOUT
[windows-1254: iso-8859-9 (XMLHttpRequest)]
expected: TIMEOUT
[windows-1258: x-cp1258 (XMLHttpRequest)]
expected: TIMEOUT
@ -93,18 +90,12 @@
[windows-1257: cp1257 (XMLHttpRequest)]
expected: TIMEOUT
[windows-1257: x-cp1257 (XMLHttpRequest)]
expected: TIMEOUT
[windows-1254: cp1254 (XMLHttpRequest)]
expected: TIMEOUT
[windows-1254: iso8859-9 (XMLHttpRequest)]
expected: TIMEOUT
[windows-1253: cp1253 (XMLHttpRequest)]
expected: TIMEOUT
[windows-1254: l5 (XMLHttpRequest)]
expected: TIMEOUT
@ -114,9 +105,6 @@
[windows-1254: latin5 (XMLHttpRequest)]
expected: TIMEOUT
[windows-1254: iso-ir-148 (XMLHttpRequest)]
expected: TIMEOUT
[windows-1258: windows-1258 (XMLHttpRequest)]
expected: TIMEOUT
@ -126,41 +114,11 @@
[x-mac-cyrillic: x-mac-cyrillic (XMLHttpRequest)]
expected: TIMEOUT
[windows-1253: x-cp1253 (XMLHttpRequest)]
expected: TIMEOUT
[windows-1252: iso_8859-1 (XMLHttpRequest)]
expected: TIMEOUT
[windows-1252: latin1 (XMLHttpRequest)]
expected: TIMEOUT
[windows-1255: x-cp1255 (XMLHttpRequest)]
expected: TIMEOUT
[windows-1253: windows-1253 (XMLHttpRequest)]
expected: TIMEOUT
[windows-1252: x-cp1252 (XMLHttpRequest)]
expected: TIMEOUT
[windows-1255: cp1255 (XMLHttpRequest)]
expected: TIMEOUT
[windows-1252: l1 (XMLHttpRequest)]
expected: TIMEOUT
[windows-1255: windows-1255 (XMLHttpRequest)]
expected: TIMEOUT
[windows-1252: windows-1252 (XMLHttpRequest)]
expected: TIMEOUT
[windows-1252: us-ascii (XMLHttpRequest)]
expected: TIMEOUT
[windows-1256: windows-1256 (XMLHttpRequest)]
expected: TIMEOUT
[single-byte-decoder.html?TextDecoder]

View file

@ -312,9 +312,3 @@
[<iframe>: separate response Content-Type: text/plain */*;charset=gbk]
expected: FAIL
[<iframe>: combined response Content-Type: text/html;" \\" text/plain]
expected: FAIL
[<iframe>: combined response Content-Type: text/html;x=" text/plain]
expected: FAIL

View file

@ -11,6 +11,3 @@
[X-Content-Type-Options%3A%20nosniff%0C]
expected: FAIL
[X-Content-Type-Options%3A%0D%0AX-Content-Type-Options%3A%20nosniff]
expected: FAIL

View file

@ -0,0 +1,5 @@
[javascript-url-abort-return-value-undefined.tentative.html]
expected: TIMEOUT
[Not aborting fetch for javascript:undefined navigation]
expected: TIMEOUT

View file

@ -1,4 +0,0 @@
[traverse_the_history_5.html]
[Multiple history traversals, last would be aborted]
expected: FAIL

View file

@ -1,7 +0,0 @@
[toggleEvent.html]
[Calling open twice on 'details' fires only one toggle event]
expected: FAIL
[Setting open=true to opened 'details' element should not fire a toggle event at the 'details' element]
expected: FAIL

View file

@ -0,0 +1,4 @@
[DOMContentLoaded-defer.html]
[The end: DOMContentLoaded and defer scripts]
expected: FAIL

View file

@ -0,0 +1,2 @@
[symbol-props.window.html]
expected: CRASH

View file

@ -93,23 +93,20 @@ enum XRReferenceSpaceType {
"unbounded"
};
dictionary XRReferenceSpaceOptions {
required XRReferenceSpaceType type;
};
[SecureContext, Exposed=Window] interface XRReferenceSpace : XRSpace {
attribute XRRigidTransform originOffset;
attribute EventHandler onreset;
};
enum XRStationaryReferenceSpaceSubtype {
"eye-level",
"floor-level",
"position-disabled"
};
dictionary XRStationaryReferenceSpaceOptions : XRReferenceSpaceOptions {
required XRStationaryReferenceSpaceSubtype subtype;
dictionary XRReferenceSpaceOptions {
required XRReferenceSpaceType type;
XRStationaryReferenceSpaceSubtype subtype;
};
[SecureContext, Exposed=Window] interface XRReferenceSpace : XRSpace {
attribute XRRigidTransform originOffset;
attribute EventHandler onreset;
};
[SecureContext, Exposed=Window]

View file

@ -0,0 +1,84 @@
<!doctype html>
<meta charset=utf-8>
<title>RTCError and RTCErrorInit</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="RTCPeerConnection-helper.js"></script>
<script>
'use strict';
test(() => {
const error = new RTCError('message', {errorDetail:'data-channel-failure'});
assert_equals(error.message, 'message');
assert_equals(error.errorDetail, 'data-channel-failure');
}, 'RTCError constructor with message and errorDetail');
test(() => {
assert_throws(new TypeError(), () => {
new RTCError('message');
});
assert_throws(new TypeError(), () => {
new RTCError();
});
}, 'RTCError constructor throws TypeError if any argument is missing');
test(() => {
assert_throws(new TypeError(), () => {
new RTCError('message', {errorDetail:'invalid-error-detail'});
});
}, 'RTCError constructor throws TypeError if the errorDetail is invalid');
test(() => {
const error = new RTCError('message', {errorDetail:'data-channel-failure'});
assert_equals(error.name, 'RTCError');
}, 'RTCError.name is \'RTCError\'');
test(() => {
const error = new RTCError('message', {errorDetail:'data-channel-failure'});
assert_equals(error.code, 0);
}, 'RTCError.code is 0');
test(() => {
const error = new RTCError('message', {errorDetail:'data-channel-failure'});
assert_throws(new TypeError(), () => {
error.errorDetail = 'dtls-failure';
});
}, 'RTCError.errorDetail is readonly.');
test(() => {
// Infers what are valid RTCErrorInit objects by passing them to the RTCError
// constructor.
assert_throws(new TypeError(), () => {
new RTCError('message', {});
});
new RTCError('message', {errorDetail:'data-channel-failure'});
}, 'RTCErrorInit.errorDetail is the only required attribute');
// All of these are number types (long or unsigned long).
const nullableAttributes = ['sdpLineNumber',
'httpRequestStatusCode',
'sctpCauseCode',
'receivedAlert',
'sentAlert'];
nullableAttributes.forEach(attribute => {
test(() => {
const error = new RTCError('message', {errorDetail:'data-channel-failure'});
assert_equals(error[attribute], null);
}, 'RTCError.' + attribute + ' is null by default');
test(() => {
const error = new RTCError('message', {errorDetail:'data-channel-failure',
[attribute]: 0});
assert_equals(error[attribute], 0);
}, 'RTCError.' + attribute + ' is settable by constructor');
test(() => {
const error = new RTCError('message', {errorDetail:'data-channel-failure'});
assert_throws(new TypeError(), () => {
error[attribute] = 42;
});
}, 'RTCError.' + attribute + ' is readonly');
});
</script>

View file

@ -0,0 +1,81 @@
["localStorage", "sessionStorage"].forEach(function(name) {
test(function() {
var key = Symbol();
var storage = window[name];
storage.clear();
storage[key] = "test";
assert_equals(storage[key], "test");
}, name + ": plain set + get (loose)");
test(function() {
"use strict";
var key = Symbol();
var storage = window[name];
storage.clear();
storage[key] = "test";
assert_equals(storage[key], "test");
}, name + ": plain set + get (strict)");
test(function() {
var key = Symbol();
var storage = window[name];
storage.clear();
Object.defineProperty(storage, key, { "value": "test" });
assert_equals(storage[key], "test");
}, name + ": defineProperty + get");
test(function() {
var key = Symbol();
var storage = window[name];
storage.clear();
Object.defineProperty(storage, key, { "value": "test", "configurable": false });
assert_equals(storage[key], "test");
var desc = Object.getOwnPropertyDescriptor(storage, key);
assert_true(desc.configurable, "configurable");
assert_true(delete storage[key]);
assert_equals(storage[key], undefined);
}, name + ": defineProperty not configurable");
test(function() {
var key = Symbol();
Storage.prototype[key] = "test";
this.add_cleanup(function() { delete Storage.prototype[key]; });
var storage = window[name];
storage.clear();
assert_equals(storage[key], "test");
var desc = Object.getOwnPropertyDescriptor(storage, key);
assert_equals(desc, undefined);
}, name + ": get with symbol on prototype");
test(function() {
var key = Symbol();
var storage = window[name];
storage.clear();
storage[key] = "test";
assert_true(delete storage[key]);
assert_equals(storage[key], undefined);
}, name + ": delete existing property");
test(function() {
var key = Symbol();
var storage = window[name];
storage.clear();
assert_true(delete storage[key]);
assert_equals(storage[key], undefined);
}, name + ": delete non-existent property");
});