Summary: | SHOULD NEVER BE REACHED assertion when switching tabs with composited content | ||||||||
---|---|---|---|---|---|---|---|---|---|
Product: | WebKit | Reporter: | Simon Fraser (smfr) <simon.fraser> | ||||||
Component: | Layout and Rendering | Assignee: | Simon Fraser (smfr) <simon.fraser> | ||||||
Status: | RESOLVED FIXED | ||||||||
Severity: | Normal | ||||||||
Priority: | P2 | ||||||||
Version: | 528+ (Nightly build) | ||||||||
Hardware: | Mac | ||||||||
OS: | OS X 10.5 | ||||||||
Attachments: |
|
The issue here is that as the root layer attachment changes, setDrawsContent(true) gets called on the RenderView's compositing layer, which in turn cause a -setNeedsDisplay. That should never happen. Created attachment 62970 [details]
Patch
Comment on attachment 62970 [details]
Patch
Can you land a manual test? Just an HTML file with steps to reproduce in it. We do have a directory full of manual tests, although I’m not sure we get maximum value from them.
http://trac.webkit.org/changeset/64296, including manual test. |
Created attachment 62909 [details] Testcase Load the attached testcase in Safari, switch to another tab, then switch back. You often hit: SHOULD NEVER BE REACHED (RenderLayerBacking.cpp:941 void WebCore::RenderLayerBacking::paintIntoLayer(WebCore::RenderLayer*, WebCore::GraphicsContext*, const WebCore::IntRect&, WebCore::PaintBehavior, WebCore::GraphicsLayerPaintingPhase, WebCore::RenderObject*))