Changeset 155545 in webkit


Ignore:
Timestamp:
Sep 11, 2013 11:33:02 AM (11 years ago)
Author:
Simon Fraser
Message:

Optionally show visual and layout overflow rects in layer tree dumps
https://bugs.webkit.org/show_bug.cgi?id=121135

Reviewed by Beth Dakin.

When calling showLayerTree() from the debugger, show overflow rects
(visaul and layout) for renderers.

Does not affect test output.

  • rendering/RenderLayer.cpp:

(showLayerTree): Pass the new flag to show overflow rects.

  • rendering/RenderTreeAsText.cpp:

(WebCore::RenderTreeAsText::writeRenderObject): Print the rects.
(WebCore::write): Don't force layout on subframes if the "dont' layout"
flag is set.

  • rendering/RenderTreeAsText.h: New flag.
Location:
trunk/Source/WebCore
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r155543 r155545  
     12013-09-10  Simon Fraser  <simon.fraser@apple.com>
     2
     3        Optionally show visual and layout overflow rects in layer tree dumps
     4        https://bugs.webkit.org/show_bug.cgi?id=121135
     5
     6        Reviewed by Beth Dakin.
     7
     8        When calling showLayerTree() from the debugger, show overflow rects
     9        (visaul and layout) for renderers.
     10       
     11        Does not affect test output.
     12
     13        * rendering/RenderLayer.cpp:
     14        (showLayerTree): Pass the new flag to show overflow rects.
     15        * rendering/RenderTreeAsText.cpp:
     16        (WebCore::RenderTreeAsText::writeRenderObject): Print the rects.
     17        (WebCore::write): Don't force layout on subframes if the "dont' layout"
     18        flag is set.
     19        * rendering/RenderTreeAsText.h: New flag.
     20
    1212013-09-11  Chris Fleizach  <cfleizach@apple.com>
    222
  • trunk/Source/WebCore/rendering/RenderLayer.cpp

    r155374 r155545  
    64946494        return;
    64956495
    6496     WTF::String output = externalRepresentation(&layer->renderer().frame(), WebCore::RenderAsTextShowAllLayers | WebCore::RenderAsTextShowLayerNesting | WebCore::RenderAsTextShowCompositedLayers | WebCore::RenderAsTextShowAddresses | WebCore::RenderAsTextShowIDAndClass | WebCore::RenderAsTextDontUpdateLayout | WebCore::RenderAsTextShowLayoutState);
     6496    WTF::String output = externalRepresentation(&layer->renderer().frame(), WebCore::RenderAsTextShowAllLayers | WebCore::RenderAsTextShowLayerNesting | WebCore::RenderAsTextShowCompositedLayers | WebCore::RenderAsTextShowAddresses | WebCore::RenderAsTextShowIDAndClass | WebCore::RenderAsTextDontUpdateLayout | WebCore::RenderAsTextShowLayoutState | WebCore::RenderAsTextShowOverflow);
    64976497    fprintf(stderr, "%s\n", output.utf8().data());
    64986498}
  • trunk/Source/WebCore/rendering/RenderTreeAsText.cpp

    r155374 r155545  
    486486            ts << ")";
    487487    }
     488   
     489    if (behavior & RenderAsTextShowOverflow && o.isBox()) {
     490        const RenderBox& box = toRenderBox(o);
     491        if (box.hasRenderOverflow()) {
     492            LayoutRect layoutOverflow = box.layoutOverflowRect();
     493            ts << " (layout overflow " << layoutOverflow.x().toInt() << "," << layoutOverflow.y().toInt() << " " << layoutOverflow.width().toInt() << "x" << layoutOverflow.height().toInt() << ")";
     494           
     495            if (box.hasVisualOverflow()) {
     496                LayoutRect visualOverflow = box.visualOverflowRect();
     497                ts << " (visual overflow " << visualOverflow.x().toInt() << "," << visualOverflow.y().toInt() << " " << visualOverflow.width().toInt() << "x" << visualOverflow.height().toInt() << ")";
     498            }
     499        }
     500    }
    488501
    489502#if PLATFORM(QT)
     
    591604            FrameView* view = toFrameView(widget);
    592605            if (RenderView* root = view->frame().contentRenderer()) {
    593                 view->layout();
     606                if (!(behavior & RenderAsTextDontUpdateLayout))
     607                    view->layout();
    594608                RenderLayer* l = root->layer();
    595609                if (l)
  • trunk/Source/WebCore/rendering/RenderTreeAsText.h

    r154009 r155545  
    5252    RenderAsTextPrintingMode = 1 << 5, // Dump the tree in printing mode.
    5353    RenderAsTextDontUpdateLayout = 1 << 6, // Don't update layout, to make it safe to call showLayerTree() from the debugger inside layout or painting code.
    54     RenderAsTextShowLayoutState = 1 << 7 // Print the various 'needs layout' bits on renderers.
     54    RenderAsTextShowLayoutState = 1 << 7, // Print the various 'needs layout' bits on renderers.
     55    RenderAsTextShowOverflow = 1 << 8 // Print layout and visual overflow.
    5556};
    5657typedef unsigned RenderAsTextBehavior;
Note: See TracChangeset for help on using the changeset viewer.