Implement StaticRange (#31809)

* Add DOM interface for AbstractRange

* Add DOM interface for StaticRange

* Update WPT tests for StaticRange-constructor.html

* Fix formatting

* Add AbstractRange & StaticRange in interfaces.html

* rebased the code and fixed the failures

Signed-off-by: Cathie Chen <cathiechen@igalia.com>

* update the expected result in idlharness.window.js.ini file

* Addressed the code review comments

* updae the test result of legacy layout

---------

Signed-off-by: Cathie Chen <cathiechen@igalia.com>
Co-authored-by: Nipun Garg <nipung271@gmail.com>
This commit is contained in:
cathiechen 2024-03-22 16:02:01 +01:00 committed by GitHub
parent bae77671f8
commit cb275e086c
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
15 changed files with 530 additions and 506 deletions

View file

@ -11,9 +11,6 @@
[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
@ -41,9 +38,6 @@
[Element interface: operation append([object Object\],[object Object\])]
expected: FAIL
[StaticRange interface object name]
expected: FAIL
[Document interface: attribute origin]
expected: FAIL
@ -59,18 +53,12 @@
[EventTarget interface: calling addEventListener(DOMString, EventListener, [object Object\],[object Object\]) on new AbortController().signal with too few arguments must throw TypeError]
expected: FAIL
[AbstractRange interface: attribute startContainer]
expected: FAIL
[AbortSignal interface object name]
expected: FAIL
[Event interface: new CustomEvent("foo") must inherit property "composed" 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
@ -95,18 +83,9 @@
[DocumentType interface: operation replaceWith([object Object\],[object Object\])]
expected: FAIL
[StaticRange interface: existence and properties of interface object]
expected: FAIL
[AbortSignal interface: attribute aborted]
expected: FAIL
[AbstractRange interface: existence and properties of interface prototype object]
expected: FAIL
[AbstractRange interface: attribute endContainer]
expected: FAIL
[AbortController must be primary interface of new AbortController()]
expected: FAIL
@ -116,9 +95,6 @@
[CharacterData interface: operation remove()]
expected: FAIL
[Range interface: existence and properties of interface object]
expected: FAIL
[CharacterData interface: existence and properties of interface prototype object's @@unscopables property]
expected: FAIL
@ -128,9 +104,6 @@
[Element interface: element must inherit property "slot" with the proper type]
expected: FAIL
[AbstractRange interface object length]
expected: FAIL
[AbortController interface: new AbortController() must inherit property "signal" with the proper type]
expected: FAIL
@ -143,12 +116,6 @@
[AbortController interface: new AbortController() must inherit property "abort()" with the proper type]
expected: FAIL
[AbstractRange interface: attribute collapsed]
expected: FAIL
[AbstractRange interface: attribute startOffset]
expected: FAIL
[Document interface: operation prepend([object Object\],[object Object\])]
expected: FAIL
@ -158,21 +125,12 @@
[AbortController interface object length]
expected: FAIL
[Range interface: existence and properties of interface prototype object]
expected: FAIL
[Element interface: operation before([object Object\],[object Object\])]
expected: FAIL
[AbstractRange interface: existence and properties of interface prototype object's "constructor" property]
expected: FAIL
[EventTarget interface: calling dispatchEvent(Event) on new AbortController().signal with too few arguments must throw TypeError]
expected: FAIL
[AbstractRange interface: existence and properties of interface object]
expected: FAIL
[AbortController interface: existence and properties of interface prototype object]
expected: FAIL
@ -182,9 +140,6 @@
[Element interface: attribute slot]
expected: FAIL
[AbstractRange interface object name]
expected: FAIL
[DocumentFragment interface: existence and properties of interface prototype object's @@unscopables property]
expected: FAIL
@ -194,9 +149,6 @@
[Element interface: operation prepend([object Object\],[object Object\])]
expected: FAIL
[StaticRange interface object length]
expected: FAIL
[DocumentType interface: operation after([object Object\],[object Object\])]
expected: FAIL
@ -230,9 +182,6 @@
[Element interface: operation remove()]
expected: FAIL
[AbstractRange interface: existence and properties of interface prototype object's @@unscopables property]
expected: FAIL
[Stringification of new AbortController().signal]
expected: FAIL
@ -242,9 +191,6 @@
[DocumentFragment interface: operation append([object Object\],[object Object\])]
expected: FAIL
[AbstractRange interface: attribute endOffset]
expected: FAIL
[CharacterData interface: operation before([object Object\],[object Object\])]
expected: FAIL
@ -254,9 +200,6 @@
[CharacterData interface: operation after([object Object\],[object Object\])]
expected: FAIL
[StaticRange interface: existence and properties of interface prototype object's @@unscopables property]
expected: FAIL
[Event interface: document.createEvent("Event") must inherit property "composed" with the proper type]
expected: FAIL

View file

@ -1,52 +0,0 @@
[StaticRange-constructor.html]
[Construct static range with endpoints in disconnected trees]
expected: FAIL
[Construct static range with Element startContainer and Text endContainer]
expected: FAIL
[Construct collapsed static range]
expected: FAIL
[Construct static range with Document container]
expected: FAIL
[Construct static range with standalone Node container]
expected: FAIL
[Construct static range with offset greater than length]
expected: FAIL
[Construct static range with Comment container]
expected: FAIL
[Construct inverted static range]
expected: FAIL
[Throw on DocumentType or Attr container]
expected: FAIL
[Construct static range with CDATASection container]
expected: FAIL
[Construct static range with Text container]
expected: FAIL
[Construct static range with Text startContainer and Element endContainer]
expected: FAIL
[Construct static range with DocumentFragment container]
expected: FAIL
[Throw on missing or invalid arguments]
expected: FAIL
[Construct static range with Element container]
expected: FAIL
[Construct static range with ProcessingInstruction container]
expected: FAIL
[Construct static range with endpoints in disconnected documents]
expected: FAIL

View file

@ -37,9 +37,6 @@
[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
@ -70,9 +67,6 @@
[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
@ -85,15 +79,9 @@
[EventTarget interface: new AbortController().signal must inherit property "dispatchEvent(Event)" 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
@ -103,9 +91,6 @@
[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
@ -145,9 +130,6 @@
[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
@ -205,9 +187,6 @@
[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
@ -220,9 +199,6 @@
[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
@ -247,12 +223,6 @@
[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
@ -265,9 +235,6 @@
[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
@ -289,9 +256,6 @@
[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
@ -328,9 +292,6 @@
[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
@ -364,9 +325,6 @@
[XPathEvaluator interface: new XPathEvaluator() must inherit property "createNSResolver(Node)" with the proper type]
expected: FAIL
[StaticRange interface object length]
expected: FAIL
[XPathResult interface: document.evaluate("//*", document.body) must inherit property "resultType" with the proper type]
expected: FAIL
@ -412,9 +370,6 @@
[Document interface: operation createExpression(DOMString, optional XPathNSResolver?)]
expected: FAIL
[AbstractRange interface: attribute endContainer]
expected: FAIL
[AbortSignal interface object length]
expected: FAIL
@ -478,9 +433,6 @@
[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
@ -493,9 +445,6 @@
[CharacterData interface: operation after((Node or DOMString)...)]
expected: FAIL
[AbstractRange interface: attribute endOffset]
expected: FAIL
[XPathExpression interface object length]
expected: FAIL
@ -523,9 +472,6 @@
[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
@ -535,9 +481,6 @@
[XPathResult interface: operation iterateNext()]
expected: FAIL
[StaticRange interface: existence and properties of interface prototype object's @@unscopables property]
expected: FAIL
[Event interface: document.createEvent("Event") must inherit property "composed" with the proper type]
expected: FAIL

View file

@ -1,51 +0,0 @@
[StaticRange-constructor.html]
[Construct static range with Element container]
expected: FAIL
[Construct static range with Text container]
expected: FAIL
[Construct static range with Element startContainer and Text endContainer]
expected: FAIL
[Construct static range with Text startContainer and Element endContainer]
expected: FAIL
[Construct static range with ProcessingInstruction container]
expected: FAIL
[Construct static range with Comment container]
expected: FAIL
[Construct static range with CDATASection container]
expected: FAIL
[Construct static range with Document container]
expected: FAIL
[Construct static range with DocumentFragment container]
expected: FAIL
[Construct collapsed static range]
expected: FAIL
[Construct inverted static range]
expected: FAIL
[Construct static range with offset greater than length]
expected: FAIL
[Construct static range with standalone Node container]
expected: FAIL
[Construct static range with endpoints in disconnected trees]
expected: FAIL
[Construct static range with endpoints in disconnected documents]
expected: FAIL
[Throw on DocumentType or Attr container]
expected: FAIL
[Throw on missing or invalid arguments]
expected: FAIL

View file

@ -13410,7 +13410,7 @@
]
],
"interfaces.html": [
"e1a93db2757a85e2baa2ceeaed3d6f24b0feec8d",
"5461ff50d836f872fdf09defd98575d08fda0061",
[
null,
{}

View file

@ -11,6 +11,7 @@
// IMPORTANT: Do not change the list below without review from a DOM peer!
test_interfaces([
"AbstractRange",
"AnalyserNode",
"AnimationEvent",
"Attr",
@ -222,6 +223,7 @@ test_interfaces([
"Screen",
"Selection",
"ShadowRoot",
"StaticRange",
"StereoPannerNode",
"Storage",
"StorageEvent",