apache / cordova-plugin-inappbrowser

Apache Cordova InAppBrowser Plugin
https://cordova.apache.org/
Apache License 2.0
1.12k stars 2.15k forks source link

Youtube, Vimeo, others - second played video crashes the app when opened in native player - IOS #298

Open paulincai opened 6 years ago

paulincai commented 6 years ago

cordova-lib: 7.1.0 cordova-ios: 4.5.4 cordova-plugin-inappbrowser: 3.0.0 Same behavior in cordova-plugin-inappbrowser-wkwebview

Tested with IPhone 6 - IOS latest Beta of 12, Xcode10 and Simulator for Iphone 6, IOS11.4, Simulator for Iphone XS IOS 12.

Open a Youtube link in inappbrowser. The native video player starts, all OK. Stop, tap on another suggested video. In real device app closes down. In Simulator app freezes.

The highlight in red is displayed right after tap to watch the second video.

Meaning of EXC_BAD_ACCESS

Later Edit: after more testing, I guess it happens with any video source and it seems to be an issue between the inapbrowser and the native video player. Later..er Edit: all ok if 'allowInlineMediaPlayback=yes' and the native player is not opened. However, if the video is pushed to full screen (native player) -> go to the top of this text.

screen shot 2018-09-14 at 12 09 54

dijitalbrains commented 6 years ago

I'm facing the same issue, app is crashing with "EXC_BAD_ACCESS" error while playing video in native player via inappbrowser or directly embed the video inside ionic app. Do we have a solution for this ?

JonathonDunford commented 5 years ago

I'm having the same issue, but I can't get error messages to show.

I'm guessing this was forgotten about?

JonathonDunford commented 5 years ago

I can also concur that this only happens when the player is pushed full screen and only happens in iOS 12.

diegollams commented 5 years ago

Same here in iOS 12.1

adiepev commented 5 years ago

same here in iOS 12.1, Also if video is opened with IAB, intermittently opens in fullscreen, or inside IAB window. (should open fullscreen). after pushing it to fullscreen, app could crash.

mattyforth commented 5 years ago

Anyone else know anything about this issue or have a workaround? Also experiencing this using the Youtube player API within a Cordova app running iOS 12.

diegollams commented 5 years ago

This are my logs using

├── cordova@8.0.0
├── ionic@3.20.1
└── npm@6.1.0
thread #1, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x347c00003421)
    frame #0: 0x000000019384f97c WebCore`VideoFullscreenControllerContext::rateChanged(bool, float) + 308
    frame #1: 0x00000001006ab824 libdispatch.dylib`_dispatch_call_block_and_release + 24
    frame #2: 0x00000001006acdc8 libdispatch.dylib`_dispatch_client_callout + 16
    frame #3: 0x00000001006baa78 libdispatch.dylib`_dispatch_main_queue_callback_4CF + 1360
    frame #4: 0x000000018aa13dd0 CoreFoundation`__CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 12
    frame #5: 0x000000018aa0ec98 CoreFoundation`__CFRunLoopRun + 1964
    frame #6: 0x000000018aa0e1cc CoreFoundation`CFRunLoopRunSpecific + 436
    frame #7: 0x000000018cc85584 GraphicsServices`GSEventRunModal + 100
    frame #8: 0x00000001b7b09054 UIKitCore`UIApplicationMain + 212
  * frame #9: 0x0000000100385e24 Thrive`main(argc=1, argv=0x000000016fa7f970) at main.m:32
    frame #10: 0x000000018a4cebb4 libdyld.dylib`start + 4
  thread #6, name = 'com.apple.uikit.eventfetch-thread'
    frame #0: 0x000000018a60fed0 libsystem_kernel.dylib`mach_msg_trap + 8
    frame #1: 0x000000018a60f3a8 libsystem_kernel.dylib`mach_msg + 72
    frame #2: 0x000000018aa13bc4 CoreFoundation`__CFRunLoopServiceMachPort + 236
    frame #3: 0x000000018aa0ea60 CoreFoundation`__CFRunLoopRun + 1396
    frame #4: 0x000000018aa0e1cc CoreFoundation`CFRunLoopRunSpecific + 436
    frame #5: 0x000000018b403404 Foundation`-[NSRunLoop(NSRunLoop) runMode:beforeDate:] + 300
    frame #6: 0x000000018b4032b0 Foundation`-[NSRunLoop(NSRunLoop) runUntilDate:] + 148
    frame #7: 0x00000001b7bf6808 UIKitCore`-[UIEventFetcher threadMain] + 136
    frame #8: 0x000000018b5361ac Foundation`__NSThread__start__ + 1040
    frame #9: 0x000000018a69f2ac libsystem_pthread.dylib`_pthread_body + 128
    frame #10: 0x000000018a69f20c libsystem_pthread.dylib`_pthread_start + 48
    frame #11: 0x000000018a6a2cf4 libsystem_pthread.dylib`thread_start + 4
  thread #9, name = 'JavaScriptCore bmalloc scavenger'
    frame #0: 0x000000018a61af0c libsystem_kernel.dylib`__psynch_cvwait + 8
    frame #1: 0x000000018a697cd8 libsystem_pthread.dylib`_pthread_cond_wait$VARIANT$mp + 636
    frame #2: 0x0000000189be8568 libc++.1.dylib`std::__1::condition_variable::__do_timed_wait(std::__1::unique_lock<std::__1::mutex>&, std::__1::chrono::time_point<std::__1::chrono::system_clock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l> > >) + 96
    frame #3: 0x0000000191dbbfd8 JavaScriptCore`std::__1::cv_status std::__1::condition_variable::wait_until<std::__1::chrono::steady_clock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l> > >(std::__1::unique_lock<std::__1::mutex>&, std::__1::chrono::time_point<std::__1::chrono::steady_clock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l> > > const&) + 124
    frame #4: 0x0000000191dbbe88 JavaScriptCore`std::__1::cv_status std::__1::condition_variable_any::wait_until<std::__1::unique_lock<bmalloc::Mutex>, std::__1::chrono::steady_clock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l> > >(std::__1::unique_lock<bmalloc::Mutex>&, std::__1::chrono::time_point<std::__1::chrono::steady_clock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l> > > const&) + 112
    frame #5: 0x0000000191dbab24 JavaScriptCore`bmalloc::Scavenger::threadRunLoop() + 296
    frame #6: 0x0000000191dba1e0 JavaScriptCore`bmalloc::Scavenger::threadEntryPoint(bmalloc::Scavenger*) + 12
    frame #7: 0x0000000191dbbc8c JavaScriptCore`void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, void (*)(bmalloc::Scavenger*), bmalloc::Scavenger*> >(void*) + 40
    frame #8: 0x000000018a69f2ac libsystem_pthread.dylib`_pthread_body + 128
    frame #9: 0x000000018a69f20c libsystem_pthread.dylib`_pthread_start + 48
    frame #10: 0x000000018a6a2cf4 libsystem_pthread.dylib`thread_start + 4
  thread #10, name = 'WebThread'
    frame #0: 0x000000018a60fed0 libsystem_kernel.dylib`mach_msg_trap + 8
    frame #1: 0x000000018a60f3a8 libsystem_kernel.dylib`mach_msg + 72
    frame #2: 0x00000001006c93f0 libdispatch.dylib`_dispatch_mach_msg_send + 1104
    frame #3: 0x00000001006c8b24 libdispatch.dylib`_dispatch_mach_send_drain + 508
    frame #4: 0x00000001006c531c libdispatch.dylib`_dispatch_mach_send_msg + 464
    frame #5: 0x00000001006c55b8 libdispatch.dylib`_dispatch_mach_send_and_wait_for_reply + 288
    frame #6: 0x00000001006c5b20 libdispatch.dylib`dispatch_mach_send_with_result_and_wait_for_reply + 56
    frame #7: 0x000000018a6d6eb4 libxpc.dylib`xpc_connection_send_message_with_reply_sync + 204
    frame #8: 0x000000018e13df5c CoreMedia`FigXPCRemoteClientSendSyncMessageCreatingReply + 36
    frame #9: 0x000000018f7194e0 MediaToolbox`remoteXPCAsset_GetStatusOfValueForProperty + 152
    frame #10: 0x0000000190ba6624 AVFoundation`-[AVFigAssetInspectorLoader _loadStatusForProperty:figAsset:error:] + 84
    frame #11: 0x0000000190ba67e8 AVFoundation`-[AVFigAssetInspectorLoader statusOfValueForKey:error:] + 312
    frame #12: 0x000000019348e634 WebCore`WebCore::MediaPlayerPrivateAVFoundationObjC::assetStatus() const + 248
    frame #13: 0x000000019347c8c8 WebCore`WebCore::MediaPlayerPrivateAVFoundation::updateStates() + 128
    frame #14: 0x0000000193499488 WebCore`WebCore::MediaPlayerPrivateAVFoundationObjC::rateDidChange(double) + 24
    frame #15: 0x000000019347da58 WebCore`WebCore::MediaPlayerPrivateAVFoundation::dispatchNotification() + 1064
    frame #16: 0x0000000191d81ffc JavaScriptCore`WTF::dispatchFunctionsFromMainThread() + 308
    frame #17: 0x000000018b53639c Foundation`__NSThreadPerformPerform + 336
    frame #18: 0x000000018aa141cc CoreFoundation`__CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 24
    frame #19: 0x000000018aa1414c CoreFoundation`__CFRunLoopDoSource0 + 88
    frame #20: 0x000000018aa13a30 CoreFoundation`__CFRunLoopDoSources0 + 176
    frame #21: 0x000000018aa0e8fc CoreFoundation`__CFRunLoopRun + 1040
    frame #22: 0x000000018aa0e1cc CoreFoundation`CFRunLoopRunSpecific + 436
    frame #23: 0x000000019386f52c WebCore`RunWebThread(void*) + 592
    frame #24: 0x000000018a69f2ac libsystem_pthread.dylib`_pthread_body + 128
    frame #25: 0x000000018a69f20c libsystem_pthread.dylib`_pthread_start + 48
    frame #26: 0x000000018a6a2cf4 libsystem_pthread.dylib`thread_start + 4
  thread #14, name = 'com.apple.CFStream.LegacyThread'
    frame #0: 0x000000018a60fed0 libsystem_kernel.dylib`mach_msg_trap + 8
    frame #1: 0x000000018a60f3a8 libsystem_kernel.dylib`mach_msg + 72
    frame #2: 0x000000018aa13bc4 CoreFoundation`__CFRunLoopServiceMachPort + 236
    frame #3: 0x000000018aa0ea60 CoreFoundation`__CFRunLoopRun + 1396
    frame #4: 0x000000018aa0e1cc CoreFoundation`CFRunLoopRunSpecific + 436
    frame #5: 0x000000018aa27260 CoreFoundation`_legacyStreamRunLoop_workThread + 268
    frame #6: 0x000000018a69f2ac libsystem_pthread.dylib`_pthread_body + 128
    frame #7: 0x000000018a69f20c libsystem_pthread.dylib`_pthread_start + 48
    frame #8: 0x000000018a6a2cf4 libsystem_pthread.dylib`thread_start + 4
  thread #39, name = 'WebCore: LocalStorage'
    frame #0: 0x000000018a61af0c libsystem_kernel.dylib`__psynch_cvwait + 8
    frame #1: 0x000000018a697cd8 libsystem_pthread.dylib`_pthread_cond_wait$VARIANT$mp + 636
    frame #2: 0x0000000191da4b04 JavaScriptCore`WTF::ThreadCondition::timedWait(WTF::Mutex&, WTF::WallTime) + 80
    frame #3: 0x0000000191d8bd10 JavaScriptCore`WTF::ParkingLot::parkConditionallyImpl(void const*, WTF::ScopedLambda<bool ()> const&, WTF::ScopedLambda<void ()> const&, WTF::TimeWithDynamicClockType const&) + 2004
    frame #4: 0x0000000194cf31a4 WebKitLegacy`bool WTF::Condition::waitUntil<WTF::Lock>(WTF::Lock&, WTF::TimeWithDynamicClockType const&) + 184
    frame #5: 0x0000000194cf5e24 WebKitLegacy`std::__1::unique_ptr<WTF::Function<void ()>, std::__1::default_delete<WTF::Function<void ()> > > WTF::MessageQueue<WTF::Function<void ()> >::waitForMessageFilteredWithTimeout<WTF::MessageQueue<WTF::Function<void ()> >::waitForMessage()::'lambda'(WTF::Function<void ()> const&)>(WTF::MessageQueueWaitResult&, WTF::MessageQueue<WTF::Function<void ()> >::waitForMessage()::'lambda'(WTF::Function<void ()> const&)&&, WTF::WallTime) + 156
    frame #6: 0x0000000194cf543c WebKitLegacy`WebCore::StorageThread::threadEntryPoint() + 68
    frame #7: 0x0000000191da2d60 JavaScriptCore`WTF::Thread::entryPoint(WTF::Thread::NewThreadContext*) + 256
    frame #8: 0x0000000191da42c8 JavaScriptCore`WTF::wtfThreadEntryPoint(void*) + 12
    frame #9: 0x000000018a69f2ac libsystem_pthread.dylib`_pthread_body + 128
    frame #10: 0x000000018a69f20c libsystem_pthread.dylib`_pthread_start + 48
    frame #11: 0x000000018a6a2cf4 libsystem_pthread.dylib`thread_start + 4
  thread #42, name = 'com.apple.NSURLConnectionLoader'
    frame #0: 0x000000018a60fed0 libsystem_kernel.dylib`mach_msg_trap + 8
    frame #1: 0x000000018a60f3a8 libsystem_kernel.dylib`mach_msg + 72
    frame #2: 0x000000018aa13bc4 CoreFoundation`__CFRunLoopServiceMachPort + 236
    frame #3: 0x000000018aa0ea60 CoreFoundation`__CFRunLoopRun + 1396
    frame #4: 0x000000018aa0e1cc CoreFoundation`CFRunLoopRunSpecific + 436
    frame #5: 0x000000018b02f834 CFNetwork`-[__CoreSchedulingSetRunnable runForever] + 212
    frame #6: 0x000000018b5361ac Foundation`__NSThread__start__ + 1040
    frame #7: 0x000000018a69f2ac libsystem_pthread.dylib`_pthread_body + 128
    frame #8: 0x000000018a69f20c libsystem_pthread.dylib`_pthread_start + 48
    frame #9: 0x000000018a6a2cf4 libsystem_pthread.dylib`thread_start + 4
  thread #72
    frame #0: 0x000000018a6a2ce8 libsystem_pthread.dylib`start_wqthread
  thread #78
    frame #0: 0x000000018a60ff24 libsystem_kernel.dylib`semaphore_timedwait_trap + 8
    frame #1: 0x00000001006ad688 libdispatch.dylib`_dispatch_sema4_timedwait + 64
    frame #2: 0x00000001006adfe4 libdispatch.dylib`_dispatch_semaphore_wait_slow + 72
    frame #3: 0x00000001006bdfa0 libdispatch.dylib`_dispatch_worker_thread + 388
    frame #4: 0x000000018a69f2ac libsystem_pthread.dylib`_pthread_body + 128
    frame #5: 0x000000018a69f20c libsystem_pthread.dylib`_pthread_start + 48
    frame #6: 0x000000018a6a2cf4 libsystem_pthread.dylib`thread_start + 4
  thread #83, name = 'AVAudioSession Notify Thread'
    frame #0: 0x000000018a60fed0 libsystem_kernel.dylib`mach_msg_trap + 8
    frame #1: 0x000000018a60f3a8 libsystem_kernel.dylib`mach_msg + 72
    frame #2: 0x000000018aa13bc4 CoreFoundation`__CFRunLoopServiceMachPort + 236
    frame #3: 0x000000018aa0ea60 CoreFoundation`__CFRunLoopRun + 1396
    frame #4: 0x000000018aa0e1cc CoreFoundation`CFRunLoopRunSpecific + 436
    frame #5: 0x0000000190a1660c AVFAudio`GenericRunLoopThread::Entry(void*) + 164
    frame #6: 0x0000000190a42768 AVFAudio`CAPThread::Entry(CAPThread*) + 88
    frame #7: 0x000000018a69f2ac libsystem_pthread.dylib`_pthread_body + 128
    frame #8: 0x000000018a69f20c libsystem_pthread.dylib`_pthread_start + 48
    frame #9: 0x000000018a6a2cf4 libsystem_pthread.dylib`thread_start + 4
  thread #87
    frame #0: 0x000000018a6a2ce8 libsystem_pthread.dylib`start_wqthread
  thread #88, queue = 'com.apple.avkit.routeDetectorCoordinatorQueue'
    frame #0: 0x000000018a60fed0 libsystem_kernel.dylib`mach_msg_trap + 8
    frame #1: 0x000000018a60f3a8 libsystem_kernel.dylib`mach_msg + 72
    frame #2: 0x00000001006c568c libdispatch.dylib`_dispatch_mach_send_and_wait_for_reply + 500
    frame #3: 0x00000001006c5b20 libdispatch.dylib`dispatch_mach_send_with_result_and_wait_for_reply + 56
    frame #4: 0x000000018a6d6eb4 libxpc.dylib`xpc_connection_send_message_with_reply_sync + 204
    frame #5: 0x000000018e13df5c CoreMedia`FigXPCRemoteClientSendSyncMessageCreatingReply + 36
    frame #6: 0x000000018e13e0b8 CoreMedia`FigXPCSendStdSetPropertyMessage + 140
    frame #7: 0x000000018e0109b8 CoreMedia`FigRouteDiscovererRemoteXPC_SetProperty + 64
    frame #8: 0x0000000190bf090c AVFoundation`-[AVFigRouteDiscovererOutputDeviceDiscoverySessionImpl outputDeviceDiscoverySessionDidChangeDiscoveryMode:] + 452
    frame #9: 0x0000000190af4134 AVFoundation`-[AVOutputDeviceDiscoverySession setDiscoveryMode:] + 136
    frame #10: 0x0000000190c2ebb0 AVFoundation`-[AVRouteDetector setRouteDetectionEnabled:] + 52
    frame #11: 0x000000019d0d3778 AVKit`__50+[AVRouteDetectorCoordinator beginDetectingRoutes]_block_invoke + 76
    frame #12: 0x00000001006ab824 libdispatch.dylib`_dispatch_call_block_and_release + 24
    frame #13: 0x00000001006acdc8 libdispatch.dylib`_dispatch_client_callout + 16
    frame #14: 0x00000001006b4e6c libdispatch.dylib`_dispatch_lane_serial_drain + 720
    frame #15: 0x00000001006b5b60 libdispatch.dylib`_dispatch_lane_invoke + 460
    frame #16: 0x00000001006bfbfc libdispatch.dylib`_dispatch_workloop_worker_thread + 1220
    frame #17: 0x000000018a6a00dc libsystem_pthread.dylib`_pthread_wqthread + 312
    frame #18: 0x000000018a6a2cec libsystem_pthread.dylib`start_wqthread + 4
  thread #89, queue = 'com.apple.root.background-qos'
    frame #0: 0x000000018a60ff24 libsystem_kernel.dylib`semaphore_timedwait_trap + 8
    frame #1: 0x00000001006ad688 libdispatch.dylib`_dispatch_sema4_timedwait + 64
    frame #2: 0x00000001006adfe4 libdispatch.dylib`_dispatch_semaphore_wait_slow + 72
    frame #3: 0x000000018f17dd8c MediaAccessibility`_copyResultPreferenceXPCCall(__CFString const*, bool, void const*, bool*) + 240
    frame #4: 0x000000018f17cff4 MediaAccessibility`MAPreferencesCopyProfileValue + 140
    frame #5: 0x000000018f17d1e8 MediaAccessibility`MAPreferencesCopyProfileValueWithExpectedType + 28
    frame #6: 0x000000018f17a2f8 MediaAccessibility`MACaptionAppearancePrefCopyDisplayType + 28
    frame #7: 0x000000018f176c50 MediaAccessibility`MACaptionAppearanceGetDisplayType + 20
    frame #8: 0x000000019d146fec AVKit`__37-[AVPlayerController initWithPlayer:]_block_invoke.21 + 32
    frame #9: 0x00000001006ab824 libdispatch.dylib`_dispatch_call_block_and_release + 24
    frame #10: 0x00000001006acdc8 libdispatch.dylib`_dispatch_client_callout + 16
    frame #11: 0x00000001006be330 libdispatch.dylib`_dispatch_root_queue_drain + 716
    frame #12: 0x00000001006bebc8 libdispatch.dylib`_dispatch_worker_thread2 + 156
    frame #13: 0x000000018a6a017c libsystem_pthread.dylib`_pthread_wqthread + 472
    frame #14: 0x000000018a6a2cec libsystem_pthread.dylib`start_wqthread + 4
  thread #90
    frame #0: 0x000000018a6a2ce8 libsystem_pthread.dylib`start_wqthread
  thread #95
    frame #0: 0x000000018a60ff24 libsystem_kernel.dylib`semaphore_timedwait_trap + 8
    frame #1: 0x00000001006ad688 libdispatch.dylib`_dispatch_sema4_timedwait + 64
    frame #2: 0x00000001006adfe4 libdispatch.dylib`_dispatch_semaphore_wait_slow + 72
    frame #3: 0x00000001006bdfa0 libdispatch.dylib`_dispatch_worker_thread + 388
    frame #4: 0x000000018a69f2ac libsystem_pthread.dylib`_pthread_body + 128
    frame #5: 0x000000018a69f20c libsystem_pthread.dylib`_pthread_start + 48
    frame #6: 0x000000018a6a2cf4 libsystem_pthread.dylib`thread_start + 4
  thread #97
    frame #0: 0x000000018a60ff24 libsystem_kernel.dylib`semaphore_timedwait_trap + 8
    frame #1: 0x00000001006ad688 libdispatch.dylib`_dispatch_sema4_timedwait + 64
    frame #2: 0x00000001006adfe4 libdispatch.dylib`_dispatch_semaphore_wait_slow + 72
    frame #3: 0x00000001006bdfa0 libdispatch.dylib`_dispatch_worker_thread + 388
    frame #4: 0x000000018a69f2ac libsystem_pthread.dylib`_pthread_body + 128
    frame #5: 0x000000018a69f20c libsystem_pthread.dylib`_pthread_start + 48
    frame #6: 0x000000018a6a2cf4 libsystem_pthread.dylib`thread_start + 4
  thread #98, name = 'WTF::AutomaticThread'
    frame #0: 0x000000018a61af0c libsystem_kernel.dylib`__psynch_cvwait + 8
    frame #1: 0x000000018a697cd8 libsystem_pthread.dylib`_pthread_cond_wait$VARIANT$mp + 636
    frame #2: 0x0000000191da4b48 JavaScriptCore`WTF::ThreadCondition::timedWait(WTF::Mutex&, WTF::WallTime) + 148
    frame #3: 0x0000000191d8bd10 JavaScriptCore`WTF::ParkingLot::parkConditionallyImpl(void const*, WTF::ScopedLambda<bool ()> const&, WTF::ScopedLambda<void ()> const&, WTF::TimeWithDynamicClockType const&) + 2004
    frame #4: 0x0000000191d65654 JavaScriptCore`bool WTF::Condition::waitUntil<WTF::Lock>(WTF::Lock&, WTF::TimeWithDynamicClockType const&) + 184
    frame #5: 0x0000000191d659f4 JavaScriptCore`WTF::Function<void ()>::CallableWrapper<WTF::AutomaticThread::start(WTF::AbstractLocker const&)::$_0>::call() + 216
    frame #6: 0x0000000191da2d60 JavaScriptCore`WTF::Thread::entryPoint(WTF::Thread::NewThreadContext*) + 256
    frame #7: 0x0000000191da42c8 JavaScriptCore`WTF::wtfThreadEntryPoint(void*) + 12
    frame #8: 0x000000018a69f2ac libsystem_pthread.dylib`_pthread_body + 128
    frame #9: 0x000000018a69f20c libsystem_pthread.dylib`_pthread_start + 48
    frame #10: 0x000000018a6a2cf4 libsystem_pthread.dylib`thread_start + 4
  thread #99
    frame #0: 0x000000018a60ff24 libsystem_kernel.dylib`semaphore_timedwait_trap + 8
    frame #1: 0x00000001006ad688 libdispatch.dylib`_dispatch_sema4_timedwait + 64
    frame #2: 0x00000001006adfe4 libdispatch.dylib`_dispatch_semaphore_wait_slow + 72
    frame #3: 0x00000001006bdfa0 libdispatch.dylib`_dispatch_worker_thread + 388
    frame #4: 0x000000018a69f2ac libsystem_pthread.dylib`_pthread_body + 128
    frame #5: 0x000000018a69f20c libsystem_pthread.dylib`_pthread_start + 48
    frame #6: 0x000000018a6a2cf4 libsystem_pthread.dylib`thread_start + 4
  thread #100
    frame #0: 0x000000018a60ff24 libsystem_kernel.dylib`semaphore_timedwait_trap + 8
    frame #1: 0x00000001006ad688 libdispatch.dylib`_dispatch_sema4_timedwait + 64
    frame #2: 0x00000001006adfe4 libdispatch.dylib`_dispatch_semaphore_wait_slow + 72
    frame #3: 0x00000001006bdfa0 libdispatch.dylib`_dispatch_worker_thread + 388
    frame #4: 0x000000018a69f2ac libsystem_pthread.dylib`_pthread_body + 128
    frame #5: 0x000000018a69f20c libsystem_pthread.dylib`_pthread_start + 48
    frame #6: 0x000000018a6a2cf4 libsystem_pthread.dylib`thread_start + 4
  thread #101
    frame #0: 0x000000018a60ff24 libsystem_kernel.dylib`semaphore_timedwait_trap + 8
    frame #1: 0x00000001006ad688 libdispatch.dylib`_dispatch_sema4_timedwait + 64
    frame #2: 0x00000001006adfe4 libdispatch.dylib`_dispatch_semaphore_wait_slow + 72
    frame #3: 0x00000001006bdfa0 libdispatch.dylib`_dispatch_worker_thread + 388
    frame #4: 0x000000018a69f2ac libsystem_pthread.dylib`_pthread_body + 128
    frame #5: 0x000000018a69f20c libsystem_pthread.dylib`_pthread_start + 48
    frame #6: 0x000000018a6a2cf4 libsystem_pthread.dylib`thread_start + 4
  thread #102, queue = 'com.apple.coremedia.routediscoverer.xpc.notifications'
    frame #0: 0x000000018a61b428 libsystem_kernel.dylib`__semwait_signal + 8
    frame #1: 0x000000018a5905d0 libsystem_c.dylib`nanosleep + 212
    frame #2: 0x000000018a5904a4 libsystem_c.dylib`usleep + 64
    frame #3: 0x0000000190bf06a4 AVFoundation`-[AVFigRouteDiscovererOutputDeviceDiscoverySessionImpl _routePresentChanged] + 28
    frame #4: 0x0000000190bb40fc AVFoundation`AVCMNotificationDispatcherCallback + 200
    frame #5: 0x000000018a9f2928 CoreFoundation`__CFNOTIFICATIONCENTER_IS_CALLING_OUT_TO_AN_OBSERVER__ + 20
    frame #6: 0x000000018a9f28f4 CoreFoundation`___CFXRegistrationPost_block_invoke + 64
    frame #7: 0x000000018a9f1de4 CoreFoundation`_CFXRegistrationPost + 392
    frame #8: 0x000000018a9f1a90 CoreFoundation`___CFXNotificationPost_block_invoke + 96
    frame #9: 0x000000018a969d70 CoreFoundation`-[_CFXNotificationRegistrar find:object:observer:enumerator:] + 1404
    frame #10: 0x000000018a9f151c CoreFoundation`_CFXNotificationPost + 696
    frame #11: 0x000000018a9f244c CoreFoundation`CFNotificationCenterPostNotificationWithOptions + 128
    frame #12: 0x000000018e02468c CoreMedia`CMNotificationCenterPostNotification + 124
    frame #13: 0x000000018e141104 CoreMedia`__figXPC_HandleNotificationMessage_block_invoke + 164
    frame #14: 0x00000001006ab824 libdispatch.dylib`_dispatch_call_block_and_release + 24
    frame #15: 0x00000001006acdc8 libdispatch.dylib`_dispatch_client_callout + 16
    frame #16: 0x00000001006b4e6c libdispatch.dylib`_dispatch_lane_serial_drain + 720
    frame #17: 0x00000001006b5b60 libdispatch.dylib`_dispatch_lane_invoke + 460
    frame #18: 0x00000001006bfbfc libdispatch.dylib`_dispatch_workloop_worker_thread + 1220
    frame #19: 0x000000018a6a00dc libsystem_pthread.dylib`_pthread_wqthread + 312
    frame #20: 0x000000018a6a2cec libsystem_pthread.dylib`start_wqthread + 4
  thread #103
    frame #0: 0x000000018a6a2ce8 libsystem_pthread.dylib`start_wqthread
  thread #104
    frame #0: 0x000000018a61bb9c libsystem_kernel.dylib`__workq_kernreturn + 8
    frame #1: 0x000000018a6a0100 libsystem_pthread.dylib`_pthread_wqthread + 348
    frame #2: 0x000000018a6a2cec libsystem_pthread.dylib`start_wqthread + 4
  thread #105
    frame #0: 0x000000018a6a2ce8 libsystem_pthread.dylib`start_wqthread
