summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/html/syntax/xmldecl
diff options
context:
space:
mode:
Diffstat (limited to 'testing/web-platform/tests/html/syntax/xmldecl')
-rw-r--r--testing/web-platform/tests/html/syntax/xmldecl/support/ENCODING-trail.htmbin0 -> 8350 bytes
-rw-r--r--testing/web-platform/tests/html/syntax/xmldecl/support/ENCODING.htm4
-rw-r--r--testing/web-platform/tests/html/syntax/xmldecl/support/VERSION-trail.htmbin0 -> 8348 bytes
-rw-r--r--testing/web-platform/tests/html/syntax/xmldecl/support/VERSION.htm4
-rw-r--r--testing/web-platform/tests/html/syntax/xmldecl/support/WINDOWS-trail.htmbin0 -> 8349 bytes
-rw-r--r--testing/web-platform/tests/html/syntax/xmldecl/support/WINDOWS.htm4
-rw-r--r--testing/web-platform/tests/html/syntax/xmldecl/support/XML-trail.htmbin0 -> 8331 bytes
-rw-r--r--testing/web-platform/tests/html/syntax/xmldecl/support/XML.htm4
-rw-r--r--testing/web-platform/tests/html/syntax/xmldecl/support/ascii-decl-for-utf-16.htm4
-rw-r--r--testing/web-platform/tests/html/syntax/xmldecl/support/baseline-trail.htmbin0 -> 8318 bytes
-rw-r--r--testing/web-platform/tests/html/syntax/xmldecl/support/baseline.htm4
-rw-r--r--testing/web-platform/tests/html/syntax/xmldecl/support/cp1251-trail.htmbin0 -> 8335 bytes
-rw-r--r--testing/web-platform/tests/html/syntax/xmldecl/support/cp1251.htm4
-rw-r--r--testing/web-platform/tests/html/syntax/xmldecl/support/encoding-equals-encoding-trail.htmbin0 -> 8343 bytes
-rw-r--r--testing/web-platform/tests/html/syntax/xmldecl/support/encoding-equals-encoding.htm4
-rw-r--r--testing/web-platform/tests/html/syntax/xmldecl/support/encodingencoding-trail.htmbin0 -> 8341 bytes
-rw-r--r--testing/web-platform/tests/html/syntax/xmldecl/support/encodingencoding.htm4
-rw-r--r--testing/web-platform/tests/html/syntax/xmldecl/support/gt-between-xml-and-encoding-trail.htmbin0 -> 8374 bytes
-rw-r--r--testing/web-platform/tests/html/syntax/xmldecl/support/gt-between-xml-and-encoding.htm4
-rw-r--r--testing/web-platform/tests/html/syntax/xmldecl/support/incomplete-utf-16be-and-meta-trail.htmbin0 -> 8302 bytes
-rw-r--r--testing/web-platform/tests/html/syntax/xmldecl/support/incomplete-utf-16be-and-meta.htmbin0 -> 110 bytes
-rw-r--r--testing/web-platform/tests/html/syntax/xmldecl/support/incomplete-utf-16le-and-meta-trail.htmbin0 -> 8304 bytes
-rw-r--r--testing/web-platform/tests/html/syntax/xmldecl/support/incomplete-utf-16le-and-meta.htmbin0 -> 112 bytes
-rw-r--r--testing/web-platform/tests/html/syntax/xmldecl/support/kilobyte-after-trail.htmbin0 -> 9362 bytes
-rw-r--r--testing/web-platform/tests/html/syntax/xmldecl/support/kilobyte-after.htm4
-rw-r--r--testing/web-platform/tests/html/syntax/xmldecl/support/kilobyte-before-trail.htmbin0 -> 9363 bytes
-rw-r--r--testing/web-platform/tests/html/syntax/xmldecl/support/kilobyte-before.htm4
-rw-r--r--testing/web-platform/tests/html/syntax/xmldecl/support/kilobyte-plus-one-after-trail.htmbin0 -> 9363 bytes
-rw-r--r--testing/web-platform/tests/html/syntax/xmldecl/support/kilobyte-plus-one-after.htm4
-rw-r--r--testing/web-platform/tests/html/syntax/xmldecl/support/kilobyte-plus-one-before-trail.htmbin0 -> 9364 bytes
-rw-r--r--testing/web-platform/tests/html/syntax/xmldecl/support/kilobyte-plus-one-before.htm4
-rw-r--r--testing/web-platform/tests/html/syntax/xmldecl/support/letter-between-xml-and-encoding-trail.htmbin0 -> 8378 bytes
-rw-r--r--testing/web-platform/tests/html/syntax/xmldecl/support/letter-between-xml-and-encoding.htm4
-rw-r--r--testing/web-platform/tests/html/syntax/xmldecl/support/lt-between-xml-and-encoding-trail.htmbin0 -> 8374 bytes
-rw-r--r--testing/web-platform/tests/html/syntax/xmldecl/support/lt-between-xml-and-encoding.htm4
-rw-r--r--testing/web-platform/tests/html/syntax/xmldecl/support/meta-inside-xml-charset-before-encoding-trail.htmbin0 -> 8449 bytes
-rw-r--r--testing/web-platform/tests/html/syntax/xmldecl/support/meta-inside-xml-charset-before-encoding.htm4
-rw-r--r--testing/web-platform/tests/html/syntax/xmldecl/support/meta-inside-xml-encoding-before-charset-trail.htmbin0 -> 8448 bytes
-rw-r--r--testing/web-platform/tests/html/syntax/xmldecl/support/meta-inside-xml-encoding-before-charset.htm4
-rw-r--r--testing/web-platform/tests/html/syntax/xmldecl/support/no-quotes-space-trail.htmbin0 -> 8383 bytes
-rw-r--r--testing/web-platform/tests/html/syntax/xmldecl/support/no-quotes-space.htm4
-rw-r--r--testing/web-platform/tests/html/syntax/xmldecl/support/no-quotes-trail.htmbin0 -> 8387 bytes
-rw-r--r--testing/web-platform/tests/html/syntax/xmldecl/support/no-quotes.htm4
-rw-r--r--testing/web-platform/tests/html/syntax/xmldecl/support/no-version-or-space-or-trailing-question-trail.htmbin0 -> 8346 bytes
-rw-r--r--testing/web-platform/tests/html/syntax/xmldecl/support/no-version-or-space-or-trailing-question-trailing-body-single-quotes-spaces-and-line-breaks-around-equals-trail.htmbin0 -> 8450 bytes
-rw-r--r--testing/web-platform/tests/html/syntax/xmldecl/support/no-version-or-space-or-trailing-question-trailing-body-single-quotes-spaces-and-line-breaks-around-equals.htm6
-rw-r--r--testing/web-platform/tests/html/syntax/xmldecl/support/no-version-or-space-or-trailing-question-trailing-body-single-quotes-spaces-around-equals-trail.htmbin0 -> 8447 bytes
-rw-r--r--testing/web-platform/tests/html/syntax/xmldecl/support/no-version-or-space-or-trailing-question-trailing-body-single-quotes-spaces-around-equals.htm4
-rw-r--r--testing/web-platform/tests/html/syntax/xmldecl/support/no-version-or-space-or-trailing-question-trailing-body-single-quotes-trail.htmbin0 -> 8415 bytes
-rw-r--r--testing/web-platform/tests/html/syntax/xmldecl/support/no-version-or-space-or-trailing-question-trailing-body-single-quotes.htm4
-rw-r--r--testing/web-platform/tests/html/syntax/xmldecl/support/no-version-or-space-or-trailing-question-trailing-body-trail.htmbin0 -> 8395 bytes
-rw-r--r--testing/web-platform/tests/html/syntax/xmldecl/support/no-version-or-space-or-trailing-question-trailing-body.htm4
-rw-r--r--testing/web-platform/tests/html/syntax/xmldecl/support/no-version-or-space-or-trailing-question-trailing-lt-trail.htmbin0 -> 8391 bytes
-rw-r--r--testing/web-platform/tests/html/syntax/xmldecl/support/no-version-or-space-or-trailing-question-trailing-lt.htm4
-rw-r--r--testing/web-platform/tests/html/syntax/xmldecl/support/no-version-or-space-or-trailing-question.htm4
-rw-r--r--testing/web-platform/tests/html/syntax/xmldecl/support/no-version-or-space-trail.htmbin0 -> 8321 bytes
-rw-r--r--testing/web-platform/tests/html/syntax/xmldecl/support/no-version-or-space.htm4
-rw-r--r--testing/web-platform/tests/html/syntax/xmldecl/support/no-version-trail.htmbin0 -> 8313 bytes
-rw-r--r--testing/web-platform/tests/html/syntax/xmldecl/support/no-version.htm4
-rw-r--r--testing/web-platform/tests/html/syntax/xmldecl/support/one-around-equals-trail.htmbin0 -> 8345 bytes
-rw-r--r--testing/web-platform/tests/html/syntax/xmldecl/support/one-around-equals.htm4
-rw-r--r--testing/web-platform/tests/html/syntax/xmldecl/support/one-around-label-trail.htmbin0 -> 8344 bytes
-rw-r--r--testing/web-platform/tests/html/syntax/xmldecl/support/one-around-label.htm4
-rw-r--r--testing/web-platform/tests/html/syntax/xmldecl/support/replacement-trail.htmbin0 -> 8375 bytes
-rw-r--r--testing/web-platform/tests/html/syntax/xmldecl/support/replacement.htm3
-rw-r--r--testing/web-platform/tests/html/syntax/xmldecl/support/space-around-label-trail.htmbin0 -> 8346 bytes
-rw-r--r--testing/web-platform/tests/html/syntax/xmldecl/support/space-around-label.htm4
-rw-r--r--testing/web-platform/tests/html/syntax/xmldecl/support/space-before-trail.htmbin0 -> 8337 bytes
-rw-r--r--testing/web-platform/tests/html/syntax/xmldecl/support/space-before.htm4
-rw-r--r--testing/web-platform/tests/html/syntax/xmldecl/support/test_support.js26
-rw-r--r--testing/web-platform/tests/html/syntax/xmldecl/support/trickle.py12
-rw-r--r--testing/web-platform/tests/html/syntax/xmldecl/support/unmatched-quotes-trail.htmbin0 -> 8377 bytes
-rw-r--r--testing/web-platform/tests/html/syntax/xmldecl/support/unmatched-quotes.htm4
-rw-r--r--testing/web-platform/tests/html/syntax/xmldecl/support/utf-16be-and-meta-trail.htmbin0 -> 8304 bytes
-rw-r--r--testing/web-platform/tests/html/syntax/xmldecl/support/utf-16be-and-meta.htmbin0 -> 112 bytes
-rw-r--r--testing/web-platform/tests/html/syntax/xmldecl/support/utf-16be-vs-http-trail.htmlbin0 -> 8278 bytes
-rw-r--r--testing/web-platform/tests/html/syntax/xmldecl/support/utf-16be-vs-http-trail.html.headers1
-rw-r--r--testing/web-platform/tests/html/syntax/xmldecl/support/utf-16be-vs-http.htmlbin0 -> 86 bytes
-rw-r--r--testing/web-platform/tests/html/syntax/xmldecl/support/utf-16be-vs-http.html.headers1
-rw-r--r--testing/web-platform/tests/html/syntax/xmldecl/support/utf-16le-and-meta-trail.htmbin0 -> 8306 bytes
-rw-r--r--testing/web-platform/tests/html/syntax/xmldecl/support/utf-16le-and-meta.htmbin0 -> 114 bytes
-rw-r--r--testing/web-platform/tests/html/syntax/xmldecl/support/utf-16le-vs-http-trail.htmlbin0 -> 8277 bytes
-rw-r--r--testing/web-platform/tests/html/syntax/xmldecl/support/utf-16le-vs-http-trail.html.headers1
-rw-r--r--testing/web-platform/tests/html/syntax/xmldecl/support/utf-16le-vs-http.htmlbin0 -> 85 bytes
-rw-r--r--testing/web-platform/tests/html/syntax/xmldecl/support/utf-16le-vs-http.html.headers1
-rw-r--r--testing/web-platform/tests/html/syntax/xmldecl/support/xml-and-meta-trail.htmbin0 -> 8397 bytes
-rw-r--r--testing/web-platform/tests/html/syntax/xmldecl/support/xml-and-meta.htm5
-rw-r--r--testing/web-platform/tests/html/syntax/xmldecl/support/xml-vs-http-trail.htmlbin0 -> 8318 bytes
-rw-r--r--testing/web-platform/tests/html/syntax/xmldecl/support/xml-vs-http-trail.html.headers1
-rw-r--r--testing/web-platform/tests/html/syntax/xmldecl/support/xml-vs-http.html4
-rw-r--r--testing/web-platform/tests/html/syntax/xmldecl/support/xml-vs-http.html.headers1
-rw-r--r--testing/web-platform/tests/html/syntax/xmldecl/support/zero-around-equals-trail.htmbin0 -> 8345 bytes
-rw-r--r--testing/web-platform/tests/html/syntax/xmldecl/support/zero-around-equals.htmbin0 -> 153 bytes
-rw-r--r--testing/web-platform/tests/html/syntax/xmldecl/support/zero-around-label-trail.htmbin0 -> 8344 bytes
-rw-r--r--testing/web-platform/tests/html/syntax/xmldecl/support/zero-around-label.htmbin0 -> 152 bytes
-rw-r--r--testing/web-platform/tests/html/syntax/xmldecl/xmldecl-1.html59
-rw-r--r--testing/web-platform/tests/html/syntax/xmldecl/xmldecl-2.html78
-rw-r--r--testing/web-platform/tests/html/syntax/xmldecl/xmldecl-3.html21
98 files changed, 348 insertions, 0 deletions
diff --git a/testing/web-platform/tests/html/syntax/xmldecl/support/ENCODING-trail.htm b/testing/web-platform/tests/html/syntax/xmldecl/support/ENCODING-trail.htm
new file mode 100644
index 0000000000..d01acf5c91
--- /dev/null
+++ b/testing/web-platform/tests/html/syntax/xmldecl/support/ENCODING-trail.htm
Binary files differ
diff --git a/testing/web-platform/tests/html/syntax/xmldecl/support/ENCODING.htm b/testing/web-platform/tests/html/syntax/xmldecl/support/ENCODING.htm
new file mode 100644
index 0000000000..8e9cf2c373
--- /dev/null
+++ b/testing/web-platform/tests/html/syntax/xmldecl/support/ENCODING.htm
@@ -0,0 +1,4 @@
+<?xml version="1.0" ENCODING="windows-1251"?>
+<p>XML decl with upper-case <code>ENCODING=</code></p>
+<p>Test: æ</p>
+<p>If &#x0436;, XML decl takes effect</p>
diff --git a/testing/web-platform/tests/html/syntax/xmldecl/support/VERSION-trail.htm b/testing/web-platform/tests/html/syntax/xmldecl/support/VERSION-trail.htm
new file mode 100644
index 0000000000..0859f3bd43
--- /dev/null
+++ b/testing/web-platform/tests/html/syntax/xmldecl/support/VERSION-trail.htm
Binary files differ
diff --git a/testing/web-platform/tests/html/syntax/xmldecl/support/VERSION.htm b/testing/web-platform/tests/html/syntax/xmldecl/support/VERSION.htm
new file mode 100644
index 0000000000..a98f7b9533
--- /dev/null
+++ b/testing/web-platform/tests/html/syntax/xmldecl/support/VERSION.htm
@@ -0,0 +1,4 @@
+<?xml VERSION="1.0" encoding="windows-1251"?>
+<p>XML decl with upper-case <code>VERSION</code></p>
+<p>Test: æ</p>
+<p>If &#x0436;, XML decl takes effect</p>
diff --git a/testing/web-platform/tests/html/syntax/xmldecl/support/WINDOWS-trail.htm b/testing/web-platform/tests/html/syntax/xmldecl/support/WINDOWS-trail.htm
new file mode 100644
index 0000000000..909b5ce368
--- /dev/null
+++ b/testing/web-platform/tests/html/syntax/xmldecl/support/WINDOWS-trail.htm
Binary files differ
diff --git a/testing/web-platform/tests/html/syntax/xmldecl/support/WINDOWS.htm b/testing/web-platform/tests/html/syntax/xmldecl/support/WINDOWS.htm
new file mode 100644
index 0000000000..25f068fbb4
--- /dev/null
+++ b/testing/web-platform/tests/html/syntax/xmldecl/support/WINDOWS.htm
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="WINDOWS-1251"?>
+<p>Normal XML decl with upper case encoding label</p>
+<p>Test: æ</p>
+<p>If &#x0436;, XML decl takes effect</p>
diff --git a/testing/web-platform/tests/html/syntax/xmldecl/support/XML-trail.htm b/testing/web-platform/tests/html/syntax/xmldecl/support/XML-trail.htm
new file mode 100644
index 0000000000..f9bb3d5d9b
--- /dev/null
+++ b/testing/web-platform/tests/html/syntax/xmldecl/support/XML-trail.htm
Binary files differ
diff --git a/testing/web-platform/tests/html/syntax/xmldecl/support/XML.htm b/testing/web-platform/tests/html/syntax/xmldecl/support/XML.htm
new file mode 100644
index 0000000000..c77b422590
--- /dev/null
+++ b/testing/web-platform/tests/html/syntax/xmldecl/support/XML.htm
@@ -0,0 +1,4 @@
+<?XML version="1.0" encoding="windows-1251"?>
+<p>XML decl with upper case XML</p>
+<p>Test: æ</p>
+<p>If &#x0436;, XML decl takes effect</p>
diff --git a/testing/web-platform/tests/html/syntax/xmldecl/support/ascii-decl-for-utf-16.htm b/testing/web-platform/tests/html/syntax/xmldecl/support/ascii-decl-for-utf-16.htm
new file mode 100644
index 0000000000..0c5e20b33e
--- /dev/null
+++ b/testing/web-platform/tests/html/syntax/xmldecl/support/ascii-decl-for-utf-16.htm
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-16"?>
+<p>Normal ASCII-based XML decl declares UTF-16, file is not UTF-16</p>
+<p>Test: æ</p>
+<p>If &#xFFFD;, XML decl takes effect as UTF-8</p>
diff --git a/testing/web-platform/tests/html/syntax/xmldecl/support/baseline-trail.htm b/testing/web-platform/tests/html/syntax/xmldecl/support/baseline-trail.htm
new file mode 100644
index 0000000000..e9c0352bf7
--- /dev/null
+++ b/testing/web-platform/tests/html/syntax/xmldecl/support/baseline-trail.htm
Binary files differ
diff --git a/testing/web-platform/tests/html/syntax/xmldecl/support/baseline.htm b/testing/web-platform/tests/html/syntax/xmldecl/support/baseline.htm
new file mode 100644
index 0000000000..ff720a2da2
--- /dev/null
+++ b/testing/web-platform/tests/html/syntax/xmldecl/support/baseline.htm
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="windows-1251"?>
+<p>Normal XML decl</p>
+<p>Test: æ</p>
+<p>If &#x0436;, XML decl takes effect</p>
diff --git a/testing/web-platform/tests/html/syntax/xmldecl/support/cp1251-trail.htm b/testing/web-platform/tests/html/syntax/xmldecl/support/cp1251-trail.htm
new file mode 100644
index 0000000000..16687e7507
--- /dev/null
+++ b/testing/web-platform/tests/html/syntax/xmldecl/support/cp1251-trail.htm
Binary files differ
diff --git a/testing/web-platform/tests/html/syntax/xmldecl/support/cp1251.htm b/testing/web-platform/tests/html/syntax/xmldecl/support/cp1251.htm
new file mode 100644
index 0000000000..d928084097
--- /dev/null
+++ b/testing/web-platform/tests/html/syntax/xmldecl/support/cp1251.htm
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="cp1251"?>
+<p>Normal XML decl with non-primary label</p>
+<p>Test: æ</p>
+<p>If &#x0436;, XML decl takes effect</p>
diff --git a/testing/web-platform/tests/html/syntax/xmldecl/support/encoding-equals-encoding-trail.htm b/testing/web-platform/tests/html/syntax/xmldecl/support/encoding-equals-encoding-trail.htm
new file mode 100644
index 0000000000..5d08852601
--- /dev/null
+++ b/testing/web-platform/tests/html/syntax/xmldecl/support/encoding-equals-encoding-trail.htm
Binary files differ
diff --git a/testing/web-platform/tests/html/syntax/xmldecl/support/encoding-equals-encoding.htm b/testing/web-platform/tests/html/syntax/xmldecl/support/encoding-equals-encoding.htm
new file mode 100644
index 0000000000..fd12c188dc
--- /dev/null
+++ b/testing/web-platform/tests/html/syntax/xmldecl/support/encoding-equals-encoding.htm
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding=encoding="windows-1251"?>
+<p><code>encoding=encoding=</code></p>
+<p>Test: æ</p>
+<p>If &#x0436;, XML decl takes effect</p>
diff --git a/testing/web-platform/tests/html/syntax/xmldecl/support/encodingencoding-trail.htm b/testing/web-platform/tests/html/syntax/xmldecl/support/encodingencoding-trail.htm
new file mode 100644
index 0000000000..fee1949a10
--- /dev/null
+++ b/testing/web-platform/tests/html/syntax/xmldecl/support/encodingencoding-trail.htm
Binary files differ
diff --git a/testing/web-platform/tests/html/syntax/xmldecl/support/encodingencoding.htm b/testing/web-platform/tests/html/syntax/xmldecl/support/encodingencoding.htm
new file mode 100644
index 0000000000..67a3900d68
--- /dev/null
+++ b/testing/web-platform/tests/html/syntax/xmldecl/support/encodingencoding.htm
@@ -0,0 +1,4 @@
+<?xml version="1.0" encodingencoding="windows-1251"?>
+<p><code>encodingencoding=</code></p>
+<p>Test: æ</p>
+<p>If &#x0436;, XML decl takes effect</p>
diff --git a/testing/web-platform/tests/html/syntax/xmldecl/support/gt-between-xml-and-encoding-trail.htm b/testing/web-platform/tests/html/syntax/xmldecl/support/gt-between-xml-and-encoding-trail.htm
new file mode 100644
index 0000000000..f5078bf6be
--- /dev/null
+++ b/testing/web-platform/tests/html/syntax/xmldecl/support/gt-between-xml-and-encoding-trail.htm
Binary files differ
diff --git a/testing/web-platform/tests/html/syntax/xmldecl/support/gt-between-xml-and-encoding.htm b/testing/web-platform/tests/html/syntax/xmldecl/support/gt-between-xml-and-encoding.htm
new file mode 100644
index 0000000000..6427b6afd8
--- /dev/null
+++ b/testing/web-platform/tests/html/syntax/xmldecl/support/gt-between-xml-and-encoding.htm
@@ -0,0 +1,4 @@
+<?xml>encoding="windows-1251"?>
+<p>XML decl without version with &gt; between <code>xml</code> and <code>encoding</code></p>
+<p>Test: æ</p>
+<p>If &#x0436;, XML decl takes effect</p>
diff --git a/testing/web-platform/tests/html/syntax/xmldecl/support/incomplete-utf-16be-and-meta-trail.htm b/testing/web-platform/tests/html/syntax/xmldecl/support/incomplete-utf-16be-and-meta-trail.htm
new file mode 100644
index 0000000000..afee7ba0eb
--- /dev/null
+++ b/testing/web-platform/tests/html/syntax/xmldecl/support/incomplete-utf-16be-and-meta-trail.htm
Binary files differ
diff --git a/testing/web-platform/tests/html/syntax/xmldecl/support/incomplete-utf-16be-and-meta.htm b/testing/web-platform/tests/html/syntax/xmldecl/support/incomplete-utf-16be-and-meta.htm
new file mode 100644
index 0000000000..231c6551ab
--- /dev/null
+++ b/testing/web-platform/tests/html/syntax/xmldecl/support/incomplete-utf-16be-and-meta.htm
Binary files differ
diff --git a/testing/web-platform/tests/html/syntax/xmldecl/support/incomplete-utf-16le-and-meta-trail.htm b/testing/web-platform/tests/html/syntax/xmldecl/support/incomplete-utf-16le-and-meta-trail.htm
new file mode 100644
index 0000000000..a81fcb8f15
--- /dev/null
+++ b/testing/web-platform/tests/html/syntax/xmldecl/support/incomplete-utf-16le-and-meta-trail.htm
Binary files differ
diff --git a/testing/web-platform/tests/html/syntax/xmldecl/support/incomplete-utf-16le-and-meta.htm b/testing/web-platform/tests/html/syntax/xmldecl/support/incomplete-utf-16le-and-meta.htm
new file mode 100644
index 0000000000..77f511f48d
--- /dev/null
+++ b/testing/web-platform/tests/html/syntax/xmldecl/support/incomplete-utf-16le-and-meta.htm
Binary files differ
diff --git a/testing/web-platform/tests/html/syntax/xmldecl/support/kilobyte-after-trail.htm b/testing/web-platform/tests/html/syntax/xmldecl/support/kilobyte-after-trail.htm
new file mode 100644
index 0000000000..71c61d11f7
--- /dev/null
+++ b/testing/web-platform/tests/html/syntax/xmldecl/support/kilobyte-after-trail.htm
Binary files differ
diff --git a/testing/web-platform/tests/html/syntax/xmldecl/support/kilobyte-after.htm b/testing/web-platform/tests/html/syntax/xmldecl/support/kilobyte-after.htm
new file mode 100644
index 0000000000..76119c69a3
--- /dev/null
+++ b/testing/web-platform/tests/html/syntax/xmldecl/support/kilobyte-after.htm
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="windows-1251" ?>
+<p>Normal XML decl with whitespace after encoding such that &gt; is the 1024th byte</p>
+<p>Test: æ</p>
+<p>If &#x0436;, XML decl takes effect</p>
diff --git a/testing/web-platform/tests/html/syntax/xmldecl/support/kilobyte-before-trail.htm b/testing/web-platform/tests/html/syntax/xmldecl/support/kilobyte-before-trail.htm
new file mode 100644
index 0000000000..f9ecc9f081
--- /dev/null
+++ b/testing/web-platform/tests/html/syntax/xmldecl/support/kilobyte-before-trail.htm
Binary files differ
diff --git a/testing/web-platform/tests/html/syntax/xmldecl/support/kilobyte-before.htm b/testing/web-platform/tests/html/syntax/xmldecl/support/kilobyte-before.htm
new file mode 100644
index 0000000000..8e209886a1
--- /dev/null
+++ b/testing/web-platform/tests/html/syntax/xmldecl/support/kilobyte-before.htm
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="windows-1251"?>
+<p>Normal XML decl with whitespace before encoding such that &gt; is the 1024th byte</p>
+<p>Test: æ</p>
+<p>If &#x0436;, XML decl takes effect</p>
diff --git a/testing/web-platform/tests/html/syntax/xmldecl/support/kilobyte-plus-one-after-trail.htm b/testing/web-platform/tests/html/syntax/xmldecl/support/kilobyte-plus-one-after-trail.htm
new file mode 100644
index 0000000000..2f9513bc18
--- /dev/null
+++ b/testing/web-platform/tests/html/syntax/xmldecl/support/kilobyte-plus-one-after-trail.htm
Binary files differ
diff --git a/testing/web-platform/tests/html/syntax/xmldecl/support/kilobyte-plus-one-after.htm b/testing/web-platform/tests/html/syntax/xmldecl/support/kilobyte-plus-one-after.htm
new file mode 100644
index 0000000000..8a837b5e97
--- /dev/null
+++ b/testing/web-platform/tests/html/syntax/xmldecl/support/kilobyte-plus-one-after.htm
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="windows-1251" ?>
+<p>Normal XML decl with whitespace after encoding such that &gt; is the 1025th byte</p>
+<p>Test: æ</p>
+<p>If &#x0436;, XML decl takes effect</p>
diff --git a/testing/web-platform/tests/html/syntax/xmldecl/support/kilobyte-plus-one-before-trail.htm b/testing/web-platform/tests/html/syntax/xmldecl/support/kilobyte-plus-one-before-trail.htm
new file mode 100644
index 0000000000..1f3fa5ad9e
--- /dev/null
+++ b/testing/web-platform/tests/html/syntax/xmldecl/support/kilobyte-plus-one-before-trail.htm
Binary files differ
diff --git a/testing/web-platform/tests/html/syntax/xmldecl/support/kilobyte-plus-one-before.htm b/testing/web-platform/tests/html/syntax/xmldecl/support/kilobyte-plus-one-before.htm
new file mode 100644
index 0000000000..f0ddd21aa2
--- /dev/null
+++ b/testing/web-platform/tests/html/syntax/xmldecl/support/kilobyte-plus-one-before.htm
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="windows-1251"?>
+<p>Normal XML decl with whitespace before encoding such that &gt; is the 1025th byte</p>
+<p>Test: æ</p>
+<p>If &#x0436;, XML decl takes effect</p>
diff --git a/testing/web-platform/tests/html/syntax/xmldecl/support/letter-between-xml-and-encoding-trail.htm b/testing/web-platform/tests/html/syntax/xmldecl/support/letter-between-xml-and-encoding-trail.htm
new file mode 100644
index 0000000000..bafb01454d
--- /dev/null
+++ b/testing/web-platform/tests/html/syntax/xmldecl/support/letter-between-xml-and-encoding-trail.htm
Binary files differ
diff --git a/testing/web-platform/tests/html/syntax/xmldecl/support/letter-between-xml-and-encoding.htm b/testing/web-platform/tests/html/syntax/xmldecl/support/letter-between-xml-and-encoding.htm
new file mode 100644
index 0000000000..93d012c85e
--- /dev/null
+++ b/testing/web-platform/tests/html/syntax/xmldecl/support/letter-between-xml-and-encoding.htm
@@ -0,0 +1,4 @@
+<?xmlaencoding="windows-1251"?>
+<p>XML decl without version with letter a between <code>xml</code> and <code>encoding</code></p>
+<p>Test: æ</p>
+<p>If &#x0436;, XML decl takes effect</p>
diff --git a/testing/web-platform/tests/html/syntax/xmldecl/support/lt-between-xml-and-encoding-trail.htm b/testing/web-platform/tests/html/syntax/xmldecl/support/lt-between-xml-and-encoding-trail.htm
new file mode 100644
index 0000000000..65b6900357
--- /dev/null
+++ b/testing/web-platform/tests/html/syntax/xmldecl/support/lt-between-xml-and-encoding-trail.htm
Binary files differ
diff --git a/testing/web-platform/tests/html/syntax/xmldecl/support/lt-between-xml-and-encoding.htm b/testing/web-platform/tests/html/syntax/xmldecl/support/lt-between-xml-and-encoding.htm
new file mode 100644
index 0000000000..240b44820f
--- /dev/null
+++ b/testing/web-platform/tests/html/syntax/xmldecl/support/lt-between-xml-and-encoding.htm
@@ -0,0 +1,4 @@
+<?xml<encoding="windows-1251"?>
+<p>XML decl without version with &lt; between <code>xml</code> and <code>encoding</code></p>
+<p>Test: æ</p>
+<p>If &#x0436;, XML decl takes effect</p>
diff --git a/testing/web-platform/tests/html/syntax/xmldecl/support/meta-inside-xml-charset-before-encoding-trail.htm b/testing/web-platform/tests/html/syntax/xmldecl/support/meta-inside-xml-charset-before-encoding-trail.htm
new file mode 100644
index 0000000000..39b048c238
--- /dev/null
+++ b/testing/web-platform/tests/html/syntax/xmldecl/support/meta-inside-xml-charset-before-encoding-trail.htm
Binary files differ
diff --git a/testing/web-platform/tests/html/syntax/xmldecl/support/meta-inside-xml-charset-before-encoding.htm b/testing/web-platform/tests/html/syntax/xmldecl/support/meta-inside-xml-charset-before-encoding.htm
new file mode 100644
index 0000000000..4e548ad83c
--- /dev/null
+++ b/testing/web-platform/tests/html/syntax/xmldecl/support/meta-inside-xml-charset-before-encoding.htm
@@ -0,0 +1,4 @@
+<?xml version="1.0" <meta charset="windows-1253" encoding="windows-1251"?>
+<p>Meta inside XML declaration with shared greater-than; charset before encoding</p>
+<p>Test: æ</p>
+<p>If &#x03B6;, meta takes precedence. If &#x0436;, XML decl takes precedence</p>
diff --git a/testing/web-platform/tests/html/syntax/xmldecl/support/meta-inside-xml-encoding-before-charset-trail.htm b/testing/web-platform/tests/html/syntax/xmldecl/support/meta-inside-xml-encoding-before-charset-trail.htm
new file mode 100644
index 0000000000..e594801c09
--- /dev/null
+++ b/testing/web-platform/tests/html/syntax/xmldecl/support/meta-inside-xml-encoding-before-charset-trail.htm
Binary files differ
diff --git a/testing/web-platform/tests/html/syntax/xmldecl/support/meta-inside-xml-encoding-before-charset.htm b/testing/web-platform/tests/html/syntax/xmldecl/support/meta-inside-xml-encoding-before-charset.htm
new file mode 100644
index 0000000000..77725ed963
--- /dev/null
+++ b/testing/web-platform/tests/html/syntax/xmldecl/support/meta-inside-xml-encoding-before-charset.htm
@@ -0,0 +1,4 @@
+<?xml version="1.0" <meta encoding="windows-1251" charset="windows-1253"?>
+<p>Meta inside XML declaration with shared greater-than; encoding before charse</p>
+<p>Test: æ</p>
+<p>If &#x03B6;, meta takes precedence. If &#x0436;, XML decl takes precedence</p>
diff --git a/testing/web-platform/tests/html/syntax/xmldecl/support/no-quotes-space-trail.htm b/testing/web-platform/tests/html/syntax/xmldecl/support/no-quotes-space-trail.htm
new file mode 100644
index 0000000000..79a3edf492
--- /dev/null
+++ b/testing/web-platform/tests/html/syntax/xmldecl/support/no-quotes-space-trail.htm
Binary files differ
diff --git a/testing/web-platform/tests/html/syntax/xmldecl/support/no-quotes-space.htm b/testing/web-platform/tests/html/syntax/xmldecl/support/no-quotes-space.htm
new file mode 100644
index 0000000000..354bbdcdd2
--- /dev/null
+++ b/testing/web-platform/tests/html/syntax/xmldecl/support/no-quotes-space.htm
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding=windows-1251 ?>
+<p>XML decl without quotes around encoding label and with space before question mark</p>
+<p>Test: æ</p>
+<p>If &#x0436;, XML decl takes effect</p>
diff --git a/testing/web-platform/tests/html/syntax/xmldecl/support/no-quotes-trail.htm b/testing/web-platform/tests/html/syntax/xmldecl/support/no-quotes-trail.htm
new file mode 100644
index 0000000000..e0f5346728
--- /dev/null
+++ b/testing/web-platform/tests/html/syntax/xmldecl/support/no-quotes-trail.htm
Binary files differ
diff --git a/testing/web-platform/tests/html/syntax/xmldecl/support/no-quotes.htm b/testing/web-platform/tests/html/syntax/xmldecl/support/no-quotes.htm
new file mode 100644
index 0000000000..813ba1cdfe
--- /dev/null
+++ b/testing/web-platform/tests/html/syntax/xmldecl/support/no-quotes.htm
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding=windows-1251?>
+<p>XML decl without quotes around encoding label and with question mark immediately after</p>
+<p>Test: æ</p>
+<p>If &#x0436;, XML decl takes effect</p>
diff --git a/testing/web-platform/tests/html/syntax/xmldecl/support/no-version-or-space-or-trailing-question-trail.htm b/testing/web-platform/tests/html/syntax/xmldecl/support/no-version-or-space-or-trailing-question-trail.htm
new file mode 100644
index 0000000000..d7db8d1a7f
--- /dev/null
+++ b/testing/web-platform/tests/html/syntax/xmldecl/support/no-version-or-space-or-trailing-question-trail.htm
Binary files differ
diff --git a/testing/web-platform/tests/html/syntax/xmldecl/support/no-version-or-space-or-trailing-question-trailing-body-single-quotes-spaces-and-line-breaks-around-equals-trail.htm b/testing/web-platform/tests/html/syntax/xmldecl/support/no-version-or-space-or-trailing-question-trailing-body-single-quotes-spaces-and-line-breaks-around-equals-trail.htm
new file mode 100644
index 0000000000..861d873572
--- /dev/null
+++ b/testing/web-platform/tests/html/syntax/xmldecl/support/no-version-or-space-or-trailing-question-trailing-body-single-quotes-spaces-and-line-breaks-around-equals-trail.htm
Binary files differ
diff --git a/testing/web-platform/tests/html/syntax/xmldecl/support/no-version-or-space-or-trailing-question-trailing-body-single-quotes-spaces-and-line-breaks-around-equals.htm b/testing/web-platform/tests/html/syntax/xmldecl/support/no-version-or-space-or-trailing-question-trailing-body-single-quotes-spaces-and-line-breaks-around-equals.htm
new file mode 100644
index 0000000000..677b440e04
--- /dev/null
+++ b/testing/web-platform/tests/html/syntax/xmldecl/support/no-version-or-space-or-trailing-question-trailing-body-single-quotes-spaces-and-line-breaks-around-equals.htm
@@ -0,0 +1,6 @@
+<?xmlencoding
+ =
+ 'windows-1251'<body>
+<p>XML decl using single quotes with spaces around equals without version or space or trailing question mark with trailing less-than before greater-than</p>
+<p>Test: æ</p>
+<p>If &#x0436;, XML decl takes effect</p>
diff --git a/testing/web-platform/tests/html/syntax/xmldecl/support/no-version-or-space-or-trailing-question-trailing-body-single-quotes-spaces-around-equals-trail.htm b/testing/web-platform/tests/html/syntax/xmldecl/support/no-version-or-space-or-trailing-question-trailing-body-single-quotes-spaces-around-equals-trail.htm
new file mode 100644
index 0000000000..c7d2e31371
--- /dev/null
+++ b/testing/web-platform/tests/html/syntax/xmldecl/support/no-version-or-space-or-trailing-question-trailing-body-single-quotes-spaces-around-equals-trail.htm
Binary files differ
diff --git a/testing/web-platform/tests/html/syntax/xmldecl/support/no-version-or-space-or-trailing-question-trailing-body-single-quotes-spaces-around-equals.htm b/testing/web-platform/tests/html/syntax/xmldecl/support/no-version-or-space-or-trailing-question-trailing-body-single-quotes-spaces-around-equals.htm
new file mode 100644
index 0000000000..ae3b580bca
--- /dev/null
+++ b/testing/web-platform/tests/html/syntax/xmldecl/support/no-version-or-space-or-trailing-question-trailing-body-single-quotes-spaces-around-equals.htm
@@ -0,0 +1,4 @@
+<?xmlencoding = 'windows-1251'<body>
+<p>XML decl using single quotes with spaces around equals without version or space or trailing question mark with trailing less-than before greater-than</p>
+<p>Test: æ</p>
+<p>If &#x0436;, XML decl takes effect</p>
diff --git a/testing/web-platform/tests/html/syntax/xmldecl/support/no-version-or-space-or-trailing-question-trailing-body-single-quotes-trail.htm b/testing/web-platform/tests/html/syntax/xmldecl/support/no-version-or-space-or-trailing-question-trailing-body-single-quotes-trail.htm
new file mode 100644
index 0000000000..75963c8648
--- /dev/null
+++ b/testing/web-platform/tests/html/syntax/xmldecl/support/no-version-or-space-or-trailing-question-trailing-body-single-quotes-trail.htm
Binary files differ
diff --git a/testing/web-platform/tests/html/syntax/xmldecl/support/no-version-or-space-or-trailing-question-trailing-body-single-quotes.htm b/testing/web-platform/tests/html/syntax/xmldecl/support/no-version-or-space-or-trailing-question-trailing-body-single-quotes.htm
new file mode 100644
index 0000000000..ba56539d6b
--- /dev/null
+++ b/testing/web-platform/tests/html/syntax/xmldecl/support/no-version-or-space-or-trailing-question-trailing-body-single-quotes.htm
@@ -0,0 +1,4 @@
+<?xmlencoding='windows-1251'<body>
+<p>XML decl using single quotes without version or space or trailing question mark with trailing less-than before greater-than</p>
+<p>Test: æ</p>
+<p>If &#x0436;, XML decl takes effect</p>
diff --git a/testing/web-platform/tests/html/syntax/xmldecl/support/no-version-or-space-or-trailing-question-trailing-body-trail.htm b/testing/web-platform/tests/html/syntax/xmldecl/support/no-version-or-space-or-trailing-question-trailing-body-trail.htm
new file mode 100644
index 0000000000..c873c4cd45
--- /dev/null
+++ b/testing/web-platform/tests/html/syntax/xmldecl/support/no-version-or-space-or-trailing-question-trailing-body-trail.htm
Binary files differ
diff --git a/testing/web-platform/tests/html/syntax/xmldecl/support/no-version-or-space-or-trailing-question-trailing-body.htm b/testing/web-platform/tests/html/syntax/xmldecl/support/no-version-or-space-or-trailing-question-trailing-body.htm
new file mode 100644
index 0000000000..199471e8ab
--- /dev/null
+++ b/testing/web-platform/tests/html/syntax/xmldecl/support/no-version-or-space-or-trailing-question-trailing-body.htm
@@ -0,0 +1,4 @@
+<?xmlencoding="windows-1251"<body>
+<p>XML decl without version or space or trailing question mark with trailing less-than before greater-than</p>
+<p>Test: æ</p>
+<p>If &#x0436;, XML decl takes effect</p>
diff --git a/testing/web-platform/tests/html/syntax/xmldecl/support/no-version-or-space-or-trailing-question-trailing-lt-trail.htm b/testing/web-platform/tests/html/syntax/xmldecl/support/no-version-or-space-or-trailing-question-trailing-lt-trail.htm
new file mode 100644
index 0000000000..d5a51adca9
--- /dev/null
+++ b/testing/web-platform/tests/html/syntax/xmldecl/support/no-version-or-space-or-trailing-question-trailing-lt-trail.htm
Binary files differ
diff --git a/testing/web-platform/tests/html/syntax/xmldecl/support/no-version-or-space-or-trailing-question-trailing-lt.htm b/testing/web-platform/tests/html/syntax/xmldecl/support/no-version-or-space-or-trailing-question-trailing-lt.htm
new file mode 100644
index 0000000000..a6c04781f7
--- /dev/null
+++ b/testing/web-platform/tests/html/syntax/xmldecl/support/no-version-or-space-or-trailing-question-trailing-lt.htm
@@ -0,0 +1,4 @@
+<?xmlencoding="windows-1251"<>
+<p>XML decl without version or space or trailing question mark with trailing less-than before greater-than</p>
+<p>Test: æ</p>
+<p>If &#x0436;, XML decl takes effect</p>
diff --git a/testing/web-platform/tests/html/syntax/xmldecl/support/no-version-or-space-or-trailing-question.htm b/testing/web-platform/tests/html/syntax/xmldecl/support/no-version-or-space-or-trailing-question.htm
new file mode 100644
index 0000000000..282f6842e8
--- /dev/null
+++ b/testing/web-platform/tests/html/syntax/xmldecl/support/no-version-or-space-or-trailing-question.htm
@@ -0,0 +1,4 @@
+<?xmlencoding="windows-1251">
+<p>XML decl without version or space or trailing question mark</p>
+<p>Test: æ</p>
+<p>If &#x0436;, XML decl takes effect</p>
diff --git a/testing/web-platform/tests/html/syntax/xmldecl/support/no-version-or-space-trail.htm b/testing/web-platform/tests/html/syntax/xmldecl/support/no-version-or-space-trail.htm
new file mode 100644
index 0000000000..1d5ed24999
--- /dev/null
+++ b/testing/web-platform/tests/html/syntax/xmldecl/support/no-version-or-space-trail.htm
Binary files differ
diff --git a/testing/web-platform/tests/html/syntax/xmldecl/support/no-version-or-space.htm b/testing/web-platform/tests/html/syntax/xmldecl/support/no-version-or-space.htm
new file mode 100644
index 0000000000..bcf5cdcf19
--- /dev/null
+++ b/testing/web-platform/tests/html/syntax/xmldecl/support/no-version-or-space.htm
@@ -0,0 +1,4 @@
+<?xmlencoding="windows-1251"?>
+<p>XML decl without version or space</p>
+<p>Test: æ</p>
+<p>If &#x0436;, XML decl takes effect</p>
diff --git a/testing/web-platform/tests/html/syntax/xmldecl/support/no-version-trail.htm b/testing/web-platform/tests/html/syntax/xmldecl/support/no-version-trail.htm
new file mode 100644
index 0000000000..e25ca2e12f
--- /dev/null
+++ b/testing/web-platform/tests/html/syntax/xmldecl/support/no-version-trail.htm
Binary files differ
diff --git a/testing/web-platform/tests/html/syntax/xmldecl/support/no-version.htm b/testing/web-platform/tests/html/syntax/xmldecl/support/no-version.htm
new file mode 100644
index 0000000000..a04995501d
--- /dev/null
+++ b/testing/web-platform/tests/html/syntax/xmldecl/support/no-version.htm
@@ -0,0 +1,4 @@
+<?xml encoding="windows-1251"?>
+<p>XML decl without version</p>
+<p>Test: æ</p>
+<p>If &#x0436;, XML decl takes effect</p>
diff --git a/testing/web-platform/tests/html/syntax/xmldecl/support/one-around-equals-trail.htm b/testing/web-platform/tests/html/syntax/xmldecl/support/one-around-equals-trail.htm
new file mode 100644
index 0000000000..32c67a0311
--- /dev/null
+++ b/testing/web-platform/tests/html/syntax/xmldecl/support/one-around-equals-trail.htm
Binary files differ
diff --git a/testing/web-platform/tests/html/syntax/xmldecl/support/one-around-equals.htm b/testing/web-platform/tests/html/syntax/xmldecl/support/one-around-equals.htm
new file mode 100644
index 0000000000..fb5413dad8
--- /dev/null
+++ b/testing/web-platform/tests/html/syntax/xmldecl/support/one-around-equals.htm
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="windows-1251"?>
+<p>\x01 around the equals sign for encoding</p>
+<p>Test: æ</p>
+<p>If &#x0436;, XML decl takes effect</p>
diff --git a/testing/web-platform/tests/html/syntax/xmldecl/support/one-around-label-trail.htm b/testing/web-platform/tests/html/syntax/xmldecl/support/one-around-label-trail.htm
new file mode 100644
index 0000000000..372c8993b9
--- /dev/null
+++ b/testing/web-platform/tests/html/syntax/xmldecl/support/one-around-label-trail.htm
Binary files differ
diff --git a/testing/web-platform/tests/html/syntax/xmldecl/support/one-around-label.htm b/testing/web-platform/tests/html/syntax/xmldecl/support/one-around-label.htm
new file mode 100644
index 0000000000..0a867feb83
--- /dev/null
+++ b/testing/web-platform/tests/html/syntax/xmldecl/support/one-around-label.htm
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="windows-1251"?>
+<p>\x01 around the label inside the quotes</p>
+<p>Test: æ</p>
+<p>If &#x0436;, XML decl takes effect</p>
diff --git a/testing/web-platform/tests/html/syntax/xmldecl/support/replacement-trail.htm b/testing/web-platform/tests/html/syntax/xmldecl/support/replacement-trail.htm
new file mode 100644
index 0000000000..2179613d83
--- /dev/null
+++ b/testing/web-platform/tests/html/syntax/xmldecl/support/replacement-trail.htm
Binary files differ
diff --git a/testing/web-platform/tests/html/syntax/xmldecl/support/replacement.htm b/testing/web-platform/tests/html/syntax/xmldecl/support/replacement.htm
new file mode 100644
index 0000000000..dc7d2d4ef5
--- /dev/null
+++ b/testing/web-platform/tests/html/syntax/xmldecl/support/replacement.htm
@@ -0,0 +1,3 @@
+<?xml version="1.0" encoding="ISO-2022-KR"?>
+<p>Normal XML decl with a label that resolves to replacement</p>
+<p>If this text is visible, the label did not resolve to replacement</p>
diff --git a/testing/web-platform/tests/html/syntax/xmldecl/support/space-around-label-trail.htm b/testing/web-platform/tests/html/syntax/xmldecl/support/space-around-label-trail.htm
new file mode 100644
index 0000000000..4795ddf7d1
--- /dev/null
+++ b/testing/web-platform/tests/html/syntax/xmldecl/support/space-around-label-trail.htm
Binary files differ
diff --git a/testing/web-platform/tests/html/syntax/xmldecl/support/space-around-label.htm b/testing/web-platform/tests/html/syntax/xmldecl/support/space-around-label.htm
new file mode 100644
index 0000000000..9e5a2eb817
--- /dev/null
+++ b/testing/web-platform/tests/html/syntax/xmldecl/support/space-around-label.htm
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding=" windows-1251 "?>
+<p>Spaces around the label inside the quotes</p>
+<p>Test: æ</p>
+<p>If &#x0436;, XML decl takes effect</p>
diff --git a/testing/web-platform/tests/html/syntax/xmldecl/support/space-before-trail.htm b/testing/web-platform/tests/html/syntax/xmldecl/support/space-before-trail.htm
new file mode 100644
index 0000000000..998efe5438
--- /dev/null
+++ b/testing/web-platform/tests/html/syntax/xmldecl/support/space-before-trail.htm
Binary files differ
diff --git a/testing/web-platform/tests/html/syntax/xmldecl/support/space-before.htm b/testing/web-platform/tests/html/syntax/xmldecl/support/space-before.htm
new file mode 100644
index 0000000000..e5c303abd8
--- /dev/null
+++ b/testing/web-platform/tests/html/syntax/xmldecl/support/space-before.htm
@@ -0,0 +1,4 @@
+ <?xml version="1.0" encoding="windows-1251"?>
+<p>Normal XML decl with space before</p>
+<p>Test: æ</p>
+<p>If &#x0436;, XML decl takes effect</p>
diff --git a/testing/web-platform/tests/html/syntax/xmldecl/support/test_support.js b/testing/web-platform/tests/html/syntax/xmldecl/support/test_support.js
new file mode 100644
index 0000000000..ec3668d1bf
--- /dev/null
+++ b/testing/web-platform/tests/html/syntax/xmldecl/support/test_support.js
@@ -0,0 +1,26 @@
+function runAllTests() {
+ let divs = document.getElementsByTagName("div");
+ for (let i = 0; i < divs.length; ++i) {
+ let div = divs[i];
+ let expectation = div.className;
+ let iframes = div.getElementsByTagName("iframe");
+ for (let j = 0; j < iframes.length; ++j) {
+ let iframe = iframes[j];
+ let src = iframe.src;
+ let doc = iframe.contentWindow.document;
+ test(function() {
+ assert_equals(doc.characterSet, expectation, 'Check');
+ if (expectation == "windows-1251" || expectation == "windows-1252" && !(src.endsWith("/XML.htm") || src.endsWith("/XML-trail.htm"))) {
+ let fc = doc.firstChild;
+ assert_equals(fc.nodeType, Node.COMMENT_NODE, 'Should have comment node');
+ assert_true(fc.nodeValue.startsWith("?xml"), 'Should start with ?xml');
+ } else if (expectation == "UTF-16BE" || expectation == "UTF-16LE") {
+ let fc = doc.firstChild;
+ assert_equals(fc.nodeType, Node.COMMENT_NODE, 'Should have comment node');
+ assert_true(fc.nodeValue.startsWith("?x"), 'Should start with ?x');
+ }
+ }, "Check encoding " + expectation + ", " + src.substring(src.lastIndexOf("/") + 1));
+ }
+ }
+}
+
diff --git a/testing/web-platform/tests/html/syntax/xmldecl/support/trickle.py b/testing/web-platform/tests/html/syntax/xmldecl/support/trickle.py
new file mode 100644
index 0000000000..f1ef785c94
--- /dev/null
+++ b/testing/web-platform/tests/html/syntax/xmldecl/support/trickle.py
@@ -0,0 +1,12 @@
+import time
+
+def main(request, response):
+ response.add_required_headers = False # Don't implicitly add HTTP headers
+ response.writer.write_status(200)
+ response.writer.write_header("Content-Type", "text/html")
+ response.writer.end_headers()
+
+ for b in b'<?xml version="1.0" encoding="windows-1251"?':
+ response.writer.write(bytes([b]))
+ time.sleep(0.05)
+ response.writer.write(b'>\n<p>Normal XML declation as slow byte-by-byte trickle</p>\n<p>Test: \xE6</p>\n<p>If &#x0436;, XML decl takes effect</p>')
diff --git a/testing/web-platform/tests/html/syntax/xmldecl/support/unmatched-quotes-trail.htm b/testing/web-platform/tests/html/syntax/xmldecl/support/unmatched-quotes-trail.htm
new file mode 100644
index 0000000000..afc015cab2
--- /dev/null
+++ b/testing/web-platform/tests/html/syntax/xmldecl/support/unmatched-quotes-trail.htm
Binary files differ
diff --git a/testing/web-platform/tests/html/syntax/xmldecl/support/unmatched-quotes.htm b/testing/web-platform/tests/html/syntax/xmldecl/support/unmatched-quotes.htm
new file mode 100644
index 0000000000..f4d05b390c
--- /dev/null
+++ b/testing/web-platform/tests/html/syntax/xmldecl/support/unmatched-quotes.htm
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="windows-1251'?>
+<p>XML decl without double quote before and single quote after encoding label</p>
+<p>Test: æ</p>
+<p>If &#x0436;, XML decl takes effect</p>
diff --git a/testing/web-platform/tests/html/syntax/xmldecl/support/utf-16be-and-meta-trail.htm b/testing/web-platform/tests/html/syntax/xmldecl/support/utf-16be-and-meta-trail.htm
new file mode 100644
index 0000000000..5117f6002c
--- /dev/null
+++ b/testing/web-platform/tests/html/syntax/xmldecl/support/utf-16be-and-meta-trail.htm
Binary files differ
diff --git a/testing/web-platform/tests/html/syntax/xmldecl/support/utf-16be-and-meta.htm b/testing/web-platform/tests/html/syntax/xmldecl/support/utf-16be-and-meta.htm
new file mode 100644
index 0000000000..4b90b91c67
--- /dev/null
+++ b/testing/web-platform/tests/html/syntax/xmldecl/support/utf-16be-and-meta.htm
Binary files differ
diff --git a/testing/web-platform/tests/html/syntax/xmldecl/support/utf-16be-vs-http-trail.html b/testing/web-platform/tests/html/syntax/xmldecl/support/utf-16be-vs-http-trail.html
new file mode 100644
index 0000000000..212095d0ee
--- /dev/null
+++ b/testing/web-platform/tests/html/syntax/xmldecl/support/utf-16be-vs-http-trail.html
Binary files differ
diff --git a/testing/web-platform/tests/html/syntax/xmldecl/support/utf-16be-vs-http-trail.html.headers b/testing/web-platform/tests/html/syntax/xmldecl/support/utf-16be-vs-http-trail.html.headers
new file mode 100644
index 0000000000..e853d6cee5
--- /dev/null
+++ b/testing/web-platform/tests/html/syntax/xmldecl/support/utf-16be-vs-http-trail.html.headers
@@ -0,0 +1 @@
+Content-Type: text/html; charset=UTF-8
diff --git a/testing/web-platform/tests/html/syntax/xmldecl/support/utf-16be-vs-http.html b/testing/web-platform/tests/html/syntax/xmldecl/support/utf-16be-vs-http.html
new file mode 100644
index 0000000000..18f24fbe50
--- /dev/null
+++ b/testing/web-platform/tests/html/syntax/xmldecl/support/utf-16be-vs-http.html
Binary files differ
diff --git a/testing/web-platform/tests/html/syntax/xmldecl/support/utf-16be-vs-http.html.headers b/testing/web-platform/tests/html/syntax/xmldecl/support/utf-16be-vs-http.html.headers
new file mode 100644
index 0000000000..e853d6cee5
--- /dev/null
+++ b/testing/web-platform/tests/html/syntax/xmldecl/support/utf-16be-vs-http.html.headers
@@ -0,0 +1 @@
+Content-Type: text/html; charset=UTF-8
diff --git a/testing/web-platform/tests/html/syntax/xmldecl/support/utf-16le-and-meta-trail.htm b/testing/web-platform/tests/html/syntax/xmldecl/support/utf-16le-and-meta-trail.htm
new file mode 100644
index 0000000000..8f7adac8de
--- /dev/null
+++ b/testing/web-platform/tests/html/syntax/xmldecl/support/utf-16le-and-meta-trail.htm
Binary files differ
diff --git a/testing/web-platform/tests/html/syntax/xmldecl/support/utf-16le-and-meta.htm b/testing/web-platform/tests/html/syntax/xmldecl/support/utf-16le-and-meta.htm
new file mode 100644
index 0000000000..e530d1e49d
--- /dev/null
+++ b/testing/web-platform/tests/html/syntax/xmldecl/support/utf-16le-and-meta.htm
Binary files differ
diff --git a/testing/web-platform/tests/html/syntax/xmldecl/support/utf-16le-vs-http-trail.html b/testing/web-platform/tests/html/syntax/xmldecl/support/utf-16le-vs-http-trail.html
new file mode 100644
index 0000000000..f9d0655386
--- /dev/null
+++ b/testing/web-platform/tests/html/syntax/xmldecl/support/utf-16le-vs-http-trail.html
Binary files differ
diff --git a/testing/web-platform/tests/html/syntax/xmldecl/support/utf-16le-vs-http-trail.html.headers b/testing/web-platform/tests/html/syntax/xmldecl/support/utf-16le-vs-http-trail.html.headers
new file mode 100644
index 0000000000..e853d6cee5
--- /dev/null
+++ b/testing/web-platform/tests/html/syntax/xmldecl/support/utf-16le-vs-http-trail.html.headers
@@ -0,0 +1 @@
+Content-Type: text/html; charset=UTF-8
diff --git a/testing/web-platform/tests/html/syntax/xmldecl/support/utf-16le-vs-http.html b/testing/web-platform/tests/html/syntax/xmldecl/support/utf-16le-vs-http.html
new file mode 100644
index 0000000000..466ac26e29
--- /dev/null
+++ b/testing/web-platform/tests/html/syntax/xmldecl/support/utf-16le-vs-http.html
Binary files differ
diff --git a/testing/web-platform/tests/html/syntax/xmldecl/support/utf-16le-vs-http.html.headers b/testing/web-platform/tests/html/syntax/xmldecl/support/utf-16le-vs-http.html.headers
new file mode 100644
index 0000000000..e853d6cee5
--- /dev/null
+++ b/testing/web-platform/tests/html/syntax/xmldecl/support/utf-16le-vs-http.html.headers
@@ -0,0 +1 @@
+Content-Type: text/html; charset=UTF-8
diff --git a/testing/web-platform/tests/html/syntax/xmldecl/support/xml-and-meta-trail.htm b/testing/web-platform/tests/html/syntax/xmldecl/support/xml-and-meta-trail.htm
new file mode 100644
index 0000000000..ddee02383d
--- /dev/null
+++ b/testing/web-platform/tests/html/syntax/xmldecl/support/xml-and-meta-trail.htm
Binary files differ
diff --git a/testing/web-platform/tests/html/syntax/xmldecl/support/xml-and-meta.htm b/testing/web-platform/tests/html/syntax/xmldecl/support/xml-and-meta.htm
new file mode 100644
index 0000000000..3e8f64be0f
--- /dev/null
+++ b/testing/web-platform/tests/html/syntax/xmldecl/support/xml-and-meta.htm
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="windows-1251"?>
+<meta charset="windows-1253">
+<p>Normal XML decl and meta</p>
+<p>Test: æ</p>
+<p>If &#x03B6;, meta takes precedence. If &#x0436;, XML decl takes precedence</p>
diff --git a/testing/web-platform/tests/html/syntax/xmldecl/support/xml-vs-http-trail.html b/testing/web-platform/tests/html/syntax/xmldecl/support/xml-vs-http-trail.html
new file mode 100644
index 0000000000..e9c0352bf7
--- /dev/null
+++ b/testing/web-platform/tests/html/syntax/xmldecl/support/xml-vs-http-trail.html
Binary files differ
diff --git a/testing/web-platform/tests/html/syntax/xmldecl/support/xml-vs-http-trail.html.headers b/testing/web-platform/tests/html/syntax/xmldecl/support/xml-vs-http-trail.html.headers
new file mode 100644
index 0000000000..e853d6cee5
--- /dev/null
+++ b/testing/web-platform/tests/html/syntax/xmldecl/support/xml-vs-http-trail.html.headers
@@ -0,0 +1 @@
+Content-Type: text/html; charset=UTF-8
diff --git a/testing/web-platform/tests/html/syntax/xmldecl/support/xml-vs-http.html b/testing/web-platform/tests/html/syntax/xmldecl/support/xml-vs-http.html
new file mode 100644
index 0000000000..ff720a2da2
--- /dev/null
+++ b/testing/web-platform/tests/html/syntax/xmldecl/support/xml-vs-http.html
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="windows-1251"?>
+<p>Normal XML decl</p>
+<p>Test: æ</p>
+<p>If &#x0436;, XML decl takes effect</p>
diff --git a/testing/web-platform/tests/html/syntax/xmldecl/support/xml-vs-http.html.headers b/testing/web-platform/tests/html/syntax/xmldecl/support/xml-vs-http.html.headers
new file mode 100644
index 0000000000..e853d6cee5
--- /dev/null
+++ b/testing/web-platform/tests/html/syntax/xmldecl/support/xml-vs-http.html.headers
@@ -0,0 +1 @@
+Content-Type: text/html; charset=UTF-8
diff --git a/testing/web-platform/tests/html/syntax/xmldecl/support/zero-around-equals-trail.htm b/testing/web-platform/tests/html/syntax/xmldecl/support/zero-around-equals-trail.htm
new file mode 100644
index 0000000000..60179cbbf3
--- /dev/null
+++ b/testing/web-platform/tests/html/syntax/xmldecl/support/zero-around-equals-trail.htm
Binary files differ
diff --git a/testing/web-platform/tests/html/syntax/xmldecl/support/zero-around-equals.htm b/testing/web-platform/tests/html/syntax/xmldecl/support/zero-around-equals.htm
new file mode 100644
index 0000000000..7fecbca830
--- /dev/null
+++ b/testing/web-platform/tests/html/syntax/xmldecl/support/zero-around-equals.htm
Binary files differ
diff --git a/testing/web-platform/tests/html/syntax/xmldecl/support/zero-around-label-trail.htm b/testing/web-platform/tests/html/syntax/xmldecl/support/zero-around-label-trail.htm
new file mode 100644
index 0000000000..761c76cfb3
--- /dev/null
+++ b/testing/web-platform/tests/html/syntax/xmldecl/support/zero-around-label-trail.htm
Binary files differ
diff --git a/testing/web-platform/tests/html/syntax/xmldecl/support/zero-around-label.htm b/testing/web-platform/tests/html/syntax/xmldecl/support/zero-around-label.htm
new file mode 100644
index 0000000000..dfc05b0b3f
--- /dev/null
+++ b/testing/web-platform/tests/html/syntax/xmldecl/support/zero-around-label.htm
Binary files differ
diff --git a/testing/web-platform/tests/html/syntax/xmldecl/xmldecl-1.html b/testing/web-platform/tests/html/syntax/xmldecl/xmldecl-1.html
new file mode 100644
index 0000000000..40ebb932e4
--- /dev/null
+++ b/testing/web-platform/tests/html/syntax/xmldecl/xmldecl-1.html
@@ -0,0 +1,59 @@
+<!doctype html>
+<meta charset="windows-1252">
+<title>Bogo-XML declaration</title>
+<script src=/resources/testharness.js></script>
+<script src=/resources/testharnessreport.js></script>
+<script src=support/test_support.js></script>
+
+<script>
+setup({explicit_done:true});
+window.onload = function() {
+ runAllTests();
+ done();
+};
+</script>
+
+<section style="display: none;">
+<div class="windows-1251">
+<iframe src="support/baseline.htm"></iframe>
+<iframe src="support/cp1251.htm"></iframe>
+<iframe src="support/kilobyte-after.htm"></iframe>
+<iframe src="support/kilobyte-before.htm"></iframe>
+<iframe src="support/letter-between-xml-and-encoding.htm"></iframe>
+<iframe src="support/lt-between-xml-and-encoding.htm"></iframe>
+<iframe src="support/meta-inside-xml-charset-before-encoding.htm"></iframe>
+<iframe src="support/meta-inside-xml-encoding-before-charset.htm"></iframe>
+<iframe src="support/no-version.htm"></iframe>
+<iframe src="support/no-version-or-space.htm"></iframe>
+<iframe src="support/no-version-or-space-or-trailing-question.htm"></iframe>
+<iframe src="support/no-version-or-space-or-trailing-question-trailing-body.htm"></iframe>
+<iframe src="support/no-version-or-space-or-trailing-question-trailing-body-single-quotes.htm"></iframe>
+<iframe src="support/no-version-or-space-or-trailing-question-trailing-body-single-quotes-spaces-and-line-breaks-around-equals.htm"></iframe>
+<iframe src="support/no-version-or-space-or-trailing-question-trailing-body-single-quotes-spaces-around-equals.htm"></iframe>
+<iframe src="support/no-version-or-space-or-trailing-question-trailing-lt.htm"></iframe>
+<iframe src="support/one-around-equals.htm"></iframe>
+<iframe src="support/VERSION.htm"></iframe>
+<iframe src="support/WINDOWS.htm"></iframe>
+<iframe src="support/zero-around-equals.htm"></iframe>
+<iframe src="support/baseline-trail.htm"></iframe>
+<iframe src="support/cp1251-trail.htm"></iframe>
+<iframe src="support/kilobyte-after-trail.htm"></iframe>
+<iframe src="support/kilobyte-before-trail.htm"></iframe>
+<iframe src="support/letter-between-xml-and-encoding-trail.htm"></iframe>
+<iframe src="support/lt-between-xml-and-encoding-trail.htm"></iframe>
+<iframe src="support/meta-inside-xml-charset-before-encoding-trail.htm"></iframe>
+<iframe src="support/meta-inside-xml-encoding-before-charset-trail.htm"></iframe>
+<iframe src="support/no-version-trail.htm"></iframe>
+<iframe src="support/no-version-or-space-trail.htm"></iframe>
+<iframe src="support/no-version-or-space-or-trailing-question-trail.htm"></iframe>
+<iframe src="support/no-version-or-space-or-trailing-question-trailing-body-trail.htm"></iframe>
+<iframe src="support/no-version-or-space-or-trailing-question-trailing-body-single-quotes-trail.htm"></iframe>
+<iframe src="support/no-version-or-space-or-trailing-question-trailing-body-single-quotes-spaces-and-line-breaks-around-equals-trail.htm"></iframe>
+<iframe src="support/no-version-or-space-or-trailing-question-trailing-body-single-quotes-spaces-around-equals-trail.htm"></iframe>
+<iframe src="support/no-version-or-space-or-trailing-question-trailing-lt-trail.htm"></iframe>
+<iframe src="support/one-around-equals-trail.htm"></iframe>
+<iframe src="support/VERSION-trail.htm"></iframe>
+<iframe src="support/WINDOWS-trail.htm"></iframe>
+<iframe src="support/zero-around-equals-trail.htm"></iframe>
+</div>
+</section>
diff --git a/testing/web-platform/tests/html/syntax/xmldecl/xmldecl-2.html b/testing/web-platform/tests/html/syntax/xmldecl/xmldecl-2.html
new file mode 100644
index 0000000000..6cb07afbb0
--- /dev/null
+++ b/testing/web-platform/tests/html/syntax/xmldecl/xmldecl-2.html
@@ -0,0 +1,78 @@
+<!doctype html>
+<meta charset="windows-1252">
+<title>Bogo-XML declaration</title>
+<script src=/resources/testharness.js></script>
+<script src=/resources/testharnessreport.js></script>
+<script src=support/test_support.js></script>
+
+<script>
+setup({explicit_done:true});
+window.onload = function() {
+ runAllTests();
+ done();
+};
+</script>
+
+<section style="display: none;">
+<div class="windows-1251">
+<iframe src="support/kilobyte-plus-one-after.htm"></iframe>
+<iframe src="support/kilobyte-plus-one-before.htm"></iframe>
+<iframe src="support/kilobyte-plus-one-after-trail.htm"></iframe>
+<iframe src="support/kilobyte-plus-one-before-trail.htm"></iframe>
+</div>
+<div class="windows-1252">
+<iframe src="support/encodingencoding.htm"></iframe>
+<iframe src="support/encoding-equals-encoding.htm"></iframe>
+<iframe src="support/ENCODING.htm"></iframe>
+<iframe src="support/gt-between-xml-and-encoding.htm"></iframe>
+<iframe src="support/no-quotes.htm"></iframe>
+<iframe src="support/no-quotes-space.htm"></iframe>
+<iframe src="support/one-around-label.htm"></iframe>
+<iframe src="support/space-around-label.htm"></iframe>
+<iframe src="support/space-before.htm"></iframe>
+<iframe src="support/unmatched-quotes.htm"></iframe>
+<iframe src="support/XML.htm"></iframe>
+<iframe src="support/zero-around-label.htm"></iframe>
+<iframe src="support/encodingencoding-trail.htm"></iframe>
+<iframe src="support/encoding-equals-encoding-trail.htm"></iframe>
+<iframe src="support/ENCODING-trail.htm"></iframe>
+<iframe src="support/gt-between-xml-and-encoding-trail.htm"></iframe>
+<iframe src="support/no-quotes-trail.htm"></iframe>
+<iframe src="support/no-quotes-space-trail.htm"></iframe>
+<iframe src="support/one-around-label-trail.htm"></iframe>
+<iframe src="support/space-around-label-trail.htm"></iframe>
+<iframe src="support/space-before-trail.htm"></iframe>
+<iframe src="support/unmatched-quotes-trail.htm"></iframe>
+<iframe src="support/XML-trail.htm"></iframe>
+<iframe src="support/zero-around-label-trail.htm"></iframe>
+</div>
+<div class="windows-1253">
+<iframe src="support/xml-and-meta.htm"></iframe>
+<iframe src="support/incomplete-utf-16le-and-meta.htm"></iframe>
+<iframe src="support/incomplete-utf-16be-and-meta.htm"></iframe>
+<iframe src="support/xml-and-meta-trail.htm"></iframe>
+<iframe src="support/incomplete-utf-16le-and-meta-trail.htm"></iframe>
+<iframe src="support/incomplete-utf-16be-and-meta-trail.htm"></iframe>
+</div>
+<div class="UTF-16LE">
+<iframe src="support/utf-16le-and-meta.htm"></iframe>
+<iframe src="support/utf-16le-and-meta-trail.htm"></iframe>
+</div>
+<div class="UTF-16BE">
+<iframe src="support/utf-16be-and-meta.htm"></iframe>
+<iframe src="support/utf-16be-and-meta-trail.htm"></iframe>
+</div>
+<div class="UTF-8">
+<iframe src="support/utf-16le-vs-http.html"></iframe>
+<iframe src="support/utf-16be-vs-http.html"></iframe>
+<iframe src="support/xml-vs-http.html"></iframe>
+<iframe src="support/utf-16le-vs-http-trail.html"></iframe>
+<iframe src="support/utf-16be-vs-http-trail.html"></iframe>
+<iframe src="support/xml-vs-http-trail.html"></iframe>
+<iframe src="support/ascii-decl-for-utf-16.htm"></iframe>
+</div>
+<div class="replacement">
+<iframe src="support/replacement.htm"></iframe>
+<iframe src="support/replacement-trail.htm"></iframe>
+</div>
+</section>
diff --git a/testing/web-platform/tests/html/syntax/xmldecl/xmldecl-3.html b/testing/web-platform/tests/html/syntax/xmldecl/xmldecl-3.html
new file mode 100644
index 0000000000..a9f179de4e
--- /dev/null
+++ b/testing/web-platform/tests/html/syntax/xmldecl/xmldecl-3.html
@@ -0,0 +1,21 @@
+<!doctype html>
+<meta charset="windows-1252">
+<meta name="timeout" content="long">
+<title>Bogo-XML declaration</title>
+<script src=/resources/testharness.js></script>
+<script src=/resources/testharnessreport.js></script>
+<script src=support/test_support.js></script>
+
+<script>
+setup({explicit_done:true});
+window.onload = function() {
+ runAllTests();
+ done();
+};
+</script>
+
+<section style="display: none;">
+<div class="windows-1251">
+<iframe src="support/trickle.py"></iframe>
+</div>
+</section>