Title: [128514] trunk
Revision
128514
Author
[email protected]
Date
2012-09-13 15:32:28 -0700 (Thu, 13 Sep 2012)

Log Message

Hide all ancestors of the full screen element when going full screen
https://bugs.webkit.org/show_bug.cgi?id=96332

Reviewed by James Robinson.

Source/WebCore:

Since fixed position elements can now sometimes become stacking
contexts, explicitly set position: static on full-screen ancestors so
that there are no stacking context ancestors that could cause the full
screen element to become incorrectly sorted.

Test: fullscreen/full-screen-fixed-pos-parent.html

* css/fullscreen.css:
(:-webkit-full-screen-ancestor:not(iframe)):

LayoutTests:

This test has an all red image that (without this patch) incorrectly
sorts on top of the full screen element. With this patch, the all
green full screen element appears on top.

* fullscreen/full-screen-fixed-pos-parent-expected.png: Added.
* fullscreen/full-screen-fixed-pos-parent-expected.txt: Added.
* fullscreen/full-screen-fixed-pos-parent.html: Added.
* fullscreen/resources/green.html: Added.

Modified Paths

Added Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (128513 => 128514)


--- trunk/LayoutTests/ChangeLog	2012-09-13 22:19:43 UTC (rev 128513)
+++ trunk/LayoutTests/ChangeLog	2012-09-13 22:32:28 UTC (rev 128514)
@@ -1,3 +1,19 @@
+2012-09-13  Adrienne Walker  <[email protected]>
+
+        Hide all ancestors of the full screen element when going full screen
+        https://bugs.webkit.org/show_bug.cgi?id=96332
+
+        Reviewed by James Robinson.
+
+        This test has an all red image that (without this patch) incorrectly
+        sorts on top of the full screen element. With this patch, the all
+        green full screen element appears on top.
+
+        * fullscreen/full-screen-fixed-pos-parent-expected.png: Added.
+        * fullscreen/full-screen-fixed-pos-parent-expected.txt: Added.
+        * fullscreen/full-screen-fixed-pos-parent.html: Added.
+        * fullscreen/resources/green.html: Added.
+
 2012-09-13  Adam Barth  <[email protected]>
 
         REGRESSION(r125126): It made fast/events/keyevent-iframe-removed-crash.html assert

Added: trunk/LayoutTests/fullscreen/full-screen-fixed-pos-parent-expected.png (0 => 128514)


