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

WebEngine X11 dependency issue

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • P2: Important
    • 5.12.0 Alpha
    • 5.6.0 RC
    • WebEngine
    • None
    • 3ee51f8f085da394851857b0d6a42df537ca99da

    Description

      Most Qt code is running with applied platform plugin with -platform or environment QT_QPA_PLATFORM.
      But the qtwebengine module probably works with build time dependencies.
      In my testing environment, it always try to use X11 related code even though the backend has set as eglfs.
      If runtime backend change is difficult by some reason (e.g - Chromium code/build stuffs's limitation), I think that the configure option to build exclude x11 dependencies from qtwebengine should be provided as option.

      Built qt 5.6 beta on Ubuntu 14.04 with following configure

      ./configure -prefix /path/to -nomake examples -nomake tests -confirm-license -opensource -kms -no-libinput --debug

      Run sample app which uses qtwebengine on X11 env

      => Ok

      Run sample app which uses qtwebengine on non-X11 env (eglfs-kms)

      => Segfault

      unset DISPLAY, stop xdm/gdm/lightdm to shutdown X.org
      export QT_QPA_EGLFS_KMS_CONFIG=$(pwd)/kms.json
      export QT_QPA_PLATFORM=eglfs
      ./sample
      Segmentation fault (core dumped)

      GDB backtrace
      (gdb) bt
      #0 0x000000000000000d in ?? ()
      #1 0x00007fffea71ed1f in XInternAtoms ()
      from /usr/lib/x86_64-linux-gnu/libX11.so.6
      #2 0x00007ffff36d0fa9 in ui::X11AtomCache::X11AtomCache (this=0xc47a38,
      xdisplay=0x99cfb0, to_cache=0x7ffff7ae2be0 <kCachedAtoms>)
      at /opt2/qt-everywhere-opensource-src-5.6.0-rc/qtwebengine/src/3rdparty/chromium/ui/gfx/x/x11_atom_cache.cc:27
      #3 0x00007ffff2ee4cd0 in ui::DeviceDataManagerX11::DeviceDataManagerX11 (
      this=0xc3a510)
      at /opt2/qt-everywhere-opensource-src-5.6.0-rc/qtwebengine/src/3rdparty/chromium/ui/events/devices/x11/device_data_manager_x11.cc:150
      #4 0x00007ffff2ee4a51 in ui::DeviceDataManagerX11::CreateInstance ()
      at /opt2/qt-everywhere-opensource-src-5.6.0-rc/qtwebengine/src/3rdparty/chromium/ui/events/devices/x11/device_data_manager_x11.cc:135
      #5 0x00007ffff4441d7b in ui::X11EventSource::X11EventSource (this=0xc3a470,
      display=0x99cfb0)
      at /opt2/qt-everywhere-opensource-src-5.6.0-rc/qtwebengine/src/3rdparty/chromium/ui/events/platform/x11/x11_event_source.cc:81
      #6 0x00007ffff4440ee5 in ui::(anonymous namespace)::X11EventSourceGlib::X11EventSourceGlib (this=0xc3a470, display=0x99cfb0)
      at /opt2/qt-everywhere-opensource-src-5.6.0-rc/qtwebengine/src/3rdparty/chromium/ui/events/platform/x11/x11_event_source_glib.cc:54
      #7 0x00007ffff4441319 in ui::PlatformEventSource::CreateDefault ()
      at /opt2/qt-everywhere-opensource-src-5.6.0-rc/qtwebengine/src/3rdparty/chromium/ui/events/platform/x11/x11_event_source_glib.cc:97
      #8 0x00007ffff3319d37 in aura::Env::Init (this=0xc3a060,
      create_event_source=true)
      at /opt2/qt-everywhere-opensource-src-5.6.0-rc/qtwebengine/src/3rdparty/chromium/ui/aura/env.cc:93
      #9 0x00007ffff33196d1 in aura::Env::CreateInstance (create_event_source=true)
      at /opt2/qt-everywhere-opensource-src-5.6.0-rc/qtwebengine/src/3rdparty/chromium/ui/aura/env.cc:34

      So added -no-xcb-xlib -no-xcb into configure and tried again. but the result was same. Qt's xcb backend has not been created. but the QtWebEngine module work like above backtrace.

      Attachments

        Issue Links

          For Gerrit Dashboard: QTBUG-51631
          # Subject Branch Project Status CR V

          Activity

            People

              michal Michal Klocek
              jooncheol Jooncheol Park
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Gerrit Reviews

                  There are no open Gerrit changes