Changeset 238468 in webkit
- Timestamp:
- Nov 23, 2018, 11:17:35 PM (8 years ago)
- Location:
- trunk/Source/WebKit
- Files:
-
- 27 edited
- 2 moved
-
ChangeLog (modified) (1 diff)
-
Shared/RemoteLayerTree/RemoteLayerTreePropertyApplier.h (modified) (2 diffs)
-
Shared/RemoteLayerTree/RemoteLayerTreePropertyApplier.mm (modified) (5 diffs)
-
SourcesCocoa.txt (modified) (2 diffs)
-
UIProcess/API/Cocoa/WKWebView.mm (modified) (1 diff)
-
UIProcess/Cocoa/VideoFullscreenManagerProxy.mm (modified) (1 diff)
-
UIProcess/PageClient.h (modified) (2 diffs)
-
UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.h (modified) (1 diff)
-
UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.mm (modified) (5 diffs)
-
UIProcess/RemoteLayerTree/RemoteLayerTreeHost.h (modified) (4 diffs)
-
UIProcess/RemoteLayerTree/RemoteLayerTreeHost.mm (modified) (12 diffs)
-
UIProcess/RemoteLayerTree/RemoteLayerTreeNode.h (moved) (moved from trunk/Source/WebKit/UIProcess/ios/LayerRepresentation.mm ) (2 diffs)
-
UIProcess/RemoteLayerTree/RemoteLayerTreeNode.mm (moved) (moved from trunk/Source/WebKit/UIProcess/Cocoa/LayerRepresentation.h ) (2 diffs)
-
UIProcess/RemoteLayerTree/RemoteLayerTreeScrollingPerformanceData.mm (modified) (1 diff)
-
UIProcess/RemoteLayerTree/RemoteScrollingCoordinatorProxy.cpp (modified) (3 diffs)
-
UIProcess/RemoteLayerTree/ios/RemoteLayerTreeHostIOS.mm (modified) (2 diffs)
-
UIProcess/RemoteLayerTree/ios/RemoteScrollingCoordinatorProxyIOS.mm (modified) (5 diffs)
-
UIProcess/WebAuthentication/Cocoa/HidService.h (modified) (1 diff)
-
UIProcess/WebAuthentication/Cocoa/HidService.mm (modified) (1 diff)
-
UIProcess/WebPageProxy.h (modified) (2 diffs)
-
UIProcess/ios/PageClientImplIOS.h (modified) (1 diff)
-
UIProcess/ios/PageClientImplIOS.mm (modified) (1 diff)
-
UIProcess/ios/WebPageProxyIOS.mm (modified) (1 diff)
-
UIProcess/mac/PageClientImplMac.h (modified) (1 diff)
-
UIProcess/mac/PageClientImplMac.mm (modified) (1 diff)
-
UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.mm (modified) (1 diff)
-
UIProcess/mac/WebPageProxyMac.mm (modified) (1 diff)
-
WebKit.xcodeproj/project.pbxproj (modified) (4 diffs)
-
WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemote.cpp (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit/ChangeLog
r238466 r238468 1 2018-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 1 91 2018-11-23 Jiewen Tan <jiewen_tan@apple.com> 2 92 -
trunk/Source/WebKit/Shared/RemoteLayerTree/RemoteLayerTreePropertyApplier.h
r237266 r238468 26 26 #pragma once 27 27 28 #include " LayerRepresentation.h"28 #include "RemoteLayerTreeNode.h" 29 29 #include "RemoteLayerTreeTransaction.h" 30 30 #include <wtf/HashMap.h> … … 36 36 class RemoteLayerTreePropertyApplier { 37 37 public: 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 42 private: 40 43 #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&); 42 45 #endif 43 46 }; -
trunk/Source/WebKit/Shared/RemoteLayerTree/RemoteLayerTreePropertyApplier.mm
r237266 r238468 127 127 } 128 128 129 static voidapplyPropertiesToLayer(CALayer *layer, RemoteLayerTreeHost* layerTreeHost, const RemoteLayerTreeTransaction::LayerProperties& properties, RemoteLayerBackingStore::LayerContentsType layerContentsType)129 void RemoteLayerTreePropertyApplier::applyPropertiesToLayer(CALayer *layer, RemoteLayerTreeHost* layerTreeHost, const RemoteLayerTreeTransaction::LayerProperties& properties, RemoteLayerBackingStore::LayerContentsType layerContentsType) 130 130 { 131 131 if (properties.changedProperties & RemoteLayerTreeTransaction::NameChanged) … … 255 255 } 256 256 257 void RemoteLayerTreePropertyApplier::applyProperties( CALayer *layer, RemoteLayerTreeHost* layerTreeHost, const RemoteLayerTreeTransaction::LayerProperties& properties, const RelatedLayerMap& relatedLayers, RemoteLayerBackingStore::LayerContentsType layerContentsType)257 void RemoteLayerTreePropertyApplier::applyProperties(RemoteLayerTreeNode& node, RemoteLayerTreeHost* layerTreeHost, const RemoteLayerTreeTransaction::LayerProperties& properties, const RelatedLayerMap& relatedLayers, RemoteLayerBackingStore::LayerContentsType layerContentsType) 258 258 { 259 259 BEGIN_BLOCK_OBJC_EXCEPTIONS; 260 261 CALayer *layer = node.layer(); 262 260 263 applyPropertiesToLayer(layer, layerTreeHost, properties, layerContentsType); 261 264 265 #if PLATFORM(IOS_FAMILY) 266 applyPropertiesToUIView(node.uiView(), properties, relatedLayers); 267 #else 262 268 if (properties.changedProperties & RemoteLayerTreeTransaction::ChildrenChanged) { 263 269 RetainPtr<NSMutableArray> children = adoptNS([[NSMutableArray alloc] initWithCapacity:properties.children.size()]); 264 270 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()]; 267 273 } 268 274 … … 274 280 layer.mask = nullptr; 275 281 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(); 284 283 ASSERT(!maskLayer.superlayer); 285 284 if (!maskLayer.superlayer) 286 285 layer.mask = maskLayer; 287 #endif 288 }289 } 286 } 287 } 288 #endif 290 289 END_BLOCK_OBJC_EXCEPTIONS; 291 290 } 292 291 293 292 #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 293 void RemoteLayerTreePropertyApplier::applyPropertiesToUIView(UIView *view, const RemoteLayerTreeTransaction::LayerProperties& properties, const RelatedLayerMap& relatedLayers) 294 { 299 295 if (properties.changedProperties & RemoteLayerTreeTransaction::ChildrenChanged) { 300 296 RetainPtr<NSMutableArray> children = adoptNS([[NSMutableArray alloc] initWithCapacity:properties.children.size()]); 301 297 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()]; 304 300 } 305 301 … … 325 321 maskOwnerLayer.mask = nullptr; 326 322 else { 327 UIView *maskView = (__bridge UIView *)relatedLayers.get(properties.maskLayerID);323 UIView *maskView = relatedLayers.get(properties.maskLayerID)->uiView(); 328 324 // FIXME: need to check that the mask view is kept alive. 329 325 ASSERT(!maskView.layer.superlayer); … … 336 332 view.userInteractionEnabled = !properties.contentsHidden && properties.userInteractionEnabled; 337 333 338 END_BLOCK_OBJC_EXCEPTIONS;339 334 } 340 335 #endif -
trunk/Source/WebKit/SourcesCocoa.txt
r238434 r238468 369 369 UIProcess/ios/DragDropInteractionState.mm 370 370 UIProcess/ios/InputViewUpdateDeferrer.mm 371 UIProcess/ios/LayerRepresentation.mm372 371 UIProcess/ios/PageClientImplIOS.mm 373 372 UIProcess/ios/ProcessAssertionIOS.mm … … 447 446 UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.mm 448 447 UIProcess/RemoteLayerTree/RemoteLayerTreeHost.mm 448 UIProcess/RemoteLayerTree/RemoteLayerTreeNode.mm 449 449 UIProcess/RemoteLayerTree/RemoteLayerTreeScrollingPerformanceData.mm 450 450 UIProcess/RemoteLayerTree/RemoteScrollingCoordinatorProxy.cpp -
trunk/Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm
r238438 r238468 6367 6367 - (NSDictionary *)_propertiesOfLayerWithID:(unsigned long long)layerID 6368 6368 { 6369 CALayer* layer = asLayer(downcast<WebKit::RemoteLayerTreeDrawingAreaProxy>(*_page->drawingArea()).layerWithIDForTesting(layerID));6369 CALayer* layer = downcast<WebKit::RemoteLayerTreeDrawingAreaProxy>(*_page->drawingArea()).layerWithIDForTesting(layerID); 6370 6370 if (!layer) 6371 6371 return nil; -
trunk/Source/WebKit/UIProcess/Cocoa/VideoFullscreenManagerProxy.mm
r237483 r238468 479 479 480 480 #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; 482 483 interface->setupFullscreen(*model->layerHostView(), initialRect, parentView, videoFullscreenMode, allowsPictureInPicture, standby); 483 484 #else -
trunk/Source/WebKit/UIProcess/PageClient.h
r238190 r238468 43 43 44 44 #if PLATFORM(COCOA) 45 #include "LayerRepresentation.h"46 45 #include "PluginComplexTextInputState.h" 46 #include "RemoteLayerTreeNode.h" 47 47 #include "WKFoundation.h" 48 48 … … 246 246 virtual void makeFirstResponder() = 0; 247 247 virtual void assistiveTechnologyMakeFirstResponder() = 0; 248 virtual void set AcceleratedCompositingRootLayer(LayerOrView*) = 0;249 virtual LayerOrView*acceleratedCompositingRootLayer() const = 0;248 virtual void setRemoteLayerTreeRootNode(RemoteLayerTreeNode*) = 0; 249 virtual CALayer *acceleratedCompositingRootLayer() const = 0; 250 250 virtual RefPtr<ViewSnapshot> takeViewSnapshot() = 0; 251 251 #if ENABLE(MAC_GESTURE_EVENTS) -
trunk/Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.h
r237266 r238468 59 59 bool isAlwaysOnLoggingAllowed() const; 60 60 61 LayerOrView*layerWithIDForTesting(uint64_t) const;61 CALayer *layerWithIDForTesting(uint64_t) const; 62 62 63 63 private: -
trunk/Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.mm
r237266 r238468 205 205 if (m_remoteLayerTreeHost->updateLayerTree(layerTreeTransaction)) { 206 206 if (layerTreeTransaction.transactionID() >= m_transactionIDForUnhidingContent) 207 m_webPageProxy.set AcceleratedCompositingRootLayer(m_remoteLayerTreeHost->rootLayer());207 m_webPageProxy.setRemoteLayerTreeRootNode(m_remoteLayerTreeHost->rootNode()); 208 208 else 209 209 m_remoteLayerTreeHost->detachRootLayer(); … … 240 240 #endif 241 241 updateDebugIndicator(layerTreeTransaction.contentsSize(), rootLayerChanged, scale, scrollPosition); 242 asLayer(m_debugIndicatorLayerTreeHost->rootLayer()).name = @"Indicator host root";242 m_debugIndicatorLayerTreeHost->rootLayer().name = @"Indicator host root"; 243 243 } 244 244 … … 338 338 { 339 339 // Make sure we're the last sublayer. 340 CALayer *rootLayer = asLayer(m_remoteLayerTreeHost->rootLayer());340 CALayer *rootLayer = m_remoteLayerTreeHost->rootLayer(); 341 341 [m_tileMapHostLayer removeFromSuperlayer]; 342 342 [rootLayer addSublayer:m_tileMapHostLayer.get()]; … … 351 351 if (rootLayerChanged) { 352 352 [m_tileMapHostLayer setSublayers:@[]]; 353 [m_tileMapHostLayer addSublayer: asLayer(m_debugIndicatorLayerTreeHost->rootLayer())];353 [m_tileMapHostLayer addSublayer:m_debugIndicatorLayerTreeHost->rootLayer()]; 354 354 [m_tileMapHostLayer addSublayer:m_exposedRectIndicatorLayer.get()]; 355 355 } … … 501 501 } 502 502 503 LayerOrView*RemoteLayerTreeDrawingAreaProxy::layerWithIDForTesting(uint64_t layerID) const503 CALayer *RemoteLayerTreeDrawingAreaProxy::layerWithIDForTesting(uint64_t layerID) const 504 504 { 505 505 return m_remoteLayerTreeHost->layerWithIDForTesting(layerID); -
trunk/Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeHost.h
r238108 r238468 26 26 #pragma once 27 27 28 #include " LayerRepresentation.h"28 #include "RemoteLayerTreeNode.h" 29 29 #include "RemoteLayerTreeTransaction.h" 30 30 #include <WebCore/PlatformCALayer.h> … … 46 46 virtual ~RemoteLayerTreeHost(); 47 47 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; } 50 50 51 51 static WebCore::GraphicsLayer::PlatformLayerID layerID(CALayer*); 52 53 CALayer *layerForID(WebCore::GraphicsLayer::PlatformLayerID) const; 54 CALayer *rootLayer() const; 52 55 53 56 // Returns true if the root layer changed. … … 73 76 void mapAllIOSurfaceBackingStore(); 74 77 75 LayerOrView*layerWithIDForTesting(uint64_t) const;78 CALayer *layerWithIDForTesting(uint64_t) const; 76 79 77 80 private: 78 LayerOrView *createLayer(const RemoteLayerTreeTransaction::LayerCreationProperties&, const RemoteLayerTreeTransaction::LayerProperties*);81 void createLayer(const RemoteLayerTreeTransaction::LayerCreationProperties&, const RemoteLayerTreeTransaction::LayerProperties*); 79 82 RetainPtr<WKEmbeddedView> createEmbeddedView(const RemoteLayerTreeTransaction::LayerCreationProperties&, const RemoteLayerTreeTransaction::LayerProperties*); 80 83 static void setLayerID(CALayer *, WebCore::GraphicsLayer::PlatformLayerID); … … 83 86 84 87 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; 87 90 HashMap<WebCore::GraphicsLayer::PlatformLayerID, RetainPtr<WKAnimationDelegate>> m_animationDelegates; 88 91 HashMap<WebCore::GraphicsLayer::EmbeddedViewID, RetainPtr<WKEmbeddedView>> m_embeddedViews; -
trunk/Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeHost.mm
r238108 r238468 76 76 77 77 bool rootLayerChanged = false; 78 LayerOrView *rootLayer = getLayer(transaction.rootLayerID());78 auto* rootNode = nodeForID(transaction.rootLayerID()); 79 79 80 if (!root Layer)80 if (!rootNode) 81 81 RELEASE_LOG_IF_ALLOWED("%p RemoteLayerTreeHost::updateLayerTree - failed to find root layer with ID %llu", this, transaction.rootLayerID()); 82 82 83 if (m_root Layer != rootLayer) {84 m_root Layer = rootLayer;83 if (m_rootNode != rootNode) { 84 m_rootNode = rootNode; 85 85 rootLayerChanged = true; 86 86 } … … 100 100 const RemoteLayerTreeTransaction::LayerProperties& properties = *changedLayer.value; 101 101 102 LayerOrView *layer = getLayer(layerID);103 ASSERT( layer);102 auto* node = nodeForID(layerID); 103 ASSERT(node); 104 104 105 105 RemoteLayerTreePropertyApplier::RelatedLayerMap relatedLayers; 106 106 if (properties.changedProperties & RemoteLayerTreeTransaction::ChildrenChanged) { 107 107 for (auto& child : properties.children) 108 relatedLayers.set(child, (__bridge CFTypeRef)getLayer(child));108 relatedLayers.set(child, nodeForID(child)); 109 109 } 110 110 111 111 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)); 113 113 114 114 if (properties.changedProperties & RemoteLayerTreeTransaction::ClonedContentsChanged && properties.clonedLayerID) … … 116 116 117 117 if (m_isDebugLayerTreeHost) { 118 RemoteLayerTreePropertyApplier::applyProperties( layer, this, properties, relatedLayers, layerContentsType);118 RemoteLayerTreePropertyApplier::applyProperties(*node, this, properties, relatedLayers, layerContentsType); 119 119 120 120 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; 123 123 } else 124 RemoteLayerTreePropertyApplier::applyProperties( layer, this, properties, relatedLayers, layerContentsType);124 RemoteLayerTreePropertyApplier::applyProperties(*node, this, properties, relatedLayers, layerContentsType); 125 125 } 126 126 127 127 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; 131 131 } 132 132 … … 137 137 // the backing store in the commit that reparents them. 138 138 for (auto& newlyUnreachableLayerID : transaction.layerIDsWithNewlyUnreachableBackingStore()) 139 asLayer(getLayer(newlyUnreachableLayerID)).contents = nullptr;139 layerForID(newlyUnreachableLayerID).contents = nullptr; 140 140 141 141 return rootLayerChanged; 142 142 } 143 143 144 LayerOrView *RemoteLayerTreeHost::getLayer(GraphicsLayer::PlatformLayerID layerID) const144 RemoteLayerTreeNode* RemoteLayerTreeHost::nodeForID(GraphicsLayer::PlatformLayerID layerID) const 145 145 { 146 146 if (!layerID) 147 return n il;148 149 return m_ layers.get(layerID).get();147 return nullptr; 148 149 return m_nodes.get(layerID); 150 150 } 151 151 … … 164 164 } 165 165 166 m_ layers.remove(layerID);166 m_nodes.remove(layerID); 167 167 } 168 168 … … 172 172 return; 173 173 174 CALayer *layer = asLayer(getLayer(layerID));174 CALayer *layer = layerForID(layerID); 175 175 if (!layer) 176 176 return; … … 193 193 return; 194 194 195 CALayer *layer = asLayer(getLayer(layerID));195 CALayer *layer = layerForID(layerID); 196 196 if (!layer) 197 197 return; … … 216 216 void RemoteLayerTreeHost::clearLayers() 217 217 { 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(); 228 224 m_embeddedViews.clear(); 229 225 m_layerToEmbeddedViewMap.clear(); 230 m_root Layer= nullptr;231 } 232 233 LayerOrView*RemoteLayerTreeHost::layerWithIDForTesting(uint64_t layerID) const234 { 235 return getLayer(layerID);226 m_rootNode = nullptr; 227 } 228 229 CALayer *RemoteLayerTreeHost::layerWithIDForTesting(uint64_t layerID) const 230 { 231 return layerForID(layerID); 236 232 } 237 233 … … 248 244 } 249 245 246 CALayer *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 254 CALayer *RemoteLayerTreeHost::rootLayer() const 255 { 256 if (!m_rootNode) 257 return nil; 258 return m_rootNode->layer(); 259 } 260 250 261 #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);262 void RemoteLayerTreeHost::createLayer(const RemoteLayerTreeTransaction::LayerCreationProperties& properties, const RemoteLayerTreeTransaction::LayerProperties*) 263 { 264 ASSERT(!m_nodes.contains(properties.layerID)); 265 266 RetainPtr<CALayer> layer; 256 267 257 268 switch (properties.type) { … … 298 309 setLayerID(layer.get(), properties.layerID); 299 310 300 return layer.get();311 m_nodes.add(properties.layerID, std::make_unique<RemoteLayerTreeNode>(WTFMove(layer))); 301 312 } 302 313 #endif … … 304 315 void RemoteLayerTreeHost::detachRootLayer() 305 316 { 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; 312 321 } 313 322 … … 329 338 { 330 339 #if HAVE(IOSURFACE) 331 recursivelyMapIOSurfaceBackingStore( asLayer(m_rootLayer));340 recursivelyMapIOSurfaceBackingStore(rootLayer()); 332 341 #endif 333 342 } -
trunk/Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeNode.h
r238467 r238468 1 1 /* 2 * Copyright (C) 201 4Apple Inc. All rights reserved.2 * Copyright (C) 2018 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 24 24 */ 25 25 26 #import "config.h" 27 #import "LayerRepresentation.h" 26 #pragma once 28 27 28 #include <wtf/RetainPtr.h> 29 30 OBJC_CLASS CALayer; 29 31 #if PLATFORM(IOS_FAMILY) 30 #import <UIKit/UIView.h> 31 CALayer *asLayer(LayerOrView *view) 32 { 33 return view.layer; 32 OBJC_CLASS UIView; 33 #endif 34 35 namespace WebKit { 36 37 class RemoteLayerTreeNode { 38 WTF_MAKE_FAST_ALLOCATED; 39 public: 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 54 private: 55 RetainPtr<CALayer> m_layer; 56 #if PLATFORM(IOS_FAMILY) 57 RetainPtr<UIView> m_uiView; 58 #endif 59 }; 60 34 61 } 35 #endif -
trunk/Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeNode.mm
r238467 r238468 1 1 /* 2 * Copyright (C) 201 4Apple Inc. All rights reserved.2 * Copyright (C) 2018 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 24 24 */ 25 25 26 #ifndef LayerRepresentation_h 27 #define LayerRepresentation_h 26 #include "config.h" 27 #include "RemoteLayerTreeNode.h" 28 29 namespace WebKit { 30 31 RemoteLayerTreeNode::RemoteLayerTreeNode(RetainPtr<CALayer> layer) 32 : m_layer(WTFMove(layer)) 33 { 34 } 28 35 29 36 #if PLATFORM(IOS_FAMILY) 37 RemoteLayerTreeNode::RemoteLayerTreeNode(RetainPtr<UIView> uiView) 38 : m_layer([uiView.get() layer]) 39 , m_uiView(WTFMove(uiView)) 40 { 41 } 42 #endif 30 43 31 OBJC_CLASS CALayer; 32 OBJC_CLASS UIView; 33 typedef UIView LayerOrView; 44 RemoteLayerTreeNode::~RemoteLayerTreeNode() = default; 34 45 35 CALayer *asLayer(LayerOrView *); 36 46 void RemoteLayerTreeNode::detachFromParent() 47 { 48 #if PLATFORM(IOS_FAMILY) 49 [uiView() removeFromSuperview]; 37 50 #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 45 53 } 46 54 47 #endif 48 49 #endif // LayerRepresentation_h 55 } -
trunk/Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeScrollingPerformanceData.mm
r235265 r238468 101 101 unsigned RemoteLayerTreeScrollingPerformanceData::blankPixelCount(const FloatRect& visibleRect) const 102 102 { 103 CALayer *rootLayer = asLayer(m_drawingArea.remoteLayerTreeHost().rootLayer());103 CALayer *rootLayer = m_drawingArea.remoteLayerTreeHost().rootLayer(); 104 104 105 105 CALayer *tileGridContainer = findTileGridContainerLayer(rootLayer); -
trunk/Source/WebKit/UIProcess/RemoteLayerTree/RemoteScrollingCoordinatorProxy.cpp
r237266 r238468 96 96 97 97 #if !PLATFORM(IOS_FAMILY) 98 98 99 void RemoteScrollingCoordinatorProxy::connectStateNodeLayers(ScrollingStateTree& stateTree, const RemoteLayerTreeHost& layerTreeHost) 99 100 { 100 101 for (auto& currNode : stateTree.nodeMap().values()) { 101 102 if (currNode->hasChangedProperty(ScrollingStateNode::ScrollLayer)) 102 currNode->setLayer(layerTreeHost. getLayer(currNode->layer()));103 currNode->setLayer(layerTreeHost.layerForID(currNode->layer())); 103 104 104 105 switch (currNode->nodeType()) { … … 108 109 109 110 if (scrollingStateNode.hasChangedProperty(ScrollingStateScrollingNode::ScrolledContentsLayer)) 110 scrollingStateNode.setScrolledContentsLayer(layerTreeHost. getLayer(scrollingStateNode.scrolledContentsLayer()));111 scrollingStateNode.setScrolledContentsLayer(layerTreeHost.layerForID(scrollingStateNode.scrolledContentsLayer())); 111 112 112 113 if (scrollingStateNode.hasChangedProperty(ScrollingStateFrameScrollingNode::CounterScrollingLayer)) 113 scrollingStateNode.setCounterScrollingLayer(layerTreeHost. getLayer(scrollingStateNode.counterScrollingLayer()));114 scrollingStateNode.setCounterScrollingLayer(layerTreeHost.layerForID(scrollingStateNode.counterScrollingLayer())); 114 115 115 116 if (scrollingStateNode.hasChangedProperty(ScrollingStateFrameScrollingNode::InsetClipLayer)) 116 scrollingStateNode.setInsetClipLayer(layerTreeHost. getLayer(scrollingStateNode.insetClipLayer()));117 scrollingStateNode.setInsetClipLayer(layerTreeHost.layerForID(scrollingStateNode.insetClipLayer())); 117 118 118 119 if (scrollingStateNode.hasChangedProperty(ScrollingStateFrameScrollingNode::ContentShadowLayer)) 119 scrollingStateNode.setContentShadowLayer(layerTreeHost. getLayer(scrollingStateNode.contentShadowLayer()));120 scrollingStateNode.setContentShadowLayer(layerTreeHost.layerForID(scrollingStateNode.contentShadowLayer())); 120 121 121 122 // FIXME: we should never have header and footer layers coming from the WebProcess. 122 123 if (scrollingStateNode.hasChangedProperty(ScrollingStateFrameScrollingNode::HeaderLayer)) 123 scrollingStateNode.setHeaderLayer(layerTreeHost. getLayer(scrollingStateNode.headerLayer()));124 scrollingStateNode.setHeaderLayer(layerTreeHost.layerForID(scrollingStateNode.headerLayer())); 124 125 125 126 if (scrollingStateNode.hasChangedProperty(ScrollingStateFrameScrollingNode::FooterLayer)) 126 scrollingStateNode.setFooterLayer(layerTreeHost. getLayer(scrollingStateNode.footerLayer()));127 scrollingStateNode.setFooterLayer(layerTreeHost.layerForID(scrollingStateNode.footerLayer())); 127 128 break; 128 129 } … … 131 132 132 133 if (scrollingStateNode.hasChangedProperty(ScrollingStateScrollingNode::ScrolledContentsLayer)) 133 scrollingStateNode.setScrolledContentsLayer(layerTreeHost. getLayer(scrollingStateNode.scrolledContentsLayer()));134 scrollingStateNode.setScrolledContentsLayer(layerTreeHost.layerForID(scrollingStateNode.scrolledContentsLayer())); 134 135 break; 135 136 } -
trunk/Source/WebKit/UIProcess/RemoteLayerTree/ios/RemoteLayerTreeHostIOS.mm
r238108 r238468 59 59 } 60 60 61 LayerOrView *RemoteLayerTreeHost::createLayer(const RemoteLayerTreeTransaction::LayerCreationProperties& properties, const RemoteLayerTreeTransaction::LayerProperties* layerProperties)61 void RemoteLayerTreeHost::createLayer(const RemoteLayerTreeTransaction::LayerCreationProperties& properties, const RemoteLayerTreeTransaction::LayerProperties* layerProperties) 62 62 { 63 RetainPtr<LayerOrView>& view = m_layers.add(properties.layerID, nullptr).iterator->value;63 ASSERT(!m_nodes.contains(properties.layerID)); 64 64 65 ASSERT(!view);65 RetainPtr<UIView> view; 66 66 67 67 switch (properties.type) { … … 118 118 setLayerID([view layer], properties.layerID); 119 119 120 return view.get();120 m_nodes.add(properties.layerID, std::make_unique<RemoteLayerTreeNode>(WTFMove(view))); 121 121 } 122 122 -
trunk/Source/WebKit/UIProcess/RemoteLayerTree/ios/RemoteScrollingCoordinatorProxyIOS.mm
r237266 r238468 30 30 #if ENABLE(ASYNC_SCROLLING) 31 31 32 #import "LayerRepresentation.h"33 32 #import "RemoteLayerTreeHost.h" 33 #import "RemoteLayerTreeNode.h" 34 34 #import "WebPageProxy.h" 35 35 #import <UIKit/UIView.h> … … 48 48 using namespace WebCore; 49 49 50 static LayerRepresentation layerRepresentationFromLayerOrView(LayerOrView *layerOrView)51 {52 return LayerRepresentation(layerOrView.layer);53 }54 55 50 void RemoteScrollingCoordinatorProxy::connectStateNodeLayers(ScrollingStateTree& stateTree, const RemoteLayerTreeHost& layerTreeHost) 56 51 { … … 61 56 62 57 if (scrollingStateNode.hasChangedProperty(ScrollingStateNode::ScrollLayer)) 63 scrollingStateNode.setLayer(layer RepresentationFromLayerOrView(layerTreeHost.getLayer(scrollingStateNode.layer())));58 scrollingStateNode.setLayer(layerTreeHost.layerForID(scrollingStateNode.layer())); 64 59 65 60 if (scrollingStateNode.hasChangedProperty(ScrollingStateScrollingNode::ScrolledContentsLayer)) 66 scrollingStateNode.setScrolledContentsLayer(layer RepresentationFromLayerOrView(layerTreeHost.getLayer(scrollingStateNode.scrolledContentsLayer())));61 scrollingStateNode.setScrolledContentsLayer(layerTreeHost.layerForID(scrollingStateNode.scrolledContentsLayer())); 67 62 break; 68 63 }; … … 72 67 73 68 if (scrollingStateNode.hasChangedProperty(ScrollingStateNode::ScrollLayer)) 74 scrollingStateNode.setLayer(layer RepresentationFromLayerOrView(layerTreeHost.getLayer(scrollingStateNode.layer())));69 scrollingStateNode.setLayer(layerTreeHost.layerForID(scrollingStateNode.layer())); 75 70 76 71 if (scrollingStateNode.hasChangedProperty(ScrollingStateFrameScrollingNode::CounterScrollingLayer)) 77 scrollingStateNode.setCounterScrollingLayer(layer RepresentationFromLayerOrView(layerTreeHost.getLayer(scrollingStateNode.counterScrollingLayer())));72 scrollingStateNode.setCounterScrollingLayer(layerTreeHost.layerForID(scrollingStateNode.counterScrollingLayer())); 78 73 79 74 // FIXME: we should never have header and footer layers coming from the WebProcess. 80 75 if (scrollingStateNode.hasChangedProperty(ScrollingStateFrameScrollingNode::HeaderLayer)) 81 scrollingStateNode.setHeaderLayer(layer RepresentationFromLayerOrView(layerTreeHost.getLayer(scrollingStateNode.headerLayer())));76 scrollingStateNode.setHeaderLayer(layerTreeHost.layerForID(scrollingStateNode.headerLayer())); 82 77 83 78 if (scrollingStateNode.hasChangedProperty(ScrollingStateFrameScrollingNode::FooterLayer)) 84 scrollingStateNode.setFooterLayer(layer RepresentationFromLayerOrView(layerTreeHost.getLayer(scrollingStateNode.footerLayer())));79 scrollingStateNode.setFooterLayer(layerTreeHost.layerForID(scrollingStateNode.footerLayer())); 85 80 break; 86 81 } … … 88 83 case StickyNode: 89 84 if (currNode->hasChangedProperty(ScrollingStateNode::ScrollLayer)) 90 currNode->setLayer(layer RepresentationFromLayerOrView(layerTreeHost.getLayer(currNode->layer())));85 currNode->setLayer(layerTreeHost.layerForID(currNode->layer())); 91 86 break; 92 87 } -
trunk/Source/WebKit/UIProcess/WebAuthentication/Cocoa/HidService.h
r238166 r238468 30 30 #include "AuthenticatorTransportService.h" 31 31 #include <IOKit/hid/IOHIDManager.h> 32 #include <wtf/RetainPtr.h> 32 33 #include <wtf/UniqueRef.h> 33 34 -
trunk/Source/WebKit/UIProcess/WebAuthentication/Cocoa/HidService.mm
r238166 r238468 36 36 #import <WebCore/FidoConstants.h> 37 37 #import <WebCore/FidoHidMessage.h> 38 #import <wtf/RunLoop.h> 38 39 39 40 namespace WebKit { -
trunk/Source/WebKit/UIProcess/WebPageProxy.h
r238438 r238468 113 113 #if PLATFORM(COCOA) 114 114 #include "DynamicViewportSizeUpdate.h" 115 #include " LayerRepresentation.h"115 #include "RemoteLayerTreeNode.h" 116 116 #include "TouchBarMenuData.h" 117 117 #include "TouchBarMenuItemData.h" … … 700 700 bool acceptsFirstMouse(int eventNumber, const WebMouseEvent&); 701 701 702 void set AcceleratedCompositingRootLayer(LayerOrView*);703 LayerOrView*acceleratedCompositingRootLayer() const;702 void setRemoteLayerTreeRootNode(RemoteLayerTreeNode*); 703 CALayer *acceleratedCompositingRootLayer() const; 704 704 705 705 void setTextAsync(const String&); -
trunk/Source/WebKit/UIProcess/ios/PageClientImplIOS.h
r238190 r238468 122 122 void exitAcceleratedCompositingMode() override; 123 123 void updateAcceleratedCompositingMode(const LayerTreeContext&) override; 124 void set AcceleratedCompositingRootLayer(LayerOrView*) override;125 LayerOrView *acceleratedCompositingRootLayer() const override;124 void setRemoteLayerTreeRootNode(RemoteLayerTreeNode*) override; 125 CALayer* acceleratedCompositingRootLayer() const override; 126 126 LayerHostingMode viewLayerHostingMode() override { return LayerHostingMode::OutOfProcess; } 127 127 -
trunk/Source/WebKit/UIProcess/ios/PageClientImplIOS.mm
r238190 r238468 496 496 } 497 497 498 void PageClientImpl::set AcceleratedCompositingRootLayer(LayerOrView *rootLayer)499 { 500 [m_contentView _setAcceleratedCompositingRootView:root Layer];501 } 502 503 LayerOrView*PageClientImpl::acceleratedCompositingRootLayer() const498 void PageClientImpl::setRemoteLayerTreeRootNode(RemoteLayerTreeNode* rootNode) 499 { 500 [m_contentView _setAcceleratedCompositingRootView:rootNode ? rootNode->uiView() : nil]; 501 } 502 503 CALayer *PageClientImpl::acceleratedCompositingRootLayer() const 504 504 { 505 505 notImplemented(); -
trunk/Source/WebKit/UIProcess/ios/WebPageProxyIOS.mm
r238078 r238468 992 992 } 993 993 994 void WebPageProxy::set AcceleratedCompositingRootLayer(LayerOrView* rootLayer)995 { 996 pageClient().set AcceleratedCompositingRootLayer(rootLayer);994 void WebPageProxy::setRemoteLayerTreeRootNode(RemoteLayerTreeNode* rootNode) 995 { 996 pageClient().setRemoteLayerTreeRootNode(rootNode); 997 997 m_frozenRemoteLayerTreeHost = nullptr; 998 998 } -
trunk/Source/WebKit/UIProcess/mac/PageClientImplMac.h
r238190 r238468 76 76 LayerHostingMode viewLayerHostingMode() override; 77 77 ColorSpaceData colorSpace() override; 78 void set AcceleratedCompositingRootLayer(LayerOrView*) override;79 LayerOrView*acceleratedCompositingRootLayer() const override;78 void setRemoteLayerTreeRootNode(RemoteLayerTreeNode*) override; 79 CALayer *acceleratedCompositingRootLayer() const override; 80 80 81 81 void processDidExit() override; -
trunk/Source/WebKit/UIProcess/mac/PageClientImplMac.mm
r238190 r238468 543 543 } 544 544 545 void PageClientImpl::set AcceleratedCompositingRootLayer(CALayer *rootLayer)546 { 547 m_impl->setAcceleratedCompositingRootLayer(root Layer);545 void PageClientImpl::setRemoteLayerTreeRootNode(RemoteLayerTreeNode* rootNode) 546 { 547 m_impl->setAcceleratedCompositingRootLayer(rootNode ? rootNode->layer() : nil); 548 548 } 549 549 -
trunk/Source/WebKit/UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.mm
r237480 r238468 144 144 return MachSendRight(); 145 145 146 RetainPtr<CAContext> rootLayerContext = [ asLayer(m_webPageProxy.acceleratedCompositingRootLayer()) context];146 RetainPtr<CAContext> rootLayerContext = [m_webPageProxy.acceleratedCompositingRootLayer() context]; 147 147 if (!rootLayerContext) 148 148 return MachSendRight(); -
trunk/Source/WebKit/UIProcess/mac/WebPageProxyMac.mm
r238184 r238468 456 456 } 457 457 458 void WebPageProxy::set AcceleratedCompositingRootLayer(LayerOrView* rootLayer)459 { 460 pageClient().set AcceleratedCompositingRootLayer(rootLayer);458 void WebPageProxy::setRemoteLayerTreeRootNode(RemoteLayerTreeNode* rootNode) 459 { 460 pageClient().setRemoteLayerTreeRootNode(rootNode); 461 461 m_frozenRemoteLayerTreeHost = nullptr; 462 462 } 463 463 464 LayerOrView*WebPageProxy::acceleratedCompositingRootLayer() const464 CALayer *WebPageProxy::acceleratedCompositingRootLayer() const 465 465 { 466 466 return pageClient().acceleratedCompositingRootLayer(); -
trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj
r238446 r238468 1598 1598 E489D28C1A0A2DB80078C06A /* NetworkCacheCoders.h in Headers */ = {isa = PBXBuildFile; fileRef = E489D2851A0A2DB80078C06A /* NetworkCacheCoders.h */; }; 1599 1599 E49D40D71AD3FB170066B7B9 /* NetworkCacheBlobStorage.h in Headers */ = {isa = PBXBuildFile; fileRef = E49D40D61AD3FB170066B7B9 /* NetworkCacheBlobStorage.h */; }; 1600 E4E57F6B21A83B1200345F3C /* RemoteLayerTreeNode.h in Headers */ = {isa = PBXBuildFile; fileRef = E4E57F6A21A83B1100345F3C /* RemoteLayerTreeNode.h */; }; 1600 1601 E4E864931B16750700C82F40 /* VersionChecks.h in Headers */ = {isa = PBXBuildFile; fileRef = E4E8648E1B1673FB00C82F40 /* VersionChecks.h */; }; 1601 1602 E52CF55220A35C3A00DADA27 /* WebDataListSuggestionPicker.h in Headers */ = {isa = PBXBuildFile; fileRef = E52CF55020A35C3A00DADA27 /* WebDataListSuggestionPicker.h */; }; … … 4464 4465 E49D40D61AD3FB170066B7B9 /* NetworkCacheBlobStorage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NetworkCacheBlobStorage.h; sourceTree = "<group>"; }; 4465 4466 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>"; }; 4466 4469 E4E8648E1B1673FB00C82F40 /* VersionChecks.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VersionChecks.h; sourceTree = "<group>"; }; 4467 4470 E4E8648F1B1673FB00C82F40 /* VersionChecks.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = VersionChecks.mm; sourceTree = "<group>"; }; … … 5494 5497 1AA3D75A1651B44F008713D0 /* RemoteLayerTreeHost.h */, 5495 5498 1AA3D7591651B44F008713D0 /* RemoteLayerTreeHost.mm */, 5499 E4E57F6A21A83B1100345F3C /* RemoteLayerTreeNode.h */, 5500 E4E57F6821A83B0300345F3C /* RemoteLayerTreeNode.mm */, 5496 5501 0F707C791A1FEEA300DA7A45 /* RemoteLayerTreeScrollingPerformanceData.h */, 5497 5502 0F707C771A1FEE8300DA7A45 /* RemoteLayerTreeScrollingPerformanceData.mm */, … … 8871 8876 7A8A9D581EF119B0009801AE /* APIInjectedBundleClient.h in Headers */, 8872 8877 377512311DF0DEE2008A351C /* APIInjectedBundleEditorClient.h in Headers */, 8878 E4E57F6B21A83B1200345F3C /* RemoteLayerTreeNode.h in Headers */, 8873 8879 3769079E18F340A2001DFF04 /* APIInjectedBundleFormClient.h in Headers */, 8874 8880 7A3ACE1B1EEEF79B00A864A4 /* APIInjectedBundlePageLoaderClient.h in Headers */, -
trunk/Source/WebKit/WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemote.cpp
r238108 r238468 175 175 176 176 if (isPlatformCALayerRemoteCustom()) { 177 RemoteLayerTreePropertyApplier::applyProperties (platformLayer(), nullptr, m_properties, RemoteLayerTreePropertyApplier::RelatedLayerMap(), RemoteLayerBackingStore::LayerContentsType::CAMachPort);177 RemoteLayerTreePropertyApplier::applyPropertiesToLayer(platformLayer(), nullptr, m_properties, RemoteLayerBackingStore::LayerContentsType::CAMachPort); 178 178 didCommit(); 179 179 return;
Note:
See TracChangeset
for help on using the changeset viewer.