[Development] Assistant WebKit/WebEngine support

Bastiaan Veelo Bastiaan at Veelo.net
Mon May 20 15:00:20 CEST 2019


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?

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