2011-02-08 Yael Aharon <yael.aharon@nokia.com>
authorAdemar de Souza Reis Jr <ademar.reis@openbossa.org>
Mon, 14 Feb 2011 20:59:54 +0000 (17:59 -0300)
committerAdemar de Souza Reis Jr <ademar.reis@openbossa.org>
Fri, 25 Feb 2011 18:57:16 +0000 (15:57 -0300)
commitc3702ad23af8f49248051e9c1fdec800da78286d
treef165db3d07d18ded3db1efc53c67e79b10294ae4
parent1dd248734bdabf04f02456c6beaff611d912aed9
2011-02-08  Yael Aharon  <yael.aharon@nokia.com>

        Reviewed by Antti Koivisto.

        Crash when logging into gmail.com with frame flattening turned on.
        https://bugs.webkit.org/show_bug.cgi?id=52449

        * fast/frames/flattening/iframe-flattening-crash-expected.txt: Added.
        * fast/frames/flattening/iframe-flattening-crash.html: Added.
        * fast/frames/flattening/iframe-flattening-selection-crash-expected.txt: Added.
        * fast/frames/flattening/iframe-flattening-selection-crash.html: Added.
        * fast/frames/flattening/resources/iframe-flattening-crash.html: Added.
2011-02-08  Yael Aharon  <yael.aharon@nokia.com>

        Reviewed by Antti Koivisto.

        Crash when logging into gmail.com with frame flattening turned on.
        https://bugs.webkit.org/show_bug.cgi?id=52449

        Frame flattening algorithm requires that layout always starts from the main frame, since layout of
        subframes impacts the layout of their parents.
        There are places in the code that call view->layout() not on the main frame.
        Instead of changing all the callsites, I changed FrameView::layout()
        to force layout from the main frame if frame flattening is enabled.
        In addition, postLayoutTasks can trigger relayout, so make it use the timer even more.
        Move the call to SelectionController::updateAppearance() to performPostLayoutTasks(),
        because calling the from layout() leads to a crash in pages that have a selection in an iframe.

        Tests: fast/frames/flattening/iframe-flattening-crash.html
               fast/frames/flattening/iframe-flattening-selection-crash.html

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

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@77988 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Conflicts:

Source/WebCore/ChangeLog
Source/WebCore/page/FrameView.cpp
LayoutTests/ChangeLog
LayoutTests/fast/frames/flattening/iframe-flattening-crash-expected.txt [new file with mode: 0644]
LayoutTests/fast/frames/flattening/iframe-flattening-crash.html [new file with mode: 0644]
LayoutTests/fast/frames/flattening/iframe-flattening-selection-crash-expected.txt [new file with mode: 0644]
LayoutTests/fast/frames/flattening/iframe-flattening-selection-crash.html [new file with mode: 0644]
LayoutTests/fast/frames/flattening/resources/iframe-flattening-crash.html [new file with mode: 0644]
WebCore/ChangeLog
WebCore/page/FrameView.cpp