Diff
Modified: trunk/LayoutTests/ChangeLog (95598 => 95599)
--- trunk/LayoutTests/ChangeLog 2011-09-21 05:38:48 UTC (rev 95598)
+++ trunk/LayoutTests/ChangeLog 2011-09-21 05:41:27 UTC (rev 95599)
@@ -1,3 +1,15 @@
+2011-09-20 MORITA Hajime <[email protected]>
+
+ <meter> doesn't update rendering when its value is changed.
+ https://bugs.webkit.org/show_bug.cgi?id=67614
+
+ Reviewed by Dimitri Glazkov.
+
+ * fast/dom/HTMLMeterElement/meter-element-repaint-on-update-value-expected.png: Added.
+ * platform/chromium/test_expectations.txt:
+ * platform/mac/dom/HTMLMeterElement/meter-element-repaint-on-update-value-expected.txt: Added.
+ * platform/mac/dom/HTMLMeterElement/meter-element-repaint-on-update-value.html: Added.
+
2011-09-20 Keishi Hattori <[email protected]>
[chromium] changed test expectations for zoom-svg-through-object-with-auto-size.html:wq
Added: trunk/LayoutTests/fast/dom/HTMLMeterElement/meter-element-repaint-on-update-value.html (0 => 95599)
--- trunk/LayoutTests/fast/dom/HTMLMeterElement/meter-element-repaint-on-update-value.html (rev 0)
+++ trunk/LayoutTests/fast/dom/HTMLMeterElement/meter-element-repaint-on-update-value.html 2011-09-21 05:41:27 UTC (rev 95599)
@@ -0,0 +1,21 @@
+<html>
+<head>
+<body>
+<meter id="native" value="0" min="0" max="100"></meter>
+<meter id="shadow" value="0" min="0" max="100" style="-webkit-appearance: none;"></meter>
+<script>
+if (window.layoutTestController)
+ layoutTestController.waitUntilDone();
+document.body._onload_ = function() {
+ window.setTimeout(function() {
+ document.getElementById("native").value = 50;
+ document.getElementById("shadow").value = 50;
+ window.setTimeout(function() {
+ if (window.layoutTestController)
+ layoutTestController.notifyDone();
+ }, 0);
+ }, 50);
+}
+</script>
+</body>
+</html>
Property changes on: trunk/LayoutTests/fast/dom/HTMLMeterElement/meter-element-repaint-on-update-value.html
___________________________________________________________________
Added: svn:eol-style
Modified: trunk/LayoutTests/platform/chromium/test_expectations.txt (95598 => 95599)
--- trunk/LayoutTests/platform/chromium/test_expectations.txt 2011-09-21 05:38:48 UTC (rev 95598)
+++ trunk/LayoutTests/platform/chromium/test_expectations.txt 2011-09-21 05:41:27 UTC (rev 95599)
@@ -3712,6 +3712,8 @@
BUGCR95972 WIN DEBUG : webaudio/sample-accurate-scheduling.html = CRASH
+// Needs expectation.
+BUGWK67614 : fast/dom/HTMLMeterElement/meter-element-repaint-on-update-value.html = MISSING
// Failing after r94912.
BUGWK67913 WIN LINUX SNOWLEOPARD : media/video-zoom-controls.html = TEXT
Added: trunk/LayoutTests/platform/mac/fast/dom/HTMLMeterElement/meter-element-repaint-on-update-value-expected.png
(Binary files differ)
Property changes on: trunk/LayoutTests/platform/mac/fast/dom/HTMLMeterElement/meter-element-repaint-on-update-value-expected.png
___________________________________________________________________
Added: svn:mime-type
Added: trunk/LayoutTests/platform/mac/fast/dom/HTMLMeterElement/meter-element-repaint-on-update-value-expected.txt (0 => 95599)
--- trunk/LayoutTests/platform/mac/fast/dom/HTMLMeterElement/meter-element-repaint-on-update-value-expected.txt (rev 0)
+++ trunk/LayoutTests/platform/mac/fast/dom/HTMLMeterElement/meter-element-repaint-on-update-value-expected.txt 2011-09-21 05:41:27 UTC (rev 95599)
@@ -0,0 +1,13 @@
+layer at (0,0) size 800x600
+ RenderView at (0,0) size 800x600
+layer at (0,0) size 800x600
+ RenderBlock {HTML} at (0,0) size 800x600
+ RenderBody {BODY} at (8,8) size 784x584
+ RenderMeter {METER} at (0,1) size 80x16
+ RenderText {#text} at (80,0) size 4x18
+ text run at (80,0) width 4: " "
+ RenderMeter {METER} at (84,1) size 80x16
+ RenderBlock {DIV} at (0,0) size 80x16
+ RenderBlock {DIV} at (0,0) size 40x16
+ RenderText {#text} at (0,0) size 0x0
+ RenderText {#text} at (0,0) size 0x0
Property changes on: trunk/LayoutTests/platform/mac/fast/dom/HTMLMeterElement/meter-element-repaint-on-update-value-expected.txt
___________________________________________________________________
Added: svn:eol-style
Modified: trunk/Source/WebCore/ChangeLog (95598 => 95599)
--- trunk/Source/WebCore/ChangeLog 2011-09-21 05:38:48 UTC (rev 95598)
+++ trunk/Source/WebCore/ChangeLog 2011-09-21 05:41:27 UTC (rev 95599)
@@ -1,3 +1,26 @@
+2011-09-20 MORITA Hajime <[email protected]>
+
+ <meter> doesn't update rendering when its value is changed.
+ https://bugs.webkit.org/show_bug.cgi?id=67614
+
+ Reviewed by Dimitri Glazkov.
+
+ It lacks repaint() when the value is changed.
+
+ For non-native appearance it works because the indicator is
+ implemented in shadow DOM, for native appearance, repainting should be
+ handled explicitly.
+
+ Test: fast/dom/HTMLMeterElement/meter-element-repaint-on-update-value.html
+
+ * html/HTMLMeterElement.cpp:
+ (WebCore::HTMLMeterElement::didElementStateChange):
+ * rendering/RenderMeter.cpp:
+ (WebCore::RenderMeter::updateFromElement):
+ * rendering/RenderMeter.h:
+ * rendering/RenderProgress.cpp:
+ (WebCore::RenderProgress::updateAnimationState):
+
2011-09-20 Kent Tamura <[email protected]>
Move RenderObject::markContainingBlocksForLayout() to RenderObject.cpp.
Modified: trunk/Source/WebCore/html/HTMLMeterElement.cpp (95598 => 95599)
--- trunk/Source/WebCore/html/HTMLMeterElement.cpp 2011-09-21 05:38:48 UTC (rev 95598)
+++ trunk/Source/WebCore/html/HTMLMeterElement.cpp 2011-09-21 05:41:27 UTC (rev 95599)
@@ -228,6 +228,8 @@
void HTMLMeterElement::didElementStateChange()
{
m_value->setWidthPercentage(valueRatio()*100);
+ if (RenderObject* render = renderer())
+ render->updateFromElement();
}
void HTMLMeterElement::createShadowSubtree()
Modified: trunk/Source/WebCore/rendering/RenderMeter.cpp (95598 => 95599)
--- trunk/Source/WebCore/rendering/RenderMeter.cpp 2011-09-21 05:38:48 UTC (rev 95598)
+++ trunk/Source/WebCore/rendering/RenderMeter.cpp 2011-09-21 05:41:27 UTC (rev 95599)
@@ -60,6 +60,11 @@
return static_cast<HTMLMeterElement*>(node())->valueRatio();
}
+void RenderMeter::updateFromElement()
+{
+ repaint();
+}
+
} // namespace WebCore
#endif
Modified: trunk/Source/WebCore/rendering/RenderMeter.h (95598 => 95599)
--- trunk/Source/WebCore/rendering/RenderMeter.h 2011-09-21 05:38:48 UTC (rev 95598)
+++ trunk/Source/WebCore/rendering/RenderMeter.h 2011-09-21 05:41:27 UTC (rev 95599)
@@ -43,6 +43,7 @@
virtual bool isMeter() const { return true; }
virtual bool requiresForcedStyleRecalcPropagation() const { return true; }
virtual bool canHaveChildren() const { return false; }
+ virtual void updateFromElement();
double valueRatio() const;
};
Modified: trunk/Source/WebCore/rendering/RenderProgress.cpp (95598 => 95599)
--- trunk/Source/WebCore/rendering/RenderProgress.cpp 2011-09-21 05:38:48 UTC (rev 95598)
+++ trunk/Source/WebCore/rendering/RenderProgress.cpp 2011-09-21 05:41:27 UTC (rev 95599)
@@ -88,6 +88,7 @@
if (animating == m_animating)
return;
+ repaint();
m_animating = animating;
if (m_animating) {
m_animationStartTime = currentTime();