Changeset 104658 in webkit


Ignore:
Timestamp:
Jan 10, 2012 5:51:19 PM (12 years ago)
Author:
commit-queue@webkit.org
Message:

Repaint video controls when buffering during pause.
https://bugs.webkit.org/show_bug.cgi?id=73957

Source/WebCore:

Pipes support for a new bufferingProgressed() method on MediaControls
elements. Allows controls to be repainted as data buffers when paused.

Patch by Dale Curtis <dalecurtis@chromium.org> on 2012-01-10
Reviewed by Hajime Morita.

Test: http/tests/media/video-buffering-repaints-controls.html

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::setNetworkState):
(WebCore::HTMLMediaElement::progressEventTimerFired):

  • html/shadow/MediaControlRootElement.cpp:

(WebCore::MediaControlRootElement::bufferingProgressed):

  • html/shadow/MediaControlRootElement.h:
  • html/shadow/MediaControlRootElementChromium.cpp:

(WebCore::MediaControlRootElementChromium::bufferingProgressed):

  • html/shadow/MediaControlRootElementChromium.h:
  • html/shadow/MediaControls.h:

LayoutTests:

Adds video-buffering-repaints-controls test to verify the progress bar
repaints as new data is buffered when paused.

Patch by Dale Curtis <dalecurtis@chromium.org> on 2012-01-10
Reviewed by Hajime Morita.

  • http/tests/media/video-buffering-repaints-controls.html: Added.
  • platform/chromium-linux/http/tests/media/video-buffering-repaints-controls-expected.png: Added.
  • platform/chromium-linux/http/tests/media/video-buffering-repaints-controls-expected.txt: Added.
  • platform/chromium/test_expectations.txt:
  • platform/gtk/test_expectations.txt:
  • platform/mac/test_expectations.txt:
  • platform/win/test_expectations.txt:
Location:
trunk
Files:
3 added
12 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r104657 r104658  
     12012-01-10  Dale Curtis  <dalecurtis@chromium.org>
     2
     3        Repaint video controls when buffering during pause.
     4        https://bugs.webkit.org/show_bug.cgi?id=73957
     5
     6        Adds video-buffering-repaints-controls test to verify the progress bar
     7        repaints as new data is buffered when paused.
     8
     9        Reviewed by Hajime Morita.
     10
     11        * http/tests/media/video-buffering-repaints-controls.html: Added.
     12        * platform/chromium-linux/http/tests/media/video-buffering-repaints-controls-expected.png: Added.
     13        * platform/chromium-linux/http/tests/media/video-buffering-repaints-controls-expected.txt: Added.
     14        * platform/chromium/test_expectations.txt:
     15        * platform/gtk/test_expectations.txt:
     16        * platform/mac/test_expectations.txt:
     17        * platform/win/test_expectations.txt:
     18
    1192012-01-10  Sheriff Bot  <webkit.review.bot@gmail.com>
    220
  • trunk/LayoutTests/platform/chromium/test_expectations.txt

    r104632 r104658  
    38493849
    38503850BUGWK75933 WIN : webaudio/convolution-mono-mono.html = TEXT
     3851
     3852// New test, needs image results added.
     3853BUGWK75570 : http/tests/media/video-buffering-repaints-controls.html = IMAGE
  • trunk/LayoutTests/platform/gtk/test_expectations.txt

    r104590 r104658  
    9797BUGWK75432 : fast/dom/constructed-objects-prototypes.html = FAIL
    9898
    99 
     99// New test, needs image results added.
     100BUGWK75570 : http/tests/media/video-buffering-repaints-controls.html = IMAGE
  • trunk/LayoutTests/platform/mac/test_expectations.txt

    r104305 r104658  
    190190BUGWK74888 : fast/repaint/table-section-repaint.html = TEXT
    191191BUGWK74888 : fast/table/frame-and-rules.html = TEXT
     192
     193// New test, needs image results added.
     194BUGWK75570 : http/tests/media/video-buffering-repaints-controls.html = IMAGE
  • trunk/LayoutTests/platform/win/test_expectations.txt

    r103875 r104658  
    123123BUGWK74888 : fast/dom/HTMLTableElement/createCaption.html = IMAGE+TEXT
    124124BUGWK74888 : fast/repaint/table-section-repaint.html = TEXT
     125
     126// New test, needs image results added.
     127BUGWK75570 : http/tests/media/video-buffering-repaints-controls.html = IMAGE
  • trunk/Source/WebCore/ChangeLog

    r104655 r104658  
     12012-01-10  Dale Curtis  <dalecurtis@chromium.org>
     2
     3        Repaint video controls when buffering during pause.
     4        https://bugs.webkit.org/show_bug.cgi?id=73957
     5
     6        Pipes support for a new bufferingProgressed() method on MediaControls
     7        elements. Allows controls to be repainted as data buffers when paused.
     8
     9        Reviewed by Hajime Morita.
     10
     11        Test: http/tests/media/video-buffering-repaints-controls.html
     12
     13        * html/HTMLMediaElement.cpp:
     14        (WebCore::HTMLMediaElement::setNetworkState):
     15        (WebCore::HTMLMediaElement::progressEventTimerFired):
     16        * html/shadow/MediaControlRootElement.cpp:
     17        (WebCore::MediaControlRootElement::bufferingProgressed):
     18        * html/shadow/MediaControlRootElement.h:
     19        * html/shadow/MediaControlRootElementChromium.cpp:
     20        (WebCore::MediaControlRootElementChromium::bufferingProgressed):
     21        * html/shadow/MediaControlRootElementChromium.h:
     22        * html/shadow/MediaControls.h:
     23
    1242012-01-10  Daniel Cheng  <dcheng@chromium.org>
    225
  • trunk/Source/WebCore/html/HTMLMediaElement.cpp

    r104619 r104658  
    12751275        if (m_networkState > NETWORK_IDLE) {
    12761276            m_progressEventTimer.stop();
     1277            if (hasMediaControls() && m_player->bytesLoaded() != m_previousProgress)
     1278                mediaControls()->bufferingProgressed();
     1279
    12771280            scheduleEvent(eventNames().suspendEvent);
    12781281            setShouldDelayLoadEvent(false);
     
    12901293        if (m_networkState != NETWORK_IDLE) {
    12911294            m_progressEventTimer.stop();
     1295            if (hasMediaControls() && m_player->bytesLoaded() != m_previousProgress)
     1296                mediaControls()->bufferingProgressed();
    12921297
    12931298            // Schedule one last progress event so we guarantee that at least one is fired
     
    14531458        if (renderer())
    14541459            renderer()->updateFromElement();
     1460        if (hasMediaControls())
     1461            mediaControls()->bufferingProgressed();
    14551462    }
    14561463}
  • trunk/Source/WebCore/html/shadow/MediaControlRootElement.cpp

    r104624 r104658  
    665665}
    666666
     667void MediaControlRootElement::bufferingProgressed()
     668{
     669    // We only need to update buffering progress when paused, during normal
     670    // playback playbackProgressed() will take care of it.
     671    if (m_mediaController->paused())
     672        m_timeline->setPosition(m_mediaController->currentTime());
     673}
     674
    667675}
    668676
  • trunk/Source/WebCore/html/shadow/MediaControlRootElement.h

    r103242 r104658  
    113113    virtual bool shouldHideControls();
    114114
     115    void bufferingProgressed();
     116
    115117private:
    116118    MediaControlRootElement(Document*);
  • trunk/Source/WebCore/html/shadow/MediaControlRootElementChromium.cpp

    r104624 r104658  
    399399}
    400400
     401void MediaControlRootElementChromium::bufferingProgressed()
     402{
     403    // We only need to update buffering progress when paused, during normal
     404    // playback playbackProgressed() will take care of it.
     405    if (m_mediaController->paused())
     406        m_timeline->setPosition(m_mediaController->currentTime());
     407}
     408
    401409}
    402410
  • trunk/Source/WebCore/html/shadow/MediaControlRootElementChromium.h

    r103242 r104658  
    100100#endif
    101101
     102    void bufferingProgressed();
     103
    102104    virtual bool shouldHideControls();
    103105
  • trunk/Source/WebCore/html/shadow/MediaControls.h

    r103242 r104658  
    7979#endif
    8080
     81    virtual void bufferingProgressed() = 0;
     82
    8183protected:
    8284    MediaControls(Document*);
Note: See TracChangeset for help on using the changeset viewer.