summaryrefslogtreecommitdiff
path: root/Source/WebCore/html/HTMLProgressElement.cpp
diff options
context:
space:
mode:
authorLorry Tar Creator <lorry-tar-importer@lorry>2016-04-10 09:28:39 +0000
committerLorry Tar Creator <lorry-tar-importer@lorry>2016-04-10 09:28:39 +0000
commit32761a6cee1d0dee366b885b7b9c777e67885688 (patch)
treed6bec92bebfb216f4126356e55518842c2f476a1 /Source/WebCore/html/HTMLProgressElement.cpp
parenta4e969f4965059196ca948db781e52f7cfebf19e (diff)
downloadWebKitGtk-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.cpp41
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