Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-114082

[WebEngine] Opening fullscreen video with QWebEngineView on macOS causes the app to crash

    XMLWordPrintable

Details

    • Bug
    • Resolution: Incomplete
    • P1: Critical
    • None
    • 6.4.3, 6.5.0
    • WebEngine
    • None
    • macOS 13.4
    • macOS

    Description

      Steps to reproduce:

      1. Open example WebEngine Widgets Video Player Example https://doc.qt.io/qt-6/qtwebengine-webenginewidgets-videoplayer-example.html 
      2. Build and run the app on macOS
      3. Play the video and enter fullscreen, exit fullscreen. 

      Expected: The user is able to exit fullscreen mode.

      Actual: The app crashes.

      Reproducibility:  100%

       

      -------------------------------------
      Translated Report (Full Report Below)
      -------------------------------------Process:               videoplayer [59658]
      Path:                  /Users/USER/*/videoplayer.app/Contents/MacOS/videoplayer
      Identifier:            
      Version:               1.0 (1.0.0)
      Code Type:             X86-64 (Native)
      Parent Process:        qtcreator_processlauncher [47102]
      User ID:               503Date/Time:             2023-05-30 21:56:37.4473 +0200
      OS Version:            macOS 13.4 (22F66)
      Report Version:        12
      Bridge OS Version:     7.5 (20P5058)
      Anonymous UUID:        A1FA6BD2-700A-570A-DD7D-45257F77F49ESleep/Wake UUID:       EF4A0809-BF13-4B06-8D45-EEFB3EEC1EF7Time Awake Since Boot: 70000 seconds
      Time Since Wake:       5072 secondsSystem Integrity Protection: enabledCrashed Thread:        0  CrBrowserMain  Dispatch queue: com.apple.main-threadException Type:        EXC_BAD_ACCESS (SIGSEGV)
      Exception Codes:       UNKNOWN_0xD at 0x0000000000000000
      Exception Codes:       0x000000000000000d, 0x0000000000000000Termination Reason:    Namespace SIGNAL, Code 11 Segmentation fault: 11
      Terminating Process:   exc handler [59658]VM Region Info: 0 is not in any region.  Bytes before following region: 4498558976
            REGION TYPE                    START - END         [ VSIZE] PRT/MAX SHRMOD  REGION DETAIL
            UNUSED SPACE AT START
      --->  
            __TEXT                      10c229000-10c235000    [   48K] r-x/r-x SM=COW  ...S/videoplayerThread 0 Crashed:: CrBrowserMain Dispatch queue: com.apple.main-thread
      0   QtWebEngineWidgets                       0x10c3111b7 QWebEngineViewAccessible::focusChild() const + 39 (qwebengine_accessible.cpp:30)
      1   QtWidgets                                0x10e2ea085 QAccessibleWidget::focusChild() const + 213 (qaccessiblewidget.cpp:333)
      2   libqcocoa.dylib                          0x10cd490d0 -[QMacAccessibilityElement accessibilityFocusedUIElement] + 48 (qcocoaaccessibilityelement.mm:807)
      3   AppKit                                0x7ff8133207a8 -[NSWindow(NSWindowAccessibility) accessibilityFocusedUIElement] + 105
      4   AppKit                                0x7ff812abc3e7 NSAccessibilityHandleFocusChangedForce + 137
      5   AppKit                                0x7ff812ae5a17 -[NSWindow _realMakeFirstResponder:] + 710
      6   libqcocoa.dylib                          0x10cd07799 QCocoaWindow::~QCocoaWindow() + 313 (qcocoawindow.mm:160)
      7   libqcocoa.dylib                          0x10cd07bd5 QCocoaWindow::~QCocoaWindow() + 8 (qcocoawindow.mm:156) [inlined]
      8   libqcocoa.dylib                          0x10cd07bd5 QCocoaWindow::~QCocoaWindow() + 8 (qcocoawindow.mm:156) [inlined]
      9   libqcocoa.dylib                          0x10cd07bd5 non-virtual thunk to QCocoaWindow::~QCocoaWindow() + 21
      10  QtGui                                    0x10d55a579 QWindowPrivate::destroy() + 217 (qwindow.cpp:1996)
      11  QtWidgets                                0x10e09429f QWidgetPrivate::deleteTLSysExtra() + 207 (qwidget.cpp:1698)
      12  QtWidgets                                0x10e093dd2 QWidget::destroy(bool, bool) + 690 (qwidget.cpp:12395)
      13  QtWidgets                                0x10e0938b3 QWidget::~QWidget() + 1283 (qwidget.cpp:1536)
      14  videoplayer                              0x10c232c73 FullScreenWindow::~FullScreenWindow() + 195 (fullscreenwindow.cpp:40)
      15  videoplayer                              0x10c232ca5 FullScreenWindow::~FullScreenWindow() + 21 (fullscreenwindow.cpp:35)
      16  videoplayer                              0x10c232ce9 FullScreenWindow::~FullScreenWindow() + 25 (fullscreenwindow.cpp:35)
      17  videoplayer                              0x10c230d48 QScopedPointerDeleter<FullScreenWindow>::cleanup(FullScreenWindow*) + 40 (qscopedpointer.h:24)
      18  videoplayer                              0x10c233c14 QScopedPointer<FullScreenWindow, QScopedPointerDeleter<FullScreenWindow>>::reset(FullScreenWindow*) + 68 (qscopedpointer.h:124)
      19  videoplayer                              0x10c233b5f MainWindow::fullScreenRequested(QWebEngineFullScreenRequest) + 255 (mainwindow.cpp:34)
      20  videoplayer                              0x10c233f38 QtPrivate::FunctorCall<QtPrivate::IndexesList<0>, QtPrivate::List<QWebEngineFullScreenRequest>, void, void (MainWindow::*)(QWebEngineFullScreenRequest)>::call(void (MainWindow::*)(QWebEngineFullScreenRequest), MainWindow*, void**) + 168 (qobjectdefs_impl.h:135)
      21  videoplayer                              0x10c233e5d void QtPrivate::FunctionPointer<void (MainWindow::*)(QWebEngineFullScreenRequest)>::call<QtPrivate::List<QWebEngineFullScreenRequest>, void>(void (MainWindow::*)(QWebEngineFullScreenRequest), MainWindow*, void**) + 77 (qobjectdefs_impl.h:172)
      22  videoplayer                              0x10c233d92 QtPrivate::QSlotObject<void (MainWindow::*)(QWebEngineFullScreenRequest), QtPrivate::List<QWebEngineFullScreenRequest>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) + 146 (qobjectdefs_impl.h:384)
      23  QtCore                                   0x10f215085 QtPrivate::QSlotObjectBase::call(QObject*, void**) + 21 (qobjectdefs_impl.h:363) [inlined]
      24  QtCore                                   0x10f215085 void doActivate<false>(QObject*, int, void**) + 821 (qobject.cpp:3992)
      25  QtWebEngineCore                          0x121211df9 QWebEnginePage::fullScreenRequested(QWebEngineFullScreenRequest) + 36 (moc_qwebenginepage.cpp:1637) [inlined]
      26  QtWebEngineCore                          0x121211df9 QWebEnginePagePrivate::requestFullScreenMode(QUrl const&, bool) + 185 (qwebenginepage.cpp:1533)
      27  QtWebEngineCore                          0x1212be9a6 QtWebEngineCore::WebContentsDelegateQt::ExitFullscreenModeForTab(content::WebContents*) + 102 (web_contents_delegate_qt.cpp:556)
      28  QtWebEngineCore                          0x1241e1829 content::WebContentsImpl::ExitFullscreenMode(bool) + 73 (web_contents_impl.cc:3505)
      29  QtWebEngineCore                          0x12358b4be blink::mojom::LocalFrameHostStubDispatch::Accept(blink::mojom::LocalFrameHost*, mojo::Message*) + 126
      30  QtWebEngineCore                          0x125e410c5 mojo::InterfaceEndpointClient::HandleValidatedMessage(mojo::Message*) + 1781 (interface_endpoint_client.cc:987)
      31  QtWebEngineCore                          0x125e45d0c mojo::MessageDispatcher::Accept(mojo::Message*) + 140 (message_dispatcher.cc:48)
      32  QtWebEngineCore                          0x125e42890 mojo::InterfaceEndpointClient::HandleIncomingMessage(mojo::Message*) + 80 (interface_endpoint_client.cc:693)
      33  QtWebEngineCore                          0x1263a2529 IPC::(anonymous namespace)::ChannelAssociatedGroupController::AcceptOnEndpointThread(mojo::Message) + 281 (ipc_mojo_bootstrap.cc:1083)
      34  QtWebEngineCore                          0x12639fd57 Invoke<void (IPC::(anonymous namespace)::ChannelAssociatedGroupController::*)(mojo::Message), scoped_refptr<IPC::(anonymous namespace)::ChannelAssociatedGroupController>, mojo::Message> + 17 (bind_internal.h:647) [inlined]
      35  QtWebEngineCore                          0x12639fd57 MakeItSo<void (IPC::(anonymous namespace)::ChannelAssociatedGroupController::*)(mojo::Message), std::__1::tuple<scoped_refptr<IPC::(anonymous namespace)::ChannelAssociatedGroupController>, mojo::Message> > + 54 (bind_internal.h:826) [inlined]
      36  QtWebEngineCore                          0x12639fd57 RunImpl<void (IPC::(anonymous namespace)::ChannelAssociatedGroupController::*)(mojo::Message), std::__1::tuple<scoped_refptr<IPC::(anonymous namespace)::ChannelAssociatedGroupController>, mojo::Message>, 0UL, 1UL> + 54 (bind_internal.h:920) [inlined]
      37  QtWebEngineCore                          0x12639fd57 base::internal::Invoker<base::internal::BindState<void (IPC::(anonymous namespace)::ChannelAssociatedGroupController::*)(mojo::Message), scoped_refptr<IPC::(anonymous namespace)::ChannelAssociatedGroupController>, mojo::Message>, void ()>::RunOnce(base::internal::BindStateBase*) + 71 (bind_internal.h:871)
      38  QtWebEngineCore                          0x1254bcce7 Run + 17 (callback.h:145) [inlined]
      39  QtWebEngineCore                          0x1254bcce7 base::TaskAnnotator::RunTaskImpl(base::PendingTask&) + 231 (task_annotator.cc:134)
      40  QtWebEngineCore                          0x1254dae6d */thread_controller_with_message_pump_impl.cc:443:29)> + 30 (task_annotator.h:72) [inlined]
      41  QtWebEngineCore                          0x1254dae6d base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoWorkImpl(base::LazyNow*) + 765 (thread_controller_with_message_pump_impl.cc:441)
      42  QtWebEngineCore                          0x1254da94e base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoWork() + 78 (thread_controller_with_message_pump_impl.cc:297)
      43  QtWebEngineCore                          0x1254db515 non-virtual thunk to base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoWork() + 21
      44  QtWebEngineCore                          0x1212241fa QtWebEngineCore::MessagePumpForUIQt::handleScheduledWork() + 58 (browser_main_parts_qt.cpp:196)
      45  QtCore                                   0x10f20d307 QObject::event(QEvent*) + 103 (qobject.cpp:1368)
      46  QtWidgets                                0x10e054227 QApplicationPrivate::notify_helper(QObject*, QEvent*) + 247 (qapplication.cpp:3284)
      47  QtWidgets                                0x10e05504c QApplication::notify(QObject*, QEvent*) + 508
      48  QtCore                                   0x10f1c66ca QCoreApplication::notifyInternal2(QObject*, QEvent*) + 170 (qcoreapplication.cpp:1115)
      49  QtCore                                   0x10f1c789c QCoreApplication::sendEvent(QObject*, QEvent*) + 15 (qcoreapplication.cpp:1533) [inlined]
      50  QtCore                                   0x10f1c789c QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) + 1468 (qcoreapplication.cpp:1895)
      51  libqcocoa.dylib                          0x10cce19b6 QCocoaEventDispatcherPrivate::processPostedEvents() + 342 (qcocoaeventdispatcher.mm:880)
      52  libqcocoa.dylib                          0x10cce23ed QCocoaEventDispatcherPrivate::postedEventsSourceCallback(void*) + 445 (qcocoaeventdispatcher.mm:902)
      53  CoreFoundation                        0x7ff80f934f2a __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17
      54  CoreFoundation                        0x7ff80f934ecc __CFRunLoopDoSource0 + 157
      55  CoreFoundation                        0x7ff80f934ca5 __CFRunLoopDoSources0 + 217
      56  CoreFoundation                        0x7ff80f93392f __CFRunLoopRun + 916
      57  CoreFoundation                        0x7ff80f932f31 CFRunLoopRunSpecific + 560
      58  HIToolbox                             0x7ff8193aedad RunCurrentEventLoopInMode + 292
      59  HIToolbox                             0x7ff8193aebbe ReceiveNextEventCommon + 657
      60  HIToolbox                             0x7ff8193ae918 _BlockUntilNextEventMatchingListInModeWithFilter + 64
      61  AppKit                                0x7ff8129c75d0 _DPSNextEvent + 858
      62  AppKit                                0x7ff8129c647a -[NSApplication(NSEvent) _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 1214
      63  AppKit                                0x7ff8129b8ae8 -[NSApplication run] + 586
      64  libqcocoa.dylib                          0x10cce0e07 QCocoaEventDispatcher::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) + 2631 (qcocoaeventdispatcher.mm:404)
      65  QtCore                                   0x10f1cfb66 QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) + 30 (qeventloop.cpp:100) [inlined]
      66  QtCore                                   0x10f1cfb66 QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) + 486 (qeventloop.cpp:182)
      67  QtCore                                   0x10f1c6cb7 QCoreApplication::exec() + 119 (qcoreapplication.cpp:1436)
      68  videoplayer                              0x10c2334dd main + 157 (main.cpp:16)
      69  dyld                                  0x7ff80f4ff41f start + 1903
       

      Attachments

        1. videoplayer_crash.txt
          129 kB
          Łukasz Kosiorowski

        Issue Links

          No reviews matched the request. Check your Options in the drop-down menu of this sections header.

          Activity

            People

              qt_webengine_team Qt WebEngine Team
              lkos Łukasz Kosiorowski
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Gerrit Reviews

                  There are no open Gerrit changes