2011-02-08 Yael Aharon <yael.aharon@nokia.com> qtwebkit-2.1.x-week06
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>
Mon, 14 Feb 2011 21:00:10 +0000 (18:00 -0300)
commitea0fd5669d4eb734657db04af651a4510f2d31eb
treeaaada38481652a886948c6822c4f4a143706c012
parent5de3e63540f32fe0c391f2eb9c1f06e34ec31afe
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