#1 Le 24/04/2021, à 15:43
- paulwoisard
[Qt/C++] Segfault sur les liens target="_blank" dans un QWebEnginePage
Bonjour,
Je bosse sur un programme d'accessibilité, j'affiche des pages web dans un QWebEnginePage compris dans un QWebEngineView. Par défaut, le QWebEngine ne suit pas les liens avec l'instruction html target="_blank", j'ai vu un tuto sur le forum de Qt : https://forum.qt.io/topic/93524/qwebeng … s-issue/12 pour les ouvrir dans la même page.
J'ai essayé d'implémenter la même fonction :
dans mywebenginepage.h
class MyWebEnginePage : public QWebEnginePage
{
Q_OBJECT
public:
QWebEnginePage *createWindow(MyWebEnginePage::WebWindowType);
};
et dans mywebenginepage.cpp
QWebEnginePage* MyWebEnginePage::createWindow(QWebEnginePage::WebWindowType Type)
{
return this;
}
et j'ai un beau segfault à chaque appel de QWebEnginePage* MyWebEnginePage::createWindow
voici plus d'info sur le segfault :
paul@paul-MS-7C79:~/qtcreator_project/dvkbuntu-easy-menu-qt$ catchsegv ./dvkbuntu-easy-menu-qt
Icon theme "Yaru" not found.
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
Segmentation fault (core dumped)
*** Segmentation fault
Register dump:
RAX: 0000000000000000 RBX: 0000564dfdcaeb80 RCX: 0000000000000000
RDX: 00000000000003e8 RSI: 0000000000000000 RDI: 00007fff42cb8f78
RBP: 00007fff42cb8f50 R8 : 0000000000000000 R9 : 0000000000000004
R10: 0000564dfc33a010 R11: 00007f7e68000080 R12: 00007fff42cb8f78
R13: 00007fff42cb8fb0 R14: 0000564dfdca5da0 R15: 00007fff42cb8f78
RSP: 00007fff42cb8f10
RIP: 00007f7eff17e3b2 EFLAGS: 00010246
CS: 0033 FS: 0000 GS: 0000
Trap: 0000000e Error: 00000004 OldMask: 00000000 CR2: 00000068
FPUCW: 0000037f FPUSW: 00000000 TAG: 00007f7f
RIP: 0597e2c3 RDP: 00000000
ST(0) 0000 0000000000000000 ST(1) 0000 0000000000000000
ST(2) 0000 0000000000000000 ST(3) 0000 0000000000000000
ST(4) 0000 0000000000000000 ST(5) ffff b000000000000000
ST(6) ffff d000000000000000 ST(7) d000 d000000000000000
mxcsr: 1fa5
XMM0: 0000000000000000000000001e848000 XMM1: 0000000000000000000000001e848000
XMM2: 0000000000000000000000001e848000 XMM3: 0000000000000000000000001e848000
XMM4: 0000000000000000000000001e848000 XMM5: 0000000000000000000000001e848000
XMM6: 0000000000000000000000001e848000 XMM7: 0000000000000000000000001e848000
XMM8: 0000000000000000000000001e848000 XMM9: 0000000000000000000000001e848000
XMM10: 0000000000000000000000001e848000 XMM11: 0000000000000000000000001e848000
XMM12: 0000000000000000000000001e848000 XMM13: 0000000000000000000000001e848000
XMM14: 0000000000000000000000001e848000 XMM15: 0000000000000000000000001e848000
Backtrace:
/lib/x86_64-linux-gnu/libQt5WebEngineCore.so.5(_ZNK15QtWebEngineCore14ProfileAdapter13httpUserAgentEv+0x22)[0x7f7eff17e3b2]
/lib/x86_64-linux-gnu/libQt5WebEngineCore.so.5(_ZN15QtWebEngineCore18WebContentsAdapter10initializeEPN7content12SiteInstanceE+0xc9)[0x7f7eff1ab239]
/lib/x86_64-linux-gnu/libQt5WebEngineCore.so.5(+0x7f2612)[0x7f7eff1b3612]
/lib/x86_64-linux-gnu/libQt5WebEngineCore.so.5(+0x225132d)[0x7f7f00c1232d]
/lib/x86_64-linux-gnu/libQt5WebEngineCore.so.5(+0x1f66247)[0x7f7f00927247]
/lib/x86_64-linux-gnu/libQt5WebEngineCore.so.5(+0x211f24f)[0x7f7f00ae024f]
/lib/x86_64-linux-gnu/libQt5WebEngineCore.so.5(+0x2a7adf8)[0x7f7f0143bdf8]
/lib/x86_64-linux-gnu/libQt5WebEngineCore.so.5(+0x2407fc0)[0x7f7f00dc8fc0]
/lib/x86_64-linux-gnu/libQt5WebEngineCore.so.5(+0x2428ae1)[0x7f7f00de9ae1]
/lib/x86_64-linux-gnu/libQt5WebEngineCore.so.5(+0x2429803)[0x7f7f00dea803]
/lib/x86_64-linux-gnu/libQt5WebEngineCore.so.5(+0x242997d)[0x7f7f00dea97d]
/lib/x86_64-linux-gnu/libQt5WebEngineCore.so.5(+0x76f7fb)[0x7f7eff1307fb]
/lib/x86_64-linux-gnu/libQt5Core.so.5(_ZN7QObject5eventEP6QEvent+0x1d5)[0x7f7f05d3ccf5]
/lib/x86_64-linux-gnu/libQt5Widgets.so.5(_ZN19QApplicationPrivate13notify_helperEP7QObjectP6QEvent+0x86)[0x7f7f0672aa66]
/lib/x86_64-linux-gnu/libQt5Widgets.so.5(_ZN12QApplication6notifyEP7QObjectP6QEvent+0x330)[0x7f7f067340f0]
/lib/x86_64-linux-gnu/libQt5Core.so.5(_ZN16QCoreApplication15notifyInternal2EP7QObjectP6QEvent+0x18a)[0x7f7f05d1093a]
/lib/x86_64-linux-gnu/libQt5Core.so.5(_ZN23QCoreApplicationPrivate16sendPostedEventsEP7QObjectiP11QThreadData+0x148)[0x7f7f05d135b8]
/lib/x86_64-linux-gnu/libQt5Core.so.5(+0x2def67)[0x7f7f05d68f67]
/lib/x86_64-linux-gnu/libglib-2.0.so.0(g_main_context_dispatch+0x27d)[0x7f7efd8b917d]
/lib/x86_64-linux-gnu/libglib-2.0.so.0(+0x52400)[0x7f7efd8b9400]
/lib/x86_64-linux-gnu/libglib-2.0.so.0(g_main_context_iteration+0x33)[0x7f7efd8b94a3]
/lib/x86_64-linux-gnu/libQt5Core.so.5(_ZN20QEventDispatcherGlib13processEventsE6QFlagsIN10QEventLoop17ProcessEventsFlagEE+0x65)[0x7f7f05d68565]
/lib/x86_64-linux-gnu/libQt5Core.so.5(_ZN10QEventLoop4execE6QFlagsINS_17ProcessEventsFlagEE+0x12b)[0x7f7f05d0f4db]
/lib/x86_64-linux-gnu/libQt5Core.so.5(_ZN16QCoreApplication4execEv+0x96)[0x7f7f05d17246]
./dvkbuntu-easy-menu-qt(main+0x6a)[0x564dfbacbaaa]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf3)[0x7f7f056c30b3]
./dvkbuntu-easy-menu-qt(+0xabae)[0x564dfbacbbae]
Le code source de mon projet est là : https://github.com/handyopensource/dvkb … y-menu-qt/ et je suis sur Kubuntu 20.04.2 LTS.
Je bloque sur ce point depuis une semaine, j'ai besoin d'aide, par avance merci.
Dernière modification par paulwoisard (Le 24/04/2021, à 17:28)
Actuellement, j'ai une toute petite équipe de bénévoles et on essaye de dév des deux, trois logiciels plus ou moins utile, en voici le site web : https://bit-scripts.github.io/
Hors ligne
#2 Le 25/04/2021, à 11:19
- paulwoisard
Re : [Qt/C++] Segfault sur les liens target="_blank" dans un QWebEnginePage
J'ai compilé l'Easy Menu sur Kubuntu 20.10, Manjaro et Kubuntu 21.04, et le problème que je rencontre sur kubuntu 20.04 est résolu sur Manjaro et sur Kubuntu 21.04 (non résolu sur Kubuntu 20.10) !
Cela veut dire que cela ne vient pas de moi et de mon code, mais bien de QWebEngineProfile de Kubuntu 20.04 et 20.10 !
J'ai signalé le bug sur Launchpad.net : https://bugs.launchpad.net/ubuntu/+sour … ug/1926065
Dernière modification par paulwoisard (Le 25/04/2021, à 12:53)
Actuellement, j'ai une toute petite équipe de bénévoles et on essaye de dév des deux, trois logiciels plus ou moins utile, en voici le site web : https://bit-scripts.github.io/
Hors ligne