Skip to content
  • kenneth@webkit.org's avatar
    Implement flattening of framesets · 7889ba28
    kenneth@webkit.org authored
    https://bugs.webkit.org/show_bug.cgi?id=32717
    
    Reviewed by Dave Hyatt.
    
    WebCore:
    
    The following patch, builds ontop of Antti Koivisto's frameset
    flattening code from the iPhone source, which itself is based on
    the old Nokia Series 60 source.
    
    Layout tests have been added to test the functionality and the original
    code which has then been fixed to make these pass, as well as support
    frameset grids.
    
    Tests: fast/frames/flattening/frameset-flattening-advanced.html
           fast/frames/flattening/frameset-flattening-grid.html
           fast/frames/flattening/frameset-flattening-simple.html
           fast/frames/flattening/frameset-flattening-subframe-resize.html
           fast/frames/flattening/frameset-flattening-subframesets.html
    
    * page/FrameView.cpp:
    (WebCore::FrameView::layout):
    (WebCore::FrameView::scheduleRelayout):
    * page/Settings.cpp:
    (WebCore::Settings::Settings):
    (WebCore::Settings::setFrameSetFlatteningEnabled):
    * page/Settings.h:
    (WebCore::Settings::frameSetFlatteningEnabled):
    * rendering/RenderFrame.cpp:
    (WebCore::RenderFrame::layoutWithFlattening):
    * rendering/RenderFrame.h:
    * rendering/RenderFrameSet.cpp:
    (WebCore::RenderFrameSet::layout):
    (WebCore::RenderFrameSet::positionFramesWithFlattening):
    (WebCore::RenderFrameSet::flattenFrameSet):
    (WebCore::RenderFrameSet::userResize):
    * rendering/RenderFrameSet.h:
    
    WebKit/qt:
    
    Privately export the setFrameSetFlatteningEnabled setting for
    use with the Qt DRT.
    
    * Api/qwebpage.cpp:
    (qt_drt_setFrameSetFlatteningEnabled):
    (QWebPagePrivate::core):
    * Api/qwebpage_p.h:
    
    WebKitTools:
    
    Add support for testing frame flattening with the Qt DRT
    
    * DumpRenderTree/qt/LayoutTestControllerQt.cpp:
    (LayoutTestController::setFrameSetFlatteningEnabled):
    * DumpRenderTree/qt/LayoutTestControllerQt.h:
    
    LayoutTests:
    
    Frameset flattening layout test, plus expected result for Qt.
    
    * fast/frames/flattening/frameset-flattening-advanced.html: Added.
    * fast/frames/flattening/frameset-flattening-grid.html: Added.
    * fast/frames/flattening/frameset-flattening-simple.html: Added.
    * fast/frames/flattening/frameset-flattening-subframe-resize.html: Added.
    * fast/frames/flattening/frameset-flattening-subframesets.html: Added.
    * fast/frames/flattening/resources/frameset-flattening-subframe-resize.html: Added.
    * platform/qt/fast/frames/flattening/frameset-flattening-advanced-expected.txt: Added.
    * platform/qt/fast/frames/flattening/frameset-flattening-grid-expected.txt: Added.
    * platform/qt/fast/frames/flattening/frameset-flattening-simple-expected.txt: Added.
    * platform/qt/fast/frames/flattening/frameset-flattening-subframe-resize-expected.txt: Added.
    * platform/qt/fast/frames/flattening/frameset-flattening-subframesets-expected.txt: Added.
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@54440 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    7889ba28