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

QtVirtualKeyboard asserts with WebEngineView

    XMLWordPrintable

Details

    • Bug
    • Resolution: Fixed
    • P1: Critical
    • 5.12.1
    • 5.11.1, 5.12
    • WebEngine
    • Linux/X11
    • 43840350a1597d58116c36137c046ef595c57ed4

    Description

      This issue can be reproduced with qtwebbrowser ( http://code.qt.io/cgit/qt-apps/qtwebbrowser.git/ ) or with the attached example ( we-keyboard.tgz ).

      Steps to reproduce:

      • Start browser and load www.google.com
      • Start to type something into the input field
      • Click/Touch in the middle of the text
      • Hide keyboard

      Then the virtual keyboard asserts because the length of the surrounding text ( http://doc.qt.io/qt-5/qt.html#InputMethodQuery-enum ) is less then the current cursor position. (when hiding the virtual keyboard the cursor seems to be set to the end of the text)

      The assert is:

      ASSERT: "uint(i) < uint(size())" in file /home/stampho/work/Qt/qt5-512-dev/qtbase/include/QtCore/../../../../qt5-512-src/qtbase/src/corelib/tools/qstring.h, line 933
      Received signal 6
      #0 0x7fce44638d28 base::debug::StackTrace::StackTrace()
      #1 0x7fce44635c8f base::debug::StackTrace::StackTrace()
      #2 0x7fce4463795c base::debug::(anonymous namespace)::StackDumpSignalHandler()
      #3 0x7fce3d7a90a0 <unknown>
      #4 0x7fce3ca5b76b gsignal
      #5 0x7fce3ca5cfb1 abort
      #6 0x7fce3dccdd0a qt_message_fatal()
      #7 0x7fce3dcce96b QMessageLogger::fatal()
      #8 0x7fce3dcc7275 qt_assert()
      #9 0x7fce34160448 QtVirtualKeyboard::HunspellInputMethod::reselect()
      #10 0x7fce3229c6a7 QtVirtualKeyboard::InputEngine::reselect()
      #11 0x7fce322987e1 QtVirtualKeyboard::InputContext::update()
      #12 0x7fce322944bb QtVirtualKeyboard::PlatformInputContext::update()
      #13 0x7fce3ea1890e QInputMethod::update()
      #14 0x7fce4f3e4975 QtWebEngineCore::RenderWidgetHostViewQtDelegateQuick::inputMethodStateChanged()
      #15 0x7fce404d1901 QtWebEngineCore::RenderWidgetHostViewQt::OnUpdateTextInputStateCalled()
      #16 0x7fce43e5894e content::TextInputManager::NotifyObserversAboutInputStateUpdate()
      #17 0x7fce43e5743c content::TextInputManager::UpdateTextInputState()
      #18 0x7fce43e3d1d6 content::RenderWidgetHostViewBase::TextInputStateChanged()
      #19 0x7fce43e11ab1 content::RenderWidgetHostImpl::OnTextInputStateChanged()
      #20 0x7fce43e26781 _ZN4base20DispatchToMethodImplIPN7content20RenderWidgetHostImplEMS2_FvRKNS1_14TextInputStateEESt5tupleIJS4_EEJLm0EEEEvRKT_T0_OT1_St16integer_sequenceImJXspT2_EEE
      #21 0x7fce43e2281a _ZN4base16DispatchToMethodIPN7content20RenderWidgetHostImplEMS2_FvRKNS1_14TextInputStateEESt5tupleIJS4_EEEEvRKT_T0_OT1_
      #22 0x7fce43e1eaed _ZN3IPC16DispatchToMethodIN7content20RenderWidgetHostImplEMS2_FvRKNS1_14TextInputStateEEvSt5tupleIJS3_EEEEvPT_T0_PT1_OT2_
      #23 0x7fce43e1a5ee _ZN3IPC8MessageTI38ViewHostMsg_TextInputStateChanged_MetaSt5tupleIJN7content14TextInputStateEEEvE8DispatchINS3_20RenderWidgetHostImplES8_vMS8_FvRKS4_EEEbPKNS_7MessageEPT_PT0_PT1_T2_
      #24 0x7fce43e0a621 content::RenderWidgetHostImpl::OnMessageReceived()
      #25 0x7fce43d94712 content::RenderProcessHostImpl::OnMessageReceived()
      #26 0x7fce44ecbc05 IPC::ChannelProxy::Context::OnDispatchMessage()
      #27 0x7fce44ed1c39 _ZN4base8internal13FunctorTraitsIMN3IPC12ChannelProxy7ContextEFvRKNS2_7MessageEEvE6InvokeIRK13scoped_refptrIS4_EJS7_EEEvS9_OT_DpOT0_
      #28 0x7fce44ed1413 _ZN4base8internal12InvokeHelperILb0EvE8MakeItSoIRKMN3IPC12ChannelProxy7ContextEFvRKNS4_7MessageEEJRK13scoped_refptrIS6_ES9_EEEvOT_DpOT0_
      #29 0x7fce44ecfc94 _ZN4base8internal7InvokerINS0_9BindStateIMN3IPC12ChannelProxy7ContextEFvRKNS3_7MessageEEJ13scoped_refptrIS5_ES6_EEEFvvEE7RunImplIRKSA_RKSt5tupleIJSC_S6_EEJLm0ELm1EEEEvOT_OT0_St16integer_sequenceImJXspT1_EEE
      #30 0x7fce44eceff0 _ZN4base8internal7InvokerINS0_9BindStateIMN3IPC12ChannelProxy7ContextEFvRKNS3_7MessageEEJ13scoped_refptrIS5_ES6_EEEFvvEE3RunEPNS0_13BindStateBaseE
      #31 0x7fce40540804 _ZNO4base12OnceCallbackIFvvEE3RunEv
      #32 0x7fce44639583 base::debug::TaskAnnotator::RunTask()
      #33 0x7fce44692d18 base::internal::IncomingTaskQueue::RunTask()
      #34 0x7fce4469b501 base::MessageLoop::RunTask()
      #35 0x7fce4469b674 base::MessageLoop::DeferOrRunPendingTask()
      #36 0x7fce4469b9a3 base::MessageLoop::DoWork()
      #37 0x7fce4047ef76 QtWebEngineCore::(anonymous namespace)::MessagePumpForUIQt::customEvent()
      #38 0x7fce3ded4f9a QObject::event()
      #39 0x7fce3dea218a QCoreApplicationPrivate::notify_helper()
      #40 0x7fce3dea2253 doNotify()
      #41 0x7fce3dea23aa QCoreApplication::notify()
      #42 0x7fce3e9f7b5a QGuiApplication::notify()
      #43 0x7fce3dea22e7 QCoreApplication::notifyInternal2()
      #44 0x7fce3dea2542 QCoreApplication::sendEvent()
      #45 0x7fce3dea8709 QCoreApplicationPrivate::sendPostedEvents()
      #46 0x7fce3dea8d8e QCoreApplication::sendPostedEvents()
      #47 0x7fce3df0538c postEventSourceDispatch()
      #48 0x7fce35b51d97 g_main_context_dispatch
      #49 0x7fce35b51fd0 <unknown>
      #50 0x7fce35b5205c g_main_context_iteration
      #51 0x7fce3df04c96 QEventDispatcherGlib::processEvents()
      #52 0x7fce34348fe7 QPAEventDispatcherGlib::processEvents()
      #53 0x7fce3dea01f9 QEventLoop::processEvents()
      #54 0x7fce3dea0651 QEventLoop::exec()
      #55 0x7fce3deaa75e QCoreApplication::exec()
      #56 0x7fce3e9f25ea QGuiApplication::exec()
      #57 0x000000401488 main
      #58 0x7fce3ca46ae7 __libc_start_main
      #59 0x00000040123a _start
        r8: 0000000000000000  r9: 00007ffed737e970 r10: 0000000000000008 r11: 0000000000000246
       r12: 0000000000000005 r13: 0000000000000004 r14: 000000000049cef0 r15: 0000000000744838
        di: 0000000000000002  si: 00007ffed737e970  bp: 00007ffed737ebd8  bx: 0000000000000006
        dx: 0000000000000000  ax: 0000000000000000  cx: 00007fce3ca5b76b  sp: 00007ffed737e970
        ip: 00007fce3ca5b76b efl: 0000000000000246 cgf: 002b000000000033 erf: 0000000000000000
       trp: 0000000000000000 msk: 0000000000000000 cr2: 0000000000000000
      [end of stack trace]
      Calling _exit(1). Core file will not be generated.
      

      Some other related issues:

      • The background of the composition text is black thus not readable
      • Sometimes virtual keyboard pastes the part of the text into the field when leaving focus

      Attachments

        1. we-keyboard.tgz
          1 kB
          Peter Varga

        Issue Links

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

          Activity

            People

              pvarga Peter Varga
              pvarga Peter Varga
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Gerrit Reviews

                  There are no open Gerrit changes