⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Changeset 238468 in webkit


Ignore:
Timestamp:
Nov 23, 2018, 11:17:35 PM (8 years ago)
Author:
Antti Koivisto
Message:

Replace LayerOrView typedef with a class
https://bugs.webkit.org/show_bug.cgi?id=191927

Reviewed by Tim Horton.

This typedef restricts remote layer representation to be either a CA layer or a view. We might want
have more flexibility, for example tiles don't really need to be UIViews. It will also make it easier
to unify Mac and iOS code, and hopefully make it less confusing too.

This patch introduces RemoteLayerTreeNode class that replaces most uses of LayerOrView typedef
(the rest are converted to pure CALayer). It also does a bunch of related cleanup.

  • Shared/RemoteLayerTree/RemoteLayerTreePropertyApplier.h:
  • Shared/RemoteLayerTree/RemoteLayerTreePropertyApplier.mm:

(WebKit::RemoteLayerTreePropertyApplier::applyPropertiesToLayer):
(WebKit::RemoteLayerTreePropertyApplier::applyProperties):
(WebKit::RemoteLayerTreePropertyApplier::applyPropertiesToUIView):
(WebKit::applyPropertiesToLayer): Deleted.

  • SourcesCocoa.txt:
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _propertiesOfLayerWithID:]):

  • UIProcess/Cocoa/LayerRepresentation.h: Removed.
  • UIProcess/Cocoa/VideoFullscreenManagerProxy.mm:

(WebKit::VideoFullscreenManagerProxy::setupFullscreenWithID):

  • UIProcess/PageClient.h:
  • UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.h:
  • UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.mm:

(WebKit::RemoteLayerTreeDrawingAreaProxy::commitLayerTree):
(WebKit::RemoteLayerTreeDrawingAreaProxy::updateDebugIndicator):
(WebKit::RemoteLayerTreeDrawingAreaProxy::layerWithIDForTesting const):

  • UIProcess/RemoteLayerTree/RemoteLayerTreeHost.h:

(WebKit::RemoteLayerTreeHost::rootNode const):
(WebKit::RemoteLayerTreeHost::rootLayer const): Deleted.

  • UIProcess/RemoteLayerTree/RemoteLayerTreeHost.mm:

(WebKit::RemoteLayerTreeHost::updateLayerTree):
(WebKit::RemoteLayerTreeHost::nodeForID const):
(WebKit::RemoteLayerTreeHost::layerWillBeRemoved):
(WebKit::RemoteLayerTreeHost::animationDidStart):
(WebKit::RemoteLayerTreeHost::animationDidEnd):
(WebKit::RemoteLayerTreeHost::clearLayers):
(WebKit::RemoteLayerTreeHost::layerWithIDForTesting const):
(WebKit::RemoteLayerTreeHost::layerForID const):
(WebKit::RemoteLayerTreeHost::rootLayer const):
(WebKit::RemoteLayerTreeHost::createLayer):
(WebKit::RemoteLayerTreeHost::detachRootLayer):
(WebKit::RemoteLayerTreeHost::mapAllIOSurfaceBackingStore):
(WebKit::RemoteLayerTreeHost::getLayer const): Deleted.

  • UIProcess/RemoteLayerTree/RemoteLayerTreeNode.h: Added.

(WebKit::RemoteLayerTreeNode::layer const):
(WebKit::RemoteLayerTreeNode::uiView const):

  • UIProcess/RemoteLayerTree/RemoteLayerTreeNode.mm: Added.

(WebKit::RemoteLayerTreeNode::RemoteLayerTreeNode):
(WebKit::RemoteLayerTreeNode::detachFromParent):

  • UIProcess/RemoteLayerTree/RemoteLayerTreeScrollingPerformanceData.mm:

(WebKit::RemoteLayerTreeScrollingPerformanceData::blankPixelCount const):

  • UIProcess/RemoteLayerTree/RemoteScrollingCoordinatorProxy.cpp:

(WebKit::RemoteScrollingCoordinatorProxy::connectStateNodeLayers):

  • UIProcess/RemoteLayerTree/ios/RemoteLayerTreeHostIOS.mm:

(WebKit::RemoteLayerTreeHost::createLayer):

  • UIProcess/RemoteLayerTree/ios/RemoteScrollingCoordinatorProxyIOS.mm:

(WebKit::RemoteScrollingCoordinatorProxy::connectStateNodeLayers):
(WebKit::layerRepresentationFromLayerOrView): Deleted.

  • UIProcess/WebAuthentication/Cocoa/HidService.h:
  • UIProcess/WebAuthentication/Cocoa/HidService.mm:
  • UIProcess/WebPageProxy.h:
  • UIProcess/ios/LayerRepresentation.mm: Removed.
  • UIProcess/ios/PageClientImplIOS.h:
  • UIProcess/ios/PageClientImplIOS.mm:

(WebKit::PageClientImpl::setRemoteLayerTreeRootNode):
(WebKit::PageClientImpl::acceleratedCompositingRootLayer const):
(WebKit::PageClientImpl::setAcceleratedCompositingRootLayer): Deleted.

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::setRemoteLayerTreeRootNode):
(WebKit::WebPageProxy::setAcceleratedCompositingRootLayer): Deleted.

  • UIProcess/mac/PageClientImplMac.h:
  • UIProcess/mac/PageClientImplMac.mm:

(WebKit::PageClientImpl::setRemoteLayerTreeRootNode):
(WebKit::PageClientImpl::setAcceleratedCompositingRootLayer): Deleted.

  • UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.mm:

(WebKit::TiledCoreAnimationDrawingAreaProxy::createFence):

  • UIProcess/mac/WebPageProxyMac.mm:

(WebKit::WebPageProxy::setRemoteLayerTreeRootNode):
(WebKit::WebPageProxy::acceleratedCompositingRootLayer const):
(WebKit::WebPageProxy::setAcceleratedCompositingRootLayer): Deleted.

  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemote.cpp:

(WebKit::PlatformCALayerRemote::recursiveBuildTransaction):

