Title: [244124] branches/safari-607-branch
Revision
244124
Author
[email protected]
Date
2019-04-10 10:11:08 -0700 (Wed, 10 Apr 2019)

Log Message

Cherry-pick r243786. rdar://problem/49725702

    REGRESSION (r238266): Exchange 2013 Outlook Web Access displays partially blank page when creating new e-mail
    https://bugs.webkit.org/show_bug.cgi?id=196522
    Source/WebCore:

    rdar://problem/49472941

    Reviewed by Zalan Bujtas.

    In this content a layer is composited to clip descendants, and has negative z-order children,
    so we compute that it "paints into ancestor", and has a foreground layer. This combination doesn't
    make sense, and when the layer becomes scrollable, we end up with bad paint phases on layers, and
    fail to paint the contents.

    Fix by ensuring that a layer has its own backing store if it requires a foreground layer
    by virtue of having negative z-order children.

    Test: compositing/backing/foreground-layer-no-paints-into-ancestor.html

    * rendering/RenderLayerCompositor.cpp:
    (WebCore::RenderLayerCompositor::requiresOwnBackingStore const):

    LayoutTests:

    Reviewed by Zalan Bujtas.

    * compositing/backing/foreground-layer-no-paints-into-ancestor-expected.html: Added.
    * compositing/backing/foreground-layer-no-paints-into-ancestor.html: Added.

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

Modified Paths

Added Paths

Diff

Modified: branches/safari-607-branch/LayoutTests/ChangeLog (244123 => 244124)


--- branches/safari-607-branch/LayoutTests/ChangeLog	2019-04-10 17:11:05 UTC (rev 244123)
+++ branches/safari-607-branch/LayoutTests/ChangeLog	2019-04-10 17:11:08 UTC (rev 244124)
@@ -1,5 +1,50 @@
 2019-04-09  Alan Coon  <[email protected]>
 
+        Cherry-pick r243786. rdar://problem/49725702
+
+    REGRESSION (r238266): Exchange 2013 Outlook Web Access displays partially blank page when creating new e-mail
+    https://bugs.webkit.org/show_bug.cgi?id=196522
+    Source/WebCore:
+    
+    rdar://problem/49472941
+    
+    Reviewed by Zalan Bujtas.
+    
+    In this content a layer is composited to clip descendants, and has negative z-order children,
+    so we compute that it "paints into ancestor", and has a foreground layer. This combination doesn't
+    make sense, and when the layer becomes scrollable, we end up with bad paint phases on layers, and
+    fail to paint the contents.
+    
+    Fix by ensuring that a layer has its own backing store if it requires a foreground layer
+    by virtue of having negative z-order children.
+    
+    Test: compositing/backing/foreground-layer-no-paints-into-ancestor.html
+    
+    * rendering/RenderLayerCompositor.cpp:
+    (WebCore::RenderLayerCompositor::requiresOwnBackingStore const):
+    
+    LayoutTests:
+    
+    Reviewed by Zalan Bujtas.
+    
+    * compositing/backing/foreground-layer-no-paints-into-ancestor-expected.html: Added.
+    * compositing/backing/foreground-layer-no-paints-into-ancestor.html: Added.
+    
+    
+    git-svn-id: https://svn.webkit.org/repository/webkit/trunk@243786 268f45cc-cd09-0410-ab3c-d52691b4dbfc
+
+    2019-04-02  Simon Fraser  <[email protected]>
+
+            REGRESSION (r238266): Exchange 2013 Outlook Web Access displays partially blank page when creating new e-mail
+            https://bugs.webkit.org/show_bug.cgi?id=196522
+
+            Reviewed by Zalan Bujtas.
+
+            * compositing/backing/foreground-layer-no-paints-into-ancestor-expected.html: Added.
+            * compositing/backing/foreground-layer-no-paints-into-ancestor.html: Added.
+
+2019-04-09  Alan Coon  <[email protected]>
+
         Cherry-pick r243660. rdar://problem/49725670
 
     [Simple line layout] Turn off inline boxtree generation for multiline content

