Title: [158481] trunk/Source/WebKit2
Revision
158481
Author
timothy_hor...@apple.com
Date
2013-11-01 19:23:00 -0700 (Fri, 01 Nov 2013)

Log Message

Remote Layer Tree: Crashes allocating incredibly large backing store for tiled backing layers
https://bugs.webkit.org/show_bug.cgi?id=123651

Reviewed by Simon Fraser.

* Shared/mac/RemoteLayerBackingStore.mm:
(RemoteLayerBackingStore::display):
(RemoteLayerBackingStore::drawInContext):
We can't dirty the whole layer if we have no existing front buffer if
we have no paints, because that will lead to layers which were never
setNeedsDisplay()'d getting backing store. Added back an assertion
that will catch this, too.

Modified Paths

Diff

Modified: trunk/Source/WebKit2/ChangeLog (158480 => 158481)


--- trunk/Source/WebKit2/ChangeLog	2013-11-02 02:13:19 UTC (rev 158480)
+++ trunk/Source/WebKit2/ChangeLog	2013-11-02 02:23:00 UTC (rev 158481)
@@ -1,3 +1,18 @@
+2013-11-01  Tim Horton  <timothy_hor...@apple.com>
+
+        Remote Layer Tree: Crashes allocating incredibly large backing store for tiled backing layers
+        https://bugs.webkit.org/show_bug.cgi?id=123651
+
+        Reviewed by Simon Fraser.
+
+        * Shared/mac/RemoteLayerBackingStore.mm:
+        (RemoteLayerBackingStore::display):
+        (RemoteLayerBackingStore::drawInContext):
+        We can't dirty the whole layer if we have no existing front buffer if
+        we have no paints, because that will lead to layers which were never
+        setNeedsDisplay()'d getting backing store. Added back an assertion
+        that will catch this, too.
+
 2013-11-01  Dan Bernstein  <m...@apple.com>
 
         [Cocoa] WKObject seems to be initializing its target in a thread-safe manner, but really is not

Modified: trunk/Source/WebKit2/Shared/mac/RemoteLayerBackingStore.mm (158480 => 158481)


--- trunk/Source/WebKit2/Shared/mac/RemoteLayerBackingStore.mm	2013-11-02 02:13:19 UTC (rev 158480)
+++ trunk/Source/WebKit2/Shared/mac/RemoteLayerBackingStore.mm	2013-11-02 02:23:00 UTC (rev 158481)
@@ -192,12 +192,12 @@
         return previouslyDrewContents;
     }
 
+    if (m_dirtyRegion.isEmpty() || m_size.isEmpty())
+        return false;
+
     if (!hasFrontBuffer())
         m_dirtyRegion.unite(IntRect(IntPoint(), m_size));
 
-    if (m_dirtyRegion.isEmpty() || m_size.isEmpty())
-        return false;
-
     if (m_layer->owner()->platformCALayerShowRepaintCounter(m_layer)) {
         IntRect indicatorRect = mapToContentCoordinates(IntRect(0, 0, 52, 27));
         m_dirtyRegion.unite(indicatorRect);
@@ -289,6 +289,7 @@
         case PlatformCALayer::LayerTypeRootLayer:
         case PlatformCALayer::LayerTypeAVPlayerLayer:
         case PlatformCALayer::LayerTypeCustom:
+            ASSERT_NOT_REACHED();
             break;
     };
 
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to