Add support for HTMLIframeElement.allowFullscreen attribute
authorcdumez@apple.com <cdumez@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 9 Sep 2016 01:53:51 +0000 (01:53 +0000)
committercdumez@apple.com <cdumez@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 9 Sep 2016 01:53:51 +0000 (01:53 +0000)
https://bugs.webkit.org/show_bug.cgi?id=161757

Reviewed by Sam Weinig.

LayoutTests/imported/w3c:

Rebaseline W3C test now that more checks are passing.

* web-platform-tests/html/dom/reflection-embedded-expected.txt:

Source/WebCore:

Add support for HTMLIframeElement.allowFullscreen attribute:
- https://html.spec.whatwg.org/#dom-iframe-allowfullscreen

Firefox and Chrome already support it, unprefixed.

Note that the HTMLIframeElement.allowFullscreen attribute reflects the
allowfullscreen content attribute which we already support.

Test: fullscreen/full-screen-iframe-allowFullscreen.html

* html/HTMLIFrameElement.idl:

LayoutTests:

Add layout test coverage.

* fullscreen/full-screen-iframe-allowFullscreen-expected.txt: Added.
* fullscreen/full-screen-iframe-allowFullscreen.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@205686 268f45cc-cd09-0410-ab3c-d52691b4dbfc

LayoutTests/ChangeLog
LayoutTests/fullscreen/full-screen-iframe-allowFullscreen-expected.txt [new file with mode: 0644]
LayoutTests/fullscreen/full-screen-iframe-allowFullscreen.html [new file with mode: 0644]
LayoutTests/imported/w3c/ChangeLog
LayoutTests/imported/w3c/web-platform-tests/html/dom/reflection-embedded-expected.txt
LayoutTests/platform/ios-simulator/imported/w3c/web-platform-tests/html/dom/reflection-embedded-expected.txt
Source/WebCore/ChangeLog
Source/WebCore/html/HTMLIFrameElement.idl

index 6b1dafb..9234ece 100644 (file)
@@ -1,3 +1,15 @@
+2016-09-08  Chris Dumez  <cdumez@apple.com>
+
+        Add support for HTMLIframeElement.allowFullscreen attribute
+        https://bugs.webkit.org/show_bug.cgi?id=161757
+
+        Reviewed by Sam Weinig.
+
+        Add layout test coverage.
+
+        * fullscreen/full-screen-iframe-allowFullscreen-expected.txt: Added.
+        * fullscreen/full-screen-iframe-allowFullscreen.html: Added.
+
 2016-09-08  Ryan Haddad  <ryanhaddad@apple.com>
 
         Remove pass expectation for fast/text/emoji-num-glyphs.html after r205657.
diff --git a/LayoutTests/fullscreen/full-screen-iframe-allowFullscreen-expected.txt b/LayoutTests/fullscreen/full-screen-iframe-allowFullscreen-expected.txt
new file mode 100644 (file)
index 0000000..dd9b9a0
--- /dev/null
@@ -0,0 +1,6 @@
+To test manually, click the "Go full screen" button - the page should enter full screen mode.
+
+EVENT(webkitfullscreenchange)
+TEST(document.getElementById('frame').contentDocument.width==document.width) OK
+END OF TEST
+
diff --git a/LayoutTests/fullscreen/full-screen-iframe-allowFullscreen.html b/LayoutTests/fullscreen/full-screen-iframe-allowFullscreen.html
new file mode 100644 (file)
index 0000000..887c6ae
--- /dev/null
@@ -0,0 +1,19 @@
+<p>To test manually, click the "Go full screen" button - the page should enter full screen mode.</p>
+<script src="full-screen-test.js"></script>
+<script>
+function runTest() {
+    var frame = document.getElementById('frame');
+    frame.allowFullscreen = true;
+
+    waitForEvent(frame.contentDocument, 'webkitfullscreenchange', function() { 
+            test("document.getElementById('frame').contentDocument.width==document.width")
+            endTest();
+    });
+
+    runWithKeyDown(function() {
+        frame.contentDocument.documentElement.webkitRequestFullScreen();
+    });
+}
+</script>
+<iframe id="frame" src="resources/inner.html" width="300" height="100" onload="runTest()">
+</iframe>
index 0124998..5fdce28 100644 (file)
@@ -1,5 +1,16 @@
 2016-09-08  Chris Dumez  <cdumez@apple.com>
 