Added: branches/safari-607-branch/LayoutTests/compositing/backing/foreground-layer-no-paints-into-ancestor-expected.html (0 => 244124)


--- branches/safari-607-branch/LayoutTests/compositing/backing/foreground-layer-no-paints-into-ancestor-expected.html	                        (rev 0)
+++ branches/safari-607-branch/LayoutTests/compositing/backing/foreground-layer-no-paints-into-ancestor-expected.html	2019-04-10 17:11:08 UTC (rev 244124)
@@ -0,0 +1,49 @@
+<!DOCTYPE html> <!-- webkit-test-runner [ internal:AsyncOverflowScrollingEnabled=true ] -->
+<html>
+<head>
+    <style>
+        .scroller {
+            position: absolute;
+            z-index: 0;
+            margin: 20px;
+            width: 300px;
+            height: 300px;
+            border: 1px solid black;
+            overflow: hidden;
+        }
+        .scroller.scrollable {
+            overflow-y: scroll;
+        }
+        .contents {
+            height: 2000px;
+        }
+        .negative {
+            position: absolute;
+            top: 0;
+            left: 0;
+            z-index: -1;
+            padding: 20px;
+            background-color: gray;
+        }
+        .box {
+            width: 200px;
+            height: 200px;
+        }
+        .composited {
+            width: 20px;
+            height: 20px;
+            transform: translateZ(0);
+            background-color: silver;
+        }
+    </style>
+</head>
+<body>
+    <div id="target" class="scrollable scroller">
+        <div class="negative"></div>
+        <div class="contents">
+            <div class="composited box"></div>
+            <div class="box" style="background-color: green"></div>
+        </div>
+    </div>
+</body>
+</html>

Added: branches/safari-607-branch/LayoutTests/compositing/backing/foreground-layer-no-paints-into-ancestor.html (0 => 244124)


--- branches/safari-607-branch/LayoutTests/compositing/backing/foreground-layer-no-paints-into-ancestor.html	                        (rev 0)
+++ branches/safari-607-branch/LayoutTests/compositing/backing/foreground-layer-no-paints-into-ancestor.html	2019-04-10 17:11:08 UTC (rev 244124)
@@ -0,0 +1,61 @@
+<!DOCTYPE html> <!-- webkit-test-runner [ internal:AsyncOverflowScrollingEnabled=true ] -->
+<html>
+<head>
+    <style>
+        .scroller {
+            position: absolute;
+            z-index: 0;
+            margin: 20px;
+            width: 300px;
+            height: 300px;
+            border: 1px solid black;
+            overflow: hidden;
+        }
+        .scroller.scrollable {
+            overflow-y: scroll;
+        }
+        .contents {
+            height: 2000px;
+        }
+        .negative {
+            position: absolute;
+            top: 0;
+            left: 0;
+            z-index: -1;
+            padding: 20px;
+            background-color: gray;
+        }
+        .box {
+            width: 200px;
+            height: 200px;
+        }
+        .composited {
+            width: 20px;
+            height: 20px;
+            transform: translateZ(0);
+            background-color: silver;
+        }
+    </style>
+    <script>
+        if (window.testRunner)
+            testRunner.waitUntilDone();
+
+        window.addEventListener('load', () => {
+            setTimeout(() => {
+                document.getElementById('target').classList.add('scrollable');
+                if (window.testRunner)
+                    testRunner.notifyDone();
+            }, 0);
+        }, false);
+    </script>
+</head>
+<body>
+    <div id="target" class="scroller">
+        <div class="negative"></div>
+        <div class="contents">
+            <div class="composited box"></div>
+            <div class="box" style="background-color: green"></div>
+        </div>
+    </div>
+</body>
+</html>

Modified: branches/safari-607-branch/Source/WebCore/ChangeLog (244123 => 244124)


