WPT
wpt / dom / ranges / Range-extractContents-around-shadow.html
Spec: DOM ↗
Runs: Chrome 155.0.8042.0 (wpt@55ce71bb9, 2026-09-04) | Firefox 157.0a1 (wpt@5c0dc39b9, 2026-09-04) | Safari 251 preview (wpt@0588f3896, 2026-09-04) | Ladybird 1.0-54a40 (wpt@972e0e100, 2026-09-04) | Servo Servo 0.6 (wpt@2c385f65e, 2026-09-04) | Blitz a50cb8971 (wpt@a95401e4e, 2026-09-03)
View on the Blitz WPT dashboard | Open test on wpt.live | wpt.fyi
| Chrome | Firefox | Safari | Ladybird | Servo | Blitz | |
|---|---|---|---|---|---|---|
| Total | 44/44 | 44/44 | 44/44 | 44/44 | 44/44 | NOT RUN |
| Subtest | Chrome | Firefox | Safari | Ladybird | Servo | Blitz |
|---|---|---|---|---|---|---|
| Range.extractContents() when "<p>abc[def</p><div><shadow-root><span>InnerText</span></shadow-root><span>UnassignedText</span>}</div>" | PASS | PASS | PASS | PASS | PASS | — |
| Range.extractContents() when "<p>abc[def</p><div><shadow-root><span>InnerText</span></shadow-root><span>UnassignedText</span>}</div>": range.extractContents() shouldn't delete the content in the shadow | PASS | PASS | PASS | PASS | PASS | — |
| Range.extractContents() when "<p>abc[def</p><div><shadow-root><span>InnerText</span></shadow-root><span>UnassignedText</span>}</div>": range.extractContents() should delete a part of the text and the unassigned <span> | PASS | PASS | PASS | PASS | PASS | — |
| Range.extractContents() when "<p>abc[def</p><div><shadow-root><span>InnerText</span></shadow-root><span>UnassignedText</span>}</div>": range.extractContents() should clone a part of the text and the unassigned <span> | PASS | PASS | PASS | PASS | PASS | — |
| Range.extractContents() when "<p>abc[def</p><div><shadow-root><span>InnerText</span></shadow-root><span>UnassignedText</span>}</div>": range.extractContents() shouldn't clone the host with the shadow | PASS | PASS | PASS | PASS | PASS | — |
| Range.extractContents() when "<p>abc[def</p><div><shadow-root><span>InnerText</span></shadow-root><span>Unassigned]Text</span></div>" | PASS | PASS | PASS | PASS | PASS | — |
| Range.extractContents() when "<p>abc[def</p><div><shadow-root><span>InnerText</span></shadow-root><span>Unassigned]Text</span></div>": range.extractContents() shouldn't delete the content in the shadow | PASS | PASS | PASS | PASS | PASS | — |
| Range.extractContents() when "<p>abc[def</p><div><shadow-root><span>InnerText</span></shadow-root><span>Unassigned]Text</span></div>": range.extractContents() should delete a part of the text and a part of the unassigned text | PASS | PASS | PASS | PASS | PASS | — |
| Range.extractContents() when "<p>abc[def</p><div><shadow-root><span>InnerText</span></shadow-root><span>Unassigned]Text</span></div>": range.extractContents() should clone a part of the text and a part of the unassigned text | PASS | PASS | PASS | PASS | PASS | — |
| Range.extractContents() when "<p>abc[def</p><div><shadow-root><span>InnerText</span></shadow-root><span>Unassigned]Text</span></div>": range.extractContents() shouldn't clone the host with the shadow | PASS | PASS | PASS | PASS | PASS | — |
| Range.extractContents() when "<div><shadow-root><span>InnerText</span></shadow-root><span>{UnassignedText}</span></div>" | PASS | PASS | PASS | PASS | PASS | — |
| Range.extractContents() when "<div><shadow-root><span>InnerText</span></shadow-root><span>{UnassignedText}</span></div>": range.extractContents() shouldn't delete the content in the shadow | PASS | PASS | PASS | PASS | PASS | — |
| Range.extractContents() when "<div><shadow-root><span>InnerText</span></shadow-root><span>{UnassignedText}</span></div>": range.extractContents() should delete the unassigned text | PASS | PASS | PASS | PASS | PASS | — |
| Range.extractContents() when "<div><shadow-root><span>InnerText</span></shadow-root><span>{UnassignedText}</span></div>": range.extractContents() should clone the unassigned text | PASS | PASS | PASS | PASS | PASS | — |
| Range.extractContents() when "<div><shadow-root><span>InnerText</span></shadow-root>{<span>UnassignedText</span></div><p>abc]def</p>" | PASS | PASS | PASS | PASS | PASS | — |
| Range.extractContents() when "<div><shadow-root><span>InnerText</span></shadow-root>{<span>UnassignedText</span></div><p>abc]def</p>": range.extractContents() shouldn't delete the content in the shadow | PASS | PASS | PASS | PASS | PASS | — |
| Range.extractContents() when "<div><shadow-root><span>InnerText</span></shadow-root>{<span>UnassignedText</span></div><p>abc]def</p>": range.extractContents() should delete the unassigned text and a part of the text | PASS | PASS | PASS | PASS | PASS | — |
| Range.extractContents() when "<div><shadow-root><span>InnerText</span></shadow-root>{<span>UnassignedText</span></div><p>abc]def</p>": range.extractContents() should clone the unassigned <span> and a part of the text | PASS | PASS | PASS | PASS | PASS | — |
| Range.extractContents() when "<div><shadow-root><span>InnerText</span></shadow-root>{<span>UnassignedText</span></div><p>abc]def</p>": range.extractContents() shouldn't clone the host with the shadow | PASS | PASS | PASS | PASS | PASS | — |
| Range.extractContents() when "<div><shadow-root><span>InnerText</span></shadow-root><span>Unassigned[Text</span></div><p>abc]def</p>" | PASS | PASS | PASS | PASS | PASS | — |
| Range.extractContents() when "<div><shadow-root><span>InnerText</span></shadow-root><span>Unassigned[Text</span></div><p>abc]def</p>": range.extractContents() shouldn't delete the content in the shadow | PASS | PASS | PASS | PASS | PASS | — |
| Range.extractContents() when "<div><shadow-root><span>InnerText</span></shadow-root><span>Unassigned[Text</span></div><p>abc]def</p>": range.extractContents() should delete a part of the unassigned text and a part of the text | PASS | PASS | PASS | PASS | PASS | — |
| Range.extractContents() when "<div><shadow-root><span>InnerText</span></shadow-root><span>Unassigned[Text</span></div><p>abc]def</p>": range.extractContents() should clone a part of unassigned text and a part of the text | PASS | PASS | PASS | PASS | PASS | — |
| Range.extractContents() when "<div><shadow-root><span>InnerText</span></shadow-root><span>Unassigned[Text</span></div><p>abc]def</p>": range.extractContents() shouldn't clone the host with the shadow | PASS | PASS | PASS | PASS | PASS | — |
| Range.extractContents() when "<p>abc[def</p><div><shadow-root></slot><span>InnerText</span></shadow-root><slot><span>Assigned]Text</span></div>" | PASS | PASS | PASS | PASS | PASS | — |
| Range.extractContents() when "<p>abc[def</p><div><shadow-root></slot><span>InnerText</span></shadow-root><slot><span>Assigned]Text</span></div>": range.extractContents() shouldn't delete the content in the shadow | PASS | PASS | PASS | PASS | PASS | — |
| Range.extractContents() when "<p>abc[def</p><div><shadow-root></slot><span>InnerText</span></shadow-root><slot><span>Assigned]Text</span></div>": range.extractContents() should delete a part of the text and a part of the assigned text | PASS | PASS | PASS | PASS | PASS | — |
| Range.extractContents() when "<p>abc[def</p><div><shadow-root></slot><span>InnerText</span></shadow-root><slot><span>Assigned]Text</span></div>": range.extractContents() should clone a part of the text and a part of assigned text | PASS | PASS | PASS | PASS | PASS | — |
| Range.extractContents() when "<p>abc[def</p><div><shadow-root></slot><span>InnerText</span></shadow-root><slot><span>Assigned]Text</span></div>": range.extractContents() shouldn't clone the host with the shadow | PASS | PASS | PASS | PASS | PASS | — |
| Range.extractContents() when "<p>abc[def</p><div><shadow-root><span>InnerText</span><slot></slot></shadow-root><span>Assigned]Text</span></div>" | PASS | PASS | PASS | PASS | PASS | — |
| Range.extractContents() when "<p>abc[def</p><div><shadow-root><span>InnerText</span><slot></slot></shadow-root><span>Assigned]Text</span></div>": range.extractContents() shouldn't delete the content in the shadow | PASS | PASS | PASS | PASS | PASS | — |
| Range.extractContents() when "<p>abc[def</p><div><shadow-root><span>InnerText</span><slot></slot></shadow-root><span>Assigned]Text</span></div>": range.extractContents() should delete a part of the text and a part of the assigned text | PASS | PASS | PASS | PASS | PASS | — |
| Range.extractContents() when "<p>abc[def</p><div><shadow-root><span>InnerText</span><slot></slot></shadow-root><span>Assigned]Text</span></div>": range.extractContents() should clone a part of the text and a part of assigned text | PASS | PASS | PASS | PASS | PASS | — |
| Range.extractContents() when "<p>abc[def</p><div><shadow-root><span>InnerText</span><slot></slot></shadow-root><span>Assigned]Text</span></div>": range.extractContents() shouldn't clone the host with the shadow | PASS | PASS | PASS | PASS | PASS | — |
| Range.extractContents() when "<p>abc[def</p><div><shadow-root><span>InnerText</span><slot name="assigned"></slot></shadow-root><span>Assigned]Text</span><span>UnassignedText</span></div>" | PASS | PASS | PASS | PASS | PASS | — |
| Range.extractContents() when "<p>abc[def</p><div><shadow-root><span>InnerText</span><slot name="assigned"></slot></shadow-root><span>Assigned]Text</span><span>UnassignedText</span></div>": range.extractContents() shouldn't delete the content in the shadow | PASS | PASS | PASS | PASS | PASS | — |
| Range.extractContents() when "<p>abc[def</p><div><shadow-root><span>InnerText</span><slot name="assigned"></slot></shadow-root><span>Assigned]Text</span><span>UnassignedText</span></div>": range.extractContents() should delete a part of the text and a part of the assigned text | PASS | PASS | PASS | PASS | PASS | — |
| Range.extractContents() when "<p>abc[def</p><div><shadow-root><span>InnerText</span><slot name="assigned"></slot></shadow-root><span>Assigned]Text</span><span>UnassignedText</span></div>": range.extractContents() should clone a part of the text and a part of assigned text | PASS | PASS | PASS | PASS | PASS | — |
| Range.extractContents() when "<p>abc[def</p><div><shadow-root><span>InnerText</span><slot name="assigned"></slot></shadow-root><span>Assigned]Text</span><span>UnassignedText</span></div>": range.extractContents() shouldn't clone the host with the shadow | PASS | PASS | PASS | PASS | PASS | — |
| Range.extractContents() when "<p>abc[def</p><div><shadow-root><span>InnerText</span><slot name="assigned"></slot></shadow-root><span>UnassignedText</span><span>Assigned]Text</span></div>" | PASS | PASS | PASS | PASS | PASS | — |
| Range.extractContents() when "<p>abc[def</p><div><shadow-root><span>InnerText</span><slot name="assigned"></slot></shadow-root><span>UnassignedText</span><span>Assigned]Text</span></div>": range.extractContents() shouldn't delete the content in the shadow | PASS | PASS | PASS | PASS | PASS | — |
| Range.extractContents() when "<p>abc[def</p><div><shadow-root><span>InnerText</span><slot name="assigned"></slot></shadow-root><span>UnassignedText</span><span>Assigned]Text</span></div>": range.extractContents() should delete a part of the text, the unassigned <span> and a part of the assigned text | PASS | PASS | PASS | PASS | PASS | — |
| Range.extractContents() when "<p>abc[def</p><div><shadow-root><span>InnerText</span><slot name="assigned"></slot></shadow-root><span>UnassignedText</span><span>Assigned]Text</span></div>": range.extractContents() should clone a part of the text, the unassigned <span> and a part of assigned text | PASS | PASS | PASS | PASS | PASS | — |
| Range.extractContents() when "<p>abc[def</p><div><shadow-root><span>InnerText</span><slot name="assigned"></slot></shadow-root><span>UnassignedText</span><span>Assigned]Text</span></div>": range.extractContents() shouldn't clone the host with the shadow | PASS | PASS | PASS | PASS | PASS | — |