diff options
author | Steve Block <steveblock@google.com> | 2011-05-18 13:36:51 +0100 |
---|---|---|
committer | Steve Block <steveblock@google.com> | 2011-05-24 15:38:28 +0100 |
commit | 2fc2651226baac27029e38c9d6ef883fa32084db (patch) | |
tree | e396d4bf89dcce6ed02071be66212495b1df1dec /Source/WebCore/html/HTMLProgressElement.cpp | |
parent | b3725cedeb43722b3b175aaeff70552e562d2c94 (diff) | |
download | external_webkit-2fc2651226baac27029e38c9d6ef883fa32084db.zip external_webkit-2fc2651226baac27029e38c9d6ef883fa32084db.tar.gz external_webkit-2fc2651226baac27029e38c9d6ef883fa32084db.tar.bz2 |
Merge WebKit at r78450: Initial merge by git.
Change-Id: I6d3e5f1f868ec266a0aafdef66182ddc3f265dc1
Diffstat (limited to 'Source/WebCore/html/HTMLProgressElement.cpp')
-rw-r--r-- | Source/WebCore/html/HTMLProgressElement.cpp | 31 |
1 files changed, 22 insertions, 9 deletions
diff --git a/Source/WebCore/html/HTMLProgressElement.cpp b/Source/WebCore/html/HTMLProgressElement.cpp index 4a55a1e..cab0429 100644 --- a/Source/WebCore/html/HTMLProgressElement.cpp +++ b/Source/WebCore/html/HTMLProgressElement.cpp @@ -26,9 +26,11 @@ #include "EventNames.h" #include "ExceptionCode.h" #include "FormDataList.h" +#include "HTMLDivElement.h" #include "HTMLFormElement.h" #include "HTMLNames.h" #include "HTMLParserIdioms.h" +#include "ProgressBarValueElement.h" #include "RenderProgress.h" #include <wtf/StdLibExtras.h> @@ -60,21 +62,19 @@ const AtomicString& HTMLProgressElement::formControlType() const void HTMLProgressElement::parseMappedAttribute(Attribute* attribute) { - if (attribute->name() == valueAttr) { - if (renderer()) - renderer()->updateFromElement(); - } else if (attribute->name() == maxAttr) { - if (renderer()) - renderer()->updateFromElement(); - } else + if (attribute->name() == valueAttr) + didElementStateChange(); + else if (attribute->name() == maxAttr) + didElementStateChange(); + else HTMLFormControlElement::parseMappedAttribute(attribute); } void HTMLProgressElement::attach() { + createShadowSubtreeIfNeeded(); HTMLFormControlElement::attach(); - if (renderer()) - renderer()->updateFromElement(); + didElementStateChange(); } double HTMLProgressElement::value() const @@ -121,5 +121,18 @@ double HTMLProgressElement::position() const return value() / max(); } +void HTMLProgressElement::didElementStateChange() +{ + if (renderer()) + renderer()->updateFromElement(); +} + +void HTMLProgressElement::createShadowSubtreeIfNeeded() +{ + if (shadowRoot()) + return; + setShadowRoot(ProgressBarValueElement::create(document()).get()); +} + } // namespace #endif |