[Development] Assistant WebKit/WebEngine support
Bastiaan Veelo
Bastiaan at Veelo.net
Mon May 20 15:00:20 CEST 2019
Hi,
I am prepared to do some work on Qt Assistant, and I'd like to know how
that will be received.
Qt Assistant officially only renders content with QTextBrowser
currently, which is too limited for many of us[1]. There are still
traces of greater WebKit times, but that code remains unused after
WebKit was dropped from Qt. There have been talks about WebKit making a
return[2], but it has been quiet on that front for some time. There has
been an initiative for using WebEngine as an alternative, which mostly
works[3]. However, that patch assumes the WebEngine build to have
completed when Assistant is being built, which is not the case in a
clean checkout. To resolve this dependency order problem, it has been
suggested in its review to redo WebEngine support as a plugin to Assistant.
I have been looking into the plugin idea, and although it is not
straight forward I think it is doable. Some larger refactoring is needed
to achieve a clean border between Assistant and the viewer plugin
interface. My goal is to eliminate calls from the viewer plugin back
into the Assistant application, which would otherwise require some
classes to be in a common shared library. I can implement the
QTextBrowser based viewer in a plugin that is statically linked, so that
Assistant will work out of the box whether it is being deployed with or
without WebEngine. Plugins can be selected based on priority.
Having the viewer back end be separated from the application with a
plugin interface may be an advantage regardless, whether WebKit comes
back or WebEngine is being removed from the Qt distribution in the
future. At least users will have a possibility to replace the default
viewer with whatever alternative is available.
Does this sound like a good idea?
Thanks,
Bastiaan Veelo
[1] https://bugreports.qt.io/browse/QTBUG-55866
[2] https://forum.qt.io/topic/102816/webkit-status-2019
[3] https://codereview.qt-project.org/#/c/111559/
More information about the Development
mailing list