Title: [124385] trunk/Source
Revision
124385
Author
[email protected]
Date
2012-08-01 16:48:45 -0700 (Wed, 01 Aug 2012)

Log Message

[chromium] Fix lost context handling on hud layer
https://bugs.webkit.org/show_bug.cgi?id=92915

Reviewed by Adrienne Walker.

On lost context we need to release CCScopedTextures, otherwise later on
we will try to re-allocate it using a stale CCResourceProvider.

Test CCLayerTreeHostImplTest.dontUseOldResourcesAfterLostContext
extended.

Source/WebCore:

* platform/graphics/chromium/cc/CCHeadsUpDisplayLayerImpl.cpp:
(WebCore::CCHeadsUpDisplayLayerImpl::didLoseContext):
* platform/graphics/chromium/cc/CCHeadsUpDisplayLayerImpl.h:

Source/WebKit/chromium:

* tests/CCLayerTreeHostImplTest.cpp:

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (124384 => 124385)


--- trunk/Source/WebCore/ChangeLog	2012-08-01 23:43:54 UTC (rev 124384)
+++ trunk/Source/WebCore/ChangeLog	2012-08-01 23:48:45 UTC (rev 124385)
@@ -1,3 +1,20 @@
+2012-08-01  Antoine Labour  <[email protected]>
+
+        [chromium] Fix lost context handling on hud layer
+        https://bugs.webkit.org/show_bug.cgi?id=92915
+
+        Reviewed by Adrienne Walker.
+
+        On lost context we need to release CCScopedTextures, otherwise later on
+        we will try to re-allocate it using a stale CCResourceProvider.
+
+        Test CCLayerTreeHostImplTest.dontUseOldResourcesAfterLostContext
+        extended.
+
+        * platform/graphics/chromium/cc/CCHeadsUpDisplayLayerImpl.cpp:
+        (WebCore::CCHeadsUpDisplayLayerImpl::didLoseContext):
+        * platform/graphics/chromium/cc/CCHeadsUpDisplayLayerImpl.h:
+
 2012-08-01  Kwang Yul Seo  <[email protected]>
 
         Read tag names and attributes from the saved tokens in HTMLElementStack

Modified: trunk/Source/WebCore/platform/graphics/chromium/cc/CCHeadsUpDisplayLayerImpl.cpp (124384 => 124385)


--- trunk/Source/WebCore/platform/graphics/chromium/cc/CCHeadsUpDisplayLayerImpl.cpp	2012-08-01 23:43:54 UTC (rev 124384)
+++ trunk/Source/WebCore/platform/graphics/chromium/cc/CCHeadsUpDisplayLayerImpl.cpp	2012-08-01 23:48:45 UTC (rev 124385)
@@ -109,7 +109,7 @@
 
 void CCHeadsUpDisplayLayerImpl::didLoseContext()
 {
-    m_hudTexture->leak();
+    m_hudTexture.clear();
 }
 
 void CCHeadsUpDisplayLayerImpl::drawHudContents(SkCanvas* canvas)

Modified: trunk/Source/WebCore/platform/graphics/chromium/cc/CCHeadsUpDisplayLayerImpl.h (124384 => 124385)


--- trunk/Source/WebCore/platform/graphics/chromium/cc/CCHeadsUpDisplayLayerImpl.h	2012-08-01 23:43:54 UTC (rev 124384)
+++ trunk/Source/WebCore/platform/graphics/chromium/cc/CCHeadsUpDisplayLayerImpl.h	2012-08-01 23:48:45 UTC (rev 124385)
@@ -26,6 +26,7 @@
 #ifndef CCHeadsUpDisplayLayerImpl_h
 #define CCHeadsUpDisplayLayerImpl_h
 
+#include "cc/CCFontAtlas.h"
 #include "cc/CCLayerImpl.h"
 #include "cc/CCScopedTexture.h"
 

Modified: trunk/Source/WebKit/chromium/ChangeLog (124384 => 124385)


--- trunk/Source/WebKit/chromium/ChangeLog	2012-08-01 23:43:54 UTC (rev 124384)
+++ trunk/Source/WebKit/chromium/ChangeLog	2012-08-01 23:48:45 UTC (rev 124385)
@@ -1,3 +1,18 @@
+2012-08-01  Antoine Labour  <[email protected]>
+
+        [chromium] Fix lost context handling on hud layer
+        https://bugs.webkit.org/show_bug.cgi?id=92915
+
+        Reviewed by Adrienne Walker.
+
+        On lost context we need to release CCScopedTextures, otherwise later on
+        we will try to re-allocate it using a stale CCResourceProvider.
+
+        Test CCLayerTreeHostImplTest.dontUseOldResourcesAfterLostContext
+        extended.
+
+        * tests/CCLayerTreeHostImplTest.cpp:
+
 2012-08-01  Nico Weber  <[email protected]>
 
         [chromium/mac] Delete WebImageCG.cpp

Modified: trunk/Source/WebKit/chromium/tests/CCLayerTreeHostImplTest.cpp (124384 => 124385)


--- trunk/Source/WebKit/chromium/tests/CCLayerTreeHostImplTest.cpp	2012-08-01 23:43:54 UTC (rev 124384)
+++ trunk/Source/WebKit/chromium/tests/CCLayerTreeHostImplTest.cpp	2012-08-01 23:48:45 UTC (rev 124385)
@@ -32,6 +32,7 @@
 #include "CCTestCommon.h"
 #include "FakeWebGraphicsContext3D.h"
 #include "LayerRendererChromium.h"
+#include "cc/CCHeadsUpDisplayLayerImpl.h"
 #include "cc/CCIOSurfaceLayerImpl.h"
 #include "cc/CCLayerImpl.h"
 #include "cc/CCLayerTilingData.h"
@@ -2335,6 +2336,14 @@
     ioSurfaceLayer->setLayerTreeHostImpl(m_hostImpl.get());
     rootLayer->addChild(ioSurfaceLayer.release());
 
+    OwnPtr<CCHeadsUpDisplayLayerImpl> hudLayer = CCHeadsUpDisplayLayerImpl::create(6, nullptr);
+    hudLayer->setBounds(IntSize(10, 10));
+    hudLayer->setAnchorPoint(FloatPoint(0, 0));
+    hudLayer->setContentBounds(IntSize(10, 10));
+    hudLayer->setDrawsContent(true);
+    hudLayer->setLayerTreeHostImpl(m_hostImpl.get());
+    rootLayer->addChild(hudLayer.release());
+
     // Use a context that supports IOSurfaces
     m_hostImpl->initializeLayerRenderer(CCGraphicsContext::create3D(adoptPtr(new FakeWebGraphicsContext3DWithIOSurface)), UnthrottledUploader);
 
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to