- a/Source/WebCore/ChangeLog +24 lines
Lines 1-3 a/Source/WebCore/ChangeLog_sec1
1
2013-01-15  Benjamin Poulain  <bpoulain@apple.com>
2
3
        RenderProgress does not repaint on value change
4
        https://bugs.webkit.org/show_bug.cgi?id=106977
5
6
        Reviewed by NOBODY (OOPS!).
7
8
        No test because the ouput depends on the code of RenderTheme, and
9
        we use the platform theme for testing.
10
11
        * rendering/RenderProgress.cpp:
12
        (WebCore::RenderProgress::updateFromElement):
13
        (WebCore::RenderProgress::updateAnimationState):
14
        Previously, repaint() was only called on two occasions:
15
        -On animationTimerFired().
16
        -In response to updateFromElement() if and only if the RenderTheme start/stop an
17
         animation previously stopped/running.
18
19
        When changing the value of HTMLProgressElement, no repaint was called until
20
        the next timer fired for the animation.
21
        This is a problem if:
22
        -The animation of RenderTheme is slow.
23
        -If there is no animation (the element is never updated in that case).
24
1
2013-01-15  Alexandru Chiculita  <achicu@adobe.com>
25
2013-01-15  Alexandru Chiculita  <achicu@adobe.com>
2
26
3
        [Compositor] Do not disable overlap testing for layers in front of 3D transformed layers
27
        [Compositor] Do not disable overlap testing for layers in front of 3D transformed layers
- a/Source/WebCore/rendering/RenderProgress.cpp -1 / +1 lines
Lines 56-61 void RenderProgress::updateFromElement() a/Source/WebCore/rendering/RenderProgress.cpp_sec1
56
    m_position = element->position();
56
    m_position = element->position();
57
57
58
    updateAnimationState();
58
    updateAnimationState();
59
    repaint();
59
    RenderBlock::updateFromElement();
60
    RenderBlock::updateFromElement();
60
}
61
}
61
62
Lines 91-97 void RenderProgress::updateAnimationState() a/Source/WebCore/rendering/RenderProgress.cpp_sec2
91
    if (animating == m_animating)
92
    if (animating == m_animating)
92
        return;
93
        return;
93
94
94
    repaint();
95
    m_animating = animating;
95
    m_animating = animating;
96
    if (m_animating) {
96
    if (m_animating) {
97
        m_animationStartTime = currentTime();
97
        m_animationStartTime = currentTime();

Return to Bug 106977