RESOLVED MOVED239979
[iOS 15] Chrome frequently hangs in VideoFullscreenInterfaceAVKit::doExitFullscreen()
https://bugs.webkit.org/show_bug.cgi?id=239979
Summary [iOS 15] Chrome frequently hangs in VideoFullscreenInterfaceAVKit::doExitFull...
Ali Juma
Reported 2022-05-02 13:04:35 PDT
Chrome for iOS is getting a large number of hang reports (hangs over 10 seconds) in VideoFullscreenInterfaceAVKit::doExitFullscreen(). We don't have steps to reproduce, but the hang URLs are mostly sports streaming sites. These are all on iOS 15, including iOS 15.5 beta. Here's the stack: Thread 0 0x00000001928f8d48(QuartzCore + 0x000add48)-[CALayer animationForKey:] 0x00000001928f8d0c(QuartzCore + 0x000add0c)-[CALayer animationForKey:] 0x00000001911d9af0(UIKitCore + 0x0024faf0)UniqueAnimationKeyForLayer 0x0000000192226088(UIKitCore + 0x000000000129c088)__67-[_UIViewAdditiveAnimationAction runActionForKey:object:arguments:]_block_invoke.224 0x000000019120fb94(UIKitCore + 0x00285b94)-[_UIViewAdditiveAnimationAction runActionForKey:object:arguments:] 0x000000019286f5f8(QuartzCore + 0x000245f8)CA::Layer::set_bounds(CA::Rect const&, bool) 0x0000000192913dc4(QuartzCore + 0x000c8dc4)-[CALayer setBounds:] 0x00000001910f5b94(UIKitCore + 0x0016bb94)-[UIView(Geometry) setBounds:] 0x00000001911fc798(UIKitCore + 0x00272798)-[UIImageView _setViewGeometry:forMetric:] 0x000000019139a150(UIKitCore + 0x00410150)-[UIView(Geometry) _applyISEngineLayoutValuesToBoundsOnly:] 0x00000001912ccbf4(UIKitCore + 0x00342bf4)-[UIView(Geometry) _resizeWithOldSuperviewSize:] 0x0000000191112bc8(UIKitCore + 0x00188bc8)__46-[UIView(Geometry) resizeSubviewsWithOldSize:]_block_invoke 0x000000018eb21760(CoreFoundation + 0x0000d760)__NSARRAY_IS_CALLING_OUT_TO_A_BLOCK__ 0x000000018eb60130(CoreFoundation + 0x0004c130)-[__NSArrayM enumerateObjectsWithOptions:usingBlock:] 0x000000019114cd68(UIKitCore + 0x001c2d68)-[UIView(Geometry) resizeSubviewsWithOldSize:] 0x0000000191233e1c(UIKitCore + 0x002a9e1c)-[UIView(AdditionalLayoutSupport) _is_layout] 0x000000019111d5d0(UIKitCore + 0x001935d0)-[UIView _updateConstraintsAsNecessaryAndApplyLayoutFromEngine] 0x0000000191115b74(UIKitCore + 0x0018bb74)-[UIView(CALayerDelegate) layoutSublayersOfLayer:] 0x000000019288bcb0(QuartzCore + 0x00040cb0)CA::Layer::layout_if_needed(CA::Transaction*) 0x00000001911798e4(UIKitCore + 0x001ef8e4)-[UIView(Hierarchy) layoutBelowIfNeeded] 0x00000001910f5ca0(UIKitCore + 0x0016bca0)-[UIView(Geometry) setBounds:] 0x000000019139a150(UIKitCore + 0x00410150)-[UIView(Geometry) _applyISEngineLayoutValuesToBoundsOnly:] 0x00000001912ccbf4(UIKitCore + 0x00342bf4)-[UIView(Geometry) _resizeWithOldSuperviewSize:] 0x0000000191112bc8(UIKitCore + 0x00188bc8)__46-[UIView(Geometry) resizeSubviewsWithOldSize:]_block_invoke 0x000000018eb21760(CoreFoundation + 0x0000d760)__NSARRAY_IS_CALLING_OUT_TO_A_BLOCK__ 0x000000018eb60130(CoreFoundation + 0x0004c130)-[__NSArrayM enumerateObjectsWithOptions:usingBlock:] 0x000000019114cd68(UIKitCore + 0x001c2d68)-[UIView(Geometry) resizeSubviewsWithOldSize:] 0x0000000191233e1c(UIKitCore + 0x002a9e1c)-[UIView(AdditionalLayoutSupport) _is_layout] 0x000000019111d5d0(UIKitCore + 0x001935d0)-[UIView _updateConstraintsAsNecessaryAndApplyLayoutFromEngine] 0x00000001a97d74c4(AVKit + 0x0008b4c4)-[AVExternalPlaybackIndicatorView layoutSubviews] 0x0000000191115b08(UIKitCore + 0x0018bb08)-[UIView(CALayerDelegate) layoutSublayersOfLayer:] 0x000000019288bcb0(QuartzCore + 0x00040cb0)CA::Layer::layout_if_needed(CA::Transaction*) 0x00000001911798e4(UIKitCore + 0x001ef8e4)-[UIView(Hierarchy) layoutBelowIfNeeded] 0x000000019111173c(UIKitCore + 0x0018773c)-[UIView(Geometry) setFrame:] 0x00000001a9780dc8(AVKit + 0x00034dc8)-[AVPlayerViewControllerContentView layoutSubviews] 0x0000000191115b08(UIKitCore + 0x0018bb08)-[UIView(CALayerDelegate) layoutSublayersOfLayer:] 0x000000019288bcb0(QuartzCore + 0x00040cb0)CA::Layer::layout_if_needed(CA::Transaction*) 0x00000001911798e4(UIKitCore + 0x001ef8e4)-[UIView(Hierarchy) layoutBelowIfNeeded] 0x000000019111173c(UIKitCore + 0x0018773c)-[UIView(Geometry) setFrame:] 0x00000001912ccea0(UIKitCore + 0x00342ea0)-[UIView(Geometry) _resizeWithOldSuperviewSize:] 0x0000000191112bc8(UIKitCore + 0x00188bc8)__46-[UIView(Geometry) resizeSubviewsWithOldSize:]_block_invoke 0x000000018eb21760(CoreFoundation + 0x0000d760)__NSARRAY_IS_CALLING_OUT_TO_A_BLOCK__ 0x000000018eb60130(CoreFoundation + 0x0004c130)-[__NSArrayM enumerateObjectsWithOptions:usingBlock:] 0x000000019114cd68(UIKitCore + 0x001c2d68)-[UIView(Geometry) resizeSubviewsWithOldSize:] 0x00000001911116b8(UIKitCore + 0x001876b8)-[UIView(Geometry) setFrame:] 0x00000001a9803850(AVKit + 0x000b7850)-[AVTransition _animateFinishInteractiveTransition] 0x000000019145a2b4(UIKitCore + 0x004d02b4)-[UIViewPropertyAnimator _runAnimations] 0x000000019158f308(UIKitCore + 0x00605308)+[UIView(Animation) _performWithState:trackingIdentifier:duration:delay:animations:] 0x000000019107f054(UIKitCore + 0x000f5054)-[UIViewPropertyAnimator _continueWithTimingParameters:duration:] 0x000000019107ea4c(UIKitCore + 0x000f4a4c)-[UIViewPropertyAnimator continueAnimationWithTimingParameters:durationFactor:] 0x00000001a9801f70(AVKit + 0x000b5f70)-[AVTransition _startOrContinueAnimatorsReversed:] 0x00000001a9804c64(AVKit + 0x000b8c64)-[AVTransition finishInteractiveTransition] 0x00000001a9820d74(AVKit + 0x000d4d74)__43-[AVTransitionController _finishTransition]_block_invoke 0x00000001a977612c(AVKit + 0x0002a12c)-[AVPlayerViewController(AVPlayerViewController_WebKitOnly) exitFullScreenAnimated:completionHandler:] 0x00000001a0ae4e54(WebCore + 0x0000000002435e54)WebCore::VideoFullscreenInterfaceAVKit::doExitFullscreen() 0x00000001a0ae4d30(WebCore + 0x0000000002435d30)WebCore::VideoFullscreenInterfaceAVKit::exitFullscreen(WebCore::FloatRect const&) 0x000000019e0022a0(WebKit + 0x003932a0)WebKit::VideoFullscreenManagerProxy::exitFullscreen(WTF::ObjectIdentifier<WebKit::PlaybackSessionContextIdentifierType>, WebCore::FloatRect, WTF::CompletionHandler<void (bool)>&&) 0x000000019e424460(WebKit + 0x007b5460)WebKit::VideoFullscreenManagerProxy::didReceiveMessage(IPC::Connection&, IPC::Decoder&) 0x000000019dfaf8fc(WebKit + 0x003408fc)IPC::MessageReceiverMap::dispatchMessage(IPC::Connection&, IPC::Decoder&) 0x000000019e1d581c(WebKit + 0x0056681c)WebKit::WebProcessProxy::didReceiveMessage(IPC::Connection&, IPC::Decoder&) 0x000000019dfa4048(WebKit + 0x00335048)IPC::Connection::dispatchMessage(std::__1::unique_ptr<IPC::Decoder, std::__1::default_delete<IPC::Decoder> >) 0x000000019dfa36fc(WebKit + 0x003346fc)IPC::Connection::dispatchIncomingMessages() 0x000000019b4aea0c(JavaScriptCore + 0x00000000011b7a0c)WTF::RunLoop::performWork() 0x000000019b4af7a8(JavaScriptCore + 0x00000000011b87a8)WTF::RunLoop::performWork(void*) 0x000000018ebcf610(CoreFoundation + 0x000bb610)__CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ 0x000000018ebe039c(CoreFoundation + 0x000cc39c)__CFRunLoopDoSource0 0x000000018eb19890(CoreFoundation + 0x00005890)__CFRunLoopDoSources0 0x000000018eb1f258(CoreFoundation + 0x0000b258)__CFRunLoopRun 0x000000018eb32dc4(CoreFoundation + 0x0001edc4)CFRunLoopRunSpecific 0x00000001ab293370(GraphicsServices + 0x00001370)GSEventRunModal 0x000000019149e180(UIKitCore + 0x00514180)-[UIApplication _run] 0x000000019121f8e4(UIKitCore + 0x002958e4)UIApplicationMain 0x00000001041b426c(Chrome -chrome_exe_main.mm:65)main 0x0000000106265ce0( + 0x00019ce0)
Attachments
Radar WebKit Bug Importer
Comment 1 2022-05-03 18:37:26 PDT
Sam Sneddon [:gsnedders]
Comment 2 2022-05-19 08:59:29 PDT
This is an issue in a component below WebKit.
Alexey Proskuryakov
Comment 3 2024-05-15 15:24:51 PDT
The underlying system issue was fixed in iOS 16, please file a new bug if you are still observing this.
Note You need to log in before you can comment on or make changes to this bug.