Changeset 224085 in webkit
- Timestamp:
- Oct 26, 2017 11:06:38 PM (7 years ago)
- Location:
- trunk/Source
- Files:
-
- 14 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r224079 r224085 1 2017-10-26 Jeremy Jones <jeremyj@apple.com> 2 3 Implement seek tolerance methods in WebAVPlayerController. 4 https://bugs.webkit.org/show_bug.cgi?id=178838 5 rdar://problem/33781777 6 7 Reviewed by Eric Carlson. 8 9 No new tests because this doesn't change any behavior in the page, but exposes seek tolerance to fullscreen platform UI. 10 11 * html/HTMLMediaElement.cpp: 12 (WebCore::HTMLMediaElement::setCurrentTimeWithTolerance): 13 * html/HTMLMediaElement.h: 14 * platform/cocoa/PlaybackSessionModel.h: 15 * platform/cocoa/PlaybackSessionModelMediaElement.h: 16 * platform/cocoa/PlaybackSessionModelMediaElement.mm: 17 (WebCore::PlaybackSessionModelMediaElement::seekToTime): 18 * platform/ios/WebAVPlayerController.mm: 19 (-[WebAVPlayerController seekToTime:]): 20 (-[WebAVPlayerController seekToTime:toleranceBefore:toleranceAfter:]): 21 (-[WebAVPlayerController seekByTimeInterval:]): 22 (-[WebAVPlayerController seekByTimeInterval:toleranceBefore:toleranceAfter:]): 23 (-[WebAVPlayerController seekToBeginning:]): 24 (-[WebAVPlayerController seekToEnd:]): 25 * platform/ios/WebVideoFullscreenControllerAVKit.mm: 26 (VideoFullscreenControllerContext::seekToTime): 27 1 28 2017-10-26 Michael Catanzaro <mcatanzaro@igalia.com> 2 29 -
trunk/Source/WebCore/html/HTMLMediaElement.cpp
r223960 r224085 3143 3143 } 3144 3144 3145 void HTMLMediaElement::setCurrentTimeWithTolerance(double time, double toleranceBefore, double toleranceAfter) 3146 { 3147 seekWithTolerance(MediaTime::createWithDouble(time), MediaTime::createWithDouble(toleranceBefore), MediaTime::createWithDouble(toleranceAfter), true); 3148 } 3149 3145 3150 void HTMLMediaElement::setCurrentTime(const MediaTime& time) 3146 3151 { -
trunk/Source/WebCore/html/HTMLMediaElement.h
r224030 r224085 227 227 WEBCORE_EXPORT double currentTime() const override; 228 228 void setCurrentTime(double) override; 229 void setCurrentTimeWithTolerance(double, double toleranceBefore, double toleranceAfter); 229 230 double currentTimeForBindings() const { return currentTime(); } 230 231 WEBCORE_EXPORT ExceptionOr<void> setCurrentTimeForBindings(double); -
trunk/Source/WebCore/platform/cocoa/PlaybackSessionModel.h
r219996 r224085 49 49 virtual void beginScrubbing() = 0; 50 50 virtual void endScrubbing() = 0; 51 virtual void seekToTime(double time ) = 0;51 virtual void seekToTime(double time, double toleranceBefore = 0, double toleranceAfter = 0) = 0; 52 52 virtual void fastSeek(double time) = 0; 53 53 virtual void beginScanningForward() = 0; -
trunk/Source/WebCore/platform/cocoa/PlaybackSessionModelMediaElement.h
r219996 r224085 63 63 WEBCORE_EXPORT void beginScrubbing() final; 64 64 WEBCORE_EXPORT void endScrubbing() final; 65 WEBCORE_EXPORT void seekToTime(double time ) final;65 WEBCORE_EXPORT void seekToTime(double time, double toleranceBefore, double toleranceAfter) final; 66 66 WEBCORE_EXPORT void fastSeek(double time) final; 67 67 WEBCORE_EXPORT void beginScanningForward() final; -
trunk/Source/WebCore/platform/cocoa/PlaybackSessionModelMediaElement.mm
r219996 r224085 219 219 } 220 220 221 void PlaybackSessionModelMediaElement::seekToTime(double time )222 { 223 if (m_mediaElement) 224 m_mediaElement->setCurrentTime (time);221 void PlaybackSessionModelMediaElement::seekToTime(double time, double toleranceBefore, double toleranceAfter) 222 { 223 if (m_mediaElement) 224 m_mediaElement->setCurrentTimeWithTolerance(time, toleranceBefore, toleranceAfter); 225 225 } 226 226 -
trunk/Source/WebCore/platform/ios/WebAVPlayerController.mm
r223476 r224085 168 168 { 169 169 if (self.delegate) 170 self.delegate->fastSeek(time); 170 self.delegate->seekToTime(time); 171 } 172 173 - (void)seekToTime:(NSTimeInterval)time toleranceBefore:(NSTimeInterval)before toleranceAfter:(NSTimeInterval)after 174 { 175 self.delegate->seekToTime(time, before, after); 176 } 177 178 - (void)seekByTimeInterval:(NSTimeInterval)interval 179 { 180 [self seekByTimeInterval:interval toleranceBefore:0. toleranceAfter:0.]; 181 } 182 183 - (void)seekByTimeInterval:(NSTimeInterval)interval toleranceBefore:(NSTimeInterval)before toleranceAfter:(NSTimeInterval)after 184 { 185 NSTimeInterval targetTime = [[self timing] currentValue] + interval; 186 [self seekToTime:targetTime toleranceBefore:before toleranceAfter:after]; 171 187 } 172 188 -
trunk/Source/WebCore/platform/ios/WebVideoFullscreenControllerAVKit.mm
r220506 r224085 141 141 void beginScrubbing() override; 142 142 void endScrubbing() override; 143 void seekToTime(double ) override;143 void seekToTime(double, double, double) override; 144 144 void fastSeek(double time) override; 145 145 void beginScanningForward() override; … … 636 636 } 637 637 638 void VideoFullscreenControllerContext::seekToTime(double time )639 { 640 ASSERT(isUIThread()); 641 RefPtr<VideoFullscreenControllerContext> protectedThis(this); 642 WebThreadRun([protectedThis, this, time ] {643 if (m_playbackModel) 644 m_playbackModel->seekToTime(time );638 void VideoFullscreenControllerContext::seekToTime(double time, double toleranceBefore, double toleranceAfter) 639 { 640 ASSERT(isUIThread()); 641 RefPtr<VideoFullscreenControllerContext> protectedThis(this); 642 WebThreadRun([protectedThis, this, time, toleranceBefore, toleranceAfter] { 643 if (m_playbackModel) 644 m_playbackModel->seekToTime(time, toleranceBefore, toleranceAfter); 645 645 }); 646 646 } -
trunk/Source/WebKit/ChangeLog
r224082 r224085 1 2017-10-26 Jeremy Jones <jeremyj@apple.com> 2 3 Implement seek tolerance methods in WebAVPlayerController. 4 https://bugs.webkit.org/show_bug.cgi?id=178838 5 rdar://problem/33781777 6 7 Reviewed by Eric Carlson. 8 9 This implementes additional methods on WebAVPlayerController that allows AVKit more control over seeking. 10 11 * UIProcess/Cocoa/PlaybackSessionManagerProxy.h: 12 * UIProcess/Cocoa/PlaybackSessionManagerProxy.mm: 13 (WebKit::PlaybackSessionModelContext::seekToTime): 14 (WebKit::PlaybackSessionManagerProxy::seekToTime): 15 * WebProcess/cocoa/PlaybackSessionManager.h: 16 * WebProcess/cocoa/PlaybackSessionManager.messages.in: 17 * WebProcess/cocoa/PlaybackSessionManager.mm: 18 (WebKit::PlaybackSessionManager::seekToTime): 19 1 20 2017-10-26 Brian Burg <bburg@apple.com> 2 21 -
trunk/Source/WebKit/UIProcess/Cocoa/PlaybackSessionManagerProxy.h
r219996 r224085 101 101 void beginScrubbing() final; 102 102 void endScrubbing() final; 103 void seekToTime(double ) final;103 void seekToTime(double, double, double) final; 104 104 void fastSeek(double time) final; 105 105 void beginScanningForward() final; … … 210 210 void beginScrubbing(uint64_t contextId); 211 211 void endScrubbing(uint64_t contextId); 212 void seekToTime(uint64_t contextId, double time );212 void seekToTime(uint64_t contextId, double time, double before, double after); 213 213 void fastSeek(uint64_t contextId, double time); 214 214 void beginScanningForward(uint64_t contextId); -
trunk/Source/WebKit/UIProcess/Cocoa/PlaybackSessionManagerProxy.mm
r222896 r224085 87 87 } 88 88 89 void PlaybackSessionModelContext::seekToTime(double time )90 { 91 if (m_manager) 92 m_manager->seekToTime(m_contextId, time );89 void PlaybackSessionModelContext::seekToTime(double time, double toleranceBefore, double toleranceAfter) 90 { 91 if (m_manager) 92 m_manager->seekToTime(m_contextId, time, toleranceBefore, toleranceAfter); 93 93 } 94 94 … … 495 495 } 496 496 497 void PlaybackSessionManagerProxy::seekToTime(uint64_t contextId, double time )498 { 499 m_page->send(Messages::PlaybackSessionManager::SeekToTime(contextId, time ), m_page->pageID());497 void PlaybackSessionManagerProxy::seekToTime(uint64_t contextId, double time, double toleranceBefore, double toleranceAfter) 498 { 499 m_page->send(Messages::PlaybackSessionManager::SeekToTime(contextId, time, toleranceBefore, toleranceAfter), m_page->pageID()); 500 500 } 501 501 -
trunk/Source/WebKit/WebProcess/cocoa/PlaybackSessionManager.h
r220504 r224085 147 147 void beginScrubbing(uint64_t contextId); 148 148 void endScrubbing(uint64_t contextId); 149 void seekToTime(uint64_t contextId, double time );149 void seekToTime(uint64_t contextId, double time, double toleranceBefore, double toleranceAfter); 150 150 void fastSeek(uint64_t contextId, double time); 151 151 void beginScanningForward(uint64_t contextId); -
trunk/Source/WebKit/WebProcess/cocoa/PlaybackSessionManager.messages.in
r219996 r224085 29 29 BeginScrubbing(uint64_t contextId) 30 30 EndScrubbing(uint64_t contextId) 31 SeekToTime(uint64_t contextId, double time )31 SeekToTime(uint64_t contextId, double time, double toleranceBefore, double toleranceAfter) 32 32 FastSeek(uint64_t contextId, double time) 33 33 BeginScanningForward(uint64_t contextId) -
trunk/Source/WebKit/WebProcess/cocoa/PlaybackSessionManager.mm
r220504 r224085 410 410 } 411 411 412 void PlaybackSessionManager::seekToTime(uint64_t contextId, double time )413 { 414 UserGestureIndicator indicator(ProcessingUserGesture); 415 ensureModel(contextId).seekToTime(time );412 void PlaybackSessionManager::seekToTime(uint64_t contextId, double time, double toleranceBefore, double toleranceAfter) 413 { 414 UserGestureIndicator indicator(ProcessingUserGesture); 415 ensureModel(contextId).seekToTime(time, toleranceBefore, toleranceAfter); 416 416 } 417 417
Note: See TracChangeset
for help on using the changeset viewer.