Frame flattening: childframe in FrameView::layout() needs protector.
authorcommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 27 Mar 2012 18:00:50 +0000 (18:00 +0000)
committercommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 27 Mar 2012 18:00:50 +0000 (18:00 +0000)
commitfc11816a8f23eb2db3005e7b191cbe9bb3b39fe8
tree7731410f65e983e2ea337e8411b631c17fadf885
parentb91a098693dacd42f3bc8a51488ae1046152c00d
Frame flattening: childframe in FrameView::layout() needs protector.
https://bugs.webkit.org/show_bug.cgi?id=82345

Patch by Zalan Bujtas <zbujtas@gmail.com> on 2012-03-27
Reviewed by Kenneth Rohde Christiansen.

RefPtr<FrameView> protector(this) is supposed to protect the current frameview in
FrameView::layout() from being destroyed by recalcStyle().
However, when frame flattening is on and a child frame is re-starting layout from
the topmost parent, the protection is missing and parent's recalcStyle()
can destroy the child frame.
Moving the protector before the layout re-starting is initiated makes the child frame
safe.

No new tests. Unable to create a test case, where this scenario is reproducible.

* page/FrameView.cpp:
(WebCore::FrameView::layout):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@112283 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Source/WebCore/ChangeLog
Source/WebCore/page/FrameView.cpp