--- trunk/LayoutTests/fullscreen/full-screen-fixed-pos-parent-expected.png	                        (rev 0)
+++ trunk/LayoutTests/fullscreen/full-screen-fixed-pos-parent-expected.png	2012-09-13 22:32:28 UTC (rev 128514)
@@ -0,0 +1,6 @@
+\x89PNG
+
+
+IHDR X')tEXtchecksumf9cdba21f7e2009389f80333d1d70551\xA8sY
+\xA9IDATx\x9C\xED\xD6\xC1	 \xC0\xB0\xD3\xC9\xDD%
+\x82$\xF4\xD95g\xED\xD7\xBF1X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x833X1\x83\xBBg\xBC0\xE4\xF49\xCAIEND\xAEB`\x82
\ No newline at end of file

Added: trunk/LayoutTests/fullscreen/full-screen-fixed-pos-parent-expected.txt (0 => 128514)


--- trunk/LayoutTests/fullscreen/full-screen-fixed-pos-parent-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/fullscreen/full-screen-fixed-pos-parent-expected.txt	2012-09-13 22:32:28 UTC (rev 128514)
@@ -0,0 +1,2 @@
+
+

Added: trunk/LayoutTests/fullscreen/full-screen-fixed-pos-parent.html (0 => 128514)


--- trunk/LayoutTests/fullscreen/full-screen-fixed-pos-parent.html	                        (rev 0)
+++ trunk/LayoutTests/fullscreen/full-screen-fixed-pos-parent.html	2012-09-13 22:32:28 UTC (rev 128514)
@@ -0,0 +1,63 @@
+<!DOCTYPE html>
+<html>
+<style>
+    #bad {
+        position: fixed;
+        top: 0px;
+        left: 0px;
+        background-color: red;
+        width: 100%;
+        height: 100%;
+    }
+
+    #fixed-container {
+        position: fixed;
+        top: 0px;
+        left: 0px;
+        z-index: 0;
+    }
+
+    #fullscreenme {
+        height: 400px;
+        width: 400px;
+        border: 0px;
+    }
+</style>
+</head>
+<script src=""
+<script>
+    if (window.internals)
+        window.internals.settings.setFixedPositionCreatesStackingContext(true);
+
+    function doTest() {
+        if (window.testRunner) {
+            testRunner.dumpAsText(true);
+            testRunner.waitUntilDone();
+        }
+        document.body.offsetTop;
+        var fullscreen = document.getElementById('fullscreenme');
+
+        var fullscreenChangeEvent = function(event) {
+            if (window.testRunner)
+                testRunner.notifyDone();
+        };
+
+        document.addEventListener('webkitfullscreenchange', fullscreenChangeEvent);
+        document.addEventListener('keydown', function () {
+            fullscreen.webkitRequestFullScreen();
+
+        });
+        if (window.eventSender)
+            eventSender.keyDown('a');
+    }
+    if ("webkitRequestFullScreen" in Element.prototype)
+        window.addEventListener("load", doTest, false);
+</script>
+<body>
+    <!-- when full screening the iframe, bad should not be visible -->
+    <div id="fixed-container">
+        <iframe id="fullscreenme" src=""
+    </div>
+    <div id="bad"></div>
+</body>
+</html>

Added: trunk/LayoutTests/fullscreen/resources/green.html (0 => 128514)


--- trunk/LayoutTests/fullscreen/resources/green.html	                        (rev 0)
+++ trunk/LayoutTests/fullscreen/resources/green.html	2012-09-13 22:32:28 UTC (rev 128514)
@@ -0,0 +1,8 @@
+<html>
+  <style>
+    body {
+      background-color: green;
+    }
+  </style>
+  <body></body>
+</html>

Modified: trunk/Source/WebCore/ChangeLog (128513 => 128514)


--- trunk/Source/WebCore/ChangeLog	2012-09-13 22:19:43 UTC (rev 128513)
+++ trunk/Source/WebCore/ChangeLog	2012-09-13 22:32:28 UTC (rev 128514)
@@ -1,3 +1,20 @@
+2012-09-13  Adrienne Walker  <[email protected]>
+
+        Hide all ancestors of the full screen element when going full screen
+        https://bugs.webkit.org/show_bug.cgi?id=96332
+
+        Reviewed by James Robinson.
+
+        Since fixed position elements can now sometimes become stacking
+        contexts, explicitly set position: static on full-screen ancestors so
+        that there are no stacking context ancestors that could cause the full
+        screen element to become incorrectly sorted.
+
+        Test: fullscreen/full-screen-fixed-pos-parent.html
+
+        * css/fullscreen.css:
+        (:-webkit-full-screen-ancestor:not(iframe)):
+
 2012-09-13  Adam Barth  <[email protected]>
 
         REGRESSION(r125126): It made fast/events/keyevent-iframe-removed-crash.html assert

Modified: trunk/Source/WebCore/css/fullscreen.css (128513 => 128514)


--- trunk/Source/WebCore/css/fullscreen.css	2012-09-13 22:19:43 UTC (rev 128513)
+++ trunk/Source/WebCore/css/fullscreen.css	2012-09-13 22:32:28 UTC (rev 128514)
@@ -9,6 +9,7 @@
 
 :-webkit-full-screen-ancestor:not(iframe) {
     z-index: auto !important;
+    position: static !important;
     opacity: 1 !important;
     -webkit-transform: none !important;
     -webkit-mask: none !important;
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to