mirror of
https://github.com/servo/servo.git
synced 2025-08-01 03:30:33 +01:00
Auto merge of #26338 - servo-wpt-sync:wpt_update_28-04-2020, r=servo-wpt-sync
Sync WPT with upstream (28-04-2020) Automated downstream sync of changes from upstream as of 28-04-2020. [no-wpt-sync] r? @servo-wpt-sync
This commit is contained in:
commit
56cffff61e
230 changed files with 5362 additions and 1028 deletions
|
@ -1,4 +1,4 @@
|
|||
[2d.filter.value.html]
|
||||
[2d.shadow.filter.value.html]
|
||||
[test if ctx.filter works correctly]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
[hit-test-floats-003.html]
|
||||
[Miss float below something else]
|
||||
expected: FAIL
|
||||
|
|
@ -2,6 +2,3 @@
|
|||
[Hit test intersecting scaled box]
|
||||
expected: FAIL
|
||||
|
||||
[Hit test within unscaled box]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,2 +1,2 @@
|
|||
[no-transition-from-ua-to-blocking-stylesheet.html]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
|
|
@ -2,6 +2,3 @@
|
|||
[listeners are called when <iframe> is resized]
|
||||
expected: FAIL
|
||||
|
||||
[listeners are called correct number of times]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
[elementFromPoint-001.html]
|
||||
[CSSOM View - 5 - extensions to the Document interface]
|
||||
expected: FAIL
|
||||
|
|
@ -17,6 +17,3 @@
|
|||
[test the top of layer]
|
||||
expected: FAIL
|
||||
|
||||
[test some point of the element: top left corner]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -2,3 +2,6 @@
|
|||
[elementsFromPoint on the root document for points in iframe elements]
|
||||
expected: FAIL
|
||||
|
||||
[elementsFromPoint on inner documents]
|
||||
expected: FAIL
|
||||
|
||||
|
|
630
tests/wpt/metadata-layout-2020/dom/idlharness.window.js.ini
Normal file
630
tests/wpt/metadata-layout-2020/dom/idlharness.window.js.ini
Normal file
|
@ -0,0 +1,630 @@
|
|||
[idlharness.window.html?include=Node]
|
||||
|
||||
[idlharness.window.html?exclude=Node]
|
||||
[XPathExpression interface: document.createExpression("//*") must inherit property "evaluate(Node, optional unsigned short, optional XPathResult?)" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[XPathResult interface: attribute singleNodeValue]
|
||||
expected: FAIL
|
||||
|
||||
[XPathResult interface object name]
|
||||
expected: FAIL
|
||||
|
||||
[Element interface: operation replaceWith((Node or DOMString)...)]
|
||||
expected: FAIL
|
||||
|
||||
[Document interface: operation createNSResolver(Node)]
|
||||
expected: FAIL
|
||||
|
||||
[Document interface: operation prepend((Node or DOMString)...)]
|
||||
expected: FAIL
|
||||
|
||||
[XPathResult interface: document.evaluate("//*", document.body) must inherit property "snapshotLength" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[XPathEvaluator interface: existence and properties of interface prototype object's @@unscopables property]
|
||||
expected: FAIL
|
||||
|
||||
[AbortSignal must be primary interface of new AbortController().signal]
|
||||
expected: FAIL
|
||||
|
||||
[XPathResult interface: constant NUMBER_TYPE on interface object]
|
||||
expected: FAIL
|
||||
|
||||
[Element interface: element must inherit property "assignedSlot" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[StaticRange interface: existence and properties of interface prototype object]
|
||||
expected: FAIL
|
||||
|
||||
[AbortController interface object name]
|
||||
expected: FAIL
|
||||
|
||||
[Text interface: document.createTextNode("abc") must inherit property "assignedSlot" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[Event interface: attribute composed]
|
||||
expected: FAIL
|
||||
|
||||
[XPathResult interface: constant STRING_TYPE on interface object]
|
||||
expected: FAIL
|
||||
|
||||
[Text interface: attribute assignedSlot]
|
||||
expected: FAIL
|
||||
|
||||
[AbortSignal interface: existence and properties of interface prototype object's @@unscopables property]
|
||||
expected: FAIL
|
||||
|
||||
[Document interface: existence and properties of interface prototype object's @@unscopables property]
|
||||
expected: FAIL
|
||||
|
||||
[AbortSignal interface: existence and properties of interface object]
|
||||
expected: FAIL
|
||||
|
||||
[XPathResult interface: constant STRING_TYPE on interface prototype object]
|
||||
expected: FAIL
|
||||
|
||||
[Element interface: attribute shadowRoot]
|
||||
expected: FAIL
|
||||
|
||||
[StaticRange interface object name]
|
||||
expected: FAIL
|
||||
|
||||
[XPathResult interface: document.evaluate("//*", document.body) must inherit property "ORDERED_NODE_ITERATOR_TYPE" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[EventTarget interface: calling removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean)) on new AbortController().signal with too few arguments must throw TypeError]
|
||||
expected: FAIL
|
||||
|
||||
[EventTarget interface: new AbortController().signal must inherit property "addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean))" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[EventTarget interface: new AbortController().signal must inherit property "dispatchEvent(Event)" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[Element interface: element must inherit property "replaceChildren((Node or DOMString)...)" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[AbstractRange interface: attribute startContainer]
|
||||
expected: FAIL
|
||||
|
||||
[AbortSignal interface object name]
|
||||
expected: FAIL
|
||||
|
||||
[AbstractRange interface: existence and properties of interface object]
|
||||
expected: FAIL
|
||||
|
||||
[Event interface: new CustomEvent("foo") must inherit property "composed" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[XPathResult interface: document.evaluate("//*", document.body) must inherit property "UNORDERED_NODE_ITERATOR_TYPE" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[EventTarget interface: new AbortController().signal must inherit property "removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean))" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[StaticRange interface: existence and properties of interface prototype object's "constructor" property]
|
||||
expected: FAIL
|
||||
|
||||
[Element interface: operation attachShadow(ShadowRootInit)]
|
||||
expected: FAIL
|
||||
|
||||
[Document interface: xmlDoc must inherit property "createNSResolver(Node)" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[XPathResult interface: existence and properties of interface prototype object's "constructor" property]
|
||||
expected: FAIL
|
||||
|
||||
[XPathEvaluator interface: operation createExpression(DOMString, optional XPathNSResolver?)]
|
||||
expected: FAIL
|
||||
|
||||
[AbortController interface: operation abort()]
|
||||
expected: FAIL
|
||||
|
||||
[AbortController interface: existence and properties of interface object]
|
||||
expected: FAIL
|
||||
|
||||
[XPathResult interface: constant UNORDERED_NODE_ITERATOR_TYPE on interface prototype object]
|
||||
expected: FAIL
|
||||
|
||||
[Element interface: operation prepend((Node or DOMString)...)]
|
||||
expected: FAIL
|
||||
|
||||
[XPathResult interface: document.evaluate("//*", document.body) must inherit property "ANY_UNORDERED_NODE_TYPE" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[AbortController interface: attribute signal]
|
||||
expected: FAIL
|
||||
|
||||
[XPathResult interface: constant UNORDERED_NODE_SNAPSHOT_TYPE on interface prototype object]
|
||||
expected: FAIL
|
||||
|
||||
[Element interface: calling attachShadow(ShadowRootInit) on element with too few arguments must throw TypeError]
|
||||
expected: FAIL
|
||||
|
||||
[XPathResult interface: constant ORDERED_NODE_SNAPSHOT_TYPE on interface object]
|
||||
expected: FAIL
|
||||
|
||||
[StaticRange interface: existence and properties of interface object]
|
||||
expected: FAIL
|
||||
|
||||
[XPathResult interface: constant ANY_TYPE on interface prototype object]
|
||||
expected: FAIL
|
||||
|
||||
[Event interface: new Event("foo") must inherit property "composedPath()" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[Document interface: calling replaceChildren((Node or DOMString)...) on xmlDoc with too few arguments must throw TypeError]
|
||||
expected: FAIL
|
||||
|
||||
[CharacterData interface: operation before((Node or DOMString)...)]
|
||||
expected: FAIL
|
||||
|
||||
[AbortSignal interface: attribute aborted]
|
||||
expected: FAIL
|
||||
|
||||
[XPathResult interface: operation snapshotItem(unsigned long)]
|
||||
expected: FAIL
|
||||
|
||||
[XPathResult interface: document.evaluate("//*", document.body) must inherit property "ANY_TYPE" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[Event interface: operation composedPath()]
|
||||
expected: FAIL
|
||||
|
||||
[XPathEvaluator interface: operation evaluate(DOMString, Node, optional XPathNSResolver?, optional unsigned short, optional XPathResult?)]
|
||||
expected: FAIL
|
||||
|
||||
[XPathResult interface: existence and properties of interface object]
|
||||
expected: FAIL
|
||||
|
||||
[Element interface: operation after((Node or DOMString)...)]
|
||||
expected: FAIL
|
||||
|
||||
[AbortController must be primary interface of new AbortController()]
|
||||
expected: FAIL
|
||||
|
||||
[AbortController interface: existence and properties of interface prototype object's @@unscopables property]
|
||||
expected: FAIL
|
||||
|
||||
[Element interface: attribute assignedSlot]
|
||||
expected: FAIL
|
||||
|
||||
[XPathEvaluator interface: existence and properties of interface prototype object's "constructor" property]
|
||||
expected: FAIL
|
||||
|
||||
[XPathExpression interface: existence and properties of interface prototype object]
|
||||
expected: FAIL
|
||||
|
||||
[CustomEvent interface: operation initCustomEvent(DOMString, optional boolean, optional boolean, optional any)]
|
||||
expected: FAIL
|
||||
|
||||
[XPathResult interface: constant ORDERED_NODE_ITERATOR_TYPE on interface object]
|
||||
expected: FAIL
|
||||
|
||||
[CharacterData interface: existence and properties of interface prototype object's @@unscopables property]
|
||||
expected: FAIL
|
||||
|
||||
[CharacterData interface: operation remove()]
|
||||
expected: FAIL
|
||||
|
||||
[XPathEvaluator interface: existence and properties of interface object]
|
||||
expected: FAIL
|
||||
|
||||
[XPathResult interface: calling snapshotItem(unsigned long) on document.evaluate("//*", document.body) with too few arguments must throw TypeError]
|
||||
expected: FAIL
|
||||
|
||||
[Range interface: existence and properties of interface object]
|
||||
expected: FAIL
|
||||
|
||||
[XPathResult interface: document.evaluate("//*", document.body) must inherit property "snapshotItem(unsigned long)" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[Element interface: element must inherit property "attachShadow(ShadowRootInit)" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[Element interface: element must inherit property "slot" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[Document interface: new Document() must inherit property "evaluate(DOMString, Node, optional XPathNSResolver?, optional unsigned short, optional XPathResult?)" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[AbstractRange interface object length]
|
||||
expected: FAIL
|
||||
|
||||
[Document interface: xmlDoc must inherit property "evaluate(DOMString, Node, optional XPathNSResolver?, optional unsigned short, optional XPathResult?)" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[XPathExpression interface: operation evaluate(Node, optional unsigned short, optional XPathResult?)]
|
||||
expected: FAIL
|
||||
|
||||
[AbortController interface: new AbortController() must inherit property "signal" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[XPathResult interface: document.evaluate("//*", document.body) must inherit property "iterateNext()" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[Document interface: calling createNSResolver(Node) on new Document() with too few arguments must throw TypeError]
|
||||
expected: FAIL
|
||||
|
||||
[ShadowRoot interface: attribute onslotchange]
|
||||
expected: FAIL
|
||||
|
||||
[Window interface: attribute event]
|
||||
expected: FAIL
|
||||
|
||||
[AbortController interface: new AbortController() must inherit property "abort()" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[Element interface: attribute slot]
|
||||
expected: FAIL
|
||||
|
||||
[AbstractRange interface: attribute collapsed]
|
||||
expected: FAIL
|
||||
|
||||
[AbstractRange interface: attribute startOffset]
|
||||
expected: FAIL
|
||||
|
||||
[XPathResult interface: document.evaluate("//*", document.body) must inherit property "invalidIteratorState" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[DocumentType interface: existence and properties of interface prototype object's @@unscopables property]
|
||||
expected: FAIL
|
||||
|
||||
[Document interface: calling evaluate(DOMString, Node, optional XPathNSResolver?, optional unsigned short, optional XPathResult?) on new Document() with too few arguments must throw TypeError]
|
||||
expected: FAIL
|
||||
|
||||
[AbortController interface object length]
|
||||
expected: FAIL
|
||||
|
||||
[Range interface: existence and properties of interface prototype object]
|
||||
expected: FAIL
|
||||
|
||||
[XPathExpression interface: existence and properties of interface prototype object's @@unscopables property]
|
||||
expected: FAIL
|
||||
|
||||
[XPathResult interface object length]
|
||||
expected: FAIL
|
||||
|
||||
[Stringification of document.createExpression("//*")]
|
||||
expected: FAIL
|
||||
|
||||
[XPathResult must be primary interface of document.evaluate("//*", document.body)]
|
||||
expected: FAIL
|
||||
|
||||
[CharacterData interface: operation replaceWith((Node or DOMString)...)]
|
||||
expected: FAIL
|
||||
|
||||
[XPathResult interface: existence and properties of interface prototype object]
|
||||
expected: FAIL
|
||||
|
||||
[XPathResult interface: attribute resultType]
|
||||
expected: FAIL
|
||||
|
||||
[AbstractRange interface: existence and properties of interface prototype object's "constructor" property]
|
||||
expected: FAIL
|
||||
|
||||
[Document interface: xmlDoc must inherit property "createExpression(DOMString, optional XPathNSResolver?)" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[XPathResult interface: constant FIRST_ORDERED_NODE_TYPE on interface prototype object]
|
||||
expected: FAIL
|
||||
|
||||
[DocumentType interface: operation replaceWith((Node or DOMString)...)]
|
||||
expected: FAIL
|
||||
|
||||
[EventTarget interface: calling dispatchEvent(Event) on new AbortController().signal with too few arguments must throw TypeError]
|
||||
expected: FAIL
|
||||
|
||||
[XPathResult interface: existence and properties of interface prototype object's @@unscopables property]
|
||||
expected: FAIL
|
||||
|
||||
[AbortController interface: existence and properties of interface prototype object]
|
||||
expected: FAIL
|
||||
|
||||
[Document interface: new Document() must inherit property "createNSResolver(Node)" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[XPathResult interface: constant ORDERED_NODE_ITERATOR_TYPE on interface prototype object]
|
||||
expected: FAIL
|
||||
|
||||
[XPathResult interface: attribute stringValue]
|
||||
expected: FAIL
|
||||
|
||||
[XPathResult interface: attribute booleanValue]
|
||||
expected: FAIL
|
||||
|
||||
[XPathEvaluator interface: calling createExpression(DOMString, optional XPathNSResolver?) on new XPathEvaluator() with too few arguments must throw TypeError]
|
||||
expected: FAIL
|
||||
|
||||
[XPathResult interface: document.evaluate("//*", document.body) must inherit property "UNORDERED_NODE_SNAPSHOT_TYPE" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[AbstractRange interface object name]
|
||||
expected: FAIL
|
||||
|
||||
[DocumentFragment interface: existence and properties of interface prototype object's @@unscopables property]
|
||||
expected: FAIL
|
||||
|
||||
[XPathEvaluator interface: operation createNSResolver(Node)]
|
||||
expected: FAIL
|
||||
|
||||
[Document interface: calling createNSResolver(Node) on xmlDoc with too few arguments must throw TypeError]
|
||||
expected: FAIL
|
||||
|
||||
[XPathResult interface: document.evaluate("//*", document.body) must inherit property "booleanValue" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[DocumentType interface: operation before((Node or DOMString)...)]
|
||||
expected: FAIL
|
||||
|
||||
[XPathResult interface: constant ORDERED_NODE_SNAPSHOT_TYPE on interface prototype object]
|
||||
expected: FAIL
|
||||
|
||||
[AbortSignal interface: new AbortController().signal must inherit property "aborted" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[EventTarget interface: calling addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean)) on new AbortController().signal with too few arguments must throw TypeError]
|
||||
expected: FAIL
|
||||
|
||||
[Document interface: calling createExpression(DOMString, optional XPathNSResolver?) on xmlDoc with too few arguments must throw TypeError]
|
||||
expected: FAIL
|
||||
|
||||
[XPathResult interface: attribute snapshotLength]
|
||||
expected: FAIL
|
||||
|
||||
[XPathEvaluator interface: new XPathEvaluator() must inherit property "createNSResolver(Node)" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[Event interface: document.createEvent("Event") must inherit property "composedPath()" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[DOMTokenList interface: calling supports(DOMString) on document.body.classList with too few arguments must throw TypeError]
|
||||
expected: FAIL
|
||||
|
||||
[StaticRange interface object length]
|
||||
expected: FAIL
|
||||
|
||||
[Document interface: calling replaceChildren((Node or DOMString)...) on new Document() with too few arguments must throw TypeError]
|
||||
expected: FAIL
|
||||
|
||||
[XPathResult interface: document.evaluate("//*", document.body) must inherit property "resultType" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[XPathEvaluator interface object length]
|
||||
expected: FAIL
|
||||
|
||||
[AbortSignal interface: existence and properties of interface prototype object's "constructor" property]
|
||||
expected: FAIL
|
||||
|
||||
[XPathEvaluator interface: new XPathEvaluator() must inherit property "evaluate(DOMString, Node, optional XPathNSResolver?, optional unsigned short, optional XPathResult?)" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[XPathEvaluator interface: calling evaluate(DOMString, Node, optional XPathNSResolver?, optional unsigned short, optional XPathResult?) on new XPathEvaluator() with too few arguments must throw TypeError]
|
||||
expected: FAIL
|
||||
|
||||
[AbortSignal interface: new AbortController().signal must inherit property "onabort" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[Event interface: new CustomEvent("foo") must inherit property "composedPath()" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[Document interface: calling evaluate(DOMString, Node, optional XPathNSResolver?, optional unsigned short, optional XPathResult?) on xmlDoc with too few arguments must throw TypeError]
|
||||
expected: FAIL
|
||||
|
||||
[XPathResult interface: constant UNORDERED_NODE_SNAPSHOT_TYPE on interface object]
|
||||
expected: FAIL
|
||||
|
||||
[AbortController interface: existence and properties of interface prototype object's "constructor" property]
|
||||
expected: FAIL
|
||||
|
||||
[XPathResult interface: document.evaluate("//*", document.body) must inherit property "stringValue" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[XPathResult interface: attribute invalidIteratorState]
|
||||
expected: FAIL
|
||||
|
||||
[AbortSignal interface: attribute onabort]
|
||||
expected: FAIL
|
||||
|
||||
[Document interface: operation evaluate(DOMString, Node, optional XPathNSResolver?, optional unsigned short, optional XPathResult?)]
|
||||
expected: FAIL
|
||||
|
||||
[XPathResult interface: document.evaluate("//*", document.body) must inherit property "singleNodeValue" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[Document interface: operation createExpression(DOMString, optional XPathNSResolver?)]
|
||||
expected: FAIL
|
||||
|
||||
[AbstractRange interface: attribute endContainer]
|
||||
expected: FAIL
|
||||
|
||||
[DocumentFragment interface: document.createDocumentFragment() must inherit property "replaceChildren((Node or DOMString)...)" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[AbortSignal interface object length]
|
||||
expected: FAIL
|
||||
|
||||
[XPathEvaluator interface: calling createNSResolver(Node) on new XPathEvaluator() with too few arguments must throw TypeError]
|
||||
expected: FAIL
|
||||
|
||||
[DOMTokenList interface: document.body.classList must inherit property "supports(DOMString)" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[AbortSignal interface: existence and properties of interface prototype object]
|
||||
expected: FAIL
|
||||
|
||||
[XPathResult interface: attribute numberValue]
|
||||
expected: FAIL
|
||||
|
||||
[XPathResult interface: document.evaluate("//*", document.body) must inherit property "numberValue" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[XPathResult interface: constant NUMBER_TYPE on interface prototype object]
|
||||
expected: FAIL
|
||||
|
||||
[XPathExpression interface object name]
|
||||
expected: FAIL
|
||||
|
||||
[Event interface: new Event("foo") must inherit property "composed" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[XPathResult interface: document.evaluate("//*", document.body) must inherit property "BOOLEAN_TYPE" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[Document interface: new Document() must inherit property "createExpression(DOMString, optional XPathNSResolver?)" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[XPathResult interface: constant BOOLEAN_TYPE on interface prototype object]
|
||||
expected: FAIL
|
||||
|
||||
[XPathResult interface: document.evaluate("//*", document.body) must inherit property "STRING_TYPE" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[Element interface: operation remove()]
|
||||
expected: FAIL
|
||||
|
||||
[DocumentFragment interface: operation replaceChildren((Node or DOMString)...)]
|
||||
expected: FAIL
|
||||
|
||||
[XPathResult interface: document.evaluate("//*", document.body) must inherit property "NUMBER_TYPE" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[NodeFilter interface: existence and properties of interface object]
|
||||
expected: FAIL
|
||||
|
||||
[XPathEvaluator interface object name]
|
||||
expected: FAIL
|
||||
|
||||
[XPathExpression interface: existence and properties of interface prototype object's "constructor" property]
|
||||
expected: FAIL
|
||||
|
||||
[Stringification of document.evaluate("//*", document.body)]
|
||||
expected: FAIL
|
||||
|
||||
[XPathResult interface: document.evaluate("//*", document.body) must inherit property "ORDERED_NODE_SNAPSHOT_TYPE" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[Stringification of new AbortController().signal]
|
||||
expected: FAIL
|
||||
|
||||
[AbstractRange interface: existence and properties of interface prototype object's @@unscopables property]
|
||||
expected: FAIL
|
||||
|
||||
[XPathResult interface: constant ANY_UNORDERED_NODE_TYPE on interface prototype object]
|
||||
expected: FAIL
|
||||
|
||||
[Document interface: calling createExpression(DOMString, optional XPathNSResolver?) on new Document() with too few arguments must throw TypeError]
|
||||
expected: FAIL
|
||||
|
||||
[XPathEvaluator interface: new XPathEvaluator() must inherit property "createExpression(DOMString, optional XPathNSResolver?)" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[CharacterData interface: operation after((Node or DOMString)...)]
|
||||
expected: FAIL
|
||||
|
||||
[DOMTokenList interface: operation supports(DOMString)]
|
||||
expected: FAIL
|
||||
|
||||
[AbstractRange interface: attribute endOffset]
|
||||
expected: FAIL
|
||||
|
||||
[XPathExpression interface object length]
|
||||
expected: FAIL
|
||||
|
||||
[Stringification of new XPathEvaluator()]
|
||||
expected: FAIL
|
||||
|
||||
[Element interface: operation replaceChildren((Node or DOMString)...)]
|
||||
expected: FAIL
|
||||
|
||||
[DocumentFragment interface: operation prepend((Node or DOMString)...)]
|
||||
expected: FAIL
|
||||
|
||||
[Document interface: operation replaceChildren((Node or DOMString)...)]
|
||||
expected: FAIL
|
||||
|
||||
[XPathResult interface: constant ANY_UNORDERED_NODE_TYPE on interface object]
|
||||
expected: FAIL
|
||||
|
||||
[XPathExpression must be primary interface of document.createExpression("//*")]
|
||||
expected: FAIL
|
||||
|
||||
[XPathResult interface: document.evaluate("//*", document.body) must inherit property "FIRST_ORDERED_NODE_TYPE" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[Element interface: calling replaceChildren((Node or DOMString)...) on element with too few arguments must throw TypeError]
|
||||
expected: FAIL
|
||||
|
||||
[Stringification of new AbortController()]
|
||||
expected: FAIL
|
||||
|
||||
[AbstractRange interface: existence and properties of interface prototype object]
|
||||
expected: FAIL
|
||||
|
||||
[XPathExpression interface: calling evaluate(Node, optional unsigned short, optional XPathResult?) on document.createExpression("//*") with too few arguments must throw TypeError]
|
||||
expected: FAIL
|
||||
|
||||
[Document interface: operation append((Node or DOMString)...)]
|
||||
expected: FAIL
|
||||
|
||||
[XPathResult interface: operation iterateNext()]
|
||||
expected: FAIL
|
||||
|
||||
[Document interface: new Document() must inherit property "replaceChildren((Node or DOMString)...)" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[StaticRange interface: existence and properties of interface prototype object's @@unscopables property]
|
||||
expected: FAIL
|
||||
|
||||
[DocumentFragment interface: calling replaceChildren((Node or DOMString)...) on document.createDocumentFragment() with too few arguments must throw TypeError]
|
||||
expected: FAIL
|
||||
|
||||
[Event interface: document.createEvent("Event") must inherit property "composed" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[Document interface: xmlDoc must inherit property "replaceChildren((Node or DOMString)...)" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[XPathResult interface: constant UNORDERED_NODE_ITERATOR_TYPE on interface object]
|
||||
expected: FAIL
|
||||
|
||||
[DocumentType interface: operation remove()]
|
||||
expected: FAIL
|
||||
|
||||
[XPathResult interface: constant ANY_TYPE on interface object]
|
||||
expected: FAIL
|
||||
|
||||
[XPathResult interface: constant FIRST_ORDERED_NODE_TYPE on interface object]
|
||||
expected: FAIL
|
||||
|
||||
[DocumentType interface: operation after((Node or DOMString)...)]
|
||||
expected: FAIL
|
||||
|
||||
[XPathEvaluator must be primary interface of new XPathEvaluator()]
|
||||
expected: FAIL
|
||||
|
||||
[XPathExpression interface: existence and properties of interface object]
|
||||
expected: FAIL
|
||||
|
||||
[Element interface: existence and properties of interface prototype object's @@unscopables property]
|
||||
expected: FAIL
|
||||
|
||||
[DocumentFragment interface: operation append((Node or DOMString)...)]
|
||||
expected: FAIL
|
||||
|
||||
[XPathResult interface: constant BOOLEAN_TYPE on interface object]
|
||||
expected: FAIL
|
||||
|
||||
[Element interface: operation append((Node or DOMString)...)]
|
||||
expected: FAIL
|
||||
|
||||
[Element interface: element must inherit property "shadowRoot" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[XPathEvaluator interface: existence and properties of interface prototype object]
|
||||
expected: FAIL
|
||||
|
||||
[Element interface: operation before((Node or DOMString)...)]
|
||||
expected: FAIL
|
||||
|
|
@ -312,24 +312,18 @@
|
|||
[Response: combined response Content-Type: text/html;" \\" text/plain ";charset=GBK]
|
||||
expected: NOTRUN
|
||||
|
||||
[<iframe>: combined response Content-Type: text/html;x=" text/plain]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: combined response Content-Type: text/html;" text/plain]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: combined response Content-Type: text/html;charset=gbk text/plain text/html]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: separate response Content-Type: text/html */*;charset=gbk]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: combined response Content-Type: text/plain;charset=gbk text/html]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: separate response Content-Type: text/html;x=" text/plain]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: combined response Content-Type: text/html;" \\" text/plain]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: combined response Content-Type: text/html */*;charset=gbk]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: separate response Content-Type: text/html;" \\" text/plain]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: separate response Content-Type: text/plain */*;charset=gbk]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -56,3 +56,9 @@
|
|||
[separate text/javascript x/x]
|
||||
expected: FAIL
|
||||
|
||||
[separate text/javascript;charset=windows-1252 error text/javascript]
|
||||
expected: FAIL
|
||||
|
||||
[separate text/javascript;charset=windows-1252 text/javascript]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -11,6 +11,3 @@
|
|||
[X-Content-Type-Options%3A%20nosniff%0C]
|
||||
expected: FAIL
|
||||
|
||||
[Content-Type-Options%3A%20nosniff]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
[traverse_the_history_1.html]
|
||||
[Multiple history traversals from the same task]
|
||||
expected: FAIL
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
[traverse_the_history_4.html]
|
||||
[traverse_the_history_5.html]
|
||||
[Multiple history traversals, last would be aborted]
|
||||
expected: FAIL
|
||||
|
|
@ -1,4 +1,5 @@
|
|||
[supported-elements.html]
|
||||
expected: TIMEOUT
|
||||
[Contenteditable element should support autofocus]
|
||||
expected: FAIL
|
||||
|
||||
|
@ -9,7 +10,7 @@
|
|||
expected: FAIL
|
||||
|
||||
[Area element should support autofocus]
|
||||
expected: FAIL
|
||||
expected: TIMEOUT
|
||||
|
||||
[Host element with delegatesFocus should support autofocus]
|
||||
expected: FAIL
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
[iframe_sandbox_popups_escaping-3.html]
|
||||
expected: TIMEOUT
|
||||
[Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used]
|
||||
expected: FAIL
|
||||
expected: TIMEOUT
|
||||
|
||||
|
|
|
@ -0,0 +1,2 @@
|
|||
[script-onerror-insertion-point-2.html]
|
||||
expected: TIMEOUT
|
|
@ -4,5 +4,5 @@
|
|||
expected: TIMEOUT
|
||||
|
||||
[The entry settings object while executing the compiled callback via Web IDL's invoke must be that of the node document]
|
||||
expected: FAIL
|
||||
expected: TIMEOUT
|
||||
|
||||
|
|
145
tests/wpt/metadata-layout-2020/url/a-element-xhtml.xhtml.ini
Normal file
145
tests/wpt/metadata-layout-2020/url/a-element-xhtml.xhtml.ini
Normal file
|
@ -0,0 +1,145 @@
|
|||
[a-element-xhtml.xhtml]
|
||||
[Parsing: <////> against <sc://x/>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: <gopher:example.com/> against <http://example.org/foo/bar>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: </rooibos> against <file://tea/>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: </..//localhost//pig> against <file://lion/>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: <sc://ñ> against <about:blank>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: <sc://?> against <about:blank>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: <sc://ñ#x> against <about:blank>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: <gopher:example.com/> against <about:blank>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: <http://example.org/test?a#b\x00c> against <about:blank>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: <gopher://foo:70/> against <about:blank>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: <http://www.google.com/foo?bar=baz# »> against <about:blank>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: <http://foo.bar/baz?qux#foo<bar> against <about:blank>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: <non-spec://example.org/test?a#b\x00c> against <about:blank>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: <non-spec:/test?a#b\x00c> against <about:blank>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: <file:\\\\localhost//> against <about:blank>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: <http://f:21/ b ? d # e > against <http://example.org/foo/bar>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: <file:\\\\\\\\> against <about:blank>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: <file:\\c:\\foo\\bar> against <file:///c:/baz/qux>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: <gopher:/example.com/> against <about:blank>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: <file:\\\\\\\\#guppy> against <about:blank>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: <file://\\/localhost//cat> against <about:blank>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: </?chai> against <file://tea/>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: <http://foo.bar/baz?qux#foo"bar> against <about:blank>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: <file:\\\\\\\\?fox> against <about:blank>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: <\\/localhost//pig> against <file://lion/>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: <sc://#> against <about:blank>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: <data:test# »> against <about:blank>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: <sc://:/> against <about:blank>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: <gopher:/example.com/> against <http://example.org/foo/bar>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: <////x/> against <sc://x/>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: </////mouse> against <file:///elephant>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: <file://spider///> against <about:blank>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: <sc://:12/> against <about:blank>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: <file:\\\\//> against <about:blank>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: <foo://> against <http://example.org/foo/bar>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: </c:/foo/bar> against <file:///c:/baz/qux>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: <sc://ñ?x> against <about:blank>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: <http://foo.bar/baz?qux#foo>bar> against <about:blank>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: <lolscheme:x x#x x> against <about:blank>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: <http://foo.bar/baz?qux#foo`bar> against <about:blank>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: <//localhost//pig> against <file://lion/>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: <?x> against <sc://ñ>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: <sc://@/> against <about:blank>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: <C|> against <file://host/dir/file>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: <sc://te@s:t@/> against <about:blank>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: </c|/foo/bar> against <file:///c:/baz/qux>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: <file://localhost//a//../..//> against <about:blank>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: <#x> against <sc://ñ>]
|
||||
expected: FAIL
|
||||
|
145
tests/wpt/metadata-layout-2020/url/a-element.html.ini
Normal file
145
tests/wpt/metadata-layout-2020/url/a-element.html.ini
Normal file
|
@ -0,0 +1,145 @@
|
|||
[a-element.html]
|
||||
[Parsing: <////> against <sc://x/>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: <gopher:example.com/> against <http://example.org/foo/bar>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: </rooibos> against <file://tea/>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: </..//localhost//pig> against <file://lion/>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: <sc://ñ> against <about:blank>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: <sc://?> against <about:blank>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: <sc://ñ#x> against <about:blank>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: <gopher:example.com/> against <about:blank>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: <http://example.org/test?a#b\x00c> against <about:blank>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: <gopher://foo:70/> against <about:blank>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: <http://www.google.com/foo?bar=baz# »> against <about:blank>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: <http://foo.bar/baz?qux#foo<bar> against <about:blank>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: <non-spec://example.org/test?a#b\x00c> against <about:blank>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: <non-spec:/test?a#b\x00c> against <about:blank>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: <file:\\\\localhost//> against <about:blank>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: <http://f:21/ b ? d # e > against <http://example.org/foo/bar>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: <file:\\\\\\\\> against <about:blank>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: <file:\\c:\\foo\\bar> against <file:///c:/baz/qux>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: <gopher:/example.com/> against <about:blank>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: <file:\\\\\\\\#guppy> against <about:blank>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: <file://\\/localhost//cat> against <about:blank>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: </?chai> against <file://tea/>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: <http://foo.bar/baz?qux#foo"bar> against <about:blank>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: <file:\\\\\\\\?fox> against <about:blank>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: <\\/localhost//pig> against <file://lion/>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: <sc://#> against <about:blank>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: <data:test# »> against <about:blank>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: <sc://:/> against <about:blank>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: <gopher:/example.com/> against <http://example.org/foo/bar>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: <////x/> against <sc://x/>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: </////mouse> against <file:///elephant>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: <file://spider///> against <about:blank>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: <sc://:12/> against <about:blank>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: <file:\\\\//> against <about:blank>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: <foo://> against <http://example.org/foo/bar>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: </c:/foo/bar> against <file:///c:/baz/qux>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: <sc://ñ?x> against <about:blank>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: <http://foo.bar/baz?qux#foo>bar> against <about:blank>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: <lolscheme:x x#x x> against <about:blank>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: <http://foo.bar/baz?qux#foo`bar> against <about:blank>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: <//localhost//pig> against <file://lion/>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: <?x> against <sc://ñ>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: <sc://@/> against <about:blank>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: <C|> against <file://host/dir/file>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: <sc://te@s:t@/> against <about:blank>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: </c|/foo/bar> against <file:///c:/baz/qux>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: <file://localhost//a//../..//> against <about:blank>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: <#x> against <sc://ñ>]
|
||||
expected: FAIL
|
||||
|
145
tests/wpt/metadata-layout-2020/url/url-constructor.html.ini
Normal file
145
tests/wpt/metadata-layout-2020/url/url-constructor.html.ini
Normal file
|
@ -0,0 +1,145 @@
|
|||
[url-constructor.html]
|
||||
[Parsing: <////> against <sc://x/>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: <gopher:example.com/> against <http://example.org/foo/bar>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: </rooibos> against <file://tea/>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: </..//localhost//pig> against <file://lion/>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: <sc://ñ> against <about:blank>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: <sc://?> against <about:blank>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: <sc://ñ#x> against <about:blank>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: <gopher:example.com/> against <about:blank>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: <http://example.org/test?a#b\x00c> against <about:blank>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: <gopher://foo:70/> against <about:blank>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: <http://www.google.com/foo?bar=baz# »> against <about:blank>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: <http://foo.bar/baz?qux#foo<bar> against <about:blank>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: <non-spec://example.org/test?a#b\x00c> against <about:blank>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: <non-spec:/test?a#b\x00c> against <about:blank>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: <file:\\\\localhost//> against <about:blank>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: <http://f:21/ b ? d # e > against <http://example.org/foo/bar>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: <file:\\\\\\\\> against <about:blank>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: <file:\\c:\\foo\\bar> against <file:///c:/baz/qux>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: <gopher:/example.com/> against <about:blank>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: <file:\\\\\\\\#guppy> against <about:blank>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: <file://\\/localhost//cat> against <about:blank>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: </?chai> against <file://tea/>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: <http://foo.bar/baz?qux#foo"bar> against <about:blank>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: <file:\\\\\\\\?fox> against <about:blank>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: <\\/localhost//pig> against <file://lion/>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: <sc://#> against <about:blank>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: <data:test# »> against <about:blank>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: <sc://:/> against <about:blank>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: <gopher:/example.com/> against <http://example.org/foo/bar>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: <////x/> against <sc://x/>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: </////mouse> against <file:///elephant>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: <file://spider///> against <about:blank>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: <sc://:12/> against <about:blank>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: <file:\\\\//> against <about:blank>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: <foo://> against <http://example.org/foo/bar>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: </c:/foo/bar> against <file:///c:/baz/qux>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: <sc://ñ?x> against <about:blank>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: <http://foo.bar/baz?qux#foo>bar> against <about:blank>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: <lolscheme:x x#x x> against <about:blank>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: <http://foo.bar/baz?qux#foo`bar> against <about:blank>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: <//localhost//pig> against <file://lion/>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: <?x> against <sc://ñ>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: <sc://@/> against <about:blank>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: <C|> against <file://host/dir/file>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: <sc://te@s:t@/> against <about:blank>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: </c|/foo/bar> against <file:///c:/baz/qux>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: <file://localhost//a//../..//> against <about:blank>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: <#x> against <sc://ñ>]
|
||||
expected: FAIL
|
||||
|
898
tests/wpt/metadata-layout-2020/url/url-setters.html.ini
Normal file
898
tests/wpt/metadata-layout-2020/url/url-setters.html.ini
Normal file
|
@ -0,0 +1,898 @@
|
|||
[url-setters.html]
|
||||
[URL: Setting <javascript:alert(1)>.hash = 'castle']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <http://me@example.net>.password = 'secret']
|
||||
expected: FAIL
|
||||
|
||||
[<a>: Setting <http://example.net>.hash = '#foo>bar']
|
||||
expected: FAIL
|
||||
|
||||
[URL: Setting <sc://x/>.host = '\x00' Non-special scheme]
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <unix:/run/foo.socket>.password = 'secret' No host means no password]
|
||||
expected: FAIL
|
||||
|
||||
[<a>: Setting <a://example.net>.protocol = 'B' Upper-case ASCII is lower-cased]
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <nonsense:///test>.protocol = 'https']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <http://example.net>.port = '8080']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <http://:secret@example.net>.username = 'me']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <file://hi/x>.hostname = '']
|
||||
expected: FAIL
|
||||
|
||||
[<a>: Setting <wss://x:x@example.net:1234>.protocol = 'file']
|
||||
expected: FAIL
|
||||
|
||||
[<a>: Setting <a:/>.pathname = '\x00\x01\t\n\r\x1f !"#$%&'()*+,-./09:;<=>?@AZ[\\\]^_`az{|}~Éé' UTF-8 percent encoding with the default encode set. Tabs and newlines are removed.]
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <gopher://example.net:1234>.protocol = 'file']
|
||||
expected: FAIL
|
||||
|
||||
[URL: Setting <file://y/>.host = 'x:123']
|
||||
expected: FAIL
|
||||
|
||||
[URL: Setting <file:///unicorn>.pathname = '//\\/' File URLs and (back)slashes]
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <http://example.net>.pathname = '?' ? needs to be encoded]
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <javascript:alert(1)>.username = 'wario']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <sc://x/>.hostname = '@']
|
||||
expected: FAIL
|
||||
|
||||
[<a>: Setting <nonsense:///test>.protocol = 'https']
|
||||
expected: FAIL
|
||||
|
||||
[URL: Setting <file://hi/path>.protocol = 's']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <https://example.net?lang=en-US>.search = '']
|
||||
expected: FAIL
|
||||
|
||||
[URL: Setting <sc://x/>.host = ' ']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <sc://x/>.port = '12']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <sc://x/>.hostname = '\r']
|
||||
expected: FAIL
|
||||
|
||||
[URL: Setting <ssh://example.net>.protocol = 'file']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <http://example.net/>.hostname = '[google.com\]' Broken IPv6]
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <http://example.net/path>.port = '8080/stuff' Stuff after a / delimiter is ignored]
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <sc://x/>.hostname = '#']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <file://y/>.hostname = 'x:123']
|
||||
expected: FAIL
|
||||
|
||||
[<a>: Setting <a:/>.search = '\x00\x01\t\n\r\x1f !"#$%&'()*+,-./09:;<=>?@AZ[\\\]^_`az{|}~Éé' UTF-8 percent encoding with the query encode set. Tabs and newlines are removed.]
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <http://example.net/>.hostname = '[::1.2.3.4x\]']
|
||||
expected: FAIL
|
||||
|
||||
[<a>: Setting <http://example.net>.hash = 'a\x00b' Percent-encode NULLs in fragment]
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <unix:/run/foo.socket?timeout=10>.pathname = '/var/log/../run/bar.socket']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <http://example.net:8080>.hostname = '0x7F000001' IPv4 address syntax is normalized]
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <mailto:you@example.net>.username = 'me' Cannot-be-a-base means no username]
|
||||
expected: FAIL
|
||||
|
||||
[<a>: Setting <sc://x/>.hostname = '\x00' Non-special scheme]
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <https://example.net?lang=en-US#nav>.search = '??lang=fr']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <https://example.net?lang=en-US#nav>.hash = '']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <wss://x:x@example.net:1234>.protocol = 'file']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <https://x/>.host = 'ß' IDNA Nontransitional_Processing]
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <file:///unicorn>.pathname = '//\\/' File URLs and (back)slashes]
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <http://example.net>.hash = 'a\x00b' Percent-encode NULLs in fragment]
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <http://example.net>.host = '[2001:db8::2\]:4002' IPv6 literal address with port, crbug.com/1012416]
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <a://example.net>.protocol = '+b' No leading punctuation]
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <sc://test@test/>.hostname = '']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <http://example.net:8080>.port = '80' Default port number is removed]
|
||||
expected: FAIL
|
||||
|
||||
[URL: Setting <a:/>.search = '\x00\x01\t\n\r\x1f !"#$%&'()*+,-./09:;<=>?@AZ[\\\]^_`az{|}~Éé' UTF-8 percent encoding with the query encode set. Tabs and newlines are removed.]
|
||||
expected: FAIL
|
||||
|
||||
[<a>: Setting <ssh://example.net>.protocol = 'file']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <http://example.net:8080>.port = '' Port number is removed if empty is the new value]
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <ssh://me@example.net>.protocol = 'https']
|
||||
expected: FAIL
|
||||
|
||||
[<a>: Setting <file:///unicorn>.pathname = '//monkey/..//' File URLs and (back)slashes]
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <http://foo.com:443/>.protocol = 'https' Port is set to null if it is the default for new scheme.]
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <http://example.net>.protocol = 'b' Can’t switch from special scheme to non-special]
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <data:text/plain,Stuff>.host = 'example.net' Cannot-be-a-base means no host]
|
||||
expected: FAIL
|
||||
|
||||
[<a>: Setting <a://example.net>.protocol = 'bC0+-.']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <file://test/>.port = '12']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <sc://x/>.host = '/']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <file:///unicorn>.pathname = '//monkey/..//' File URLs and (back)slashes]
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <http://example.net/path>.host = 'example.com#stuff' Stuff after a # delimiter is ignored]
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <mailto:me@example.net>.password = 'secret' Cannot-be-a-base means no password]
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <file://hi/x>.host = '']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <file:///test>.protocol = 'gopher']
|
||||
expected: FAIL
|
||||
|
||||
[<a>: Setting <sc://test:12/>.host = '']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <https://example.net?lang=en-US#nav>.search = '?lang=fr']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <http://example.net>.pathname = '#' # needs to be encoded]
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <https://example.net?lang=en-US#nav>.hash = '#main']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <file://test/>.username = 'test']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <view-source+http://example.net/path>.port = '8080stuff2' Anything other than ASCII digit stops the port parser in a setter but is not an error]
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <http://example.net/path>.host = 'example.com:8080\\stuff' Stuff after a \\ delimiter is ignored for special schemes]
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <file:///home/you/index.html>.username = 'me' No host means no username]
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <http://example.net>.host = '0x7F000001:8080' IPv4 address syntax is normalized]
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <http://example.net/>.host = '[::1.\]']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <http://example.net/home?lang=fr#nav>.pathname = '\\a\\%2E\\b\\%2e.\\c' \\ is a segment delimiter for 'special' URLs]
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <file://localhost/>.protocol = 'http' Can’t switch from file URL with no host]
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <javascript:alert(1)>.hash = 'castle']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <https://example.net>.port = '80' Default port number is only removed for the relevant scheme]
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <http://example.net/path>.host = 'example.com\\stuff' Stuff after a \\ delimiter is ignored for special schemes]
|
||||
expected: FAIL
|
||||
|
||||
[URL: Setting <a://example.net>.protocol = 'B' Upper-case ASCII is lower-cased]
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <sc://x/>.host = '\x00' Non-special scheme]
|
||||
expected: FAIL
|
||||
|
||||
[<a>: Setting <http://example.net>.hash = '#foo bar']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <http://example.net/path>.host = 'example.com:8080#stuff' Stuff after a # delimiter is ignored]
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <a://example.net>.protocol = 'bé' Non-ASCII is rejected]
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <http://example.net>.username = '%c3%89té' Bytes already percent-encoded are left as-is.]
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <a:/>.pathname = '\x00\x01\t\n\r\x1f !"#$%&'()*+,-./09:;<=>?@AZ[\\\]^_`az{|}~Éé' UTF-8 percent encoding with the default encode set. Tabs and newlines are removed.]
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <mailto:me@example.net>.pathname = '/foo' Cannot-be-a-base don’t have a path]
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <file://y/>.hostname = 'loc%41lhost']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <a://example.net>.protocol = 'é' Non-ASCII is rejected]
|
||||
expected: FAIL
|
||||
|
||||
[<a>: Setting <http://example.net>.hash = '#foo"bar']
|
||||
expected: FAIL
|
||||
|
||||
[URL: Setting <a://example.net>.protocol = 'b']
|
||||
expected: FAIL
|
||||
|
||||
[<a>: Setting <a://example.net>.protocol = '' The empty string is not a valid scheme. Setter leaves the URL unchanged.]
|
||||
expected: FAIL
|
||||
|
||||
[<a>: Setting <file:///unicorn>.pathname = '//\\/' File URLs and (back)slashes]
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <file:///home/me/index.html>.password = 'secret' No host means no password]
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <http://example.net>.hash = '#foo`bar']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <a://example.net>.protocol = 'b,c' Only some punctuation is acceptable]
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <http://example.net>.password = '\x00\x01\t\n\r\x1f !"#$%&'()*+,-./09:;<=>?@AZ[\\\]^_`az{|}~Éé' UTF-8 percent encoding with the userinfo encode set.]
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <http://example.net/path>.host = 'example.com:8080?stuff' Stuff after a ? delimiter is ignored]
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <http://example.net/path>.hostname = 'example.com/stuff' Stuff after a / delimiter is ignored]
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <javascript://x/>.username = 'wario']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <http://example.net>.hash = '#foo"bar']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <http://example.net>.password = 'secret']
|
||||
expected: FAIL
|
||||
|
||||
[URL: Setting <http://example.net>.hash = '#foo>bar']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <a:/foo>.host = 'example.net' Path-only URLs can gain a host]
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <http://example.net>.host = 'example.com:8080']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <file://test/>.password = 'test']
|
||||
expected: FAIL
|
||||
|
||||
[URL: Setting <http://example.net>.hash = '#foo<bar']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <non-spec:/>.hash = 'a\x00b' Percent-encode NULLs in fragment]
|
||||
expected: FAIL
|
||||
|
||||
[<a>: Setting <http://example.net>.protocol = 'b' Can’t switch from special scheme to non-special]
|
||||
expected: FAIL
|
||||
|
||||
[URL: Setting <a://example.net>.protocol = '+b' No leading punctuation]
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <http://example.net/path>.port = '8080+2' Anything other than ASCII digit stops the port parser in a setter but is not an error]
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <http://example.net/path>.port = '8080\\stuff' Stuff after a \\ delimiter is ignored for special schemes]
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <ftp://example.net>.protocol = 'test']
|
||||
expected: FAIL
|
||||
|
||||
[URL: Setting <file://hi/x>.host = '']
|
||||
expected: FAIL
|
||||
|
||||
[<a>: Setting <ssh://me@example.net>.protocol = 'file']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <http://example.net/path>.host = 'example.com?stuff' Stuff after a ? delimiter is ignored]
|
||||
expected: FAIL
|
||||
|
||||
[<a>: Setting <ftp://example.net>.protocol = 'test']
|
||||
expected: FAIL
|
||||
|
||||
[URL: Setting <file://y/>.hostname = 'x:123']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <http://example.net/path>.port = '8080stuff2' Anything other than ASCII digit stops the port parser in a setter but is not an error]
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <http://example.net>.host = '' The empty host is not valid for special schemes]
|
||||
expected: FAIL
|
||||
|
||||
[<a>: Setting <http://test@example.net>.protocol = 'file' Can’t switch from URL containing username/password/port to file]
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <http://example.net>.hostname = '' The empty host is not valid for special schemes]
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <view-source+http://example.net/foo>.host = '' The empty host is OK for non-special schemes]
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <https://example.net>.search = '']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <a://example.net>.protocol = '' The empty string is not a valid scheme. Setter leaves the URL unchanged.]
|
||||
expected: FAIL
|
||||
|
||||
[URL: Setting <ssh://me@example.net>.protocol = 'http' Can’t switch from non-special scheme to special]
|
||||
expected: FAIL
|
||||
|
||||
[URL: Setting <http://example.net:8080>.host = 'example.com:' Port number is unchanged if not specified]
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <http://example.net/>.host = '[::1.2.\]']
|
||||
expected: FAIL
|
||||
|
||||
[<a>: Setting <ssh://me@example.net>.protocol = 'https']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <http://example.net/path>.port = '8080#stuff' Stuff after a # delimiter is ignored]
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <https://example.net>.host = 'example.com:443' Default port number is removed]
|
||||
expected: FAIL
|
||||
|
||||
[<a>: Setting <a:/>.hash = '\x00\x01\t\n\r\x1f !"#$%&'()*+,-./09:;<=>?@AZ[\\\]^_`az{|}~Éé' Simple percent-encoding; tabs and newlines are removed]
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <https://example.net?lang=en-US#nav>.search = '']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <http://example.net/path>.port = '65535' Port numbers are 16 bit integers]
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <file://hi/path>.protocol = 's']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <mailto:me@example.net>.hostname = 'example.com' Cannot-be-a-base means no host]
|
||||
expected: FAIL
|
||||
|
||||
[URL: Setting <a://example.net>.protocol = '' The empty string is not a valid scheme. Setter leaves the URL unchanged.]
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <http://example.net/>.host = '[google.com\]' Broken IPv6]
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <view-source+http://example.net/path>.hostname = 'example.com\\stuff' \\ is not a delimiter for non-special schemes, but still forbidden in hosts]
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <a:/>.hash = '\x00\x01\t\n\r\x1f !"#$%&'()*+,-./09:;<=>?@AZ[\\\]^_`az{|}~Éé' Simple percent-encoding; tabs and newlines are removed]
|
||||
expected: FAIL
|
||||
|
||||
[URL: Setting <sc://x/>.hostname = '\x00' Non-special scheme]
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <a://example.net>.protocol = '0b' No leading digit]
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <sc://test:12/>.host = '']
|
||||
expected: FAIL
|
||||
|
||||
[URL: Setting <ssh://me@example.net>.protocol = 'https']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <sc://example.net>.pathname = '?' ? needs to be encoded, non-special scheme]
|
||||
expected: FAIL
|
||||
|
||||
[URL: Setting <sc://test@test/>.hostname = '']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <http://example.net/path>.host = 'example.com:65536' Port numbers are 16 bit integers, overflowing is an error. Hostname is still set, though.]
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <http://test@example.net>.protocol = 'file' Can’t switch from URL containing username/password/port to file]
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <http://:secret@example.net>.password = '']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <a:/foo>.hostname = 'example.net' Path-only URLs can gain a host]
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <http://example.net>.password = '%c3%89té' Bytes already percent-encoded are left as-is.]
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <sc://x/>.hostname = '/']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <https://example.net?lang=en-US#nav>.hash = '#']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <http://example.net>.host = '[::0:01\]:2' IPv6 address syntax is normalized]
|
||||
expected: FAIL
|
||||
|
||||
[URL: Setting <sc://test@test/>.host = '']
|
||||
expected: FAIL
|
||||
|
||||
[<a>: Setting <sc://test@test/>.hostname = '']
|
||||
expected: FAIL
|
||||
|
||||
[URL: Setting <a:/>.hash = '\x00\x01\t\n\r\x1f !"#$%&'()*+,-./09:;<=>?@AZ[\\\]^_`az{|}~Éé' Simple percent-encoding; tabs and newlines are removed]
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <http://example.net/path>.host = 'example.com:8080/stuff' Stuff after a / delimiter is ignored]
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <view-source+http://example.net/home?lang=fr#nav>.pathname = '\\a\\%2E\\b\\%2e.\\c' \\ is *not* a segment delimiter for non-'special' URLs]
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <sc://x/>.host = '@']
|
||||
expected: FAIL
|
||||
|
||||
[<a>: Setting <non-spec:/>.hash = 'a\x00b' Percent-encode NULLs in fragment]
|
||||
expected: FAIL
|
||||
|
||||
[URL: Setting <a://example.net>.protocol = 'b,c' Only some punctuation is acceptable]
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <http://example.net>.hash = '#foo<bar']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <ssh://me@example.net>.protocol = 'file']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <mailto:me@example.net>.protocol = 'http' Cannot-be-a-base URL doesn’t have a host, but URL in a special scheme must.]
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <https://example.net?lang=en-US>.hash = '##nav']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <file://y/>.host = 'loc%41lhost']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <http://me:secret@example.net>.password = '']
|
||||
expected: FAIL
|
||||
|
||||
[URL: Setting <http://test@example.net>.protocol = 'file' Can’t switch from URL containing username/password/port to file]
|
||||
expected: FAIL
|
||||
|
||||
[URL: Setting <http://example.net>.hash = '#foo bar']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <https://example.net#nav>.pathname = '../home']
|
||||
expected: FAIL
|
||||
|
||||
[<a>: Setting <file://y/>.host = 'x:123']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <a://example.net>.protocol = 'bC0+-.']
|
||||
expected: FAIL
|
||||
|
||||
[<a>: Setting <https://example.net>.protocol = 's']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <sc://x/>.host = '\r']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <https://example.net>.protocol = 's']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <sc://test@test/>.host = '']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <sc://x/>.host = '#']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <http://example.net/>.hostname = '[::1.\]']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <sc:///>.password = 'x']
|
||||
expected: FAIL
|
||||
|
||||
[<a>: Setting <a://example.net>.protocol = 'é' Non-ASCII is rejected]
|
||||
expected: FAIL
|
||||
|
||||
[<a>: Setting <file://hi/x>.host = '']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <http://example.net/path>.host = 'example.com:8080+2' Anything other than ASCII digit stops the port parser in a setter but is not an error]
|
||||
expected: FAIL
|
||||
|
||||
[URL: Setting <a://example.net>.protocol = 'bC0+-.']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <a://example.net>.protocol = 'b']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <javascript://x/>.port = '12']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <sc:///>.username = 'x']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <sc://example.net>.pathname = '#' # needs to be encoded, non-special scheme]
|
||||
expected: FAIL
|
||||
|
||||
[URL: Setting <https://example.net>.protocol = 's']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <http://example.net:8080/path>.port = '65536' Port numbers are 16 bit integers, overflowing is an error]
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <http://example.net>.host = 'example.com:80' Default port number is removed]
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <https://example.net?lang=en-US#nav>.search = 'lang=fr']
|
||||
expected: FAIL
|
||||
|
||||
[<a>: Setting <sc://test@test/>.host = '']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <mailto:me@example.net>.host = 'example.com' Cannot-be-a-base means no host]
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <sc://x/>.host = 'ß']
|
||||
expected: FAIL
|
||||
|
||||
[<a>: Setting <sc://test:12/>.hostname = '']
|
||||
expected: FAIL
|
||||
|
||||
[<a>: Setting <file://monkey/>.pathname = '\\\\' File URLs and (back)slashes]
|
||||
expected: FAIL
|
||||
|
||||
[URL: Setting <file://monkey/>.pathname = '\\\\' File URLs and (back)slashes]
|
||||
expected: FAIL
|
||||
|
||||
[URL: Setting <http://example.net>.protocol = 'b' Can’t switch from special scheme to non-special]
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <file://localhost/>.port = '12']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <http://example.net>.username = '\x00\x01\t\n\r\x1f !"#$%&'()*+,-./09:;<=>?@AZ[\\\]^_`az{|}~Éé' UTF-8 percent encoding with the userinfo encode set.]
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <https://example.net#nav>.hash = 'main']
|
||||
expected: FAIL
|
||||
|
||||
[<a>: Setting <sc://x/>.host = ' ']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <sc:///>.port = '12']
|
||||
expected: FAIL
|
||||
|
||||
[<a>: Setting <http://example.net>.hash = '#foo`bar']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <http://example.net/path>.hostname = 'example.com:8080' Stuff after a : delimiter is ignored]
|
||||
expected: FAIL
|
||||
|
||||
[URL: Setting <sc://test:12/>.hostname = '']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <http://example.net/path>.hostname = 'example.com#stuff' Stuff after a # delimiter is ignored]
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <non-special://example.net:8080/path>.port = '65536' Port numbers are 16 bit integers, overflowing is an error]
|
||||
expected: FAIL
|
||||
|
||||
[URL: Setting <a://example.net>.protocol = 'bé' Non-ASCII is rejected]
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <file://monkey/>.pathname = '\\\\' File URLs and (back)slashes]
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <sc://x/>.hostname = '\n']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <a:/>.search = '\x00\x01\t\n\r\x1f !"#$%&'()*+,-./09:;<=>?@AZ[\\\]^_`az{|}~Éé' UTF-8 percent encoding with the query encode set. Tabs and newlines are removed.]
|
||||
expected: FAIL
|
||||
|
||||
[URL: Setting <ssh://me@example.net>.protocol = 'file']
|
||||
expected: FAIL
|
||||
|
||||
[URL: Setting <nonsense:///test>.protocol = 'https']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <http://example.net>.username = 'me']
|
||||
expected: FAIL
|
||||
|
||||
[URL: Setting <http://foo.com:443/>.protocol = 'https' Port is set to null if it is the default for new scheme.]
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <view-source+http://example.net/foo>.hostname = '' The empty host is OK for non-special schemes]
|
||||
expected: FAIL
|
||||
|
||||
[URL: Setting <file://hi/x>.hostname = '']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <http://example.net>.hash = '#foo bar']
|
||||
expected: FAIL
|
||||
|
||||
[<a>: Setting <a://example.net>.protocol = '0b' No leading digit]
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <http://example.net:8080>.host = 'example.com:80' Port number is removed if new port is scheme default and existing URL has a non-default port]
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <https://example.net>.hash = 'main']
|
||||
expected: FAIL
|
||||
|
||||
[<a>: Setting <file://y/>.hostname = 'x:123']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <sc://x/>.host = '\t']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <sc://x/>.host = '?']
|
||||
expected: FAIL
|
||||
|
||||
[URL: Setting <file:///unicorn>.pathname = '//monkey/..//' File URLs and (back)slashes]
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <http://example.net/path>.hostname = 'example.com?stuff' Stuff after a ? delimiter is ignored]
|
||||
expected: FAIL
|
||||
|
||||
[URL: Setting <a:/>.pathname = '\x00\x01\t\n\r\x1f !"#$%&'()*+,-./09:;<=>?@AZ[\\\]^_`az{|}~Éé' UTF-8 percent encoding with the default encode set. Tabs and newlines are removed.]
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <https://example.net#nav>.pathname = 'home']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <view-source+http://example.net/path>.host = 'example.com\\stuff' \\ is not a delimiter for non-special schemes, but still forbidden in hosts]
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <http://example.net>.pathname = '%2e%2E%c3%89té' Bytes already percent-encoded are left as-is, including %2E outside dotted segments.]
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <sc://x/>.host = ' ']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <http://example.net/path>.host = 'example.com/stuff' Stuff after a / delimiter is ignored]
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <http://example.net>.hash = '%c3%89té' Bytes already percent-encoded are left as-is]
|
||||
expected: FAIL
|
||||
|
||||
[URL: Setting <ftp://example.net>.protocol = 'test']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <http://me@example.net>.username = '']
|
||||
expected: FAIL
|
||||
|
||||
[<a>: Setting <ssh://me@example.net>.protocol = 'http' Can’t switch from non-special scheme to special]
|
||||
expected: FAIL
|
||||
|
||||
[<a>: Setting <a://example.net>.protocol = 'b,c' Only some punctuation is acceptable]
|
||||
expected: FAIL
|
||||
|
||||
[URL: Setting <gopher://example.net:1234>.protocol = 'file']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <data:text/plain,Stuff>.hostname = 'example.net' Cannot-be-a-base means no host]
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <sc://x/>.hostname = '\x00' Non-special scheme]
|
||||
expected: FAIL
|
||||
|
||||
[URL: Setting <sc://x/>.hostname = ' ']
|
||||
expected: FAIL
|
||||
|
||||
[<a>: Setting <http://example.net:8080>.host = 'example.com:' Port number is unchanged if not specified]
|
||||
expected: FAIL
|
||||
|
||||
[<a>: Setting <gopher://example.net:1234>.protocol = 'file']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <https://example.net#nav>.search = 'lang=fr']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <file://y/>.host = 'x:123']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <https://example.net?lang=en-US#nav>.search = '?']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <http://example.net>.hostname = '[::0:01\]' IPv6 address syntax is normalized]
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <http://example.net>.search = '%c3%89té' Bytes already percent-encoded are left as-is]
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <ssh://example.net>.protocol = 'file']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <http://example.net:8080>.hostname = 'example.com']
|
||||
expected: FAIL
|
||||
|
||||
[<a>: Setting <sc://x/>.hostname = ' ']
|
||||
expected: FAIL
|
||||
|
||||
[<a>: Setting <http://example.net>.hash = '#foo<bar']
|
||||
expected: FAIL
|
||||
|
||||
[URL: Setting <a://example.net>.protocol = 'é' Non-ASCII is rejected]
|
||||
expected: FAIL
|
||||
|
||||
[URL: Setting <a://example.net>.protocol = '0b' No leading digit]
|
||||
expected: FAIL
|
||||
|
||||
[<a>: Setting <sc://x/>.host = '\x00' Non-special scheme]
|
||||
expected: FAIL
|
||||
|
||||
[<a>: Setting <javascript:alert(1)>.hash = 'castle']
|
||||
expected: FAIL
|
||||
|
||||
[<a>: Setting <file://hi/path>.protocol = 's']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <file:>.protocol = 'wss']
|
||||
expected: FAIL
|
||||
|
||||
[URL: Setting <wss://x:x@example.net:1234>.protocol = 'file']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <view-source+http://example.net/path>.host = 'example.com:8080stuff2' Anything other than ASCII digit stops the port parser in a setter but is not an error]
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <http://example.net:8080>.host = 'example.com' Port number is unchanged if not specified in the new value]
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <http://example.net>.protocol = 'https:foo : bar' Stuff after the first ':' is ignored]
|
||||
expected: FAIL
|
||||
|
||||
[URL: Setting <file://y/>.hostname = 'loc%41lhost']
|
||||
expected: FAIL
|
||||
|
||||
[URL: Setting <file://y/>.host = 'loc%41lhost']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <https://example.net:4433>.port = '443' Default port number is removed]
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <http://example.net/>.hostname = '[::1.2.\]']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <a://example.net>.protocol = 'B' Upper-case ASCII is lower-cased]
|
||||
expected: FAIL
|
||||
|
||||
[<a>: Setting <a://example.net>.protocol = '+b' No leading punctuation]
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <http://example.net/path>.host = 'example.com:8080stuff2' Anything other than ASCII digit stops the port parser in a setter but is not an error]
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <http://example.net:8080>.host = 'example.com:' Port number is unchanged if not specified]
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <ssh://me@example.net>.protocol = 'http' Can’t switch from non-special scheme to special]
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <data:text/html,<p>Test>.protocol = 'view-source+data:foo : bar' Stuff after the first ':' is ignored]
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <http://example.net>.hash = '#foo>bar']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <non-base:value>.port = '12']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <sc://x/>.hostname = ' ']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <http://example.net/path>.port = '8080?stuff' Stuff after a ? delimiter is ignored]
|
||||
expected: FAIL
|
||||
|
||||
[<a>: Setting <a://example.net>.protocol = 'b']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <sc://test:12/>.hostname = '']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <http://example.net/path>.hostname = 'example.com\\stuff' Stuff after a \\ delimiter is ignored for special schemes]
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <javascript://x/>.password = 'bowser']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <sc://x/>.hostname = '\t']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <javascript:alert(1)>.protocol = 'defuse']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <http://me:secret@example.net>.username = '']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <http://example.net/>.hostname = '[::1.2.3.\]']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <https://example.net>.host = 'example.com:80' Default port number is only removed for the relevant scheme]
|
||||
expected: FAIL
|
||||
|
||||
[<a>: Setting <a://example.net>.protocol = 'bé' Non-ASCII is rejected]
|
||||
expected: FAIL
|
||||
|
||||
[URL: Setting <http://example.net>.hash = '#foo"bar']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <http://example.net/>.host = '[::1.2.3.\]']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <unix:/run/foo.socket>.username = 'me' No host means no username]
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <http://example.net/>.host = '[::1.2.3.4x\]']
|
||||
expected: FAIL
|
||||
|
||||
[URL: Setting <http://example.net>.hash = 'a\x00b' Percent-encode NULLs in fragment]
|
||||
expected: FAIL
|
||||
|
||||
[URL: Setting <http://example.net>.hash = '#foo`bar']
|
||||
expected: FAIL
|
||||
|
||||
[<a>: Setting <file://hi/x>.hostname = '']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <http://example.net:8080/path>.hostname = 'example.com:' Stuff after a : delimiter is ignored]
|
||||
expected: FAIL
|
||||
|
||||
[URL: Setting <non-spec:/>.hash = 'a\x00b' Percent-encode NULLs in fragment]
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <sc://x/>.host = '\n']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <sc://x/>.hostname = '?']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <http://example.net/path>.host = 'example.com:65535' Port numbers are 16 bit integers]
|
||||
expected: FAIL
|
||||
|
||||
[URL: Setting <sc://test:12/>.host = '']
|
||||
expected: FAIL
|
||||
|
|
@ -107,3 +107,6 @@
|
|||
[X Rendered audio for channel 5 does not equal [0,0.0626220703125,0.125030517578125,0.18695068359375,0.24810791015625,0.308319091796875,0.3673095703125,0.42486572265625,0.480743408203125,0.53472900390625,0.58660888671875,0.636199951171875,0.68328857421875,0.727691650390625,0.76922607421875,0.8077392578125...\] with an element-wise tolerance of {"absoluteThreshold":0.000030517578125,"relativeThreshold":0}.\n\tIndex\tActual\t\t\tExpected\t\tAbsError\t\tRelError\t\tTest threshold\n\t[1\]\t3.6732959747314453e-1\t6.2622070312500000e-2\t3.0470752716064453e-1\t4.8658168859649127e+0\t3.0517578125000000e-5\n\t[2\]\t6.8329977989196777e-1\t1.2503051757812500e-1\t5.5826926231384277e-1\t4.4650639949963384e+0\t3.0517578125000000e-5\n\t[3\]\t9.0373212099075317e-1\t1.8695068359375000e-1\t7.1678143739700317e-1\t3.8340669508039502e+0\t3.0517578125000000e-5\n\t[4\]\t9.9780619144439697e-1\t2.4810791015625000e-1\t7.4969828128814697e-1\t3.0216621502152523e+0\t3.0517578125000000e-5\n\t[5\]\t9.5236867666244507e-1\t3.0831909179687500e-1\t6.4404958486557007e-1\t2.0889059484187866e+0\t3.0517578125000000e-5\n\t...and 44048 more errors.\n\tMax AbsError of 1.9901288747787476e+0 at index of 25128.\n\t[25128\]\t9.9751412868499756e-1\t-9.9261474609375000e-1\t1.9901288747787476e+0\t2.0049358349858575e+0\t3.0517578125000000e-5\n\tMax RelError of Infinity at index of 12348.\n\t[12348\]\t9.5105654001235962e-1\t0.0000000000000000e+0\t9.5105654001235962e-1\tInfinity\t3.0517578125000000e-5\n]
|
||||
expected: FAIL
|
||||
|
||||
[X Rendered audio for channel 5 does not equal [0,0.0626220703125,0.125030517578125,0.18695068359375,0.24810791015625,0.308319091796875,0.3673095703125,0.42486572265625,0.480743408203125,0.53472900390625,0.58660888671875,0.636199951171875,0.68328857421875,0.727691650390625,0.76922607421875,0.8077392578125...\] with an element-wise tolerance of {"absoluteThreshold":0.000030517578125,"relativeThreshold":0}.\n\tIndex\tActual\t\t\tExpected\t\tAbsError\t\tRelError\t\tTest threshold\n\t[1\]\t3.6732959747314453e-1\t6.2622070312500000e-2\t3.0470752716064453e-1\t4.8658168859649127e+0\t3.0517578125000000e-5\n\t[2\]\t6.8329977989196777e-1\t1.2503051757812500e-1\t5.5826926231384277e-1\t4.4650639949963384e+0\t3.0517578125000000e-5\n\t[3\]\t9.0373212099075317e-1\t1.8695068359375000e-1\t7.1678143739700317e-1\t3.8340669508039502e+0\t3.0517578125000000e-5\n\t[4\]\t9.9780619144439697e-1\t2.4810791015625000e-1\t7.4969828128814697e-1\t3.0216621502152523e+0\t3.0517578125000000e-5\n\t[5\]\t9.5236867666244507e-1\t3.0831909179687500e-1\t6.4404958486557007e-1\t2.0889059484187866e+0\t3.0517578125000000e-5\n\t...and 40524 more errors.\n\tMax AbsError of 1.9999794363975525e+0 at index of 37272.\n\t[37272\]\t9.9997943639755249e-1\t-1.0000000000000000e+0\t1.9999794363975525e+0\t1.9999794363975525e+0\t3.0517578125000000e-5\n\tMax RelError of Infinity at index of 12348.\n\t[12348\]\t9.5105654001235962e-1\t0.0000000000000000e+0\t9.5105654001235962e-1\tInfinity\t3.0517578125000000e-5\n]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -0,0 +1,5 @@
|
|||
[017.html]
|
||||
expected: TIMEOUT
|
||||
[origin of the script that invoked the method, about:blank]
|
||||
expected: TIMEOUT
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
[xrReferenceSpace_relationships.https.html]
|
||||
expected: ERROR
|
||||
[Bounded space, viewer space, local and local-floor space have correct poses w.r.t. each other]
|
||||
expected: TIMEOUT
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
[2d.shadow.filter.value.html]
|
||||
[test if ctx.filter works correctly]
|
||||
expected: FAIL
|
||||
|
File diff suppressed because it is too large
Load diff
|
@ -0,0 +1,4 @@
|
|||
[hit-test-floats-003.html]
|
||||
[Miss float below something else]
|
||||
expected: FAIL
|
||||
|
|
@ -2,6 +2,3 @@
|
|||
[Hit test intersecting scaled box]
|
||||
expected: FAIL
|
||||
|
||||
[Hit test within unscaled box]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,2 +1,2 @@
|
|||
[no-transition-from-ua-to-blocking-stylesheet.html]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
|
|
@ -2,6 +2,3 @@
|
|||
[listeners are called when <iframe> is resized]
|
||||
expected: FAIL
|
||||
|
||||
[listeners are called correct number of times]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
[elementFromPoint-001.html]
|
||||
[CSSOM View - 5 - extensions to the Document interface]
|
||||
expected: FAIL
|
||||
|
|
@ -21,6 +21,3 @@
|
|||
[test the top of layer]
|
||||
expected: FAIL
|
||||
|
||||
[test some point of the element: top left corner]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -2,3 +2,6 @@
|
|||
[elementsFromPoint on the root document for points in iframe elements]
|
||||
expected: FAIL
|
||||
|
||||
[elementsFromPoint on inner documents]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -719,5 +719,38 @@
|
|||
[Element interface: operation before((Node or DOMString)...)]
|
||||
expected: FAIL
|
||||
|
||||
[Element interface: element must inherit property "replaceChildren((Node or DOMString)...)" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[Document interface: calling replaceChildren((Node or DOMString)...) on xmlDoc with too few arguments must throw TypeError]
|
||||
expected: FAIL
|
||||
|
||||
[Document interface: calling replaceChildren((Node or DOMString)...) on new Document() with too few arguments must throw TypeError]
|
||||
expected: FAIL
|
||||
|
||||
[DocumentFragment interface: document.createDocumentFragment() must inherit property "replaceChildren((Node or DOMString)...)" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[DocumentFragment interface: operation replaceChildren((Node or DOMString)...)]
|
||||
expected: FAIL
|
||||
|
||||
[Element interface: operation replaceChildren((Node or DOMString)...)]
|
||||
expected: FAIL
|
||||
|
||||
[Document interface: operation replaceChildren((Node or DOMString)...)]
|
||||
expected: FAIL
|
||||
|
||||
[Element interface: calling replaceChildren((Node or DOMString)...) on element with too few arguments must throw TypeError]
|
||||
expected: FAIL
|
||||
|
||||
[Document interface: new Document() must inherit property "replaceChildren((Node or DOMString)...)" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[DocumentFragment interface: calling replaceChildren((Node or DOMString)...) on document.createDocumentFragment() with too few arguments must throw TypeError]
|
||||
expected: FAIL
|
||||
|
||||
[Document interface: xmlDoc must inherit property "replaceChildren((Node or DOMString)...)" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
|
||||
[idlharness.window.html?include=Node]
|
||||
|
|
|
@ -312,24 +312,18 @@
|
|||
[fetch(): separate response Content-Type: text/plain ]
|
||||
expected: NOTRUN
|
||||
|
||||
[<iframe>: combined response Content-Type: text/html;x=" text/plain]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: combined response Content-Type: text/html;" text/plain]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: combined response Content-Type: text/html;charset=gbk text/plain text/html]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: separate response Content-Type: text/html */*;charset=gbk]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: combined response Content-Type: text/plain;charset=gbk text/html]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: separate response Content-Type: text/html;x=" text/plain]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: combined response Content-Type: text/html;" \\" text/plain]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: combined response Content-Type: text/html */*;charset=gbk]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: separate response Content-Type: text/html;" \\" text/plain]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: separate response Content-Type: text/plain */*;charset=gbk]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -56,3 +56,9 @@
|
|||
[separate text/javascript x/x]
|
||||
expected: FAIL
|
||||
|
||||
[separate text/javascript;charset=windows-1252 error text/javascript]
|
||||
expected: FAIL
|
||||
|
||||
[separate text/javascript;charset=windows-1252 text/javascript]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -11,6 +11,3 @@
|
|||
[X-Content-Type-Options%3A%20nosniff%2C%2C%40%23%24%23%25%25%26%5E%26%5E*()()11!]
|
||||
expected: FAIL
|
||||
|
||||
[Content-Type-Options%3A%20nosniff]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
[traverse_the_history_1.html]
|
||||
[Multiple history traversals from the same task]
|
||||
expected: FAIL
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
[traverse_the_history_4.html]
|
||||
[traverse_the_history_5.html]
|
||||
[Multiple history traversals, last would be aborted]
|
||||
expected: FAIL
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
[cross-origin-objects-on-new-window.html]
|
||||
type: testharness
|
||||
expected: TIMEOUT
|
|
@ -1,4 +1,5 @@
|
|||
[supported-elements.html]
|
||||
expected: TIMEOUT
|
||||
[Contenteditable element should support autofocus]
|
||||
expected: FAIL
|
||||
|
||||
|
@ -9,7 +10,7 @@
|
|||
expected: FAIL
|
||||
|
||||
[Area element should support autofocus]
|
||||
expected: FAIL
|
||||
expected: TIMEOUT
|
||||
|
||||
[Host element with delegatesFocus should support autofocus]
|
||||
expected: FAIL
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
[iframe_sandbox_popups_escaping-3.html]
|
||||
type: testharness
|
||||
expected: TIMEOUT
|
||||
[Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used]
|
||||
expected: FAIL
|
||||
expected: TIMEOUT
|
||||
|
||||
|
|
|
@ -0,0 +1,2 @@
|
|||
[script-onerror-insertion-point-2.html]
|
||||
expected: TIMEOUT
|
|
@ -5,5 +5,5 @@
|
|||
expected: TIMEOUT
|
||||
|
||||
[The entry settings object while executing the compiled callback via Web IDL's invoke must be that of the node document]
|
||||
expected: FAIL
|
||||
expected: TIMEOUT
|
||||
|
||||
|
|
|
@ -165,3 +165,12 @@
|
|||
[Parsing: <gopher:/example.com/> against <http://example.org/foo/bar>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: <http://example.org/test?a#b\x00c> against <about:blank>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: <non-spec://example.org/test?a#b\x00c> against <about:blank>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: <non-spec:/test?a#b\x00c> against <about:blank>]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -165,3 +165,12 @@
|
|||
[Parsing: <gopher:/example.com/> against <http://example.org/foo/bar>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: <http://example.org/test?a#b\x00c> against <about:blank>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: <non-spec://example.org/test?a#b\x00c> against <about:blank>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: <non-spec:/test?a#b\x00c> against <about:blank>]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -156,3 +156,12 @@
|
|||
[Parsing: <gopher:/example.com/> against <http://example.org/foo/bar>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: <http://example.org/test?a#b\x00c> against <about:blank>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: <non-spec://example.org/test?a#b\x00c> against <about:blank>]
|
||||
expected: FAIL
|
||||
|
||||
[Parsing: <non-spec:/test?a#b\x00c> against <about:blank>]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1053,3 +1053,30 @@
|
|||
[<area>: Setting <http://example.net>.host = '[2001:db8::2\]:4002' IPv6 literal address with port, crbug.com/1012416]
|
||||
expected: FAIL
|
||||
|
||||
[<a>: Setting <http://example.net>.hash = 'a\x00b' Percent-encode NULLs in fragment]
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <http://example.net>.hash = 'a\x00b' Percent-encode NULLs in fragment]
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <non-spec:/>.hash = 'a\x00b' Percent-encode NULLs in fragment]
|
||||
expected: FAIL
|
||||
|
||||
[<a>: Setting <a:/>.hash = '\x00\x01\t\n\r\x1f !"#$%&'()*+,-./09:;<=>?@AZ[\\\]^_`az{|}~Éé' Simple percent-encoding; tabs and newlines are removed]
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <a:/>.hash = '\x00\x01\t\n\r\x1f !"#$%&'()*+,-./09:;<=>?@AZ[\\\]^_`az{|}~Éé' Simple percent-encoding; tabs and newlines are removed]
|
||||
expected: FAIL
|
||||
|
||||
[URL: Setting <a:/>.hash = '\x00\x01\t\n\r\x1f !"#$%&'()*+,-./09:;<=>?@AZ[\\\]^_`az{|}~Éé' Simple percent-encoding; tabs and newlines are removed]
|
||||
expected: FAIL
|
||||
|
||||
[<a>: Setting <non-spec:/>.hash = 'a\x00b' Percent-encode NULLs in fragment]
|
||||
expected: FAIL
|
||||
|
||||
[URL: Setting <http://example.net>.hash = 'a\x00b' Percent-encode NULLs in fragment]
|
||||
expected: FAIL
|
||||
|
||||
[URL: Setting <non-spec:/>.hash = 'a\x00b' Percent-encode NULLs in fragment]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -176,3 +176,6 @@
|
|||
[X Rendered audio for channel 5 does not equal [0,0.0626220703125,0.125030517578125,0.18695068359375,0.24810791015625,0.308319091796875,0.3673095703125,0.42486572265625,0.480743408203125,0.53472900390625,0.58660888671875,0.636199951171875,0.68328857421875,0.727691650390625,0.76922607421875,0.8077392578125...\] with an element-wise tolerance of {"absoluteThreshold":0.000030517578125,"relativeThreshold":0}.\n\tIndex\tActual\t\t\tExpected\t\tAbsError\t\tRelError\t\tTest threshold\n\t[1\]\t3.6732959747314453e-1\t6.2622070312500000e-2\t3.0470752716064453e-1\t4.8658168859649127e+0\t3.0517578125000000e-5\n\t[2\]\t6.8329977989196777e-1\t1.2503051757812500e-1\t5.5826926231384277e-1\t4.4650639949963384e+0\t3.0517578125000000e-5\n\t[3\]\t9.0373212099075317e-1\t1.8695068359375000e-1\t7.1678143739700317e-1\t3.8340669508039502e+0\t3.0517578125000000e-5\n\t[4\]\t9.9780619144439697e-1\t2.4810791015625000e-1\t7.4969828128814697e-1\t3.0216621502152523e+0\t3.0517578125000000e-5\n\t[5\]\t9.5236867666244507e-1\t3.0831909179687500e-1\t6.4404958486557007e-1\t2.0889059484187866e+0\t3.0517578125000000e-5\n\t...and 44048 more errors.\n\tMax AbsError of 1.9901288747787476e+0 at index of 25128.\n\t[25128\]\t9.9751412868499756e-1\t-9.9261474609375000e-1\t1.9901288747787476e+0\t2.0049358349858575e+0\t3.0517578125000000e-5\n\tMax RelError of Infinity at index of 12348.\n\t[12348\]\t9.5105654001235962e-1\t0.0000000000000000e+0\t9.5105654001235962e-1\tInfinity\t3.0517578125000000e-5\n]
|
||||
expected: FAIL
|
||||
|
||||
[X Rendered audio for channel 5 does not equal [0,0.0626220703125,0.125030517578125,0.18695068359375,0.24810791015625,0.308319091796875,0.3673095703125,0.42486572265625,0.480743408203125,0.53472900390625,0.58660888671875,0.636199951171875,0.68328857421875,0.727691650390625,0.76922607421875,0.8077392578125...\] with an element-wise tolerance of {"absoluteThreshold":0.000030517578125,"relativeThreshold":0}.\n\tIndex\tActual\t\t\tExpected\t\tAbsError\t\tRelError\t\tTest threshold\n\t[1\]\t3.6732959747314453e-1\t6.2622070312500000e-2\t3.0470752716064453e-1\t4.8658168859649127e+0\t3.0517578125000000e-5\n\t[2\]\t6.8329977989196777e-1\t1.2503051757812500e-1\t5.5826926231384277e-1\t4.4650639949963384e+0\t3.0517578125000000e-5\n\t[3\]\t9.0373212099075317e-1\t1.8695068359375000e-1\t7.1678143739700317e-1\t3.8340669508039502e+0\t3.0517578125000000e-5\n\t[4\]\t9.9780619144439697e-1\t2.4810791015625000e-1\t7.4969828128814697e-1\t3.0216621502152523e+0\t3.0517578125000000e-5\n\t[5\]\t9.5236867666244507e-1\t3.0831909179687500e-1\t6.4404958486557007e-1\t2.0889059484187866e+0\t3.0517578125000000e-5\n\t...and 40524 more errors.\n\tMax AbsError of 1.9999794363975525e+0 at index of 37272.\n\t[37272\]\t9.9997943639755249e-1\t-1.0000000000000000e+0\t1.9999794363975525e+0\t1.9999794363975525e+0\t3.0517578125000000e-5\n\tMax RelError of Infinity at index of 12348.\n\t[12348\]\t9.5105654001235962e-1\t0.0000000000000000e+0\t9.5105654001235962e-1\tInfinity\t3.0517578125000000e-5\n]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,4 +0,0 @@
|
|||
[invalid_capabilities.py]
|
||||
[test_invalid_always_match[None\]]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
[017.html]
|
||||
expected: TIMEOUT
|
||||
[origin of the script that invoked the method, about:blank]
|
||||
expected: TIMEOUT
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
[xrReferenceSpace_relationships.https.html]
|
||||
expected: ERROR
|
||||
[Bounded space, viewer space, local and local-floor space have correct poses w.r.t. each other]
|
||||
expected: TIMEOUT
|
||||
|
|
@ -1,13 +1,13 @@
|
|||
<!DOCTYPE html>
|
||||
<!-- DO NOT EDIT! This test has been generated by /2dcontext/tools/gentest.py. -->
|
||||
<title>Canvas test: 2d.filter.value</title>
|
||||
<title>Canvas test: 2d.shadow.filter.value</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/2dcontext/resources/canvas-tests.js"></script>
|
||||
<link rel="stylesheet" href="/2dcontext/resources/canvas-tests.css">
|
||||
<body class="show_output">
|
||||
|
||||
<h1>2d.filter.value</h1>
|
||||
<h1>2d.shadow.filter.value</h1>
|
||||
<p class="desc">test if ctx.filter works correctly</p>
|
||||
|
||||
|
|
@ -10329,7 +10329,7 @@
|
|||
@assert Math.round(rect.top) === -8;
|
||||
@assert Math.round(rect.left) === 200;
|
||||
|
||||
- name: 2d.filter.value
|
||||
- name: 2d.shadow.filter.value
|
||||
desc: test if ctx.filter works correctly
|
||||
testing:
|
||||
- 2d.filter.value
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// META: global=worker
|
||||
// META: global=window,worker
|
||||
|
||||
'use strict';
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// META: global=worker
|
||||
// META: global=window,worker
|
||||
// META: script=pako/pako_inflate.min.js
|
||||
// META: timeout=long
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// META: global=worker
|
||||
// META: global=window,worker
|
||||
// META: script=pako/pako_inflate.min.js
|
||||
// META: timeout=long
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// META: global=worker
|
||||
// META: global=window,worker
|
||||
|
||||
'use strict';
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// META: global=worker
|
||||
// META: global=window,worker
|
||||
// META: script=pako/pako_inflate.min.js
|
||||
// META: timeout=long
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// META: global=worker
|
||||
// META: global=window,worker
|
||||
|
||||
'use strict';
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// META: global=worker
|
||||
// META: global=window,worker
|
||||
|
||||
'use strict';
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// META: global=worker
|
||||
// META: global=window,worker
|
||||
|
||||
'use strict';
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// META: global=worker
|
||||
// META: global=window,worker
|
||||
|
||||
'use strict';
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// META global=worker
|
||||
// META global=window,worker
|
||||
|
||||
// This test checks that DecompressionStream behaves according to the standard
|
||||
// when the input is corrupted. To avoid a combinatorial explosion in the
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// META: global=worker
|
||||
// META: global=window,worker
|
||||
|
||||
'use strict';
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// META: global=worker
|
||||
// META: global=window,worker
|
||||
|
||||
'use strict';
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// META: global=worker
|
||||
// META: global=window,worker
|
||||
// META: timeout=long
|
||||
//
|
||||
// This test isn't actually slow usually, but sometimes it takes >10 seconds on
|
||||
|
|
|
@ -0,0 +1,40 @@
|
|||
<!DOCTYPE html>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<meta http-equiv="Content-Security-Policy" content="frame-src 'none'">
|
||||
|
||||
<script>
|
||||
const iframe_url = new URL("./support/empty.html", location.href);
|
||||
|
||||
// Regression test for: https://crbug.com/1064676
|
||||
promise_test(async (t) => {
|
||||
await new Promise(r => window.onload = r);
|
||||
|
||||
let url = `javascript:
|
||||
|
||||
window.addEventListener('securitypolicyviolation', e => {
|
||||
parent.postMessage({
|
||||
originalPolicy: e.originalPolicy,
|
||||
blockedURI: e.blockedURI,
|
||||
});
|
||||
});
|
||||
|
||||
let iframe = document.createElement('iframe');
|
||||
iframe.src = '${iframe_url}';
|
||||
document.body.appendChild(iframe);
|
||||
|
||||
`;
|
||||
|
||||
let iframe = document.createElement('iframe');
|
||||
iframe.src = encodeURI(url.replace(/\n/g, ""));
|
||||
|
||||
let violation = new Promise(r => window.addEventListener("message", r));
|
||||
document.body.appendChild(iframe);
|
||||
let {data} = await violation;
|
||||
|
||||
assert_equals(data.originalPolicy, "frame-src 'none'");
|
||||
assert_equals(data.blockedURI, iframe_url.toString());
|
||||
|
||||
}, "<iframe src='javascript:...'>'s inherits policy (dynamically inserted <iframe> is blocked)");
|
||||
|
||||
</script>
|
|
@ -0,0 +1,25 @@
|
|||
<!DOCTYPE HTML>
|
||||
<html>
|
||||
<head>
|
||||
<title>Test that report-to ignores tokens after the first one</title>
|
||||
<script src='/resources/testharness.js'></script>
|
||||
<script src='/resources/testharnessreport.js'></script>
|
||||
</head>
|
||||
<body>
|
||||
<script>
|
||||
var t1 = async_test("Test that image does not load");
|
||||
async_test(function(t2) {
|
||||
window.addEventListener("securitypolicyviolation", t2.step_func(function(e) {
|
||||
assert_equals(e.blockedURI, "{{location[scheme]}}://{{location[host]}}/content-security-policy/support/fail.png");
|
||||
assert_equals(e.violatedDirective, "img-src");
|
||||
t2.done();
|
||||
}));
|
||||
}, "Event is fired");
|
||||
</script>
|
||||
<img src='/content-security-policy/support/fail.png'
|
||||
onload='t1.unreached_func("The image should not have loaded");'
|
||||
onerror='t1.done();'>
|
||||
<!-- The second token of the report-to directive should be ignored, since the directive only supports one token. So we should not have any reports sent to this endpoint. -->
|
||||
<script async defer src='../support/checkReport.sub.js?reportExists=false'></script>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,7 @@
|
|||
Expires: Mon, 26 Jul 1997 05:00:00 GMT
|
||||
Cache-Control: no-store, no-cache, must-revalidate
|
||||
Cache-Control: post-check=0, pre-check=0, false
|
||||
Pragma: no-cache
|
||||
Set-Cookie: reporting-api-report-to-only-sends-reports-to-first-endpoint={{$id:uuid()}}; Path=/content-security-policy/reporting-api
|
||||
Content-Security-Policy: script-src 'self' 'unsafe-inline'; img-src 'none'; report-to csp-group csp-group-2
|
||||
Report-To: { "group": "csp-group", "max_age": 10886400, "endpoints": [{ "url": "https://{{host}}:{{ports[https][0]}}/content-security-policy/support/report.py?op=put&reportID={{uuid()}}" }] }, { "group": "csp-group-2", "max_age": 10886400, "endpoints": [{ "url": "https://{{host}}:{{ports[https][0]}}/content-security-policy/support/report.py?op=put&reportID={{$id}}" }] }
|
|
@ -20,6 +20,6 @@
|
|||
onload='t1.unreached_func("The image should not have loaded");'
|
||||
onerror='t1.done();'>
|
||||
<!-- report-to overrides the report-uri so the report goes to a different endpoint and we should not have any reports sent to this endpoint -->
|
||||
<script async defer src='../support/checkReport.sub.js?reportExists=false></script>
|
||||
<script async defer src='../support/checkReport.sub.js?reportExists=false'></script>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -20,6 +20,6 @@
|
|||
onload='t1.unreached_func("The image should not have loaded");'
|
||||
onerror='t1.done();'>
|
||||
<!-- report-to overrides the report-uri so the report goes to a different endpoint and we should not have any reports sent to this endpoint -->
|
||||
<script async defer src='../support/checkReport.sub.js?reportExists=false></script>
|
||||
<script async defer src='../support/checkReport.sub.js?reportExists=false'></script>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -41,69 +41,69 @@
|
|||
<body onload="checkLayout('.grid')">
|
||||
|
||||
<div class="grid gridAutoFillFixed paddingTop max-content" data-expected-width="104" data-expected-height="34">
|
||||
<div class="item" style="grid-column: 1 / -1; width: 100px;" data-expected-width="100" data-expected-height="20" data-expected-x="0" data-expected-y="0"></div>
|
||||
<div class="abs" style="grid-column: 1 / 2; background: purple;" data-expected-width="20" data-expected-height="5" data-expected-x="0" data-expected-y="0"></div>
|
||||
<div class="abs" style="grid-column: 2 / 3; background: orange;" data-expected-width="20" data-expected-height="5" data-expected-x="20" data-expected-y="0"></div>
|
||||
<div class="abs" style="grid-column: 3 / 4; background: yellow;" data-expected-width="20" data-expected-height="5" data-expected-x="40" data-expected-y="0"></div>
|
||||
<div class="abs" style="grid-column: 4 / 5; background: green;" data-expected-width="40" data-expected-height="5" data-expected-x="60" data-expected-y="0"></div>
|
||||
<div class="item" style="grid-column: 1 / -1; width: 100px;" data-expected-width="100" data-expected-height="20" data-offset-x="0" data-offset-y="10"></div>
|
||||
<div class="abs" style="grid-column: 1 / 2; background: purple;" data-expected-width="20" data-expected-height="5" data-offset-x="0" data-offset-y="0"></div>
|
||||
<div class="abs" style="grid-column: 2 / 3; background: orange;" data-expected-width="20" data-expected-height="5" data-offset-x="20" data-offset-y="0"></div>
|
||||
<div class="abs" style="grid-column: 3 / 4; background: yellow;" data-expected-width="20" data-expected-height="5" data-offset-x="40" data-offset-y="0"></div>
|
||||
<div class="abs" style="grid-column: 4 / 5; background: green;" data-expected-width="40" data-expected-height="5" data-offset-x="60" data-offset-y="0"></div>
|
||||
</div>
|
||||
|
||||
<div class="grid gridAutoFillFixed paddingTop min-content" data-expected-width="104" data-expected-height="34">
|
||||
<div class="item" style="grid-column: 1 / -1; width: 100px;" data-expected-width="100" data-expected-height="20" data-expected-x="0" data-expected-y="0"></div>
|
||||
<div class="abs" style="grid-column: 1 / 2; background: purple;" data-expected-width="20" data-expected-height="5" data-expected-x="0" data-expected-y="0"></div>
|
||||
<div class="abs" style="grid-column: 2 / 3; background: orange;" data-expected-width="20" data-expected-height="5" data-expected-x="20" data-expected-y="0"></div>
|
||||
<div class="abs" style="grid-column: 3 / 4; background: yellow;" data-expected-width="20" data-expected-height="5" data-expected-x="40" data-expected-y="0"></div>
|
||||
<div class="abs" style="grid-column: 4 / 5; background: green;" data-expected-width="40" data-expected-height="5" data-expected-x="60" data-expected-y="0"></div>
|
||||
<div class="item" style="grid-column: 1 / -1; width: 100px;" data-expected-width="100" data-expected-height="20" data-offset-x="0" data-offset-y="10"></div>
|
||||
<div class="abs" style="grid-column: 1 / 2; background: purple;" data-expected-width="20" data-expected-height="5" data-offset-x="0" data-offset-y="0"></div>
|
||||
<div class="abs" style="grid-column: 2 / 3; background: orange;" data-expected-width="20" data-expected-height="5" data-offset-x="20" data-offset-y="0"></div>
|
||||
<div class="abs" style="grid-column: 3 / 4; background: yellow;" data-expected-width="20" data-expected-height="5" data-offset-x="40" data-offset-y="0"></div>
|
||||
<div class="abs" style="grid-column: 4 / 5; background: green;" data-expected-width="40" data-expected-height="5" data-offset-x="60" data-offset-y="0"></div>
|
||||
</div>
|
||||
|
||||
<div class="grid gridAutoFillAuto paddingTop max-content" data-expected-width="104" data-expected-height="34">
|
||||
<div class="item" style="grid-column: 1 / -1; width: 100px;" data-expected-width="100" data-expected-height="20" data-expected-x="0" data-expected-y="0"></div>
|
||||
<div class="abs" style="grid-column: 1 / 2; background: purple;" data-expected-width="10" data-expected-height="5" data-expected-x="0" data-expected-y="0"></div>
|
||||
<div class="abs" style="grid-column: 2 / 3; background: orange;" data-expected-width="10" data-expected-height="5" data-expected-x="20" data-expected-y="0"></div>
|
||||
<div class="abs" style="grid-column: 3 / 4; background: yellow;" data-expected-width="10" data-expected-height="5" data-expected-x="40" data-expected-y="0"></div>
|
||||
<div class="abs" style="grid-column: 4 / 5; background: green;" data-expected-width="10" data-expected-height="5" data-expected-x="60" data-expected-y="0"></div>
|
||||
<div class="item" style="grid-column: 1 / -1; width: 100px;" data-expected-width="100" data-expected-height="20" data-offset-x="0" data-offset-y="10"></div>
|
||||
<div class="abs" style="grid-column: 1 / 2; background: purple;" data-expected-width="10" data-expected-height="5" data-offset-x="0" data-offset-y="0"></div>
|
||||
<div class="abs" style="grid-column: 2 / 3; background: orange;" data-expected-width="10" data-expected-height="5" data-offset-x="10" data-offset-y="0"></div>
|
||||
<div class="abs" style="grid-column: 3 / 4; background: yellow;" data-expected-width="10" data-expected-height="5" data-offset-x="20" data-offset-y="0"></div>
|
||||
<div class="abs" style="grid-column: 4 / 5; background: green;" data-expected-width="10" data-expected-height="5" data-offset-x="30" data-offset-y="0"></div>
|
||||
</div>
|
||||
|
||||
<div class="grid gridAutoFillAuto paddingTop min-content" data-expected-width="74" data-expected-height="34">
|
||||
<div class="item" style="grid-column: 1 / -1; width: 100px;" data-expected-width="100" data-expected-height="20" data-expected-x="0" data-expected-y="0"></div>
|
||||
<div class="abs" style="grid-column: 1 / 2; background: purple;" data-expected-width="10" data-expected-height="5" data-expected-x="0" data-expected-y="0"></div>
|
||||
<div class="abs" style="grid-column: 2 / 3; background: orange;" data-expected-width="60" data-expected-height="5" data-expected-x="20" data-expected-y="0"></div>
|
||||
<div class="abs" style="grid-column: 3 / 4; background: yellow;" data-expected-width="0" data-expected-height="5" data-expected-x="40" data-expected-y="0"></div>
|
||||
<div class="abs" style="grid-column: 4 / 5; background: green;" data-expected-width="70" data-expected-height="5" data-expected-x="60" data-expected-y="0"></div>
|
||||
<div class="item" style="grid-column: 1 / -1; width: 100px;" data-expected-width="100" data-expected-height="20" data-offset-x="0" data-offset-y="10"></div>
|
||||
<div class="abs" style="grid-column: 1 / 2; background: purple;" data-expected-width="10" data-expected-height="5" data-offset-x="0" data-offset-y="0"></div>
|
||||
<div class="abs" style="grid-column: 2 / 3; background: orange;" data-expected-width="60" data-expected-height="5" data-offset-x="10" data-offset-y="0"></div>
|
||||
<div class="abs" style="grid-column: 3 / 4; background: yellow;" data-expected-width="0" data-expected-height="5" data-offset-x="70" data-offset-y="0"></div>
|
||||
<div class="abs" style="grid-column: 4 / 5; background: green;" data-expected-width="70" data-expected-height="5" data-offset-x="0" data-offset-y="0"></div>
|
||||
</div>
|
||||
|
||||
<!-- auto-fill -->
|
||||
|
||||
<div class="grid gridAutoFitFixed paddingTop max-content" data-expected-width="104" data-expected-height="34">
|
||||
<div class="item" style="grid-column: 1 / -1; width: 100px;" data-expected-width="100" data-expected-height="20" data-expected-x="0" data-expected-y="0"></div>
|
||||
<div class="abs" style="grid-column: 1 / 2; background: purple;" data-expected-width="20" data-expected-height="5" data-expected-x="0" data-expected-y="0"></div>
|
||||
<div class="abs" style="grid-column: 2 / 3; background: orange;" data-expected-width="20" data-expected-height="5" data-expected-x="20" data-expected-y="0"></div>
|
||||
<div class="abs" style="grid-column: 3 / 4; background: yellow;" data-expected-width="20" data-expected-height="5" data-expected-x="40" data-expected-y="0"></div>
|
||||
<div class="abs" style="grid-column: 4 / 5; background: green;" data-expected-width="40" data-expected-height="5" data-expected-x="60" data-expected-y="0"></div>
|
||||
<div class="item" style="grid-column: 1 / -1; width: 100px;" data-expected-width="100" data-expected-height="20" data-offset-x="0" data-offset-y="10"></div>
|
||||
<div class="abs" style="grid-column: 1 / 2; background: purple;" data-expected-width="20" data-expected-height="5" data-offset-x="0" data-offset-y="0"></div>
|
||||
<div class="abs" style="grid-column: 2 / 3; background: orange;" data-expected-width="20" data-expected-height="5" data-offset-x="20" data-offset-y="0"></div>
|
||||
<div class="abs" style="grid-column: 3 / 4; background: yellow;" data-expected-width="20" data-expected-height="5" data-offset-x="40" data-offset-y="0"></div>
|
||||
<div class="abs" style="grid-column: 4 / 5; background: green;" data-expected-width="40" data-expected-height="5" data-offset-x="60" data-offset-y="0"></div>
|
||||
</div>
|
||||
|
||||
<div class="grid gridAutoFitFixed paddingTop min-content" data-expected-width="104" data-expected-height="34">
|
||||
<div class="item" style="grid-column: 1 / -1; width: 100px;" data-expected-width="100" data-expected-height="20" data-expected-x="0" data-expected-y="0"></div>
|
||||
<div class="abs" style="grid-column: 1 / 2; background: purple;" data-expected-width="20" data-expected-height="5" data-expected-x="0" data-expected-y="0"></div>
|
||||
<div class="abs" style="grid-column: 2 / 3; background: orange;" data-expected-width="20" data-expected-height="5" data-expected-x="20" data-expected-y="0"></div>
|
||||
<div class="abs" style="grid-column: 3 / 4; background: yellow;" data-expected-width="20" data-expected-height="5" data-expected-x="40" data-expected-y="0"></div>
|
||||
<div class="abs" style="grid-column: 4 / 5; background: green;" data-expected-width="40" data-expected-height="5" data-expected-x="60" data-expected-y="0"></div>
|
||||
<div class="item" style="grid-column: 1 / -1; width: 100px;" data-expected-width="100" data-expected-height="20" data-offset-x="0" data-offset-y="10"></div>
|
||||
<div class="abs" style="grid-column: 1 / 2; background: purple;" data-expected-width="20" data-expected-height="5" data-offset-x="0" data-offset-y="0"></div>
|
||||
<div class="abs" style="grid-column: 2 / 3; background: orange;" data-expected-width="20" data-expected-height="5" data-offset-x="20" data-offset-y="0"></div>
|
||||
<div class="abs" style="grid-column: 3 / 4; background: yellow;" data-expected-width="20" data-expected-height="5" data-offset-x="40" data-offset-y="0"></div>
|
||||
<div class="abs" style="grid-column: 4 / 5; background: green;" data-expected-width="40" data-expected-height="5" data-offset-x="60" data-offset-y="0"></div>
|
||||
</div>
|
||||
|
||||
<div class="grid gridAutoFitAuto paddingTop max-content" data-expected-width="104" data-expected-height="34">
|
||||
<div class="item" style="grid-column: 1 / -1; width: 100px;" data-expected-width="100" data-expected-height="20" data-expected-x="0" data-expected-y="0"></div>
|
||||
<div class="abs" style="grid-column: 1 / 2; background: purple;" data-expected-width="10" data-expected-height="5" data-expected-x="0" data-expected-y="0"></div>
|
||||
<div class="abs" style="grid-column: 2 / 3; background: orange;" data-expected-width="10" data-expected-height="5" data-expected-x="20" data-expected-y="0"></div>
|
||||
<div class="abs" style="grid-column: 3 / 4; background: yellow;" data-expected-width="10" data-expected-height="5" data-expected-x="40" data-expected-y="0"></div>
|
||||
<div class="abs" style="grid-column: 4 / 5; background: green;" data-expected-width="10" data-expected-height="5" data-expected-x="60" data-expected-y="0"></div>
|
||||
<div class="item" style="grid-column: 1 / -1; width: 100px;" data-expected-width="100" data-expected-height="20" data-offset-x="0" data-offset-y="10"></div>
|
||||
<div class="abs" style="grid-column: 1 / 2; background: purple;" data-expected-width="10" data-expected-height="5" data-offset-x="0" data-offset-y="0"></div>
|
||||
<div class="abs" style="grid-column: 2 / 3; background: orange;" data-expected-width="10" data-expected-height="5" data-offset-x="10" data-offset-y="0"></div>
|
||||
<div class="abs" style="grid-column: 3 / 4; background: yellow;" data-expected-width="10" data-expected-height="5" data-offset-x="20" data-offset-y="0"></div>
|
||||
<div class="abs" style="grid-column: 4 / 5; background: green;" data-expected-width="10" data-expected-height="5" data-offset-x="30" data-offset-y="0"></div>
|
||||
</div>
|
||||
|
||||
<div class="grid gridAutoFitAuto paddingTop min-content" data-expected-width="74" data-expected-height="34">
|
||||
<div class="item" style="grid-column: 1 / -1; width: 100px;" data-expected-width="100" data-expected-height="20" data-expected-x="0" data-expected-y="0"></div>
|
||||
<div class="abs" style="grid-column: 1 / 2; background: purple;" data-expected-width="10" data-expected-height="5" data-expected-x="0" data-expected-y="0"></div>
|
||||
<div class="abs" style="grid-column: 2 / 3; background: orange;" data-expected-width="60" data-expected-height="5" data-expected-x="20" data-expected-y="0"></div>
|
||||
<div class="abs" style="grid-column: 3 / 4; background: yellow;" data-expected-width="0" data-expected-height="5" data-expected-x="40" data-expected-y="0"></div>
|
||||
<div class="abs" style="grid-column: 4 / 5; background: green;" data-expected-width="70" data-expected-height="5" data-expected-x="60" data-expected-y="0"></div>
|
||||
<div class="item" style="grid-column: 1 / -1; width: 100px;" data-expected-width="100" data-expected-height="20" data-offset-x="0" data-offset-y="10"></div>
|
||||
<div class="abs" style="grid-column: 1 / 2; background: purple;" data-expected-width="10" data-expected-height="5" data-offset-x="0" data-offset-y="0"></div>
|
||||
<div class="abs" style="grid-column: 2 / 3; background: orange;" data-expected-width="60" data-expected-height="5" data-offset-x="10" data-offset-y="0"></div>
|
||||
<div class="abs" style="grid-column: 3 / 4; background: yellow;" data-expected-width="0" data-expected-height="5" data-offset-x="70" data-offset-y="0"></div>
|
||||
<div class="abs" style="grid-column: 4 / 5; background: green;" data-expected-width="70" data-expected-height="5" data-offset-x="0" data-offset-y="0"></div>
|
||||
</div>
|
||||
|
||||
</body>
|
||||
|
|
|
@ -27,15 +27,15 @@
|
|||
<div id="log"></div>
|
||||
|
||||
<div class="grid" style="grid-template-rows: auto 60% auto;" data-expected-height="35">
|
||||
<div style="grid-row: 1; grid-column: 1; background: cyan;" data-expected-height="5" data-offset-top="0"></div>
|
||||
<div style="grid-row: 1 / 4; grid-column: 2; background: magenta;" data-expected-height="25" data-offset-top="0">X</div>
|
||||
<div style="grid-row: 3; grid-column: 3; background: lime;" data-expected-height="5" data-offset-top="20"></div>
|
||||
<div style="grid-row: 1; grid-column: 1; background: cyan;" data-expected-height="5" data-offset-y="0"></div>
|
||||
<div style="grid-row: 1 / 4; grid-column: 2; background: magenta;" data-expected-height="25" data-offset-y="0">X</div>
|
||||
<div style="grid-row: 3; grid-column: 3; background: lime;" data-expected-height="5" data-offset-y="20"></div>
|
||||
</div>
|
||||
|
||||
<div class="grid" style="grid-template-rows: auto 20% auto;" data-expected-height="60">
|
||||
<div style="grid-row: 1; grid-column: 1; background: cyan;" data-expected-height="25" data-offset-top="0">X</div>
|
||||
<div style="grid-row: 1 / 4; grid-column: 2; background: magenta;" data-expected-height="60" data-offset-top="0">X</div>
|
||||
<div style="grid-row: 3; grid-column: 3; background: lime;" data-expected-height="25" data-offset-top="35">X</div>
|
||||
<div style="grid-row: 1; grid-column: 1; background: cyan;" data-expected-height="25" data-offset-y="0">X</div>
|
||||
<div style="grid-row: 1 / 4; grid-column: 2; background: magenta;" data-expected-height="60" data-offset-y="0">X</div>
|
||||
<div style="grid-row: 3; grid-column: 3; background: lime;" data-expected-height="25" data-offset-y="35">X</div>
|
||||
</div>
|
||||
|
||||
<div class="grid" style="grid-template-rows: auto 10% auto; grid-template-columns: repeat(3, 50px);" data-expected-height="110">
|
||||
|
|
|
@ -74,27 +74,27 @@
|
|||
<pre>Item margin-left: 50%;</pre>
|
||||
|
||||
<div class="grid directionRTL">
|
||||
<div class="marginLeft50Percent" data-expected-margin-left="50" data-expected-x="60" data-expected-width="10" data-expected-height="10">X</div>
|
||||
<div class="marginLeft50Percent" data-expected-margin-left="50" data-offset-x="60" data-expected-width="10" data-expected-height="10">X</div>
|
||||
<div data-offset-x="0" data-offset-y="400" data-expected-width="10" data-expected-height="100"></div>
|
||||
</div>
|
||||
|
||||
<pre>Item margin-right: 50%;</pre>
|
||||
|
||||
<div class="grid directionRTL">
|
||||
<div class="marginRight50Percent" data-expected-margin-right="50" data-expected-x="10" data-expected-width="10" data-expected-height="10">X</div>
|
||||
<div class="marginRight50Percent" data-expected-margin-right="50" data-offset-x="10" data-expected-width="10" data-expected-height="10">X</div>
|
||||
<div data-offset-x="0" data-offset-y="400" data-expected-width="10" data-expected-height="100"></div>
|
||||
</div>
|
||||
|
||||
<pre>Item margin-top: 50%;</pre>
|
||||
|
||||
<div class="grid directionRTL">
|
||||
<div class="marginTop50Percent" data-expected-margin-top="50" data-expected-y="490" data-expected-width="10" data-expected-height="10">X</div>
|
||||
<div class="marginTop50Percent" data-expected-margin-top="50" data-offset-y="490" data-expected-width="10" data-expected-height="10">X</div>
|
||||
<div data-offset-x="0" data-offset-y="400" data-expected-width="10" data-expected-height="100"></div>
|
||||
</div>
|
||||
|
||||
<pre>Item margin-bottom: 50%;</pre>
|
||||
|
||||
<div class="grid directionRTL">
|
||||
<div class="marginBottom50Percent" data-expected-margin-bottom="50" data-expected-y="440" data-expected-width="10" data-expected-height="10">X</div>
|
||||
<div class="marginBottom50Percent" data-expected-margin-bottom="50" data-offset-y="440" data-expected-width="10" data-expected-height="10">X</div>
|
||||
<div data-offset-x="0" data-offset-y="400" data-expected-width="10" data-expected-height="100"></div>
|
||||
</div>
|
||||
|
|
|
@ -74,27 +74,27 @@
|
|||
<pre>Item margin-left: 50%;</pre>
|
||||
|
||||
<div class="grid directionRTL">
|
||||
<div class="marginLeft50Percent" data-expected-margin-left="50" data-expected-x="60" data-expected-width="10" data-expected-height="10">X</div>
|
||||
<div class="marginLeft50Percent" data-expected-margin-left="50" data-offset-x="60" data-expected-width="10" data-expected-height="10">X</div>
|
||||
<div data-offset-x="0" data-offset-y="400" data-expected-width="10" data-expected-height="100"></div>
|
||||
</div>
|
||||
|
||||
<pre>Item margin-right: 50%;</pre>
|
||||
|
||||
<div class="grid directionRTL">
|
||||
<div class="marginRight50Percent" data-expected-margin-right="50" data-expected-x="10" data-expected-width="10" data-expected-height="10">X</div>
|
||||
<div class="marginRight50Percent" data-expected-margin-right="50" data-offset-x="10" data-expected-width="10" data-expected-height="10">X</div>
|
||||
<div data-offset-x="0" data-offset-y="400" data-expected-width="10" data-expected-height="100"></div>
|
||||
</div>
|
||||
|
||||
<pre>Item margin-top: 50%;</pre>
|
||||
|
||||
<div class="grid directionRTL">
|
||||
<div class="marginTop50Percent" data-expected-margin-top="50" data-expected-y="490" data-expected-width="10" data-expected-height="10">X</div>
|
||||
<div class="marginTop50Percent" data-expected-margin-top="50" data-offset-y="490" data-expected-width="10" data-expected-height="10">X</div>
|
||||
<div data-offset-x="0" data-offset-y="400" data-expected-width="10" data-expected-height="100"></div>
|
||||
</div>
|
||||
|
||||
<pre>Item margin-bottom: 50%;</pre>
|
||||
|
||||
<div class="grid directionRTL">
|
||||
<div class="marginBottom50Percent" data-expected-margin-bottom="50" data-expected-y="440" data-expected-width="10" data-expected-height="10">X</div>
|
||||
<div class="marginBottom50Percent" data-expected-margin-bottom="50" data-offset-y="440" data-expected-width="10" data-expected-height="10">X</div>
|
||||
<div data-offset-x="0" data-offset-y="400" data-expected-width="10" data-expected-height="100"></div>
|
||||
</div>
|
||||
|
|
|
@ -27,22 +27,22 @@
|
|||
|
||||
<div class="grid">
|
||||
<div class="firstRowFirstColumn" style="left: 10px; top: 9px;"
|
||||
data-offset-x="10" data-offest-y="9" data-expected-width="200" data-expected-height="90"></div>
|
||||
data-offset-x="10" data-offset-y="9" data-expected-width="200" data-expected-height="90"></div>
|
||||
<div class="secondRowSecondColumn" style="left: -15px; top: -12px;"
|
||||
data-offset-x="185" data-offest-y="78" data-expected-width="150" data-expected-height="60"></div>
|
||||
data-offset-x="185" data-offset-y="78" data-expected-width="150" data-expected-height="60"></div>
|
||||
<div class="thirdRowThirdColumn" style="right: 30px; bottom: 21px;"
|
||||
data-offset-x="320" data-offest-y="129" data-expected-width="100" data-expected-height="30"></div>
|
||||
data-offset-x="320" data-offset-y="129" data-expected-width="100" data-expected-height="30"></div>
|
||||
</div>
|
||||
|
||||
<h3>Direction RTL</h3>
|
||||
|
||||
<div class="grid directionRTL">
|
||||
<div class="firstRowFirstColumn" style="left: 10px; top: 9px;"
|
||||
data-offset-x="410" data-offest-y="9" data-expected-width="200" data-expected-height="90"></div>
|
||||
data-offset-x="410" data-offset-y="9" data-expected-width="200" data-expected-height="90"></div>
|
||||
<div class="secondRowSecondColumn" style="left: -15px; top: -12px;"
|
||||
data-offset-x="235" data-offest-y="78" data-expected-width="150" data-expected-height="60"></div>
|
||||
data-offset-x="235" data-offset-y="78" data-expected-width="150" data-expected-height="60"></div>
|
||||
<div class="thirdRowThirdColumn" style="right: 30px; bottom: 21px;"
|
||||
data-offset-x="120" data-offest-y="129" data-expected-width="100" data-expected-height="30"></div>
|
||||
data-offset-x="120" data-offset-y="129" data-expected-width="100" data-expected-height="30"></div>
|
||||
</div>
|
||||
|
||||
<h2>Writing Mode vertical-lr</h2>
|
||||
|
@ -51,22 +51,22 @@
|
|||
|
||||
<div class="grid verticalLR">
|
||||
<div class="firstRowFirstColumn" style="left: 9px; top: 10px;"
|
||||
data-offset-x="9" data-offest-y="10" data-expected-width="90" data-expected-height="200"></div>
|
||||
data-offset-x="9" data-offset-y="10" data-expected-width="90" data-expected-height="200"></div>
|
||||
<div class="secondRowSecondColumn" style="left: -12px; top: -15px;"
|
||||
data-offset-x="78" data-offest-y="75" data-expected-width="60" data-expected-height="150"></div>
|
||||
data-offset-x="78" data-offset-y="185" data-expected-width="60" data-expected-height="150"></div>
|
||||
<div class="thirdRowThirdColumn" style="right: 21px; bottom: 30px;"
|
||||
data-offset-x="129" data-offest-y="120" data-expected-width="30" data-expected-height="100"></div>
|
||||
data-offset-x="129" data-offset-y="320" data-expected-width="30" data-expected-height="100"></div>
|
||||
</div>
|
||||
|
||||
<h3>Direction RTL</h3>
|
||||
|
||||
<div class="grid verticalLR directionRTL">
|
||||
<div class="firstRowFirstColumn" style="left: 9px; top: 10px;"
|
||||
data-offset-x="9" data-offest-y="10" data-expected-width="90" data-expected-height="200"></div>
|
||||
data-offset-x="9" data-offset-y="410" data-expected-width="90" data-expected-height="200"></div>
|
||||
<div class="secondRowSecondColumn" style="left: -12px; top: -15px;"
|
||||
data-offset-x="78" data-offest-y="75" data-expected-width="60" data-expected-height="150"></div>
|
||||
data-offset-x="78" data-offset-y="235" data-expected-width="60" data-expected-height="150"></div>
|
||||
<div class="thirdRowThirdColumn" style="right: 21px; bottom: 30px;"
|
||||
data-offset-x="129" data-offest-y="120" data-expected-width="30" data-expected-height="100"></div>
|
||||
data-offset-x="129" data-offset-y="120" data-expected-width="30" data-expected-height="100"></div>
|
||||
</div>
|
||||
|
||||
<h2>Writing Mode vertical-rl</h2>
|
||||
|
@ -75,20 +75,20 @@
|
|||
|
||||
<div class="grid verticalRL">
|
||||
<div class="firstRowFirstColumn" style="left: 9px; top: 10px;"
|
||||
data-offset-x="219" data-offest-y="10" data-expected-width="90" data-expected-height="200"></div>
|
||||
data-offset-x="219" data-offset-y="10" data-expected-width="90" data-expected-height="200"></div>
|
||||
<div class="secondRowSecondColumn" style="left: -12px; top: -15px;"
|
||||
data-offset-x="138" data-offest-y="75" data-expected-width="60" data-expected-height="150"></div>
|
||||
data-offset-x="138" data-offset-y="185" data-expected-width="60" data-expected-height="150"></div>
|
||||
<div class="thirdRowThirdColumn" style="right: 21px; bottom: 30px;"
|
||||
data-offset-x="99" data-offest-y="120" data-expected-width="30" data-expected-height="100"></div>
|
||||
data-offset-x="99" data-offset-y="320" data-expected-width="30" data-expected-height="100"></div>
|
||||
</div>
|
||||
|
||||
<h3>Direction RTL</h3>
|
||||
|
||||
<div class="grid verticalRL directionRTL">
|
||||
<div class="firstRowFirstColumn" style="left: 9px; top: 10px;"
|
||||
data-offset-x="219" data-offest-y="10" data-expected-width="90" data-expected-height="200"></div>
|
||||
data-offset-x="219" data-offset-y="410" data-expected-width="90" data-expected-height="200"></div>
|
||||
<div class="secondRowSecondColumn" style="left: -12px; top: -15px;"
|
||||
data-offset-x="138" data-offest-y="75" data-expected-width="60" data-expected-height="150"></div>
|
||||
data-offset-x="138" data-offset-y="235" data-expected-width="60" data-expected-height="150"></div>
|
||||
<div class="thirdRowThirdColumn" style="right: 21px; bottom: 30px;"
|
||||
data-offset-x="99" data-offest-y="120" data-expected-width="30" data-expected-height="100"></div>
|
||||
data-offset-x="99" data-offset-y="120" data-expected-width="30" data-expected-height="100"></div>
|
||||
</div>
|
||||
|
|
|
@ -27,22 +27,22 @@
|
|||
|
||||
<div class="grid">
|
||||
<div class="firstRowFirstColumn" style="left: 5%; top: 10%;"
|
||||
data-offset-x="10" data-offest-y="9" data-expected-width="200" data-expected-height="90"></div>
|
||||
data-offset-x="10" data-offset-y="9" data-expected-width="200" data-expected-height="90"></div>
|
||||
<div class="secondRowSecondColumn" style="left: -10%; top: -20%;"
|
||||
data-offset-x="185" data-offest-y="78" data-expected-width="150" data-expected-height="60"></div>
|
||||
data-offset-x="185" data-offset-y="78" data-expected-width="150" data-expected-height="60"></div>
|
||||
<div class="thirdRowThirdColumn" style="right: 30%; bottom: 70%;"
|
||||
data-offset-x="320" data-offest-y="129" data-expected-width="100" data-expected-height="30"></div>
|
||||
data-offset-x="320" data-offset-y="129" data-expected-width="100" data-expected-height="30"></div>
|
||||
</div>
|
||||
|
||||
<h3>Direction RTL</h3>
|
||||
|
||||
<div class="grid directionRTL">
|
||||
<div class="firstRowFirstColumn" style="left: 5%; top: 10%;"
|
||||
data-offset-x="410" data-offest-y="9" data-expected-width="200" data-expected-height="90"></div>
|
||||
data-offset-x="410" data-offset-y="9" data-expected-width="200" data-expected-height="90"></div>
|
||||
<div class="secondRowSecondColumn" style="left: -10%; top: -20%;"
|
||||
data-offset-x="235" data-offest-y="78" data-expected-width="150" data-expected-height="60"></div>
|
||||
data-offset-x="235" data-offset-y="78" data-expected-width="150" data-expected-height="60"></div>
|
||||
<div class="thirdRowThirdColumn" style="right: 30%; bottom: 70%;"
|
||||
data-offset-x="120" data-offest-y="129" data-expected-width="100" data-expected-height="30"></div>
|
||||
data-offset-x="120" data-offset-y="129" data-expected-width="100" data-expected-height="30"></div>
|
||||
</div>
|
||||
|
||||
<h2>Writing Mode vertical-lr</h2>
|
||||
|
@ -51,22 +51,22 @@
|
|||
|
||||
<div class="grid verticalLR">
|
||||
<div class="firstRowFirstColumn" style="left: 10%; top: 5%;"
|
||||
data-offset-x="9" data-offest-y="10" data-expected-width="90" data-expected-height="200"></div>
|
||||
data-offset-x="9" data-offset-y="10" data-expected-width="90" data-expected-height="200"></div>
|
||||
<div class="secondRowSecondColumn" style="left: -20%; top: -10%;"
|
||||
data-offset-x="78" data-offest-y="75" data-expected-width="60" data-expected-height="150"></div>
|
||||
data-offset-x="78" data-offset-y="185" data-expected-width="60" data-expected-height="150"></div>
|
||||
<div class="thirdRowThirdColumn" style="right: 70%; bottom: 30%;"
|
||||
data-offset-x="129" data-offest-y="120" data-expected-width="30" data-expected-height="100"></div>
|
||||
data-offset-x="129" data-offset-y="320" data-expected-width="30" data-expected-height="100"></div>
|
||||
</div>
|
||||
|
||||
<h3>Direction RTL</h3>
|
||||
|
||||
<div class="grid verticalLR directionRTL">
|
||||
<div class="firstRowFirstColumn" style="left: 10%; top: 5%;"
|
||||
data-offset-x="9" data-offest-y="10" data-expected-width="90" data-expected-height="200"></div>
|
||||
data-offset-x="9" data-offset-y="410" data-expected-width="90" data-expected-height="200"></div>
|
||||
<div class="secondRowSecondColumn" style="left: -20%; top: -10%;"
|
||||
data-offset-x="78" data-offest-y="75" data-expected-width="60" data-expected-height="150"></div>
|
||||
data-offset-x="78" data-offset-y="235" data-expected-width="60" data-expected-height="150"></div>
|
||||
<div class="thirdRowThirdColumn" style="right: 70%; bottom: 30%;"
|
||||
data-offset-x="129" data-offest-y="120" data-expected-width="30" data-expected-height="100"></div>
|
||||
data-offset-x="129" data-offset-y="120" data-expected-width="30" data-expected-height="100"></div>
|
||||
</div>
|
||||
|
||||
<h2>Writing Mode vertical-rl</h2>
|
||||
|
@ -75,20 +75,20 @@
|
|||
|
||||
<div class="grid verticalRL">
|
||||
<div class="firstRowFirstColumn" style="left: 10%; top: 5%;"
|
||||
data-offset-x="219" data-offest-y="10" data-expected-width="90" data-expected-height="200"></div>
|
||||
data-offset-x="219" data-offset-y="10" data-expected-width="90" data-expected-height="200"></div>
|
||||
<div class="secondRowSecondColumn" style="left: -20%; top: -10%;"
|
||||
data-offset-x="138" data-offest-y="75" data-expected-width="60" data-expected-height="150"></div>
|
||||
data-offset-x="138" data-offset-y="185" data-expected-width="60" data-expected-height="150"></div>
|
||||
<div class="thirdRowThirdColumn" style="right: 70%; bottom: 30%;"
|
||||
data-offset-x="99" data-offest-y="120" data-expected-width="30" data-expected-height="100"></div>
|
||||
data-offset-x="99" data-offset-y="320" data-expected-width="30" data-expected-height="100"></div>
|
||||
</div>
|
||||
|
||||
<h3>Direction RTL</h3>
|
||||
|
||||
<div class="grid verticalRL directionRTL">
|
||||
<div class="firstRowFirstColumn" style="left: 10%; top: 5%;"
|
||||
data-offset-x="219" data-offest-y="10" data-expected-width="90" data-expected-height="200"></div>
|
||||
data-offset-x="219" data-offset-y="410" data-expected-width="90" data-expected-height="200"></div>
|
||||
<div class="secondRowSecondColumn" style="left: -20%; top: -10%;"
|
||||
data-offset-x="138" data-offest-y="75" data-expected-width="60" data-expected-height="150"></div>
|
||||
data-offset-x="138" data-offset-y="235" data-expected-width="60" data-expected-height="150"></div>
|
||||
<div class="thirdRowThirdColumn" style="right: 70%; bottom: 30%;"
|
||||
data-offset-x="99" data-offest-y="120" data-expected-width="30" data-expected-height="100"></div>
|
||||
data-offset-x="99" data-offset-y="120" data-expected-width="30" data-expected-height="100"></div>
|
||||
</div>
|
||||
|
|
|
@ -54,7 +54,7 @@
|
|||
<div class="item" data-expected-width="100" data-expected-height="100"></div>
|
||||
</div>
|
||||
|
||||
<div class="grid min-content scroll" data-width-without-scrollbar="100" data-height-without-scrollbar="100">
|
||||
<div class="grid min-content scroll" data-test-width-without-scrollbar="100" data-test-height-without-scrollbar="100">
|
||||
<div class="item" data-expected-width="100" data-expected-height="100"></div>
|
||||
</div>
|
||||
|
||||
|
@ -66,7 +66,7 @@
|
|||
<div class="item" data-expected-width="100" data-expected-height="100"></div>
|
||||
</div>
|
||||
|
||||
<div class="grid min-content margin scroll" data-width-without-scrollbar="100" data-height-without-scrollbar="100">
|
||||
<div class="grid min-content margin scroll" data-test-width-without-scrollbar="100" data-test-height-without-scrollbar="100">
|
||||
<div class="item" data-expected-width="100" data-expected-height="100"></div>
|
||||
</div>
|
||||
|
||||
|
@ -74,11 +74,11 @@
|
|||
<div class="item" data-expected-width="100" data-expected-height="100"></div>
|
||||
</div>
|
||||
|
||||
<div class="grid min-content border scroll" data-width-without-scrollbar="110" data-height-without-scrollbar="110">
|
||||
<div class="grid min-content border scroll" data-test-width-without-scrollbar="110" data-test-height-without-scrollbar="110">
|
||||
<div class="item" data-expected-width="100" data-expected-height="100"></div>
|
||||
</div>
|
||||
|
||||
<div class="grid min-content padding scroll" data-width-without-scrollbar="140" data-height-without-scrollbar="140">
|
||||
<div class="grid min-content padding scroll" data-test-width-without-scrollbar="140" data-test-height-without-scrollbar="140">
|
||||
<div class="item" data-expected-width="100" data-expected-height="100"></div>
|
||||
</div>
|
||||
|
||||
|
@ -86,19 +86,19 @@
|
|||
<div class="item" data-expected-width="100" data-expected-height="100"></div>
|
||||
</div>
|
||||
|
||||
<div class="grid min-content margin border scroll" data-width-without-scrollbar="110" data-height-without-scrollbar="110">
|
||||
<div class="grid min-content margin border scroll" data-test-width-without-scrollbar="110" data-test-height-without-scrollbar="110">
|
||||
<div class="item" data-expected-width="100" data-expected-height="100"></div>
|
||||
</div>
|
||||
|
||||
<div class="grid min-content margin padding scroll" data-width-without-scrollbar="140" data-height-without-scrollbar="140">
|
||||
<div class="grid min-content margin padding scroll" data-test-width-without-scrollbar="140" data-test-height-without-scrollbar="140">
|
||||
<div class="item" data-expected-width="100" data-expected-height="100"></div>
|
||||
</div>
|
||||
|
||||
<div class="grid min-content border padding scroll" data-width-without-scrollbar="150" data-height-without-scrollbar="150">
|
||||
<div class="grid min-content border padding scroll" data-test-width-without-scrollbar="150" data-test-height-without-scrollbar="150">
|
||||
<div class="item" data-expected-width="100" data-expected-height="100"></div>
|
||||
</div>
|
||||
|
||||
<div class="grid min-content margin border padding scroll" data-width-without-scrollbar="150" data-height-without-scrollbar="150">
|
||||
<div class="grid min-content margin border padding scroll" data-test-width-without-scrollbar="150" data-test-height-without-scrollbar="150">
|
||||
<div class="item" data-expected-width="100" data-expected-height="100"></div>
|
||||
</div>
|
||||
|
||||
|
@ -112,7 +112,7 @@
|
|||
var scrollbarWidth = measure.offsetWidth - measure.clientWidth;
|
||||
var scrollbarHeight = measure.offsetHeight - measure.clientHeight;
|
||||
|
||||
// Here are the data-width-without-scrollbar (and height) attributes of all
|
||||
// Here are the data-test-width-without-scrollbar (and height) attributes of all
|
||||
// elements that have the "scroll" class. Things that contribute to the expected
|
||||
// sizes are:
|
||||
//
|
||||
|
@ -126,8 +126,8 @@
|
|||
// so that we can ensure the scrollbar sizes are calculated in an engine-agnostic way.
|
||||
var elements = document.getElementsByClassName("scroll");
|
||||
for (var i = 0; i < elements.length; i++) {
|
||||
const expectedWidth = parseInt(elements[i].getAttribute("data-width-without-scrollbar"));
|
||||
const expectedHeight = parseInt(elements[i].getAttribute("data-height-without-scrollbar"));
|
||||
const expectedWidth = parseInt(elements[i].getAttribute("data-test-width-without-scrollbar"));
|
||||
const expectedHeight = parseInt(elements[i].getAttribute("data-test-height-without-scrollbar"));
|
||||
elements[i].setAttribute("data-expected-width", expectedWidth + scrollbarWidth);
|
||||
elements[i].setAttribute("data-expected-height", expectedHeight + scrollbarHeight);
|
||||
}
|
||||
|
|
|
@ -0,0 +1,29 @@
|
|||
<!doctype html>
|
||||
<title>CSS Test: @keyframes applies to :host::before/::after.</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<link rel="help" href="https://drafts.csswg.org/css-scoping/#shadow-names">
|
||||
<div id="host"></div>
|
||||
<script>
|
||||
test(function() {
|
||||
host.attachShadow({ mode: "open" }).innerHTML = `
|
||||
<style>
|
||||
@keyframes myanim {
|
||||
from { background: red; }
|
||||
to { background: green; }
|
||||
}
|
||||
:host::before, :host::after {
|
||||
content: "";
|
||||
display: block;
|
||||
width: 100px;
|
||||
height: 100px;
|
||||
background: blue;
|
||||
animation: myanim 10s infinite step-end;
|
||||
}
|
||||
</style>
|
||||
`;
|
||||
|
||||
assert_equals(getComputedStyle(document.getElementById('host'), "::before").backgroundColor, "rgb(255, 0, 0)");
|
||||
assert_equals(getComputedStyle(document.getElementById('host'), "::after").backgroundColor, "rgb(255, 0, 0)");
|
||||
}, "@keyframes applies to the shadow host");
|
||||
</script>
|
|
@ -1,4 +1,4 @@
|
|||
// META: global=worker
|
||||
// META: global=window,worker
|
||||
|
||||
'use strict';
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// META: global=worker
|
||||
// META: global=window,worker
|
||||
|
||||
'use strict';
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// META: global=worker
|
||||
// META: global=window,worker
|
||||
|
||||
'use strict';
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// META: global=worker
|
||||
// META: global=window,worker
|
||||
// META: script=resources/readable-stream-from-array.js
|
||||
// META: script=resources/readable-stream-to-array.js
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// META: global=worker
|
||||
// META: global=window,worker
|
||||
// META: script=resources/readable-stream-from-array.js
|
||||
// META: script=resources/readable-stream-to-array.js
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// META: global=worker
|
||||
// META: global=window,worker
|
||||
|
||||
'use strict';
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// META: global=worker
|
||||
// META: global=window,worker
|
||||
// META: script=resources/readable-stream-from-array.js
|
||||
// META: script=resources/readable-stream-to-array.js
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// META: global=worker
|
||||
// META: global=window,worker
|
||||
// META: script=resources/readable-stream-from-array.js
|
||||
// META: script=resources/readable-stream-to-array.js
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// META: global=worker
|
||||
// META: global=window,worker
|
||||
// META: script=resources/readable-stream-from-array.js
|
||||
// META: script=resources/readable-stream-to-array.js
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// META: global=worker
|
||||
// META: global=window,worker
|
||||
|
||||
// This just tests that the "readable" and "writable" properties pass the brand
|
||||
// checks. All other relevant attributes are covered by the IDL tests.
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// META: global=sharedworker
|
||||
// META: global=window,dedicatedworker,sharedworker
|
||||
// META: script=../resources/utils.js
|
||||
|
||||
function integrity(desc, url, integrity, initRequestMode, shouldPass) {
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// META: global=worker
|
||||
// META: global=window,worker
|
||||
|
||||
// These tests verify that stream creation is not affected by changes to
|
||||
// Object.prototype.
|
||||
|
|
|
@ -30,7 +30,7 @@ interface Event {
|
|||
readonly attribute boolean defaultPrevented;
|
||||
readonly attribute boolean composed;
|
||||
|
||||
[Unforgeable] readonly attribute boolean isTrusted;
|
||||
[LegacyUnforgeable] readonly attribute boolean isTrusted;
|
||||
readonly attribute DOMHighResTimeStamp timeStamp;
|
||||
|
||||
void initEvent(DOMString type, optional boolean bubbles = false, optional boolean cancelable = false); // historical
|
||||
|
@ -115,6 +115,7 @@ interface mixin ParentNode {
|
|||
|
||||
[CEReactions, Unscopable] void prepend((Node or DOMString)... nodes);
|
||||
[CEReactions, Unscopable] void append((Node or DOMString)... nodes);
|
||||
[CEReactions, Unscopable] void replaceChildren((Node or DOMString)... nodes);
|
||||
|
||||
Element? querySelector(DOMString selectors);
|
||||
[NewObject] NodeList querySelectorAll(DOMString selectors);
|
||||
|
@ -140,11 +141,11 @@ DocumentType includes ChildNode;
|
|||
Element includes ChildNode;
|
||||
CharacterData includes ChildNode;
|
||||
|
||||
interface mixin Slotable {
|
||||
interface mixin Slottable {
|
||||
readonly attribute HTMLSlotElement? assignedSlot;
|
||||
};
|
||||
Element includes Slotable;
|
||||
Text includes Slotable;
|
||||
Element includes Slottable;
|
||||
Text includes Slottable;
|
||||
|
||||
[Exposed=Window]
|
||||
interface NodeList {
|
||||
|
@ -308,7 +309,7 @@ dictionary ElementCreationOptions {
|
|||
[Exposed=Window]
|
||||
interface DOMImplementation {
|
||||
[NewObject] DocumentType createDocumentType(DOMString qualifiedName, DOMString publicId, DOMString systemId);
|
||||
[NewObject] XMLDocument createDocument(DOMString? namespace, [TreatNullAs=EmptyString] DOMString qualifiedName, optional DocumentType? doctype = null);
|
||||
[NewObject] XMLDocument createDocument(DOMString? namespace, [LegacyNullToEmptyString] DOMString qualifiedName, optional DocumentType? doctype = null);
|
||||
[NewObject] Document createHTMLDocument(optional DOMString title);
|
||||
|
||||
boolean hasFeature(); // useless; always returns true
|
||||
|
@ -413,7 +414,7 @@ interface Attr : Node {
|
|||
};
|
||||
[Exposed=Window]
|
||||
interface CharacterData : Node {
|
||||
attribute [TreatNullAs=EmptyString] DOMString data;
|
||||
attribute [LegacyNullToEmptyString] DOMString data;
|
||||
readonly attribute unsigned long length;
|
||||
DOMString substringData(unsigned long offset, unsigned long count);
|
||||
void appendData(DOMString data);
|
||||
|
|
|
@ -21,3 +21,7 @@ interface EventCounts {
|
|||
partial interface Performance {
|
||||
[SameObject] readonly attribute EventCounts eventCounts;
|
||||
};
|
||||
|
||||
partial dictionary PerformanceObserverInit {
|
||||
DOMHighResTimeStamp durationThreshold;
|
||||
};
|
||||
|
|
|
@ -21,8 +21,8 @@ partial interface Element {
|
|||
};
|
||||
|
||||
partial interface Document {
|
||||
[LenientSetter] readonly attribute boolean fullscreenEnabled;
|
||||
[LenientSetter, Unscopable] readonly attribute boolean fullscreen; // historical
|
||||
[LegacyLenientSetter] readonly attribute boolean fullscreenEnabled;
|
||||
[LegacyLenientSetter, Unscopable] readonly attribute boolean fullscreen; // historical
|
||||
|
||||
Promise<void> exitFullscreen();
|
||||
|
||||
|
@ -31,5 +31,5 @@ partial interface Document {
|
|||
};
|
||||
|
||||
partial interface mixin DocumentOrShadowRoot {
|
||||
[LenientSetter] readonly attribute Element? fullscreenElement;
|
||||
[LegacyLenientSetter] readonly attribute Element? fullscreenElement;
|
||||
};
|
||||
|
|
|
@ -103,16 +103,16 @@ interface PaymentAddress {
|
|||
};
|
||||
|
||||
dictionary AddressInit {
|
||||
DOMString country;
|
||||
sequence<DOMString> addressLine;
|
||||
DOMString region;
|
||||
DOMString city;
|
||||
DOMString dependentLocality;
|
||||
DOMString postalCode;
|
||||
DOMString sortingCode;
|
||||
DOMString organization;
|
||||
DOMString recipient;
|
||||
DOMString phone;
|
||||
DOMString country = "";
|
||||
sequence<DOMString> addressLine = [];
|
||||
DOMString region = "";
|
||||
DOMString city = "";
|
||||
DOMString dependentLocality = "";
|
||||
DOMString postalCode = "";
|
||||
DOMString sortingCode = "";
|
||||
DOMString organization = "";
|
||||
DOMString recipient = "";
|
||||
DOMString phone = "";
|
||||
};
|
||||
|
||||
dictionary AddressErrors {
|
||||
|
|
|
@ -0,0 +1,71 @@
|
|||
<!DOCTYPE HTML>
|
||||
<meta name="viewport" content="width=device-width">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/resources/testdriver.js"></script>
|
||||
<script src="/resources/testdriver-actions.js"></script>
|
||||
<script src="/resources/testdriver-vendor.js"></script>
|
||||
<script type="text/javascript" src="pointerevent_support.js"></script>
|
||||
|
||||
<h1>PointerEvent: Verifies that mouse boundary events don't point to shadow-dom</h1>
|
||||
|
||||
<input id="target" style="margin: 20px">
|
||||
|
||||
<script>
|
||||
function name(node) {
|
||||
return node? node.tagName : "(null)";
|
||||
}
|
||||
|
||||
promise_test(async () => {
|
||||
var targetEvents = ["mouseout", "pointerout", "mouseover", "pointerover"];
|
||||
var receivedEvents = [];
|
||||
var moveReceived = false;
|
||||
|
||||
|
||||
targetEvents.forEach(function(eventName) {
|
||||
window.addEventListener(eventName, function(e) {
|
||||
var eventDetails = e.type +
|
||||
" target=" + name(e.target) +
|
||||
" relatedTarget=" + name(e.relatedTarget);
|
||||
receivedEvents.push(eventDetails);
|
||||
});
|
||||
});
|
||||
window.addEventListener('pointermove', () => { moveReceived = true; });
|
||||
var rect = document.getElementById("target").getBoundingClientRect();
|
||||
|
||||
await new test_driver.Actions()
|
||||
.pointerMove(rect.left - 10, rect.top - 10)
|
||||
.send()
|
||||
|
||||
receivedEvents = [];
|
||||
moveReceived = false;
|
||||
|
||||
await new test_driver.Actions()
|
||||
.pointerMove(rect.left + 10, rect.top + 10)
|
||||
.send()
|
||||
await resolveWhen(() => { return moveReceived == true });
|
||||
|
||||
assert_array_equals(receivedEvents, [
|
||||
"pointerout target=BODY relatedTarget=INPUT",
|
||||
"pointerover target=INPUT relatedTarget=BODY",
|
||||
"mouseout target=BODY relatedTarget=INPUT",
|
||||
"mouseover target=INPUT relatedTarget=BODY",
|
||||
], "Moved into <input>");
|
||||
|
||||
|
||||
receivedEvents = [];
|
||||
moveReceived = false;
|
||||
|
||||
await new test_driver.Actions()
|
||||
.pointerMove(rect.left - 10, rect.top - 10)
|
||||
.send()
|
||||
await resolveWhen(() => { return moveReceived == true });
|
||||
|
||||
assert_array_equals(receivedEvents, [
|
||||
"pointerout target=INPUT relatedTarget=BODY",
|
||||
"pointerover target=BODY relatedTarget=INPUT",
|
||||
"mouseout target=INPUT relatedTarget=BODY",
|
||||
"mouseover target=BODY relatedTarget=INPUT",
|
||||
], "Moved out of <input>");
|
||||
}, "PointerEvent: Verifies that mouse boundary events don't point to shadow-dom");
|
||||
</script>
|
|
@ -0,0 +1,90 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<title>Touch Action None on body when style propagates from body to viewport</title>
|
||||
<head>
|
||||
<style>
|
||||
html {
|
||||
touch-action: none;
|
||||
}
|
||||
body {
|
||||
overflow: auto;
|
||||
}
|
||||
</style>
|
||||
<link rel="help" href="crbug.com/1031745">
|
||||
<link rel="help" href="https://drafts.csswg.org/css-overflow-3/#overflow-propagation">
|
||||
<link rel="help" href="https://w3c.github.io/pointerevents/#determining-supported-touch-behavior">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/resources/testdriver.js"></script>
|
||||
<script src="/resources/testdriver-actions.js"></script>
|
||||
<script src="/resources/testdriver-vendor.js"></script>
|
||||
<script src="pointerevent_support.js"></script>
|
||||
</head>
|
||||
<body onload="onLoad()">
|
||||
<h2>Pointer Events touch-action none on body when style propagates from body to viewport</h2>
|
||||
<h4>Test Description: Try to touch scroll. You shouldn't be able to.</h4>
|
||||
<p>Note: this test is for touch only</p>
|
||||
Body with touch-action=none.
|
||||
<p>Paragraph with touch-action=none</p>
|
||||
<p>Paragraph with touch-action=none</p>
|
||||
<p>Paragraph with touch-action=none</p>
|
||||
<p>Paragraph with touch-action=none</p>
|
||||
<p>Paragraph with touch-action=none</p>
|
||||
<p>Paragraph with touch-action=none</p>
|
||||
<p>Paragraph with touch-action=none</p>
|
||||
<p>Paragraph with touch-action=none</p>
|
||||
<p>Paragraph with touch-action=none</p>
|
||||
<p>Paragraph with touch-action=none</p>
|
||||
<p>Paragraph with touch-action=none</p>
|
||||
<p>Paragraph with touch-action=none</p>
|
||||
<p>Paragraph with touch-action=none</p>
|
||||
<p>Paragraph with touch-action=none</p>
|
||||
<p>Paragraph with touch-action=none</p>
|
||||
<p>Paragraph with touch-action=none</p>
|
||||
<p>Paragraph with touch-action=none</p>
|
||||
<p>Paragraph with touch-action=none</p>
|
||||
<p>Paragraph with touch-action=none</p>
|
||||
<p>Paragraph with touch-action=none</p>
|
||||
<p>Paragraph with touch-action=none</p>
|
||||
<p>Paragraph with touch-action=none</p>
|
||||
<p>Paragraph with touch-action=none</p>
|
||||
<p>Paragraph with touch-action=none</p>
|
||||
<p>Paragraph with touch-action=none</p>
|
||||
<p>Paragraph with touch-action=none</p>
|
||||
<p>Paragraph with touch-action=none</p>
|
||||
<p>Paragraph with touch-action=none</p>
|
||||
<p>Paragraph with touch-action=none</p>
|
||||
<p>Paragraph with touch-action=none</p>
|
||||
<p>Paragraph with touch-action=none</p>
|
||||
<p>Paragraph with touch-action=none</p>
|
||||
<p>Paragraph with touch-action=none</p>
|
||||
<p>Paragraph with touch-action=none</p>
|
||||
<p>Paragraph with touch-action=none</p>
|
||||
<p>Paragraph with touch-action=none</p>
|
||||
<p>Paragraph with touch-action=none</p>
|
||||
<p>Paragraph with touch-action=none</p>
|
||||
<p>Paragraph with touch-action=none</p>
|
||||
<script>
|
||||
function onLoad(){
|
||||
var body = document.body;
|
||||
|
||||
if(!window.promise_test)
|
||||
return;
|
||||
|
||||
promise_test(function(t){
|
||||
return new Promise(async function(resolve,reject){
|
||||
await touchScrollInTarget(body, 'down');
|
||||
await touchScrollInTarget(body, 'right');
|
||||
t.step(function(){
|
||||
assert_equals(document.scrollingElement.scrollLeft, 0, "scrollingElement scroll x offset should be 0 in the end of the test");
|
||||
assert_equals(document.scrollingElement.scrollTop, 0, "scrollingElement scroll y offset should be 0 in the end of the test");
|
||||
});
|
||||
resolve();
|
||||
}).then(
|
||||
()=>{t.done();},
|
||||
()=>{t.done();}
|
||||
);});
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue