Bug 73957

Summary: Repaint video controls when buffering during pause.
Product: WebKit Reporter: Dale Curtis <dalecurtis>
Component: MediaAssignee: Nobody <webkit-unassigned>
Status: RESOLVED FIXED    
Severity: Normal CC: dglazkov, eric.carlson, gustavo, scherkus, vrk, webkit.review.bot, xan.lopez
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: All   
OS: All   
Attachments:
Description Flags
Patch
none
Patch
none
Patch
none
Patch
none
Patch none

Dale Curtis
Reported 2011-12-06 15:51:27 PST
Repaint video controls when buffering during pause.
Attachments
Patch (8.41 KB, patch)
2011-12-06 15:59 PST, Dale Curtis
no flags
Patch (8.42 KB, patch)
2011-12-06 16:50 PST, Dale Curtis
no flags
Patch (57.99 KB, patch)
2012-01-04 13:13 PST, Dale Curtis
no flags
Patch (57.99 KB, patch)
2012-01-04 13:41 PST, Dale Curtis
no flags
Patch (57.94 KB, patch)
2012-01-10 17:09 PST, Dale Curtis
no flags
Dale Curtis
Comment 1 2011-12-06 15:59:17 PST
Dale Curtis
Comment 2 2011-12-06 16:07:24 PST
Currently buffering progress on the media controls does not update when the video is paused or hasn't started. Not exactly the end of world, but a polish issue none the less. The attached patch fixes this issue by piping a new MediaControls::bufferingProgressed() method which is called when the buffer updates according to HTMLMediaElement::progressEventTimerFired. A new layout test is included to verify this behavior. The layout test uses an image diff, but I'm not sure what the process for generating the platform expected images is. Please take a look and advise. Chromium Issue: http://crbug.com/97720 Chromium CL: http://codereview.chromium.org/8496044/
Early Warning System Bot
Comment 3 2011-12-06 16:10:42 PST
Dale Curtis
Comment 4 2011-12-06 16:16:59 PST
Whoops, apparently since the time I wrote this patch there's been a refactoring of the MediaControls classes. I'll dig into this and resubmit.
WebKit Review Bot
Comment 5 2011-12-06 16:17:04 PST
Comment on attachment 118130 [details] Patch Attachment 118130 [details] did not pass chromium-ews (chromium-xvfb): Output: http://queues.webkit.org/results/10739241
Gustavo Noronha (kov)
Comment 6 2011-12-06 16:28:00 PST
Dale Curtis
Comment 7 2011-12-06 16:50:19 PST
Eric Carlson
Comment 8 2011-12-06 17:00:31 PST
m_timeline->setPosition() sets the position of the slider thumb. When the element is paused the thumb will be stationary, so I would hope that the entire slider would not be invalidated and redrawn.
Dale Curtis
Comment 9 2011-12-06 17:18:20 PST
At least on Chromium, setting the position of MediaSliderThumb results in a repaint for MediaSlider as well. Whether the repaint is done explicitly or is just due to a change in HTMLMediaElement::percentLoaded() I'm not sure.
Hajime Morrita
Comment 10 2011-12-11 21:16:46 PST
Comment on attachment 118141 [details] Patch > At least on Chromium, setting the position of MediaSliderThumb results in a repaint for MediaSlider as well. Whether the repaint is done explicitly or is just due to a change in HTMLMediaElement::percentLoaded() I'm not sure. Your light, HTMLInputElement, which is a superclass of MediaControlTimelineElement, should take care of it. r- for now because the change doesn't contain test expectation file or suppression lines. Code looks good to me.
Dale Curtis
Comment 11 2011-12-12 10:51:07 PST
Thanks for your comments morrita. As mentioned in an earlier comment, I'm looking for advice on proper generation of the the expected files. When running the included layout test it only generates the per-platform expected files and not the generic expected. Am I doing something wrong? If not, what's the proper procedure for generating and including these platform expected results? Output: Writing new expected result "platform/chromium-linux/http/tests/media/video-buffering-repaints-controls-expected.txt" Writing new expected result "platform/chromium-linux/http/tests/media/video-buffering-repaints-controls-expected.png" http/tests/media/video-buffering-repaints-controls.html -> unexpected no expected result found 0 tests ran as expected, 1 didn't: Regressions: Unexpected no expected results found : (1) http/tests/media/video-buffering-repaints-controls.html = MISSING
Dale Curtis
Comment 12 2012-01-04 13:13:57 PST
Dale Curtis
Comment 13 2012-01-04 13:41:13 PST
Dale Curtis
Comment 14 2012-01-04 13:47:39 PST
PTAL. Under dglazkov's gracious advice, I've added the expected results for the chromium-linux platform, added suppression entries to the test_expectations.txt for all platforms, and filed https://bugs.webkit.org/show_bug.cgi?id=75570 to track submitting the baselines after this patch goes in.
Hajime Morrita
Comment 15 2012-01-05 17:30:27 PST
Comment on attachment 121142 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=121142&action=review Looks good, with small nit. > Source/WebCore/html/shadow/MediaControlRootElement.h:115 > + void bufferingProgressed(); Nit: As WebKit being under influence of Obj-C, generally this would be named didBufferingProgress().
Dale Curtis
Comment 16 2012-01-05 17:44:33 PST
Comment on attachment 121142 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=121142&action=review >> Source/WebCore/html/shadow/MediaControlRootElement.h:115 >> + void bufferingProgressed(); > > Nit: As WebKit being under influence of Obj-C, generally this would be named didBufferingProgress(). Thanks for your review! Since other methods in the class with similar functionality do not use the did* style, I think it's better to keep it as it is.
WebKit Review Bot
Comment 17 2012-01-10 16:56:31 PST
Comment on attachment 121142 [details] Patch Rejecting attachment 121142 [details] from commit-queue. Failed to run "['/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch', '--status-host=queues.webkit.org', '-..." exit_code: 2 Last 500 characters of output: of 1 hunk FAILED -- saving rejects to file LayoutTests/platform/chromium/test_expectations.txt.rej patching file LayoutTests/platform/gtk/test_expectations.txt Hunk #1 succeeded at 96 (offset -3 lines). patching file LayoutTests/platform/mac/test_expectations.txt Hunk #1 succeeded at 189 (offset -5 lines). patching file LayoutTests/platform/win/test_expectations.txt Failed to run "[u'/mnt/git/webkit-commit-queue/Tools/Scripts/svn-apply', u'--reviewer', u'Hajime Morita', u'--fo..." exit_code: 1 Full output: http://queues.webkit.org/results/11141702
Dale Curtis
Comment 18 2012-01-10 17:09:01 PST
WebKit Review Bot
Comment 19 2012-01-10 17:51:35 PST
Comment on attachment 121945 [details] Patch Clearing flags on attachment: 121945 Committed r104658: <http://trac.webkit.org/changeset/104658>
WebKit Review Bot
Comment 20 2012-01-10 17:51:41 PST
All reviewed patches have been landed. Closing bug.
Note You need to log in before you can comment on or make changes to this bug.