Changeset 61215 in webkit


Ignore:
Timestamp:
Jun 15, 2010 3:00:26 PM (14 years ago)
Author:
Simon Fraser
Message:

2010-06-15 Simon Fraser <Simon Fraser>

Reviewed by Dave Hyatt.

Garbage shown outside HTML if HTML is absolutely positioned
https://bugs.webkit.org/show_bug.cgi?id=36163

Add a check that the root renderer (the document element's renderer) covers
the entire viewport before deciding that we don't need the RenderView
to paint its background. Fixes lack of painting with positioned, floated, and
display: table html elements.

Test: fast/repaint/positioned-document-element.html

  • rendering/RenderView.cpp: (WebCore::RenderView::paintBoxDecorations):
Location:
trunk
Files:
4 added
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r61214 r61215  
     12010-06-15  Simon Fraser  <simon.fraser@apple.com>
     2
     3        Reviewed by Dave Hyatt.
     4
     5        Garbage shown outside HTML if HTML is absolutely positioned
     6        https://bugs.webkit.org/show_bug.cgi?id=36163
     7       
     8        Repaint test with a positioned html element.
     9
     10        * fast/repaint/positioned-document-element.html: Added.
     11        * platform/mac/fast/repaint/positioned-document-element-expected.checksum: Added.
     12        * platform/mac/fast/repaint/positioned-document-element-expected.png: Added.
     13        * platform/mac/fast/repaint/positioned-document-element-expected.txt: Added.
     14
    1152010-06-15  Simon Fraser  <simon.fraser@apple.com>
    216
  • trunk/WebCore/ChangeLog

    r61214 r61215  
     12010-06-15  Simon Fraser  <simon.fraser@apple.com>
     2
     3        Reviewed by Dave Hyatt.
     4
     5        Garbage shown outside HTML if HTML is absolutely positioned
     6        https://bugs.webkit.org/show_bug.cgi?id=36163
     7       
     8        Add a check that the root renderer (the document element's renderer) covers
     9        the entire viewport before deciding that we don't need the RenderView
     10        to paint its background. Fixes lack of painting with positioned, floated, and
     11        display: table html elements.
     12
     13        Test: fast/repaint/positioned-document-element.html
     14
     15        * rendering/RenderView.cpp:
     16        (WebCore::RenderView::paintBoxDecorations):
     17
    1182010-06-15  Simon Fraser  <simon.fraser@apple.com>
    219
  • trunk/WebCore/rendering/RenderView.cpp

    r61214 r61215  
    202202    }
    203203
     204    bool rootFillsViewport = false;
     205    if (RenderObject* rootRenderer = document()->documentElement()->renderer()) {
     206        // The document element's renderer is currently forced to be a block, but may not always be.
     207        RenderBox* rootBox = rootRenderer->isBox() ? toRenderBox(rootRenderer) : 0;
     208        rootFillsViewport = rootBox && !rootBox->x() && !rootBox->y() && rootBox->width() >= width() && rootBox->height() >= height();
     209    }
     210   
    204211    // If painting will entirely fill the view, no need to fill the background.
    205     if (elt || rendererObscuresBackground(firstChild()) || !view())
     212    if (elt || (rootFillsViewport && rendererObscuresBackground(firstChild())) || !view())
    206213        return;
    207214
Note: See TracChangeset for help on using the changeset viewer.