Changeset 202871 in webkit
- Timestamp:
- Jul 6, 2016 1:02:11 PM (8 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r202870 r202871 1 2016-07-06 Jeremy Jones <jeremyj@apple.com> 2 3 Signal that media element is prepared for inline when being stopped since script won't be able to. 4 https://bugs.webkit.org/show_bug.cgi?id=159163 5 rdar://problem/26844557 6 7 Reviewed by Jer Noble. 8 9 No new tests since this don't change behavior in the DOM. It prevents a race that could cause 10 fullscreen and picture in picture to fail to tear down completely. 11 12 When an element exits a fullscreen mode and is immediately removed from the DOM by the page, 13 its JavaScript stops running. The fullscreen code is then blocked waiting for JS to signal 14 that it has updated its state in preparation for inline mode. This change explicitly signals 15 this since JS wont be able to. 16 17 Additionally, when going from PiP back to inline, don't go through fullscreen first, when the 18 request comes from the DOM. This was causing the presentation mode to become confused. The 19 page requests inline. PiP would exit back to fullscreen and set the presentation mode to 20 fullscreen. Then it would exit fullscreen back to inline, but the DOM still had the wrong 21 presentation mode. Skipping this removes an unnecessary step in the animation and keeps the 22 presentation mode state consistent. 23 24 * html/HTMLMediaElement.cpp: 25 (WebCore::HTMLMediaElement::stopWithoutDestroyingMediaPlayer): 26 * platform/ios/WebVideoFullscreenInterfaceAVKit.mm: Set prepared for inline. 27 (WebVideoFullscreenInterfaceAVKit::exitFullscreen): Return directly to inlne. 28 1 29 2016-07-06 Chris Dumez <cdumez@apple.com> 2 30 -
trunk/Source/WebCore/html/HTMLMediaElement.cpp
r202749 r202871 5068 5068 exitFullscreen(); 5069 5069 5070 setPreparedForInline(true); 5071 5070 5072 updatePlaybackControlsManager(); 5071 5073 m_inActiveDocument = false; -
trunk/Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm
r202006 r202871 771 771 772 772 if (isMode(HTMLMediaElementEnums::VideoFullscreenModePictureInPicture)) { 773 m_shouldReturnToFullscreenWhenStoppingPiP = false; 773 774 [m_window setHidden:NO]; 774 775 [m_playerViewController stopPictureInPicture];
Note: See TracChangeset
for help on using the changeset viewer.