RESOLVED FIXED Bug 84480
ASSERT failure in RenderLayer::computeRepaintRects
https://bugs.webkit.org/show_bug.cgi?id=84480
Summary ASSERT failure in RenderLayer::computeRepaintRects
Yong Li
Reported 2012-04-20 12:44:07 PDT
When accelerated compositing is enabled, an assert failure can occur in RenderLayer::computeRepaintRects: ASSERT(!m_visibleContentStatusDirty); #0 WebCore::RenderLayer::computeRepaintRects #1 WebCore::RenderLayerCompositor::updateBacking #2 WebCore::RenderLayerCompositor::updateLayerCompositingState ( #3 WebCore::RenderLayer::styleChanged (this=0x766bbb28, #4 WebCore::RenderBoxModelObject::styleDidChange The issue can be simply and obviously fixed by adding a call to updateVisibilityStatus() before styleChanged() calling compositor->updateLayerCompositingState(). Do I have to create a test case for it?
Attachments
The patch (479 bytes, patch)
2012-04-20 12:58 PDT, Yong Li
simon.fraser: review-
With test case (3.49 KB, patch)
2012-04-24 13:45 PDT, Yong Li
simon.fraser: review-
with test case (3.62 KB, patch)
2012-04-24 14:15 PDT, Yong Li
no flags
Yong Li
Comment 1 2012-04-20 12:58:00 PDT
Created attachment 138149 [details] The patch The problem is obvious and easy to fix. The patch doesn't include a test. Creating a test may need much more effort than fixing it, and probably doesn't worth for such a small flaw.
Simon Fraser (smfr)
Comment 2 2012-04-20 13:55:11 PDT
Comment on attachment 138149 [details] The patch This should have a testcase. I haven't seen this assertion on Mac.
Yong Li
Comment 3 2012-04-24 13:45:48 PDT
Created attachment 138634 [details] With test case
Simon Fraser (smfr)
Comment 4 2012-04-24 14:01:31 PDT
Comment on attachment 138634 [details] With test case View in context: https://bugs.webkit.org/attachment.cgi?id=138634&action=review > LayoutTests/compositing/visibility/compositing-and-visibility--turned-off-together.html:16 > +if (window.layoutTestController) > + layoutTestController.dumpAsText(); > + > +function dotest() > +{ > + document.getElementById('theelement').style.setProperty('visibility','hidden',''); > + document.getElementById('theelement').style.removeProperty('-webkit-perspective'); > + > + // force layout > + document.body.offsetTop; > +} > +</script> > +</head> > +<body onload="setTimeout(dotest,20)"> If you're using setTimeout, you need to use layoutTestController.waitUntilDone/notifyDone.
Yong Li
Comment 5 2012-04-24 14:15:39 PDT
Created attachment 138640 [details] with test case
Yong Li
Comment 6 2012-04-24 14:42:13 PDT
Comment on attachment 138640 [details] with test case Thanks Simon!
WebKit Review Bot
Comment 7 2012-04-24 18:58:25 PDT
Comment on attachment 138640 [details] with test case Clearing flags on attachment: 138640 Committed r115157: <http://trac.webkit.org/changeset/115157>
WebKit Review Bot
Comment 8 2012-04-24 18:58:41 PDT
All reviewed patches have been landed. Closing bug.
Note You need to log in before you can comment on or make changes to this bug.