Title: [102180] trunk/Source/WebCore
Revision
102180
Author
e...@google.com
Date
2011-12-06 14:26:27 -0800 (Tue, 06 Dec 2011)

Log Message

[chromium] Don't crash if tile upload happens without painting first
https://bugs.webkit.org/show_bug.cgi?id=73939

Reviewed by James Robinson.

Remove at least one place (in ImageLayerChromium) where this could
happen.

Although this shouldn't happen, we should be robust to it in the
chance that other code causes it to.

* platform/graphics/chromium/ImageLayerChromium.cpp:
(WebCore::ImageLayerChromium::paintContentsIfDirty):
* platform/graphics/chromium/TiledLayerChromium.cpp:
(WebCore::TiledLayerChromium::updateCompositorResources):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (102179 => 102180)


--- trunk/Source/WebCore/ChangeLog	2011-12-06 22:12:56 UTC (rev 102179)
+++ trunk/Source/WebCore/ChangeLog	2011-12-06 22:26:27 UTC (rev 102180)
@@ -1,3 +1,21 @@
+2011-12-06  Adrienne Walker  <e...@google.com>
+
+        [chromium] Don't crash if tile upload happens without painting first
+        https://bugs.webkit.org/show_bug.cgi?id=73939
+
+        Reviewed by James Robinson.
+
+        Remove at least one place (in ImageLayerChromium) where this could
+        happen.
+
+        Although this shouldn't happen, we should be robust to it in the
+        chance that other code causes it to.
+
+        * platform/graphics/chromium/ImageLayerChromium.cpp:
+        (WebCore::ImageLayerChromium::paintContentsIfDirty):
+        * platform/graphics/chromium/TiledLayerChromium.cpp:
+        (WebCore::TiledLayerChromium::updateCompositorResources):
+
 2011-12-06  Ruben  <chrom...@hybridsource.org>
 
         Enable web audio by default on non-Mac POSIX platforms

Modified: trunk/Source/WebCore/platform/graphics/chromium/ImageLayerChromium.cpp (102179 => 102180)


--- trunk/Source/WebCore/platform/graphics/chromium/ImageLayerChromium.cpp	2011-12-06 22:12:56 UTC (rev 102179)
+++ trunk/Source/WebCore/platform/graphics/chromium/ImageLayerChromium.cpp	2011-12-06 22:26:27 UTC (rev 102180)
@@ -178,9 +178,6 @@
         }
     }
 
-    if (visibleLayerRect().isEmpty())
-        return;
-
     prepareToUpdate(visibleLayerRect());
 }
 

Modified: trunk/Source/WebCore/platform/graphics/chromium/TiledLayerChromium.cpp (102179 => 102180)


--- trunk/Source/WebCore/platform/graphics/chromium/TiledLayerChromium.cpp	2011-12-06 22:12:56 UTC (rev 102179)
+++ trunk/Source/WebCore/platform/graphics/chromium/TiledLayerChromium.cpp	2011-12-06 22:26:27 UTC (rev 102180)
@@ -174,8 +174,12 @@
 
 void TiledLayerChromium::updateCompositorResources(GraphicsContext3D*, CCTextureUpdater& updater)
 {
+    // If this assert is hit, it means that paintContentsIfDirty hasn't been
+    // called on this layer. Any layer that is updated should be painted first.
+    ASSERT(m_tiler);
+
     // Painting could cause compositing to get turned off, which may cause the tiler to become invalidated mid-update.
-    if (m_skipsDraw || m_requestedUpdateRect.isEmpty() || !m_tiler->numTiles())
+    if (m_skipsDraw || m_requestedUpdateRect.isEmpty() || !m_tiler || !m_tiler->numTiles())
         return;
 
     int left, top, right, bottom;
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to