Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Start centralizing IDLs to reduce duplication and errors #5666

Merged
merged 1 commit into from Apr 26, 2017

Conversation

ayg
Copy link
Contributor

@ayg ayg commented Apr 24, 2017

Fixes #5339 (or rather, starts to).

We had two copies of the DOM IDL, one in dom/ and one in html/, which
were out of sync. Additionally, tons of tests copy bits and pieces of
IDLs from specs like DOM, or define stubs, instead of properly including
the whole IDL. These should be fixed to include the whole IDL, because
some tests may need to know about the entire base interface (e.g.,
testing that objects inherit properly).

I chose to make the IDLs centralized because we might want to process
them centrally in the future. For instance, we could have a script to
update all of them, or a test that checks for non-standard properties on
the global object and imports all the IDLs to get a list of standard
properties. These seem easier to do if the IDLs are all in one place.


This change is Reviewable

@w3c-bots
Copy link

w3c-bots commented Apr 24, 2017

View the complete job log.

Lint

Passed

@w3c-bots
Copy link

w3c-bots commented Apr 24, 2017

*This report has been truncated because the total content is 2975844 characters in length, which is in excess of GitHub.com's limit for comments (65536 characters).

View the complete job log.

Firefox (nightly channel)

Testing web-platform-tests at revision 3acd1b3
Using browser at version BuildID 20170425101537; SourceStamp a30dc237c3a600a5231f2974fc2b85dfb5513414
Starting 10 test iterations
All results were stable

All results

