diff options
author | Lorry Tar Creator <lorry-tar-importer@lorry> | 2016-04-10 09:28:39 +0000 |
---|---|---|
committer | Lorry Tar Creator <lorry-tar-importer@lorry> | 2016-04-10 09:28:39 +0000 |
commit | 32761a6cee1d0dee366b885b7b9c777e67885688 (patch) | |
tree | d6bec92bebfb216f4126356e55518842c2f476a1 /Source/WebCore/html/HTMLProgressElement.cpp | |
parent | a4e969f4965059196ca948db781e52f7cfebf19e (diff) | |
download | WebKitGtk-tarball-32761a6cee1d0dee366b885b7b9c777e67885688.tar.gz |
webkitgtk-2.4.11webkitgtk-2.4.11
Diffstat (limited to 'Source/WebCore/html/HTMLProgressElement.cpp')
-rw-r--r-- | Source/WebCore/html/HTMLProgressElement.cpp | 41 |
1 files changed, 22 insertions, 19 deletions
diff --git a/Source/WebCore/html/HTMLProgressElement.cpp b/Source/WebCore/html/HTMLProgressElement.cpp index 91c15f18f..c877fbe05 100644 --- a/Source/WebCore/html/HTMLProgressElement.cpp +++ b/Source/WebCore/html/HTMLProgressElement.cpp @@ -19,8 +19,10 @@ */ #include "config.h" +#if ENABLE(PROGRESS_ELEMENT) #include "HTMLProgressElement.h" +#include "Attribute.h" #include "ElementIterator.h" #include "EventNames.h" #include "ExceptionCode.h" @@ -49,19 +51,19 @@ HTMLProgressElement::~HTMLProgressElement() { } -Ref<HTMLProgressElement> HTMLProgressElement::create(const QualifiedName& tagName, Document& document) +PassRefPtr<HTMLProgressElement> HTMLProgressElement::create(const QualifiedName& tagName, Document& document) { - Ref<HTMLProgressElement> progress = adoptRef(*new HTMLProgressElement(tagName, document)); + RefPtr<HTMLProgressElement> progress = adoptRef(new HTMLProgressElement(tagName, document)); progress->ensureUserAgentShadowRoot(); - return progress; + return progress.release(); } -RenderPtr<RenderElement> HTMLProgressElement::createElementRenderer(Ref<RenderStyle>&& style, const RenderTreePosition&) +RenderPtr<RenderElement> HTMLProgressElement::createElementRenderer(PassRef<RenderStyle> style) { - if (!style.get().hasAppearance()) - return RenderElement::createFor(*this, WTFMove(style)); + if (!style.get().hasAppearance() || hasAuthorShadowRoot()) + return RenderElement::createFor(*this, std::move(style)); - return createRenderer<RenderProgress>(*this, WTFMove(style)); + return createRenderer<RenderProgress>(*this, std::move(style)); } bool HTMLProgressElement::childShouldCreateRenderer(const Node& child) const @@ -71,9 +73,9 @@ bool HTMLProgressElement::childShouldCreateRenderer(const Node& child) const RenderProgress* HTMLProgressElement::renderProgress() const { - if (is<RenderProgress>(renderer())) - return downcast<RenderProgress>(renderer()); - return downcast<RenderProgress>(descendantsOfType<Element>(*userAgentShadowRoot()).first()->renderer()); + if (renderer() && renderer()->isProgress()) + return toRenderProgress(renderer()); + return toRenderProgress(descendantsOfType<Element>(*userAgentShadowRoot()).first()->renderer()); } void HTMLProgressElement::parseAttribute(const QualifiedName& name, const AtomicString& value) @@ -109,7 +111,7 @@ void HTMLProgressElement::setValue(double value, ExceptionCode& ec) double HTMLProgressElement::max() const { - double max = parseToDoubleForNumberType(fastGetAttribute(maxAttr)); + double max = parseToDoubleForNumberType(getAttribute(maxAttr)); return !std::isfinite(max) || max <= 0 ? 1 : max; } @@ -141,7 +143,7 @@ void HTMLProgressElement::didElementStateChange() bool wasDeterminate = render->isDeterminate(); render->updateFromElement(); if (wasDeterminate != isDeterminate()) - setNeedsStyleRecalc(); + didAffectSelector(AffectedSelectorIndeterminate); } } @@ -149,16 +151,16 @@ void HTMLProgressElement::didAddUserAgentShadowRoot(ShadowRoot* root) { ASSERT(!m_value); - Ref<ProgressInnerElement> inner = ProgressInnerElement::create(document()); - root->appendChild(inner.copyRef()); + RefPtr<ProgressInnerElement> inner = ProgressInnerElement::create(document()); + root->appendChild(inner); - Ref<ProgressBarElement> bar = ProgressBarElement::create(document()); - Ref<ProgressValueElement> value = ProgressValueElement::create(document()); - m_value = value.ptr(); + RefPtr<ProgressBarElement> bar = ProgressBarElement::create(document()); + RefPtr<ProgressValueElement> value = ProgressValueElement::create(document()); + m_value = value.get(); m_value->setWidthPercentage(HTMLProgressElement::IndeterminatePosition * 100); - bar->appendChild(*m_value, ASSERT_NO_EXCEPTION); + bar->appendChild(m_value, ASSERT_NO_EXCEPTION); - inner->appendChild(WTFMove(bar), ASSERT_NO_EXCEPTION); + inner->appendChild(bar, ASSERT_NO_EXCEPTION); } bool HTMLProgressElement::shouldAppearIndeterminate() const @@ -167,3 +169,4 @@ bool HTMLProgressElement::shouldAppearIndeterminate() const } } // namespace +#endif |