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

WebEngineView is empty when ran in a Wayland client on a RaspberryPi3

    Details

      Description

      What did you do ?

      • I am trying to use QtWebEngine on QtWayland on a RaspberryPi3.
      • This is not possible at all with the current upstream QtWayland's brcm integration.
      • I extended the QtWayland's brcm integration to support native resources using this patch.
      • With the above patch, I managed to get a C++ example of QtWebEngine working as a QtWayland client on a Brcm stack. (i.e: actually showing pages)
      • I would now like to run a QtQuick app using QtWebEngine such as the WebEngine Qt Quick Minimal Example on the same stack.

      What did you expect to happen?

      • I would expect the QtQuick app to show webpages.

      What happened instead?

      • Nothing is shown on screen (the WebEngineView is just empty).

       

      Just to say the same thing again in a more graphic way:

        C++ WebEngine QML WebEngine
      eglfs
      wayland

      I ran the minimal C++ and QML examples of QtWebEngine with two QPA integrations (eglfs and wayland) on a RaspberryPi3. This required a patched QtWayland. However, I observed that the very specific combination of a QtQuick QtWebEngine app running on QtWayland on Brcm wouldn't show anything.

       

      My debugging efforts:

      Running my QtWebEngine apps in the above four conditions with logging enabled (i.e: with --enable-logging --log-level=0 -v=9) would always result in the same normal looking logs. Said otherwise: I don't get any error or warning when running a QML WebEngineView on Wayland on Brcm.

      I instrumented the source code of QtWebEngine myself to find a difference of execution between those four cases. I observed that when Chromium calls SubmitCompositorFrame for a QML element on QtWayland, the render_pass_list field of the 'cc::CompositorFrame frame' argument is empty. This seem to explain why DelegatedFrameNode doesn't fill the scenegraph and nothing is shown. When the code is ran on eglfs or from a C++ example, this list is not empty.

      I am afraid I will not able to debug alone the chromium's inner working any deeper. I have no explanation as to why this list is empty in this specific stack. Any help or idea would be very welcome! Thanks a lot.

        Attachments

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

          Activity

            People

            • Assignee:
              qt_webengine_team Qt WebEngine Team
              Reporter:
              florentrevest Florent Revest
            • Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

              • Created:
                Updated:

                Gerrit Reviews

                There are no open Gerrit changes