+        Add support for HTMLIframeElement.allowFullscreen attribute
+        https://bugs.webkit.org/show_bug.cgi?id=161757
+
+        Reviewed by Sam Weinig.
+
+        Rebaseline W3C test now that more checks are passing.
+
+        * web-platform-tests/html/dom/reflection-embedded-expected.txt:
+
+2016-09-08  Chris Dumez  <cdumez@apple.com>
+
         frame.longDesc / iframe.longDesc should reflect as a URL
         https://bugs.webkit.org/show_bug.cgi?id=161764
 
index 61046d8..b213f9b 100644 (file)
@@ -2764,85 +2764,85 @@ FAIL iframe.seamless: IDL set to object "test-toString" followed by IDL get asse
 PASS iframe.seamless: IDL set to object "test-valueOf" should not throw 
 PASS iframe.seamless: IDL set to object "test-valueOf" followed by hasAttribute() 
 FAIL iframe.seamless: IDL set to object "test-valueOf" followed by IDL get assert_equals: expected (boolean) true but got (object) object "test-valueOf"
-FAIL iframe.allowFullscreen: typeof IDL attribute assert_equals: expected "boolean" but got "undefined"
-FAIL iframe.allowFullscreen: IDL get with DOM attribute unset assert_equals: expected (boolean) false but got (undefined) undefined
+PASS iframe.allowFullscreen: typeof IDL attribute 
+PASS iframe.allowFullscreen: IDL get with DOM attribute unset 
 PASS iframe.allowFullscreen: setAttribute() to "" followed by getAttribute() 
-FAIL iframe.allowFullscreen: setAttribute() to "" followed by IDL get assert_equals: expected (boolean) true but got (undefined) undefined
+PASS iframe.allowFullscreen: setAttribute() to "" followed by IDL get 
 PASS iframe.allowFullscreen: setAttribute() to " foo " followed by getAttribute() 
-FAIL iframe.allowFullscreen: setAttribute() to " foo " followed by IDL get assert_equals: expected (boolean) true but got (undefined) undefined
+PASS iframe.allowFullscreen: setAttribute() to " foo " followed by IDL get 
 PASS iframe.allowFullscreen: setAttribute() to undefined followed by getAttribute() 
-FAIL iframe.allowFullscreen: setAttribute() to undefined followed by IDL get assert_equals: expected (boolean) true but got (undefined) undefined
+PASS iframe.allowFullscreen: setAttribute() to undefined followed by IDL get 
 PASS iframe.allowFullscreen: setAttribute() to null followed by getAttribute() 
-FAIL iframe.allowFullscreen: setAttribute() to null followed by IDL get assert_equals: expected (boolean) true but got (undefined) undefined
+PASS iframe.allowFullscreen: setAttribute() to null followed by IDL get 
 PASS iframe.allowFullscreen: setAttribute() to 7 followed by getAttribute() 
-FAIL iframe.allowFullscreen: setAttribute() to 7 followed by IDL get assert_equals: expected (boolean) true but got (undefined) undefined
+PASS iframe.allowFullscreen: setAttribute() to 7 followed by IDL get 
 PASS iframe.allowFullscreen: setAttribute() to 1.5 followed by getAttribute() 
-FAIL iframe.allowFullscreen: setAttribute() to 1.5 followed by IDL get assert_equals: expected (boolean) true but got (undefined) undefined
+PASS iframe.allowFullscreen: setAttribute() to 1.5 followed by IDL get 
 PASS iframe.allowFullscreen: setAttribute() to true followed by getAttribute() 
