2011-04-06 MORITA Hajime <morrita@google.com>
Reviewed by Dimitri Glazkov.
[Refactoring] <progress> should not have manual layout code.
https://bugs.webkit.org/show_bug.cgi?id=57801
Updated progress-bar-value-pseudo-element.html to have wider coverage and
follow pseudo class change.
* fast/dom/HTMLProgressElement/progress-bar-value-pseudo-element.html:
* platform/chromium/test_expectations.txt:
* platform/mac/fast/dom/HTMLProgressElement/progress-bar-value-pseudo-element-expected.checksum:
* platform/mac/fast/dom/HTMLProgressElement/progress-bar-value-pseudo-element-expected.png:
* platform/mac/fast/dom/HTMLProgressElement/progress-bar-value-pseudo-element-expected.txt:
2011-04-06 MORITA Hajime <morrita@google.com>
Reviewed by Dimitri Glazkov.
[Refactoring] <progress> should not have manual layout code.
https://bugs.webkit.org/show_bug.cgi?id=57801
- Simplified RenderProgress, removing its custom layout code
- Introducing ProgressValueElement and ProgressBarElement, replacing
ProgressBarValueElement.
Now the structure is almost identical to <meter>,
other than:
- RenderProgress has animated painting, thus manages its own timer.
- Both ProgressValueElement and ProgressBarElement has pseudo classes
which don't changes during its lifetime.
* Android.mk:
* CMakeLists.txt:
* GNUmakefile.am:
* WebCore.gypi:
* WebCore.pro:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* css/html.css:
(progress):
(progress::-webkit-progress-bar):
(progress::-webkit-progress-value):
* html/HTMLProgressElement.cpp:
(WebCore::HTMLProgressElement::~HTMLProgressElement):
(WebCore::HTMLProgressElement::create):
(WebCore::HTMLProgressElement::attach):
(WebCore::HTMLProgressElement::didElementStateChange):
(WebCore::HTMLProgressElement::createShadowSubtree):
* html/HTMLProgressElement.h:
* html/shadow/ProgressShadowElement.cpp: Copied from Source/WebCore/html/shadow/ProgressBarValueElement.h.
(WebCore::ProgressShadowElement::ProgressShadowElement):
(WebCore::ProgressShadowElement::progressElement):
(WebCore::ProgressShadowElement::rendererIsNeeded):
(WebCore::ProgressBarElement::shadowPseudoId):
(WebCore::ProgressValueElement::shadowPseudoId):
(WebCore::ProgressValueElement::setWidthPercentage):
* html/shadow/ProgressShadowElement.h: Renamed from Source/WebCore/html/shadow/ProgressBarValueElement.h.
(WebCore::ProgressBarElement::ProgressBarElement):
(WebCore::ProgressBarElement::create):
(WebCore::ProgressValueElement::ProgressValueElement):
(WebCore::ProgressValueElement::create):
* rendering/RenderProgress.cpp:
(WebCore::RenderProgress::RenderProgress):
(WebCore::RenderProgress::updateFromElement):
(WebCore::RenderProgress::animationTimerFired):
* rendering/RenderProgress.h:
(WebCore::RenderProgress::requiresForcedStyleRecalcPropagation):
(WebCore::RenderProgress::canHaveChildren):
git-svn-id: svn://svn.chromium.org/blink/trunk@83065 bbb929c8-8fbe-4397-9dbb-9b2b20218538
diff --git a/Source/WebCore/css/html.css b/Source/WebCore/css/html.css
index ed61740..3e5a782 100644
--- a/Source/WebCore/css/html.css
+++ b/Source/WebCore/css/html.css
@@ -708,16 +708,24 @@
progress {
-webkit-appearance: progress-bar;
+ -webkit-box-sizing: border-box;
display: inline-block;
height: 1em;
width: 10em;
vertical-align: -0.2em;
- background-color: gray;
}
-progress::-webkit-progress-bar-value {
- -webkit-appearance: progress-bar;
+progress::-webkit-progress-bar {
+ background-color: gray;
+ height: 100%;
+ -webkit-box-sizing: border-box;
+}
+
+progress::-webkit-progress-value {
background-color: green;
+ height: 100%;
+ width: 50%; /* should be removed later */
+ -webkit-box-sizing: border-box;
}
/* datagrid */