diff --git a/components/script/dom/htmliframeelement.rs b/components/script/dom/htmliframeelement.rs index cd18f86ee6a..963f7f83165 100644 --- a/components/script/dom/htmliframeelement.rs +++ b/components/script/dom/htmliframeelement.rs @@ -544,6 +544,11 @@ impl HTMLIFrameElementMethods for HTMLIFrameElement { // https://html.spec.whatwg.org/multipage/#dom-dim-height make_dimension_setter!(SetHeight, "height"); + // https://html.spec.whatwg.org/multipage/#other-elements,-attributes-and-apis:attr-iframe-frameborder + make_getter!(FrameBorder, "frameborder"); + // https://html.spec.whatwg.org/multipage/#other-elements,-attributes-and-apis:attr-iframe-frameborder + make_setter!(SetFrameBorder, "frameborder"); + // check-tidy: no specs after this line fn SetMozprivatebrowsing(&self, value: bool) { let element = self.upcast::(); diff --git a/components/script/dom/webidls/HTMLIFrameElement.webidl b/components/script/dom/webidls/HTMLIFrameElement.webidl index ced089391d2..d12935c7811 100644 --- a/components/script/dom/webidls/HTMLIFrameElement.webidl +++ b/components/script/dom/webidls/HTMLIFrameElement.webidl @@ -23,7 +23,7 @@ interface HTMLIFrameElement : HTMLElement { partial interface HTMLIFrameElement { // attribute DOMString align; // attribute DOMString scrolling; - // attribute DOMString frameBorder; + attribute DOMString frameBorder; // attribute DOMString longDesc; //[TreatNullAs=EmptyString] attribute DOMString marginHeight; diff --git a/resources/presentational-hints.css b/resources/presentational-hints.css index 8c701ec0405..84157dcb4bd 100644 --- a/resources/presentational-hints.css +++ b/resources/presentational-hints.css @@ -133,7 +133,7 @@ hr[color], hr[noshade] { border-style: solid; } -iframe[frameborder=0], iframe[frameborder=no i] { border: none; } +iframe[frameborder="0"], iframe[frameborder=no i] { border: none; } applet[align=left i], embed[align=left i], iframe[align=left i], img[type=image i][align=left i], object[align=left i] { float: left; diff --git a/tests/wpt/metadata/html/dom/interfaces.html.ini b/tests/wpt/metadata/html/dom/interfaces.html.ini index 67181fad83d..d9e3bda0495 100644 --- a/tests/wpt/metadata/html/dom/interfaces.html.ini +++ b/tests/wpt/metadata/html/dom/interfaces.html.ini @@ -1689,9 +1689,6 @@ [HTMLIFrameElement interface: attribute scrolling] expected: FAIL - [HTMLIFrameElement interface: attribute frameBorder] - expected: FAIL - [HTMLIFrameElement interface: attribute longDesc] expected: FAIL diff --git a/tests/wpt/metadata/html/dom/reflection-embedded.html.ini b/tests/wpt/metadata/html/dom/reflection-embedded.html.ini index 9086f7a8d02..a7016569e17 100644 --- a/tests/wpt/metadata/html/dom/reflection-embedded.html.ini +++ b/tests/wpt/metadata/html/dom/reflection-embedded.html.ini @@ -2445,135 +2445,6 @@ [iframe.scrolling: IDL set to object "test-valueOf" followed by IDL get] expected: FAIL - [iframe.frameBorder: typeof IDL attribute] - expected: FAIL - - [iframe.frameBorder: IDL get with DOM attribute unset] - expected: FAIL - - [iframe.frameBorder: setAttribute() to "" followed by IDL get] - expected: FAIL - - [iframe.frameBorder: setAttribute() to " \\0\\x01\\x02\\x03\\x04\\x05\\x06\\x07 \\b\\t\\n\\v\\f\\r\\x0e\\x0f \\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17 \\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f foo " followed by IDL get] - expected: FAIL - - [iframe.frameBorder: setAttribute() to undefined followed by IDL get] - expected: FAIL - - [iframe.frameBorder: setAttribute() to 7 followed by IDL get] - expected: FAIL - - [iframe.frameBorder: setAttribute() to 1.5 followed by IDL get] - expected: FAIL - - [iframe.frameBorder: setAttribute() to true followed by IDL get] - expected: FAIL - - [iframe.frameBorder: setAttribute() to false followed by IDL get] - expected: FAIL - - [iframe.frameBorder: setAttribute() to object "[object Object\]" followed by IDL get] - expected: FAIL - - [iframe.frameBorder: setAttribute() to NaN followed by IDL get] - expected: FAIL - - [iframe.frameBorder: setAttribute() to Infinity followed by IDL get] - expected: FAIL - - [iframe.frameBorder: setAttribute() to -Infinity followed by IDL get] - expected: FAIL - - [iframe.frameBorder: setAttribute() to "\\0" followed by IDL get] - expected: FAIL - - [iframe.frameBorder: setAttribute() to null followed by IDL get] - expected: FAIL - - [iframe.frameBorder: setAttribute() to object "test-toString" followed by IDL get] - expected: FAIL - - [iframe.frameBorder: setAttribute() to object "test-valueOf" followed by IDL get] - expected: FAIL - - [iframe.frameBorder: IDL set to "" followed by getAttribute()] - expected: FAIL - - [iframe.frameBorder: IDL set to " \\0\\x01\\x02\\x03\\x04\\x05\\x06\\x07 \\b\\t\\n\\v\\f\\r\\x0e\\x0f \\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17 \\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f foo " followed by getAttribute()] - expected: FAIL - - [iframe.frameBorder: IDL set to undefined followed by getAttribute()] - expected: FAIL - - [iframe.frameBorder: IDL set to undefined followed by IDL get] - expected: FAIL - - [iframe.frameBorder: IDL set to 7 followed by getAttribute()] - expected: FAIL - - [iframe.frameBorder: IDL set to 7 followed by IDL get] - expected: FAIL - - [iframe.frameBorder: IDL set to 1.5 followed by getAttribute()] - expected: FAIL - - [iframe.frameBorder: IDL set to 1.5 followed by IDL get] - expected: FAIL - - [iframe.frameBorder: IDL set to true followed by getAttribute()] - expected: FAIL - - [iframe.frameBorder: IDL set to true followed by IDL get] - expected: FAIL - - [iframe.frameBorder: IDL set to false followed by getAttribute()] - expected: FAIL - - [iframe.frameBorder: IDL set to false followed by IDL get] - expected: FAIL - - [iframe.frameBorder: IDL set to object "[object Object\]" followed by getAttribute()] - expected: FAIL - - [iframe.frameBorder: IDL set to object "[object Object\]" followed by IDL get] - expected: FAIL - - [iframe.frameBorder: IDL set to NaN followed by getAttribute()] - expected: FAIL - - [iframe.frameBorder: IDL set to NaN followed by IDL get] - expected: FAIL - - [iframe.frameBorder: IDL set to Infinity followed by getAttribute()] - expected: FAIL - - [iframe.frameBorder: IDL set to Infinity followed by IDL get] - expected: FAIL - - [iframe.frameBorder: IDL set to -Infinity followed by getAttribute()] - expected: FAIL - - [iframe.frameBorder: IDL set to -Infinity followed by IDL get] - expected: FAIL - - [iframe.frameBorder: IDL set to "\\0" followed by getAttribute()] - expected: FAIL - - [iframe.frameBorder: IDL set to null followed by getAttribute()] - expected: FAIL - - [iframe.frameBorder: IDL set to null followed by IDL get] - expected: FAIL - - [iframe.frameBorder: IDL set to object "test-toString" followed by getAttribute()] - expected: FAIL - - [iframe.frameBorder: IDL set to object "test-toString" followed by IDL get] - expected: FAIL - - [iframe.frameBorder: IDL set to object "test-valueOf" followed by IDL get] - expected: FAIL - [iframe.longDesc: typeof IDL attribute] expected: FAIL diff --git a/tests/wpt/mozilla/meta/MANIFEST.json b/tests/wpt/mozilla/meta/MANIFEST.json index 1be92d74c52..f5149986b21 100644 --- a/tests/wpt/mozilla/meta/MANIFEST.json +++ b/tests/wpt/mozilla/meta/MANIFEST.json @@ -1916,6 +1916,18 @@ "url": "/_mozilla/css/iframe/bg_color.html" } ], + "css/iframe/frameborder_a.html": [ + { + "path": "css/iframe/frameborder_a.html", + "references": [ + [ + "/_mozilla/css/iframe/frameborder_ref.html", + "==" + ] + ], + "url": "/_mozilla/css/iframe/frameborder_a.html" + } + ], "css/iframe/hide_after_load.html": [ { "path": "css/iframe/hide_after_load.html", @@ -15764,6 +15776,18 @@ "url": "/_mozilla/css/iframe/bg_color.html" } ], + "css/iframe/frameborder_a.html": [ + { + "path": "css/iframe/frameborder_a.html", + "references": [ + [ + "/_mozilla/css/iframe/frameborder_ref.html", + "==" + ] + ], + "url": "/_mozilla/css/iframe/frameborder_a.html" + } + ], "css/iframe/hide_after_load.html": [ { "path": "css/iframe/hide_after_load.html", diff --git a/tests/wpt/mozilla/tests/css/iframe/frameborder_a.html b/tests/wpt/mozilla/tests/css/iframe/frameborder_a.html new file mode 100644 index 00000000000..c81be895aa0 --- /dev/null +++ b/tests/wpt/mozilla/tests/css/iframe/frameborder_a.html @@ -0,0 +1,6 @@ + + + + + + diff --git a/tests/wpt/mozilla/tests/css/iframe/frameborder_ref.html b/tests/wpt/mozilla/tests/css/iframe/frameborder_ref.html new file mode 100644 index 00000000000..713df0ad4ae --- /dev/null +++ b/tests/wpt/mozilla/tests/css/iframe/frameborder_ref.html @@ -0,0 +1,5 @@ + + + + +