-FAIL iframe.allowFullscreen: setAttribute() to true followed by IDL get assert_equals: expected (boolean) true but got (undefined) undefined
+PASS iframe.allowFullscreen: setAttribute() to true followed by IDL get 
 PASS iframe.allowFullscreen: setAttribute() to false followed by getAttribute() 
-FAIL iframe.allowFullscreen: setAttribute() to false followed by IDL get assert_equals: expected (boolean) true but got (undefined) undefined
+PASS iframe.allowFullscreen: setAttribute() to false followed by IDL get 
 PASS iframe.allowFullscreen: setAttribute() to object "[object Object]" followed by getAttribute() 
-FAIL iframe.allowFullscreen: setAttribute() to object "[object Object]" followed by IDL get assert_equals: expected (boolean) true but got (undefined) undefined
+PASS iframe.allowFullscreen: setAttribute() to object "[object Object]" followed by IDL get 
 PASS iframe.allowFullscreen: setAttribute() to NaN followed by getAttribute() 
-FAIL iframe.allowFullscreen: setAttribute() to NaN followed by IDL get assert_equals: expected (boolean) true but got (undefined) undefined
+PASS iframe.allowFullscreen: setAttribute() to NaN followed by IDL get 
 PASS iframe.allowFullscreen: setAttribute() to Infinity followed by getAttribute() 
-FAIL iframe.allowFullscreen: setAttribute() to Infinity followed by IDL get assert_equals: expected (boolean) true but got (undefined) undefined
+PASS iframe.allowFullscreen: setAttribute() to Infinity followed by IDL get 
 PASS iframe.allowFullscreen: setAttribute() to -Infinity followed by getAttribute() 
-FAIL iframe.allowFullscreen: setAttribute() to -Infinity followed by IDL get assert_equals: expected (boolean) true but got (undefined) undefined
+PASS iframe.allowFullscreen: setAttribute() to -Infinity followed by IDL get 
 PASS iframe.allowFullscreen: setAttribute() to "\0" followed by getAttribute() 
-FAIL iframe.allowFullscreen: setAttribute() to "\0" followed by IDL get assert_equals: expected (boolean) true but got (undefined) undefined
+PASS iframe.allowFullscreen: setAttribute() to "\0" followed by IDL get 
 PASS iframe.allowFullscreen: setAttribute() to object "test-toString" followed by getAttribute() 
-FAIL iframe.allowFullscreen: setAttribute() to object "test-toString" followed by IDL get assert_equals: expected (boolean) true but got (undefined) undefined
+PASS iframe.allowFullscreen: setAttribute() to object "test-toString" followed by IDL get 
 PASS iframe.allowFullscreen: setAttribute() to object "test-valueOf" followed by getAttribute() 
-FAIL iframe.allowFullscreen: setAttribute() to object "test-valueOf" followed by IDL get assert_equals: expected (boolean) true but got (undefined) undefined
+PASS iframe.allowFullscreen: setAttribute() to object "test-valueOf" followed by IDL get 
 PASS iframe.allowFullscreen: setAttribute() to "allowFullscreen" followed by getAttribute() 
-FAIL iframe.allowFullscreen: setAttribute() to "allowFullscreen" followed by IDL get assert_equals: expected (boolean) true but got (undefined) undefined
+PASS iframe.allowFullscreen: setAttribute() to "allowFullscreen" followed by IDL get 
 PASS iframe.allowFullscreen: IDL set to "" should not throw 
-FAIL iframe.allowFullscreen: IDL set to "" followed by hasAttribute() assert_equals: expected false but got true
-FAIL iframe.allowFullscreen: IDL set to "" followed by IDL get assert_equals: expected (boolean) false but got (string) ""
+PASS iframe.allowFullscreen: IDL set to "" followed by hasAttribute() 
+PASS iframe.allowFullscreen: IDL set to "" followed by IDL get 
 PASS iframe.allowFullscreen: IDL set to " foo " should not throw 
 PASS iframe.allowFullscreen: IDL set to " foo " followed by hasAttribute() 
