Modified: trunk/Source/WebCore/ChangeLog (230778 => 230779)
--- trunk/Source/WebCore/ChangeLog 2018-04-18 21:06:50 UTC (rev 230778)
+++ trunk/Source/WebCore/ChangeLog 2018-04-18 21:17:18 UTC (rev 230779)
@@ -1,5 +1,20 @@
2018-04-18 Jer Noble <[email protected]>
+ Fix runtime errors in simulator while playing media
+ https://bugs.webkit.org/show_bug.cgi?id=184751
+
+ Reviewed by Eric Carlson.
+
+ AVURLAssetHTTPCookiesKey may not be present, and AVPlayer may not respond to certain methods.
+
+ * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
+ (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVAssetForURL):
+ (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayer):
+ (WebCore::MediaPlayerPrivateAVFoundationObjC::updateDisableExternalPlayback):
+ (WebCore::MediaPlayerPrivateAVFoundationObjC::setShouldDisableSleep):
+
+2018-04-18 Jer Noble <[email protected]>
+
Ignore ASSERT when setting AVAudioSessionCategory returns an error on simulator.
https://bugs.webkit.org/show_bug.cgi?id=184698
Modified: trunk/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm (230778 => 230779)
--- trunk/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm 2018-04-18 21:06:50 UTC (rev 230778)
+++ trunk/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm 2018-04-18 21:17:18 UTC (rev 230779)
@@ -240,7 +240,6 @@
#if ENABLE(AVF_CAPTIONS)
SOFT_LINK_POINTER(AVFoundation, AVURLAssetCacheKey, NSString*)
-SOFT_LINK_POINTER(AVFoundation, AVURLAssetHTTPCookiesKey, NSString*)
SOFT_LINK_POINTER(AVFoundation, AVURLAssetOutOfBandAlternateTracksKey, NSString*)
SOFT_LINK_POINTER(AVFoundation, AVURLAssetUsesNoPersistentCacheKey, NSString*)
SOFT_LINK_POINTER(AVFoundation, AVOutOfBandAlternateTrackDisplayNameKey, NSString*)
@@ -252,6 +251,7 @@
SOFT_LINK_POINTER(AVFoundation, AVMediaCharacteristicDescribesMusicAndSoundForAccessibility, NSString*)
SOFT_LINK_POINTER(AVFoundation, AVMediaCharacteristicTranscribesSpokenDialogForAccessibility, NSString*)
SOFT_LINK_POINTER(AVFoundation, AVMediaCharacteristicIsAuxiliaryContent, NSString*)
+SOFT_LINK_POINTER_OPTIONAL(AVFoundation, AVURLAssetHTTPCookiesKey, NSString*)
#define AVURLAssetHTTPCookiesKey getAVURLAssetHTTPCookiesKey()
#define AVURLAssetOutOfBandAlternateTracksKey getAVURLAssetOutOfBandAlternateTracksKey()
@@ -936,7 +936,8 @@
for (auto& cookie : cookies)
[nsCookies addObject:toNSHTTPCookie(cookie)];
- [options setObject:nsCookies.get() forKey:AVURLAssetHTTPCookiesKey];
+ if (AVURLAssetHTTPCookiesKey)
+ [options setObject:nsCookies.get() forKey:AVURLAssetHTTPCookiesKey];
}
#endif
@@ -1018,7 +1019,7 @@
}
#endif
-#if PLATFORM(IOS) && !PLATFORM(IOS_SIMULATOR)
+#if PLATFORM(IOS) && !PLATFORM(IOS_SIMULATOR) && !ENABLE(MINIMAL_SIMULATOR)
setShouldDisableSleep(player()->shouldDisableSleep());
#endif
@@ -2959,7 +2960,8 @@
if (!m_avPlayer)
return;
- [m_avPlayer setUsesExternalPlaybackWhileExternalScreenIsActive:player()->fullscreenMode() & MediaPlayer::VideoFullscreenModeStandard];
+ if ([m_avPlayer respondsToSelector:@selector(setUsesExternalPlaybackWhileExternalScreenIsActive:)])
+ [m_avPlayer setUsesExternalPlaybackWhileExternalScreenIsActive:player()->fullscreenMode() & MediaPlayer::VideoFullscreenModeStandard];
#endif
}
@@ -3217,7 +3219,7 @@
void MediaPlayerPrivateAVFoundationObjC::setShouldDisableSleep(bool flag)
{
-#if PLATFORM(IOS) && !PLATFORM(IOS_SIMULATOR)
+#if PLATFORM(IOS) && !PLATFORM(IOS_SIMULATOR) && !ENABLE(MINIMAL_SIMULATOR)
[m_avPlayer _setPreventsSleepDuringVideoPlayback:flag];
#else
UNUSED_PARAM(flag);