Day 19/20: Bugs everywhere!
If you're a programmer, you might know these days where everything just seems to fall apart from all the bugs you run into. Thursday and Friday were those days for me... ;)
But let's start with the things which went well first! I implemented more scrolling functionality with QtWebEngine (7adc8ab, 6958642, e2c4e63) which means the scrolling part is now done apart from scroll.at_bottom().
I also finally was able to track down and fix a bug where some config values where set back to the default very rarely - turns out it was an accidental return (instead of continue) when reading the options and there is an option which has been removed in qutebrowser...
I then wanted to investigate and fix a crash I saw on exit with QtWebEngine. I wasn't able to construct a minimal example, so I tried to gather as much information as possible for the report. To do so, I did a special debug build of Python so I could use valgrind which is very useful to track down things like this.
Turns out I also needed to recompile PyQt to work with a debug build of Python. Since I planned to do that anyways, I decided to build the newest PyQt snapshot (which will soon be released as PyQt 5.7). qutebrowser didn't start all, because of a off-by-one error in PyQt when connecting slots...
After reporting both bugs, I took a look at why AppVeyor (the Windows CI qutebrowser uses) was failing since a few days - turns out they did some update to their build image which now uses Python 3.5 instead of 3.4 by default, which broke the registry hack qutebrowser was using to make sure PyQt gets installed at the right location.
After fixing that issue, AppVeyor failed because I forgot to adjust a Windows-only script after the recent CherryPy (webserver used for end-to-end tests) update.
That was also fixed, and AppVeyor still fails for some reason I don't really understand yet...
In a new pull request there were also some issues related to qutebrowser's object registry - I think I really should get rid of it rather sooner than later, given that it also causes issues with tests added for the new tab API on older PyQt versions. This will probably take a day or two, but it seems like it's really needed!
Right now, I'm sitting in the airplane to Bilbao (Spain) for the EuroPython conference, which means things will be quiet here for another week.
After that, I'll try to get everything running smooth again, get rid of the objreg code as much as possible, and take care of the remaining missing QtWebEngine features (like the web inspector, settings, downloads and hinting).