-FAIL iframe.allowFullscreen: IDL set to " foo " followed by IDL get assert_equals: expected (boolean) true but got (string) " foo "
+PASS iframe.allowFullscreen: IDL set to " foo " followed by IDL get 
 PASS iframe.allowFullscreen: IDL set to undefined should not throw 
-FAIL iframe.allowFullscreen: IDL set to undefined followed by hasAttribute() assert_equals: expected false but got true
-FAIL iframe.allowFullscreen: IDL set to undefined followed by IDL get assert_equals: expected (boolean) false but got (undefined) undefined
+PASS iframe.allowFullscreen: IDL set to undefined followed by hasAttribute() 
+PASS iframe.allowFullscreen: IDL set to undefined followed by IDL get 
 PASS iframe.allowFullscreen: IDL set to null should not throw 
-FAIL iframe.allowFullscreen: IDL set to null followed by hasAttribute() assert_equals: expected false but got true
-FAIL iframe.allowFullscreen: IDL set to null followed by IDL get assert_equals: expected (boolean) false but got (object) null
+PASS iframe.allowFullscreen: IDL set to null followed by hasAttribute() 
+PASS iframe.allowFullscreen: IDL set to null followed by IDL get 
 PASS iframe.allowFullscreen: IDL set to 7 should not throw 
 PASS iframe.allowFullscreen: IDL set to 7 followed by hasAttribute() 
-FAIL iframe.allowFullscreen: IDL set to 7 followed by IDL get assert_equals: expected (boolean) true but got (number) 7
+PASS iframe.allowFullscreen: IDL set to 7 followed by IDL get 
 PASS iframe.allowFullscreen: IDL set to 1.5 should not throw 
 PASS iframe.allowFullscreen: IDL set to 1.5 followed by hasAttribute() 
-FAIL iframe.allowFullscreen: IDL set to 1.5 followed by IDL get assert_equals: expected (boolean) true but got (number) 1.5
+PASS iframe.allowFullscreen: IDL set to 1.5 followed by IDL get 
 PASS iframe.allowFullscreen: IDL set to true should not throw 
 PASS iframe.allowFullscreen: IDL set to true followed by hasAttribute() 
 PASS iframe.allowFullscreen: IDL set to true followed by IDL get 
 PASS iframe.allowFullscreen: IDL set to false should not throw 
-FAIL iframe.allowFullscreen: IDL set to false followed by hasAttribute() assert_equals: expected false but got true
+PASS iframe.allowFullscreen: IDL set to false followed by hasAttribute() 
 PASS iframe.allowFullscreen: IDL set to false followed by IDL get 
 PASS iframe.allowFullscreen: IDL set to object "[object Object]" should not throw 
 PASS iframe.allowFullscreen: IDL set to object "[object Object]" followed by hasAttribute() 
-FAIL iframe.allowFullscreen: IDL set to object "[object Object]" followed by IDL get assert_equals: expected (boolean) true but got (object) object "[object Object]"
+PASS iframe.allowFullscreen: IDL set to object "[object Object]" followed by IDL get 
 PASS iframe.allowFullscreen: IDL set to NaN should not throw 
-FAIL iframe.allowFullscreen: IDL set to NaN followed by hasAttribute() assert_equals: expected false but got true
-FAIL iframe.allowFullscreen: IDL set to NaN followed by IDL get assert_equals: expected (boolean) false but got (number) NaN
+PASS iframe.allowFullscreen: IDL set to NaN followed by hasAttribute() 
+PASS iframe.allowFullscreen: IDL set to NaN followed by IDL get 
 PASS iframe.allowFullscreen: IDL set to Infinity should not throw 
 PASS iframe.allowFullscreen: IDL set to Infinity followed by hasAttribute() 
-FAIL iframe.allowFullscreen: IDL set to Infinity followed by IDL get assert_equals: expected (boolean) true but got (number) Infinity
+PASS iframe.allowFullscreen: IDL set to Infinity followed by IDL get 
 PASS iframe.allowFullscreen: IDL set to -Infinity should not throw 
 PASS iframe.allowFullscreen: IDL set to -Infinity followed by hasAttribute() 