(lldb) 
adiepev commented 5 years ago

should be classified as serious BUG!

dpa99c commented 5 years ago

I've done some testing of this, using the version of this plugin off the master branch.

Test method:

Results

iPhone 7 running iOS 12.1.1 Beta 3 (16C5050a) using WKWebView:

cordova.InAppBrowser.open("https://www.youtube.com/watch?v=Vi-33aj12xw", '_blank', "loaction=no,toolbar=yes,usewkwebview=yes")

Result: Plays 2nd video fine in full screen

iPhone 7 running iOS 12.1.1 Beta 3 (16C5050a) using UIWebView:

cordova.InAppBrowser.open("https://www.youtube.com/watch?v=Vi-33aj12xw", '_blank', "loaction=no,toolbar=yes,usewkwebview=no")

Result: Plays 2nd video fine in full screen

iPad Air running iOS 12.1 (16B92) using WKWebView:

cordova.InAppBrowser.open("https://www.youtube.com/watch?v=Vi-33aj12xw", '_blank', "loaction=no,toolbar=yes,usewkwebview=yes")

Result: Plays 2nd video fine in full screen

iPad Air running iOS 12.1 (16B92) using UIWebView:

cordova.InAppBrowser.open("https://www.youtube.com/watch?v=Vi-33aj12xw", '_blank', "loaction=no,toolbar=yes,usewkwebview=no")

Result: Crashes with memory read exception

screenshot 2018-12-12 at 11 07 22

However, from the stack trace above, the crash seems to happen on a thread on which the Cordova app is not directly running (there are no references to this plugin's classes in the stack trace) and appears to arise inside the native iOS UIKit framework, specifically WebCore VideoFullscreenControllerContext:rateChanged.

This SO post and https://github.com/youtube/youtube-ios-player-helper/issues/322 reference similar crashes, leading me to believe the cause of the crash is not specific to this plugin.

JonathonDunford commented 5 years ago

Still no updates on this I see...

diegollams commented 5 years ago

I solved this by updating web view to wkwebview

https://github.com/ionic-team/cordova-plugin-ionic-webview#installation-instructions