Skip to content
  • commit-queue@webkit.org's avatar
    REGRESSION (r154614): Setting the document scroll position isn't symmetric;... · 2c0b0d6b
    commit-queue@webkit.org authored
    REGRESSION (r154614): Setting the document scroll position isn't symmetric; can successfully set document.body.scrollTop, but can only read from document.documentElement.scrollTop
    https://bugs.webkit.org/show_bug.cgi?id=121876
    
    Patch by Gurpreet Kaur <k.gurpreet@samsung.com> on 2013-09-28
    Reviewed by Darin Adler.
    
    Source/WebCore:
    
    Non-Quirks mode should set/get scrolltop/scrollleft through
    document.documentElement.scrollTop/document.documentElement.scrollLeft
    Quirks mode should set/get scrolltop/scrollleft through
    document.body.scrollTop/document.body.scrollLeft.
    
    Tests: fast/dom/Element/body-scrollLeft-Quirks.html
           fast/dom/Element/body-scrollLeft.html
           fast/dom/Element/body-scrollTop-Quirks.html
           fast/dom/Element/body-scrollTop.html
           fast/dom/Element/documentElement-scrollLeft-Quirks.html
           fast/dom/Element/documentElement-scrollLeft.html
           fast/dom/Element/documentElement-scrollTop-Quirks.html
           fast/dom/Element/documentElement-scrollTop.html
    
    * dom/Element.cpp:
    (WebCore::Element::setScrollLeft):
    (WebCore::Element::setScrollTop):
    * html/HTMLBodyElement.cpp:
    (WebCore::HTMLBodyElement::setScrollLeft):
    (WebCore::HTMLBodyElement::setScrollTop):
    Need to set the scrollTop and scrollLeft after checking if document
    is in quirks or non-quirks mode. Incase it is body.scrollLeft/
    body.scrollTop set only if document is in quirks mode. If document is
    non-quirks mode set documentElement.scrollLeft/documentElement.scrollTop.
    
    LayoutTests:
    
    * fast/dom/Element/body-scrollLeft-Quirks-expected.txt: Added.
    * fast/dom/Element/body-scrollLeft-Quirks.html: Added.
    * fast/dom/Element/body-scrollLeft-expected.txt: Added.
    * fast/dom/Element/body-scrollLeft.html: Added.
    * fast/dom/Element/body-scrollTop-Quirks-expected.txt: Added.
    * fast/dom/Element/body-scrollTop-Quirks.html: Added.
    * fast/dom/Element/body-scrollTop-expected.txt: Added.
    * fast/dom/Element/body-scrollTop.html: Added.
    * fast/dom/Element/documentElement-scrollLeft-Quirks-expected.txt: Added.
    * fast/dom/Element/documentElement-scrollLeft-Quirks.html: Added.
    * fast/dom/Element/documentElement-scrollLeft-expected.txt: Added.
    * fast/dom/Element/documentElement-scrollLeft.html: Added.
    * fast/dom/Element/documentElement-scrollTop-Quirks-expected.txt: Added.
    * fast/dom/Element/documentElement-scrollTop-Quirks.html: Added.
    * fast/dom/Element/documentElement-scrollTop-expected.txt: Added.
    * fast/dom/Element/documentElement-scrollTop.html: Added.
    Added test cases for verifying that Non-Quirks mode should set
    scrolltop/scrollleft through document.documentElement.scrollTop/
    document.documentElement.scrollLeft and Quirks mode should set/get
    scrolltop/scrollleft through document.body.scrollTop/document.body.scrollLeft.
    
    * fast/multicol/scrolling-overflow.html:
    Rebaselining existing tests as per the new behavior. To set
    document.body.scrollLeft document to be in Quirks mode.
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156605 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    2c0b0d6b