summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/conformance-checkers/html/elements/iframe
diff options
context:
space:
mode:
Diffstat (limited to 'testing/web-platform/tests/conformance-checkers/html/elements/iframe')
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/model-isvalid.html36
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/model-novalid.html74
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/src-empty-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/src-isvalid.html91
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/src-whitespace-only-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/fragment-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/fragment-contains-hash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/fragment-leading-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/host-cr-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/host-double-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/host-double-percent-encoded-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/host-empty-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/host-empty-userinfo-empty-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/host-empty-with-userinfo-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/host-hostname-in-brackets-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/host-invalid-unicode-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/host-invalid-unicode-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/host-newline-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/host-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/host-square-brackets-port-contains-colon-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/host-tab-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/host-u0000-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/host-u0000-percent-encoded-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/path-bare-percent-sign-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/path-contains-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/path-leading-backslash-at-sign-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/path-leading-colon-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/path-leading-colon-chars-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/path-leading-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/path-percent-encoded-malformed-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/path-relative-square-brackets-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/path-tab-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/path-trailing-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/path-u0091-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/port-999999-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/port-cr-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/port-leading-colon-bracket-colon-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/port-leading-colon-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/port-leading-dash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/port-multiple-letters-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/port-newline-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/port-single-letter-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/port-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/port-tab-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/query-leading-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/query-trailing-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-data-contains-fragment-haswarn.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-data-single-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-file-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-file-single-slash-c-bar-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-file-triple-slash-c-bar-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-ftp-no-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-ftp-single-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-http-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-http-no-slash-colon-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-http-no-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-http-no-slash-square-bracket-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-http-single-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-https-no-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-https-single-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-javascript-no-slash-malformed-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-trailing-cr-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-trailing-newline-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-trailing-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-trailing-tab-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/userinfo-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/userinfo-password-bad-chars-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/userinfo-password-contains-pile-of-poo-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/userinfo-username-contains-at-sign-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/userinfo-username-contains-pile-of-poo-novalid.html4
70 files changed, 473 insertions, 0 deletions
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/model-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/model-isvalid.html
new file mode 100644
index 000000000..45e29ed72
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/model-isvalid.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>&lt;iframe&gt;</title>
+</head>
+<body>
+ <!-- is structured inline -->
+ <p><iframe
+ src="uri"
+ class="class"
+ lang="en"></iframe></p>
+
+ <!-- is strictly inline -->
+ <p><dfn><iframe
+ src="uri"
+ class="class"
+ lang="en"></iframe></dfn></p>
+
+ <p><dfn>strictly inline
+ <iframe>
+ text
+ </iframe>
+ </dfn></p>
+ <p>paragraph
+ <iframe>
+ text
+ </iframe>
+ </p>
+ <p><dfn>strictly inline
+ <iframe>
+ text
+ </iframe>
+ </dfn></p>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/model-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/model-novalid.html
new file mode 100644
index 000000000..c2db35294
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/model-novalid.html
@@ -0,0 +1,74 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>&lt;iframe&gt;</title>
+</head>
+<body>
+ <!-- is structured inline -->
+ <p><iframe
+ name="frame1"
+ src="uri"
+ width="2"
+ height="90"
+ frameborder="0"
+ scrolling="yes"
+ class="class"
+ lang="en"></iframe></p>
+
+ <!-- is strictly inline -->
+ <p><dfn><iframe
+ name="frame1"
+ src="uri"
+ width="2"
+ height="90"
+ frameborder="1"
+ scrolling="no"
+ class="class"
+ lang="en"></iframe></dfn></p>
+
+ <!-- is block -->
+ <iframe
+ name="frame1"
+ src="uri"
+ width="2"
+ height="90"
+ frameborder="0"
+ scrolling="auto"
+ class="class"
+ lang="en"></iframe>
+
+ <!-- can contain inline while in inline context -->
+ <p>paragraph
+ <iframe>
+ <em>some</em> <ul><li>inline</li></ul> content
+ </iframe>
+ </p>
+ <!-- can contain strictly inline while in strictly inline context -->
+ <p><dfn>strictly inline
+ <iframe>
+ <em>text</em>
+ </iframe>
+ </dfn></p>
+
+ <!-- can contain blocks while in block context -->
+ <iframe>
+ <p>text</p>
+ </iframe>
+
+ <!-- can contain interactive if ancestor does not forbid it -->
+ <p>paragraph
+ <iframe>
+ <a>link</a>
+ </iframe>
+ </p>
+ <p><dfn>strictly inline
+ <iframe>
+ <a>link</a>
+ </iframe>
+ </dfn></p>
+ <iframe>
+ <p><a>link</a></p>
+ </iframe>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src-empty-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src-empty-novalid.html
new file mode 100644
index 000000000..db0bd3094
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src-empty-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>empty src is not valid</title>
+<iframe src=""></iframe>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src-isvalid.html
new file mode 100644
index 000000000..a0bbcbe4e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src-isvalid.html
@@ -0,0 +1,91 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid src</title>
+<iframe src="file:///"></iframe><!-- scheme-file-slash-slash-slash-only -->
+<iframe src="http://a:@www.example.com"></iframe><!-- userinfo-password-empty -->
+<iframe src="foo://///////"></iframe><!-- scheme-private-path-leading-slashes-only -->
+<iframe src="file://abc|/foo/bar"></iframe><!-- scheme-file-slash-slash-abc-bar -->
+<iframe src="/a/b/c"></iframe><!-- path-simple-relative -->
+<iframe src="http://example.com/你好你好"></iframe><!-- path-unicode-han -->
+<iframe src="/a/%2f/c"></iframe><!-- path-percent-encoded-slash-plus-slashes-relative -->
+<iframe src="http://f:/c"></iframe><!-- port-none-but-colon -->
+<iframe src="http://example.com/foo%41%7a"></iframe><!-- path-percent-encoded-multiple -->
+<iframe src="http://192.168.0.257/"></iframe><!-- host-IP-address-broken -->
+<iframe src="madeupscheme:example.com/"></iframe><!-- scheme-private-no-slash -->
+<iframe src="?"></iframe><!-- query-empty-no-path-relative -->
+<iframe src="http://example.com/%20foo"></iframe><!-- path-percent-encoded-space -->
+<iframe src="mailto:/example.com/"></iframe><!-- scheme-mailto-single-slash -->
+<iframe src="::"></iframe><!-- path-leading-colon-colon-relative -->
+<iframe src="http://example.com/%3A%3a%3C%3c"></iframe><!-- path-percent-encoded-mixed-case -->
+<iframe src="http://user:pass@foo:21/bar;par?b#c"></iframe><!-- userinfo -->
+<iframe src="ws:/example.com/"></iframe><!-- scheme-ws-single-slash -->
+<iframe src="foo://"></iframe><!-- scheme-private-slash-slash -->
+<iframe src="#"></iframe><!-- fragment-empty-hash-only-no-path-relative -->
+<iframe src="http://f:00000000000000/c"></iframe><!-- port-00000000000000 -->
+<iframe src="foo:////://///"></iframe><!-- scheme-private-path-leading-slashes-colon-slashes -->
+<iframe src=":23"></iframe><!-- path-leading-colon-number-relative -->
+<iframe src="foo:/"></iframe><!-- scheme-private-slash -->
+<iframe src="http://💩"></iframe><!-- host-is-pile-of-poo -->
+<iframe src="file:test"></iframe><!-- scheme-file-no-slash -->
+<iframe src="file://C|/foo/bar"></iframe><!-- scheme-file-slash-slash-c-bar -->
+<iframe src="#/"></iframe><!-- fragment-slash-relative -->
+<iframe src="http://192.0x00A80001"></iframe><!-- host-192.0x00A80001 -->
+<iframe src="foo.com"></iframe><!-- scheme-none-relative -->
+<iframe src="http💩//:foo"></iframe><!-- path-contains-pile-of-poo -->
+<iframe src="File://foo/bar.html"></iframe><!-- scheme-file-uppercase -->
+<iframe src=":/"></iframe><!-- path-leading-colon-slash-relative -->
+<iframe src="http://www.foo。bar.com"></iframe><!-- host-exotic-dot -->
+<iframe src="http://GOO​⁠goo.com"></iframe><!-- host-exotic-whitespace -->
+<iframe src="file:///foo/bar.txt"></iframe><!-- scheme-file-host-empty -->
+<iframe src="javascript:/example.com/"></iframe><!-- scheme-javascript-single-slash -->
+<iframe src="gopher:/example.com/"></iframe><!-- scheme-gopher-single-slash -->
+<iframe src="ftps:example.com/"></iframe><!-- scheme-ftps-no-slash -->
+<iframe src="file://server/foo/bar"></iframe><!-- scheme-file-host-included -->
+<iframe src="http://example.com/foo%00"></iframe><!-- path-percent-encoded-u0000 -->
+<iframe src="a:foo.com"></iframe><!-- scheme-private -->
+<iframe src=":"></iframe><!-- path-colon-relative -->
+<iframe src="http://:b@www.example.com"></iframe><!-- userinfo-user-empty -->
+<iframe src="file:/"></iframe><!-- scheme-file-slash-only -->
+<iframe src="wss:example.com/"></iframe><!-- scheme-wss-no-slash -->
+<iframe src="::23"></iframe><!-- path-colon-colon-number-relative -->
+<iframe src="/a%2fc"></iframe><!-- path-percent-encoded-slash-relative -->
+<iframe src="http://a:b@c:29/d"></iframe><!-- userinfo-host-port-path -->
+<iframe src="gopher:example.com/"></iframe><!-- scheme-gopher-no-slash -->
+<iframe src="madeupscheme:/example.com/"></iframe><!-- scheme-private-single-slash -->
+<iframe src="mailto:example.com/"></iframe><!-- scheme-mailto-no-slash -->
+<iframe src="http://%25DOMAIN:foobar@foodomain.com"></iframe><!-- userinfo-username-contains-percent-encoded -->
+<iframe src="/:23"></iframe><!-- path-slash-colon-number-relative -->
+<iframe src="foo://///////bar.com/"></iframe><!-- scheme-private-path-leading-slashes-chars -->
+<iframe src="http://[2001::1]:80"></iframe><!-- host-ipv6-port -->
+<iframe src="data:text/plain,foo"></iframe><!-- scheme-data-no-slash -->
+<iframe src="http://example.com/foo/%2e"></iframe><!-- path-percent-encoded-dot -->
+<iframe src="file:/example.com/"></iframe><!-- scheme-file-single-slash -->
+<iframe src="http://example.com/©zbar"></iframe><!-- path-non-ascii -->
+<iframe src="http://example.com//foo"></iframe><!-- path-uFEFF -->
+<iframe src="wss:/example.com/"></iframe><!-- scheme-wss-single-slash -->
+<iframe src="http://foo/abcd#foo?bar"></iframe><!-- fragment-contains-question-mark -->
+<iframe src=":#"></iframe><!-- path-leading-colon-hash-relative -->
+<iframe src="http://example.com/foo%91"></iframe><!-- path-percent-encoded-u0091 -->
+<iframe src="c:/foo"></iframe><!-- scheme-private-single-letter -->
+<iframe src=":foo.com"></iframe><!-- path-leading-colon-chars-relative -->
+<iframe src="http://你好你好"></iframe><!-- host-idn-unicode-han -->
+<iframe src="http://example.com/foo#💩"></iframe><!-- fragment-contains-pile-of-poo -->
+<iframe src="file:"></iframe><!-- scheme-file-scheme-only -->
+<iframe src="#β"></iframe><!-- fragment-non-ascii-relative -->
+<iframe src="foo:/bar.com/"></iframe><!-- scheme-private-path -->
+<iframe src="http://f:0/c"></iframe><!-- port-0 -->
+<iframe src="#;?"></iframe><!-- fragment-semicolon-question-mark-relative -->
+<iframe src="http://Go.com"></iframe><!-- host-fullwidth -->
+<iframe src="http://@www.example.com"></iframe><!-- userinfo-empty -->
+<iframe src="http://example.com/‮/foo/‭/bar"></iframe><!-- path-u202E-u202D -->
+<iframe src="http://[2001::1]"></iframe><!-- host-ipv6 -->
+<iframe src="💩http://foo"></iframe><!-- path-starts-with-pile-of-poo -->
+<iframe src="http://foo/abcd?efgh?ijkl"></iframe><!-- query-contains-question-mark -->
+<iframe src="//foo/bar"></iframe><!-- scheme-schemeless-relative -->
+<iframe src="ftps:/example.com/"></iframe><!-- scheme-ftps-single-slash -->
+<iframe src="http://foo.com:b@d/"></iframe><!-- userinfo-username-non-alpha -->
+<iframe src=":a"></iframe><!-- path-leading-colon-letter-relative -->
+<iframe src="/"></iframe><!-- path-slash-only-relative -->
+<iframe src="http://example.com/foo?💩"></iframe><!-- query-contains-pile-of-poo -->
+<iframe src="http://f:00000000000000000000080/c"></iframe><!-- port-00000000000000000000080 -->
+<iframe src="file://"></iframe><!-- scheme-file-slash-slash-only -->
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src-whitespace-only-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src-whitespace-only-novalid.html
new file mode 100644
index 000000000..12b307da2
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src-whitespace-only-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>empty src is not valid</title>
+<iframe src="
+"></iframe>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/fragment-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/fragment-backslash-novalid.html
new file mode 100644
index 000000000..f1e149373
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/fragment-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: fragment-backslash</title>
+<iframe src="#\"></iframe>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/fragment-contains-hash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/fragment-contains-hash-novalid.html
new file mode 100644
index 000000000..d781f871a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/fragment-contains-hash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: fragment-contains-hash</title>
+<iframe src="http://foo/path#f#g"></iframe>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/fragment-leading-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/fragment-leading-space-novalid.html
new file mode 100644
index 000000000..f567ab48c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/fragment-leading-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: fragment-leading-space</title>
+<iframe src="http://f:21/b# e"></iframe>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/host-cr-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/host-cr-novalid.html
new file mode 100644
index 000000000..dfa8d99b1
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/host-cr-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: host-cr</title>
+<iframe src="http://example. org"></iframe>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/host-double-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/host-double-percent-encoded-novalid.html
new file mode 100644
index 000000000..322e4ec41
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/host-double-percent-encoded-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: host-double-percent-encoded</title>
+<iframe src="http://%41.com"></iframe>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/host-double-percent-encoded-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/host-double-percent-encoded-percent-encoded-novalid.html
new file mode 100644
index 000000000..1a505f070
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/host-double-percent-encoded-percent-encoded-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: host-double-percent-encoded-percent-encoded</title>
+<iframe src="http://%ef%bc%85%ef%bc%94%ef%bc%91.com"></iframe>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/host-empty-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/host-empty-novalid.html
new file mode 100644
index 000000000..c7c675151
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/host-empty-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: host-empty</title>
+<iframe src="http://"></iframe>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/host-empty-userinfo-empty-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/host-empty-userinfo-empty-novalid.html
new file mode 100644
index 000000000..f44f6ceb6
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/host-empty-userinfo-empty-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: host-empty-userinfo-empty</title>
+<iframe src="http://@/www.example.com"></iframe>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/host-empty-with-userinfo-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/host-empty-with-userinfo-novalid.html
new file mode 100644
index 000000000..dfb4c8af7
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/host-empty-with-userinfo-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: host-empty-with-userinfo</title>
+<iframe src="http://user:pass@/"></iframe>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/host-hostname-in-brackets-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/host-hostname-in-brackets-novalid.html
new file mode 100644
index 000000000..27c546add
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/host-hostname-in-brackets-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: host-hostname-in-brackets</title>
+<iframe src="http://[www.google.com]/"></iframe>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/host-invalid-unicode-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/host-invalid-unicode-novalid.html
new file mode 100644
index 000000000..9cf93c27f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/host-invalid-unicode-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: host-invalid-unicode</title>
+<iframe src="http://﷐zyx.com"></iframe>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/host-invalid-unicode-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/host-invalid-unicode-percent-encoded-novalid.html
new file mode 100644
index 000000000..c5d371e43
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/host-invalid-unicode-percent-encoded-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: host-invalid-unicode-percent-encoded</title>
+<iframe src="http://%ef%b7%90zyx.com"></iframe>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/host-newline-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/host-newline-novalid.html
new file mode 100644
index 000000000..f914a5c84
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/host-newline-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: host-newline</title>
+<iframe src="http://example.
+org"></iframe>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/host-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/host-space-novalid.html
new file mode 100644
index 000000000..00567d593
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/host-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: host-space</title>
+<iframe src="http://example .org"></iframe>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/host-square-brackets-port-contains-colon-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/host-square-brackets-port-contains-colon-novalid.html
new file mode 100644
index 000000000..ae7284275
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/host-square-brackets-port-contains-colon-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: host-square-brackets-port-contains-colon</title>
+<iframe src="http://[1::2]:3:4"></iframe>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/host-tab-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/host-tab-novalid.html
new file mode 100644
index 000000000..d36f12578
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/host-tab-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: host-tab</title>
+<iframe src="http://example .org"></iframe>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/host-u0000-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/host-u0000-percent-encoded-novalid.html
new file mode 100644
index 000000000..509184a6a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/host-u0000-percent-encoded-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: host-u0000-percent-encoded</title>
+<iframe src="http://%00.com"></iframe>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/host-u0000-percent-encoded-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/host-u0000-percent-encoded-percent-encoded-novalid.html
new file mode 100644
index 000000000..7599cc119
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/host-u0000-percent-encoded-percent-encoded-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: host-u0000-percent-encoded-percent-encoded</title>
+<iframe src="http://%ef%bc%85%ef%bc%90%ef%bc%90.com"></iframe>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/path-bare-percent-sign-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/path-bare-percent-sign-novalid.html
new file mode 100644
index 000000000..61fbdf004
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/path-bare-percent-sign-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: path-bare-percent-sign</title>
+<iframe src="http://example.com/foo%"></iframe>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/path-contains-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/path-contains-space-novalid.html
new file mode 100644
index 000000000..d11dfb92a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/path-contains-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: path-contains-space</title>
+<iframe src="/a/ /c"></iframe>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/path-leading-backslash-at-sign-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/path-leading-backslash-at-sign-novalid.html
new file mode 100644
index 000000000..f3d0d22b6
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/path-leading-backslash-at-sign-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: path-leading-backslash-at-sign</title>
+<iframe src="http://foo.com/\@"></iframe>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/path-leading-colon-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/path-leading-colon-backslash-novalid.html
new file mode 100644
index 000000000..bf8a1ca17
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/path-leading-colon-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: path-leading-colon-backslash</title>
+<iframe src=":\"></iframe>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/path-leading-colon-chars-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/path-leading-colon-chars-backslash-novalid.html
new file mode 100644
index 000000000..3db3992c0
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/path-leading-colon-chars-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: path-leading-colon-chars-backslash</title>
+<iframe src=":foo.com\"></iframe>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/path-leading-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/path-leading-space-novalid.html
new file mode 100644
index 000000000..56f349685
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/path-leading-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: path-leading-space</title>
+<iframe src="http://f:21/ b"></iframe>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/path-percent-encoded-malformed-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/path-percent-encoded-malformed-novalid.html
new file mode 100644
index 000000000..db315edde
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/path-percent-encoded-malformed-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: path-percent-encoded-malformed</title>
+<iframe src="http://example.com/foo/%2e%2"></iframe>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/path-relative-square-brackets-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/path-relative-square-brackets-novalid.html
new file mode 100644
index 000000000..9417972d6
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/path-relative-square-brackets-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: path-relative-square-brackets</title>
+<iframe src="[61:24:74]:98"></iframe>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/path-tab-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/path-tab-novalid.html
new file mode 100644
index 000000000..0b0a6d755
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/path-tab-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: path-tab</title>
+<iframe src="http://example.com/foo bar"></iframe>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/path-trailing-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/path-trailing-space-novalid.html
new file mode 100644
index 000000000..e79f6456f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/path-trailing-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: path-trailing-space</title>
+<iframe src="http://f:21/b ?"></iframe>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/path-u0091-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/path-u0091-novalid.html
new file mode 100644
index 000000000..e03e054f0
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/path-u0091-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: path-u0091</title>
+<iframe src="http://example.com/foo‘"></iframe>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/port-999999-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/port-999999-novalid.html
new file mode 100644
index 000000000..4f2290d2a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/port-999999-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: port-999999</title>
+<iframe src="http://f:999999/c"></iframe>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/port-cr-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/port-cr-novalid.html
new file mode 100644
index 000000000..b2df05bb6
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/port-cr-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: port-cr</title>
+<iframe src="http://f: /c"></iframe>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/port-leading-colon-bracket-colon-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/port-leading-colon-bracket-colon-novalid.html
new file mode 100644
index 000000000..41280d20e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/port-leading-colon-bracket-colon-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: port-leading-colon-bracket-colon</title>
+<iframe src="http://2001::1]:80"></iframe>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/port-leading-colon-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/port-leading-colon-novalid.html
new file mode 100644
index 000000000..4a4a6a045
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/port-leading-colon-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: port-leading-colon</title>
+<iframe src="http://2001::1"></iframe>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/port-leading-dash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/port-leading-dash-novalid.html
new file mode 100644
index 000000000..052e77e05
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/port-leading-dash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: port-leading-dash</title>
+<iframe src="http://foo:-80/"></iframe>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/port-multiple-letters-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/port-multiple-letters-novalid.html
new file mode 100644
index 000000000..d2b6be6ae
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/port-multiple-letters-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: port-multiple-letters</title>
+<iframe src="http://f:fifty-two/c"></iframe>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/port-newline-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/port-newline-novalid.html
new file mode 100644
index 000000000..adff8ec67
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/port-newline-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: port-newline</title>
+<iframe src="http://f:
+/c"></iframe>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/port-single-letter-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/port-single-letter-novalid.html
new file mode 100644
index 000000000..fb149be62
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/port-single-letter-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: port-single-letter</title>
+<iframe src="http://f:b/c"></iframe>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/port-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/port-space-novalid.html
new file mode 100644
index 000000000..aafdfe523
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/port-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: port-space</title>
+<iframe src="http://f: /c"></iframe>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/port-tab-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/port-tab-novalid.html
new file mode 100644
index 000000000..de0ce71ae
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/port-tab-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: port-tab</title>
+<iframe src="http://f: /c"></iframe>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/query-leading-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/query-leading-space-novalid.html
new file mode 100644
index 000000000..28014d704
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/query-leading-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: query-leading-space</title>
+<iframe src="http://f:21/b? d"></iframe>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/query-trailing-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/query-trailing-space-novalid.html
new file mode 100644
index 000000000..15f2db6f7
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/query-trailing-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: query-trailing-space</title>
+<iframe src="http://f:21/b?d #"></iframe>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-data-contains-fragment-haswarn.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-data-contains-fragment-haswarn.html
new file mode 100644
index 000000000..504824ca1
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-data-contains-fragment-haswarn.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>data:text/html,test#test warning: scheme-data-contains-fragment</title>
+<iframe src="data:text/html,test#test"></iframe>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-data-single-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-data-single-slash-novalid.html
new file mode 100644
index 000000000..ef6b1f9db
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-data-single-slash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: scheme-data-single-slash</title>
+<iframe src="data:/example.com/"></iframe>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-file-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-file-backslash-novalid.html
new file mode 100644
index 000000000..debfa4852
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-file-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: scheme-file-backslash</title>
+<iframe src="file:c:\foo\bar.html"></iframe>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-file-single-slash-c-bar-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-file-single-slash-c-bar-novalid.html
new file mode 100644
index 000000000..194ff491c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-file-single-slash-c-bar-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: scheme-file-single-slash-c-bar</title>
+<iframe src="file:/C|/foo/bar"></iframe>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-file-triple-slash-c-bar-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-file-triple-slash-c-bar-novalid.html
new file mode 100644
index 000000000..1584da92a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-file-triple-slash-c-bar-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: scheme-file-triple-slash-c-bar</title>
+<iframe src="file:///C|/foo/bar"></iframe>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-ftp-no-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-ftp-no-slash-novalid.html
new file mode 100644
index 000000000..d8a2d18fb
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-ftp-no-slash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: scheme-ftp-no-slash</title>
+<iframe src="ftp:example.com/"></iframe>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-ftp-single-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-ftp-single-slash-novalid.html
new file mode 100644
index 000000000..eccb4dd75
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-ftp-single-slash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: scheme-ftp-single-slash</title>
+<iframe src="ftp:/example.com/"></iframe>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-http-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-http-backslash-novalid.html
new file mode 100644
index 000000000..8e9fe2405
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-http-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: scheme-http-backslash</title>
+<iframe src="http:\\foo.com\"></iframe>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-http-no-slash-colon-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-http-no-slash-colon-novalid.html
new file mode 100644
index 000000000..0546f29cb
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-http-no-slash-colon-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: scheme-http-no-slash-colon</title>
+<iframe src="http::@c:29"></iframe>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-http-no-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-http-no-slash-novalid.html
new file mode 100644
index 000000000..d77d7e5d5
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-http-no-slash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: scheme-http-no-slash</title>
+<iframe src="http:foo.com"></iframe>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-http-no-slash-square-bracket-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-http-no-slash-square-bracket-novalid.html
new file mode 100644
index 000000000..f66c4397f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-http-no-slash-square-bracket-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: scheme-http-no-slash-square-bracket</title>
+<iframe src="http:[61:27]/:foo"></iframe>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-http-single-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-http-single-slash-novalid.html
new file mode 100644
index 000000000..12a75c3ca
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-http-single-slash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: scheme-http-single-slash</title>
+<iframe src="http:/example.com/"></iframe>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-https-no-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-https-no-slash-novalid.html
new file mode 100644
index 000000000..18dc42fa3
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-https-no-slash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: scheme-https-no-slash</title>
+<iframe src="https:example.com/"></iframe>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-https-single-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-https-single-slash-novalid.html
new file mode 100644
index 000000000..142e7b0e1
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-https-single-slash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: scheme-https-single-slash</title>
+<iframe src="https:/example.com/"></iframe>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-javascript-no-slash-malformed-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-javascript-no-slash-malformed-novalid.html
new file mode 100644
index 000000000..6424e83c0
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-javascript-no-slash-malformed-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: scheme-javascript-no-slash-malformed</title>
+<iframe src="javascript:example.com/"></iframe>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-trailing-cr-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-trailing-cr-novalid.html
new file mode 100644
index 000000000..dfc74a212
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-trailing-cr-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: scheme-trailing-cr</title>
+<iframe src="a: foo.com"></iframe>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-trailing-newline-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-trailing-newline-novalid.html
new file mode 100644
index 000000000..7c7dca770
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-trailing-newline-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: scheme-trailing-newline</title>
+<iframe src="a:
+foo.com"></iframe>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-trailing-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-trailing-space-novalid.html
new file mode 100644
index 000000000..4d439a76d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-trailing-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: scheme-trailing-space</title>
+<iframe src="a: foo.com"></iframe>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-trailing-tab-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-trailing-tab-novalid.html
new file mode 100644
index 000000000..5542fe93d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-trailing-tab-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: scheme-trailing-tab</title>
+<iframe src="a: foo.com"></iframe>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/userinfo-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/userinfo-backslash-novalid.html
new file mode 100644
index 000000000..099e4861e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/userinfo-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: userinfo-backslash</title>
+<iframe src="http://a\b:c\d@foo.com"></iframe>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/userinfo-password-bad-chars-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/userinfo-password-bad-chars-novalid.html
new file mode 100644
index 000000000..084b8f0b9
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/userinfo-password-bad-chars-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: userinfo-password-bad-chars</title>
+<iframe src="http://&a:foo(b]c@d:2/"></iframe>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/userinfo-password-contains-pile-of-poo-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/userinfo-password-contains-pile-of-poo-novalid.html
new file mode 100644
index 000000000..85aadb633
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/userinfo-password-contains-pile-of-poo-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: userinfo-password-contains-pile-of-poo</title>
+<iframe src="http://foo:💩@example.com"></iframe>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/userinfo-username-contains-at-sign-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/userinfo-username-contains-at-sign-novalid.html
new file mode 100644
index 000000000..4ff2b75c5
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/userinfo-username-contains-at-sign-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: userinfo-username-contains-at-sign</title>
+<iframe src="http://::@c@d:2"></iframe>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/userinfo-username-contains-pile-of-poo-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/userinfo-username-contains-pile-of-poo-novalid.html
new file mode 100644
index 000000000..41fc10e29
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/userinfo-username-contains-pile-of-poo-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: userinfo-username-contains-pile-of-poo</title>
+<iframe src="http://💩:foo@example.com"></iframe>