Auto merge of #13926 - pcwalton:iframe-frameborder, r=emilio

script: Fix issues relating to <iframe frameborder>.

These changes implement the `frameBorder` attribute on `HTMLIFrameElement` and fix the syntax of the rule that implements this presentational hint in the presentational hint stylesheet.

Improves google.com.

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/13926)
<!-- Reviewable:end -->
This commit is contained in:
bors-servo 2016-10-26 19:13:09 -05:00 committed by GitHub
commit b489ba0983
8 changed files with 42 additions and 134 deletions

View file

@ -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::<Element>();

View file

@ -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;

View file

@ -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;

View file

@ -1689,9 +1689,6 @@
[HTMLIFrameElement interface: attribute scrolling]
expected: FAIL
[HTMLIFrameElement interface: attribute frameBorder]
expected: FAIL
[HTMLIFrameElement interface: attribute longDesc]
expected: FAIL

View file

@ -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

View file

@ -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",

View file

@ -0,0 +1,6 @@
<!DOCTYPE html>
<meta charset="utf-8">
<link rel="match" href="frameborder_ref.html">
<iframe frameborder=0 src="data:text/html,%3Cspan%3EJust%20a%20simple%20little%20iframe.%3C%2Fspan%3E"></iframe>
<iframe src="data:text/html,%3Cspan%3EJust%20a%20simple%20little%20iframe.%3C%2Fspan%3E"></iframe>

View file

@ -0,0 +1,5 @@
<!DOCTYPE html>
<meta charset="utf-8">
<iframe style="border: none" src="data:text/html,%3Cspan%3EJust%20a%20simple%20little%20iframe.%3C%2Fspan%3E"></iframe>
<iframe src="data:text/html,%3Cspan%3EJust%20a%20simple%20little%20iframe.%3C%2Fspan%3E"></iframe>