-FAIL iframe.allowFullscreen: IDL set to -Infinity followed by IDL get assert_equals: expected (boolean) true but got (number) -Infinity
+PASS iframe.allowFullscreen: IDL set to -Infinity followed by IDL get 
 PASS iframe.allowFullscreen: IDL set to "\0" should not throw 
 PASS iframe.allowFullscreen: IDL set to "\0" followed by hasAttribute() 
-FAIL iframe.allowFullscreen: IDL set to "\0" followed by IDL get assert_equals: expected (boolean) true but got (string) "\0"
+PASS iframe.allowFullscreen: IDL set to "\0" followed by IDL get 
 PASS iframe.allowFullscreen: IDL set to object "test-toString" should not throw 
 PASS iframe.allowFullscreen: IDL set to object "test-toString" followed by hasAttribute() 
-FAIL iframe.allowFullscreen: IDL set to object "test-toString" followed by IDL get assert_equals: expected (boolean) true but got (object) object "test-toString"
+PASS iframe.allowFullscreen: IDL set to object "test-toString" followed by IDL get 
 PASS iframe.allowFullscreen: IDL set to object "test-valueOf" should not throw 
 PASS iframe.allowFullscreen: IDL set to object "test-valueOf" followed by hasAttribute() 
-FAIL iframe.allowFullscreen: IDL set to object "test-valueOf" followed by IDL get assert_equals: expected (boolean) true but got (object) object "test-valueOf"
+PASS iframe.allowFullscreen: IDL set to object "test-valueOf" followed by IDL get 
 PASS iframe.width: typeof IDL attribute 
 PASS iframe.width: IDL get with DOM attribute unset 
 PASS iframe.width: setAttribute() to "" followed by getAttribute() 
index a4ba7af..86c722c 100644 (file)
@@ -2764,85 +2764,85 @@ FAIL iframe.seamless: IDL set to object "test-toString" followed by IDL get asse
 PASS iframe.seamless: IDL set to object "test-valueOf" should not throw 
 PASS iframe.seamless: IDL set to object "test-valueOf" followed by hasAttribute() 
 FAIL iframe.seamless: IDL set to object "test-valueOf" followed by IDL get assert_equals: expected (boolean) true but got (object) object "test-valueOf"
-FAIL iframe.allowFullscreen: typeof IDL attribute assert_equals: expected "boolean" but got "undefined"
-FAIL iframe.allowFullscreen: IDL get with DOM attribute unset assert_equals: expected (boolean) false but got (undefined) undefined
+PASS iframe.allowFullscreen: typeof IDL attribute 
+PASS iframe.allowFullscreen: IDL get with DOM attribute unset 
 PASS iframe.allowFullscreen: setAttribute() to "" followed by getAttribute() 
-FAIL iframe.allowFullscreen: setAttribute() to "" followed by IDL get assert_equals: expected (boolean) true but got (undefined) undefined
+PASS iframe.allowFullscreen: setAttribute() to "" followed by IDL get 
 PASS iframe.allowFullscreen: setAttribute() to " foo " followed by getAttribute() 
-FAIL iframe.allowFullscreen: setAttribute() to " foo " followed by IDL get assert_equals: expected (boolean) true but got (undefined) undefined
+PASS iframe.allowFullscreen: setAttribute() to " foo " followed by IDL get 
 PASS iframe.allowFullscreen: setAttribute() to undefined followed by getAttribute() 
-FAIL iframe.allowFullscreen: setAttribute() to undefined followed by IDL get assert_equals: expected (boolean) true but got (undefined) undefined
+PASS iframe.allowFullscreen: setAttribute() to undefined followed by IDL get 
 PASS iframe.allowFullscreen: setAttribute() to null followed by getAttribute() 
-FAIL iframe.allowFullscreen: setAttribute() to null followed by IDL get assert_equals: expected (boolean) true but got (undefined) undefined
+PASS iframe.allowFullscreen: setAttribute() to null followed by IDL get 
 PASS iframe.allowFullscreen: setAttribute() to 7 followed by getAttribute() 
