| Index: third_party/WebKit/LayoutTests/imported/wpt/custom-elements/parser/parser-constructs-custom-element-synchronously.html
|
| diff --git a/third_party/WebKit/LayoutTests/imported/wpt/custom-elements/parser/parser-constructs-custom-element-synchronously.html b/third_party/WebKit/LayoutTests/imported/wpt/custom-elements/parser/parser-constructs-custom-element-synchronously.html
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..206aa17f20b66dfbbbb8f271cbc070ba821bbb26
|
| --- /dev/null
|
| +++ b/third_party/WebKit/LayoutTests/imported/wpt/custom-elements/parser/parser-constructs-custom-element-synchronously.html
|
| @@ -0,0 +1,51 @@
|
| +<!DOCTYPE html>
|
| +<html>
|
| +<head>
|
| +<title>Custom Elements: Changes to the HTML parser</title>
|
| +<meta name="author" title="Ryosuke Niwa" href="mailto:rniwa@webkit.org">
|
| +<meta name="assert" content="HTML parser must construct a custom element synchronously">
|
| +<link rel="help" href="https://html.spec.whatwg.org/#create-an-element-for-the-token">
|
| +<link rel="help" href="https://dom.spec.whatwg.org/#concept-create-element">
|
| +<script src="/resources/testharness.js"></script>
|
| +<script src="/resources/testharnessreport.js"></script>
|
| +</head>
|
| +<body>
|
| +<div id="log"></div>
|
| +<script>
|
| +
|
| +var childElementCountInConstructor;
|
| +var containerChildNodesInConstructor = [];
|
| +var containerNextSiblingInConstructor;
|
| +class MyCustomElement extends HTMLElement {
|
| + constructor() {
|
| + super();
|
| + var container = document.getElementById('custom-element-container');
|
| + for (var i = 0; i < container.childNodes.length; i++)
|
| + containerChildNodesInConstructor.push(container.childNodes[i]);
|
| + containerNextSiblingInConstructor = container.nextSibling;
|
| + }
|
| +};
|
| +customElements.define('my-custom-element', MyCustomElement);
|
| +
|
| +</script>
|
| +<div id="custom-element-container">
|
| + <span id="custom-element-previous-element"></span>
|
| + <my-custom-element></my-custom-element>
|
| + <div id="custom-element-next-element"></div>
|
| +</div>
|
| +<script>
|
| +
|
| +test(function () {
|
| + var instance = document.querySelector('my-custom-element');
|
| +
|
| + assert_equals(containerChildNodesInConstructor.length, 3);
|
| + assert_equals(containerChildNodesInConstructor[0], instance.parentNode.firstChild);
|
| + assert_equals(containerChildNodesInConstructor[1], document.getElementById('custom-element-previous-element'));
|
| + assert_equals(containerChildNodesInConstructor[2], instance.previousSibling);
|
| + assert_equals(containerNextSiblingInConstructor, null);
|
| +
|
| +}, 'HTML parser must only append nodes that appear before a custom element before instantiating the custom element');
|
| +
|
| +</script>
|
| +</body>
|
| +</html>
|
|
|