I don't have a suitable way to host a web page right now so I linked to some source HTML(http://gist.github.com/629104) which you can download and run locally.
This bug requires a few things to be detected:
1) A video element that is currently playing
2) A containing element on top of the video which has overflow:hidden
3) A child of the container element which is absolutely positioned
With all three things in motion, try to increase the width of the child element and it will not be rendered immediately. Change the size of the window and the size of the child element will be updated correctly. If you remove overflow:hidden, the bug will disappear.
This happens in the latest Safari and the latest WebKit.
It's taken me days trying to isolate this issue. I... I need a hug.
Thanks for the report, and the nice testcase.
An easy workaround is to add z-index:0 to #controls.
The bug is that RenderLayerBacking::updateAfterLayout() doesn't actually update layer geometry for the layer itself; it relies on updateCompositingDescendantGeometry() being called on some z-order ancestor; this was a fix for bug 26430.
However, the isUpdateRoot flag is sent in from RenderLayer::updateLayerPositions(), which uses parentage, rather than z-order hierarchy to determine if it's the root.
Created attachment 108253 [details]
Example rendering issue when updating css of element with overflow:hidden while sitting over video
I've been debugging this issue recently and have another supporting test file which may be helpful when testing the fix.
Simply click the track to move the thumb to the point clicked. Inspecting the dom shows the thumb is in the new position but visually is still rendered in its old position. Clicking the track again will render the thumb in the previous position but move its dom position to the new one i.e. it's aways one step behind.
Can't test the attachment because it uses theora video.
(In reply to comment #6)
> Can't test the attachment because it uses theora video.
Sorry, that was the only free video I could find at the time. It will run fine under Chrome, just not Safari. You'll need to provide your own video under safari but the bug manifests the the same under both.