3 tests ran
/XMLHttpRequest/interfaces.html
Subtest Results Messages
OK
Test driver PASS
XMLHttpRequestEventTarget interface: existence and properties of interface object PASS
XMLHttpRequestEventTarget interface object length PASS
XMLHttpRequestEventTarget interface object name PASS
XMLHttpRequestEventTarget interface: existence and properties of interface prototype object PASS
XMLHttpRequestEventTarget interface: existence and properties of interface prototype object's "constructor" property PASS
XMLHttpRequestEventTarget interface: attribute onloadstart PASS
XMLHttpRequestEventTarget interface: attribute onprogress PASS
XMLHttpRequestEventTarget interface: attribute onabort PASS
XMLHttpRequestEventTarget interface: attribute onerror PASS
XMLHttpRequestEventTarget interface: attribute onload PASS
XMLHttpRequestEventTarget interface: attribute ontimeout PASS
XMLHttpRequestEventTarget interface: attribute onloadend PASS
XMLHttpRequestUpload interface: existence and properties of interface object PASS
XMLHttpRequestUpload interface object length PASS
XMLHttpRequestUpload interface object name PASS
XMLHttpRequestUpload interface: existence and properties of interface prototype object PASS
XMLHttpRequestUpload interface: existence and properties of interface prototype object's "constructor" property PASS
XMLHttpRequestUpload must be primary interface of (new XMLHttpRequest()).upload PASS
Stringification of (new XMLHttpRequest()).upload PASS
XMLHttpRequestEventTarget interface: (new XMLHttpRequest()).upload must inherit property "onloadstart" with the proper type (0) PASS
XMLHttpRequestEventTarget interface: (new XMLHttpRequest()).upload must inherit property "onprogress" with the proper type (1) PASS
XMLHttpRequestEventTarget interface: (new XMLHttpRequest()).upload must inherit property "onabort" with the proper type (2) PASS
XMLHttpRequestEventTarget interface: (new XMLHttpRequest()).upload must inherit property "onerror" with the proper type (3) PASS
XMLHttpRequestEventTarget interface: (new XMLHttpRequest()).upload must inherit property "onload" with the proper type (4) PASS
XMLHttpRequestEventTarget interface: (new XMLHttpRequest()).upload must inherit property "ontimeout" with the proper type (5) PASS
XMLHttpRequestEventTarget interface: (new XMLHttpRequest()).upload must inherit property "onloadend" with the proper type (6) PASS
EventTarget interface: (new XMLHttpRequest()).upload must inherit property "addEventListener" with the proper type (0) PASS
EventTarget interface: calling addEventListener(DOMString,EventListener,[object Object],[object Object]) on (new XMLHttpRequest()).upload with too few arguments must throw TypeError PASS
EventTarget interface: (new XMLHttpRequest()).upload must inherit property "removeEventListener" with the proper type (1) PASS
EventTarget interface: calling removeEventListener(DOMString,EventListener,[object Object],[object Object]) on (new XMLHttpRequest()).upload with too few arguments must throw TypeError PASS
EventTarget interface: (new XMLHttpRequest()).upload must inherit property "dispatchEvent" with the proper type (2) PASS
EventTarget interface: calling dispatchEvent(Event) on (new XMLHttpRequest()).upload with too few arguments must throw TypeError PASS
XMLHttpRequest interface: existence and properties of interface object PASS
XMLHttpRequest interface object length PASS
XMLHttpRequest interface object name PASS
XMLHttpRequest interface: existence and properties of interface prototype object PASS
XMLHttpRequest interface: existence and properties of interface prototype object's "constructor" property PASS
XMLHttpRequest interface: attribute onreadystatechange PASS
XMLHttpRequest interface: constant UNSENT on interface object PASS
XMLHttpRequest interface: constant UNSENT on interface prototype object PASS
XMLHttpRequest interface: constant OPENED on interface object PASS
XMLHttpRequest interface: constant OPENED on interface prototype object PASS
XMLHttpRequest interface: constant HEADERS_RECEIVED on interface object PASS
XMLHttpRequest interface: constant HEADERS_RECEIVED on interface prototype object PASS
XMLHttpRequest interface: constant LOADING on interface object PASS
XMLHttpRequest interface: constant LOADING on interface prototype object PASS
XMLHttpRequest interface: constant DONE on interface object PASS
XMLHttpRequest interface: constant DONE on interface prototype object PASS
XMLHttpRequest interface: attribute readyState PASS
XMLHttpRequest interface: operation open(ByteString,USVString) PASS
XMLHttpRequest interface: operation open(ByteString,USVString,boolean,USVString,USVString) PASS
XMLHttpRequest interface: operation setRequestHeader(ByteString,ByteString) PASS
XMLHttpRequest interface: attribute timeout PASS
XMLHttpRequest interface: attribute withCredentials PASS
XMLHttpRequest interface: attribute upload PASS
XMLHttpRequest interface: operation send([object Object],[object Object]) PASS
XMLHttpRequest interface: operation abort() PASS
XMLHttpRequest interface: attribute responseURL PASS
XMLHttpRequest interface: attribute status PASS
XMLHttpRequest interface: attribute statusText PASS
XMLHttpRequest interface: operation getResponseHeader(ByteString) PASS
XMLHttpRequest interface: operation getAllResponseHeaders() PASS
XMLHttpRequest interface: operation overrideMimeType(DOMString) PASS
XMLHttpRequest interface: attribute responseType PASS
XMLHttpRequest interface: attribute response PASS
XMLHttpRequest interface: attribute responseText PASS
XMLHttpRequest interface: attribute responseXML PASS
XMLHttpRequest must be primary interface of new XMLHttpRequest() PASS
Stringification of new XMLHttpRequest() PASS
XMLHttpRequest interface: new XMLHttpRequest() must inherit property "onreadystatechange" with the proper type (0) PASS
XMLHttpRequest interface: new XMLHttpRequest() must inherit property "UNSENT" with the proper type (1) PASS
XMLHttpRequest interface: new XMLHttpRequest() must inherit property "OPENED" with the proper type (2) PASS
XMLHttpRequest interface: new XMLHttpRequest() must inherit property "HEADERS_RECEIVED" with the proper type (3) PASS
XMLHttpRequest interface: new XMLHttpRequest() must inherit property "LOADING" with the proper type (4) PASS
XMLHttpRequest interface: new XMLHttpRequest() must inherit property "DONE" with the proper type (5) PASS
XMLHttpRequest interface: new XMLHttpRequest() must inherit property "readyState" with the proper type (6) PASS
XMLHttpRequest interface: new XMLHttpRequest() must inherit property "open" with the proper type (7) PASS
XMLHttpRequest interface: calling open(ByteString,USVString) on new XMLHttpRequest() with too few arguments must throw TypeError PASS
XMLHttpRequest interface: new XMLHttpRequest() must inherit property "open" with the proper type (8) PASS
XMLHttpRequest interface: calling open(ByteString,USVString,boolean,USVString,USVString) on new XMLHttpRequest() with too few arguments must throw TypeError PASS
XMLHttpRequest interface: new XMLHttpRequest() must inherit property "setRequestHeader" with the proper type (9) PASS
XMLHttpRequest interface: calling setRequestHeader(ByteString,ByteString) on new XMLHttpRequest() with too few arguments must throw TypeError PASS
XMLHttpRequest interface: new XMLHttpRequest() must inherit property "timeout" with the proper type (10) PASS
XMLHttpRequest interface: new XMLHttpRequest() must inherit property "withCredentials" with the proper type (11) PASS
XMLHttpRequest interface: new XMLHttpRequest() must inherit property "upload" with the proper type (12) PASS
XMLHttpRequest interface: new XMLHttpRequest() must inherit property "send" with the proper type (13) PASS
XMLHttpRequest interface: calling send([object Object],[object Object]) on new XMLHttpRequest() with too few arguments must throw TypeError PASS
XMLHttpRequest interface: new XMLHttpRequest() must inherit property "abort" with the proper type (14) PASS
XMLHttpRequest interface: new XMLHttpRequest() must inherit property "responseURL" with the proper type (15) PASS
XMLHttpRequest interface: new XMLHttpRequest() must inherit property "status" with the proper type (16) PASS
XMLHttpRequest interface: new XMLHttpRequest() must inherit property "statusText" with the proper type (17) PASS
XMLHttpRequest interface: new XMLHttpRequest() must inherit property "getResponseHeader" with the proper type (18) PASS
XMLHttpRequest interface: calling getResponseHeader(ByteString) on new XMLHttpRequest() with too few arguments must throw TypeError PASS
XMLHttpRequest interface: new XMLHttpRequest() must inherit property "getAllResponseHeaders" with the proper type (19) PASS
XMLHttpRequest interface: new XMLHttpRequest() must inherit property "overrideMimeType" with the proper type (20) PASS
XMLHttpRequest interface: calling overrideMimeType(DOMString) on new XMLHttpRequest() with too few arguments must throw TypeError PASS
XMLHttpRequest interface: new XMLHttpRequest() must inherit property "responseType" with the proper type (21) PASS
XMLHttpRequest interface: new XMLHttpRequest() must inherit property "response" with the proper type (22) PASS
XMLHttpRequest interface: new XMLHttpRequest() must inherit property "responseText" with the proper type (23) PASS
XMLHttpRequest interface: new XMLHttpRequest() must inherit property "responseXML" with the proper type (24) PASS
XMLHttpRequestEventTarget interface: new XMLHttpRequest() must inherit property "onloadstart" with the proper type (0) PASS
XMLHttpRequestEventTarget interface: new XMLHttpRequest() must inherit property "onprogress" with the proper type (1) PASS
XMLHttpRequestEventTarget interface: new XMLHttpRequest() must inherit property "onabort" with the proper type (2) PASS
XMLHttpRequestEventTarget interface: new XMLHttpRequest() must inherit property "onerror" with the proper type (3) PASS
XMLHttpRequestEventTarget interface: new XMLHttpRequest() must inherit property "onload" with the proper type (4) PASS
XMLHttpRequestEventTarget interface: new XMLHttpRequest() must inherit property "ontimeout" with the proper type (5) PASS
XMLHttpRequestEventTarget interface: new XMLHttpRequest() must inherit property "onloadend" with the proper type (6) PASS
EventTarget interface: new XMLHttpRequest() must inherit property "addEventListener" with the proper type (0) PASS
EventTarget interface: calling addEventListener(DOMString,EventListener,[object Object],[object Object]) on new XMLHttpRequest() with too few arguments must throw TypeError PASS
EventTarget interface: new XMLHttpRequest() must inherit property "removeEventListener" with the proper type (1) PASS
EventTarget interface: calling removeEventListener(DOMString,EventListener,[object Object],[object Object]) on new XMLHttpRequest() with too few arguments must throw TypeError PASS
EventTarget interface: new XMLHttpRequest() must inherit property "dispatchEvent" with the proper type (2) PASS
EventTarget interface: calling dispatchEvent(Event) on new XMLHttpRequest() with too few arguments must throw TypeError PASS
FormData interface: existence and properties of interface object PASS
FormData interface object length PASS
FormData interface object name PASS
FormData interface: existence and properties of interface prototype object PASS
FormData interface: existence and properties of interface prototype object's "constructor" property PASS
FormData interface: operation append(USVString,Blob,USVString) PASS
FormData interface: operation append(USVString,USVString) PASS
FormData interface: operation delete(USVString) PASS
FormData interface: operation get(USVString) PASS
FormData interface: operation getAll(USVString) PASS
FormData interface: operation has(USVString) PASS
FormData interface: operation set(USVString,Blob,USVString) PASS
FormData interface: operation set(USVString,USVString) PASS
FormData must be primary interface of new FormData() PASS
Stringification of new FormData() PASS
FormData interface: new FormData() must inherit property "append" with the proper type (0) PASS
FormData interface: calling append(USVString,Blob,USVString) on new FormData() with too few arguments must throw TypeError PASS
FormData interface: new FormData() must inherit property "append" with the proper type (1) PASS
FormData interface: calling append(USVString,USVString) on new FormData() with too few arguments must throw TypeError PASS
FormData interface: new FormData() must inherit property "delete" with the proper type (2) PASS
FormData interface: calling delete(USVString) on new FormData() with too few arguments must throw TypeError PASS
FormData interface: new FormData() must inherit property "get" with the proper type (3) PASS
FormData interface: calling get(USVString) on new FormData() with too few arguments must throw TypeError PASS
FormData interface: new FormData() must inherit property "getAll" with the proper type (4) PASS
FormData interface: calling getAll(USVString) on new FormData() with too few arguments must throw TypeError PASS
FormData interface: new FormData() must inherit property "has" with the proper type (5) PASS
FormData interface: calling has(USVString) on new FormData() with too few arguments must throw TypeError PASS
FormData interface: new FormData() must inherit property "set" with the proper type (6) PASS
FormData interface: calling set(USVString,Blob,USVString) on new FormData() with too few arguments must throw TypeError PASS
FormData interface: new FormData() must inherit property "set" with the proper type (7) PASS
FormData interface: calling set(USVString,USVString) on new FormData() with too few arguments must throw TypeError PASS
FormData must be primary interface of new FormData(form) PASS
Stringification of new FormData(form) PASS
FormData interface: new FormData(form) must inherit property "append" with the proper type (0) PASS
FormData interface: calling append(USVString,Blob,USVString) on new FormData(form) with too few arguments must throw TypeError PASS
FormData interface: new FormData(form) must inherit property "append" with the proper type (1) PASS
FormData interface: calling append(USVString,USVString) on new FormData(form) with too few arguments must throw TypeError PASS
FormData interface: new FormData(form) must inherit property "delete" with the proper type (2) PASS
FormData interface: calling delete(USVString) on new FormData(form) with too few arguments must throw TypeError PASS
FormData interface: new FormData(form) must inherit property "get" with the proper type (3) PASS
FormData interface: calling get(USVString) on new FormData(form) with too few arguments must throw TypeError PASS
FormData interface: new FormData(form) must inherit property "getAll" with the proper type (4) PASS
FormData interface: calling getAll(USVString) on new FormData(form) with too few arguments must throw TypeError PASS
FormData interface: new FormData(form) must inherit property "has" with the proper type (5) PASS
FormData interface: calling has(USVString) on new FormData(form) with too few arguments must throw TypeError PASS
FormData interface: new FormData(form) must inherit property "set" with the proper type (6) PASS
FormData interface: calling set(USVString,Blob,USVString) on new FormData(form) with too few arguments must throw TypeError PASS
FormData interface: new FormData(form) must inherit property "set" with the proper type (7) PASS
FormData interface: calling set(USVString,USVString) on new FormData(form) with too few arguments must throw TypeError PASS
ProgressEvent interface: existence and properties of interface object PASS
ProgressEvent interface object length PASS
ProgressEvent interface object name PASS
ProgressEvent interface: existence and properties of interface prototype object PASS
ProgressEvent interface: existence and properties of interface prototype object's "constructor" property PASS
ProgressEvent interface: attribute lengthComputable PASS
ProgressEvent interface: attribute loaded PASS
ProgressEvent interface: attribute total PASS
/dom/interfaces.html
Subtest Results Messages
OK
Test driver PASS
Event interface: existence and properties of interface object PASS
Event interface object length PASS
Event interface object name PASS
Event interface: existence and properties of interface prototype object PASS
Event interface: existence and properties of interface prototype object's "constructor" property PASS
Event interface: attribute type PASS
Event interface: attribute target PASS
Event interface: attribute currentTarget PASS
Event interface: constant NONE on interface object PASS
Event interface: constant NONE on interface prototype object PASS
Event interface: constant CAPTURING_PHASE on interface object PASS
Event interface: constant CAPTURING_PHASE on interface prototype object PASS
Event interface: constant AT_TARGET on interface object PASS
Event interface: constant AT_TARGET on interface prototype object PASS
Event interface: constant BUBBLING_PHASE on interface object PASS
Event interface: constant BUBBLING_PHASE on interface prototype object PASS
Event interface: attribute eventPhase PASS
Event interface: operation stopPropagation() PASS
Event interface: operation stopImmediatePropagation() PASS
Event interface: attribute bubbles PASS
Event interface: attribute cancelable PASS
Event interface: operation preventDefault() PASS
Event interface: attribute defaultPrevented PASS
Event interface: attribute timeStamp PASS
Event interface: operation initEvent(DOMString,boolean,boolean) PASS
Event must be primary interface of document.createEvent("Event") PASS
Stringification of document.createEvent("Event") PASS
Event interface: document.createEvent("Event") must inherit property "type" with the proper type (0) PASS
Event interface: document.createEvent("Event") must inherit property "target" with the proper type (1) PASS
Event interface: document.createEvent("Event") must inherit property "currentTarget" with the proper type (2) PASS
Event interface: document.createEvent("Event") must inherit property "NONE" with the proper type (3) PASS
Event interface: document.createEvent("Event") must inherit property "CAPTURING_PHASE" with the proper type (4) PASS
Event interface: document.createEvent("Event") must inherit property "AT_TARGET" with the proper type (5) PASS
Event interface: document.createEvent("Event") must inherit property "BUBBLING_PHASE" with the proper type (6) PASS
Event interface: document.createEvent("Event") must inherit property "eventPhase" with the proper type (7) PASS
Event interface: document.createEvent("Event") must inherit property "stopPropagation" with the proper type (8) PASS
Event interface: document.createEvent("Event") must inherit property "stopImmediatePropagation" with the proper type (9) PASS
Event interface: document.createEvent("Event") must inherit property "bubbles" with the proper type (10) PASS
Event interface: document.createEvent("Event") must inherit property "cancelable" with the proper type (11) PASS
Event interface: document.createEvent("Event") must inherit property "preventDefault" with the proper type (12) PASS
Event interface: document.createEvent("Event") must inherit property "defaultPrevented" with the proper type (13) PASS
Event interface: document.createEvent("Event") must have own property "isTrusted" PASS
Event interface: document.createEvent("Event") must inherit property "timeStamp" with the proper type (15) PASS
Event interface: document.createEvent("Event") must inherit property "initEvent" with the proper type (16) PASS
Event interface: calling initEvent(DOMString,boolean,boolean) on document.createEvent("Event") with too few arguments must throw TypeError PASS
Event must be primary interface of new Event("foo") PASS
Stringification of new Event("foo") PASS
Event interface: new Event("foo") must inherit property "type" with the proper type (0) PASS
Event interface: new Event("foo") must inherit property "target" with the proper type (1) PASS
Event interface: new Event("foo") must inherit property "currentTarget" with the proper type (2) PASS
Event interface: new Event("foo") must inherit property "NONE" with the proper type (3) PASS
Event interface: new Event("foo") must inherit property "CAPTURING_PHASE" with the proper type (4) PASS
Event interface: new Event("foo") must inherit property "AT_TARGET" with the proper type (5) PASS
Event interface: new Event("foo") must inherit property "BUBBLING_PHASE" with the proper type (6) PASS
Event interface: new Event("foo") must inherit property "eventPhase" with the proper type (7) PASS
Event interface: new Event("foo") must inherit property "stopPropagation" with the proper type (8) PASS
Event interface: new Event("foo") must inherit property "stopImmediatePropagation" with the proper type (9) PASS
Event interface: new Event("foo") must inherit property "bubbles" with the proper type (10) PASS
Event interface: new Event("foo") must inherit property "cancelable" with the proper type (11) PASS
Event interface: new Event("foo") must inherit property "preventDefault" with the proper type (12) PASS
Event interface: new Event("foo") must inherit property "defaultPrevented" with the proper type (13) PASS
Event interface: new Event("foo") must have own property "isTrusted" PASS
Event interface: new Event("foo") must inherit property "timeStamp" with the proper type (15) PASS
Event interface: new Event("foo") must inherit property "initEvent" with the proper type (16) PASS
Event interface: calling initEvent(DOMString,boolean,boolean) on new Event("foo") with too few arguments must throw TypeError PASS
CustomEvent interface: existence and properties of interface object PASS
CustomEvent interface object length PASS
CustomEvent interface object name PASS
CustomEvent interface: existence and properties of interface prototype object PASS
CustomEvent interface: existence and properties of interface prototype object's "constructor" property PASS
CustomEvent interface: attribute detail PASS
CustomEvent interface: operation initCustomEvent(DOMString,boolean,boolean,any) PASS
CustomEvent must be primary interface of new CustomEvent("foo") PASS
Stringification of new CustomEvent("foo") PASS
CustomEvent interface: new CustomEvent("foo") must inherit property "detail" with the proper type (0) PASS
CustomEvent interface: new CustomEvent("foo") must inherit property "initCustomEvent" with the proper type (1) PASS
CustomEvent interface: calling initCustomEvent(DOMString,boolean,boolean,any) on new CustomEvent("foo") with too few arguments must throw TypeError PASS
`Event interface: new CustomEvent("foo") must inherit property "type" with the prop

@w3c-bots
Copy link

w3c-bots commented Apr 24, 2017

*This report has been truncated because the total content is 3005938 characters in length, which is in excess of GitHub.com's limit for comments (65536 characters).

View the complete job log.

Chrome (unstable channel)

Testing web-platform-tests at revision 3acd1b3
Using browser at version 59.0.3071.25 dev
Starting 10 test iterations
All results were stable

All results

3 tests ran
/XMLHttpRequest/interfaces.html
Subtest Results Messages
OK
Test driver PASS
XMLHttpRequestEventTarget interface: existence and properties of interface object PASS
XMLHttpRequestEventTarget interface object length PASS
XMLHttpRequestEventTarget interface object name PASS
XMLHttpRequestEventTarget interface: existence and properties of interface prototype object FAIL assert_equals: class string of XMLHttpRequestEventTarget.prototype expected "[object XMLHttpRequestEventTargetPrototype]" but got "[object XMLHttpRequestEventTarget]"
XMLHttpRequestEventTarget interface: existence and properties of interface prototype object's "constructor" property PASS
XMLHttpRequestEventTarget interface: attribute onloadstart PASS
XMLHttpRequestEventTarget interface: attribute onprogress PASS
XMLHttpRequestEventTarget interface: attribute onabort PASS
XMLHttpRequestEventTarget interface: attribute onerror PASS
XMLHttpRequestEventTarget interface: attribute onload PASS
XMLHttpRequestEventTarget interface: attribute ontimeout PASS
XMLHttpRequestEventTarget interface: attribute onloadend PASS
XMLHttpRequestUpload interface: existence and properties of interface object PASS
XMLHttpRequestUpload interface object length PASS
XMLHttpRequestUpload interface object name PASS
XMLHttpRequestUpload interface: existence and properties of interface prototype object FAIL assert_equals: class string of XMLHttpRequestUpload.prototype expected "[object XMLHttpRequestUploadPrototype]" but got "[object XMLHttpRequestUpload]"
XMLHttpRequestUpload interface: existence and properties of interface prototype object's "constructor" property PASS
XMLHttpRequestUpload must be primary interface of (new XMLHttpRequest()).upload PASS
Stringification of (new XMLHttpRequest()).upload PASS
XMLHttpRequestEventTarget interface: (new XMLHttpRequest()).upload must inherit property "onloadstart" with the proper type (0) PASS
XMLHttpRequestEventTarget interface: (new XMLHttpRequest()).upload must inherit property "onprogress" with the proper type (1) PASS
XMLHttpRequestEventTarget interface: (new XMLHttpRequest()).upload must inherit property "onabort" with the proper type (2) PASS
XMLHttpRequestEventTarget interface: (new XMLHttpRequest()).upload must inherit property "onerror" with the proper type (3) PASS
XMLHttpRequestEventTarget interface: (new XMLHttpRequest()).upload must inherit property "onload" with the proper type (4) PASS
XMLHttpRequestEventTarget interface: (new XMLHttpRequest()).upload must inherit property "ontimeout" with the proper type (5) PASS
XMLHttpRequestEventTarget interface: (new XMLHttpRequest()).upload must inherit property "onloadend" with the proper type (6) PASS
EventTarget interface: (new XMLHttpRequest()).upload must inherit property "addEventListener" with the proper type (0) PASS
EventTarget interface: calling addEventListener(DOMString,EventListener,[object Object],[object Object]) on (new XMLHttpRequest()).upload with too few arguments must throw TypeError PASS
EventTarget interface: (new XMLHttpRequest()).upload must inherit property "removeEventListener" with the proper type (1) PASS
EventTarget interface: calling removeEventListener(DOMString,EventListener,[object Object],[object Object]) on (new XMLHttpRequest()).upload with too few arguments must throw TypeError PASS
EventTarget interface: (new XMLHttpRequest()).upload must inherit property "dispatchEvent" with the proper type (2) PASS
EventTarget interface: calling dispatchEvent(Event) on (new XMLHttpRequest()).upload with too few arguments must throw TypeError PASS
XMLHttpRequest interface: existence and properties of interface object PASS
XMLHttpRequest interface object length PASS
XMLHttpRequest interface object name PASS
XMLHttpRequest interface: existence and properties of interface prototype object FAIL assert_equals: class string of XMLHttpRequest.prototype expected "[object XMLHttpRequestPrototype]" but got "[object XMLHttpRequest]"
XMLHttpRequest interface: existence and properties of interface prototype object's "constructor" property PASS
XMLHttpRequest interface: attribute onreadystatechange PASS
XMLHttpRequest interface: constant UNSENT on interface object PASS
XMLHttpRequest interface: constant UNSENT on interface prototype object PASS
XMLHttpRequest interface: constant OPENED on interface object PASS
XMLHttpRequest interface: constant OPENED on interface prototype object PASS
XMLHttpRequest interface: constant HEADERS_RECEIVED on interface object PASS
XMLHttpRequest interface: constant HEADERS_RECEIVED on interface prototype object PASS
XMLHttpRequest interface: constant LOADING on interface object PASS
XMLHttpRequest interface: constant LOADING on interface prototype object PASS
XMLHttpRequest interface: constant DONE on interface object PASS
XMLHttpRequest interface: constant DONE on interface prototype object PASS
XMLHttpRequest interface: attribute readyState PASS
XMLHttpRequest interface: operation open(ByteString,USVString) PASS
XMLHttpRequest interface: operation open(ByteString,USVString,boolean,USVString,USVString) PASS
XMLHttpRequest interface: operation setRequestHeader(ByteString,ByteString) PASS
XMLHttpRequest interface: attribute timeout PASS
XMLHttpRequest interface: attribute withCredentials PASS
XMLHttpRequest interface: attribute upload PASS
XMLHttpRequest interface: operation send([object Object],[object Object]) PASS
XMLHttpRequest interface: operation abort() PASS
XMLHttpRequest interface: attribute responseURL PASS
XMLHttpRequest interface: attribute status PASS
XMLHttpRequest interface: attribute statusText PASS
XMLHttpRequest interface: operation getResponseHeader(ByteString) PASS
XMLHttpRequest interface: operation getAllResponseHeaders() PASS
XMLHttpRequest interface: operation overrideMimeType(DOMString) PASS
XMLHttpRequest interface: attribute responseType PASS
XMLHttpRequest interface: attribute response PASS
XMLHttpRequest interface: attribute responseText PASS
XMLHttpRequest interface: attribute responseXML PASS
XMLHttpRequest must be primary interface of new XMLHttpRequest() PASS
Stringification of new XMLHttpRequest() PASS
XMLHttpRequest interface: new XMLHttpRequest() must inherit property "onreadystatechange" with the proper type (0) PASS
XMLHttpRequest interface: new XMLHttpRequest() must inherit property "UNSENT" with the proper type (1) PASS
XMLHttpRequest interface: new XMLHttpRequest() must inherit property "OPENED" with the proper type (2) PASS
XMLHttpRequest interface: new XMLHttpRequest() must inherit property "HEADERS_RECEIVED" with the proper type (3) PASS
XMLHttpRequest interface: new XMLHttpRequest() must inherit property "LOADING" with the proper type (4) PASS
XMLHttpRequest interface: new XMLHttpRequest() must inherit property "DONE" with the proper type (5) PASS
XMLHttpRequest interface: new XMLHttpRequest() must inherit property "readyState" with the proper type (6) PASS
XMLHttpRequest interface: new XMLHttpRequest() must inherit property "open" with the proper type (7) PASS
XMLHttpRequest interface: calling open(ByteString,USVString) on new XMLHttpRequest() with too few arguments must throw TypeError PASS
XMLHttpRequest interface: new XMLHttpRequest() must inherit property "open" with the proper type (8) PASS
XMLHttpRequest interface: calling open(ByteString,USVString,boolean,USVString,USVString) on new XMLHttpRequest() with too few arguments must throw TypeError PASS
XMLHttpRequest interface: new XMLHttpRequest() must inherit property "setRequestHeader" with the proper type (9) PASS
XMLHttpRequest interface: calling setRequestHeader(ByteString,ByteString) on new XMLHttpRequest() with too few arguments must throw TypeError PASS
XMLHttpRequest interface: new XMLHttpRequest() must inherit property "timeout" with the proper type (10) PASS
XMLHttpRequest interface: new XMLHttpRequest() must inherit property "withCredentials" with the proper type (11) PASS
XMLHttpRequest interface: new XMLHttpRequest() must inherit property "upload" with the proper type (12) PASS
XMLHttpRequest interface: new XMLHttpRequest() must inherit property "send" with the proper type (13) PASS
XMLHttpRequest interface: calling send([object Object],[object Object]) on new XMLHttpRequest() with too few arguments must throw TypeError PASS
XMLHttpRequest interface: new XMLHttpRequest() must inherit property "abort" with the proper type (14) PASS
XMLHttpRequest interface: new XMLHttpRequest() must inherit property "responseURL" with the proper type (15) PASS
XMLHttpRequest interface: new XMLHttpRequest() must inherit property "status" with the proper type (16) PASS
XMLHttpRequest interface: new XMLHttpRequest() must inherit property "statusText" with the proper type (17) PASS
XMLHttpRequest interface: new XMLHttpRequest() must inherit property "getResponseHeader" with the proper type (18) PASS
XMLHttpRequest interface: calling getResponseHeader(ByteString) on new XMLHttpRequest() with too few arguments must throw TypeError PASS
XMLHttpRequest interface: new XMLHttpRequest() must inherit property "getAllResponseHeaders" with the proper type (19) PASS
XMLHttpRequest interface: new XMLHttpRequest() must inherit property "overrideMimeType" with the proper type (20) PASS
XMLHttpRequest interface: calling overrideMimeType(DOMString) on new XMLHttpRequest() with too few arguments must throw TypeError PASS
XMLHttpRequest interface: new XMLHttpRequest() must inherit property "responseType" with the proper type (21) PASS
XMLHttpRequest interface: new XMLHttpRequest() must inherit property "response" with the proper type (22) PASS
XMLHttpRequest interface: new XMLHttpRequest() must inherit property "responseText" with the proper type (23) PASS
XMLHttpRequest interface: new XMLHttpRequest() must inherit property "responseXML" with the proper type (24) PASS
XMLHttpRequestEventTarget interface: new XMLHttpRequest() must inherit property "onloadstart" with the proper type (0) PASS
XMLHttpRequestEventTarget interface: new XMLHttpRequest() must inherit property "onprogress" with the proper type (1) PASS
XMLHttpRequestEventTarget interface: new XMLHttpRequest() must inherit property "onabort" with the proper type (2) PASS
XMLHttpRequestEventTarget interface: new XMLHttpRequest() must inherit property "onerror" with the proper type (3) PASS
XMLHttpRequestEventTarget interface: new XMLHttpRequest() must inherit property "onload" with the proper type (4) PASS
XMLHttpRequestEventTarget interface: new XMLHttpRequest() must inherit property "ontimeout" with the proper type (5) PASS
XMLHttpRequestEventTarget interface: new XMLHttpRequest() must inherit property "onloadend" with the proper type (6) PASS
EventTarget interface: new XMLHttpRequest() must inherit property "addEventListener" with the proper type (0) PASS
EventTarget interface: calling addEventListener(DOMString,EventListener,[object Object],[object Object]) on new XMLHttpRequest() with too few arguments must throw TypeError PASS
EventTarget interface: new XMLHttpRequest() must inherit property "removeEventListener" with the proper type (1) PASS
EventTarget interface: calling removeEventListener(DOMString,EventListener,[object Object],[object Object]) on new XMLHttpRequest() with too few arguments must throw TypeError PASS
EventTarget interface: new XMLHttpRequest() must inherit property "dispatchEvent" with the proper type (2) PASS
EventTarget interface: calling dispatchEvent(Event) on new XMLHttpRequest() with too few arguments must throw TypeError PASS
FormData interface: existence and properties of interface object PASS
FormData interface object length PASS
FormData interface object name PASS
FormData interface: existence and properties of interface prototype object FAIL assert_equals: class string of FormData.prototype expected "[object FormDataPrototype]" but got "[object FormData]"
FormData interface: existence and properties of interface prototype object's "constructor" property PASS
FormData interface: operation append(USVString,Blob,USVString) PASS
FormData interface: operation append(USVString,USVString) PASS
FormData interface: operation delete(USVString) PASS
FormData interface: operation get(USVString) PASS
FormData interface: operation getAll(USVString) PASS
FormData interface: operation has(USVString) PASS
FormData interface: operation set(USVString,Blob,USVString) PASS
FormData interface: operation set(USVString,USVString) PASS
FormData must be primary interface of new FormData() PASS
Stringification of new FormData() PASS
FormData interface: new FormData() must inherit property "append" with the proper type (0) PASS
FormData interface: calling append(USVString,Blob,USVString) on new FormData() with too few arguments must throw TypeError PASS
FormData interface: new FormData() must inherit property "append" with the proper type (1) PASS
FormData interface: calling append(USVString,USVString) on new FormData() with too few arguments must throw TypeError PASS
FormData interface: new FormData() must inherit property "delete" with the proper type (2) PASS
FormData interface: calling delete(USVString) on new FormData() with too few arguments must throw TypeError PASS
FormData interface: new FormData() must inherit property "get" with the proper type (3) PASS
FormData interface: calling get(USVString) on new FormData() with too few arguments must throw TypeError PASS
FormData interface: new FormData() must inherit property "getAll" with the proper type (4) PASS
FormData interface: calling getAll(USVString) on new FormData() with too few arguments must throw TypeError PASS
FormData interface: new FormData() must inherit property "has" with the proper type (5) PASS
FormData interface: calling has(USVString) on new FormData() with too few arguments must throw TypeError PASS
FormData interface: new FormData() must inherit property "set" with the proper type (6) PASS
FormData interface: calling set(USVString,Blob,USVString) on new FormData() with too few arguments must throw TypeError PASS
FormData interface: new FormData() must inherit property "set" with the proper type (7) PASS
FormData interface: calling set(USVString,USVString) on new FormData() with too few arguments must throw TypeError PASS
FormData must be primary interface of new FormData(form) PASS
Stringification of new FormData(form) PASS
FormData interface: new FormData(form) must inherit property "append" with the proper type (0) PASS
FormData interface: calling append(USVString,Blob,USVString) on new FormData(form) with too few arguments must throw TypeError PASS
FormData interface: new FormData(form) must inherit property "append" with the proper type (1) PASS
FormData interface: calling append(USVString,USVString) on new FormData(form) with too few arguments must throw TypeError PASS
FormData interface: new FormData(form) must inherit property "delete" with the proper type (2) PASS
FormData interface: calling delete(USVString) on new FormData(form) with too few arguments must throw TypeError PASS
FormData interface: new FormData(form) must inherit property "get" with the proper type (3) PASS
FormData interface: calling get(USVString) on new FormData(form) with too few arguments must throw TypeError PASS
FormData interface: new FormData(form) must inherit property "getAll" with the proper type (4) PASS
FormData interface: calling getAll(USVString) on new FormData(form) with too few arguments must throw TypeError PASS
FormData interface: new FormData(form) must inherit property "has" with the proper type (5) PASS
FormData interface: calling has(USVString) on new FormData(form) with too few arguments must throw TypeError PASS
FormData interface: new FormData(form) must inherit property "set" with the proper type (6) PASS
FormData interface: calling set(USVString,Blob,USVString) on new FormData(form) with too few arguments must throw TypeError PASS
FormData interface: new FormData(form) must inherit property "set" with the proper type (7) PASS
FormData interface: calling set(USVString,USVString) on new FormData(form) with too few arguments must throw TypeError PASS
ProgressEvent interface: existence and properties of interface object PASS
ProgressEvent interface object length PASS
ProgressEvent interface object name PASS
ProgressEvent interface: existence and properties of interface prototype object FAIL assert_equals: class string of ProgressEvent.prototype expected "[object ProgressEventPrototype]" but got "[object ProgressEvent]"
ProgressEvent interface: existence and properties of interface prototype object's "constructor" property PASS
ProgressEvent interface: attribute lengthComputable PASS
ProgressEvent interface: attribute loaded PASS
ProgressEvent interface: attribute total PASS
/dom/interfaces.html

|

@wpt-pr-bot
Copy link
Collaborator

@foolip
Copy link
Member

foolip commented Apr 26, 2017

This is really great! With this setup, I'm confident that we'd be able to use tooling that @mdittmer is building to compare IDLs to also update these IDL files whenever specs change. Perhaps it would then be helpful for each IDL file to link to its spec, but we can add that later.

}

promise_test(function() {
// Have to wait for onload
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why do we need to wait for the load event?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Um, cargo-culting? :) (I don't know why the original html/dom/interfaces.html does either, but maybe it's so that all the objects are properly initialized.) Fixed in new version.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yay.

Copy link
Member

@foolip foolip left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM with question. Feel free to merge without further roundtrip.

Fixes web-platform-tests#5339 (or rather, starts to).

We had two copies of the DOM IDL, one in dom/ and one in html/, which
were out of sync.  Additionally, tons of tests copy bits and pieces of
IDLs from specs like DOM, or define stubs, instead of properly including
the whole IDL.  These should be fixed to include the whole IDL, because
some tests may need to know about the entire base interface (e.g.,
testing that objects inherit properly).

I chose to make the IDLs centralized because we might want to process
them centrally in the future.  For instance, we could have a script to
update all of them, or a test that checks for non-standard properties on
the global object and imports all the IDLs to get a list of standard
properties.  These seem easier to do if the IDLs are all in one place.
@w3c-bots
Copy link

These tests are now available on w3c-test.org

@jgraham jgraham merged commit db40b1e into web-platform-tests:master Apr 26, 2017
@inexorabletash
Copy link
Contributor

This broke html/dom/interfaces.worker.js which is still expecting html/dom/resources/*.idl

@ayg ayg deleted the centralize-idls branch August 3, 2017 18:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Don't duplicate interfaces in the tree
6 participants