-FAIL iframe.allowFullscreen: setAttribute() to 7 followed by IDL get assert_equals: expected (boolean) true but got (undefined) undefined
+PASS iframe.allowFullscreen: setAttribute() to 7 followed by IDL get 
 PASS iframe.allowFullscreen: setAttribute() to 1.5 followed by getAttribute() 
-FAIL iframe.allowFullscreen: setAttribute() to 1.5 followed by IDL get assert_equals: expected (boolean) true but got (undefined) undefined
+PASS iframe.allowFullscreen: setAttribute() to 1.5 followed by IDL get 
 PASS iframe.allowFullscreen: setAttribute() to true followed by getAttribute() 
-FAIL iframe.allowFullscreen: setAttribute() to true followed by IDL get assert_equals: expected (boolean) true but got (undefined) undefined
+PASS iframe.allowFullscreen: setAttribute() to true followed by IDL get 
 PASS iframe.allowFullscreen: setAttribute() to false followed by getAttribute() 
-FAIL iframe.allowFullscreen: setAttribute() to false followed by IDL get assert_equals: expected (boolean) true but got (undefined) undefined
+PASS iframe.allowFullscreen: setAttribute() to false followed by IDL get 
 PASS iframe.allowFullscreen: setAttribute() to object "[object Object]" followed by getAttribute() 
-FAIL iframe.allowFullscreen: setAttribute() to object "[object Object]" followed by IDL get assert_equals: expected (boolean) true but got (undefined) undefined
+PASS iframe.allowFullscreen: setAttribute() to object "[object Object]" followed by IDL get 
 PASS iframe.allowFullscreen: setAttribute() to NaN followed by getAttribute() 
-FAIL iframe.allowFullscreen: setAttribute() to NaN followed by IDL get assert_equals: expected (boolean) true but got (undefined) undefined
+PASS iframe.allowFullscreen: setAttribute() to NaN followed by IDL get 
 PASS iframe.allowFullscreen: setAttribute() to Infinity followed by getAttribute() 
-FAIL iframe.allowFullscreen: setAttribute() to Infinity followed by IDL get assert_equals: expected (boolean) true but got (undefined) undefined
+PASS iframe.allowFullscreen: setAttribute() to Infinity followed by IDL get 
 PASS iframe.allowFullscreen: setAttribute() to -Infinity followed by getAttribute() 
-FAIL iframe.allowFullscreen: setAttribute() to -Infinity followed by IDL get assert_equals: expected (boolean) true but got (undefined) undefined
+PASS iframe.allowFullscreen: setAttribute() to -Infinity followed by IDL get 
 PASS iframe.allowFullscreen: setAttribute() to "\0" followed by getAttribute() 
-FAIL iframe.allowFullscreen: setAttribute() to "\0" followed by IDL get assert_equals: expected (boolean) true but got (undefined) undefined
+PASS iframe.allowFullscreen: setAttribute() to "\0" followed by IDL get 
 PASS iframe.allowFullscreen: setAttribute() to object "test-toString" followed by getAttribute() 
-FAIL iframe.allowFullscreen: setAttribute() to object "test-toString" followed by IDL get assert_equals: expected (boolean) true but got (undefined) undefined
+PASS iframe.allowFullscreen: setAttribute() to object "test-toString" followed by IDL get 
 PASS iframe.allowFullscreen: setAttribute() to object "test-valueOf" followed by getAttribute() 
-FAIL iframe.allowFullscreen: setAttribute() to object "test-valueOf" followed by IDL get assert_equals: expected (boolean) true but got (undefined) undefined
+PASS iframe.allowFullscreen: setAttribute() to object "test-valueOf" followed by IDL get 
 PASS iframe.allowFullscreen: setAttribute() to "allowFullscreen" followed by getAttribute() 
-FAIL iframe.allowFullscreen: setAttribute() to "allowFullscreen" followed by IDL get assert_equals: expected (boolean) true but got (undefined) undefined
+PASS iframe.allowFullscreen: setAttribute() to "allowFullscreen" followed by IDL get 
 PASS iframe.allowFullscreen: IDL set to "" should not throw 
