Bug 149111

Summary: [GTK] timeline is not updated after few seconds when mouse hovers on controls
Product: WebKit Reporter: ChangSeok Oh <changseok>
Component: WebKitGTKAssignee: ChangSeok Oh <changseok>
Status: RESOLVED FIXED    
Severity: Normal CC: calvaris, cgarcia, commit-queue, gustavo, pnormand
Priority: P2    
Version: WebKit Nightly Build   
Hardware: PC   
OS: Linux   
Bug Depends on:    
Bug Blocks: 149396    
Attachments:
Description Flags
Patch
none
Patch none

ChangSeok Oh
Reported 2015-09-13 22:04:27 PDT
1. go http://www.w3schools.com/html/html5_video.asp 2. click a play button 3. stay cursor on the playbutton. 4. you can see time is paused after 4 seconds.
Attachments
Patch (5.21 KB, patch)
2015-09-14 09:26 PDT, ChangSeok Oh
no flags
Patch (5.30 KB, patch)
2015-09-16 09:10 PDT, ChangSeok Oh
no flags
ChangSeok Oh
Comment 1 2015-09-14 09:26:46 PDT
Xabier Rodríguez Calvar
Comment 2 2015-09-16 00:57:43 PDT
Can you please tell me which diagnostics have you made so that you reach the conclusion that this is the best patch? It is weird because we shouldn't need to check the opacity as precisely, we handle the opacity thru CSS with the classes we add to the element.
ChangSeok Oh
Comment 3 2015-09-16 01:26:19 PDT
(In reply to comment #2) > Can you please tell me which diagnostics have you made so that you reach the > conclusion that this is the best patch? > > It is weird because we shouldn't need to check the opacity as precisely, we > handle the opacity thru CSS with the classes we add to the element. As I described the situation in the ChangeLog, We changed not to update time if controllAreHidden is true in https://bugs.webkit.org/show_bug.cgi?id=137773. However this affects on controls behavior very much. Let guess this scenario. (move cursor on playbutton) -> (click play button) -> (hideControl timer fired by resetHideControlsTimer after 4 secs) -> (now controlsAreHidden is true since panel has neither -webkit-media-controls-panel.show nor -webkit-media-controls-panel.hidden) -> (playing along with visible controls due to -webkit-media-controls-panel:hover which sets opacity to 1, but time is not updated because of controlsAreHidden == 1) So the problem here is controlsAreHidden does not actually mean "hidden" and I check the opacity is really 0. I don't want to argue this approach is the best. Any better idea is welcome. =)
ChangSeok Oh
Comment 4 2015-09-16 01:29:01 PDT
This fixes audio controls broken as well. Try http://www.quackit.com/html_5/tags/html_audio_tag.cfm
Xabier Rodríguez Calvar
Comment 5 2015-09-16 04:04:02 PDT
(In reply to comment #3) > As I described the situation in the ChangeLog, We changed not to update time > if controllAreHidden is true in > https://bugs.webkit.org/show_bug.cgi?id=137773. > However this affects on controls behavior very much. Let guess this scenario. > (move cursor on playbutton) -> (click play button) -> (hideControl timer > fired by resetHideControlsTimer after 4 secs) -> (now controlsAreHidden is > true since panel has neither -webkit-media-controls-panel.show nor > -webkit-media-controls-panel.hidden) -> (playing along with visible controls > due to -webkit-media-controls-panel:hover which sets opacity to 1, but time > is not updated because of controlsAreHidden == 1) > So the problem here is controlsAreHidden does not actually mean "hidden" and > I check the opacity is really 0. I understand now, good catch. You're right, another check needs to be done, though I don't think checking for opacity is the best way to go, but checking for the :hover property as :hover can change opacity, display or whatever we want from CSS. IMHO, we are safer with checking for :hover.
ChangSeok Oh
Comment 6 2015-09-16 09:10:34 PDT
ChangSeok Oh
Comment 7 2015-09-16 09:14:36 PDT
(In reply to comment #5) > (In reply to comment #3) > > As I described the situation in the ChangeLog, We changed not to update time > > if controllAreHidden is true in > > https://bugs.webkit.org/show_bug.cgi?id=137773. > > However this affects on controls behavior very much. Let guess this scenario. > > (move cursor on playbutton) -> (click play button) -> (hideControl timer > > fired by resetHideControlsTimer after 4 secs) -> (now controlsAreHidden is > > true since panel has neither -webkit-media-controls-panel.show nor > > -webkit-media-controls-panel.hidden) -> (playing along with visible controls > > due to -webkit-media-controls-panel:hover which sets opacity to 1, but time > > is not updated because of controlsAreHidden == 1) > > So the problem here is controlsAreHidden does not actually mean "hidden" and > > I check the opacity is really 0. > > I understand now, good catch. You're right, another check needs to be done, > though I don't think checking for opacity is the best way to go, but > checking for the :hover property as :hover can change opacity, display or > whatever we want from CSS. IMHO, we are safer with checking for :hover. Otherwise we can use querySelector to check :hover existence. However, I'm not sure if that way is better than checking opacity directly in performance aspect..
Xabier Rodríguez Calvar
Comment 8 2015-09-17 02:34:59 PDT
(In reply to comment #7) > Otherwise we can use querySelector to check :hover existence. However, I'm > not sure if that way is better than checking opacity directly in performance > aspect.. LGTM. I don't think, unless you correct me, that performance is going to be a problem.
ChangSeok Oh
Comment 9 2015-09-21 00:51:05 PDT
Comment on attachment 261311 [details] Patch Thanks!
WebKit Commit Bot
Comment 10 2015-09-21 01:37:44 PDT
Comment on attachment 261311 [details] Patch Clearing flags on attachment: 261311 Committed r190053: <http://trac.webkit.org/changeset/190053>
WebKit Commit Bot
Comment 11 2015-09-21 01:37:48 PDT
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.