Title: [120117] trunk/Source
- Revision
- 120117
- Author
- [email protected]
- Date
- 2012-06-12 13:54:41 -0700 (Tue, 12 Jun 2012)
Log Message
[chromium] REGRESSION(119769): Canvas2DLayerBridge may go away before its TextureLayerChromium
https://bugs.webkit.org/show_bug.cgi?id=88910
Reviewed by Adrienne Walker.
Source/WebCore:
Unregister the bridge as its TextureLayerChromium client when going away.
Covered by new unit test in Canvas2DLayerBridgeTest.cpp.
* platform/graphics/chromium/Canvas2DLayerBridge.cpp:
(WebCore::Canvas2DLayerBridge::~Canvas2DLayerBridge):
Source/WebKit/chromium:
New unit test to verify that we can still update a TextureLayerChromium after the bridge owning it has gone
away.
* tests/Canvas2DLayerBridgeTest.cpp:
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (120116 => 120117)
--- trunk/Source/WebCore/ChangeLog 2012-06-12 20:54:12 UTC (rev 120116)
+++ trunk/Source/WebCore/ChangeLog 2012-06-12 20:54:41 UTC (rev 120117)
@@ -1,3 +1,17 @@
+2012-06-12 James Robinson <[email protected]>
+
+ [chromium] REGRESSION(119769): Canvas2DLayerBridge may go away before its TextureLayerChromium
+ https://bugs.webkit.org/show_bug.cgi?id=88910
+
+ Reviewed by Adrienne Walker.
+
+ Unregister the bridge as its TextureLayerChromium client when going away.
+
+ Covered by new unit test in Canvas2DLayerBridgeTest.cpp.
+
+ * platform/graphics/chromium/Canvas2DLayerBridge.cpp:
+ (WebCore::Canvas2DLayerBridge::~Canvas2DLayerBridge):
+
2012-06-12 Alec Flett <[email protected]>
IndexedDB: Error codes, phase two
Modified: trunk/Source/WebCore/platform/graphics/chromium/Canvas2DLayerBridge.cpp (120116 => 120117)
--- trunk/Source/WebCore/platform/graphics/chromium/Canvas2DLayerBridge.cpp 2012-06-12 20:54:12 UTC (rev 120116)
+++ trunk/Source/WebCore/platform/graphics/chromium/Canvas2DLayerBridge.cpp 2012-06-12 20:54:41 UTC (rev 120117)
@@ -106,6 +106,7 @@
GLC(m_context.get(), m_context->deleteTexture(m_frontBufferTexture));
m_context->flush();
}
+ m_layer->clearClient();
}
SkCanvas* Canvas2DLayerBridge::skCanvas(SkDevice* device)
Modified: trunk/Source/WebKit/chromium/ChangeLog (120116 => 120117)
--- trunk/Source/WebKit/chromium/ChangeLog 2012-06-12 20:54:12 UTC (rev 120116)
+++ trunk/Source/WebKit/chromium/ChangeLog 2012-06-12 20:54:41 UTC (rev 120117)
@@ -1,3 +1,15 @@
+2012-06-12 James Robinson <[email protected]>
+
+ [chromium] REGRESSION(119769): Canvas2DLayerBridge may go away before its TextureLayerChromium
+ https://bugs.webkit.org/show_bug.cgi?id=88910
+
+ Reviewed by Adrienne Walker.
+
+ New unit test to verify that we can still update a TextureLayerChromium after the bridge owning it has gone
+ away.
+
+ * tests/Canvas2DLayerBridgeTest.cpp:
+
2012-06-12 Adrienne Walker <[email protected]>
[chromium] Fix incorrect LayerChromium scroll position for RTL overflow pages
Modified: trunk/Source/WebKit/chromium/tests/Canvas2DLayerBridgeTest.cpp (120116 => 120117)
--- trunk/Source/WebKit/chromium/tests/Canvas2DLayerBridgeTest.cpp 2012-06-12 20:54:12 UTC (rev 120116)
+++ trunk/Source/WebKit/chromium/tests/Canvas2DLayerBridgeTest.cpp 2012-06-12 20:54:41 UTC (rev 120117)
@@ -152,5 +152,17 @@
fullLifecycleTest(Threaded, Deferred);
}
+TEST(Canvas2DLayerBridgeTest2, testClearClient)
+{
+ GraphicsContext3D::Attributes attrs;
+
+ RefPtr<GraphicsContext3D> mainContext = GraphicsContext3DPrivate::createGraphicsContextFromWebContext(adoptPtr(new MockCanvasContext()), GraphicsContext3D::RenderDirectlyToHostWindow);
+ OwnPtr<Canvas2DLayerBridge> bridge = Canvas2DLayerBridge::create(mainContext.get(), IntSize(100, 100), Deferred, 1);
+ RefPtr<LayerChromium> layer = bridge->layer();
+ bridge.clear();
+ CCTextureUpdater updater;
+ layer->update(updater, 0);
+}
+
} // namespace
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes