Changeset 87547 in webkit


Ignore:
Timestamp:
May 27, 2011 1:29:12 PM (13 years ago)
Author:
jamesr@google.com
Message:

2011-05-27 James Robinson <jamesr@chromium.org>

Reviewed by Simon Fraser.

GraphicsLayers for overflow controls on iframe without clipping layer left out of layer tree
https://bugs.webkit.org/show_bug.cgi?id=61590

  • compositing/iframes/resizer-expected.txt: Added.
  • compositing/iframes/resizer.html: Added.

2011-05-27 James Robinson <jamesr@chromium.org>

Reviewed by Simon Fraser.

GraphicsLayers for overflow controls on iframe without clipping layer left out of layer tree
https://bugs.webkit.org/show_bug.cgi?id=61590

Adds overflow control layers to the compositor tree for layers without clipping layers regardless of whether the
backing is parented. This ensures that the scroll corner layer for an iframe without a clipping layer ends up
in the final layer tree. We don't currently render resizers for iframes, but we will soon and this keeps the
graphics layer tree consistent.

Test: compositing/iframes/resizer.html

  • rendering/RenderLayerCompositor.cpp: (WebCore::RenderLayerCompositor::rebuildCompositingLayerTree):
Location:
trunk
Files:
3 added
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r87545 r87547  
     12011-05-27  James Robinson  <jamesr@chromium.org>
     2
     3        Reviewed by Simon Fraser.
     4
     5        GraphicsLayers for overflow controls on iframe without clipping layer left out of layer tree
     6        https://bugs.webkit.org/show_bug.cgi?id=61590
     7
     8        * compositing/iframes/resizer-expected.txt: Added.
     9        * compositing/iframes/resizer.html: Added.
     10
    1112011-05-27  Nikolas Zimmermann  <nzimmermann@rim.com>
    212
  • trunk/Source/WebCore/ChangeLog

    r87539 r87547  
     12011-05-27  James Robinson  <jamesr@chromium.org>
     2
     3        Reviewed by Simon Fraser.
     4
     5        GraphicsLayers for overflow controls on iframe without clipping layer left out of layer tree
     6        https://bugs.webkit.org/show_bug.cgi?id=61590
     7
     8        Adds overflow control layers to the compositor tree for layers without clipping layers regardless of whether the
     9        backing is parented.  This ensures that the scroll corner layer for an iframe without a clipping layer ends up
     10        in the final layer tree.  We don't currently render resizers for iframes, but we will soon and this keeps the
     11        graphics layer tree consistent.
     12
     13        Test: compositing/iframes/resizer.html
     14
     15        * rendering/RenderLayerCompositor.cpp:
     16        (WebCore::RenderLayerCompositor::rebuildCompositingLayerTree):
     17
    1182011-05-27  Adam Barth  <abarth@webkit.org>
    219
  • trunk/Source/WebCore/rendering/RenderLayerCompositor.cpp

    r87303 r87547  
    859859            parented = parentFrameContentLayers(toRenderPart(layer->renderer()));
    860860
     861        if (!parented)
     862            layerBacking->parentForSublayers()->setChildren(layerChildren);
     863
    861864        // If the layer has a clipping layer the overflow controls layers will be siblings of the clipping layer.
    862865        // Otherwise, the overflow control layers are normal children.
     
    864867            if (GraphicsLayer* overflowControlLayer = layerBacking->layerForHorizontalScrollbar()) {
    865868                overflowControlLayer->removeFromParent();
    866                 layerChildren.append(overflowControlLayer);
     869                layerBacking->parentForSublayers()->addChild(overflowControlLayer);
    867870            }
    868871
    869872            if (GraphicsLayer* overflowControlLayer = layerBacking->layerForVerticalScrollbar()) {
    870873                overflowControlLayer->removeFromParent();
    871                 layerChildren.append(overflowControlLayer);
     874                layerBacking->parentForSublayers()->addChild(overflowControlLayer);
    872875            }
    873876
    874877            if (GraphicsLayer* overflowControlLayer = layerBacking->layerForScrollCorner()) {
    875878                overflowControlLayer->removeFromParent();
    876                 layerChildren.append(overflowControlLayer);
     879                layerBacking->parentForSublayers()->addChild(overflowControlLayer);
    877880            }
    878881        }
    879 
    880         if (!parented)
    881             layerBacking->parentForSublayers()->setChildren(layerChildren);
    882882
    883883#if ENABLE(FULLSCREEN_API)
Note: See TracChangeset for help on using the changeset viewer.