<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[164890] trunk/Source/WebKit2</title>
</head>
<body>
<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; }
#msg dl a { font-weight: bold}
#msg dl a:link { color:#fc3; }
#msg dl a:active { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/164890">164890</a></dd>
<dt>Author</dt> <dd>simon.fraser@apple.com</dd>
<dt>Date</dt> <dd>2014-02-28 15:36:02 -0800 (Fri, 28 Feb 2014)</dd>
</dl>
<h3>Log Message</h3>
<pre>Make UIViews for compositing layers in the UI process on iOS
https://bugs.webkit.org/show_bug.cgi?id=129508
Reviewed by Sam Weinig.
In order to parent UIScrollViews for -webkit-overflow-scrolling:touch,
we need to use UIViews in the compositing layer hierarchy on iOS.
Make much of the code that currently uses CALayers layer-or-view
agnostic by using a typedef LayerOrView.
Fix RemoteLayerTreePropertyApplier to apply properties to UIViews
or CALayers; on iOS, we need both paths because we have to set properties
on CALayer for remotely hosted content.
Add iOS-specific implementation files for RemoteLayerTreeHost and RemoteScrollingCoordinatorProxy,
since these need to see the UIView implementation. WebVideoFullscreenManagerProxy.cpp also needs
to be come a .mm file.
* Shared/mac/RemoteLayerTreePropertyApplier.h:
* Shared/mac/RemoteLayerTreePropertyApplier.mm:
(-[UIView setSubviews:]):
(WebKit::applyPropertiesToLayer):
(WebKit::RemoteLayerTreePropertyApplier::applyProperties):
* UIProcess/Cocoa/LayerRepresentation.h: Copied from Source/WebKit2/Shared/mac/RemoteLayerTreePropertyApplier.h.
(asLayer):
* UIProcess/PageClient.h:
* UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.cpp:
* UIProcess/WebPageProxy.h:
* UIProcess/ios/LayerRepresentation.mm: Copied from Source/WebKit2/Shared/mac/RemoteLayerTreePropertyApplier.h.
(asLayer):
* UIProcess/ios/PageClientImplIOS.h:
* UIProcess/ios/PageClientImplIOS.mm:
(WebKit::PageClientImpl::setAcceleratedCompositingRootLayer):
(WebKit::PageClientImpl::acceleratedCompositingRootLayer):
* UIProcess/ios/RemoteLayerTreeHostIOS.mm: Added.
(+[WKTransformView layerClass]):
(-[WKRemoteView initWithFrame:contextID:]):
(+[WKRemoteView layerClass]):
(WebKit::RemoteLayerTreeHost::createLayer):
* UIProcess/ios/RemoteScrollingCoordinatorProxyIOS.mm: Added.
(WebKit::layerRepresentationFromLayerOrView):
(WebKit::RemoteScrollingCoordinatorProxy::connectStateNodeLayers):
* UIProcess/ios/WKContentView.h:
* UIProcess/ios/WKContentView.mm:
(-[WKContentView _setAcceleratedCompositingRootView:]):
* UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::setAcceleratedCompositingRootLayer):
* UIProcess/ios/WebVideoFullscreenManagerProxy.mm: Renamed from Source/WebKit2/UIProcess/ios/WebVideoFullscreenManagerProxy.cpp.
(WebKit::WebVideoFullscreenManagerProxy::create):
(WebKit::WebVideoFullscreenManagerProxy::WebVideoFullscreenManagerProxy):
(WebKit::WebVideoFullscreenManagerProxy::~WebVideoFullscreenManagerProxy):
(WebKit::WebVideoFullscreenManagerProxy::didCommitLayerTree):
(WebKit::WebVideoFullscreenManagerProxy::setVideoLayerID):
(WebKit::WebVideoFullscreenManagerProxy::enterFullscreen):
(WebKit::WebVideoFullscreenManagerProxy::requestExitFullScreen):
(WebKit::WebVideoFullscreenManagerProxy::play):
(WebKit::WebVideoFullscreenManagerProxy::pause):
(WebKit::WebVideoFullscreenManagerProxy::togglePlayState):
(WebKit::WebVideoFullscreenManagerProxy::seekToTime):
(WebKit::WebVideoFullscreenManagerProxy::didExitFullscreen):
* UIProcess/mac/PageClientImpl.h:
* UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm:
(WebKit::RemoteLayerTreeDrawingAreaProxy::commitLayerTree):
(WebKit::RemoteLayerTreeDrawingAreaProxy::updateDebugIndicator):
* UIProcess/mac/RemoteLayerTreeHost.h:
(WebKit::RemoteLayerTreeHost::rootLayer):
* UIProcess/mac/RemoteLayerTreeHost.mm:
(WebKit::RemoteLayerTreeHost::updateLayerTree):
(WebKit::RemoteLayerTreeHost::getLayer):
(WebKit::RemoteLayerTreeHost::createLayer):
* UIProcess/mac/WebPageProxyMac.mm:
(WebKit::WebPageProxy::setAcceleratedCompositingRootLayer):
(WebKit::WebPageProxy::acceleratedCompositingRootLayer):
* WebKit2.xcodeproj/project.pbxproj:
* WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:
(PlatformCALayerRemote::recursiveBuildTransaction):</pre>
<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceWebKit2ChangeLog">trunk/Source/WebKit2/ChangeLog</a></li>
<li><a href="#trunkSourceWebKit2SharedmacRemoteLayerTreePropertyApplierh">trunk/Source/WebKit2/Shared/mac/RemoteLayerTreePropertyApplier.h</a></li>
<li><a href="#trunkSourceWebKit2SharedmacRemoteLayerTreePropertyAppliermm">trunk/Source/WebKit2/Shared/mac/RemoteLayerTreePropertyApplier.mm</a></li>
<li><a href="#trunkSourceWebKit2UIProcessPageClienth">trunk/Source/WebKit2/UIProcess/PageClient.h</a></li>
<li><a href="#trunkSourceWebKit2UIProcessScrollingRemoteScrollingCoordinatorProxycpp">trunk/Source/WebKit2/UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.cpp</a></li>
<li><a href="#trunkSourceWebKit2UIProcessWebPageProxyh">trunk/Source/WebKit2/UIProcess/WebPageProxy.h</a></li>
<li><a href="#trunkSourceWebKit2UIProcessiosPageClientImplIOSh">trunk/Source/WebKit2/UIProcess/ios/PageClientImplIOS.h</a></li>
<li><a href="#trunkSourceWebKit2UIProcessiosPageClientImplIOSmm">trunk/Source/WebKit2/UIProcess/ios/PageClientImplIOS.mm</a></li>
<li><a href="#trunkSourceWebKit2UIProcessiosWKContentViewh">trunk/Source/WebKit2/UIProcess/ios/WKContentView.h</a></li>
<li><a href="#trunkSourceWebKit2UIProcessiosWKContentViewmm">trunk/Source/WebKit2/UIProcess/ios/WKContentView.mm</a></li>
<li><a href="#trunkSourceWebKit2UIProcessiosWebPageProxyIOSmm">trunk/Source/WebKit2/UIProcess/ios/WebPageProxyIOS.mm</a></li>
<li><a href="#trunkSourceWebKit2UIProcessmacPageClientImplh">trunk/Source/WebKit2/UIProcess/mac/PageClientImpl.h</a></li>
<li><a href="#trunkSourceWebKit2UIProcessmacRemoteLayerTreeDrawingAreaProxymm">trunk/Source/WebKit2/UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm</a></li>
<li><a href="#trunkSourceWebKit2UIProcessmacRemoteLayerTreeHosth">trunk/Source/WebKit2/UIProcess/mac/RemoteLayerTreeHost.h</a></li>
<li><a href="#trunkSourceWebKit2UIProcessmacRemoteLayerTreeHostmm">trunk/Source/WebKit2/UIProcess/mac/RemoteLayerTreeHost.mm</a></li>
<li><a href="#trunkSourceWebKit2UIProcessmacWebPageProxyMacmm">trunk/Source/WebKit2/UIProcess/mac/WebPageProxyMac.mm</a></li>
<li><a href="#trunkSourceWebKit2WebKit2xcodeprojprojectpbxproj">trunk/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj</a></li>
<li><a href="#trunkSourceWebKit2WebProcessWebPagemacPlatformCALayerRemotecpp">trunk/Source/WebKit2/WebProcess/WebPage/mac/PlatformCALayerRemote.cpp</a></li>
</ul>
<h3>Added Paths</h3>
<ul>
<li><a href="#trunkSourceWebKit2UIProcessCocoaLayerRepresentationh">trunk/Source/WebKit2/UIProcess/Cocoa/LayerRepresentation.h</a></li>
<li><a href="#trunkSourceWebKit2UIProcessiosLayerRepresentationmm">trunk/Source/WebKit2/UIProcess/ios/LayerRepresentation.mm</a></li>
<li><a href="#trunkSourceWebKit2UIProcessiosRemoteLayerTreeHostIOSmm">trunk/Source/WebKit2/UIProcess/ios/RemoteLayerTreeHostIOS.mm</a></li>
<li><a href="#trunkSourceWebKit2UIProcessiosRemoteScrollingCoordinatorProxyIOSmm">trunk/Source/WebKit2/UIProcess/ios/RemoteScrollingCoordinatorProxyIOS.mm</a></li>
<li><a href="#trunkSourceWebKit2UIProcessiosWebVideoFullscreenManagerProxymm">trunk/Source/WebKit2/UIProcess/ios/WebVideoFullscreenManagerProxy.mm</a></li>
</ul>
<h3>Removed Paths</h3>
<ul>
<li><a href="#trunkSourceWebKit2UIProcessiosWebVideoFullscreenManagerProxycpp">trunk/Source/WebKit2/UIProcess/ios/WebVideoFullscreenManagerProxy.cpp</a></li>
</ul>
</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceWebKit2ChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/ChangeLog (164889 => 164890)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/ChangeLog        2014-02-28 23:11:22 UTC (rev 164889)
+++ trunk/Source/WebKit2/ChangeLog        2014-02-28 23:36:02 UTC (rev 164890)
</span><span class="lines">@@ -1,3 +1,83 @@
</span><ins>+2014-02-28 Simon Fraser <simon.fraser@apple.com>
+
+ Make UIViews for compositing layers in the UI process on iOS
+ https://bugs.webkit.org/show_bug.cgi?id=129508
+
+ Reviewed by Sam Weinig.
+
+ In order to parent UIScrollViews for -webkit-overflow-scrolling:touch,
+ we need to use UIViews in the compositing layer hierarchy on iOS.
+
+ Make much of the code that currently uses CALayers layer-or-view
+ agnostic by using a typedef LayerOrView.
+
+ Fix RemoteLayerTreePropertyApplier to apply properties to UIViews
+ or CALayers; on iOS, we need both paths because we have to set properties
+ on CALayer for remotely hosted content.
+
+ Add iOS-specific implementation files for RemoteLayerTreeHost and RemoteScrollingCoordinatorProxy,
+ since these need to see the UIView implementation. WebVideoFullscreenManagerProxy.cpp also needs
+ to be come a .mm file.
+
+ * Shared/mac/RemoteLayerTreePropertyApplier.h:
+ * Shared/mac/RemoteLayerTreePropertyApplier.mm:
+ (-[UIView setSubviews:]):
+ (WebKit::applyPropertiesToLayer):
+ (WebKit::RemoteLayerTreePropertyApplier::applyProperties):
+ * UIProcess/Cocoa/LayerRepresentation.h: Copied from Source/WebKit2/Shared/mac/RemoteLayerTreePropertyApplier.h.
+ (asLayer):
+ * UIProcess/PageClient.h:
+ * UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.cpp:
+ * UIProcess/WebPageProxy.h:
+ * UIProcess/ios/LayerRepresentation.mm: Copied from Source/WebKit2/Shared/mac/RemoteLayerTreePropertyApplier.h.
+ (asLayer):
+ * UIProcess/ios/PageClientImplIOS.h:
+ * UIProcess/ios/PageClientImplIOS.mm:
+ (WebKit::PageClientImpl::setAcceleratedCompositingRootLayer):
+ (WebKit::PageClientImpl::acceleratedCompositingRootLayer):
+ * UIProcess/ios/RemoteLayerTreeHostIOS.mm: Added.
+ (+[WKTransformView layerClass]):
+ (-[WKRemoteView initWithFrame:contextID:]):
+ (+[WKRemoteView layerClass]):
+ (WebKit::RemoteLayerTreeHost::createLayer):
+ * UIProcess/ios/RemoteScrollingCoordinatorProxyIOS.mm: Added.
+ (WebKit::layerRepresentationFromLayerOrView):
+ (WebKit::RemoteScrollingCoordinatorProxy::connectStateNodeLayers):
+ * UIProcess/ios/WKContentView.h:
+ * UIProcess/ios/WKContentView.mm:
+ (-[WKContentView _setAcceleratedCompositingRootView:]):
+ * UIProcess/ios/WebPageProxyIOS.mm:
+ (WebKit::WebPageProxy::setAcceleratedCompositingRootLayer):
+ * UIProcess/ios/WebVideoFullscreenManagerProxy.mm: Renamed from Source/WebKit2/UIProcess/ios/WebVideoFullscreenManagerProxy.cpp.
+ (WebKit::WebVideoFullscreenManagerProxy::create):
+ (WebKit::WebVideoFullscreenManagerProxy::WebVideoFullscreenManagerProxy):
+ (WebKit::WebVideoFullscreenManagerProxy::~WebVideoFullscreenManagerProxy):
+ (WebKit::WebVideoFullscreenManagerProxy::didCommitLayerTree):
+ (WebKit::WebVideoFullscreenManagerProxy::setVideoLayerID):
+ (WebKit::WebVideoFullscreenManagerProxy::enterFullscreen):
+ (WebKit::WebVideoFullscreenManagerProxy::requestExitFullScreen):
+ (WebKit::WebVideoFullscreenManagerProxy::play):
+ (WebKit::WebVideoFullscreenManagerProxy::pause):
+ (WebKit::WebVideoFullscreenManagerProxy::togglePlayState):
+ (WebKit::WebVideoFullscreenManagerProxy::seekToTime):
+ (WebKit::WebVideoFullscreenManagerProxy::didExitFullscreen):
+ * UIProcess/mac/PageClientImpl.h:
+ * UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm:
+ (WebKit::RemoteLayerTreeDrawingAreaProxy::commitLayerTree):
+ (WebKit::RemoteLayerTreeDrawingAreaProxy::updateDebugIndicator):
+ * UIProcess/mac/RemoteLayerTreeHost.h:
+ (WebKit::RemoteLayerTreeHost::rootLayer):
+ * UIProcess/mac/RemoteLayerTreeHost.mm:
+ (WebKit::RemoteLayerTreeHost::updateLayerTree):
+ (WebKit::RemoteLayerTreeHost::getLayer):
+ (WebKit::RemoteLayerTreeHost::createLayer):
+ * UIProcess/mac/WebPageProxyMac.mm:
+ (WebKit::WebPageProxy::setAcceleratedCompositingRootLayer):
+ (WebKit::WebPageProxy::acceleratedCompositingRootLayer):
+ * WebKit2.xcodeproj/project.pbxproj:
+ * WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:
+ (PlatformCALayerRemote::recursiveBuildTransaction):
+
</ins><span class="cx"> 2014-02-28 Anders Carlsson <andersca@apple.com>
</span><span class="cx">
</span><span class="cx"> WebKit2.TerminateTwice test is failing.
</span></span></pre></div>
<a id="trunkSourceWebKit2SharedmacRemoteLayerTreePropertyApplierh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/Shared/mac/RemoteLayerTreePropertyApplier.h (164889 => 164890)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/Shared/mac/RemoteLayerTreePropertyApplier.h        2014-02-28 23:11:22 UTC (rev 164889)
+++ trunk/Source/WebKit2/Shared/mac/RemoteLayerTreePropertyApplier.h        2014-02-28 23:36:02 UTC (rev 164890)
</span><span class="lines">@@ -26,6 +26,7 @@
</span><span class="cx"> #ifndef RemoteLayerTreePropertyApplier_h
</span><span class="cx"> #define RemoteLayerTreePropertyApplier_h
</span><span class="cx">
</span><ins>+#include "LayerRepresentation.h"
</ins><span class="cx"> #include "RemoteLayerTreeTransaction.h"
</span><span class="cx"> #include <wtf/HashMap.h>
</span><span class="cx">
</span><span class="lines">@@ -33,8 +34,11 @@
</span><span class="cx">
</span><span class="cx"> class RemoteLayerTreePropertyApplier {
</span><span class="cx"> public:
</span><del>- typedef HashMap<WebCore::GraphicsLayer::PlatformLayerID, CALayer *> RelatedLayerMap;
- static void applyPropertiesToLayer(CALayer *, const RemoteLayerTreeTransaction::LayerProperties&, const RelatedLayerMap&);
</del><ins>+ typedef HashMap<WebCore::GraphicsLayer::PlatformLayerID, LayerOrView *> RelatedLayerMap;
+ static void applyProperties(CALayer *, const RemoteLayerTreeTransaction::LayerProperties&, const RelatedLayerMap&);
+#if PLATFORM(IOS)
+ static void applyProperties(UIView *, const RemoteLayerTreeTransaction::LayerProperties&, const RelatedLayerMap&);
+#endif
</ins><span class="cx"> };
</span><span class="cx">
</span><span class="cx"> } // namespace WebKit
</span></span></pre></div>
<a id="trunkSourceWebKit2SharedmacRemoteLayerTreePropertyAppliermm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/Shared/mac/RemoteLayerTreePropertyApplier.mm (164889 => 164890)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/Shared/mac/RemoteLayerTreePropertyApplier.mm        2014-02-28 23:11:22 UTC (rev 164889)
+++ trunk/Source/WebKit2/Shared/mac/RemoteLayerTreePropertyApplier.mm        2014-02-28 23:36:02 UTC (rev 164890)
</span><span class="lines">@@ -30,9 +30,31 @@
</span><span class="cx"> #import <QuartzCore/CALayer.h>
</span><span class="cx"> #import <WebCore/PlatformCAFilters.h>
</span><span class="cx"> #import <WebCore/ScrollbarThemeMac.h>
</span><ins>+#if PLATFORM(IOS)
+#import <UIKit/UIView.h>
+#endif
</ins><span class="cx">
</span><span class="cx"> using namespace WebCore;
</span><span class="cx">
</span><ins>+#if PLATFORM(IOS)
+@interface UIView (WKUIViewUtilities)
+- (void)_web_setSubviews:(NSArray *)subviews;
+@end
+
+@implementation UIView (WKUIViewUtilities)
+
+- (void)_web_setSubviews:(NSArray *)subviews
+{
+ for (UIView* subview in self.subviews)
+ [subview removeFromSuperview];
+
+ for (UIView* view in subviews)
+ [self addSubview:view];
+}
+
+@end
+#endif
+
</ins><span class="cx"> namespace WebKit {
</span><span class="cx">
</span><span class="cx"> static RetainPtr<CGColorRef> cgColorFromColor(Color color)
</span><span class="lines">@@ -79,7 +101,7 @@
</span><span class="cx"> #endif
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void RemoteLayerTreePropertyApplier::applyPropertiesToLayer(CALayer *layer, const RemoteLayerTreeTransaction::LayerProperties& properties, const RelatedLayerMap& relatedLayers)
</del><ins>+static void applyPropertiesToLayer(CALayer *layer, const RemoteLayerTreeTransaction::LayerProperties& properties)
</ins><span class="cx"> {
</span><span class="cx"> if (properties.changedProperties & RemoteLayerTreeTransaction::NameChanged)
</span><span class="cx"> layer.name = properties.name;
</span><span class="lines">@@ -100,13 +122,6 @@
</span><span class="cx"> if (properties.changedProperties & RemoteLayerTreeTransaction::BackgroundColorChanged)
</span><span class="cx"> layer.backgroundColor = cgColorFromColor(properties.backgroundColor).get();
</span><span class="cx">
</span><del>- if (properties.changedProperties & RemoteLayerTreeTransaction::ChildrenChanged) {
- RetainPtr<NSMutableArray> children = adoptNS([[NSMutableArray alloc] initWithCapacity:properties.children.size()]);
- for (auto& child : properties.children)
- [children addObject:relatedLayers.get(child)];
- layer.sublayers = children.get();
- }
-
</del><span class="cx"> if (properties.changedProperties & RemoteLayerTreeTransaction::BorderColorChanged)
</span><span class="cx"> layer.borderColor = cgColorFromColor(properties.borderColor).get();
</span><span class="cx">
</span><span class="lines">@@ -137,17 +152,6 @@
</span><span class="cx"> if (properties.changedProperties & RemoteLayerTreeTransaction::OpaqueChanged)
</span><span class="cx"> layer.opaque = properties.opaque;
</span><span class="cx">
</span><del>- if (properties.changedProperties & RemoteLayerTreeTransaction::MaskLayerChanged) {
- if (!properties.maskLayerID)
- layer.mask = nullptr;
- else {
- CALayer *maskLayer = relatedLayers.get(properties.maskLayerID);
- ASSERT(!maskLayer.superlayer);
- if (!maskLayer.superlayer)
- layer.mask = maskLayer;
- }
- }
-
</del><span class="cx"> if (properties.changedProperties & RemoteLayerTreeTransaction::ContentsRectChanged)
</span><span class="cx"> layer.contentsRect = properties.contentsRect;
</span><span class="cx">
</span><span class="lines">@@ -191,4 +195,63 @@
</span><span class="cx"> updateCustomAppearance(layer, properties.customAppearance);
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+void RemoteLayerTreePropertyApplier::applyProperties(CALayer *layer, const RemoteLayerTreeTransaction::LayerProperties& properties, const RelatedLayerMap& relatedLayers)
+{
+ applyPropertiesToLayer(layer, properties);
+
+ if (properties.changedProperties & RemoteLayerTreeTransaction::ChildrenChanged) {
+ RetainPtr<NSMutableArray> children = adoptNS([[NSMutableArray alloc] initWithCapacity:properties.children.size()]);
+ for (auto& child : properties.children)
+ [children addObject:relatedLayers.get(child)];
+
+ layer.sublayers = children.get();
+ }
+
+ if (properties.changedProperties & RemoteLayerTreeTransaction::MaskLayerChanged) {
+ if (!properties.maskLayerID)
+ layer.mask = nullptr;
+ else {
+#if PLATFORM(IOS)
+ UIView *maskView = relatedLayers.get(properties.maskLayerID);
+ // FIXME: need to check that the mask view is kept alive.
+ ASSERT(!maskView.layer.superlayer);
+ if (!maskView.layer.superlayer)
+ layer.mask = maskView.layer;
+#else
+ CALayer *maskLayer = relatedLayers.get(properties.maskLayerID);
+ ASSERT(!maskLayer.superlayer);
+ if (!maskLayer.superlayer)
+ layer.mask = maskLayer;
+#endif
+ }
+ }
+}
+
+#if PLATFORM(IOS)
+void RemoteLayerTreePropertyApplier::applyProperties(UIView *view, const RemoteLayerTreeTransaction::LayerProperties& properties, const RelatedLayerMap& relatedLayers)
+{
+ applyPropertiesToLayer(view.layer, properties);
+
+ if (properties.changedProperties & RemoteLayerTreeTransaction::ChildrenChanged) {
+ RetainPtr<NSMutableArray> children = adoptNS([[NSMutableArray alloc] initWithCapacity:properties.children.size()]);
+ for (auto& child : properties.children)
+ [children addObject:relatedLayers.get(child)];
+
+ [view _web_setSubviews:children.get()];
+ }
+
+ if (properties.changedProperties & RemoteLayerTreeTransaction::MaskLayerChanged) {
+ if (!properties.maskLayerID)
+ view.layer.mask = nullptr;
+ else {
+ UIView *maskView = relatedLayers.get(properties.maskLayerID);
+ // FIXME: need to check that the mask view is kept alive.
+ ASSERT(!maskView.layer.superlayer);
+ if (!maskView.layer.superlayer)
+ maskView.layer.mask = maskView.layer;
+ }
+ }
+}
+#endif
+
</ins><span class="cx"> } // namespace WebKit
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessCocoaLayerRepresentationhfromrev164889trunkSourceWebKit2SharedmacRemoteLayerTreePropertyApplierh"></a>
<div class="copfile"><h4>Copied: trunk/Source/WebKit2/UIProcess/Cocoa/LayerRepresentation.h (from rev 164889, trunk/Source/WebKit2/Shared/mac/RemoteLayerTreePropertyApplier.h) (0 => 164890)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/Cocoa/LayerRepresentation.h         (rev 0)
+++ trunk/Source/WebKit2/UIProcess/Cocoa/LayerRepresentation.h        2014-02-28 23:36:02 UTC (rev 164890)
</span><span class="lines">@@ -0,0 +1,49 @@
</span><ins>+/*
+ * Copyright (C) 2014 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef LayerRepresentation_h
+#define LayerRepresentation_h
+
+#if PLATFORM(IOS)
+
+OBJC_CLASS CALayer;
+OBJC_CLASS UIView;
+typedef UIView LayerOrView;
+
+CALayer *asLayer(LayerOrView *);
+
+#else
+
+OBJC_CLASS CALayer;
+typedef CALayer LayerOrView;
+
+inline CALayer *asLayer(LayerOrView *layer)
+{
+ return layer;
+}
+
+#endif
+
+#endif // LayerRepresentation_h
</ins></span></pre></div>
<a id="trunkSourceWebKit2UIProcessPageClienth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/PageClient.h (164889 => 164890)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/PageClient.h        2014-02-28 23:11:22 UTC (rev 164889)
+++ trunk/Source/WebKit2/UIProcess/PageClient.h        2014-02-28 23:36:02 UTC (rev 164890)
</span><span class="lines">@@ -175,8 +175,8 @@
</span><span class="cx"> virtual void resetSecureInputState() = 0;
</span><span class="cx"> virtual void notifyInputContextAboutDiscardedComposition() = 0;
</span><span class="cx"> virtual void makeFirstResponder() = 0;
</span><del>- virtual void setAcceleratedCompositingRootLayer(CALayer *) = 0;
- virtual CALayer *acceleratedCompositingRootLayer() const = 0;
</del><ins>+ virtual void setAcceleratedCompositingRootLayer(LayerOrView *) = 0;
+ virtual LayerOrView *acceleratedCompositingRootLayer() const = 0;
</ins><span class="cx"> virtual RetainPtr<CGImageRef> takeViewSnapshot() = 0;
</span><span class="cx"> virtual void wheelEventWasNotHandledByWebCore(const NativeWebWheelEvent&) = 0;
</span><span class="cx"> virtual void clearCustomSwipeViews() = 0;
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessScrollingRemoteScrollingCoordinatorProxycpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.cpp (164889 => 164890)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.cpp        2014-02-28 23:11:22 UTC (rev 164889)
+++ trunk/Source/WebKit2/UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.cpp        2014-02-28 23:36:02 UTC (rev 164890)
</span><span class="lines">@@ -89,10 +89,10 @@
</span><span class="cx"> m_scrollingTree->commitNewTreeState(stateTree.release());
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+#if !PLATFORM(IOS)
</ins><span class="cx"> void RemoteScrollingCoordinatorProxy::connectStateNodeLayers(ScrollingStateTree& stateTree, const RemoteLayerTreeHost& layerTreeHost)
</span><span class="cx"> {
</span><del>- for (auto& it : stateTree.nodeMap()) {
- ScrollingStateNode* currNode = it.value;
</del><ins>+ for (auto& currNode : stateTree.nodeMap().values()) {
</ins><span class="cx"> switch (currNode->nodeType()) {
</span><span class="cx"> case ScrollingNode: {
</span><span class="cx"> ScrollingStateScrollingNode* scrollingStateNode = toScrollingStateScrollingNode(currNode);
</span><span class="lines">@@ -125,6 +125,7 @@
</span><span class="cx"> }
</span><span class="cx"> }
</span><span class="cx"> }
</span><ins>+#endif
</ins><span class="cx">
</span><span class="cx"> bool RemoteScrollingCoordinatorProxy::handleWheelEvent(const PlatformWheelEvent& event)
</span><span class="cx"> {
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessWebPageProxyh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/WebPageProxy.h (164889 => 164890)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/WebPageProxy.h        2014-02-28 23:11:22 UTC (rev 164889)
+++ trunk/Source/WebKit2/UIProcess/WebPageProxy.h        2014-02-28 23:36:02 UTC (rev 164890)
</span><span class="lines">@@ -37,6 +37,7 @@
</span><span class="cx"> #include "EditorState.h"
</span><span class="cx"> #include "GeolocationPermissionRequestManagerProxy.h"
</span><span class="cx"> #include "InteractionInformationAtPosition.h"
</span><ins>+#include "LayerRepresentation.h"
</ins><span class="cx"> #include "LayerTreeContext.h"
</span><span class="cx"> #include "MessageSender.h"
</span><span class="cx"> #include "NotificationPermissionRequestManagerProxy.h"
</span><span class="lines">@@ -94,10 +95,6 @@
</span><span class="cx"> #include <Evas.h>
</span><span class="cx"> #endif
</span><span class="cx">
</span><del>-#if PLATFORM(COCOA)
-#include <WebCore/PlatformLayer.h>
-#endif
-
</del><span class="cx"> namespace API {
</span><span class="cx"> class LoaderClient;
</span><span class="cx"> class PolicyClient;
</span><span class="lines">@@ -527,8 +524,8 @@
</span><span class="cx"> bool shouldDelayWindowOrderingForEvent(const WebMouseEvent&);
</span><span class="cx"> bool acceptsFirstMouse(int eventNumber, const WebMouseEvent&);
</span><span class="cx">
</span><del>- void setAcceleratedCompositingRootLayer(PlatformLayer* rootLayer);
- PlatformLayer* acceleratedCompositingRootLayer() const;
</del><ins>+ void setAcceleratedCompositingRootLayer(LayerOrView*);
+ LayerOrView* acceleratedCompositingRootLayer() const;
</ins><span class="cx">
</span><span class="cx"> #if USE(APPKIT)
</span><span class="cx"> WKView* wkView() const;
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessiosLayerRepresentationmmfromrev164889trunkSourceWebKit2SharedmacRemoteLayerTreePropertyApplierh"></a>
<div class="copfile"><h4>Copied: trunk/Source/WebKit2/UIProcess/ios/LayerRepresentation.mm (from rev 164889, trunk/Source/WebKit2/Shared/mac/RemoteLayerTreePropertyApplier.h) (0 => 164890)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/ios/LayerRepresentation.mm         (rev 0)
+++ trunk/Source/WebKit2/UIProcess/ios/LayerRepresentation.mm        2014-02-28 23:36:02 UTC (rev 164890)
</span><span class="lines">@@ -0,0 +1,35 @@
</span><ins>+/*
+ * Copyright (C) 2014 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#import "config.h"
+#import "LayerRepresentation.h"
+
+#if PLATFORM(IOS)
+#import <UIKit/UIView.h>
+CALayer *asLayer(LayerOrView *view)
+{
+ return view.layer;
+}
+#endif
</ins></span></pre></div>
<a id="trunkSourceWebKit2UIProcessiosPageClientImplIOSh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/ios/PageClientImplIOS.h (164889 => 164890)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/ios/PageClientImplIOS.h        2014-02-28 23:11:22 UTC (rev 164889)
+++ trunk/Source/WebKit2/UIProcess/ios/PageClientImplIOS.h        2014-02-28 23:36:02 UTC (rev 164890)
</span><span class="lines">@@ -94,8 +94,8 @@
</span><span class="cx"> virtual void enterAcceleratedCompositingMode(const LayerTreeContext&) override;
</span><span class="cx"> virtual void exitAcceleratedCompositingMode() override;
</span><span class="cx"> virtual void updateAcceleratedCompositingMode(const LayerTreeContext&) override;
</span><del>- virtual void setAcceleratedCompositingRootLayer(CALayer *) override;
- virtual CALayer *acceleratedCompositingRootLayer() const override;
</del><ins>+ virtual void setAcceleratedCompositingRootLayer(LayerOrView *) override;
+ virtual LayerOrView *acceleratedCompositingRootLayer() const override;
</ins><span class="cx"> virtual LayerHostingMode viewLayerHostingMode() override { return LayerHostingMode::OutOfProcess; }
</span><span class="cx">
</span><span class="cx"> virtual RetainPtr<CGImageRef> takeViewSnapshot() override;
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessiosPageClientImplIOSmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/ios/PageClientImplIOS.mm (164889 => 164890)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/ios/PageClientImplIOS.mm        2014-02-28 23:11:22 UTC (rev 164889)
+++ trunk/Source/WebKit2/UIProcess/ios/PageClientImplIOS.mm        2014-02-28 23:36:02 UTC (rev 164890)
</span><span class="lines">@@ -313,12 +313,12 @@
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void PageClientImpl::setAcceleratedCompositingRootLayer(CALayer *rootLayer)
</del><ins>+void PageClientImpl::setAcceleratedCompositingRootLayer(LayerOrView *rootLayer)
</ins><span class="cx"> {
</span><del>- [m_contentView _setAcceleratedCompositingRootLayer:rootLayer];
</del><ins>+ [m_contentView _setAcceleratedCompositingRootView:rootLayer];
</ins><span class="cx"> }
</span><span class="cx">
</span><del>-CALayer *PageClientImpl::acceleratedCompositingRootLayer() const
</del><ins>+LayerOrView *PageClientImpl::acceleratedCompositingRootLayer() const
</ins><span class="cx"> {
</span><span class="cx"> notImplemented();
</span><span class="cx"> return nullptr;
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessiosRemoteLayerTreeHostIOSmm"></a>
<div class="addfile"><h4>Added: trunk/Source/WebKit2/UIProcess/ios/RemoteLayerTreeHostIOS.mm (0 => 164890)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/ios/RemoteLayerTreeHostIOS.mm         (rev 0)
+++ trunk/Source/WebKit2/UIProcess/ios/RemoteLayerTreeHostIOS.mm        2014-02-28 23:36:02 UTC (rev 164890)
</span><span class="lines">@@ -0,0 +1,116 @@
</span><ins>+/*
+ * Copyright (C) 2014 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#import "config.h"
+
+#if PLATFORM(IOS)
+
+#import "RemoteLayerTreeHost.h"
+
+#import <WebCore/WebCoreCALayerExtras.h>
+#import <WebKitSystemInterface.h>
+
+#import <UIKit/UIView.h>
+#import <QuartzCore/QuartzCore.h>
+
+using namespace WebCore;
+
+@interface UIView(WKViewInternals)
+- (void)_createLayerWithFrame:(CGRect)frame;
+@end
+
+@interface CALayer(WKLayerInternal)
+- (void)setContextId:(uint32_t)contextID;
+@end
+
+@interface WKTransformView : UIView
+@end
+
+@implementation WKTransformView
++ (Class)layerClass
+{
+ return [CATransformLayer self];
+}
+@end
+
+@interface WKRemoteView : UIView
+@end
+
+@implementation WKRemoteView
+- (instancetype)initWithFrame:(CGRect)frame contextID:(uint32_t)contextID
+{
+ if ((self = [super initWithFrame:frame])) {
+ [[self layer] setContextId:contextID];
+ }
+
+ return self;
+}
+
++ (Class)layerClass
+{
+ return NSClassFromString(@"CALayerHost");
+}
+@end
+
+namespace WebKit {
+
+LayerOrView *RemoteLayerTreeHost::createLayer(const RemoteLayerTreeTransaction::LayerCreationProperties& properties)
+{
+ RetainPtr<LayerOrView>& layerOrView = m_layers.add(properties.layerID, nullptr).iterator->value;
+
+ ASSERT(!layerOrView);
+
+ switch (properties.type) {
+ case PlatformCALayer::LayerTypeLayer:
+ case PlatformCALayer::LayerTypeWebLayer:
+ case PlatformCALayer::LayerTypeRootLayer:
+ case PlatformCALayer::LayerTypeSimpleLayer:
+ case PlatformCALayer::LayerTypeTiledBackingLayer:
+ case PlatformCALayer::LayerTypePageTiledBackingLayer:
+ case PlatformCALayer::LayerTypeTiledBackingTileLayer:
+ layerOrView = adoptNS([[UIView alloc] initWithFrame:CGRectZero]);
+ break;
+ case PlatformCALayer::LayerTypeTransformLayer:
+ layerOrView = adoptNS([[WKTransformView alloc] initWithFrame:CGRectZero]);
+ break;
+ case PlatformCALayer::LayerTypeCustom:
+ if (!m_isDebugLayerTreeHost)
+ layerOrView = adoptNS([[WKRemoteView alloc] initWithFrame:CGRectZero contextID:properties.hostingContextID]);
+ else
+ layerOrView = adoptNS([[UIView alloc] init]);
+ break;
+ default:
+ ASSERT_NOT_REACHED();
+ }
+
+ // FIXME: Do through the view.
+ [[layerOrView layer] web_disableAllActions];
+
+ return layerOrView.get();
+}
+
+} // namespace WebKit
+
+#endif // PLATFORM(IOS)
</ins></span></pre></div>
<a id="trunkSourceWebKit2UIProcessiosRemoteScrollingCoordinatorProxyIOSmm"></a>
<div class="addfile"><h4>Added: trunk/Source/WebKit2/UIProcess/ios/RemoteScrollingCoordinatorProxyIOS.mm (0 => 164890)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/ios/RemoteScrollingCoordinatorProxyIOS.mm         (rev 0)
+++ trunk/Source/WebKit2/UIProcess/ios/RemoteScrollingCoordinatorProxyIOS.mm        2014-02-28 23:36:02 UTC (rev 164890)
</span><span class="lines">@@ -0,0 +1,86 @@
</span><ins>+/*
+ * Copyright (C) 2014 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "config.h"
+#include "RemoteScrollingCoordinatorProxy.h"
+
+#if PLATFORM(IOS)
+#if ENABLE(ASYNC_SCROLLING)
+
+#include "LayerRepresentation.h"
+#include "RemoteLayerTreeHost.h"
+#include <WebCore/ScrollingStateTree.h>
+#include <UIKit/UIView.h>
+
+using namespace WebCore;
+
+namespace WebKit {
+
+static LayerRepresentation layerRepresentationFromLayerOrView(LayerOrView *layerOrView)
+{
+ return LayerRepresentation(layerOrView.layer);
+}
+
+void RemoteScrollingCoordinatorProxy::connectStateNodeLayers(ScrollingStateTree& stateTree, const RemoteLayerTreeHost& layerTreeHost)
+{
+ for (auto& currNode : stateTree.nodeMap().values()) {
+ switch (currNode->nodeType()) {
+ case ScrollingNode: {
+ ScrollingStateScrollingNode* scrollingStateNode = toScrollingStateScrollingNode(currNode);
+
+ if (scrollingStateNode->hasChangedProperty(ScrollingStateNode::ScrollLayer))
+ scrollingStateNode->setLayer(layerRepresentationFromLayerOrView(layerTreeHost.getLayer(scrollingStateNode->layer())));
+
+ if (scrollingStateNode->hasChangedProperty(ScrollingStateScrollingNode::ScrolledContentsLayer))
+ scrollingStateNode->setScrolledContentsLayer(layerRepresentationFromLayerOrView(layerTreeHost.getLayer(scrollingStateNode->scrolledContentsLayer())));
+
+ if (scrollingStateNode->hasChangedProperty(ScrollingStateScrollingNode::CounterScrollingLayer))
+ scrollingStateNode->setCounterScrollingLayer(layerRepresentationFromLayerOrView(layerTreeHost.getLayer(scrollingStateNode->counterScrollingLayer())));
+
+ // FIXME: we should never have header and footer layers coming from the WebProcess.
+ if (scrollingStateNode->hasChangedProperty(ScrollingStateScrollingNode::HeaderLayer))
+ scrollingStateNode->setHeaderLayer(layerRepresentationFromLayerOrView(layerTreeHost.getLayer(scrollingStateNode->headerLayer())));
+
+ if (scrollingStateNode->hasChangedProperty(ScrollingStateScrollingNode::FooterLayer))
+ scrollingStateNode->setFooterLayer(layerRepresentationFromLayerOrView(layerTreeHost.getLayer(scrollingStateNode->footerLayer())));
+ break;
+ }
+ case FixedNode:
+ if (currNode->hasChangedProperty(ScrollingStateNode::ScrollLayer))
+ currNode->setLayer(layerRepresentationFromLayerOrView(layerTreeHost.getLayer(currNode->layer())));
+ break;
+ case StickyNode:
+ if (currNode->hasChangedProperty(ScrollingStateNode::ScrollLayer))
+ currNode->setLayer(layerRepresentationFromLayerOrView(layerTreeHost.getLayer(currNode->layer())));
+ break;
+ }
+ }
+}
+
+} // namespace WebKit
+
+
+#endif // ENABLE(ASYNC_SCROLLING)
+#endif // PLATFORM(IOS)
</ins></span></pre></div>
<a id="trunkSourceWebKit2UIProcessiosWKContentViewh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/ios/WKContentView.h (164889 => 164890)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/ios/WKContentView.h        2014-02-28 23:11:22 UTC (rev 164889)
+++ trunk/Source/WebKit2/UIProcess/ios/WKContentView.h        2014-02-28 23:36:02 UTC (rev 164890)
</span><span class="lines">@@ -77,7 +77,7 @@
</span><span class="cx"> - (std::unique_ptr<WebKit::DrawingAreaProxy>)_createDrawingAreaProxy;
</span><span class="cx"> - (void)_processDidExit;
</span><span class="cx"> - (void)_didRelaunchProcess;
</span><del>-- (void)_setAcceleratedCompositingRootLayer:(CALayer *)rootLayer;
</del><ins>+- (void)_setAcceleratedCompositingRootView:(UIView *)rootView;
</ins><span class="cx">
</span><span class="cx"> - (void)_didCommitLoadForMainFrame;
</span><span class="cx"> - (void)_didCommitLayerTree:(const WebKit::RemoteLayerTreeTransaction&)layerTreeTransaction;
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessiosWKContentViewmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/ios/WKContentView.mm (164889 => 164890)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/ios/WKContentView.mm        2014-02-28 23:11:22 UTC (rev 164889)
+++ trunk/Source/WebKit2/UIProcess/ios/WKContentView.mm        2014-02-28 23:36:02 UTC (rev 164890)
</span><span class="lines">@@ -260,9 +260,12 @@
</span><span class="cx"> [_delegate contentView:self didCommitLayerTree:layerTreeTransaction];
</span><span class="cx"> }
</span><span class="cx">
</span><del>-- (void)_setAcceleratedCompositingRootLayer:(CALayer *)rootLayer
</del><ins>+- (void)_setAcceleratedCompositingRootView:(UIView *)rootView
</ins><span class="cx"> {
</span><del>- [[_rootContentView layer] setSublayers:@[rootLayer]];
</del><ins>+ for (UIView* subview in [_rootContentView subviews])
+ [subview removeFromSuperview];
+
+ [_rootContentView addSubview:rootView];
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> - (void)_decidePolicyForGeolocationRequestFromOrigin:(WebSecurityOrigin&)origin frame:(WebFrameProxy&)frame request:(GeolocationPermissionRequestProxy&)permissionRequest
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessiosWebPageProxyIOSmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/ios/WebPageProxyIOS.mm (164889 => 164890)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/ios/WebPageProxyIOS.mm        2014-02-28 23:11:22 UTC (rev 164889)
+++ trunk/Source/WebKit2/UIProcess/ios/WebPageProxyIOS.mm        2014-02-28 23:36:02 UTC (rev 164890)
</span><span class="lines">@@ -514,7 +514,7 @@
</span><span class="cx"> notImplemented();
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void WebPageProxy::setAcceleratedCompositingRootLayer(PlatformLayer* rootLayer)
</del><ins>+void WebPageProxy::setAcceleratedCompositingRootLayer(LayerOrView* rootLayer)
</ins><span class="cx"> {
</span><span class="cx"> m_pageClient.setAcceleratedCompositingRootLayer(rootLayer);
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessiosWebVideoFullscreenManagerProxycpp"></a>
<div class="delfile"><h4>Deleted: trunk/Source/WebKit2/UIProcess/ios/WebVideoFullscreenManagerProxy.cpp (164889 => 164890)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/ios/WebVideoFullscreenManagerProxy.cpp        2014-02-28 23:11:22 UTC (rev 164889)
+++ trunk/Source/WebKit2/UIProcess/ios/WebVideoFullscreenManagerProxy.cpp        2014-02-28 23:36:02 UTC (rev 164890)
</span><span class="lines">@@ -1,115 +0,0 @@
</span><del>-/*
- * Copyright (C) 2014 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
- * THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "WebVideoFullscreenManagerProxy.h"
-
-#if PLATFORM(IOS)
-
-#include "DrawingAreaProxy.h"
-#include "RemoteLayerTreeDrawingAreaProxy.h"
-#include "RemoteLayerTreeTransaction.h"
-#include "WebPageProxy.h"
-#include "WebProcessProxy.h"
-#include "WebVideoFullscreenManagerMessages.h"
-#include "WebVideoFullscreenManagerProxyMessages.h"
-
-using namespace WebCore;
-
-namespace WebKit {
-
-PassRefPtr<WebVideoFullscreenManagerProxy> WebVideoFullscreenManagerProxy::create(WebPageProxy& page)
-{
- return adoptRef(new WebVideoFullscreenManagerProxy(page));
-}
-
-WebVideoFullscreenManagerProxy::WebVideoFullscreenManagerProxy(WebPageProxy& page)
- : m_page(&page)
- , m_enterFullscreenAfterVideoLayerUnparentedTransaction(false)
- , m_videoLayerID(0)
-{
- m_page->process().addMessageReceiver(Messages::WebVideoFullscreenManagerProxy::messageReceiverName(), m_page->pageID(), *this);
- setWebVideoFullscreenModel(this);
-}
-
-WebVideoFullscreenManagerProxy::~WebVideoFullscreenManagerProxy()
-{
- m_page->process().removeMessageReceiver(Messages::WebVideoFullscreenManagerProxy::messageReceiverName(), m_page->pageID());
-}
-
-void WebVideoFullscreenManagerProxy::didCommitLayerTree(const RemoteLayerTreeTransaction& layerTreeTransaction)
-{
- if (m_enterFullscreenAfterVideoLayerUnparentedTransaction && layerTreeTransaction.isVideoLayerIDPendingFullscreen(m_videoLayerID)) {
- m_enterFullscreenAfterVideoLayerUnparentedTransaction = false;
- WebCore::WebVideoFullscreenInterfaceAVKit::enterFullscreen();
- }
-}
-
-void WebVideoFullscreenManagerProxy::setVideoLayerID(GraphicsLayer::PlatformLayerID videoLayerID)
-{
- RemoteLayerTreeDrawingAreaProxy* remoteDrawingAreaProxy = toRemoteLayerTreeDrawingAreaProxy(m_page->drawingArea());
- setVideoLayer(remoteDrawingAreaProxy->remoteLayerTreeHost().getLayer(videoLayerID));
- m_videoLayerID = videoLayerID;
- m_enterFullscreenAfterVideoLayerUnparentedTransaction = true;
-}
-
-void WebVideoFullscreenManagerProxy::enterFullscreen()
-{
-}
-
-void WebVideoFullscreenManagerProxy::requestExitFullScreen()
-{
- m_page->send(Messages::WebVideoFullscreenManager::RequestExitFullScreen(), m_page->pageID());
-}
-
-void WebVideoFullscreenManagerProxy::play()
-{
- m_page->send(Messages::WebVideoFullscreenManager::Play(), m_page->pageID());
-}
-
-void WebVideoFullscreenManagerProxy::pause()
-{
- m_page->send(Messages::WebVideoFullscreenManager::Pause(), m_page->pageID());
-}
-
-void WebVideoFullscreenManagerProxy::togglePlayState()
-{
- m_page->send(Messages::WebVideoFullscreenManager::TogglePlayState(), m_page->pageID());
-}
-
-void WebVideoFullscreenManagerProxy::seekToTime(double time)
-{
- m_page->send(Messages::WebVideoFullscreenManager::SeekToTime(time), m_page->pageID());
-}
-
-void WebVideoFullscreenManagerProxy::didExitFullscreen()
-{
- m_page->send(Messages::WebVideoFullscreenManager::DidExitFullscreen(), m_page->pageID());
-}
-
-
-} // namespace WebKit
-
-#endif // PLATFORM(IOS)
</del></span></pre></div>
<a id="trunkSourceWebKit2UIProcessiosWebVideoFullscreenManagerProxymmfromrev164889trunkSourceWebKit2UIProcessiosWebVideoFullscreenManagerProxycpp"></a>
<div class="copfile"><h4>Copied: trunk/Source/WebKit2/UIProcess/ios/WebVideoFullscreenManagerProxy.mm (from rev 164889, trunk/Source/WebKit2/UIProcess/ios/WebVideoFullscreenManagerProxy.cpp) (0 => 164890)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/ios/WebVideoFullscreenManagerProxy.mm         (rev 0)
+++ trunk/Source/WebKit2/UIProcess/ios/WebVideoFullscreenManagerProxy.mm        2014-02-28 23:36:02 UTC (rev 164890)
</span><span class="lines">@@ -0,0 +1,118 @@
</span><ins>+/*
+ * Copyright (C) 2014 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "config.h"
+#include "WebVideoFullscreenManagerProxy.h"
+
+#if PLATFORM(IOS)
+
+#include "DrawingAreaProxy.h"
+#include "RemoteLayerTreeDrawingAreaProxy.h"
+#include "RemoteLayerTreeTransaction.h"
+#include "WebPageProxy.h"
+#include "WebProcessProxy.h"
+#include "WebVideoFullscreenManagerMessages.h"
+#include "WebVideoFullscreenManagerProxyMessages.h"
+#include <UIKit/UIView.h>
+
+using namespace WebCore;
+
+namespace WebKit {
+
+PassRefPtr<WebVideoFullscreenManagerProxy> WebVideoFullscreenManagerProxy::create(WebPageProxy& page)
+{
+ return adoptRef(new WebVideoFullscreenManagerProxy(page));
+}
+
+WebVideoFullscreenManagerProxy::WebVideoFullscreenManagerProxy(WebPageProxy& page)
+ : m_page(&page)
+ , m_enterFullscreenAfterVideoLayerUnparentedTransaction(false)
+ , m_videoLayerID(0)
+{
+ m_page->process().addMessageReceiver(Messages::WebVideoFullscreenManagerProxy::messageReceiverName(), m_page->pageID(), *this);
+ setWebVideoFullscreenModel(this);
+}
+
+WebVideoFullscreenManagerProxy::~WebVideoFullscreenManagerProxy()
+{
+ m_page->process().removeMessageReceiver(Messages::WebVideoFullscreenManagerProxy::messageReceiverName(), m_page->pageID());
+}
+
+void WebVideoFullscreenManagerProxy::didCommitLayerTree(const RemoteLayerTreeTransaction& layerTreeTransaction)
+{
+ if (m_enterFullscreenAfterVideoLayerUnparentedTransaction && layerTreeTransaction.isVideoLayerIDPendingFullscreen(m_videoLayerID)) {
+ m_enterFullscreenAfterVideoLayerUnparentedTransaction = false;
+ WebCore::WebVideoFullscreenInterfaceAVKit::enterFullscreen();
+ }
+}
+
+void WebVideoFullscreenManagerProxy::setVideoLayerID(GraphicsLayer::PlatformLayerID videoLayerID)
+{
+ RemoteLayerTreeDrawingAreaProxy* remoteDrawingAreaProxy = toRemoteLayerTreeDrawingAreaProxy(m_page->drawingArea());
+
+ UIView *videoView = remoteDrawingAreaProxy->remoteLayerTreeHost().getLayer(videoLayerID);
+ setVideoLayer(videoView.layer);
+
+ m_videoLayerID = videoLayerID;
+ m_enterFullscreenAfterVideoLayerUnparentedTransaction = true;
+}
+
+void WebVideoFullscreenManagerProxy::enterFullscreen()
+{
+}
+
+void WebVideoFullscreenManagerProxy::requestExitFullScreen()
+{
+ m_page->send(Messages::WebVideoFullscreenManager::RequestExitFullScreen(), m_page->pageID());
+}
+
+void WebVideoFullscreenManagerProxy::play()
+{
+ m_page->send(Messages::WebVideoFullscreenManager::Play(), m_page->pageID());
+}
+
+void WebVideoFullscreenManagerProxy::pause()
+{
+ m_page->send(Messages::WebVideoFullscreenManager::Pause(), m_page->pageID());
+}
+
+void WebVideoFullscreenManagerProxy::togglePlayState()
+{
+ m_page->send(Messages::WebVideoFullscreenManager::TogglePlayState(), m_page->pageID());
+}
+
+void WebVideoFullscreenManagerProxy::seekToTime(double time)
+{
+ m_page->send(Messages::WebVideoFullscreenManager::SeekToTime(time), m_page->pageID());
+}
+
+void WebVideoFullscreenManagerProxy::didExitFullscreen()
+{
+ m_page->send(Messages::WebVideoFullscreenManager::DidExitFullscreen(), m_page->pageID());
+}
+
+} // namespace WebKit
+
+#endif // PLATFORM(IOS)
</ins></span></pre></div>
<a id="trunkSourceWebKit2UIProcessmacPageClientImplh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/mac/PageClientImpl.h (164889 => 164890)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/mac/PageClientImpl.h        2014-02-28 23:11:22 UTC (rev 164889)
+++ trunk/Source/WebKit2/UIProcess/mac/PageClientImpl.h        2014-02-28 23:36:02 UTC (rev 164890)
</span><span class="lines">@@ -71,8 +71,8 @@
</span><span class="cx"> virtual bool isVisuallyIdle();
</span><span class="cx"> virtual LayerHostingMode viewLayerHostingMode() override;
</span><span class="cx"> virtual ColorSpaceData colorSpace() override;
</span><del>- virtual void setAcceleratedCompositingRootLayer(CALayer *) override;
- virtual CALayer *acceleratedCompositingRootLayer() const override;
</del><ins>+ virtual void setAcceleratedCompositingRootLayer(LayerOrView *) override;
+ virtual LayerOrView *acceleratedCompositingRootLayer() const override;
</ins><span class="cx">
</span><span class="cx"> virtual void processDidExit();
</span><span class="cx"> virtual void pageClosed();
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessmacRemoteLayerTreeDrawingAreaProxymm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm (164889 => 164890)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm        2014-02-28 23:11:22 UTC (rev 164889)
+++ trunk/Source/WebKit2/UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm        2014-02-28 23:36:02 UTC (rev 164890)
</span><span class="lines">@@ -116,7 +116,7 @@
</span><span class="cx"> float scale = indicatorScale(layerTreeTransaction.contentsSize());
</span><span class="cx"> bool rootLayerChanged = m_debugIndicatorLayerTreeHost->updateLayerTree(layerTreeTransaction, scale);
</span><span class="cx"> updateDebugIndicator(layerTreeTransaction.contentsSize(), rootLayerChanged, scale);
</span><del>- m_debugIndicatorLayerTreeHost->rootLayer().name = @"Indicator host root";
</del><ins>+ asLayer(m_debugIndicatorLayerTreeHost->rootLayer()).name = @"Indicator host root";
</ins><span class="cx"> }
</span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -180,7 +180,7 @@
</span><span class="cx"> void RemoteLayerTreeDrawingAreaProxy::updateDebugIndicator(IntSize contentsSize, bool rootLayerChanged, float scale)
</span><span class="cx"> {
</span><span class="cx"> // Make sure we're the last sublayer.
</span><del>- CALayer *rootLayer = m_remoteLayerTreeHost.rootLayer();
</del><ins>+ CALayer *rootLayer = asLayer(m_remoteLayerTreeHost.rootLayer());
</ins><span class="cx"> [m_tileMapHostLayer removeFromSuperlayer];
</span><span class="cx"> [rootLayer addSublayer:m_tileMapHostLayer.get()];
</span><span class="cx">
</span><span class="lines">@@ -193,7 +193,7 @@
</span><span class="cx">
</span><span class="cx"> if (rootLayerChanged) {
</span><span class="cx"> [m_tileMapHostLayer setSublayers:@[]];
</span><del>- [m_tileMapHostLayer addSublayer:m_debugIndicatorLayerTreeHost->rootLayer()];
</del><ins>+ [m_tileMapHostLayer addSublayer:asLayer(m_debugIndicatorLayerTreeHost->rootLayer())];
</ins><span class="cx"> [m_tileMapHostLayer addSublayer:m_exposedRectIndicatorLayer.get()];
</span><span class="cx"> }
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessmacRemoteLayerTreeHosth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/mac/RemoteLayerTreeHost.h (164889 => 164890)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/mac/RemoteLayerTreeHost.h        2014-02-28 23:11:22 UTC (rev 164889)
+++ trunk/Source/WebKit2/UIProcess/mac/RemoteLayerTreeHost.h        2014-02-28 23:36:02 UTC (rev 164890)
</span><span class="lines">@@ -26,13 +26,12 @@
</span><span class="cx"> #ifndef RemoteLayerTreeHost_h
</span><span class="cx"> #define RemoteLayerTreeHost_h
</span><span class="cx">
</span><ins>+#include "LayerRepresentation.h"
</ins><span class="cx"> #include "RemoteLayerTreeTransaction.h"
</span><span class="cx"> #include <WebCore/PlatformCALayer.h>
</span><span class="cx"> #include <wtf/HashMap.h>
</span><span class="cx"> #include <wtf/RetainPtr.h>
</span><span class="cx">
</span><del>-OBJC_CLASS CALayer;
-
</del><span class="cx"> namespace WebKit {
</span><span class="cx">
</span><span class="cx"> class WebPageProxy;
</span><span class="lines">@@ -42,8 +41,8 @@
</span><span class="cx"> explicit RemoteLayerTreeHost();
</span><span class="cx"> virtual ~RemoteLayerTreeHost();
</span><span class="cx">
</span><del>- CALayer *getLayer(WebCore::GraphicsLayer::PlatformLayerID) const;
- CALayer *rootLayer() const { return m_rootLayer; }
</del><ins>+ LayerOrView *getLayer(WebCore::GraphicsLayer::PlatformLayerID) const;
+ LayerOrView *rootLayer() const { return m_rootLayer; }
</ins><span class="cx">
</span><span class="cx"> // Returns true if the root layer changed.
</span><span class="cx"> bool updateLayerTree(const RemoteLayerTreeTransaction&, float indicatorScaleFactor = 1);
</span><span class="lines">@@ -52,10 +51,10 @@
</span><span class="cx"> bool isDebugLayerTreeHost() const { return m_isDebugLayerTreeHost; }
</span><span class="cx">
</span><span class="cx"> private:
</span><del>- CALayer *createLayer(const RemoteLayerTreeTransaction::LayerCreationProperties&);
</del><ins>+ LayerOrView *createLayer(const RemoteLayerTreeTransaction::LayerCreationProperties&);
</ins><span class="cx">
</span><del>- CALayer *m_rootLayer;
- HashMap<WebCore::GraphicsLayer::PlatformLayerID, RetainPtr<CALayer>> m_layers;
</del><ins>+ LayerOrView *m_rootLayer;
+ HashMap<WebCore::GraphicsLayer::PlatformLayerID, RetainPtr<LayerOrView>> m_layers;
</ins><span class="cx"> bool m_isDebugLayerTreeHost;
</span><span class="cx"> };
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessmacRemoteLayerTreeHostmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/mac/RemoteLayerTreeHost.mm (164889 => 164890)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/mac/RemoteLayerTreeHost.mm        2014-02-28 23:11:22 UTC (rev 164889)
+++ trunk/Source/WebKit2/UIProcess/mac/RemoteLayerTreeHost.mm        2014-02-28 23:36:02 UTC (rev 164890)
</span><span class="lines">@@ -60,7 +60,7 @@
</span><span class="cx"> createLayer(createdLayer);
</span><span class="cx">
</span><span class="cx"> bool rootLayerChanged = false;
</span><del>- CALayer *rootLayer = getLayer(transaction.rootLayerID());
</del><ins>+ LayerOrView *rootLayer = getLayer(transaction.rootLayerID());
</ins><span class="cx"> if (m_rootLayer != rootLayer) {
</span><span class="cx"> m_rootLayer = rootLayer;
</span><span class="cx"> rootLayerChanged = true;
</span><span class="lines">@@ -70,7 +70,7 @@
</span><span class="cx"> auto layerID = changedLayer.key;
</span><span class="cx"> const RemoteLayerTreeTransaction::LayerProperties& properties = *changedLayer.value;
</span><span class="cx">
</span><del>- CALayer *layer = getLayer(layerID);
</del><ins>+ LayerOrView *layer = getLayer(layerID);
</ins><span class="cx"> ASSERT(layer);
</span><span class="cx">
</span><span class="cx"> RemoteLayerTreePropertyApplier::RelatedLayerMap relatedLayers;
</span><span class="lines">@@ -88,9 +88,9 @@
</span><span class="cx"> if (propertiesCopy.changedProperties & RemoteLayerTreeTransaction::BorderWidthChanged)
</span><span class="cx"> propertiesCopy.borderWidth *= 1 / indicatorScaleFactor;
</span><span class="cx">
</span><del>- RemoteLayerTreePropertyApplier::applyPropertiesToLayer(layer, propertiesCopy, relatedLayers);
</del><ins>+ RemoteLayerTreePropertyApplier::applyProperties(layer, propertiesCopy, relatedLayers);
</ins><span class="cx"> } else
</span><del>- RemoteLayerTreePropertyApplier::applyPropertiesToLayer(layer, properties, relatedLayers);
</del><ins>+ RemoteLayerTreePropertyApplier::applyProperties(layer, properties, relatedLayers);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> for (auto destroyedLayer : transaction.destroyedLayers())
</span><span class="lines">@@ -99,7 +99,7 @@
</span><span class="cx"> return rootLayerChanged;
</span><span class="cx"> }
</span><span class="cx">
</span><del>-CALayer *RemoteLayerTreeHost::getLayer(GraphicsLayer::PlatformLayerID layerID) const
</del><ins>+LayerOrView *RemoteLayerTreeHost::getLayer(GraphicsLayer::PlatformLayerID layerID) const
</ins><span class="cx"> {
</span><span class="cx"> if (!layerID)
</span><span class="cx"> return nil;
</span><span class="lines">@@ -107,7 +107,8 @@
</span><span class="cx"> return m_layers.get(layerID).get();
</span><span class="cx"> }
</span><span class="cx">
</span><del>-CALayer *RemoteLayerTreeHost::createLayer(const RemoteLayerTreeTransaction::LayerCreationProperties& properties)
</del><ins>+#if !PLATFORM(IOS)
+LayerOrView *RemoteLayerTreeHost::createLayer(const RemoteLayerTreeTransaction::LayerCreationProperties& properties)
</ins><span class="cx"> {
</span><span class="cx"> RetainPtr<CALayer>& layer = m_layers.add(properties.layerID, nullptr).iterator->value;
</span><span class="cx">
</span><span class="lines">@@ -140,5 +141,6 @@
</span><span class="cx">
</span><span class="cx"> return layer.get();
</span><span class="cx"> }
</span><ins>+#endif
</ins><span class="cx">
</span><span class="cx"> } // namespace WebKit
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessmacWebPageProxyMacmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/mac/WebPageProxyMac.mm (164889 => 164890)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/mac/WebPageProxyMac.mm        2014-02-28 23:11:22 UTC (rev 164889)
+++ trunk/Source/WebKit2/UIProcess/mac/WebPageProxyMac.mm        2014-02-28 23:36:02 UTC (rev 164890)
</span><span class="lines">@@ -470,12 +470,12 @@
</span><span class="cx"> m_pageClient.intrinsicContentSizeDidChange(intrinsicContentSize);
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void WebPageProxy::setAcceleratedCompositingRootLayer(PlatformLayer* rootLayer)
</del><ins>+void WebPageProxy::setAcceleratedCompositingRootLayer(LayerOrView* rootLayer)
</ins><span class="cx"> {
</span><span class="cx"> m_pageClient.setAcceleratedCompositingRootLayer(rootLayer);
</span><span class="cx"> }
</span><span class="cx">
</span><del>-PlatformLayer* WebPageProxy::acceleratedCompositingRootLayer() const
</del><ins>+LayerOrView* WebPageProxy::acceleratedCompositingRootLayer() const
</ins><span class="cx"> {
</span><span class="cx"> return m_pageClient.acceleratedCompositingRootLayer();
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebKit2WebKit2xcodeprojprojectpbxproj"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj (164889 => 164890)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj        2014-02-28 23:11:22 UTC (rev 164889)
+++ trunk/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj        2014-02-28 23:36:02 UTC (rev 164890)
</span><span class="lines">@@ -47,6 +47,10 @@
</span><span class="cx"> /* End PBXAggregateTarget section */
</span><span class="cx">
</span><span class="cx"> /* Begin PBXBuildFile section */
</span><ins>+                0F0C365818C051BA00F607D7 /* RemoteLayerTreeHostIOS.mm in Sources */ = {isa = PBXBuildFile; fileRef = 0F0C365718C051BA00F607D7 /* RemoteLayerTreeHostIOS.mm */; };
+                0F0C365A18C0555800F607D7 /* LayerRepresentation.h in Headers */ = {isa = PBXBuildFile; fileRef = 0F0C365918C0555800F607D7 /* LayerRepresentation.h */; };
+                0F0C365C18C05CA100F607D7 /* RemoteScrollingCoordinatorProxyIOS.mm in Sources */ = {isa = PBXBuildFile; fileRef = 0F0C365B18C05CA100F607D7 /* RemoteScrollingCoordinatorProxyIOS.mm */; };
+                0F0C365E18C110A500F607D7 /* LayerRepresentation.mm in Sources */ = {isa = PBXBuildFile; fileRef = 0F0C365D18C110A500F607D7 /* LayerRepresentation.mm */; };
</ins><span class="cx">                 0F174AA3142A4CB70039250F /* APIGeometry.h in Headers */ = {isa = PBXBuildFile; fileRef = 0F174AA2142A4CB60039250F /* APIGeometry.h */; };
</span><span class="cx">                 0F174AA7142AAC610039250F /* WKGeometry.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0F174AA6142AAC610039250F /* WKGeometry.cpp */; };
</span><span class="cx">                 0F594790187B3B3A00437857 /* RemoteScrollingCoordinator.h in Headers */ = {isa = PBXBuildFile; fileRef = 0F59478D187B3B3A00437857 /* RemoteScrollingCoordinator.h */; };
</span><span class="lines">@@ -664,7 +668,7 @@
</span><span class="cx">                 3F87B9BD158940120090FF62 /* WebColorChooser.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3F87B9BA15893F630090FF62 /* WebColorChooser.cpp */; };
</span><span class="cx">                 3F87B9BE158940190090FF62 /* WebColorChooser.h in Headers */ = {isa = PBXBuildFile; fileRef = 3F87B9BB15893F630090FF62 /* WebColorChooser.h */; };
</span><span class="cx">                 3F87B9C0158940D80090FF62 /* WebColorPicker.h in Headers */ = {isa = PBXBuildFile; fileRef = 3F87B9BF158940D80090FF62 /* WebColorPicker.h */; };
</span><del>-                3F889D14188778C900FEADAF /* WebVideoFullscreenManagerProxy.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3F889D12188778C900FEADAF /* WebVideoFullscreenManagerProxy.cpp */; };
</del><ins>+                3F889D14188778C900FEADAF /* WebVideoFullscreenManagerProxy.mm in Sources */ = {isa = PBXBuildFile; fileRef = 3F889D12188778C900FEADAF /* WebVideoFullscreenManagerProxy.mm */; };
</ins><span class="cx">                 3F889D15188778C900FEADAF /* WebVideoFullscreenManagerProxy.h in Headers */ = {isa = PBXBuildFile; fileRef = 3F889D13188778C900FEADAF /* WebVideoFullscreenManagerProxy.h */; };
</span><span class="cx">                 3F889D171887859300FEADAF /* WebVideoFullscreenManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3F889D0D1887699C00FEADAF /* WebVideoFullscreenManager.cpp */; };
</span><span class="cx">                 4F601432155C5AA2001FBDE0 /* BlockingResponseMap.h in Headers */ = {isa = PBXBuildFile; fileRef = 4F601430155C5A32001FBDE0 /* BlockingResponseMap.h */; };
</span><span class="lines">@@ -1738,6 +1742,10 @@
</span><span class="cx"> /* Begin PBXFileReference section */
</span><span class="cx">                 0867D6A5FE840307C02AAC07 /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = "<absolute>"; };
</span><span class="cx">                 089C1667FE841158C02AAC07 /* English */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/InfoPlist.strings; sourceTree = "<group>"; };
</span><ins>+                0F0C365718C051BA00F607D7 /* RemoteLayerTreeHostIOS.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = RemoteLayerTreeHostIOS.mm; path = ios/RemoteLayerTreeHostIOS.mm; sourceTree = "<group>"; };
+                0F0C365918C0555800F607D7 /* LayerRepresentation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = LayerRepresentation.h; path = UIProcess/Cocoa/LayerRepresentation.h; sourceTree = SOURCE_ROOT; };
+                0F0C365B18C05CA100F607D7 /* RemoteScrollingCoordinatorProxyIOS.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = RemoteScrollingCoordinatorProxyIOS.mm; path = ios/RemoteScrollingCoordinatorProxyIOS.mm; sourceTree = "<group>"; };
+                0F0C365D18C110A500F607D7 /* LayerRepresentation.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = LayerRepresentation.mm; path = ios/LayerRepresentation.mm; sourceTree = "<group>"; };
</ins><span class="cx">                 0F174AA2142A4CB60039250F /* APIGeometry.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APIGeometry.h; sourceTree = "<group>"; };
</span><span class="cx">                 0F174AA6142AAC610039250F /* WKGeometry.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WKGeometry.cpp; sourceTree = "<group>"; };
</span><span class="cx">                 0F59478D187B3B3A00437857 /* RemoteScrollingCoordinator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RemoteScrollingCoordinator.h; path = Scrolling/RemoteScrollingCoordinator.h; sourceTree = "<group>"; };
</span><span class="lines">@@ -2418,7 +2426,7 @@
</span><span class="cx">                 3F889D0D1887699C00FEADAF /* WebVideoFullscreenManager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = WebVideoFullscreenManager.cpp; path = ios/WebVideoFullscreenManager.cpp; sourceTree = "<group>"; };
</span><span class="cx">                 3F889D0E1887699C00FEADAF /* WebVideoFullscreenManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WebVideoFullscreenManager.h; path = ios/WebVideoFullscreenManager.h; sourceTree = "<group>"; };
</span><span class="cx">                 3F889D101887710000FEADAF /* WebVideoFullscreenManager.messages.in */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = WebVideoFullscreenManager.messages.in; path = ios/WebVideoFullscreenManager.messages.in; sourceTree = "<group>"; };
</span><del>-                3F889D12188778C900FEADAF /* WebVideoFullscreenManagerProxy.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = WebVideoFullscreenManagerProxy.cpp; path = ios/WebVideoFullscreenManagerProxy.cpp; sourceTree = "<group>"; };
</del><ins>+                3F889D12188778C900FEADAF /* WebVideoFullscreenManagerProxy.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = WebVideoFullscreenManagerProxy.mm; path = ios/WebVideoFullscreenManagerProxy.mm; sourceTree = "<group>"; };
</ins><span class="cx">                 3F889D13188778C900FEADAF /* WebVideoFullscreenManagerProxy.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WebVideoFullscreenManagerProxy.h; path = ios/WebVideoFullscreenManagerProxy.h; sourceTree = "<group>"; };
</span><span class="cx">                 3F889D1618877A2400FEADAF /* WebVideoFullscreenManagerProxy.messages.in */ = {isa = PBXFileReference; lastKnownFileType = text; name = WebVideoFullscreenManagerProxy.messages.in; path = ios/WebVideoFullscreenManagerProxy.messages.in; sourceTree = "<group>"; };
</span><span class="cx">                 4F601430155C5A32001FBDE0 /* BlockingResponseMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BlockingResponseMap.h; sourceTree = "<group>"; };
</span><span class="lines">@@ -4114,6 +4122,7 @@
</span><span class="cx">                 1ABC3DF21899E415004F0626 /* Cocoa */ = {
</span><span class="cx">                         isa = PBXGroup;
</span><span class="cx">                         children = (
</span><ins>+                                0F0C365918C0555800F607D7 /* LayerRepresentation.h */,
</ins><span class="cx">                                 1A422F8D18B29C6400D8CD96 /* HistoryClient.h */,
</span><span class="cx">                                 1A422F8C18B29C6400D8CD96 /* HistoryClient.mm */,
</span><span class="cx">                                 1ABC3DF41899E437004F0626 /* NavigationState.h */,
</span><span class="lines">@@ -4309,14 +4318,17 @@
</span><span class="cx">                         isa = PBXGroup;
</span><span class="cx">                         children = (
</span><span class="cx">                                 C54256AE18BEC16100DE4179 /* forms */,
</span><ins>+                                0F0C365D18C110A500F607D7 /* LayerRepresentation.mm */,
</ins><span class="cx">                                 0FCB4E3618BBE044000FCFC9 /* PageClientImplIOS.h */,
</span><span class="cx">                                 0FCB4E3718BBE044000FCFC9 /* PageClientImplIOS.mm */,
</span><ins>+                                0F0C365718C051BA00F607D7 /* RemoteLayerTreeHostIOS.mm */,
+                                0F0C365B18C05CA100F607D7 /* RemoteScrollingCoordinatorProxyIOS.mm */,
</ins><span class="cx">                                 2DA944A91884E9BA00ED86DB /* TextCheckerIOS.mm */,
</span><span class="cx">                                 2DF9593418A42412009785A1 /* ViewGestureControllerIOS.mm */,
</span><span class="cx">                                 2DA944AA1884E9BA00ED86DB /* WebInspectorProxyIOS.mm */,
</span><span class="cx">                                 2DA944AB1884E9BA00ED86DB /* WebPageProxyIOS.mm */,
</span><span class="cx">                                 2DA944AC1884E9BA00ED86DB /* WebProcessProxyIOS.mm */,
</span><del>-                                3F889D12188778C900FEADAF /* WebVideoFullscreenManagerProxy.cpp */,
</del><ins>+                                3F889D12188778C900FEADAF /* WebVideoFullscreenManagerProxy.mm */,
</ins><span class="cx">                                 3F889D13188778C900FEADAF /* WebVideoFullscreenManagerProxy.h */,
</span><span class="cx">                                 3F889D1618877A2400FEADAF /* WebVideoFullscreenManagerProxy.messages.in */,
</span><span class="cx">                                 0FCB4E3818BBE044000FCFC9 /* WKActionSheet.h */,
</span><span class="lines">@@ -6424,6 +6436,7 @@
</span><span class="cx">                                 BC017D2116263308007054F5 /* WKDOMTextIterator.h in Headers */,
</span><span class="cx">                                 37DFA7001810BB92001F4A9F /* WKFoundation.h in Headers */,
</span><span class="cx">                                 1ABC3DF11899C6B6004F0626 /* WKNavigationInternal.h in Headers */,
</span><ins>+                                0F0C365A18C0555800F607D7 /* LayerRepresentation.h in Headers */,
</ins><span class="cx">                                 1F604BA81889FA7400EE0395 /* WKRenderingProgressEvents.h in Headers */,
</span><span class="cx">                                 1A422F8F18B29C6400D8CD96 /* HistoryClient.h in Headers */,
</span><span class="cx">                                 BCBAACEB145225E30053F82F /* WKProcessGroup.h in Headers */,
</span><span class="lines">@@ -8037,6 +8050,7 @@
</span><span class="cx">                                 2DA9449E1884E4F000ED86DB /* NativeWebKeyboardEventIOS.mm in Sources */,
</span><span class="cx">                                 1A0EC604124A9F2C007EF4A5 /* PluginProcessManager.cpp in Sources */,
</span><span class="cx">                                 9F54F8951648AE0F007DF81A /* PluginProcessManagerMac.mm in Sources */,
</span><ins>+                                0F0C365E18C110A500F607D7 /* LayerRepresentation.mm in Sources */,
</ins><span class="cx">                                 1A043CEB124FE38F00FFBFB5 /* PluginProcessMessageReceiver.cpp in Sources */,
</span><span class="cx">                                 1A0EC75F124BC7B2007EF4A5 /* PluginProcessProxy.cpp in Sources */,
</span><span class="cx">                                 1A2D90BB1281C931001EB962 /* PluginProcessProxyMac.mm in Sources */,
</span><span class="lines">@@ -8306,7 +8320,7 @@
</span><span class="cx">                                 33367635130C99B2006C9DE2 /* WebResourceCacheManagerProxy.cpp in Sources */,
</span><span class="cx">                                 33367657130C9ECA006C9DE2 /* WebResourceCacheManagerProxyMessageReceiver.cpp in Sources */,
</span><span class="cx">                                 510AFFB916542048001BA05E /* WebResourceLoader.cpp in Sources */,
</span><del>-                                3F889D14188778C900FEADAF /* WebVideoFullscreenManagerProxy.cpp in Sources */,
</del><ins>+                                3F889D14188778C900FEADAF /* WebVideoFullscreenManagerProxy.mm in Sources */,
</ins><span class="cx">                                 51F060E11654318500F3281B /* WebResourceLoaderMessageReceiver.cpp in Sources */,
</span><span class="cx">                                 2D6B371C18A967AD0042AE80 /* WKThumbnailView.mm in Sources */,
</span><span class="cx">                                 378E1A3D181ED6FF0031007A /* APIObject.mm in Sources */,
</span><span class="lines">@@ -8364,6 +8378,8 @@
</span><span class="cx">                                 BC407628124FF0400068F20A /* WKCertificateInfoMac.mm in Sources */,
</span><span class="cx">                                 515E7727183DD6F60007203F /* AsyncRequest.cpp in Sources */,
</span><span class="cx">                                 BCA284D61492F2C7001F9042 /* WKConnection.mm in Sources */,
</span><ins>+                                0F0C365818C051BA00F607D7 /* RemoteLayerTreeHostIOS.mm in Sources */,
+                                0F0C365C18C05CA100F607D7 /* RemoteScrollingCoordinatorProxyIOS.mm in Sources */,
</ins><span class="cx">                                 BC4A6296147313A0006C681A /* WKConnectionRef.cpp in Sources */,
</span><span class="cx">                                 2D8710161828415D0018FA01 /* PlatformCALayerRemoteCustom.mm in Sources */,
</span><span class="cx">                                 BCB9E24C1120E15C00A137E0 /* WKContext.cpp in Sources */,
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessWebPagemacPlatformCALayerRemotecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/WebPage/mac/PlatformCALayerRemote.cpp (164889 => 164890)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/WebPage/mac/PlatformCALayerRemote.cpp        2014-02-28 23:11:22 UTC (rev 164889)
+++ trunk/Source/WebKit2/WebProcess/WebPage/mac/PlatformCALayerRemote.cpp        2014-02-28 23:36:02 UTC (rev 164890)
</span><span class="lines">@@ -124,7 +124,7 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> if (m_layerType == LayerTypeCustom) {
</span><del>- RemoteLayerTreePropertyApplier::applyPropertiesToLayer(platformLayer(), m_properties, RemoteLayerTreePropertyApplier::RelatedLayerMap());
</del><ins>+ RemoteLayerTreePropertyApplier::applyProperties(platformLayer(), m_properties, RemoteLayerTreePropertyApplier::RelatedLayerMap());
</ins><span class="cx"> m_properties.changedProperties = RemoteLayerTreeTransaction::NoChange;
</span><span class="cx"> return;
</span><span class="cx"> }
</span></span></pre>
</div>
</div>
</body>
</html>