Changeset 107364 in webkit


Ignore:
Timestamp:
Feb 9, 2012 10:34:52 PM (12 years ago)
Author:
wangxianzhu@chromium.org
Message:

Avoid compositing invisible fixed positioned elements
https://bugs.webkit.org/show_bug.cgi?id=78186

Reviewed by James Robinson.

Source/WebCore:

Test: compositing/layer-creation/fixed-position-out-of-view.html

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::requiresCompositingForPosition):

LayoutTests:

  • compositing/layer-creation/fixed-position-out-of-view-expected.txt: Added.
  • compositing/layer-creation/fixed-position-out-of-view.html: Added.
Location:
trunk
Files:
2 added
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r107363 r107364  
     12012-02-09  Xianzhu Wang  <wangxianzhu@chromium.org>
     2
     3        Avoid compositing invisible fixed positioned elements
     4        https://bugs.webkit.org/show_bug.cgi?id=78186
     5
     6        Reviewed by James Robinson.
     7
     8        * compositing/layer-creation/fixed-position-out-of-view-expected.txt: Added.
     9        * compositing/layer-creation/fixed-position-out-of-view.html: Added.
     10
    1112012-02-09  James Robinson  <jamesr@chromium.org>
    212
  • trunk/Source/WebCore/ChangeLog

    r107362 r107364  
     12012-02-09  Xianzhu Wang  <wangxianzhu@chromium.org>
     2
     3        Avoid compositing invisible fixed positioned elements
     4        https://bugs.webkit.org/show_bug.cgi?id=78186
     5
     6        Reviewed by James Robinson.
     7
     8        Test: compositing/layer-creation/fixed-position-out-of-view.html
     9
     10        * rendering/RenderLayerCompositor.cpp:
     11        (WebCore::RenderLayerCompositor::requiresCompositingForPosition):
     12
    1132012-02-09  Timothy Hatcher  <timothy@apple.com>
    214
  • trunk/Source/WebCore/rendering/RenderLayerCompositor.cpp

    r107335 r107364  
    15681568        return false;
    15691569
     1570    // Fixed position elements that are invisible in the current view don't get their own layer.
     1571    FrameView* frameView = m_renderView->frameView();
     1572    if (frameView && !layer->absoluteBoundingBox().intersects(LayoutRect(frameView->scrollXForFixedPosition(), frameView->scrollYForFixedPosition(), frameView->layoutWidth(), frameView->layoutHeight())))
     1573        return false;
     1574
    15701575    return true;
    15711576}
Note: See TracChangeset for help on using the changeset viewer.