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.
ADMBrowser
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.
Hi Alan,
I’m using WCGBrowser on our 241 library terminals to bring an anonymous “login” to our users. I also use it for the printer terminals to bring our users access to there print jobs. I know that your Browser is used by our datacenter crew for the PC pool as well. It is not perfect but it simply does what I want and saves me from freaking out 🙂
I just want to thank you for your great work.
Michael
Wow! Thanks for sharing that, Michael. It’s gratifying to hear that this code is useful to so many people.
Please add a comment letting people know to wcgbrowser project page. I’ve been getting crazy for the last week or so trying to get wcgbrowser to work with a React16 web page. Finally I discovered webengine and then starting trying to port wcgbrowser to it (with no python knowledge) and when things didn’t work i tried to serach “wcgbrowser webengine” and got here.
Your work is great. We’re using it on the kiosks of a resort photography business.
Thanks!