Changeset 280330 in webkit
- Timestamp:
- Jul 26, 2021 5:25:42 PM (12 months ago)
- Location:
- trunk
- Files:
-
- 2 added
- 4 edited
-
LayoutTests/ChangeLog (modified) (1 diff)
-
LayoutTests/media/media-session/play-after-seek-expected.txt (added)
-
LayoutTests/media/media-session/play-after-seek.html (added)
-
Source/WebCore/ChangeLog (modified) (1 diff)
-
Source/WebCore/html/HTMLMediaElement.cpp (modified) (6 diffs)
-
Source/WebCore/html/HTMLMediaElement.h (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r280329 r280330 1 2021-07-26 Jean-Yves Avenard <jya@apple.com> 2 3 Video pauses after scrubbing with Touch Bar 4 https://bugs.webkit.org/show_bug.cgi?id=228277 5 rdar://80606886 6 7 Reviewed by Jer Noble. 8 9 * media/media-session/play-after-seek-expected.txt: Added. 10 * media/media-session/play-after-seek.html: Added. 11 1 12 2021-07-26 Eric Hutchison <ehutchison@apple.com> 2 13 -
trunk/Source/WebCore/ChangeLog
r280323 r280330 1 2021-07-26 Jean-Yves Avenard <jya@apple.com> 2 3 Video pauses after scrubbing with Touch Bar 4 https://bugs.webkit.org/show_bug.cgi?id=228277 5 rdar://80606886 6 7 Reviewed by Jer Noble. 8 9 In https://trac.webkit.org/r206487 ; in order to ensure that the playback state 10 was properly reflected following a seek using the touch bar, the element was paused. 11 It's unclear if that workaround is still required, but for now we will record if the 12 element was playing before the seek and if so, resume playback once the seek completes. 13 Now that the touch bar and Now Playing are hooked to the Media Session action handlers 14 the behaviour change will occur for all those components. 15 16 Test: media/media-session/play-after-seek.html 17 18 * html/HTMLMediaElement.cpp: 19 (WebCore::HTMLMediaElement::HTMLMediaElement): Initialize new member in constructor. 20 (WebCore::HTMLMediaElement::clearSeeking): 21 (WebCore::HTMLMediaElement::finishSeek): Call play() once seek completes if the element 22 was playing before. 23 (WebCore::HTMLMediaElement::pause): Ensure that if pause() is called before the seek 24 completes, the element stays paused. 25 (WebCore::HTMLMediaElement::handleSeekToPlaybackPosition): Record playing state before 26 pausing the element. 27 * html/HTMLMediaElement.h: Add new boolean member. 28 1 29 2021-07-26 Ryosuke Niwa <rniwa@webkit.org> 2 30 -
trunk/Source/WebCore/html/HTMLMediaElement.cpp
r280308 r280330 415 415 , m_seeking(false) 416 416 , m_seekRequested(false) 417 , m_wasPlayingBeforeSeeking(false) 417 418 , m_sentStalledEvent(false) 418 419 , m_sentEndEvent(false) … … 3082 3083 m_seekRequested = false; 3083 3084 m_pendingSeekType = NoSeek; 3085 m_wasPlayingBeforeSeeking = false; 3084 3086 invalidateCachedTime(); 3085 3087 } … … 3087 3089 void HTMLMediaElement::finishSeek() 3088 3090 { 3091 bool wasPlayingBeforeSeeking = m_wasPlayingBeforeSeeking; 3089 3092 // 4.8.10.9 Seeking 3090 3093 // 14 - Set the seeking IDL attribute to false. … … 3112 3115 m_mediaSource->monitorSourceBuffers(); 3113 3116 #endif 3117 if (wasPlayingBeforeSeeking) 3118 playInternal(); 3114 3119 } 3115 3120 … … 3566 3571 3567 3572 pauseInternal(); 3573 // If we have a pending seek, ensure playback doesn't resume. 3574 m_wasPlayingBeforeSeeking = false; 3568 3575 } 3569 3576 … … 4855 4862 if (!m_isScrubbingRemotely) { 4856 4863 m_isScrubbingRemotely = true; 4857 if ( !paused())4864 if ((m_wasPlayingBeforeSeeking = !paused())) 4858 4865 pauseInternal(); 4859 4866 } -
trunk/Source/WebCore/html/HTMLMediaElement.h
r280308 r280330 1072 1072 bool m_seeking : 1; 1073 1073 bool m_seekRequested : 1; 1074 bool m_wasPlayingBeforeSeeking : 1; 1074 1075 1075 1076 // data has not been loaded since sending a "stalled" event
Note: See TracChangeset
for help on using the changeset viewer.