--- branches/safari-607-branch/Source/WebCore/ChangeLog	2019-04-10 17:11:05 UTC (rev 244123)
+++ branches/safari-607-branch/Source/WebCore/ChangeLog	2019-04-10 17:11:08 UTC (rev 244124)
@@ -1,5 +1,61 @@
 2019-04-09  Alan Coon  <[email protected]>
 
+        Cherry-pick r243786. rdar://problem/49725702
+
+    REGRESSION (r238266): Exchange 2013 Outlook Web Access displays partially blank page when creating new e-mail
+    https://bugs.webkit.org/show_bug.cgi?id=196522
+    Source/WebCore:
+    
+    rdar://problem/49472941
+    
+    Reviewed by Zalan Bujtas.
+    
+    In this content a layer is composited to clip descendants, and has negative z-order children,
+    so we compute that it "paints into ancestor", and has a foreground layer. This combination doesn't
+    make sense, and when the layer becomes scrollable, we end up with bad paint phases on layers, and
+    fail to paint the contents.
+    
+    Fix by ensuring that a layer has its own backing store if it requires a foreground layer
+    by virtue of having negative z-order children.
+    
+    Test: compositing/backing/foreground-layer-no-paints-into-ancestor.html
+    
+    * rendering/RenderLayerCompositor.cpp:
+    (WebCore::RenderLayerCompositor::requiresOwnBackingStore const):
+    
+    LayoutTests:
+    
+    Reviewed by Zalan Bujtas.
+    
+    * compositing/backing/foreground-layer-no-paints-into-ancestor-expected.html: Added.
+    * compositing/backing/foreground-layer-no-paints-into-ancestor.html: Added.
+    
+    
+    git-svn-id: https://svn.webkit.org/repository/webkit/trunk@243786 268f45cc-cd09-0410-ab3c-d52691b4dbfc
+
+    2019-04-02  Simon Fraser  <[email protected]>
+
+            REGRESSION (r238266): Exchange 2013 Outlook Web Access displays partially blank page when creating new e-mail
+            https://bugs.webkit.org/show_bug.cgi?id=196522
+            rdar://problem/49472941
+
+            Reviewed by Zalan Bujtas.
+
+            In this content a layer is composited to clip descendants, and has negative z-order children,
+            so we compute that it "paints into ancestor", and has a foreground layer. This combination doesn't
+            make sense, and when the layer becomes scrollable, we end up with bad paint phases on layers, and
+            fail to paint the contents.
+
+            Fix by ensuring that a layer has its own backing store if it requires a foreground layer
+            by virtue of having negative z-order children.
+
+            Test: compositing/backing/foreground-layer-no-paints-into-ancestor.html
+
+            * rendering/RenderLayerCompositor.cpp:
+            (WebCore::RenderLayerCompositor::requiresOwnBackingStore const):
+
+2019-04-09  Alan Coon  <[email protected]>
+
         Cherry-pick r243660. rdar://problem/49725670
 
     [Simple line layout] Turn off inline boxtree generation for multiline content

Modified: branches/safari-607-branch/Source/WebCore/rendering/RenderLayerCompositor.cpp (244123 => 244124)


--- branches/safari-607-branch/Source/WebCore/rendering/RenderLayerCompositor.cpp	2019-04-10 17:11:05 UTC (rev 244123)
+++ branches/safari-607-branch/Source/WebCore/rendering/RenderLayerCompositor.cpp	2019-04-10 17:11:08 UTC (rev 244124)
@@ -2174,6 +2174,7 @@
         || requiresCompositingForPlugin(renderer, queryData)
         || requiresCompositingForEditableImage(renderer)
         || requiresCompositingForOverflowScrolling(layer, queryData)
+        || needsContentsCompositingLayer(layer)
         || renderer.isTransparent()
         || renderer.hasMask()
         || renderer.hasReflection()
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to