Falkon: Development Update, Dec 2023

A lot of happened since I last wrote something about Falkon development.

Release of Falkon 23.08

Relatively a lot of stuff was changed/added/fixed for this release series.

The biggest thing I struggled with was session restore optimizations which is very slow and I manahed to get it faster by a bit and also introduce new bugs. Well nothing is for free. There is still a second part waiting and that is to delay putting icons into the tabs on the tabbar until they are realy needed. This operation actualy takes most of the time.

The rest are smaller parts and also stuff contributed by people who care about Falkon.

There should also be another release in this series 23.08.5 with more bugfixes. (It is already getting to the point I am fixing my own mistakes.)

Preparations for Falkon 24.02

The biggest change is a port to Qt6 which is possible thanks to people contributing to Falkon (and me having a headache). The Qt6 port is a minimal port, which means that no new features and some features are disabled.

Even the bare port like this takes a lot of energy since the version of KDE ExtraCmakeModules (ECM) was not increased since forever and after bumping it into a proper number it made the code unable to compile due to a lot of string issues. This was a headache since Clazy integration in KDevelop did not work properly so I could not use automatic fix. (yes, I could use the time to learn how to do it manually…)

Another point is that Qt6 is constantly releasing new version which break stuff, so there are some bugreports from not yet released Qt6 which I have no will to test.

Next plans

Version 24.02 is a special one and thus the feature freeze happened much sooner so no new features can be added there, which means the new features will land in some 24.04++++ release.

These are some of the requested stuff made possible thanks to Qt6 implementing it.

  • Detection of captive portals
  • New way to detect network availability status
  • DNS Over Https (or so I think, since it pops in the terminal logs – doh - using system settings)

And probably many more since I did not take a complete look at what is new, the features will come over time.

Site Settings

This is a feature I am working on for a while with some breaks here and there. I plan to finish it within the new year of 2024. I am struggling with some system design and functionality, so after I sort these out I will go beg the KDE GUI team for help to help me design and improve the UI for this feature. Better later than never that I realized this.

PS: This thing touches a lot of essential parts of browser so I think it is important to take more time to properly make it.

SpeedDial

This page sucks a lot of power from the CPU. I have no idea whhy this little webpage is so demanding.

I tried to take a look at it and I slowly started reqriting it and it resulted in me fixinf a single typo. Yes, this is what you get after working most of the weekend on JavaScript code.

This thing is using JQuery and the JQuert Sortable thing to make the speeddial page interactive. I tried to search for a good replacement but I found nothing worth my attention. It is all either part of the BIG framework or abandoned code (mo update for a while).

Support for different devices

I am trying to use Falkon on PinePhone and PineTab2 to find the performance issues and the UI issues on these touch devices. And there is a lot of them since Falkon was never designed with Touch supoort in mind, the touch stuff is not even enabled in the code and I do not want to mess stuff by enabling it before properly testing it.

Fixing tests

All autotests should pass locally and also on GitLab CI, well they do not. It is not a surprise sicne I did not change the tests after changing the code, I totally forgot them. There are some interesting tests which hope that the browser is not fully initialized yet (QmlTabsApiTest) to do their stuff, that is simply not how it is supposed to be done. The problem with this approach is that it creates a seemingly random bug in the middle of the test.

I want to learn more about Falkon autotests and how they are done in order to write some tests for the Site Settings future feature.

PS: PyFalkon tests are broken for many years (they depend on a removed functionality) and I will leave this one for later. It is not shown on the Qt6 GitLab CI since it is missing PySide6 on the server, so it is fine, right?

Conclusion

While I am a bit more familiar with Falkon code-base there are still places I have no idea about, that is why I need to take more time to learn more about it. Also the same goes for Qt of whatever version, I work with Qt mostly only on Falkon and some smaller projects. That is another excuse why the changes take so much time. But is is a good exercise.

Overall, it looks good and I will continue looking over Falkon until someone better appears.

Yes, I am sure I forgot something.

Yes, I did not put any links to this post.

Articles from blogs I follow:

Richard Stallman's political discourse on sex

Richard Stallman, the founder of the Free Software Foundation, has been subject to numerous allegations of misconduct. He stepped down in 2019, and following his re-instatement in 2021, a famous open letter was published in which numerous organizations and i…

via Drew DeVault's blog November 25, 2023

Upgrading to FreeBSD 14 - how to fix a broken BIOS bootcode

A lot of people running ZFS zroot have managed to break their FreeBSD systems upgrading from 13.2 to the new 14.0 release because of a broken BIOS bootcode. In this tutorial I'll show you how you can fix that without having to reinstall.

via unixsheikh.com November 22, 2023

C++ Guidelines

C++ is definitely a language that has Lots of Ways to do It – kind of like Perl’s TIMTOWTSAC. A consequence is that when writing code, you need to think about which way to do things. When context-switching between projects, employers, or what-have-you, yo…

via [bobulate] November 21, 2023

Generated by openring