Introducing a Falkon extension Cookies.txt

This weekend I decided to test if it is possible to create a Cookies.txt style extensions for Falkon by using QML API.

This work is partially based on Firefox and Chrome extensions.

The GUI is shamelessly copied from the Firefox extension but I had a little trouble porting it to QML since I have still long way to go with this language. I like the GUI being a simple one and to the point. Either export “All” or the “Current Site”, sounds nice.

The harder part was to get the cookies for the current site since the domain set for a cookie can have a leading dot which probably (yeah I am guessing) mean it should apply for all subdomains it is even more trickier. The Firefox extension is cleverly using Firefox API to get the data and it works fine. The Chrome extension is getting all cookies all the time and filters the current domain on its own.

While Falkon Cookie API supports the filtering based on domain, the thing is, I was unable to get it working reliably with this leading dot and everything and I ended up using the approach from Chrome version. This can make sense since QtWebEngine is based on Chromium so there are some similarities. I did not want to import the whole domain thing as the original does and I only used the “fallback” for it and some hacking to get it somehow working.

The hacking consist of checking if the domain ends with the desired one and other way around. I consider it as a brutal hack since it should not work like this. But what am I to say, it is just a feature meant to easy life of people just a little bit. It is always required to check the results.

On top of everything, this short exercise is stretching my QML knowledge a bit.I found that the QML JavaScript is limited and provides only a handful of features and some are available through Qt module (or object, namespace….). The list of available QML JavaScript thing can be found at Qt docs. Yeah we are still on Qt5.

I wanted to use the URL thing to get the hostname or domain name but that is not available in QML JavaScript and executing JavaScript on the webpage is impossible since that would fail (at least in current state) when JavaScript is disabled, and that is a bit NO to me. I may try to look at the way to enable this to allow extensions to execute JavaScript even when the JS for site is disabled, I think there is a way and the Falkon QML API just hides it from me

For icon I wanted something at least a bit nice, so I went to SVG Repo and took one.

That was me rumbling about my latest achievement and partial fail.

Enjoy, or scold me.

The extension can be found at Falkon store and code at my Gitea.

Articles from blogs I follow:

Jekyll Publishing on FreeBSD

I switched to static website generation with Jekyll in 2019 (probably because of Carl Schwan, who is somehow my guiding-spirit in webulous things even if he does Hugo things nowadays). That means Ruby, and I’ve got various bits-and-notes documents saying …

via [bobulate] July 1, 2025

Why is your open source project still hosted on GitHub?

Perhaps the younger generation don't know anything about the past "evils" of Microsoft and naively believe that Microsoft is now the good friend to open source, but the truth is that all Microsoft acquisitions of open source projects is a busi…

via unixdigest.com May 22, 2025

Steve Ballmer was an underrated CEO

There's a common narrative that Microsoft was moribund under Steve Ballmer and then later saved by the miraculous leadership of Satya Nadella. This is the dominant narrative in every online discussion about the topic I've seen and it's a commo…

via danluu.com October 28, 2024

Generated by openring