Changeset 179480 in webkit
- Timestamp:
- Feb 2, 2015, 11:40:57 AM (12 years ago)
- Location:
- trunk/Source
- Files:
-
- 11 edited
-
WebCore/ChangeLog (modified) (1 diff)
-
WebCore/WebCore.exp.in (modified) (1 diff)
-
WebCore/platform/ios/WebVideoFullscreenInterface.h (modified) (1 diff)
-
WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.h (modified) (3 diffs)
-
WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm (modified) (34 diffs)
-
WebCore/platform/ios/WebVideoFullscreenModelVideoElement.mm (modified) (1 diff)
-
WebKit2/ChangeLog (modified) (1 diff)
-
WebKit2/UIProcess/ios/WebVideoFullscreenManagerProxy.messages.in (modified) (1 diff)
-
WebKit2/UIProcess/ios/WebVideoFullscreenManagerProxy.mm (modified) (1 diff)
-
WebKit2/WebProcess/ios/WebVideoFullscreenManager.h (modified) (1 diff)
-
WebKit2/WebProcess/ios/WebVideoFullscreenManager.mm (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r179476 r179480 1 2015-02-02 Jeremy Jones <jeremyj@apple.com> 2 3 Prevent crash when accessing WebAVPlayerController.delegate. 4 https://bugs.webkit.org/show_bug.cgi?id=140893 5 6 Reviewed by Darin Adler. 7 8 This patch aims to prevent a null delegate access during invalidation by adding null checks before accessing the delegate, by making explicit the recreation of m_playerController, and by consolidating and correcting the teardown sequence. 9 10 * WebCore.exp.in: 11 * platform/ios/WebVideoFullscreenInterface.h: add resetMediaState() 12 * platform/ios/WebVideoFullscreenInterfaceAVKit.h: ditto. 13 * platform/ios/WebVideoFullscreenInterfaceAVKit.mm: 14 (-[WebAVPlayerController playerViewController:shouldExitFullScreenWithReason:]): Check for null before accessing delegate. 15 (-[WebAVPlayerController play:]): ditto. 16 (-[WebAVPlayerController pause:]): ditto. 17 (-[WebAVPlayerController togglePlayback:]): ditto. 18 (-[WebAVPlayerController setPlaying:]): ditto. 19 (-[WebAVPlayerController beginScrubbing:]): ditto. 20 (-[WebAVPlayerController endScrubbing:]): ditto. 21 (-[WebAVPlayerController seekToTime:]): ditto. 22 (-[WebAVPlayerController beginScanningForward:]): ditto. 23 (-[WebAVPlayerController endScanningForward:]): ditto. 24 (-[WebAVPlayerController beginScanningBackward:]): ditto. 25 (-[WebAVPlayerController endScanningBackward:]): ditto. 26 (-[WebAVPlayerController seekToBeginning:]): ditto. 27 (-[WebAVPlayerController seekToEnd:]): ditto. 28 (-[WebAVPlayerController setCurrentAudioMediaSelectionOption:]): ditto. 29 (-[WebAVPlayerController setCurrentLegibleMediaSelectionOption:]): ditto. 30 (-[WebAVPlayerController layoutSublayersOfLayer:]): ditto. 31 (WebVideoFullscreenInterfaceAVKit::WebVideoFullscreenInterfaceAVKit): initialize m_playerController 32 (WebVideoFullscreenInterfaceAVKit::resetMediaState): Added. 33 (WebVideoFullscreenInterfaceAVKit::setDuration): remove playerController() 34 (WebVideoFullscreenInterfaceAVKit::setCurrentTime): ditto. 35 (WebVideoFullscreenInterfaceAVKit::setRate): ditto. 36 (WebVideoFullscreenInterfaceAVKit::setVideoDimensions): ditto. 37 (WebVideoFullscreenInterfaceAVKit::setSeekableRanges): ditto. 38 (WebVideoFullscreenInterfaceAVKit::setCanPlayFastReverse): ditto. 39 (WebVideoFullscreenInterfaceAVKit::setAudioMediaSelectionOptions): ditto. 40 (WebVideoFullscreenInterfaceAVKit::setLegibleMediaSelectionOptions): ditto. 41 (WebVideoFullscreenInterfaceAVKit::setExternalPlayback): ditto. 42 (WebVideoFullscreenInterfaceAVKit::setupFullscreenInternal): ditto. 43 (WebVideoFullscreenInterfaceAVKit::enterFullscreenStandard): ditto. 44 (WebVideoFullscreenInterfaceAVKit::cleanupFullscreenInternal): consolidated cleanup code from invalidate() 45 (WebVideoFullscreenInterfaceAVKit::invalidate): consolidate cleanup code. 46 (WebVideoFullscreenInterfaceAVKit::playerController): Deleted. 47 * platform/ios/WebVideoFullscreenModelVideoElement.mm: 48 (WebVideoFullscreenModelVideoElement::setVideoElement): call resetMediaState() 49 1 50 2015-02-02 Darin Adler <darin@apple.com> 2 51 -
trunk/Source/WebCore/WebCore.exp.in
r179472 r179480 3484 3484 __ZN7WebCore32WebVideoFullscreenInterfaceAVKit14setCurrentTimeEdd 3485 3485 __ZN7WebCore32WebVideoFullscreenInterfaceAVKit15enterFullscreenEv 3486 __ZN7WebCore32WebVideoFullscreenInterfaceAVKit15resetMediaStateEv 3486 3487 __ZN7WebCore32WebVideoFullscreenInterfaceAVKit15setupFullscreenER7CALayerNS_7IntRectEP6UIViewjb 3487 3488 __ZN7WebCore32WebVideoFullscreenInterfaceAVKit17cleanupFullscreenEv -
trunk/Source/WebCore/platform/ios/WebVideoFullscreenInterface.h
r173230 r179480 45 45 46 46 virtual ~WebVideoFullscreenInterface() { }; 47 virtual void resetMediaState() = 0; 47 48 virtual void setDuration(double) = 0; 48 49 virtual void setCurrentTime(double currentTime, double anchorTime) = 0; -
trunk/Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.h
r177375 r179480 74 74 WEBCORE_EXPORT void setWebVideoFullscreenChangeObserver(WebVideoFullscreenChangeObserver*); 75 75 76 WEBCORE_EXPORT virtual void resetMediaState() override; 76 77 WEBCORE_EXPORT virtual void setDuration(double) override; 77 78 WEBCORE_EXPORT virtual void setCurrentTime(double currentTime, double anchorTime) override; … … 96 97 97 98 protected: 99 void beginSession(); 98 100 void setupFullscreenInternal(PlatformLayer&, IntRect initialRect, UIView *, HTMLMediaElement::VideoFullscreenMode, bool allowOptimizedFullscreen); 99 101 void enterFullscreenOptimized(); … … 119 121 bool m_enterRequested; 120 122 121 WebAVPlayerController *playerController();122 123 123 void doEnterFullscreen(); 124 124 }; -
trunk/Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm
r179279 r179480 87 87 } 88 88 89 -(void)resetState; 90 89 91 @property (retain) AVPlayerController* playerControllerProxy; 90 92 @property (assign) WebVideoFullscreenModel* delegate; … … 155 157 } 156 158 159 -(void)resetState { 160 self.contentDuration = 0; 161 self.maxTime = 0; 162 self.contentDurationWithinEndTimes = 0; 163 self.loadedTimeRanges = @[]; 164 165 self.canPlay = NO; 166 self.canPause = NO; 167 self.canTogglePlayback = NO; 168 self.hasEnabledAudio = NO; 169 self.canSeek = NO; 170 self.minTime = 0; 171 self.status = AVPlayerControllerStatusUnknown; 172 173 self.timing = nil; 174 self.rate = 0; 175 176 self.hasEnabledVideo = NO; 177 self.contentDimensions = CGSizeMake(0, 0); 178 179 self.seekableTimeRanges = [NSMutableArray array]; 180 181 self.canScanBackward = NO; 182 183 self.audioMediaSelectionOptions = nil; 184 self.currentAudioMediaSelectionOption = nil; 185 186 self.legibleMediaSelectionOptions = nil; 187 self.currentLegibleMediaSelectionOption = nil; 188 } 189 157 190 - (AVPlayer*) player { 158 191 return nil; … … 169 202 UNUSED_PARAM(playerViewController); 170 203 UNUSED_PARAM(reason); 171 ASSERT(self.delegate); 204 if (!self.delegate) 205 return YES; 206 172 207 if (reason == AVPlayerViewControllerExitFullScreenReasonDoneButtonTapped || reason == AVPlayerViewControllerExitFullScreenReasonRemoteControlStopEventReceived) 173 208 self.delegate->pause(); 209 174 210 self.delegate->requestExitFullscreen(); 175 211 return NO; … … 179 215 { 180 216 UNUSED_PARAM(sender); 181 ASSERT(self.delegate); 217 if (!self.delegate) 218 return; 182 219 self.delegate->play(); 183 220 } … … 186 223 { 187 224 UNUSED_PARAM(sender); 188 ASSERT(self.delegate); 225 if (!self.delegate) 226 return; 189 227 self.delegate->pause(); 190 228 } … … 193 231 { 194 232 UNUSED_PARAM(sender); 195 ASSERT(self.delegate); 233 if (!self.delegate) 234 return; 196 235 self.delegate->togglePlayState(); 197 236 } … … 204 243 - (void)setPlaying:(BOOL)playing 205 244 { 206 ASSERT(self.delegate); 245 if (!self.delegate) 246 return; 207 247 if (playing) 208 248 self.delegate->play(); 209 249 else 210 250 self.delegate->pause(); 211 }251 } 212 252 213 253 + (NSSet *)keyPathsForValuesAffectingPlaying … … 219 259 { 220 260 UNUSED_PARAM(sender); 221 ASSERT(self.delegate); 261 if (!self.delegate) 262 return; 222 263 self.delegate->beginScrubbing(); 223 264 } … … 226 267 { 227 268 UNUSED_PARAM(sender); 228 ASSERT(self.delegate); 269 if (!self.delegate) 270 return; 229 271 self.delegate->endScrubbing(); 230 272 } … … 232 274 - (void)seekToTime:(NSTimeInterval)time 233 275 { 234 ASSERT(self.delegate); 276 if (!self.delegate) 277 return; 235 278 self.delegate->fastSeek(time); 236 279 } … … 295 338 { 296 339 UNUSED_PARAM(sender); 297 ASSERT(self.delegate); 340 if (!self.delegate) 341 return; 298 342 self.delegate->beginScanningForward(); 299 343 } … … 302 346 { 303 347 UNUSED_PARAM(sender); 304 ASSERT(self.delegate); 348 if (!self.delegate) 349 return; 305 350 self.delegate->endScanning(); 306 351 } … … 309 354 { 310 355 UNUSED_PARAM(sender); 311 ASSERT(self.delegate); 356 if (!self.delegate) 357 return; 312 358 self.delegate->beginScanningBackward(); 313 359 } … … 316 362 { 317 363 UNUSED_PARAM(sender); 318 ASSERT(self.delegate); 364 if (!self.delegate) 365 return; 319 366 self.delegate->endScanning(); 320 367 } … … 338 385 { 339 386 UNUSED_PARAM(sender); 340 ASSERT(self.delegate);341 387 if (!self.delegate) 388 return; 342 389 self.delegate->seekToTime(-INFINITY); 343 390 } … … 366 413 { 367 414 UNUSED_PARAM(sender); 368 ASSERT(self.delegate);369 415 if (!self.delegate) 416 return; 370 417 self.delegate->seekToTime(INFINITY); 371 418 } … … 420 467 _currentAudioMediaSelectionOption = [option retain]; 421 468 422 ASSERT(self.delegate); 469 if (!self.delegate) 470 return; 423 471 424 472 NSInteger index = NSNotFound; … … 443 491 _currentLegibleMediaSelectionOption = [option retain]; 444 492 445 ASSERT(self.delegate); 493 if (!self.delegate) 494 return; 446 495 447 496 NSInteger index = NSNotFound; … … 466 515 { 467 516 CGRect layerBounds = [layer bounds]; 468 self.delegate->setVideoLayerFrame(CGRectMake(0, 0, CGRectGetWidth(layerBounds), CGRectGetHeight(layerBounds))); 517 if (self.delegate) 518 self.delegate->setVideoLayerFrame(CGRectMake(0, 0, CGRectGetWidth(layerBounds), CGRectGetHeight(layerBounds))); 469 519 470 520 [CATransaction begin]; … … 615 665 616 666 WebVideoFullscreenInterfaceAVKit::WebVideoFullscreenInterfaceAVKit() 617 : m_videoFullscreenModel(nullptr) 667 : m_playerController(adoptNS([[WebAVPlayerController alloc] init])) 668 , m_videoFullscreenModel(nullptr) 618 669 , m_fullscreenChangeObserver(nullptr) 619 670 , m_mode(HTMLMediaElement::VideoFullscreenModeNone) … … 622 673 , m_enterRequested(false) 623 674 { 624 } 625 626 WebAVPlayerController *WebVideoFullscreenInterfaceAVKit::playerController() 627 { 628 if (!m_playerController) 629 { 630 m_playerController = adoptNS([[WebAVPlayerController alloc] init]); 631 if (m_videoFullscreenModel) 632 [m_playerController setDelegate:m_videoFullscreenModel]; 633 [m_playerController setFullscreenInterface:this]; 634 } 635 return m_playerController.get(); 636 } 637 675 [m_playerController setFullscreenInterface:this]; 676 } 677 678 void WebVideoFullscreenInterfaceAVKit::resetMediaState() 679 { 680 RefPtr<WebVideoFullscreenInterfaceAVKit> strongThis(this); 681 682 dispatch_async(dispatch_get_main_queue(), [strongThis] { 683 if (!strongThis->m_playerController) { 684 strongThis->m_playerController = adoptNS([[WebAVPlayerController alloc] init]); 685 [strongThis->m_playerController setDelegate:strongThis->m_videoFullscreenModel]; 686 [strongThis->m_playerController setFullscreenInterface:strongThis.get()]; 687 688 } else 689 [strongThis->m_playerController resetState]; 690 }); 691 } 638 692 639 693 void WebVideoFullscreenInterfaceAVKit::setWebVideoFullscreenModel(WebVideoFullscreenModel* model) … … 653 707 654 708 dispatch_async(dispatch_get_main_queue(), [strongThis, duration] { 655 WebAVPlayerController* playerController = strongThis-> playerController();709 WebAVPlayerController* playerController = strongThis->m_playerController.get(); 656 710 657 711 // FIXME: https://bugs.webkit.org/show_bug.cgi?id=127017 use correct values instead of duration for all these … … 677 731 678 732 dispatch_async(dispatch_get_main_queue(), [strongThis, currentTime, anchorTime] { 679 NSTimeInterval anchorTimeStamp = ![strongThis-> playerController()rate] ? NAN : anchorTime;733 NSTimeInterval anchorTimeStamp = ![strongThis->m_playerController rate] ? NAN : anchorTime; 680 734 AVValueTiming *timing = [getAVValueTimingClass() valueTimingWithAnchorValue:currentTime 681 735 anchorTimeStamp:anchorTimeStamp rate:0]; 682 strongThis->playerController().timing = timing;736 [strongThis->m_playerController setTiming:timing]; 683 737 }); 684 738 } … … 689 743 690 744 dispatch_async(dispatch_get_main_queue(), [strongThis, isPlaying, playbackRate] { 691 strongThis->playerController().rate = isPlaying ? playbackRate : 0.;745 [strongThis->m_playerController setRate:isPlaying ? playbackRate : 0.]; 692 746 }); 693 747 } … … 698 752 699 753 dispatch_async(dispatch_get_main_queue(), [strongThis, hasVideo, width, height] { 700 strongThis->playerController().hasEnabledVideo = hasVideo;701 strongThis->playerController().contentDimensions = CGSizeMake(width, height);754 [strongThis->m_playerController setHasEnabledVideo:hasVideo]; 755 [strongThis->m_playerController setContentDimensions:CGSizeMake(width, height)]; 702 756 }); 703 757 } … … 719 773 720 774 dispatch_async(dispatch_get_main_queue(), [strongThis, seekableRanges] { 721 strongThis->playerController().seekableTimeRanges = seekableRanges.get();775 [strongThis->m_playerController setSeekableTimeRanges:seekableRanges.get()]; 722 776 }); 723 777 } … … 728 782 729 783 dispatch_async(dispatch_get_main_queue(), [strongThis, canPlayFastReverse] { 730 strongThis->playerController().canScanBackward = canPlayFastReverse;784 [strongThis->m_playerController setCanScanBackward:canPlayFastReverse]; 731 785 }); 732 786 } … … 749 803 750 804 dispatch_async(dispatch_get_main_queue(), [webOptions, strongThis, selectedIndex] { 751 strongThis->playerController().audioMediaSelectionOptions = webOptions.get();805 [strongThis->m_playerController setAudioMediaSelectionOptions:webOptions.get()]; 752 806 if (selectedIndex < [webOptions count]) 753 strongThis->playerController().currentAudioMediaSelectionOption = [webOptions objectAtIndex:static_cast<NSUInteger>(selectedIndex)];807 [strongThis->m_playerController setCurrentAudioMediaSelectionOption:[webOptions objectAtIndex:static_cast<NSUInteger>(selectedIndex)]]; 754 808 }); 755 809 } … … 761 815 762 816 dispatch_async(dispatch_get_main_queue(), [webOptions, strongThis, selectedIndex] { 763 strongThis->playerController().legibleMediaSelectionOptions = webOptions.get();817 [strongThis->m_playerController setLegibleMediaSelectionOptions:webOptions.get()]; 764 818 if (selectedIndex < [webOptions count]) 765 strongThis->playerController().currentLegibleMediaSelectionOption = [webOptions objectAtIndex:static_cast<NSUInteger>(selectedIndex)];819 [strongThis->m_playerController setCurrentLegibleMediaSelectionOption:[webOptions objectAtIndex:static_cast<NSUInteger>(selectedIndex)]]; 766 820 }); 767 821 } … … 778 832 779 833 dispatch_async(dispatch_get_main_queue(), [strongThis, enabled, localizedDeviceName, externalPlaybackType] { 780 WebAVPlayerController* playerController = strongThis-> playerController();834 WebAVPlayerController* playerController = strongThis->m_playerController.get(); 781 835 playerController.externalPlaybackAirPlayDeviceLocalizedName = localizedDeviceName; 782 836 playerController.externalPlaybackType = externalPlaybackType; … … 822 876 823 877 m_videoLayerContainer = [WebAVVideoLayer videoLayer]; 824 [m_videoLayerContainer setHidden: playerController().externalPlaybackActive];878 [m_videoLayerContainer setHidden:[m_playerController isExternalPlaybackActive]]; 825 879 [m_videoLayerContainer setVideoSublayer:m_videoLayer.get()]; 826 880 827 CGSize videoSize = playerController().contentDimensions;881 CGSize videoSize = [m_playerController contentDimensions]; 828 882 CGRect videoRect = CGRectMake(0, 0, videoSize.width, videoSize.height); 829 883 [m_videoLayerContainer setVideoRect:videoRect]; … … 831 885 m_playerViewController = adoptNS([allocAVPlayerViewControllerInstance() initWithVideoLayer:m_videoLayerContainer.get()]); 832 886 [m_playerViewController setShowsPlaybackControls:NO]; 833 [m_playerViewController setPlayerController:(AVPlayerController *) playerController()];834 [m_playerViewController setDelegate: playerController()];887 [m_playerViewController setPlayerController:(AVPlayerController *)m_playerController.get()]; 888 [m_playerViewController setDelegate:m_playerController.get()]; 835 889 [m_playerViewController setAllowsOptimizedFullscreen:allowOptimizedFullscreen]; 836 890 … … 1016 1070 [[getUIApplicationClass() sharedApplication] _setStatusBarOrientation:[m_parentWindow interfaceOrientation]]; 1017 1071 } 1072 1073 [m_playerController setDelegate:nil]; 1074 [m_playerController setFullscreenInterface:nil]; 1075 1018 1076 [m_playerViewController setDelegate:nil]; 1077 [m_playerViewController setPlayerController:nil]; 1078 1079 if (m_mode & HTMLMediaElement::VideoFullscreenModeOptimized) 1080 [m_playerViewController cancelOptimizedFullscreen]; 1081 if (m_mode & HTMLMediaElement::VideoFullscreenModeStandard) 1082 [m_playerViewController exitFullScreenAnimated:NO completionHandler:nil]; 1083 1019 1084 [[m_playerViewController view] removeFromSuperview]; 1020 1085 if (m_viewController) 1021 1086 [m_playerViewController removeFromParentViewController]; 1022 [m_playerViewController setPlayerController:nil]; 1023 m_playerViewController = nil; 1087 1024 1088 [m_videoLayer removeFromSuperlayer]; 1025 m_videoLayer = nil;1026 1089 [m_videoLayerContainer removeFromSuperlayer]; 1027 1090 [m_videoLayerContainer setPlayerViewController:nil]; 1091 [[m_viewController view] removeFromSuperview]; 1092 1093 m_videoLayer = nil; 1028 1094 m_videoLayerContainer = nil; 1029 [[m_viewController view] removeFromSuperview]; 1095 m_playerViewController = nil; 1096 m_playerController = nil; 1030 1097 m_viewController = nil; 1031 1098 m_window = nil; … … 1043 1110 void WebVideoFullscreenInterfaceAVKit::invalidate() 1044 1111 { 1045 [m_window setHidden:YES];1046 [m_window setRootViewController:nil];1047 m_window = nil;1048 1112 m_videoFullscreenModel = nil; 1049 if (m_mode & HTMLMediaElement::VideoFullscreenModeOptimized) 1050 [m_playerViewController cancelOptimizedFullscreen]; 1051 if (m_mode & HTMLMediaElement::VideoFullscreenModeStandard) 1052 [m_playerViewController exitFullScreenAnimated:NO completionHandler:nil]; 1053 m_playerController = nil; 1054 [m_playerViewController setDelegate:nil]; 1055 [[m_playerViewController view] removeFromSuperview]; 1056 if (m_viewController) 1057 [m_playerViewController removeFromParentViewController]; 1058 [m_playerViewController setPlayerController:nil]; 1059 m_playerViewController = nil; 1060 [m_videoLayer removeFromSuperlayer]; 1061 m_videoLayer = nil; 1062 [m_videoLayerContainer removeFromSuperlayer]; 1063 [m_videoLayerContainer setPlayerViewController:nil]; 1064 m_videoLayerContainer = nil; 1065 [[m_viewController view] removeFromSuperview]; 1066 [m_playerController setFullscreenInterface:nil]; 1067 m_viewController = nil; 1068 m_parentView = nil; 1069 m_parentWindow = nil; 1113 m_fullscreenChangeObserver = nil; 1114 1115 cleanupFullscreenInternal(); 1070 1116 } 1071 1117 -
trunk/Source/WebCore/platform/ios/WebVideoFullscreenModelVideoElement.mm
r177012 r179480 68 68 return; 69 69 70 if (m_videoFullscreenInterface) 71 m_videoFullscreenInterface->resetMediaState(); 72 70 73 if (m_videoElement && m_isListening) { 71 74 for (auto eventName : observedEventNames()) -
trunk/Source/WebKit2/ChangeLog
r179472 r179480 1 2015-02-02 Jeremy Jones <jeremyj@apple.com> 2 3 Prevent crash when accessing WebAVPlayerController.delegate. 4 https://bugs.webkit.org/show_bug.cgi?id=140893 5 6 Reviewed by Darin Adler. 7 8 Plumb new resetMediaState() through IPC interface WebVideoFullscreenManagerProxy. 9 10 * UIProcess/ios/WebVideoFullscreenManagerProxy.messages.in: 11 * UIProcess/ios/WebVideoFullscreenManagerProxy.mm: 12 (WebKit::WebVideoFullscreenManagerProxy::invalidate): remove redundant set to nullptr. 13 * WebProcess/ios/WebVideoFullscreenManager.h: 14 * WebProcess/ios/WebVideoFullscreenManager.mm: 15 (WebKit::WebVideoFullscreenManager::resetMediaState): 16 1 17 2015-02-01 Chris Dumez <cdumez@apple.com> 2 18 -
trunk/Source/WebKit2/UIProcess/ios/WebVideoFullscreenManagerProxy.messages.in
r177012 r179480 23 23 #if PLATFORM(IOS) 24 24 messages -> WebVideoFullscreenManagerProxy { 25 ResetMediaState() 25 26 SetCurrentTime(double currentTime, double hostTime) 26 27 SetVideoDimensions(bool hasVideo, unsigned width, unsigned height) -
trunk/Source/WebKit2/UIProcess/ios/WebVideoFullscreenManagerProxy.mm
r178080 r179480 69 69 WebVideoFullscreenInterfaceAVKit::invalidate(); 70 70 71 setWebVideoFullscreenModel(nullptr);72 setWebVideoFullscreenChangeObserver(nullptr);73 74 71 m_page->process().removeMessageReceiver(Messages::WebVideoFullscreenManagerProxy::messageReceiverName(), m_page->pageID()); 75 72 m_page = nullptr; -
trunk/Source/WebKit2/WebProcess/ios/WebVideoFullscreenManager.h
r177917 r179480 69 69 70 70 // FullscreenInterface 71 virtual void resetMediaState() override; 71 72 virtual void setDuration(double) override; 72 73 virtual void setCurrentTime(double currentTime, double anchorTime) override; -
trunk/Source/WebKit2/WebProcess/ios/WebVideoFullscreenManager.mm
r179409 r179480 120 120 } 121 121 122 void WebVideoFullscreenManager::resetMediaState() 123 { 124 m_page->send(Messages::WebVideoFullscreenManagerProxy::ResetMediaState(), m_page->pageID()); 125 } 126 122 127 void WebVideoFullscreenManager::setDuration(double duration) 123 128 {
Note:
See TracChangeset
for help on using the changeset viewer.