Location:
trunk/Source/WebKit
Files:
27 edited
2 moved

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit/ChangeLog

    r238466 r238468  
     12018-11-23  Antti Koivisto  <antti@apple.com>
     2
     3        Replace LayerOrView typedef with a class
     4        https://bugs.webkit.org/show_bug.cgi?id=191927
     5
     6        Reviewed by Tim Horton.
     7
     8        This typedef restricts remote layer representation to be either a CA layer or a view. We might want
     9        have more flexibility, for example tiles don't really need to be UIViews. It will also make it easier
     10        to unify Mac and iOS code, and hopefully make it less confusing too.
     11
     12        This patch introduces RemoteLayerTreeNode class that replaces most uses of LayerOrView typedef
     13        (the rest are converted to pure CALayer). It also does a bunch of related cleanup.
     14
     15        * Shared/RemoteLayerTree/RemoteLayerTreePropertyApplier.h:
     16        * Shared/RemoteLayerTree/RemoteLayerTreePropertyApplier.mm:
     17        (WebKit::RemoteLayerTreePropertyApplier::applyPropertiesToLayer):
     18        (WebKit::RemoteLayerTreePropertyApplier::applyProperties):
     19        (WebKit::RemoteLayerTreePropertyApplier::applyPropertiesToUIView):
     20        (WebKit::applyPropertiesToLayer): Deleted.
     21        * SourcesCocoa.txt:
     22        * UIProcess/API/Cocoa/WKWebView.mm:
     23        (-[WKWebView _propertiesOfLayerWithID:]):
     24        * UIProcess/Cocoa/LayerRepresentation.h: Removed.
     25        * UIProcess/Cocoa/VideoFullscreenManagerProxy.mm:
     26        (WebKit::VideoFullscreenManagerProxy::setupFullscreenWithID):
     27        * UIProcess/PageClient.h:
     28        * UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.h:
     29        * UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.mm:
     30        (WebKit::RemoteLayerTreeDrawingAreaProxy::commitLayerTree):
     31        (WebKit::RemoteLayerTreeDrawingAreaProxy::updateDebugIndicator):
     32        (WebKit::RemoteLayerTreeDrawingAreaProxy::layerWithIDForTesting const):
     33        * UIProcess/RemoteLayerTree/RemoteLayerTreeHost.h:
     34        (WebKit::RemoteLayerTreeHost::rootNode const):
     35        (WebKit::RemoteLayerTreeHost::rootLayer const): Deleted.
     36        * UIProcess/RemoteLayerTree/RemoteLayerTreeHost.mm:
     37        (WebKit::RemoteLayerTreeHost::updateLayerTree):
     38        (WebKit::RemoteLayerTreeHost::nodeForID const):
     39        (WebKit::RemoteLayerTreeHost::layerWillBeRemoved):
     40        (WebKit::RemoteLayerTreeHost::animationDidStart):
     41        (WebKit::RemoteLayerTreeHost::animationDidEnd):
     42        (WebKit::RemoteLayerTreeHost::clearLayers):
     43        (WebKit::RemoteLayerTreeHost::layerWithIDForTesting const):
     44        (WebKit::RemoteLayerTreeHost::layerForID const):
     45        (WebKit::RemoteLayerTreeHost::rootLayer const):
     46        (WebKit::RemoteLayerTreeHost::createLayer):
     47        (WebKit::RemoteLayerTreeHost::detachRootLayer):
     48        (WebKit::RemoteLayerTreeHost::mapAllIOSurfaceBackingStore):
     49        (WebKit::RemoteLayerTreeHost::getLayer const): Deleted.
     50        * UIProcess/RemoteLayerTree/RemoteLayerTreeNode.h: Added.
     51        (WebKit::RemoteLayerTreeNode::layer const):
     52        (WebKit::RemoteLayerTreeNode::uiView const):
     53        * UIProcess/RemoteLayerTree/RemoteLayerTreeNode.mm: Added.
     54        (WebKit::RemoteLayerTreeNode::RemoteLayerTreeNode):
     55        (WebKit::RemoteLayerTreeNode::detachFromParent):
     56        * UIProcess/RemoteLayerTree/RemoteLayerTreeScrollingPerformanceData.mm:
     57        (WebKit::RemoteLayerTreeScrollingPerformanceData::blankPixelCount const):
     58        * UIProcess/RemoteLayerTree/RemoteScrollingCoordinatorProxy.cpp:
     59        (WebKit::RemoteScrollingCoordinatorProxy::connectStateNodeLayers):
     60        * UIProcess/RemoteLayerTree/ios/RemoteLayerTreeHostIOS.mm:
     61        (WebKit::RemoteLayerTreeHost::createLayer):
     62        * UIProcess/RemoteLayerTree/ios/RemoteScrollingCoordinatorProxyIOS.mm:
     63        (WebKit::RemoteScrollingCoordinatorProxy::connectStateNodeLayers):
     64        (WebKit::layerRepresentationFromLayerOrView): Deleted.
     65        * UIProcess/WebAuthentication/Cocoa/HidService.h:
     66        * UIProcess/WebAuthentication/Cocoa/HidService.mm:
     67        * UIProcess/WebPageProxy.h:
     68        * UIProcess/ios/LayerRepresentation.mm: Removed.
     69        * UIProcess/ios/PageClientImplIOS.h:
     70        * UIProcess/ios/PageClientImplIOS.mm:
     71        (WebKit::PageClientImpl::setRemoteLayerTreeRootNode):
     72        (WebKit::PageClientImpl::acceleratedCompositingRootLayer const):
     73        (WebKit::PageClientImpl::setAcceleratedCompositingRootLayer): Deleted.
     74        * UIProcess/ios/WebPageProxyIOS.mm:
     75        (WebKit::WebPageProxy::setRemoteLayerTreeRootNode):
     76        (WebKit::WebPageProxy::setAcceleratedCompositingRootLayer): Deleted.
     77        * UIProcess/mac/PageClientImplMac.h:
     78        * UIProcess/mac/PageClientImplMac.mm:
     79        (WebKit::PageClientImpl::setRemoteLayerTreeRootNode):
     80        (WebKit::PageClientImpl::setAcceleratedCompositingRootLayer): Deleted.
     81        * UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.mm:
     82        (WebKit::TiledCoreAnimationDrawingAreaProxy::createFence):
     83        * UIProcess/mac/WebPageProxyMac.mm:
     84        (WebKit::WebPageProxy::setRemoteLayerTreeRootNode):
     85        (WebKit::WebPageProxy::acceleratedCompositingRootLayer const):
     86        (WebKit::WebPageProxy::setAcceleratedCompositingRootLayer): Deleted.
     87        * WebKit.xcodeproj/project.pbxproj:
     88        * WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemote.cpp:
     89        (WebKit::PlatformCALayerRemote::recursiveBuildTransaction):
     90
    1912018-11-23  Jiewen Tan  <jiewen_tan@apple.com>
    292
  • trunk/Source/WebKit/Shared/RemoteLayerTree/RemoteLayerTreePropertyApplier.h

    r237266 r238468  
    2626#pragma once
    2727
    28 #include "LayerRepresentation.h"
     28#include "RemoteLayerTreeNode.h"
    2929#include "RemoteLayerTreeTransaction.h"
    3030#include <wtf/HashMap.h>
     
    3636class RemoteLayerTreePropertyApplier {
    3737public:
    38     using RelatedLayerMap = HashMap<WebCore::GraphicsLayer::PlatformLayerID, CFTypeRef>;
    39     static void applyProperties(CALayer *, RemoteLayerTreeHost*, const RemoteLayerTreeTransaction::LayerProperties&, const RelatedLayerMap&, RemoteLayerBackingStore::LayerContentsType);
     38    using RelatedLayerMap = HashMap<WebCore::GraphicsLayer::PlatformLayerID, RemoteLayerTreeNode*>;
     39    static void applyProperties(RemoteLayerTreeNode&, RemoteLayerTreeHost*, const RemoteLayerTreeTransaction::LayerProperties&, const RelatedLayerMap&, RemoteLayerBackingStore::LayerContentsType);
     40    static void applyPropertiesToLayer(CALayer *, RemoteLayerTreeHost*, const RemoteLayerTreeTransaction::LayerProperties&, RemoteLayerBackingStore::LayerContentsType);
     41
     42private:
    4043#if PLATFORM(IOS_FAMILY)
    41     static void applyProperties(UIView *, RemoteLayerTreeHost*, const RemoteLayerTreeTransaction::LayerProperties&, const RelatedLayerMap&, RemoteLayerBackingStore::LayerContentsType);
     44    static void applyPropertiesToUIView(UIView *, const RemoteLayerTreeTransaction::LayerProperties&, const RelatedLayerMap&);
    4245#endif
    4346};
  • trunk/Source/WebKit/Shared/RemoteLayerTree/RemoteLayerTreePropertyApplier.mm

    r237266 r238468  
    127127}
    128128
    129 static void applyPropertiesToLayer(CALayer *layer, RemoteLayerTreeHost* layerTreeHost, const RemoteLayerTreeTransaction::LayerProperties& properties, RemoteLayerBackingStore::LayerContentsType layerContentsType)
     129void RemoteLayerTreePropertyApplier::applyPropertiesToLayer(CALayer *layer, RemoteLayerTreeHost* layerTreeHost, const RemoteLayerTreeTransaction::LayerProperties& properties, RemoteLayerBackingStore::LayerContentsType layerContentsType)
    130130{
    131131    if (properties.changedProperties & RemoteLayerTreeTransaction::NameChanged)
     
    255255}
    256256
    257 void RemoteLayerTreePropertyApplier::applyProperties(CALayer *layer, RemoteLayerTreeHost* layerTreeHost, const RemoteLayerTreeTransaction::LayerProperties& properties, const RelatedLayerMap& relatedLayers, RemoteLayerBackingStore::LayerContentsType layerContentsType)
     257void RemoteLayerTreePropertyApplier::applyProperties(RemoteLayerTreeNode& node, RemoteLayerTreeHost* layerTreeHost, const RemoteLayerTreeTransaction::LayerProperties& properties, const RelatedLayerMap& relatedLayers, RemoteLayerBackingStore::LayerContentsType layerContentsType)
    258258{
    259259    BEGIN_BLOCK_OBJC_EXCEPTIONS;
     260
     261    CALayer *layer = node.layer();
     262
    260263    applyPropertiesToLayer(layer, layerTreeHost, properties, layerContentsType);
    261264
     265#if PLATFORM(IOS_FAMILY)
     266    applyPropertiesToUIView(node.uiView(), properties, relatedLayers);
     267#else
    262268    if (properties.changedProperties & RemoteLayerTreeTransaction::ChildrenChanged) {
    263269        RetainPtr<NSMutableArray> children = adoptNS([[NSMutableArray alloc] initWithCapacity:properties.children.size()]);
    264270        for (auto& child : properties.children) {
    265             ASSERT(relatedLayers.get(child));
    266             [children addObject:(__bridge id)relatedLayers.get(child)];
     271            ASSERT(relatedLayers.contains(child));
     272            [children addObject:relatedLayers.get(child)->layer()];
    267273        }
    268274
     
    274280            layer.mask = nullptr;
    275281        else {
    276 #if PLATFORM(IOS_FAMILY)
    277             UIView *maskView = (__bridge UIView *)relatedLayers.get(properties.maskLayerID);
    278             // FIXME: need to check that the mask view is kept alive.
    279             ASSERT(!maskView.layer.superlayer);
    280             if (!maskView.layer.superlayer)
    281                 layer.mask = maskView.layer;
    282 #else
    283             CALayer *maskLayer = (__bridge CALayer *)relatedLayers.get(properties.maskLayerID);
     282            CALayer *maskLayer = relatedLayers.get(properties.maskLayerID)->layer();
    284283            ASSERT(!maskLayer.superlayer);
    285284            if (!maskLayer.superlayer)
    286285                layer.mask = maskLayer;
    287 #endif
    288         }
    289     }
     286        }
     287    }
     288#endif
    290289    END_BLOCK_OBJC_EXCEPTIONS;
    291290}
    292291
    293292#if PLATFORM(IOS_FAMILY)
    294 void RemoteLayerTreePropertyApplier::applyProperties(UIView *view, RemoteLayerTreeHost* layerTreeHost, const RemoteLayerTreeTransaction::LayerProperties& properties, const RelatedLayerMap& relatedLayers, RemoteLayerBackingStore::LayerContentsType layerContentsType)
    295 {
    296     BEGIN_BLOCK_OBJC_EXCEPTIONS;
    297     applyPropertiesToLayer(view.layer, layerTreeHost, properties, layerContentsType);
    298 
     293void RemoteLayerTreePropertyApplier::applyPropertiesToUIView(UIView *view, const RemoteLayerTreeTransaction::LayerProperties& properties, const RelatedLayerMap& relatedLayers)
     294{
    299295    if (properties.changedProperties & RemoteLayerTreeTransaction::ChildrenChanged) {
    300296        RetainPtr<NSMutableArray> children = adoptNS([[NSMutableArray alloc] initWithCapacity:properties.children.size()]);
    301297        for (auto& child : properties.children) {
    302             ASSERT(relatedLayers.get(child));
    303             [children addObject:(__bridge id)relatedLayers.get(child)];
     298            ASSERT(relatedLayers.contains(child));
     299            [children addObject:relatedLayers.get(child)->uiView()];
    304300        }
    305301
     
    325321            maskOwnerLayer.mask = nullptr;
    326322        else {
    327             UIView *maskView = (__bridge UIView *)relatedLayers.get(properties.maskLayerID);
     323            UIView *maskView = relatedLayers.get(properties.maskLayerID)->uiView();
    328324            // FIXME: need to check that the mask view is kept alive.
    329325            ASSERT(!maskView.layer.superlayer);
     
    336332        view.userInteractionEnabled = !properties.contentsHidden && properties.userInteractionEnabled;
    337333
    338     END_BLOCK_OBJC_EXCEPTIONS;
    339334}
    340335#endif
  • trunk/Source/WebKit/SourcesCocoa.txt

    r238434 r238468  
    369369UIProcess/ios/DragDropInteractionState.mm
    370370UIProcess/ios/InputViewUpdateDeferrer.mm
    371 UIProcess/ios/LayerRepresentation.mm
    372371UIProcess/ios/PageClientImplIOS.mm
    373372UIProcess/ios/ProcessAssertionIOS.mm
     
    447446UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.mm
    448447UIProcess/RemoteLayerTree/RemoteLayerTreeHost.mm
     448UIProcess/RemoteLayerTree/RemoteLayerTreeNode.mm
    449449UIProcess/RemoteLayerTree/RemoteLayerTreeScrollingPerformanceData.mm
    450450UIProcess/RemoteLayerTree/RemoteScrollingCoordinatorProxy.cpp
  • trunk/Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm

    r238438 r238468  
    63676367- (NSDictionary *)_propertiesOfLayerWithID:(unsigned long long)layerID
    63686368{
    6369     CALayer* layer = asLayer(downcast<WebKit::RemoteLayerTreeDrawingAreaProxy>(*_page->drawingArea()).layerWithIDForTesting(layerID));
     6369    CALayer* layer = downcast<WebKit::RemoteLayerTreeDrawingAreaProxy>(*_page->drawingArea()).layerWithIDForTesting(layerID);
    63706370    if (!layer)
    63716371        return nil;
  • trunk/Source/WebKit/UIProcess/Cocoa/VideoFullscreenManagerProxy.mm

    r237483 r238468  
    479479
    480480#if PLATFORM(IOS_FAMILY)
    481     UIView *parentView = downcast<RemoteLayerTreeDrawingAreaProxy>(*m_page->drawingArea()).remoteLayerTreeHost().rootLayer();
     481    auto* rootNode = downcast<RemoteLayerTreeDrawingAreaProxy>(*m_page->drawingArea()).remoteLayerTreeHost().rootNode();
     482    UIView *parentView = rootNode ? rootNode->uiView() : nil;
    482483    interface->setupFullscreen(*model->layerHostView(), initialRect, parentView, videoFullscreenMode, allowsPictureInPicture, standby);
    483484#else
  • trunk/Source/WebKit/UIProcess/PageClient.h

    r238190 r238468  
    4343
    4444#if PLATFORM(COCOA)
    45 #include "LayerRepresentation.h"
    4645#include "PluginComplexTextInputState.h"
     46#include "RemoteLayerTreeNode.h"
    4747#include "WKFoundation.h"
    4848
     
    246246    virtual void makeFirstResponder() = 0;
    247247    virtual void assistiveTechnologyMakeFirstResponder() = 0;
    248     virtual void setAcceleratedCompositingRootLayer(LayerOrView *) = 0;
    249     virtual LayerOrView *acceleratedCompositingRootLayer() const = 0;
     248    virtual void setRemoteLayerTreeRootNode(RemoteLayerTreeNode*) = 0;
     249    virtual CALayer *acceleratedCompositingRootLayer() const = 0;
    250250    virtual RefPtr<ViewSnapshot> takeViewSnapshot() = 0;
    251251#if ENABLE(MAC_GESTURE_EVENTS)
  • trunk/Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.h

    r237266 r238468  
    5959    bool isAlwaysOnLoggingAllowed() const;
    6060
    61     LayerOrView* layerWithIDForTesting(uint64_t) const;
     61    CALayer *layerWithIDForTesting(uint64_t) const;
    6262
    6363private:
  • trunk/Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.mm

    r237266 r238468  
    205205    if (m_remoteLayerTreeHost->updateLayerTree(layerTreeTransaction)) {
    206206        if (layerTreeTransaction.transactionID() >= m_transactionIDForUnhidingContent)
    207             m_webPageProxy.setAcceleratedCompositingRootLayer(m_remoteLayerTreeHost->rootLayer());
     207            m_webPageProxy.setRemoteLayerTreeRootNode(m_remoteLayerTreeHost->rootNode());
    208208        else
    209209            m_remoteLayerTreeHost->detachRootLayer();
     
    240240#endif
    241241        updateDebugIndicator(layerTreeTransaction.contentsSize(), rootLayerChanged, scale, scrollPosition);
    242         asLayer(m_debugIndicatorLayerTreeHost->rootLayer()).name = @"Indicator host root";
     242        m_debugIndicatorLayerTreeHost->rootLayer().name = @"Indicator host root";
    243243    }
    244244
     
    338338{
    339339    // Make sure we're the last sublayer.
    340     CALayer *rootLayer = asLayer(m_remoteLayerTreeHost->rootLayer());
     340    CALayer *rootLayer = m_remoteLayerTreeHost->rootLayer();
    341341    [m_tileMapHostLayer removeFromSuperlayer];
    342342    [rootLayer addSublayer:m_tileMapHostLayer.get()];
     
    351351    if (rootLayerChanged) {
    352352        [m_tileMapHostLayer setSublayers:@[]];
    353         [m_tileMapHostLayer addSublayer:asLayer(m_debugIndicatorLayerTreeHost->rootLayer())];
     353        [m_tileMapHostLayer addSublayer:m_debugIndicatorLayerTreeHost->rootLayer()];
    354354        [m_tileMapHostLayer addSublayer:m_exposedRectIndicatorLayer.get()];
    355355    }
     
    501501}
    502502
    503 LayerOrView* RemoteLayerTreeDrawingAreaProxy::layerWithIDForTesting(uint64_t layerID) const
     503CALayer *RemoteLayerTreeDrawingAreaProxy::layerWithIDForTesting(uint64_t layerID) const
    504504{
    505505    return m_remoteLayerTreeHost->layerWithIDForTesting(layerID);
  • trunk/Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeHost.h

    r238108 r238468  
    2626#pragma once
    2727
    28 #include "LayerRepresentation.h"
     28#include "RemoteLayerTreeNode.h"
    2929#include "RemoteLayerTreeTransaction.h"
    3030#include <WebCore/PlatformCALayer.h>
     
    4646    virtual ~RemoteLayerTreeHost();
    4747
    48     LayerOrView *getLayer(WebCore::GraphicsLayer::PlatformLayerID) const;
    49     LayerOrView *rootLayer() const { return m_rootLayer; }
     48    RemoteLayerTreeNode* nodeForID(WebCore::GraphicsLayer::PlatformLayerID) const;
     49    RemoteLayerTreeNode* rootNode() const { return m_rootNode; }
    5050
    5151    static WebCore::GraphicsLayer::PlatformLayerID layerID(CALayer*);
     52
     53    CALayer *layerForID(WebCore::GraphicsLayer::PlatformLayerID) const;
     54    CALayer *rootLayer() const;
    5255
    5356    // Returns true if the root layer changed.
     
    7376    void mapAllIOSurfaceBackingStore();
    7477
    75     LayerOrView* layerWithIDForTesting(uint64_t) const;
     78    CALayer *layerWithIDForTesting(uint64_t) const;
    7679
    7780private:
    78     LayerOrView *createLayer(const RemoteLayerTreeTransaction::LayerCreationProperties&, const RemoteLayerTreeTransaction::LayerProperties*);
     81    void createLayer(const RemoteLayerTreeTransaction::LayerCreationProperties&, const RemoteLayerTreeTransaction::LayerProperties*);
    7982    RetainPtr<WKEmbeddedView> createEmbeddedView(const RemoteLayerTreeTransaction::LayerCreationProperties&, const RemoteLayerTreeTransaction::LayerProperties*);
    8083    static void setLayerID(CALayer *, WebCore::GraphicsLayer::PlatformLayerID);
     
    8386
    8487    RemoteLayerTreeDrawingAreaProxy* m_drawingArea { nullptr };
    85     LayerOrView *m_rootLayer { nullptr };
    86     HashMap<WebCore::GraphicsLayer::PlatformLayerID, RetainPtr<LayerOrView>> m_layers;
     88    RemoteLayerTreeNode* m_rootNode { nullptr };
     89    HashMap<WebCore::GraphicsLayer::PlatformLayerID, std::unique_ptr<RemoteLayerTreeNode>> m_nodes;
    8790    HashMap<WebCore::GraphicsLayer::PlatformLayerID, RetainPtr<WKAnimationDelegate>> m_animationDelegates;
    8891    HashMap<WebCore::GraphicsLayer::EmbeddedViewID, RetainPtr<WKEmbeddedView>> m_embeddedViews;
  • trunk/Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeHost.mm

    r238108 r238468  
    7676
    7777    bool rootLayerChanged = false;
    78     LayerOrView *rootLayer = getLayer(transaction.rootLayerID());
     78    auto* rootNode = nodeForID(transaction.rootLayerID());
    7979   
    80     if (!rootLayer)
     80    if (!rootNode)
    8181        RELEASE_LOG_IF_ALLOWED("%p RemoteLayerTreeHost::updateLayerTree - failed to find root layer with ID %llu", this, transaction.rootLayerID());
    8282
    83     if (m_rootLayer != rootLayer) {
    84         m_rootLayer = rootLayer;
     83    if (m_rootNode != rootNode) {
     84        m_rootNode = rootNode;
    8585        rootLayerChanged = true;
    8686    }
     
    100100        const RemoteLayerTreeTransaction::LayerProperties& properties = *changedLayer.value;
    101101
    102         LayerOrView *layer = getLayer(layerID);
    103         ASSERT(layer);
     102        auto* node = nodeForID(layerID);
     103        ASSERT(node);
    104104
    105105        RemoteLayerTreePropertyApplier::RelatedLayerMap relatedLayers;
    106106        if (properties.changedProperties & RemoteLayerTreeTransaction::ChildrenChanged) {
    107107            for (auto& child : properties.children)
    108                 relatedLayers.set(child, (__bridge CFTypeRef)getLayer(child));
     108                relatedLayers.set(child, nodeForID(child));
    109109        }
    110110
    111111        if (properties.changedProperties & RemoteLayerTreeTransaction::MaskLayerChanged && properties.maskLayerID)
    112             relatedLayers.set(properties.maskLayerID, (__bridge CFTypeRef)getLayer(properties.maskLayerID));
     112            relatedLayers.set(properties.maskLayerID, nodeForID(properties.maskLayerID));
    113113
    114114        if (properties.changedProperties & RemoteLayerTreeTransaction::ClonedContentsChanged && properties.clonedLayerID)
     
    116116
    117117        if (m_isDebugLayerTreeHost) {
    118             RemoteLayerTreePropertyApplier::applyProperties(layer, this, properties, relatedLayers, layerContentsType);
     118            RemoteLayerTreePropertyApplier::applyProperties(*node, this, properties, relatedLayers, layerContentsType);
    119119
    120120            if (properties.changedProperties & RemoteLayerTreeTransaction::BorderWidthChanged)
    121                 asLayer(layer).borderWidth = properties.borderWidth / indicatorScaleFactor;
    122             asLayer(layer).masksToBounds = false;
     121                node->layer().borderWidth = properties.borderWidth / indicatorScaleFactor;
     122            node->layer().masksToBounds = false;
    123123        } else
    124             RemoteLayerTreePropertyApplier::applyProperties(layer, this, properties, relatedLayers, layerContentsType);
     124            RemoteLayerTreePropertyApplier::applyProperties(*node, this, properties, relatedLayers, layerContentsType);
    125125    }
    126126   
    127127    for (const auto& layerPair : clonesToUpdate) {
    128         LayerOrView *layer = getLayer(layerPair.first);
    129         LayerOrView *clonedLayer = getLayer(layerPair.second);
    130         asLayer(layer).contents = asLayer(clonedLayer).contents;
     128        auto* layer = layerForID(layerPair.first);
     129        auto* clonedLayer = layerForID(layerPair.second);
     130        layer.contents = clonedLayer.contents;
    131131    }
    132132
     
    137137    // the backing store in the commit that reparents them.
    138138    for (auto& newlyUnreachableLayerID : transaction.layerIDsWithNewlyUnreachableBackingStore())
    139         asLayer(getLayer(newlyUnreachableLayerID)).contents = nullptr;
     139        layerForID(newlyUnreachableLayerID).contents = nullptr;
    140140
    141141    return rootLayerChanged;
    142142}
    143143
    144 LayerOrView *RemoteLayerTreeHost::getLayer(GraphicsLayer::PlatformLayerID layerID) const
     144RemoteLayerTreeNode* RemoteLayerTreeHost::nodeForID(GraphicsLayer::PlatformLayerID layerID) const
    145145{
    146146    if (!layerID)
    147         return nil;
    148 
    149     return m_layers.get(layerID).get();
     147        return nullptr;
     148
     149    return m_nodes.get(layerID);
    150150}
    151151
     
    164164    }
    165165
    166     m_layers.remove(layerID);
     166    m_nodes.remove(layerID);
    167167}
    168168
     
    172172        return;
    173173
    174     CALayer *layer = asLayer(getLayer(layerID));
     174    CALayer *layer = layerForID(layerID);
    175175    if (!layer)
    176176        return;
     
    193193        return;
    194194
    195     CALayer *layer = asLayer(getLayer(layerID));
     195    CALayer *layer = layerForID(layerID);
    196196    if (!layer)
    197197        return;
     
    216216void RemoteLayerTreeHost::clearLayers()
    217217{
    218     for (auto& idLayer : m_layers) {
    219         m_animationDelegates.remove(idLayer.key);
    220 #if PLATFORM(IOS_FAMILY)
    221         [idLayer.value.get() removeFromSuperview];
    222 #else
    223         [asLayer(idLayer.value.get()) removeFromSuperlayer];
    224 #endif
    225     }
    226 
    227     m_layers.clear();
     218    for (auto& keyAndNode : m_nodes) {
     219        m_animationDelegates.remove(keyAndNode.key);
     220        keyAndNode.value->detachFromParent();
     221    }
     222
     223    m_nodes.clear();
    228224    m_embeddedViews.clear();
    229225    m_layerToEmbeddedViewMap.clear();
    230     m_rootLayer = nullptr;
    231 }
    232 
    233 LayerOrView* RemoteLayerTreeHost::layerWithIDForTesting(uint64_t layerID) const
    234 {
    235     return getLayer(layerID);
     226    m_rootNode = nullptr;
     227}
     228
     229CALayer *RemoteLayerTreeHost::layerWithIDForTesting(uint64_t layerID) const
     230{
     231    return layerForID(layerID);
    236232}
    237233
     
    248244}
    249245
     246CALayer *RemoteLayerTreeHost::layerForID(WebCore::GraphicsLayer::PlatformLayerID layerID) const
     247{
     248    auto* node = nodeForID(layerID);
     249    if (!node)
     250        return nil;
     251    return node->layer();
     252}
     253
     254CALayer *RemoteLayerTreeHost::rootLayer() const
     255{
     256    if (!m_rootNode)
     257        return nil;
     258    return m_rootNode->layer();
     259}
     260
    250261#if !PLATFORM(IOS_FAMILY)
    251 LayerOrView *RemoteLayerTreeHost::createLayer(const RemoteLayerTreeTransaction::LayerCreationProperties& properties, const RemoteLayerTreeTransaction::LayerProperties*)
    252 {
    253     RetainPtr<CALayer>& layer = m_layers.add(properties.layerID, nullptr).iterator->value;
    254 
    255     ASSERT(!layer);
     262void RemoteLayerTreeHost::createLayer(const RemoteLayerTreeTransaction::LayerCreationProperties& properties, const RemoteLayerTreeTransaction::LayerProperties*)
     263{
     264    ASSERT(!m_nodes.contains(properties.layerID));
     265
     266    RetainPtr<CALayer> layer;
    256267
    257268    switch (properties.type) {
     
    298309    setLayerID(layer.get(), properties.layerID);
    299310
    300     return layer.get();
     311    m_nodes.add(properties.layerID, std::make_unique<RemoteLayerTreeNode>(WTFMove(layer)));
    301312}
    302313#endif
     
    304315void RemoteLayerTreeHost::detachRootLayer()
    305316{
    306 #if PLATFORM(IOS_FAMILY)
    307     [m_rootLayer removeFromSuperview];
    308 #else
    309     [asLayer(m_rootLayer) removeFromSuperlayer];
    310 #endif
    311     m_rootLayer = nullptr;
     317    if (!m_rootNode)
     318        return;
     319    m_rootNode->detachFromParent();
     320    m_rootNode = nullptr;
    312321}
    313322
     
    329338{
    330339#if HAVE(IOSURFACE)
    331     recursivelyMapIOSurfaceBackingStore(asLayer(m_rootLayer));
     340    recursivelyMapIOSurfaceBackingStore(rootLayer());
    332341#endif
    333342}
  • trunk/Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeNode.h

    r238467 r238468  
    11/*
    2  * Copyright (C) 2014 Apple Inc. All rights reserved.
     2 * Copyright (C) 2018 Apple Inc. All rights reserved.
    33 *
    44 * Redistribution and use in source and binary forms, with or without
     
    2424 */
    2525
    26 #import "config.h"
    27 #import "LayerRepresentation.h"
     26#pragma once
    2827
     28#include <wtf/RetainPtr.h>
     29
     30OBJC_CLASS CALayer;
    2931#if PLATFORM(IOS_FAMILY)
    30 #import <UIKit/UIView.h>
    31 CALayer *asLayer(LayerOrView *view)
    32 {
    33     return view.layer;
     32OBJC_CLASS UIView;
     33#endif
     34
     35namespace WebKit {
     36
     37class RemoteLayerTreeNode {
     38    WTF_MAKE_FAST_ALLOCATED;
     39public:
     40    RemoteLayerTreeNode(RetainPtr<CALayer>);
     41#if PLATFORM(IOS_FAMILY)
     42    RemoteLayerTreeNode(RetainPtr<UIView>);
     43#endif
     44
     45    ~RemoteLayerTreeNode();
     46
     47    CALayer *layer() const { return m_layer.get(); }
     48#if PLATFORM(IOS_FAMILY)
     49    UIView *uiView() const { return m_uiView.get(); }
     50#endif
     51
     52    void detachFromParent();
     53
     54private:
     55    RetainPtr<CALayer> m_layer;
     56#if PLATFORM(IOS_FAMILY)
     57    RetainPtr<UIView> m_uiView;
     58#endif
     59};
     60
    3461}
    35 #endif
  • trunk/Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeNode.mm

    r238467 r238468  
    11/*
    2  * Copyright (C) 2014 Apple Inc. All rights reserved.
     2 * Copyright (C) 2018 Apple Inc. All rights reserved.
    33 *
    44 * Redistribution and use in source and binary forms, with or without
     
    2424 */
    2525
    26 #ifndef LayerRepresentation_h
    27 #define LayerRepresentation_h
     26#include "config.h"
     27#include "RemoteLayerTreeNode.h"
     28
     29namespace WebKit {
     30
     31RemoteLayerTreeNode::RemoteLayerTreeNode(RetainPtr<CALayer> layer)
     32    : m_layer(WTFMove(layer))
     33{
     34}
    2835
    2936#if PLATFORM(IOS_FAMILY)
     37RemoteLayerTreeNode::RemoteLayerTreeNode(RetainPtr<UIView> uiView)
     38    : m_layer([uiView.get() layer])
     39    , m_uiView(WTFMove(uiView))
     40{
     41}
     42#endif
    3043
    31 OBJC_CLASS CALayer;
    32 OBJC_CLASS UIView;
    33 typedef UIView LayerOrView;
     44RemoteLayerTreeNode::~RemoteLayerTreeNode() = default;
    3445
    35 CALayer *asLayer(LayerOrView *);
    36 
     46void RemoteLayerTreeNode::detachFromParent()
     47{
     48#if PLATFORM(IOS_FAMILY)
     49    [uiView() removeFromSuperview];
    3750#else
    38 
    39 OBJC_CLASS CALayer;
    40 typedef CALayer LayerOrView;
    41 
    42 inline CALayer *asLayer(LayerOrView *layer)
    43 {
    44     return layer;
     51    [layer() removeFromSuperlayer];
     52#endif
    4553}
    4654
    47 #endif
    48 
    49 #endif // LayerRepresentation_h
     55}
  • trunk/Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeScrollingPerformanceData.mm

    r235265 r238468  
    101101unsigned RemoteLayerTreeScrollingPerformanceData::blankPixelCount(const FloatRect& visibleRect) const
    102102{
    103     CALayer *rootLayer = asLayer(m_drawingArea.remoteLayerTreeHost().rootLayer());
     103    CALayer *rootLayer = m_drawingArea.remoteLayerTreeHost().rootLayer();
    104104
    105105    CALayer *tileGridContainer = findTileGridContainerLayer(rootLayer);
  • trunk/Source/WebKit/UIProcess/RemoteLayerTree/RemoteScrollingCoordinatorProxy.cpp

    r237266 r238468  
    9696
    9797#if !PLATFORM(IOS_FAMILY)
     98
    9899void RemoteScrollingCoordinatorProxy::connectStateNodeLayers(ScrollingStateTree& stateTree, const RemoteLayerTreeHost& layerTreeHost)
    99100{
    100101    for (auto& currNode : stateTree.nodeMap().values()) {
    101102        if (currNode->hasChangedProperty(ScrollingStateNode::ScrollLayer))
    102             currNode->setLayer(layerTreeHost.getLayer(currNode->layer()));
     103            currNode->setLayer(layerTreeHost.layerForID(currNode->layer()));
    103104
    104105        switch (currNode->nodeType()) {
     
    108109           
    109110            if (scrollingStateNode.hasChangedProperty(ScrollingStateScrollingNode::ScrolledContentsLayer))
    110                 scrollingStateNode.setScrolledContentsLayer(layerTreeHost.getLayer(scrollingStateNode.scrolledContentsLayer()));
     111                scrollingStateNode.setScrolledContentsLayer(layerTreeHost.layerForID(scrollingStateNode.scrolledContentsLayer()));
    111112
    112113            if (scrollingStateNode.hasChangedProperty(ScrollingStateFrameScrollingNode::CounterScrollingLayer))
    113                 scrollingStateNode.setCounterScrollingLayer(layerTreeHost.getLayer(scrollingStateNode.counterScrollingLayer()));
     114                scrollingStateNode.setCounterScrollingLayer(layerTreeHost.layerForID(scrollingStateNode.counterScrollingLayer()));
    114115
    115116            if (scrollingStateNode.hasChangedProperty(ScrollingStateFrameScrollingNode::InsetClipLayer))
    116                 scrollingStateNode.setInsetClipLayer(layerTreeHost.getLayer(scrollingStateNode.insetClipLayer()));
     117                scrollingStateNode.setInsetClipLayer(layerTreeHost.layerForID(scrollingStateNode.insetClipLayer()));
    117118
    118119            if (scrollingStateNode.hasChangedProperty(ScrollingStateFrameScrollingNode::ContentShadowLayer))
    119                 scrollingStateNode.setContentShadowLayer(layerTreeHost.getLayer(scrollingStateNode.contentShadowLayer()));
     120                scrollingStateNode.setContentShadowLayer(layerTreeHost.layerForID(scrollingStateNode.contentShadowLayer()));
    120121
    121122            // FIXME: we should never have header and footer layers coming from the WebProcess.
    122123            if (scrollingStateNode.hasChangedProperty(ScrollingStateFrameScrollingNode::HeaderLayer))
    123                 scrollingStateNode.setHeaderLayer(layerTreeHost.getLayer(scrollingStateNode.headerLayer()));
     124                scrollingStateNode.setHeaderLayer(layerTreeHost.layerForID(scrollingStateNode.headerLayer()));
    124125
    125126            if (scrollingStateNode.hasChangedProperty(ScrollingStateFrameScrollingNode::FooterLayer))
    126                 scrollingStateNode.setFooterLayer(layerTreeHost.getLayer(scrollingStateNode.footerLayer()));
     127                scrollingStateNode.setFooterLayer(layerTreeHost.layerForID(scrollingStateNode.footerLayer()));
    127128            break;
    128129        }
     
    131132
    132133            if (scrollingStateNode.hasChangedProperty(ScrollingStateScrollingNode::ScrolledContentsLayer))
    133                 scrollingStateNode.setScrolledContentsLayer(layerTreeHost.getLayer(scrollingStateNode.scrolledContentsLayer()));
     134                scrollingStateNode.setScrolledContentsLayer(layerTreeHost.layerForID(scrollingStateNode.scrolledContentsLayer()));
    134135            break;
    135136        }
  • trunk/Source/WebKit/UIProcess/RemoteLayerTree/ios/RemoteLayerTreeHostIOS.mm

    r238108 r238468  
    5959}
    6060
    61 LayerOrView *RemoteLayerTreeHost::createLayer(const RemoteLayerTreeTransaction::LayerCreationProperties& properties, const RemoteLayerTreeTransaction::LayerProperties* layerProperties)
     61void RemoteLayerTreeHost::createLayer(const RemoteLayerTreeTransaction::LayerCreationProperties& properties, const RemoteLayerTreeTransaction::LayerProperties* layerProperties)
    6262{
    63     RetainPtr<LayerOrView>& view = m_layers.add(properties.layerID, nullptr).iterator->value;
     63    ASSERT(!m_nodes.contains(properties.layerID));
    6464
    65     ASSERT(!view);
     65    RetainPtr<UIView> view;
    6666
    6767    switch (properties.type) {
     
    118118    setLayerID([view layer], properties.layerID);
    119119
    120     return view.get();
     120    m_nodes.add(properties.layerID, std::make_unique<RemoteLayerTreeNode>(WTFMove(view)));
    121121}
    122122
  • trunk/Source/WebKit/UIProcess/RemoteLayerTree/ios/RemoteScrollingCoordinatorProxyIOS.mm

    r237266 r238468  
    3030#if ENABLE(ASYNC_SCROLLING)
    3131
    32 #import "LayerRepresentation.h"
    3332#import "RemoteLayerTreeHost.h"
     33#import "RemoteLayerTreeNode.h"
    3434#import "WebPageProxy.h"
    3535#import <UIKit/UIView.h>
     
    4848using namespace WebCore;
    4949
    50 static LayerRepresentation layerRepresentationFromLayerOrView(LayerOrView *layerOrView)
    51 {
    52     return LayerRepresentation(layerOrView.layer);
    53 }
    54 
    5550void RemoteScrollingCoordinatorProxy::connectStateNodeLayers(ScrollingStateTree& stateTree, const RemoteLayerTreeHost& layerTreeHost)
    5651{
     
    6156           
    6257            if (scrollingStateNode.hasChangedProperty(ScrollingStateNode::ScrollLayer))
    63                 scrollingStateNode.setLayer(layerRepresentationFromLayerOrView(layerTreeHost.getLayer(scrollingStateNode.layer())));
     58                scrollingStateNode.setLayer(layerTreeHost.layerForID(scrollingStateNode.layer()));
    6459           
    6560            if (scrollingStateNode.hasChangedProperty(ScrollingStateScrollingNode::ScrolledContentsLayer))
    66                 scrollingStateNode.setScrolledContentsLayer(layerRepresentationFromLayerOrView(layerTreeHost.getLayer(scrollingStateNode.scrolledContentsLayer())));
     61                scrollingStateNode.setScrolledContentsLayer(layerTreeHost.layerForID(scrollingStateNode.scrolledContentsLayer()));
    6762            break;
    6863        };
     
    7267           
    7368            if (scrollingStateNode.hasChangedProperty(ScrollingStateNode::ScrollLayer))
    74                 scrollingStateNode.setLayer(layerRepresentationFromLayerOrView(layerTreeHost.getLayer(scrollingStateNode.layer())));
     69                scrollingStateNode.setLayer(layerTreeHost.layerForID(scrollingStateNode.layer()));
    7570
    7671            if (scrollingStateNode.hasChangedProperty(ScrollingStateFrameScrollingNode::CounterScrollingLayer))
    77                 scrollingStateNode.setCounterScrollingLayer(layerRepresentationFromLayerOrView(layerTreeHost.getLayer(scrollingStateNode.counterScrollingLayer())));
     72                scrollingStateNode.setCounterScrollingLayer(layerTreeHost.layerForID(scrollingStateNode.counterScrollingLayer()));
    7873
    7974            // FIXME: we should never have header and footer layers coming from the WebProcess.
    8075            if (scrollingStateNode.hasChangedProperty(ScrollingStateFrameScrollingNode::HeaderLayer))
    81                 scrollingStateNode.setHeaderLayer(layerRepresentationFromLayerOrView(layerTreeHost.getLayer(scrollingStateNode.headerLayer())));
     76                scrollingStateNode.setHeaderLayer(layerTreeHost.layerForID(scrollingStateNode.headerLayer()));
    8277
    8378            if (scrollingStateNode.hasChangedProperty(ScrollingStateFrameScrollingNode::FooterLayer))
    84                 scrollingStateNode.setFooterLayer(layerRepresentationFromLayerOrView(layerTreeHost.getLayer(scrollingStateNode.footerLayer())));
     79                scrollingStateNode.setFooterLayer(layerTreeHost.layerForID(scrollingStateNode.footerLayer()));
    8580            break;
    8681        }
     
    8883        case StickyNode:
    8984            if (currNode->hasChangedProperty(ScrollingStateNode::ScrollLayer))
    90                 currNode->setLayer(layerRepresentationFromLayerOrView(layerTreeHost.getLayer(currNode->layer())));
     85                currNode->setLayer(layerTreeHost.layerForID(currNode->layer()));
    9186            break;
    9287        }
  • trunk/Source/WebKit/UIProcess/WebAuthentication/Cocoa/HidService.h

    r238166 r238468  
    3030#include "AuthenticatorTransportService.h"
    3131#include <IOKit/hid/IOHIDManager.h>
     32#include <wtf/RetainPtr.h>
    3233#include <wtf/UniqueRef.h>
    3334
  • trunk/Source/WebKit/UIProcess/WebAuthentication/Cocoa/HidService.mm

    r238166 r238468  
    3636#import <WebCore/FidoConstants.h>
    3737#import <WebCore/FidoHidMessage.h>
     38#import <wtf/RunLoop.h>
    3839
    3940namespace WebKit {
  • trunk/Source/WebKit/UIProcess/WebPageProxy.h

    r238438 r238468  
    113113#if PLATFORM(COCOA)
    114114#include "DynamicViewportSizeUpdate.h"
    115 #include "LayerRepresentation.h"
     115#include "RemoteLayerTreeNode.h"
    116116#include "TouchBarMenuData.h"
    117117#include "TouchBarMenuItemData.h"
     
    700700    bool acceptsFirstMouse(int eventNumber, const WebMouseEvent&);
    701701
    702     void setAcceleratedCompositingRootLayer(LayerOrView*);
    703     LayerOrView* acceleratedCompositingRootLayer() const;
     702    void setRemoteLayerTreeRootNode(RemoteLayerTreeNode*);
     703    CALayer *acceleratedCompositingRootLayer() const;
    704704
    705705    void setTextAsync(const String&);
  • trunk/Source/WebKit/UIProcess/ios/PageClientImplIOS.h

    r238190 r238468  
    122122    void exitAcceleratedCompositingMode() override;
    123123    void updateAcceleratedCompositingMode(const LayerTreeContext&) override;
    124     void setAcceleratedCompositingRootLayer(LayerOrView *) override;
    125     LayerOrView *acceleratedCompositingRootLayer() const override;
     124    void setRemoteLayerTreeRootNode(RemoteLayerTreeNode*) override;
     125    CALayer* acceleratedCompositingRootLayer() const override;
    126126    LayerHostingMode viewLayerHostingMode() override { return LayerHostingMode::OutOfProcess; }
    127127
  • trunk/Source/WebKit/UIProcess/ios/PageClientImplIOS.mm

    r238190 r238468  
    496496}
    497497
    498 void PageClientImpl::setAcceleratedCompositingRootLayer(LayerOrView *rootLayer)
    499 {
    500     [m_contentView _setAcceleratedCompositingRootView:rootLayer];
    501 }
    502 
    503 LayerOrView *PageClientImpl::acceleratedCompositingRootLayer() const
     498void PageClientImpl::setRemoteLayerTreeRootNode(RemoteLayerTreeNode* rootNode)
     499{
     500    [m_contentView _setAcceleratedCompositingRootView:rootNode ? rootNode->uiView() : nil];
     501}
     502
     503CALayer *PageClientImpl::acceleratedCompositingRootLayer() const
    504504{
    505505    notImplemented();
  • trunk/Source/WebKit/UIProcess/ios/WebPageProxyIOS.mm

    r238078 r238468  
    992992}
    993993
    994 void WebPageProxy::setAcceleratedCompositingRootLayer(LayerOrView* rootLayer)
    995 {
    996     pageClient().setAcceleratedCompositingRootLayer(rootLayer);
     994void WebPageProxy::setRemoteLayerTreeRootNode(RemoteLayerTreeNode* rootNode)
     995{
     996    pageClient().setRemoteLayerTreeRootNode(rootNode);
    997997    m_frozenRemoteLayerTreeHost = nullptr;
    998998}
  • trunk/Source/WebKit/UIProcess/mac/PageClientImplMac.h

    r238190 r238468  
    7676    LayerHostingMode viewLayerHostingMode() override;
    7777    ColorSpaceData colorSpace() override;
    78     void setAcceleratedCompositingRootLayer(LayerOrView *) override;
    79     LayerOrView *acceleratedCompositingRootLayer() const override;
     78    void setRemoteLayerTreeRootNode(RemoteLayerTreeNode*) override;
     79    CALayer *acceleratedCompositingRootLayer() const override;
    8080
    8181    void processDidExit() override;
  • trunk/Source/WebKit/UIProcess/mac/PageClientImplMac.mm

    r238190 r238468  
    543543}
    544544
    545 void PageClientImpl::setAcceleratedCompositingRootLayer(CALayer *rootLayer)
    546 {
    547     m_impl->setAcceleratedCompositingRootLayer(rootLayer);
     545void PageClientImpl::setRemoteLayerTreeRootNode(RemoteLayerTreeNode* rootNode)
     546{
     547    m_impl->setAcceleratedCompositingRootLayer(rootNode ? rootNode->layer() : nil);
    548548}
    549549
  • trunk/Source/WebKit/UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.mm

    r237480 r238468  
    144144        return MachSendRight();
    145145
    146     RetainPtr<CAContext> rootLayerContext = [asLayer(m_webPageProxy.acceleratedCompositingRootLayer()) context];
     146    RetainPtr<CAContext> rootLayerContext = [m_webPageProxy.acceleratedCompositingRootLayer() context];
    147147    if (!rootLayerContext)
    148148        return MachSendRight();
  • trunk/Source/WebKit/UIProcess/mac/WebPageProxyMac.mm

    r238184 r238468  
    456456}
    457457
    458 void WebPageProxy::setAcceleratedCompositingRootLayer(LayerOrView* rootLayer)
    459 {
    460     pageClient().setAcceleratedCompositingRootLayer(rootLayer);
     458void WebPageProxy::setRemoteLayerTreeRootNode(RemoteLayerTreeNode* rootNode)
     459{
     460    pageClient().setRemoteLayerTreeRootNode(rootNode);
    461461    m_frozenRemoteLayerTreeHost = nullptr;
    462462}
    463463
    464 LayerOrView* WebPageProxy::acceleratedCompositingRootLayer() const
     464CALayer *WebPageProxy::acceleratedCompositingRootLayer() const
    465465{
    466466    return pageClient().acceleratedCompositingRootLayer();
  • trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj

    r238446 r238468  
    15981598                E489D28C1A0A2DB80078C06A /* NetworkCacheCoders.h in Headers */ = {isa = PBXBuildFile; fileRef = E489D2851A0A2DB80078C06A /* NetworkCacheCoders.h */; };
    15991599                E49D40D71AD3FB170066B7B9 /* NetworkCacheBlobStorage.h in Headers */ = {isa = PBXBuildFile; fileRef = E49D40D61AD3FB170066B7B9 /* NetworkCacheBlobStorage.h */; };
     1600                E4E57F6B21A83B1200345F3C /* RemoteLayerTreeNode.h in Headers */ = {isa = PBXBuildFile; fileRef = E4E57F6A21A83B1100345F3C /* RemoteLayerTreeNode.h */; };
    16001601                E4E864931B16750700C82F40 /* VersionChecks.h in Headers */ = {isa = PBXBuildFile; fileRef = E4E8648E1B1673FB00C82F40 /* VersionChecks.h */; };
    16011602                E52CF55220A35C3A00DADA27 /* WebDataListSuggestionPicker.h in Headers */ = {isa = PBXBuildFile; fileRef = E52CF55020A35C3A00DADA27 /* WebDataListSuggestionPicker.h */; };
     
    44644465                E49D40D61AD3FB170066B7B9 /* NetworkCacheBlobStorage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NetworkCacheBlobStorage.h; sourceTree = "<group>"; };
    44654466                E49D40D81AD3FB210066B7B9 /* NetworkCacheBlobStorage.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = NetworkCacheBlobStorage.cpp; sourceTree = "<group>"; };
     4467                E4E57F6821A83B0300345F3C /* RemoteLayerTreeNode.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = RemoteLayerTreeNode.mm; sourceTree = "<group>"; };
     4468                E4E57F6A21A83B1100345F3C /* RemoteLayerTreeNode.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RemoteLayerTreeNode.h; sourceTree = "<group>"; };
    44664469                E4E8648E1B1673FB00C82F40 /* VersionChecks.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VersionChecks.h; sourceTree = "<group>"; };
    44674470                E4E8648F1B1673FB00C82F40 /* VersionChecks.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = VersionChecks.mm; sourceTree = "<group>"; };
     
    54945497                                1AA3D75A1651B44F008713D0 /* RemoteLayerTreeHost.h */,
    54955498                                1AA3D7591651B44F008713D0 /* RemoteLayerTreeHost.mm */,
     5499                                E4E57F6A21A83B1100345F3C /* RemoteLayerTreeNode.h */,
     5500                                E4E57F6821A83B0300345F3C /* RemoteLayerTreeNode.mm */,
    54965501                                0F707C791A1FEEA300DA7A45 /* RemoteLayerTreeScrollingPerformanceData.h */,
    54975502                                0F707C771A1FEE8300DA7A45 /* RemoteLayerTreeScrollingPerformanceData.mm */,
     
    88718876                                7A8A9D581EF119B0009801AE /* APIInjectedBundleClient.h in Headers */,
    88728877                                377512311DF0DEE2008A351C /* APIInjectedBundleEditorClient.h in Headers */,
     8878                                E4E57F6B21A83B1200345F3C /* RemoteLayerTreeNode.h in Headers */,
    88738879                                3769079E18F340A2001DFF04 /* APIInjectedBundleFormClient.h in Headers */,
    88748880                                7A3ACE1B1EEEF79B00A864A4 /* APIInjectedBundlePageLoaderClient.h in Headers */,
  • trunk/Source/WebKit/WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemote.cpp

    r238108 r238468  
    175175
    176176        if (isPlatformCALayerRemoteCustom()) {
    177             RemoteLayerTreePropertyApplier::applyProperties(platformLayer(), nullptr, m_properties, RemoteLayerTreePropertyApplier::RelatedLayerMap(), RemoteLayerBackingStore::LayerContentsType::CAMachPort);
     177            RemoteLayerTreePropertyApplier::applyPropertiesToLayer(platformLayer(), nullptr, m_properties, RemoteLayerBackingStore::LayerContentsType::CAMachPort);
    178178            didCommit();
    179179            return;
Note: See TracChangeset for help on using the changeset viewer.