-FAIL iframe.allowFullscreen: IDL set to "" followed by hasAttribute() assert_equals: expected false but got true
-FAIL iframe.allowFullscreen: IDL set to "" followed by IDL get assert_equals: expected (boolean) false but got (string) ""
+PASS iframe.allowFullscreen: IDL set to "" followed by hasAttribute() 
+PASS iframe.allowFullscreen: IDL set to "" followed by IDL get 
 PASS iframe.allowFullscreen: IDL set to " foo " should not throw 
 PASS iframe.allowFullscreen: IDL set to " foo " followed by hasAttribute() 
-FAIL iframe.allowFullscreen: IDL set to " foo " followed by IDL get assert_equals: expected (boolean) true but got (string) " foo "
+PASS iframe.allowFullscreen: IDL set to " foo " followed by IDL get 
 PASS iframe.allowFullscreen: IDL set to undefined should not throw 
-FAIL iframe.allowFullscreen: IDL set to undefined followed by hasAttribute() assert_equals: expected false but got true
-FAIL iframe.allowFullscreen: IDL set to undefined followed by IDL get assert_equals: expected (boolean) false but got (undefined) undefined
+PASS iframe.allowFullscreen: IDL set to undefined followed by hasAttribute() 
+PASS iframe.allowFullscreen: IDL set to undefined followed by IDL get 
 PASS iframe.allowFullscreen: IDL set to null should not throw 
-FAIL iframe.allowFullscreen: IDL set to null followed by hasAttribute() assert_equals: expected false but got true
-FAIL iframe.allowFullscreen: IDL set to null followed by IDL get assert_equals: expected (boolean) false but got (object) null
+PASS iframe.allowFullscreen: IDL set to null followed by hasAttribute() 
+PASS iframe.allowFullscreen: IDL set to null followed by IDL get 
 PASS iframe.allowFullscreen: IDL set to 7 should not throw 
 PASS iframe.allowFullscreen: IDL set to 7 followed by hasAttribute() 
-FAIL iframe.allowFullscreen: IDL set to 7 followed by IDL get assert_equals: expected (boolean) true but got (number) 7
+PASS iframe.allowFullscreen: IDL set to 7 followed by IDL get 
 PASS iframe.allowFullscreen: IDL set to 1.5 should not throw 
 PASS iframe.allowFullscreen: IDL set to 1.5 followed by hasAttribute() 
-FAIL iframe.allowFullscreen: IDL set to 1.5 followed by IDL get assert_equals: expected (boolean) true but got (number) 1.5
+PASS iframe.allowFullscreen: IDL set to 1.5 followed by IDL get 
 PASS iframe.allowFullscreen: IDL set to true should not throw 
 PASS iframe.allowFullscreen: IDL set to true followed by hasAttribute() 
 PASS iframe.allowFullscreen: IDL set to true followed by IDL get 
 PASS iframe.allowFullscreen: IDL set to false should not throw 
-FAIL iframe.allowFullscreen: IDL set to false followed by hasAttribute() assert_equals: expected false but got true
+PASS iframe.allowFullscreen: IDL set to false followed by hasAttribute() 
 PASS iframe.allowFullscreen: IDL set to false followed by IDL get 
 PASS iframe.allowFullscreen: IDL set to object "[object Object]" should not throw 
 PASS iframe.allowFullscreen: IDL set to object "[object Object]" followed by hasAttribute() 
-FAIL iframe.allowFullscreen: IDL set to object "[object Object]" followed by IDL get assert_equals: expected (boolean) true but got (object) object "[object Object]"
+PASS iframe.allowFullscreen: IDL set to object "[object Object]" followed by IDL get 
 PASS iframe.allowFullscreen: IDL set to NaN should not throw 
