It’s been a snowy week like Tennessee hasn’t seen in decades, so with a couple of extra down-days on my hands I decided to work on a project that’s been on my docket for some time: porting WCGBrowser to a new web-rendering engine.
WCGBrowser has been my most popular open-source project by far, and between blog posts I’ve seen and emails I’ve received, it seems to be powering kiosks and signage from New England to the Netherlands, Germany, and Australia. I’ve found it quite useful within my own organization, but it’s Achille’s heel for many years has been QtWebKit.
QtWebKit is, basically, dead, and starting to stink a little. Its performance is slow, it’s buggy with some websites, and it tends to leak memory like a seive. The Qt community has been working for the last couple year to integrate Chrome/Chromium’s Blink browser engine into Qt, and recently with the release of 5.4 this new “QtWebEngine” library is now available for me to play with on Arch Linux.
So I’ve begun porting the browser to QtWebEngine. It became immediately obvious that this was going to break a lot of things in WCGBrowser, and I’ve been wanting to change the name for a while, so I decided to fork WCGBrowser and start a new project.
I give you ADMBrowser.
Yeah, I went full ego on the name. Mostly I just want to avoid a name collision with a commercial browser, since there is a new one being bankrolled by VC every five minutes.
So far ADMBrowser is a quick-n-dirty port of WCGBrowser to QtWebEngine, basically discarding any features that couldn’t be easily ported with a search-and-replace. Sadly, that’s a lot of important features so far:
- Plugin support
- External File (PDF, etc) support
- Privacy mode
- Proxy support
- Certificate handling
That’s just the quick core-features test findings. I haven’t tried all the more obscure features yet. Needless to say, don’t swap your production rig to ADMBrowser just yet.
Apart from the WebEngine move, I plan to clean up some of the redundant configuration options and maybe organize things a little better. I’ll also be dropping support for Python 2 (or at least not going far out of my way to support it).
Hopefully QtWebEngine will mature quickly, or workarounds will come to light. I can tell already that many rendering and performance bugs from the old WCGBrowser are tidied by by the new renderer.
If you’re Python & Qt coder who might be able to help me fix some of these things, please feel free to fork and submit pull requests.