2011-02-02 MORITA Hajime <morrita@google.com>
authormorrita@google.com <morrita@google.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 4 Feb 2011 01:45:55 +0000 (01:45 +0000)
committermorrita@google.com <morrita@google.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 4 Feb 2011 01:45:55 +0000 (01:45 +0000)
commitb6d6e8f474862792d41055113f9fb5d9821996a3
tree438d21ba95c6ee0678450d3aad20d2044f6dbd52
parentd157c0681a6ddf050fdff56d42f91522e924c37f
2011-02-02  MORITA Hajime  <morrita@google.com>

        Reviewed by Dimitri Glazkov.

        Refactoring: <progress> should not use ShadowElement
        https://bugs.webkit.org/show_bug.cgi?id=53583

        Updated to catch the change on -webkit-progress-bar-value interpretation.

        * fast/dom/HTMLProgressElement/progress-bar-value-pseudo-element.html:
2011-02-02  MORITA Hajime  <morrita@google.com>

        Reviewed by Dimitri Glazkov.

        Refactoring: <progress> should not use ShadowElement
        https://bugs.webkit.org/show_bug.cgi?id=53583

        - Introduced RenderIndicatorPart and RenderProgressBarValuePart
          to be responsible for bar-part layout,
          which adopted layout logic from ShadowBlockElement.
        - ProgressBarValueElement is no longer a subclass of ShadowBlockElement.
        - Remove dependency from RenderProgress to HTMLProgressElement and
          ShadowBlockElement.
        - The shadow tree is no longer removed on detach(). It becomes persistent.
          This is now possible because the ShadowBlockElement dependency is gone.
        - ::-webkit-appearance for -webkit-progress-bar-value is no longer referred.
          That didn't make sense.

        * html/HTMLProgressElement.cpp:
        (WebCore::HTMLProgressElement::createShadowSubtreeIfNeeded):
        * html/HTMLProgressElement.h:
        * html/shadow/ProgressBarValueElement.h: Added.
        (WebCore::ProgressBarValueElement::ProgressBarValueElement):
        (WebCore::ProgressBarValueElement::shadowPseudoId):
        (WebCore::ProgressBarValueElement::createRenderer):
        (WebCore::ProgressBarValueElement::create):
        * rendering/RenderIndicator.cpp:
        (WebCore::RenderIndicatorPart::RenderIndicatorPart):
        (WebCore::RenderIndicatorPart::~RenderIndicatorPart):
        (WebCore::RenderIndicatorPart::layout):
        (WebCore::RenderIndicatorPart::styleDidChange):
        * rendering/RenderIndicator.h: Added RenderIndicatorPart class
        (WebCore::RenderIndicatorPart::originalVisibility):
        (WebCore::RenderIndicatorPart::requiresForcedStyleRecalcPropagation):
        (WebCore::RenderIndicatorPart::canHaveChildren):
        * rendering/RenderProgress.cpp:
        (WebCore::RenderProgressBarValuePart::preferredFrameRect):
        (WebCore::RenderProgressBarValuePart::shouldBeHidden):
        (WebCore::RenderProgress::updateFromElement):
        (WebCore::RenderProgress::layoutParts):
        (WebCore::RenderProgress::shouldHaveParts):
        * rendering/RenderProgress.h:
        (WebCore::RenderProgressBarValuePart::RenderProgressBarValuePart):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@77578 268f45cc-cd09-0410-ab3c-d52691b4dbfc
14 files changed:
LayoutTests/ChangeLog
LayoutTests/fast/dom/HTMLProgressElement/progress-bar-value-pseudo-element.html
Source/WebCore/ChangeLog
Source/WebCore/GNUmakefile.am
Source/WebCore/WebCore.gypi
Source/WebCore/WebCore.vcproj/WebCore.vcproj
Source/WebCore/WebCore.xcodeproj/project.pbxproj
Source/WebCore/html/HTMLProgressElement.cpp
Source/WebCore/html/HTMLProgressElement.h
Source/WebCore/html/shadow/ProgressBarValueElement.h [new file with mode: 0644]
Source/WebCore/rendering/RenderIndicator.cpp
Source/WebCore/rendering/RenderIndicator.h
Source/WebCore/rendering/RenderProgress.cpp
Source/WebCore/rendering/RenderProgress.h