Title: [170610] trunk/Source/WebKit2
Revision
170610
Author
[email protected]
Date
2014-06-30 15:58:36 -0700 (Mon, 30 Jun 2014)

Log Message

[iOS WK2] Don't crash on status bar tap with overflow scroll views
https://bugs.webkit.org/show_bug.cgi?id=134459

Reviewed by Tim Horton.

The tiled scrolling indicator parents UIViews under CALayers, but that causes
those views to miss -willMoveToWindow:nil notifications on teardown. This can leave
deleted UIScrollViews in UIKit's "scroll to top" list.

Fix by not making UIScrollViews in the debug layer tree host.

* UIProcess/ios/RemoteLayerTreeHostIOS.mm:
(WebKit::RemoteLayerTreeHost::createLayer):

Modified Paths

Diff

Modified: trunk/Source/WebKit2/ChangeLog (170609 => 170610)


--- trunk/Source/WebKit2/ChangeLog	2014-06-30 22:52:32 UTC (rev 170609)
+++ trunk/Source/WebKit2/ChangeLog	2014-06-30 22:58:36 UTC (rev 170610)
@@ -1,3 +1,19 @@
+2014-06-30  Simon Fraser  <[email protected]>
+
+        [iOS WK2] Don't crash on status bar tap with overflow scroll views
+        https://bugs.webkit.org/show_bug.cgi?id=134459
+
+        Reviewed by Tim Horton.
+        
+        The tiled scrolling indicator parents UIViews under CALayers, but that causes
+        those views to miss -willMoveToWindow:nil notifications on teardown. This can leave
+        deleted UIScrollViews in UIKit's "scroll to top" list.
+        
+        Fix by not making UIScrollViews in the debug layer tree host.
+
+        * UIProcess/ios/RemoteLayerTreeHostIOS.mm:
+        (WebKit::RemoteLayerTreeHost::createLayer):
+
 2014-06-28  Oliver Hunt  <[email protected]>
 
        Restrict network process sandbox

Modified: trunk/Source/WebKit2/UIProcess/ios/RemoteLayerTreeHostIOS.mm (170609 => 170610)


--- trunk/Source/WebKit2/UIProcess/ios/RemoteLayerTreeHostIOS.mm	2014-06-30 22:52:32 UTC (rev 170609)
+++ trunk/Source/WebKit2/UIProcess/ios/RemoteLayerTreeHostIOS.mm	2014-06-30 22:58:36 UTC (rev 170610)
@@ -140,9 +140,12 @@
     case PlatformCALayer::LayerTypeTiledBackingLayer:
     case PlatformCALayer::LayerTypePageTiledBackingLayer:
     case PlatformCALayer::LayerTypeTiledBackingTileLayer:
-        if (layerProperties && layerProperties->customBehavior == GraphicsLayer::CustomScrollingBehavior)
-            view = adoptNS([[UIScrollView alloc] init]);
-        else
+        if (layerProperties && layerProperties->customBehavior == GraphicsLayer::CustomScrollingBehavior) {
+            if (!m_isDebugLayerTreeHost)
+                view = adoptNS([[UIScrollView alloc] init]);
+            else // The debug indicator parents views under layers, which can cause crashes with UIScrollView.
+                view = adoptNS([[UIView alloc] init]);
+        } else
             view = adoptNS([[WKCompositingView alloc] init]);
         break;
     case PlatformCALayer::LayerTypeTransformLayer:
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to