-FAIL iframe.allowFullscreen: IDL set to NaN followed by hasAttribute() assert_equals: expected false but got true
-FAIL iframe.allowFullscreen: IDL set to NaN followed by IDL get assert_equals: expected (boolean) false but got (number) NaN
+PASS iframe.allowFullscreen: IDL set to NaN followed by hasAttribute() 
+PASS iframe.allowFullscreen: IDL set to NaN followed by IDL get 
 PASS iframe.allowFullscreen: IDL set to Infinity should not throw 
 PASS iframe.allowFullscreen: IDL set to Infinity followed by hasAttribute() 
-FAIL iframe.allowFullscreen: IDL set to Infinity followed by IDL get assert_equals: expected (boolean) true but got (number) Infinity
+PASS iframe.allowFullscreen: IDL set to Infinity followed by IDL get 
 PASS iframe.allowFullscreen: IDL set to -Infinity should not throw 
 PASS iframe.allowFullscreen: IDL set to -Infinity followed by hasAttribute() 
-FAIL iframe.allowFullscreen: IDL set to -Infinity followed by IDL get assert_equals: expected (boolean) true but got (number) -Infinity
+PASS iframe.allowFullscreen: IDL set to -Infinity followed by IDL get 
 PASS iframe.allowFullscreen: IDL set to "\0" should not throw 
 PASS iframe.allowFullscreen: IDL set to "\0" followed by hasAttribute() 
-FAIL iframe.allowFullscreen: IDL set to "\0" followed by IDL get assert_equals: expected (boolean) true but got (string) "\0"
+PASS iframe.allowFullscreen: IDL set to "\0" followed by IDL get 
 PASS iframe.allowFullscreen: IDL set to object "test-toString" should not throw 
 PASS iframe.allowFullscreen: IDL set to object "test-toString" followed by hasAttribute() 
-FAIL iframe.allowFullscreen: IDL set to object "test-toString" followed by IDL get assert_equals: expected (boolean) true but got (object) object "test-toString"
+PASS iframe.allowFullscreen: IDL set to object "test-toString" followed by IDL get 
 PASS iframe.allowFullscreen: IDL set to object "test-valueOf" should not throw 
 PASS iframe.allowFullscreen: IDL set to object "test-valueOf" followed by hasAttribute() 
-FAIL iframe.allowFullscreen: IDL set to object "test-valueOf" followed by IDL get assert_equals: expected (boolean) true but got (object) object "test-valueOf"
+PASS iframe.allowFullscreen: IDL set to object "test-valueOf" followed by IDL get 
 PASS iframe.width: typeof IDL attribute 
 PASS iframe.width: IDL get with DOM attribute unset 
 PASS iframe.width: setAttribute() to "" followed by getAttribute() 
index 6d79673..e724fc9 100644 (file)
@@ -1,5 +1,24 @@
 2016-09-08  Chris Dumez  <cdumez@apple.com>
 
+        Add support for HTMLIframeElement.allowFullscreen attribute
+        https://bugs.webkit.org/show_bug.cgi?id=161757
+
+        Reviewed by Sam Weinig.
+
+        Add support for HTMLIframeElement.allowFullscreen attribute:
+        - https://html.spec.whatwg.org/#dom-iframe-allowfullscreen
+
+        Firefox and Chrome already support it, unprefixed.
+
+        Note that the HTMLIframeElement.allowFullscreen attribute reflects the
+        allowfullscreen content attribute which we already support.
+
+        Test: fullscreen/full-screen-iframe-allowFullscreen.html
+
+        * html/HTMLIFrameElement.idl:
+
+2016-09-08  Chris Dumez  <cdumez@apple.com>
+
         frame.longDesc / iframe.longDesc should reflect as a URL
         https://bugs.webkit.org/show_bug.cgi?id=161764
 
index 965d78a..b2f0f2d 100644 (file)
@@ -28,6 +28,7 @@ interface HTMLIFrameElement : HTMLElement {
     [Reflect] attribute DOMString name;
 
     [PutForwards=value] readonly attribute DOMTokenList sandbox;
+    [Reflect] attribute boolean allowFullscreen;
 
     [Reflect] attribute DOMString scrolling;
     [Reflect, URL] attribute USVString src;