<html>
<head>
<base href="https://bugs.webkit.org/" />
</head>
<body>
<p>
<div>
<b><a class="bz_bug_link
bz_status_NEW "
title="NEW - CurrentTime on mediaController is set as 0 when playback is completed."
href="https://bugs.webkit.org/show_bug.cgi?id=149154#c9">Comment # 9</a>
on <a class="bz_bug_link
bz_status_NEW "
title="NEW - CurrentTime on mediaController is set as 0 when playback is completed."
href="https://bugs.webkit.org/show_bug.cgi?id=149154">bug 149154</a>
from <span class="vcard"><a class="email" href="mailto:eric.carlson@apple.com" title="Eric Carlson <eric.carlson@apple.com>"> <span class="fn">Eric Carlson</span></a>
</span></b>
<pre>Comment on <span class=""><a href="attachment.cgi?id=261294&action=diff" name="attach_261294" title="Patch">attachment 261294</a> <a href="attachment.cgi?id=261294&action=edit" title="Patch">[details]</a></span>
Patch
View in context: <a href="https://bugs.webkit.org/attachment.cgi?id=261294&action=review">https://bugs.webkit.org/attachment.cgi?id=261294&action=review</a>
<span class="quote">>>> Source/WebCore/html/MediaController.cpp:458
>>> break;
>>
>> Instead of adding a new instance variable to track state, can you just set current time to 0 when playback state changes from ENDED to PLAYING?
>>
>> case PLAYING:
>> if (oldReadyState == ENDED)
>> m_clock->setCurrentTime(0);
>> eventName = eventNames().playingEvent;
>> m_clock->start();
>> startTimeupdateTimer();
>> break;
>
> I tried to using oldPlaybackState but during my test, sometimes I observed that the WAITING event is comming between ENDED and PLAYING.
>
> e.g)
> ENDED -> PLAYING
> ENDED -> WAITING -> PLAYING
>
> To cover both case, I added a new variable to track state.</span >
OK. In any case, you should handle this in the switch statement:
case PLAYING:
if (m_resetCurrentTimeInNextPlay)
m_clock->setCurrentTime(0);
m_resetCurrentTimeInNextPlay = false;
eventName = eventNames().playingEvent;
m_clock->start();
startTimeupdateTimer();
break;
<span class="quote">>>> Source/WebCore/html/MediaController.h:157
>>> + bool m_resetCurrentTimeInNextPlay;
>>
>> For new code, we should initialize in the header:
>>
>> bool m_resetCurrentTimeInNextPlay { false };
>
> It's initialized in constructor, do I need initialize in head also?</span >
For new code, the WebKit style is initialize in the header instead of in the constructor.</pre>
</div>
</p>
<hr>
<span>You are receiving this mail because:</span>
<ul>
<li>You are the assignee for the bug.</li>
</ul>
</body>
</html>