<!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>[168301] trunk/Source</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/168301">168301</a></dd>
<dt>Author</dt> <dd>timothy_horton@apple.com</dd>
<dt>Date</dt> <dd>2014-05-05 11:30:02 -0700 (Mon, 05 May 2014)</dd>
</dl>
<h3>Log Message</h3>
<pre>Use a layer delegate instead of web_disableAllActions wherever possible
https://bugs.webkit.org/show_bug.cgi?id=132560
<rdar://problem/16459284>
Reviewed by Simon Fraser.
* WebCore.exp.in:
* WebCore.xcodeproj/project.pbxproj:
* platform/graphics/ca/mac/PlatformCALayerMac.mm:
(PlatformCALayerMac::commonInit):
If we own the platform layer, set its delegate to the action-disabling WebActionDisablingCALayerDelegate.
If we don't, its actual owner might want to control the delegate, so continue using web_disableAllActions.
* platform/graphics/cocoa/WebActionDisablingCALayerDelegate.h: Added.
* platform/graphics/cocoa/WebActionDisablingCALayerDelegate.mm: Added.
(+[WebActionDisablingCALayerDelegate shared]):
(-[WebActionDisablingCALayerDelegate actionForLayer:forKey:]):
Add a class that can act as the delegate of a CALayer, and disables all actions.
* platform/graphics/cocoa/WebCoreCALayerExtras.h: Renamed from Source/WebCore/platform/graphics/mac/WebCoreCALayerExtras.h.
* platform/graphics/cocoa/WebCoreCALayerExtras.mm: Renamed from Source/WebCore/platform/graphics/mac/WebCoreCALayerExtras.mm.
(-[CALayer web_disableAllActions]):
Move WebCoreCALayerExtras from mac/ to cocoa/.
* UIProcess/API/mac/WKView.mm:
(-[WKView _setAcceleratedCompositingModeRootLayer:]):
* UIProcess/ios/RemoteLayerTreeHostIOS.mm:
(WebKit::RemoteLayerTreeHost::createLayer):
* UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm:
(WebKit::RemoteLayerTreeDrawingAreaProxy::showDebugIndicator):
* UIProcess/mac/RemoteLayerTreeHost.mm:
(WebKit::RemoteLayerTreeHost::createLayer):
* UIProcess/mac/ViewGestureControllerMac.mm:
(WebKit::ViewGestureController::beginSwipeGesture):
Make use of WebActionDisablingCALayerDelegate where possible.
Also, UIKit disables actions for us, so don't bother doing anything on iOS.</pre>
<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoreWebCoreexpin">trunk/Source/WebCore/WebCore.exp.in</a></li>
<li><a href="#trunkSourceWebCoreWebCorexcodeprojprojectpbxproj">trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicscamacPlatformCALayerMacmm">trunk/Source/WebCore/platform/graphics/ca/mac/PlatformCALayerMac.mm</a></li>
<li><a href="#trunkSourceWebKit2ChangeLog">trunk/Source/WebKit2/ChangeLog</a></li>
<li><a href="#trunkSourceWebKit2UIProcessAPImacWKViewmm">trunk/Source/WebKit2/UIProcess/API/mac/WKView.mm</a></li>
<li><a href="#trunkSourceWebKit2UIProcessiosRemoteLayerTreeHostIOSmm">trunk/Source/WebKit2/UIProcess/ios/RemoteLayerTreeHostIOS.mm</a></li>
<li><a href="#trunkSourceWebKit2UIProcessmacRemoteLayerTreeDrawingAreaProxymm">trunk/Source/WebKit2/UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm</a></li>
<li><a href="#trunkSourceWebKit2UIProcessmacRemoteLayerTreeHostmm">trunk/Source/WebKit2/UIProcess/mac/RemoteLayerTreeHost.mm</a></li>
<li><a href="#trunkSourceWebKit2UIProcessmacViewGestureControllerMacmm">trunk/Source/WebKit2/UIProcess/mac/ViewGestureControllerMac.mm</a></li>
</ul>
<h3>Added Paths</h3>
<ul>
<li><a href="#trunkSourceWebCoreplatformgraphicscocoaWebActionDisablingCALayerDelegateh">trunk/Source/WebCore/platform/graphics/cocoa/WebActionDisablingCALayerDelegate.h</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicscocoaWebActionDisablingCALayerDelegatemm">trunk/Source/WebCore/platform/graphics/cocoa/WebActionDisablingCALayerDelegate.mm</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicscocoaWebCoreCALayerExtrash">trunk/Source/WebCore/platform/graphics/cocoa/WebCoreCALayerExtras.h</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicscocoaWebCoreCALayerExtrasmm">trunk/Source/WebCore/platform/graphics/cocoa/WebCoreCALayerExtras.mm</a></li>
</ul>
<h3>Removed Paths</h3>
<ul>
<li><a href="#trunkSourceWebCoreplatformgraphicsmacWebCoreCALayerExtrash">trunk/Source/WebCore/platform/graphics/mac/WebCoreCALayerExtras.h</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsmacWebCoreCALayerExtrasmm">trunk/Source/WebCore/platform/graphics/mac/WebCoreCALayerExtras.mm</a></li>
</ul>
</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (168300 => 168301)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2014-05-05 18:08:25 UTC (rev 168300)
+++ trunk/Source/WebCore/ChangeLog        2014-05-05 18:30:02 UTC (rev 168301)
</span><span class="lines">@@ -1,3 +1,29 @@
</span><ins>+2014-05-05 Tim Horton <timothy_horton@apple.com>
+
+ Use a layer delegate instead of web_disableAllActions wherever possible
+ https://bugs.webkit.org/show_bug.cgi?id=132560
+ <rdar://problem/16459284>
+
+ Reviewed by Simon Fraser.
+
+ * WebCore.exp.in:
+ * WebCore.xcodeproj/project.pbxproj:
+ * platform/graphics/ca/mac/PlatformCALayerMac.mm:
+ (PlatformCALayerMac::commonInit):
+ If we own the platform layer, set its delegate to the action-disabling WebActionDisablingCALayerDelegate.
+ If we don't, its actual owner might want to control the delegate, so continue using web_disableAllActions.
+
+ * platform/graphics/cocoa/WebActionDisablingCALayerDelegate.h: Added.
+ * platform/graphics/cocoa/WebActionDisablingCALayerDelegate.mm: Added.
+ (+[WebActionDisablingCALayerDelegate shared]):
+ (-[WebActionDisablingCALayerDelegate actionForLayer:forKey:]):
+ Add a class that can act as the delegate of a CALayer, and disables all actions.
+
+ * platform/graphics/cocoa/WebCoreCALayerExtras.h: Renamed from Source/WebCore/platform/graphics/mac/WebCoreCALayerExtras.h.
+ * platform/graphics/cocoa/WebCoreCALayerExtras.mm: Renamed from Source/WebCore/platform/graphics/mac/WebCoreCALayerExtras.mm.
+ (-[CALayer web_disableAllActions]):
+ Move WebCoreCALayerExtras from mac/ to cocoa/.
+
</ins><span class="cx"> 2014-05-05 Martin Hock <mhock@apple.com>
</span><span class="cx">
</span><span class="cx"> Session-aware plugin autostart data
</span></span></pre></div>
<a id="trunkSourceWebCoreWebCoreexpin"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/WebCore.exp.in (168300 => 168301)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/WebCore.exp.in        2014-05-05 18:08:25 UTC (rev 168300)
+++ trunk/Source/WebCore/WebCore.exp.in        2014-05-05 18:30:02 UTC (rev 168301)
</span><span class="lines">@@ -35,6 +35,7 @@
</span><span class="cx"> .objc_class_name_DOMTextEvent
</span><span class="cx"> .objc_class_name_DOMUIEvent
</span><span class="cx"> .objc_class_name_DOMWheelEvent
</span><ins>+.objc_class_name_WebActionDisablingCALayerDelegate
</ins><span class="cx"> .objc_class_name_WebScriptObject
</span><span class="cx"> .objc_class_name_WebScriptObjectPrivate
</span><span class="cx"> .objc_class_name_WebUndefined
</span></span></pre></div>
<a id="trunkSourceWebCoreWebCorexcodeprojprojectpbxproj"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj (168300 => 168301)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj        2014-05-05 18:08:25 UTC (rev 168300)
+++ trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj        2014-05-05 18:30:02 UTC (rev 168301)
</span><span class="lines">@@ -1059,6 +1059,10 @@
</span><span class="cx">                 2D25396218CE7F6200270222 /* ImageControlsButtonElementMac.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 2D25396018CE7F6200270222 /* ImageControlsButtonElementMac.cpp */; };
</span><span class="cx">                 2D25396318CE7F6200270222 /* ImageControlsButtonElementMac.h in Headers */ = {isa = PBXBuildFile; fileRef = 2D25396118CE7F6200270222 /* ImageControlsButtonElementMac.h */; };
</span><span class="cx">                 2D3A0E3613A7D76100E85AF0 /* SVGParsingError.h in Headers */ = {isa = PBXBuildFile; fileRef = 2D3A0E3513A7D76100E85AF0 /* SVGParsingError.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><ins>+                2D3EF4481917915C00034184 /* WebActionDisablingCALayerDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 2D3EF4441917915C00034184 /* WebActionDisablingCALayerDelegate.h */; settings = {ATTRIBUTES = (Private, ); }; };
+                2D3EF4491917915C00034184 /* WebActionDisablingCALayerDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = 2D3EF4451917915C00034184 /* WebActionDisablingCALayerDelegate.mm */; };
+                2D3EF44A1917915C00034184 /* WebCoreCALayerExtras.h in Headers */ = {isa = PBXBuildFile; fileRef = 2D3EF4461917915C00034184 /* WebCoreCALayerExtras.h */; settings = {ATTRIBUTES = (Private, ); }; };
+                2D3EF44B1917915C00034184 /* WebCoreCALayerExtras.mm in Sources */ = {isa = PBXBuildFile; fileRef = 2D3EF4471917915C00034184 /* WebCoreCALayerExtras.mm */; };
</ins><span class="cx">                 2D46F04E17B96FBD005647F0 /* IntPoint.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 2D46F04D17B96FBD005647F0 /* IntPoint.cpp */; };
</span><span class="cx">                 2D46F05017B96FD2005647F0 /* IntSize.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 2D46F04F17B96FD2005647F0 /* IntSize.cpp */; };
</span><span class="cx">                 2D481F00146B5C4C00AA7834 /* CrossfadeGeneratedImage.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 2D2FC0541460CD6F00263633 /* CrossfadeGeneratedImage.cpp */; };
</span><span class="lines">@@ -1084,8 +1088,6 @@
</span><span class="cx">                 2D9A247515B9C2E300D34527 /* DOMDOMSecurityPolicyInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = 2D9A247115B9C29500D34527 /* DOMDOMSecurityPolicyInternal.h */; };
</span><span class="cx">                 2D9A247615B9C2F400D34527 /* DOMDOMSecurityPolicy.h in Copy Generated Headers */ = {isa = PBXBuildFile; fileRef = 2D9A247015B9C29500D34527 /* DOMDOMSecurityPolicy.h */; };
</span><span class="cx">                 2D9F0E1314FF1CBF00BA0FF7 /* linearSRGB.icc in Resources */ = {isa = PBXBuildFile; fileRef = 2D9F0E1214FF1CBF00BA0FF7 /* linearSRGB.icc */; };
</span><del>-                2DBADE0B188E5915004D7981 /* WebCoreCALayerExtras.h in Headers */ = {isa = PBXBuildFile; fileRef = 2DBADE09188E5915004D7981 /* WebCoreCALayerExtras.h */; settings = {ATTRIBUTES = (Private, ); }; };
-                2DBADE0C188E5915004D7981 /* WebCoreCALayerExtras.mm in Sources */ = {isa = PBXBuildFile; fileRef = 2DBADE0A188E5915004D7981 /* WebCoreCALayerExtras.mm */; };
</del><span class="cx">                 2E0888D41148848A00AF4265 /* JSDOMFormData.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 2E0888D21148848A00AF4265 /* JSDOMFormData.cpp */; };
</span><span class="cx">                 2E0888D51148848A00AF4265 /* JSDOMFormData.h in Headers */ = {isa = PBXBuildFile; fileRef = 2E0888D31148848A00AF4265 /* JSDOMFormData.h */; };
</span><span class="cx">                 2E0888E6114884E200AF4265 /* JSDOMFormDataCustom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 2E0888E5114884E200AF4265 /* JSDOMFormDataCustom.cpp */; };
</span><span class="lines">@@ -7973,6 +7975,10 @@
</span><span class="cx">                 2D2FC0561460CD6F00263633 /* GradientImage.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = GradientImage.cpp; sourceTree = "<group>"; };
</span><span class="cx">                 2D2FC0571460CD6F00263633 /* GradientImage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GradientImage.h; sourceTree = "<group>"; };
</span><span class="cx">                 2D3A0E3513A7D76100E85AF0 /* SVGParsingError.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGParsingError.h; sourceTree = "<group>"; };
</span><ins>+                2D3EF4441917915C00034184 /* WebActionDisablingCALayerDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebActionDisablingCALayerDelegate.h; sourceTree = "<group>"; };
+                2D3EF4451917915C00034184 /* WebActionDisablingCALayerDelegate.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WebActionDisablingCALayerDelegate.mm; sourceTree = "<group>"; };
+                2D3EF4461917915C00034184 /* WebCoreCALayerExtras.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebCoreCALayerExtras.h; sourceTree = "<group>"; };
+                2D3EF4471917915C00034184 /* WebCoreCALayerExtras.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WebCoreCALayerExtras.mm; sourceTree = "<group>"; };
</ins><span class="cx">                 2D46F04D17B96FBD005647F0 /* IntPoint.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = IntPoint.cpp; sourceTree = "<group>"; };
</span><span class="cx">                 2D46F04F17B96FD2005647F0 /* IntSize.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = IntSize.cpp; sourceTree = "<group>"; };
</span><span class="cx">                 2D5BC42516F882BE007048D0 /* SecurityPolicyViolationEvent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SecurityPolicyViolationEvent.h; sourceTree = "<group>"; };
</span><span class="lines">@@ -7993,8 +7999,6 @@
</span><span class="cx">                 2D9A247115B9C29500D34527 /* DOMDOMSecurityPolicyInternal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DOMDOMSecurityPolicyInternal.h; sourceTree = "<group>"; };
</span><span class="cx">                 2D9A247215B9C2C700D34527 /* DOMDOMSecurityPolicy.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = DOMDOMSecurityPolicy.mm; sourceTree = "<group>"; };
</span><span class="cx">                 2D9F0E1214FF1CBF00BA0FF7 /* linearSRGB.icc */ = {isa = PBXFileReference; lastKnownFileType = file; path = linearSRGB.icc; sourceTree = "<group>"; };
</span><del>-                2DBADE09188E5915004D7981 /* WebCoreCALayerExtras.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebCoreCALayerExtras.h; sourceTree = "<group>"; };
-                2DBADE0A188E5915004D7981 /* WebCoreCALayerExtras.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WebCoreCALayerExtras.mm; sourceTree = "<group>"; };
</del><span class="cx">                 2E0888C3114883A900AF4265 /* DOMFormData.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = DOMFormData.idl; sourceTree = "<group>"; };
</span><span class="cx">                 2E0888D21148848A00AF4265 /* JSDOMFormData.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSDOMFormData.cpp; sourceTree = "<group>"; };
</span><span class="cx">                 2E0888D31148848A00AF4265 /* JSDOMFormData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSDOMFormData.h; sourceTree = "<group>"; };
</span><span class="lines">@@ -20043,8 +20047,6 @@
</span><span class="cx">                                 2D6E468217D660F500ECF8BB /* PDFDocumentImageMac.mm */,
</span><span class="cx">                                 163E88F5118A39D200ED9231 /* SimpleFontDataCoreText.cpp */,
</span><span class="cx">                                 B2AFFC770D00A5C10030074D /* SimpleFontDataMac.mm */,
</span><del>-                                2DBADE09188E5915004D7981 /* WebCoreCALayerExtras.h */,
-                                2DBADE0A188E5915004D7981 /* WebCoreCALayerExtras.mm */,
</del><span class="cx">                                 49FFBF3D11C93EE3006A7118 /* WebGLLayer.h */,
</span><span class="cx">                                 49FFBF3E11C93EE3006A7118 /* WebGLLayer.mm */,
</span><span class="cx">                                 0FCF332B0F2B9A25004B6795 /* WebLayer.h */,
</span><span class="lines">@@ -20376,6 +20378,10 @@
</span><span class="cx">                                 1C21E57B183ED1FF001C289D /* IOSurfacePool.h */,
</span><span class="cx">                                 AD9FF6E01908391D003B61E0 /* IOSurfacePoolCocoa.mm */,
</span><span class="cx">                                 B5320D6A122A24E9002D1440 /* FontPlatformDataCocoa.mm */,
</span><ins>+                                2D3EF4441917915C00034184 /* WebActionDisablingCALayerDelegate.h */,
+                                2D3EF4451917915C00034184 /* WebActionDisablingCALayerDelegate.mm */,
+                                2D3EF4461917915C00034184 /* WebCoreCALayerExtras.h */,
+                                2D3EF4471917915C00034184 /* WebCoreCALayerExtras.mm */,
</ins><span class="cx">                         );
</span><span class="cx">                         path = cocoa;
</span><span class="cx">                         sourceTree = "<group>";
</span><span class="lines">@@ -23993,6 +23999,7 @@
</span><span class="cx">                                 934907E4125BBBC8007F23A0 /* GraphicsContextCG.h in Headers */,
</span><span class="cx">                                 A80D67080E9E9DEB00E420F0 /* GraphicsContextPlatformPrivateCG.h in Headers */,
</span><span class="cx">                                 0F580B0D0F12A2690051D689 /* GraphicsLayer.h in Headers */,
</span><ins>+                                2D3EF4481917915C00034184 /* WebActionDisablingCALayerDelegate.h in Headers */,
</ins><span class="cx">                                 499B3ED7128CD31400E726C2 /* GraphicsLayerCA.h in Headers */,
</span><span class="cx">                                 0F580B0E0F12A2690051D689 /* GraphicsLayerClient.h in Headers */,
</span><span class="cx">                                 1AC69593161A1E53003732CB /* GraphicsLayerFactory.h in Headers */,
</span><span class="lines">@@ -25555,6 +25562,7 @@
</span><span class="cx">                                 FD45A952175D3F3E00C21EC8 /* ShapeOutsideInfo.h in Headers */,
</span><span class="cx">                                 FD1AF1501656F15100C6D4F7 /* ShapeValue.h in Headers */,
</span><span class="cx">                                 1A4A954E0B4EDCCB002D8C3C /* SharedBuffer.h in Headers */,
</span><ins>+                                2D3EF44A1917915C00034184 /* WebCoreCALayerExtras.h in Headers */,
</ins><span class="cx">                                 97B1F02F13B025D200F5103F /* SharedBufferChunkReader.h in Headers */,
</span><span class="cx">                                 93309EA3099EB78C0056E581 /* SharedTimer.h in Headers */,
</span><span class="cx">                                 41E1B1D40FF5986900576B3B /* SharedWorker.h in Headers */,
</span><span class="lines">@@ -26150,7 +26158,6 @@
</span><span class="cx">                                 AA478A7F16CD70C3007D1BB4 /* WebAccessibilityObjectWrapperMac.h in Headers */,
</span><span class="cx">                                 A5A7AA43132F0ECC00D3A3C2 /* WebAutocapitalize.h in Headers */,
</span><span class="cx">                                 A56C5B9B189F34570082D13C /* WebConsoleAgent.h in Headers */,
</span><del>-                                2DBADE0B188E5915004D7981 /* WebCoreCALayerExtras.h in Headers */,
</del><span class="cx">                                 93F199A808245E59001E9ABC /* WebCoreFrameView.h in Headers */,
</span><span class="cx">                                 CDC69DDA16371FD4007C38DF /* WebCoreFullScreenPlaceholderView.h in Headers */,
</span><span class="cx">                                 CDC69DD61632026C007C38DF /* WebCoreFullScreenWarningView.h in Headers */,
</span><span class="lines">@@ -26785,6 +26792,7 @@
</span><span class="cx">                                 6ED8C379183BFF8C009E53BD /* BoxShape.cpp in Sources */,
</span><span class="cx">                                 BCEA4854097D93020094C9E4 /* break_lines.cpp in Sources */,
</span><span class="cx">                                 93309DDA099E64920056E581 /* BreakBlockquoteCommand.cpp in Sources */,
</span><ins>+                                2D3EF44B1917915C00034184 /* WebCoreCALayerExtras.mm in Sources */,
</ins><span class="cx">                                 59B597731108656B007159E8 /* BridgeJSC.cpp in Sources */,
</span><span class="cx">                                 F55B3DAF1251F12D003EF269 /* ButtonInputType.cpp in Sources */,
</span><span class="cx">                                 1A569CF70D7E2B82007C3983 /* c_class.cpp in Sources */,
</span><span class="lines">@@ -26925,6 +26933,7 @@
</span><span class="cx">                                 E125F8351822F18A00D84CD9 /* CryptoKeyHMAC.cpp in Sources */,
</span><span class="cx">                                 E19AC3F9182566F700349426 /* CryptoKeyMac.cpp in Sources */,
</span><span class="cx">                                 E1F80B8718317252007885C3 /* CryptoKeyPair.cpp in Sources */,
</span><ins>+                                2D3EF4491917915C00034184 /* WebActionDisablingCALayerDelegate.mm in Sources */,
</ins><span class="cx">                                 E4830A3918F4C59400154A1B /* TileCoverageMap.mm in Sources */,
</span><span class="cx">                                 E164FAA518315E1A00DB4E61 /* CryptoKeyRSAMac.cpp in Sources */,
</span><span class="cx">                                 E125F859182C1AA600D84CD9 /* CryptoKeySerializationRaw.cpp in Sources */,
</span><span class="lines">@@ -29395,7 +29404,6 @@
</span><span class="cx">                                 AA478A8016CD70C3007D1BB4 /* WebAccessibilityObjectWrapperMac.mm in Sources */,
</span><span class="cx">                                 A56C5B9A189F34570082D13C /* WebConsoleAgent.cpp in Sources */,
</span><span class="cx">                                 CD7E05221651C28200C1201F /* WebCoreAVFResourceLoader.mm in Sources */,
</span><del>-                                2DBADE0C188E5915004D7981 /* WebCoreCALayerExtras.mm in Sources */,
</del><span class="cx">                                 CDC69DDB16371FD4007C38DF /* WebCoreFullScreenPlaceholderView.mm in Sources */,
</span><span class="cx">                                 CDC69DD71632026C007C38DF /* WebCoreFullScreenWarningView.mm in Sources */,
</span><span class="cx">                                 CD127DED14F3097D00E84779 /* WebCoreFullScreenWindow.mm in Sources */,
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicscamacPlatformCALayerMacmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/ca/mac/PlatformCALayerMac.mm (168300 => 168301)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/ca/mac/PlatformCALayerMac.mm        2014-05-05 18:08:25 UTC (rev 168300)
+++ trunk/Source/WebCore/platform/graphics/ca/mac/PlatformCALayerMac.mm        2014-05-05 18:30:02 UTC (rev 168301)
</span><span class="lines">@@ -39,6 +39,7 @@
</span><span class="cx"> #import "SoftLinking.h"
</span><span class="cx"> #import "TiledBacking.h"
</span><span class="cx"> #import "TileController.h"
</span><ins>+#import "WebActionDisablingCALayerDelegate.h"
</ins><span class="cx"> #import "WebCoreCALayerExtras.h"
</span><span class="cx"> #import "WebLayer.h"
</span><span class="cx"> #import "WebTiledBackingLayer.h"
</span><span class="lines">@@ -217,10 +218,13 @@
</span><span class="cx"> {
</span><span class="cx"> BEGIN_BLOCK_OBJC_EXCEPTIONS
</span><span class="cx"> // Save a pointer to 'this' in the CALayer
</span><del>- [m_layer.get() setValue:[NSValue valueWithPointer:this] forKey:platformCALayerPointer];
</del><ins>+ [m_layer setValue:[NSValue valueWithPointer:this] forKey:platformCALayerPointer];
</ins><span class="cx">
</span><span class="cx"> // Clear all the implicit animations on the CALayer
</span><del>- [m_layer web_disableAllActions];
</del><ins>+ if (m_layerType == LayerTypeAVPlayerLayer || m_layerType == LayerTypeCustom)
+ [m_layer web_disableAllActions];
+ else
+ [m_layer setDelegate:[WebActionDisablingCALayerDelegate shared]];
</ins><span class="cx">
</span><span class="cx"> // So that the scrolling thread's performance logging code can find all the tiles, mark this as being a tile.
</span><span class="cx"> if (m_layerType == LayerTypeTiledBackingTileLayer)
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicscocoaWebActionDisablingCALayerDelegateh"></a>
<div class="addfile"><h4>Added: trunk/Source/WebCore/platform/graphics/cocoa/WebActionDisablingCALayerDelegate.h (0 => 168301)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/cocoa/WebActionDisablingCALayerDelegate.h         (rev 0)
+++ trunk/Source/WebCore/platform/graphics/cocoa/WebActionDisablingCALayerDelegate.h        2014-05-05 18:30:02 UTC (rev 168301)
</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. ``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
+ * 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 WebActionDisablingCALayerDelegate_h
+#define WebActionDisablingCALayerDelegate_h
+
+@interface WebActionDisablingCALayerDelegate : NSObject
+
++ (instancetype)shared;
+
+@end
+
+#endif // WebActionDisablingCALayerDelegate_h
</ins></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicscocoaWebActionDisablingCALayerDelegatemm"></a>
<div class="addfile"><h4>Added: trunk/Source/WebCore/platform/graphics/cocoa/WebActionDisablingCALayerDelegate.mm (0 => 168301)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/cocoa/WebActionDisablingCALayerDelegate.mm         (rev 0)
+++ trunk/Source/WebCore/platform/graphics/cocoa/WebActionDisablingCALayerDelegate.mm        2014-05-05 18:30:02 UTC (rev 168301)
</span><span class="lines">@@ -0,0 +1,50 @@
</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. ``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
+ * 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 "WebActionDisablingCALayerDelegate.h"
+#import <QuartzCore/QuartzCore.h>
+
+@implementation WebActionDisablingCALayerDelegate
+
++ (instancetype)shared
+{
+ static WebActionDisablingCALayerDelegate *controller;
+ static dispatch_once_t onceToken;
+ dispatch_once(&onceToken, ^{
+ controller = [[WebActionDisablingCALayerDelegate alloc] init];
+ });
+ return controller;
+}
+
+- (id<CAAction>)actionForLayer:(CALayer *)layer forKey:(NSString *)event
+{
+ UNUSED_PARAM(layer);
+ UNUSED_PARAM(event);
+ return (id<CAAction>)[NSNull null];
+}
+
+@end
</ins></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicscocoaWebCoreCALayerExtrash"></a>
<div class="addfile"><h4>Added: trunk/Source/WebCore/platform/graphics/cocoa/WebCoreCALayerExtras.h (0 => 168301)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/cocoa/WebCoreCALayerExtras.h         (rev 0)
+++ trunk/Source/WebCore/platform/graphics/cocoa/WebCoreCALayerExtras.h        2014-05-05 18:30:02 UTC (rev 168301)
</span><span class="lines">@@ -0,0 +1,37 @@
</span><ins>+/*
+ * Copyright (C) 2013, 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. ``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
+ * 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 WebCoreCALayerExtras_h
+#define WebCoreCALayerExtras_h
+
+#import <QuartzCore/QuartzCore.h>
+
+@interface CALayer (WebCoreCALayerExtras)
+
+- (void)web_disableAllActions;
+
+@end
+
+#endif // WebCoreCALayerExtras_h
</ins></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicscocoaWebCoreCALayerExtrasmm"></a>
<div class="addfile"><h4>Added: trunk/Source/WebCore/platform/graphics/cocoa/WebCoreCALayerExtras.mm (0 => 168301)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/cocoa/WebCoreCALayerExtras.mm         (rev 0)
+++ trunk/Source/WebCore/platform/graphics/cocoa/WebCoreCALayerExtras.mm        2014-05-05 18:30:02 UTC (rev 168301)
</span><span class="lines">@@ -0,0 +1,58 @@
</span><ins>+/*
+ * Copyright (C) 2013, 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. ``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
+ * 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 "WebCoreCALayerExtras.h"
+
+@implementation CALayer (WebCoreCALayerExtras)
+
+- (void)web_disableAllActions
+{
+ NSNull *nullValue = [NSNull null];
+ self.style = @{
+ @"actions" : @{
+ @"anchorPoint" : nullValue,
+ @"anchorPointZ" : nullValue,
+ @"backgroundColor" : nullValue,
+ @"borderColor" : nullValue,
+ @"borderWidth" : nullValue,
+ @"bounds" : nullValue,
+ @"contents" : nullValue,
+ @"contentsRect" : nullValue,
+ @"contentsScale" : nullValue,
+ @"cornerRadius" : nullValue,
+ @"opacity" : nullValue,
+ @"position" : nullValue,
+ @"shadowColor" : nullValue,
+ @"sublayerTransform" : nullValue,
+ @"sublayers" : nullValue,
+ @"transform" : nullValue,
+ @"zPosition" : nullValue
+ }
+ };
+}
+
+@end
</ins></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsmacWebCoreCALayerExtrash"></a>
<div class="delfile"><h4>Deleted: trunk/Source/WebCore/platform/graphics/mac/WebCoreCALayerExtras.h (168300 => 168301)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/mac/WebCoreCALayerExtras.h        2014-05-05 18:08:25 UTC (rev 168300)
+++ trunk/Source/WebCore/platform/graphics/mac/WebCoreCALayerExtras.h        2014-05-05 18:30:02 UTC (rev 168301)
</span><span class="lines">@@ -1,37 +0,0 @@
</span><del>-/*
- * Copyright (C) 2013, 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. ``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
- * 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 WebCoreCALayerExtras_h
-#define WebCoreCALayerExtras_h
-
-#import <QuartzCore/QuartzCore.h>
-
-@interface CALayer (WebCoreCALayerExtras)
-
-- (void)web_disableAllActions;
-
-@end
-
-#endif // WebCoreCALayerExtras_h
</del></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsmacWebCoreCALayerExtrasmm"></a>
<div class="delfile"><h4>Deleted: trunk/Source/WebCore/platform/graphics/mac/WebCoreCALayerExtras.mm (168300 => 168301)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/mac/WebCoreCALayerExtras.mm        2014-05-05 18:08:25 UTC (rev 168300)
+++ trunk/Source/WebCore/platform/graphics/mac/WebCoreCALayerExtras.mm        2014-05-05 18:30:02 UTC (rev 168301)
</span><span class="lines">@@ -1,58 +0,0 @@
</span><del>-/*
- * Copyright (C) 2013, 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. ``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
- * 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"
-
-#import "WebCoreCALayerExtras.h"
-
-@implementation CALayer (WebCoreCALayerExtras)
-
-- (void)web_disableAllActions
-{
- NSNull *nullValue = [NSNull null];
- self.style = @{
- @"actions" : @{
- @"anchorPoint" : nullValue,
- @"anchorPointZ" : nullValue,
- @"backgroundColor" : nullValue,
- @"borderColor" : nullValue,
- @"borderWidth" : nullValue,
- @"bounds" : nullValue,
- @"contents" : nullValue,
- @"contentsRect" : nullValue,
- @"contentsScale" : nullValue,
- @"cornerRadius" : nullValue,
- @"opacity" : nullValue,
- @"position" : nullValue,
- @"shadowColor" : nullValue,
- @"sublayerTransform" : nullValue,
- @"sublayers" : nullValue,
- @"transform" : nullValue,
- @"zPosition" : nullValue
- }
- };
-}
-
-@end
</del></span></pre></div>
<a id="trunkSourceWebKit2ChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/ChangeLog (168300 => 168301)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/ChangeLog        2014-05-05 18:08:25 UTC (rev 168300)
+++ trunk/Source/WebKit2/ChangeLog        2014-05-05 18:30:02 UTC (rev 168301)
</span><span class="lines">@@ -1,3 +1,24 @@
</span><ins>+2014-05-05 Tim Horton <timothy_horton@apple.com>
+
+ Use a layer delegate instead of web_disableAllActions wherever possible
+ https://bugs.webkit.org/show_bug.cgi?id=132560
+ <rdar://problem/16459284>
+
+ Reviewed by Simon Fraser.
+
+ * UIProcess/API/mac/WKView.mm:
+ (-[WKView _setAcceleratedCompositingModeRootLayer:]):
+ * UIProcess/ios/RemoteLayerTreeHostIOS.mm:
+ (WebKit::RemoteLayerTreeHost::createLayer):
+ * UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm:
+ (WebKit::RemoteLayerTreeDrawingAreaProxy::showDebugIndicator):
+ * UIProcess/mac/RemoteLayerTreeHost.mm:
+ (WebKit::RemoteLayerTreeHost::createLayer):
+ * UIProcess/mac/ViewGestureControllerMac.mm:
+ (WebKit::ViewGestureController::beginSwipeGesture):
+ Make use of WebActionDisablingCALayerDelegate where possible.
+ Also, UIKit disables actions for us, so don't bother doing anything on iOS.
+
</ins><span class="cx"> 2014-05-05 Martin Hock <mhock@apple.com>
</span><span class="cx">
</span><span class="cx"> Session-aware plugin autostart data
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessAPImacWKViewmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/API/mac/WKView.mm (168300 => 168301)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/API/mac/WKView.mm        2014-05-05 18:08:25 UTC (rev 168300)
+++ trunk/Source/WebKit2/UIProcess/API/mac/WKView.mm        2014-05-05 18:30:02 UTC (rev 168301)
</span><span class="lines">@@ -90,6 +90,7 @@
</span><span class="cx"> #import <WebCore/Region.h>
</span><span class="cx"> #import <WebCore/SharedBuffer.h>
</span><span class="cx"> #import <WebCore/TextAlternativeWithRange.h>
</span><ins>+#import <WebCore/WebActionDisablingCALayerDelegate.h>
</ins><span class="cx"> #import <WebCore/WebCoreCALayerExtras.h>
</span><span class="cx"> #import <WebCore/WebCoreFullScreenPlaceholderView.h>
</span><span class="cx"> #import <WebCore/WebCoreFullScreenWindow.h>
</span><span class="lines">@@ -2997,7 +2998,7 @@
</span><span class="cx">
</span><span class="cx"> // Create a root layer that will back the NSView.
</span><span class="cx"> RetainPtr<CALayer> layer = adoptNS([[CALayer alloc] init]);
</span><del>- [layer web_disableAllActions];
</del><ins>+ [layer setDelegate:[WebActionDisablingCALayerDelegate shared]];
</ins><span class="cx"> #ifndef NDEBUG
</span><span class="cx"> [layer setName:@"Hosting root layer"];
</span><span class="cx"> #endif
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessiosRemoteLayerTreeHostIOSmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/ios/RemoteLayerTreeHostIOS.mm (168300 => 168301)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/ios/RemoteLayerTreeHostIOS.mm        2014-05-05 18:08:25 UTC (rev 168300)
+++ trunk/Source/WebKit2/UIProcess/ios/RemoteLayerTreeHostIOS.mm        2014-05-05 18:30:02 UTC (rev 168301)
</span><span class="lines">@@ -28,13 +28,10 @@
</span><span class="cx"> #if PLATFORM(IOS)
</span><span class="cx">
</span><span class="cx"> #import "RemoteLayerTreeHost.h"
</span><del>-
-#import <WebCore/WebCoreCALayerExtras.h>
</del><ins>+#import <QuartzCore/QuartzCore.h>
+#import <UIKit/UIScrollView.h>
</ins><span class="cx"> #import <WebKitSystemInterface.h>
</span><span class="cx">
</span><del>-#import <UIKit/UIScrollView.h>
-#import <QuartzCore/QuartzCore.h>
-
</del><span class="cx"> using namespace WebCore;
</span><span class="cx">
</span><span class="cx"> @interface CALayer(WKLayerInternal)
</span><span class="lines">@@ -133,9 +130,9 @@
</span><span class="cx">
</span><span class="cx"> LayerOrView *RemoteLayerTreeHost::createLayer(const RemoteLayerTreeTransaction::LayerCreationProperties& properties, const RemoteLayerTreeTransaction::LayerProperties* layerProperties)
</span><span class="cx"> {
</span><del>- RetainPtr<LayerOrView>& layerOrView = m_layers.add(properties.layerID, nullptr).iterator->value;
</del><ins>+ RetainPtr<LayerOrView>& view = m_layers.add(properties.layerID, nullptr).iterator->value;
</ins><span class="cx">
</span><del>- ASSERT(!layerOrView);
</del><ins>+ ASSERT(!view);
</ins><span class="cx">
</span><span class="cx"> switch (properties.type) {
</span><span class="cx"> case PlatformCALayer::LayerTypeLayer:
</span><span class="lines">@@ -146,28 +143,26 @@
</span><span class="cx"> case PlatformCALayer::LayerTypePageTiledBackingLayer:
</span><span class="cx"> case PlatformCALayer::LayerTypeTiledBackingTileLayer:
</span><span class="cx"> if (layerProperties && layerProperties->customBehavior == GraphicsLayer::CustomScrollingBehavior)
</span><del>- layerOrView = adoptNS([[UIScrollView alloc] init]);
</del><ins>+ view = adoptNS([[UIScrollView alloc] init]);
</ins><span class="cx"> else
</span><del>- layerOrView = adoptNS([[WKCompositingView alloc] init]);
</del><ins>+ view = adoptNS([[WKCompositingView alloc] init]);
</ins><span class="cx"> break;
</span><span class="cx"> case PlatformCALayer::LayerTypeTransformLayer:
</span><del>- layerOrView = adoptNS([[WKTransformView alloc] init]);
</del><ins>+ view = adoptNS([[WKTransformView alloc] init]);
</ins><span class="cx"> break;
</span><span class="cx"> case PlatformCALayer::LayerTypeCustom:
</span><span class="cx"> if (!m_isDebugLayerTreeHost)
</span><del>- layerOrView = adoptNS([[WKRemoteView alloc] initWithFrame:CGRectZero contextID:properties.hostingContextID]);
</del><ins>+ view = adoptNS([[WKRemoteView alloc] initWithFrame:CGRectZero contextID:properties.hostingContextID]);
</ins><span class="cx"> else
</span><del>- layerOrView = adoptNS([[WKCompositingView alloc] init]);
</del><ins>+ view = adoptNS([[WKCompositingView alloc] init]);
</ins><span class="cx"> break;
</span><span class="cx"> default:
</span><span class="cx"> ASSERT_NOT_REACHED();
</span><span class="cx"> }
</span><span class="cx">
</span><del>- // FIXME: Do through the view.
- [[layerOrView layer] web_disableAllActions];
- setLayerID([layerOrView layer], properties.layerID);
</del><ins>+ setLayerID([view layer], properties.layerID);
</ins><span class="cx">
</span><del>- return layerOrView.get();
</del><ins>+ return view.get();
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> } // namespace WebKit
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessmacRemoteLayerTreeDrawingAreaProxymm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm (168300 => 168301)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm        2014-05-05 18:08:25 UTC (rev 168300)
+++ trunk/Source/WebKit2/UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm        2014-05-05 18:30:02 UTC (rev 168301)
</span><span class="lines">@@ -32,8 +32,9 @@
</span><span class="cx"> #import "RemoteScrollingCoordinatorProxy.h"
</span><span class="cx"> #import "WebPageProxy.h"
</span><span class="cx"> #import "WebProcessProxy.h"
</span><ins>+#import <QuartzCore/QuartzCore.h>
</ins><span class="cx"> #import <WebCore/IOSurfacePool.h>
</span><del>-#import <WebCore/WebCoreCALayerExtras.h>
</del><ins>+#import <WebCore/WebActionDisablingCALayerDelegate.h>
</ins><span class="cx">
</span><span class="cx"> static const CFIndex CoreAnimationCommitRunLoopOrder = 2000000;
</span><span class="cx"> static const CFIndex DidCommitLayersRunLoopOrder = CoreAnimationCommitRunLoopOrder + 1;
</span><span class="lines">@@ -264,7 +265,7 @@
</span><span class="cx">
</span><span class="cx"> m_tileMapHostLayer = adoptNS([[CALayer alloc] init]);
</span><span class="cx"> [m_tileMapHostLayer setName:@"Tile map host"];
</span><del>- [m_tileMapHostLayer web_disableAllActions];
</del><ins>+ [m_tileMapHostLayer setDelegate:[WebActionDisablingCALayerDelegate shared]];
</ins><span class="cx"> [m_tileMapHostLayer setAnchorPoint:CGPointZero];
</span><span class="cx"> [m_tileMapHostLayer setOpacity:0.8];
</span><span class="cx"> [m_tileMapHostLayer setMasksToBounds:YES];
</span><span class="lines">@@ -282,7 +283,7 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> m_exposedRectIndicatorLayer = adoptNS([[CALayer alloc] init]);
</span><del>- [m_exposedRectIndicatorLayer web_disableAllActions];
</del><ins>+ [m_exposedRectIndicatorLayer setDelegate:[WebActionDisablingCALayerDelegate shared]];
</ins><span class="cx"> [m_exposedRectIndicatorLayer setAnchorPoint:CGPointZero];
</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 (168300 => 168301)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/mac/RemoteLayerTreeHost.mm        2014-05-05 18:08:25 UTC (rev 168300)
+++ trunk/Source/WebKit2/UIProcess/mac/RemoteLayerTreeHost.mm        2014-05-05 18:30:02 UTC (rev 168301)
</span><span class="lines">@@ -33,7 +33,7 @@
</span><span class="cx"> #import "WebPageProxy.h"
</span><span class="cx"> #import "WebProcessProxy.h"
</span><span class="cx"> #import <WebCore/PlatformLayer.h>
</span><del>-#import <WebCore/WebCoreCALayerExtras.h>
</del><ins>+#import <WebCore/WebActionDisablingCALayerDelegate.h>
</ins><span class="cx"> #import <WebKitSystemInterface.h>
</span><span class="cx">
</span><span class="cx"> #import <QuartzCore/QuartzCore.h>
</span><span class="lines">@@ -160,7 +160,7 @@
</span><span class="cx"> ASSERT_NOT_REACHED();
</span><span class="cx"> }
</span><span class="cx">
</span><del>- [layer web_disableAllActions];
</del><ins>+ [layer setDelegate:[WebActionDisablingCALayerDelegate shared]];
</ins><span class="cx"> setLayerID(layer.get(), properties.layerID);
</span><span class="cx">
</span><span class="cx"> return layer.get();
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessmacViewGestureControllerMacmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/mac/ViewGestureControllerMac.mm (168300 => 168301)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/mac/ViewGestureControllerMac.mm        2014-05-05 18:08:25 UTC (rev 168300)
+++ trunk/Source/WebKit2/UIProcess/mac/ViewGestureControllerMac.mm        2014-05-05 18:30:02 UTC (rev 168301)
</span><span class="lines">@@ -41,7 +41,7 @@
</span><span class="cx"> #import <Cocoa/Cocoa.h>
</span><span class="cx"> #import <QuartzCore/QuartzCore.h>
</span><span class="cx"> #import <WebCore/IOSurface.h>
</span><del>-#import <WebCore/WebCoreCALayerExtras.h>
</del><ins>+#import <WebCore/WebActionDisablingCALayerDelegate.h>
</ins><span class="cx">
</span><span class="cx"> #if defined(__has_include) && __has_include(<QuartzCore/QuartzCorePrivate.h>)
</span><span class="cx"> #import <QuartzCore/QuartzCorePrivate.h>
</span><span class="lines">@@ -546,14 +546,14 @@
</span><span class="cx"> [m_swipeLayer setFrame:swipeArea];
</span><span class="cx"> [m_swipeLayer setName:@"Gesture Swipe Root Layer"];
</span><span class="cx"> [m_swipeLayer setGeometryFlipped:geometryIsFlippedToRoot];
</span><del>- [m_swipeLayer web_disableAllActions];
</del><ins>+ [m_swipeLayer setDelegate:[WebActionDisablingCALayerDelegate shared]];
</ins><span class="cx">
</span><span class="cx"> [m_swipeSnapshotLayer setContentsGravity:kCAGravityTopLeft];
</span><span class="cx"> [m_swipeSnapshotLayer setContentsScale:m_webPageProxy.deviceScaleFactor()];
</span><span class="cx"> [m_swipeSnapshotLayer setAnchorPoint:CGPointZero];
</span><span class="cx"> [m_swipeSnapshotLayer setFrame:CGRectMake(0, 0, swipeArea.width(), swipeArea.height() - topContentInset)];
</span><span class="cx"> [m_swipeSnapshotLayer setName:@"Gesture Swipe Snapshot Layer"];
</span><del>- [m_swipeSnapshotLayer web_disableAllActions];
</del><ins>+ [m_swipeSnapshotLayer setDelegate:[WebActionDisablingCALayerDelegate shared]];
</ins><span class="cx">
</span><span class="cx"> [m_swipeLayer addSublayer:m_swipeSnapshotLayer.get()];
</span><span class="cx">
</span></span></pre>
</div>
</div>
</body>
</html>