FrameView::setTransparent uses FrameView::renderView to get the RenderView from the Document, but setTransparent can be called from Frame::createView, which is before the new Document has been swapped in, so it gets the old (pre-navigation) RenderView, and uses that to schedule a compositing layer update, which eventually comes through and can blow away the new document's layer tree. rdar://problem/18234000
Created attachment 237719 [details] patch
Comment on attachment 237719 [details] patch View in context: https://bugs.webkit.org/attachment.cgi?id=237719&action=review > Source/WebCore/ChangeLog:9 > + Reviewed by NOBODY (OOPS!). > + > + * page/FrameView.cpp: You fail to explain the "can result in an empty layer tree" part here. > Source/WebCore/page/FrameView.cpp:2586 > + if (&renderView->frameView() != this) > + return; This deserves a comment.
http://trac.webkit.org/changeset/173344