Changeset 211683 in webkit


Ignore:
Timestamp:
Feb 5, 2017, 11:18:16 AM (8 years ago)
Author:
Simon Fraser
Message:

Clean up how GraphicsLayer's "inWindow" state is set, and fix some issues with Page Overlays
https://bugs.webkit.org/show_bug.cgi?id=167850

Reviewed by Tim Horton.
Source/WebCore:

RenderLayerCompositor::setIsInWindowForLayerIncludingDescendants() walked the RenderLayer
tree to set the GraphicsLayer's "inWindow" state. This had the problem of skipping non-primary
GraphicsLayers. We also never did this work for page overlay layers.

Fix by giving GraphicsLayers a recursive function that sets the inWindow state, and call that
from RenderLayerCompositor::setIsInWindow() and PageOverlayController.

PageOverlayController also needs to implement tiledBackingUsageChanged so that tiled backings
created dynamically get the correct in-window state.

Page overlays also had some serious issues in MiniBrowser, in that they disappeared on reload,
and on hide/show web view. This was because the overlay root layers were re-parented, but
addChild() for each overlay's layer wasn't called. Clean up by replacing willAttachRootLayer() followed
by viewOverlayRootLayer()/documentOverlayRootLayer() with single calls that set up the layers,
update the inWindow state, and return the layer.

Make it possible to dump tile caches in page overlay tests.

Make showGraphicsLayers() always dump page overlay layers (source of much confusion).

Test: pageoverlay/overlay-remove-reinsert-view.html

  • page/PageOverlayController.cpp:

(WebCore::PageOverlayController::documentOverlayRootLayer):
(WebCore::PageOverlayController::viewOverlayRootLayer):
(WebCore::PageOverlayController::layerWithDocumentOverlays):
(WebCore::PageOverlayController::layerWithViewOverlays):
(WebCore::PageOverlayController::tiledBackingUsageChanged):
(WebCore::PageOverlayController::willAttachRootLayer): Deleted.

  • page/PageOverlayController.h:
  • platform/graphics/GraphicsLayer.cpp:

(WebCore::GraphicsLayer::setIsInWindowIncludingDescendants):
(WebCore::dumpChildren):

  • platform/graphics/GraphicsLayer.h:
  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::appendDocumentOverlayLayers):
(WebCore::RenderLayerCompositor::setIsInWindow):
(WebCore::RenderLayerCompositor::attachRootLayer):
(WebCore::RenderLayerCompositor::rootLayerAttachmentChanged):
(WebCore::RenderLayerCompositor::setIsInWindowForLayerIncludingDescendants): Deleted.

  • rendering/RenderLayerCompositor.h:
  • testing/Internals.cpp:

(WebCore::toLayerTreeFlags):
(WebCore::Internals::layerTreeAsText):
(WebCore::Internals::pageOverlayLayerTreeAsText):

  • testing/Internals.h:
  • testing/Internals.idl:
  • testing/MockPageOverlayClient.cpp:

(WebCore::MockPageOverlayClient::layerTreeAsText):

  • testing/MockPageOverlayClient.h:

Tools:

  • DumpRenderTree/TestRunner.cpp:

(TestRunner::uiScriptDidComplete): Fix an assertion that fires for non-16-bit strings.

LayoutTests:

  • pageoverlay/overlay-large-document-expected.txt:
  • pageoverlay/overlay-large-document-scrolled-expected.txt:
  • pageoverlay/overlay-remove-reinsert-view-expected.txt: Added.
  • pageoverlay/overlay-remove-reinsert-view.html: Added.
  • platform/ios-simulator-wk2/pageoverlay/overlay-remove-reinsert-view-expected.txt: Added.
  • platform/mac-wk1/pageoverlay/overlay-remove-reinsert-view-expected.txt: Added.
  • tiled-drawing/tiled-backing-in-window-expected.txt:
Location:
trunk
Files:
5 added
19 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r211682 r211683  
     12017-02-04  Simon Fraser  <simon.fraser@apple.com>
     2
     3        Clean up how GraphicsLayer's "inWindow" state is set, and fix some issues with Page Overlays
     4        https://bugs.webkit.org/show_bug.cgi?id=167850
     5
     6        Reviewed by Tim Horton.
     7
     8        * pageoverlay/overlay-large-document-expected.txt:
     9        * pageoverlay/overlay-large-document-scrolled-expected.txt:
     10        * pageoverlay/overlay-remove-reinsert-view-expected.txt: Added.
     11        * pageoverlay/overlay-remove-reinsert-view.html: Added.
     12        * platform/ios-simulator-wk2/pageoverlay/overlay-remove-reinsert-view-expected.txt: Added.
     13        * platform/mac-wk1/pageoverlay/overlay-remove-reinsert-view-expected.txt: Added.
     14        * tiled-drawing/tiled-backing-in-window-expected.txt:
     15
    1162017-02-05  Zalan Bujtas  <zalan@apple.com>
    217
  • trunk/LayoutTests/pageoverlay/overlay-large-document-expected.txt

    r194117 r211683  
    99    (GraphicsLayer
    1010      (anchor 0.00 0.00)
    11       (bounds 785.00 585.00)
     11      (bounds 800.00 600.00)
    1212      (drawsContent 1)
    1313      (backgroundColor #00000000)
  • trunk/LayoutTests/pageoverlay/overlay-large-document-scrolled-expected.txt

    r194117 r211683  
    99    (GraphicsLayer
    1010      (anchor 0.00 0.00)
    11       (bounds 785.00 585.00)
     11      (bounds 800.00 600.00)
    1212      (drawsContent 1)
    1313      (backgroundColor #00000000)
  • trunk/LayoutTests/platform/mac-wk1/TestExpectations

    r211561 r211683  
    306306
    307307webkit.org/b/167127 pointer-lock/locked-element-removed-from-dom.html
     308
     309webkit.org/b/167857 pageoverlay/overlay-remove-reinsert-view.html [ Skip ]
  • trunk/LayoutTests/tiled-drawing/tiled-backing-in-window-expected.txt

    r211662 r211683  
    5656      (tile size 512 x 512)
    5757      (top left tile 0, 0 tiles grid 2 x 2)
    58       (in window 0)
     58      (in window 1)
    5959      (children 1
    6060        (GraphicsLayer
  • trunk/Source/WebCore/ChangeLog

    r211682 r211683  
     12017-02-04  Simon Fraser  <simon.fraser@apple.com>
     2
     3        Clean up how GraphicsLayer's "inWindow" state is set, and fix some issues with Page Overlays
     4        https://bugs.webkit.org/show_bug.cgi?id=167850
     5
     6        Reviewed by Tim Horton.
     7       
     8        RenderLayerCompositor::setIsInWindowForLayerIncludingDescendants() walked the RenderLayer
     9        tree to set the GraphicsLayer's "inWindow" state. This had the problem of skipping non-primary
     10        GraphicsLayers. We also never did this work for page overlay layers.
     11
     12        Fix by giving GraphicsLayers a recursive function that sets the inWindow state, and call that
     13        from RenderLayerCompositor::setIsInWindow() and PageOverlayController.
     14
     15        PageOverlayController also needs to implement tiledBackingUsageChanged so that tiled backings
     16        created dynamically get the correct in-window state.
     17
     18        Page overlays also had some serious issues in MiniBrowser, in that they disappeared on reload,
     19        and on hide/show web view. This was because the overlay root layers were re-parented, but
     20        addChild() for each overlay's layer wasn't called. Clean up by replacing willAttachRootLayer() followed
     21        by viewOverlayRootLayer()/documentOverlayRootLayer() with single calls that set up the layers,
     22        update the inWindow state, and return the layer.
     23
     24        Make it possible to dump tile caches in page overlay tests.
     25
     26        Make showGraphicsLayers() always dump page overlay layers (source of much confusion).
     27
     28        Test: pageoverlay/overlay-remove-reinsert-view.html
     29
     30        * page/PageOverlayController.cpp:
     31        (WebCore::PageOverlayController::documentOverlayRootLayer):
     32        (WebCore::PageOverlayController::viewOverlayRootLayer):
     33        (WebCore::PageOverlayController::layerWithDocumentOverlays):
     34        (WebCore::PageOverlayController::layerWithViewOverlays):
     35        (WebCore::PageOverlayController::tiledBackingUsageChanged):
     36        (WebCore::PageOverlayController::willAttachRootLayer): Deleted.
     37        * page/PageOverlayController.h:
     38        * platform/graphics/GraphicsLayer.cpp:
     39        (WebCore::GraphicsLayer::setIsInWindowIncludingDescendants):
     40        (WebCore::dumpChildren):
     41        * platform/graphics/GraphicsLayer.h:
     42        * rendering/RenderLayerCompositor.cpp:
     43        (WebCore::RenderLayerCompositor::appendDocumentOverlayLayers):
     44        (WebCore::RenderLayerCompositor::setIsInWindow):
     45        (WebCore::RenderLayerCompositor::attachRootLayer):
     46        (WebCore::RenderLayerCompositor::rootLayerAttachmentChanged):
     47        (WebCore::RenderLayerCompositor::setIsInWindowForLayerIncludingDescendants): Deleted.
     48        * rendering/RenderLayerCompositor.h:
     49        * testing/Internals.cpp:
     50        (WebCore::toLayerTreeFlags):
     51        (WebCore::Internals::layerTreeAsText):
     52        (WebCore::Internals::pageOverlayLayerTreeAsText):
     53        * testing/Internals.h:
     54        * testing/Internals.idl:
     55        * testing/MockPageOverlayClient.cpp:
     56        (WebCore::MockPageOverlayClient::layerTreeAsText):
     57        * testing/MockPageOverlayClient.h:
     58
    1592017-02-05  Zalan Bujtas  <zalan@apple.com>
    260
  • trunk/Source/WebCore/page/PageOverlayController.cpp

    r211141 r211683  
    7373}
    7474
    75 GraphicsLayer& PageOverlayController::documentOverlayRootLayer()
    76 {
    77     createRootLayersIfNeeded();
    78     return *m_documentOverlayRootLayer;
    79 }
    80 
    81 GraphicsLayer& PageOverlayController::viewOverlayRootLayer()
    82 {
    83     createRootLayersIfNeeded();
    84     return *m_viewOverlayRootLayer;
     75GraphicsLayer* PageOverlayController::documentOverlayRootLayer() const
     76{
     77    return m_documentOverlayRootLayer.get();
     78}
     79
     80GraphicsLayer* PageOverlayController::viewOverlayRootLayer() const
     81{
     82    return m_viewOverlayRootLayer.get();
    8583}
    8684
     
    9492    graphicsLayer.setPosition(overlayFrame.location());
    9593    graphicsLayer.setSize(overlayFrame.size());
     94}
     95
     96GraphicsLayer& PageOverlayController::layerWithDocumentOverlays()
     97{
     98    createRootLayersIfNeeded();
     99
     100    bool inWindow = m_mainFrame.page() ? m_mainFrame.page()->isInWindow() : false;
     101
     102    for (auto& overlayAndLayer : m_overlayGraphicsLayers) {
     103        PageOverlay& overlay = *overlayAndLayer.key;
     104        if (overlay.overlayType() != PageOverlay::OverlayType::Document)
     105            continue;
     106
     107        GraphicsLayer& layer = *overlayAndLayer.value;
     108        layer.setIsInWindowIncludingDescendants(inWindow);
     109        updateOverlayGeometry(overlay, layer);
     110       
     111        if (!layer.parent())
     112            m_documentOverlayRootLayer->addChild(&layer);
     113    }
     114
     115    return *m_documentOverlayRootLayer;
     116}
     117
     118GraphicsLayer& PageOverlayController::layerWithViewOverlays()
     119{
     120    createRootLayersIfNeeded();
     121
     122    bool inWindow = m_mainFrame.page() ? m_mainFrame.page()->isInWindow() : false;
     123
     124    for (auto& overlayAndLayer : m_overlayGraphicsLayers) {
     125        PageOverlay& overlay = *overlayAndLayer.key;
     126        if (overlay.overlayType() != PageOverlay::OverlayType::View)
     127            continue;
     128
     129        GraphicsLayer& layer = *overlayAndLayer.value;
     130        layer.setIsInWindowIncludingDescendants(inWindow);
     131        updateOverlayGeometry(overlay, layer);
     132       
     133        if (!layer.parent())
     134            m_viewOverlayRootLayer->addChild(&layer);
     135    }
     136
     137    return *m_viewOverlayRootLayer;
    96138}
    97139
     
    202244}
    203245
    204 void PageOverlayController::willAttachRootLayer()
    205 {
    206     for (auto& overlayAndLayer : m_overlayGraphicsLayers)
    207         updateOverlayGeometry(*overlayAndLayer.key, *overlayAndLayer.value);
    208 }
    209 
    210246void PageOverlayController::willDetachRootLayer()
    211247{
     
    368404}
    369405
     406void PageOverlayController::tiledBackingUsageChanged(const GraphicsLayer* graphicsLayer, bool usingTiledBacking)
     407{
     408    if (usingTiledBacking)
     409        graphicsLayer->tiledBacking()->setIsInWindow(m_mainFrame.page()->isInWindow());
     410}
     411
    370412} // namespace WebKit
  • trunk/Source/WebCore/page/PageOverlayController.h

    r211141 r211683  
    4545    virtual ~PageOverlayController();
    4646
    47     WEBCORE_EXPORT GraphicsLayer& documentOverlayRootLayer();
    48     WEBCORE_EXPORT GraphicsLayer& viewOverlayRootLayer();
     47    GraphicsLayer& layerWithDocumentOverlays();
     48    GraphicsLayer& layerWithViewOverlays();
     49
     50    WEBCORE_EXPORT GraphicsLayer* documentOverlayRootLayer() const;
     51    WEBCORE_EXPORT GraphicsLayer* viewOverlayRootLayer() const;
    4952
    5053    const Vector<RefPtr<PageOverlay>>& pageOverlays() const { return m_pageOverlays; }
     
    5861    GraphicsLayer& layerForOverlay(PageOverlay&) const;
    5962
    60     void willAttachRootLayer();
    6163    void willDetachRootLayer();
    6264
     
    9092    float deviceScaleFactor() const override;
    9193    bool shouldSkipLayerInDump(const GraphicsLayer*, LayerTreeAsTextBehavior) const override;
     94    void tiledBackingUsageChanged(const GraphicsLayer*, bool) override;
    9295
    9396    std::unique_ptr<GraphicsLayer> m_documentOverlayRootLayer;
  • trunk/Source/WebCore/platform/graphics/GraphicsLayer.cpp

    r209224 r211683  
    363363    for (size_t i = 0; i < numChildren; ++i)
    364364        childLayers[i]->noteDeviceOrPageScaleFactorChangedIncludingDescendants();
     365}
     366
     367void GraphicsLayer::setIsInWindowIncludingDescendants(bool inWindow)
     368{
     369    if (usingTiledBacking())
     370        tiledBacking()->setIsInWindow(inWindow);
     371
     372    for (auto* childLayer : children())
     373        childLayer->setIsInWindowIncludingDescendants(inWindow);
    365374}
    366375
     
    681690    totalChildCount += children.size();
    682691    for (auto* child : children) {
    683         if (!child->client().shouldSkipLayerInDump(child, behavior)) {
     692        if ((behavior & LayerTreeAsTextDebug) || !child->client().shouldSkipLayerInDump(child, behavior)) {
    684693            child->dumpLayer(ts, indent + 2, behavior);
    685694            continue;
  • trunk/Source/WebCore/platform/graphics/GraphicsLayer.h

    r210758 r211683  
    518518    WEBCORE_EXPORT void noteDeviceOrPageScaleFactorChangedIncludingDescendants();
    519519
     520    void setIsInWindowIncludingDescendants(bool);
     521
    520522    // Some compositing systems may do internal batching to synchronize compositing updates
    521523    // with updates drawn into the window. These methods flush internal batched state on this layer
  • trunk/Source/WebCore/rendering/RenderLayerCompositor.cpp

    r211662 r211683  
    778778
    779779    Frame& frame = m_renderView.frameView().frame();
    780     PageOverlayController& pageOverlayController = frame.mainFrame().pageOverlayController();
    781     pageOverlayController.willAttachRootLayer();
    782     childList.append(&pageOverlayController.documentOverlayRootLayer());
     780    childList.append(&frame.mainFrame().pageOverlayController().layerWithDocumentOverlays());
    783781}
    784782
     
    20282026#endif
    20292027
    2030 void RenderLayerCompositor::setIsInWindowForLayerIncludingDescendants(RenderLayer& layer, bool isInWindow)
    2031 {
    2032     if (layer.isComposited()) {
    2033         if (auto* backing = layer.backing()->tiledBacking())
    2034             backing->setIsInWindow(isInWindow);
    2035     }
    2036 
    2037     // No need to recurse if we don't have any other tiled layers.
    2038     if (!hasNonMainLayersWithTiledBacking())
    2039         return;
    2040 
    2041     for (RenderLayer* childLayer = layer.firstChild(); childLayer; childLayer = childLayer->nextSibling())
    2042         setIsInWindowForLayerIncludingDescendants(*childLayer, isInWindow);
    2043 }
    2044 
    20452028void RenderLayerCompositor::setIsInWindow(bool isInWindow)
    20462029{
    2047     setIsInWindowForLayerIncludingDescendants(*m_renderView.layer(), isInWindow);
    2048    
    20492030    if (!inCompositingMode())
    20502031        return;
     2032
     2033    if (GraphicsLayer* rootLayer = rootGraphicsLayer())
     2034        rootLayer->setIsInWindowIncludingDescendants(isInWindow);
    20512035
    20522036    if (isInWindow) {
     
    34693453            Frame& frame = m_renderView.frameView().frame();
    34703454            page().chrome().client().attachRootGraphicsLayer(frame, rootGraphicsLayer());
    3471             if (frame.isMainFrame()) {
    3472                 PageOverlayController& pageOverlayController = frame.mainFrame().pageOverlayController();
    3473                 pageOverlayController.willAttachRootLayer();
    3474                 page().chrome().client().attachViewOverlayGraphicsLayer(frame, &pageOverlayController.viewOverlayRootLayer());
    3475             }
     3455            if (frame.isMainFrame())
     3456                page().chrome().client().attachViewOverlayGraphicsLayer(frame, &frame.mainFrame().pageOverlayController().layerWithViewOverlays());
    34763457            break;
    34773458        }
     
    35523533        return;
    35533534
    3554     PageOverlayController& pageOverlayController = frame.mainFrame().pageOverlayController();
    3555     pageOverlayController.willAttachRootLayer();
    3556     m_rootContentLayer->addChild(&pageOverlayController.documentOverlayRootLayer());
     3535    m_rootContentLayer->addChild(&frame.mainFrame().pageOverlayController().layerWithDocumentOverlays());
    35573536}
    35583537
  • trunk/Source/WebCore/rendering/RenderLayerCompositor.h

    r210436 r211683  
    351351
    352352    void clearBackingForLayerIncludingDescendants(RenderLayer&);
    353     void setIsInWindowForLayerIncludingDescendants(RenderLayer&, bool isInWindow);
    354353
    355354    // Repaint this and its child layers.
  • trunk/Source/WebCore/testing/Internals.cpp

    r211612 r211683  
    20172017}
    20182018
     2019static LayerTreeFlags toLayerTreeFlags(unsigned short flags)
     2020{
     2021    LayerTreeFlags layerTreeFlags = 0;
     2022    if (flags & Internals::LAYER_TREE_INCLUDES_VISIBLE_RECTS)
     2023        layerTreeFlags |= LayerTreeFlagsIncludeVisibleRects;
     2024    if (flags & Internals::LAYER_TREE_INCLUDES_TILE_CACHES)
     2025        layerTreeFlags |= LayerTreeFlagsIncludeTileCaches;
     2026    if (flags & Internals::LAYER_TREE_INCLUDES_REPAINT_RECTS)
     2027        layerTreeFlags |= LayerTreeFlagsIncludeRepaintRects;
     2028    if (flags & Internals::LAYER_TREE_INCLUDES_PAINTING_PHASES)
     2029        layerTreeFlags |= LayerTreeFlagsIncludePaintingPhases;
     2030    if (flags & Internals::LAYER_TREE_INCLUDES_CONTENT_LAYERS)
     2031        layerTreeFlags |= LayerTreeFlagsIncludeContentLayers;
     2032
     2033    return layerTreeFlags;
     2034}
     2035
    20192036// FIXME: Remove the document argument. It is almost always the same as
    20202037// contextDocument(), with the exception of a few tests that pass a
     
    20262043        return Exception { INVALID_ACCESS_ERR };
    20272044
    2028     LayerTreeFlags layerTreeFlags = 0;
    2029     if (flags & LAYER_TREE_INCLUDES_VISIBLE_RECTS)
    2030         layerTreeFlags |= LayerTreeFlagsIncludeVisibleRects;
    2031     if (flags & LAYER_TREE_INCLUDES_TILE_CACHES)
    2032         layerTreeFlags |= LayerTreeFlagsIncludeTileCaches;
    2033     if (flags & LAYER_TREE_INCLUDES_REPAINT_RECTS)
    2034         layerTreeFlags |= LayerTreeFlagsIncludeRepaintRects;
    2035     if (flags & LAYER_TREE_INCLUDES_PAINTING_PHASES)
    2036         layerTreeFlags |= LayerTreeFlagsIncludePaintingPhases;
    2037     if (flags & LAYER_TREE_INCLUDES_CONTENT_LAYERS)
    2038         layerTreeFlags |= LayerTreeFlagsIncludeContentLayers;
    2039 
    2040     return document.frame()->layerTreeAsText(layerTreeFlags);
     2045    return document.frame()->layerTreeAsText(toLayerTreeFlags(flags));
    20412046}
    20422047
     
    32513256}
    32523257
    3253 ExceptionOr<String> Internals::pageOverlayLayerTreeAsText() const
     3258ExceptionOr<String> Internals::pageOverlayLayerTreeAsText(unsigned short flags) const
    32543259{
    32553260    Document* document = contextDocument();
     
    32593264    document->updateLayout();
    32603265
    3261     return MockPageOverlayClient::singleton().layerTreeAsText(document->frame()->mainFrame());
     3266    return MockPageOverlayClient::singleton().layerTreeAsText(document->frame()->mainFrame(), toLayerTreeFlags(flags));
    32623267}
    32633268
  • trunk/Source/WebCore/testing/Internals.h

    r211612 r211683  
    466466    enum class PageOverlayType { View, Document };
    467467    ExceptionOr<Ref<MockPageOverlay>> installMockPageOverlay(PageOverlayType);
    468     ExceptionOr<String> pageOverlayLayerTreeAsText() const;
     468    ExceptionOr<String> pageOverlayLayerTreeAsText(unsigned short flags) const;
    469469
    470470    void setPageMuted(const String&);
  • trunk/Source/WebCore/testing/Internals.idl

    r211612 r211683  
    446446
    447447    [MayThrowException] MockPageOverlay installMockPageOverlay(PageOverlayType type);
    448     [MayThrowException] DOMString pageOverlayLayerTreeAsText();
     448    [MayThrowException] DOMString pageOverlayLayerTreeAsText(optional unsigned short flags = 0);
    449449
    450450    void setPageMuted(DOMString mutedState);
  • trunk/Source/WebCore/testing/MockPageOverlayClient.cpp

    r211033 r211683  
    7070}
    7171
    72 String MockPageOverlayClient::layerTreeAsText(MainFrame& mainFrame)
     72String MockPageOverlayClient::layerTreeAsText(MainFrame& mainFrame, LayerTreeFlags flags)
    7373{
    74     return "View-relative:\n" + mainFrame.pageOverlayController().viewOverlayRootLayer().layerTreeAsText(LayerTreeAsTextIncludePageOverlayLayers) + "\n\nDocument-relative:\n" + mainFrame.pageOverlayController().documentOverlayRootLayer().layerTreeAsText(LayerTreeAsTextIncludePageOverlayLayers);
     74    GraphicsLayer* viewOverlayRoot = mainFrame.pageOverlayController().viewOverlayRootLayer();
     75    GraphicsLayer* documentOverlayRoot = mainFrame.pageOverlayController().documentOverlayRootLayer();
     76   
     77    return "View-relative:\n" + (viewOverlayRoot ? viewOverlayRoot->layerTreeAsText(flags | LayerTreeAsTextIncludePageOverlayLayers) : "(no view-relative overlay root)")
     78        + "\n\nDocument-relative:\n" + (documentOverlayRoot ? documentOverlayRoot->layerTreeAsText(flags | LayerTreeAsTextIncludePageOverlayLayers) : "(no document-relative overlay root)");
    7579}
    7680
  • trunk/Source/WebCore/testing/MockPageOverlayClient.h

    r208668 r211683  
    2626#pragma once
    2727
     28#include "Frame.h"
    2829#include "MockPageOverlay.h"
    2930#include "PageOverlay.h"
     
    4445    void uninstallAllOverlays();
    4546
    46     String layerTreeAsText(MainFrame&);
     47    String layerTreeAsText(MainFrame&, LayerTreeFlags);
    4748
    4849    virtual ~MockPageOverlayClient() { }
  • trunk/Tools/ChangeLog

    r211674 r211683  
     12017-02-04  Simon Fraser  <simon.fraser@apple.com>
     2
     3        Clean up how GraphicsLayer's "inWindow" state is set, and fix some issues with Page Overlays
     4        https://bugs.webkit.org/show_bug.cgi?id=167850
     5
     6        Reviewed by Tim Horton.
     7
     8        * DumpRenderTree/TestRunner.cpp:
     9        (TestRunner::uiScriptDidComplete): Fix an assertion that fires for non-16-bit strings.
     10
    1112017-02-04  Andreas Kling  <akling@apple.com>
    212
  • trunk/Tools/DumpRenderTree/TestRunner.cpp

    r211460 r211683  
    24322432void TestRunner::uiScriptDidComplete(const String& result, unsigned callbackID)
    24332433{
    2434     JSRetainPtr<JSStringRef> stringRef(Adopt, JSStringCreateWithCharacters(result.characters16(), result.length()));
     2434    JSRetainPtr<JSStringRef> stringRef(Adopt, JSStringCreateWithUTF8CString(result.utf8().data()));
    24352435    callUIScriptCallback(callbackID, stringRef.get());
    24362436}
Note: See TracChangeset for help on using the changeset viewer.