Your rating: None Average: 4.5 (22 votes)

A simple webbrowser which allows viewing webpages and surfing sites.
It is based upon the webkit engine provided by Qt5.

Current features include:

  • Landscape support
  • Tabbing support (real without reloading of tabs)
  • Bookmark support
  • Setting browser user agent
  • Setting default font sizes
  • Opening up links in new tab (by long press and hold on link)
  • Copy links (by long press and hold on link)
  • Open media links with internal or external viewer (e.g. LLs VideoPlayer)
  • Setting DNS Prefetch
  • Setting Offline WebApplication Cache
  • Manually add bookmark with specific user agent
  • Fast scroll to top or bottom of page
  • Watch Youtube with internal or external player (e.g. LLs VideoPlayer) with direct link
  • Download Youtube videos in different formats
  • Private Browsing
  • Clear Cache, Cookies, History
  • Page search functionality
  • Simple adblocking (simple rules no bloat)
  • Integrated file manager
  • Integrated Download Manager
  • Keyboard Hotkeys (for TOHKBD or bluetooth keyboards)
  • Support different screen resolutions (support for Nexus4, Nexus 5, Nexus 7)
  • Allow setting as default browser
  • Backup Manager (Import/Export Bookmarks,Cookies,History,Settings)
  • Proxy Support

Video demonstration: http://youtu.be/1uVjaETqmMA

0.9 Video demo: http://youtu.be/nNYjdr5tCSs

2.0 Video demo: http://youtu.be/WZXlqOrLKK8

2.0.9 Video demo: https://youtu.be/Ck2TND0-PwE

2.1.0 Video demo Backup Manager: https://youtu.be/sBge7JAlXro

Sourcecode: https://github.com/llelectronics/webcat

From Version 2.9.7 on it is recommend to use QtWebkit 5.212 in combination with Webcat. You can get builds from here: https://openrepos.net/content/llelectronicsdev/qtwebkit-5212-dev

Donations via PayPal

Application versions: 
harbour-webcat-0.8-2.armv7hl.rpm58.49 KB11/01/2014 - 19:47
harbour-webcat-0.8-3.armv7hl.rpm64.67 KB12/01/2014 - 03:14
harbour-webcat-0.8-4.armv7hl.rpm79.63 KB17/01/2014 - 01:55
harbour-webcat-0.8-5.armv7hl.rpm79.65 KB18/01/2014 - 03:09
harbour-webcat-0.9-1.armv7hl.rpm92.09 KB31/01/2014 - 23:22
harbour-webcat-0.9-2.armv7hl.rpm92.05 KB03/02/2014 - 15:02
harbour-webcat-0.9-3.armv7hl.rpm92.25 KB07/02/2014 - 13:44
harbour-webcat-0.9-4.armv7hl.rpm99.62 KB13/03/2014 - 00:20
harbour-webcat-0.9.6-1.armv7hl.rpm123.05 KB13/06/2014 - 23:31
harbour-webcat-0.9.7-1.armv7hl.rpm123.69 KB03/08/2014 - 21:13
harbour-webcat-0.9.8-1.armv7hl.rpm125.66 KB26/08/2014 - 20:29
harbour-webcat-0.9.9-1.armv7hl.rpm134.53 KB21/12/2014 - 14:41
harbour-webcat-0.9.9-2.armv7hl.rpm134.54 KB24/12/2014 - 15:03
harbour-webcat-1.0.0-1.armv7hl.rpm139.59 KB31/01/2015 - 22:23
harbour-webcat-1.0.1-1.armv7hl.rpm139.88 KB07/02/2015 - 14:41
harbour-webcat-1.0.2-1.armv7hl.rpm140.2 KB17/02/2015 - 14:12
harbour-webcat-1.9.9-1.armv7hl.rpm190.17 KB05/03/2015 - 00:28
harbour-webcat-1.9.9-2.armv7hl.rpm156 KB07/03/2015 - 00:56
harbour-webcat-2.0.0-1.armv7hl.rpm156.18 KB17/03/2015 - 15:24
harbour-webcat-2.0.1-1.armv7hl.rpm156.27 KB13/05/2015 - 17:59
harbour-webcat-2.0.2-1.armv7hl.rpm156.52 KB13/05/2015 - 23:39
harbour-webcat-2.0.3-1.armv7hl.rpm156.52 KB14/05/2015 - 12:47
harbour-webcat-2.0.5-1.armv7hl.rpm167.81 KB27/06/2015 - 11:43
harbour-webcat-2.0.5-2.armv7hl.rpm167.66 KB27/06/2015 - 13:08
harbour-webcat-2.0.7-1.armv7hl.rpm168.48 KB06/08/2015 - 20:33
harbour-webcat-2.0.8-1.armv7hl.rpm177.98 KB14/10/2015 - 18:49
harbour-webcat-2.0.9-1.armv7hl.rpm182.34 KB03/12/2015 - 20:00
harbour-webcat-2.0.9-2.armv7hl.rpm182.42 KB22/12/2015 - 17:05
harbour-webcat-2.1.0-1.armv7hl.rpm195.54 KB12/02/2016 - 19:47
harbour-webcat-2.1.0-1.i486.rpm206.11 KB12/02/2016 - 19:47
harbour-webcat-2.2.0-1.armv7hl.rpm202.02 KB05/03/2016 - 13:00
harbour-webcat-2.2.0-1.i486.rpm212.92 KB05/03/2016 - 13:00
harbour-webcat-2.2.1-1.armv7hl.rpm217.84 KB03/04/2016 - 14:28
harbour-webcat-2.2.1-1.i486.rpm228.56 KB03/04/2016 - 14:28
harbour-webcat-2.2.2-1.armv7hl.rpm218.97 KB16/05/2016 - 19:30
harbour-webcat-2.2.2-1.i486.rpm229.58 KB16/05/2016 - 19:30
harbour-webcat-2.3-1.armv7hl.rpm224.99 KB03/07/2016 - 18:50
harbour-webcat-2.3-1.i486.rpm240.86 KB03/07/2016 - 18:50
harbour-webcat-2.4-1.armv7hl.rpm230.41 KB08/12/2016 - 20:03
harbour-webcat-2.4-1.i486.rpm242.32 KB08/12/2016 - 20:03
harbour-webcat-2.5-1.armv7hl.rpm234.54 KB10/01/2017 - 13:09
harbour-webcat-2.5-1.i486.rpm246.44 KB10/01/2017 - 13:09
harbour-webcat-2.6-1.armv7hl.rpm234.73 KB09/02/2017 - 19:04
harbour-webcat-2.6-1.i486.rpm246.42 KB09/02/2017 - 19:04
harbour-webcat-2.7-1.armv7hl.rpm238.34 KB30/05/2017 - 14:42
harbour-webcat-2.7-1.i486.rpm249.41 KB30/05/2017 - 14:42
harbour-webcat-2.8-1.armv7hl.rpm267 KB24/06/2017 - 19:05
harbour-webcat-2.8-1.i486.rpm283.6 KB24/06/2017 - 19:05
harbour-webcat-2.9-1.armv7hl.rpm269.12 KB18/08/2017 - 15:22
harbour-webcat-2.9-1.i486.rpm284.82 KB18/08/2017 - 15:22
harbour-webcat-2.9.7-1.armv7hl.rpm302.86 KB21/09/2017 - 13:21
harbour-webcat-2.9.7-1.i486.rpm318.92 KB21/09/2017 - 13:21
  • Long press on close button in tabview closes all tabs
  • Hide bookmarkbutton by default only show when urlbar is focussed
  • Replace reload button in extraToolbar with closeTabButton
  • Reduce spacing between BackIcon and ForwardIcon in toolbar
  • Split Bookmarkspage in 2 columns with bookmarks on the left and tabs on the right if in landscape
  • Added optional input method by long pressing on input box (opens a native input editing dialog)
  • Updated devicePixelRatioHack
  • Enable experimental.overview to better work with devicePixelRatioHack
  • Deactivated pollyfills that aren't necessary anymore (new qtwebkit 5.212 takes care of it upgrade to it if you need svg and full es6 support)
  • Save if media in MediaList is ytMedia
  • Disable HTML5 Audio & Video workarounds (qtwebkit 5.212 takes care of html5 audio + video)
  • Enable HTML5 Audio Tag detection and add to MediaList
  • Slight update of the default user agent
  • Handle onEnterFullScreen and onExitFullScreen
  • Fix Restore Backup functionality
  • Replaced old Adblocker rules with something more recent
  • Attach to window.onload instead of overwriting it (fixes some sites like acid3 test or css3 test not loading)
  • Some DevicePixelRatioHack.js optimizations
  • Added alternative webkit user agent  (used by Sailfish Browser for youtube)
  • Updated Jolla Sailfish Browser user agent


Kabouik's picture

I'm a bit lost regarding which rpms to download for upgrading Qtwebkit. Some comments above say it should be 10.43.1 and not a newer version, but this version is not available in the link supplied.

I totally concur with Olf that a metapackage here would have been more convenient, especially as WebCat seems to perform better in all regards with this upgrade. Few people will go through the hassle of manually picking 5 rpms from a website and then manually installing them now that we are all used to using convenient stores like Storeman, and even if one wants to do it like me, it seems the right packages are not on the website anymore.

This is a pity if the best performance and functionality are to be expected with these packages. In any case, thanks again for the great work. I hope I can manage to upgrade Qtwebkit to the right version and enjoy the perfect WebCat experience.

[Edit] My bad, it seems the link in the description now points to an archive and not the list of packages seen in the comments.

llelectronics's picture

You are right. Especially as the mer obs contains sometimes only dev builds that might not even work. 

The reason I hesitated back then and also now to upload stuff here is because I fear the newer packages might be not 100% compatible. Especially when it comes to the account creation/login in settings that I cannot update test all to make sure it is working with my qtwebkit upgrade. The same goes for some other third party apps using this qtwebkit. 

So if I add those packages here it needs to be with a big fat disclaimer.

Kabouik's picture

You got my vote for packages here + scary disclaimer, that would be the most convenient I think, and it might actually be less error prone from a user point of view (no risks of installing wrong versions as Olf mentioned).

olf's picture

Kudos to llelectronics for publishing his QtWebkit 5.212 RPMs in a separate repository at OpenRepos.

@llelectronics, can you please update the link to your Mer-OBS repo in WebCat's description above with https://openrepos.net/content/llelectronics/qtwebkit-5212

llelectronics's picture


Kabouik's picture

Thanks llelectronics for putting the packages on Openrepos! I wish they could install from the Storeman or Warehouse but it seems they still have to be downloaded manually, right? At least I had to, but that might be because I already had the previous dev packages installed manually from some months ago.


Regarding the disclaimer you've put on the corresponding page:

You need to install the original packages in order to upgrade to a new SailfishOS release.

Do you think it might be the issue I'm having here (last paragraph of this post)? If so, would you mind adding in the Qtwebkit and Webcat descriptions the command lines to revert back to vanilla Qtwebkit prior to a SF upgrade?

llelectronics's picture

Yes this is the issue. Please use pkcon download foldertodownloadto packagenames 

to download the original jolla rpms and install them.

Kabouik's picture

Thanks a lot for the tip. Hope it will fix my upgrade issue. Somehow I just managed to find libqtwebkit5-5.6.2+git5-1.3.1.armv7hl.rpm and qt5-5.6.3+git2-1.3.1.src.rpm using pkcon download *qt* (or variants like *libqt*). Am I missing something? I assumed I would find 5 rpms like in the Dev version in your other package.

Sorry to discuss that here and not in the Qtwebkit comments, but this is closely related to Webcat and it will be useful to others to find the information here.

llelectronics's picture

You should find all packages. Make sure to have a fresh cache (devel-su pkcon refresh)

0rion's picture

No webbrowser on Sailfish can properly display the website http://przystanki.bialystok.pl/

I hoped Webcat could do it... :(

llelectronics's picture

Looks almost fine to me on my tablet with QtWebkit 5.212 as backend for webcat. Only the search icon is not showing up for some reason. The rest works fine though on my initial test. Or is there anything special I should test on this site? 

0rion's picture

Very strange. I checked again and I can't search in any field (search icon appears but keyboard doesn't). I mean, I can't enter for example bus stop number or street name.

Webcat 2.9.7 with default settings, Intex Aquafish, Sailfish OS

llelectronics's picture

You are right this is indeed not working. I can get to the searchbar and list but searching clears the list completely with Qt 5.212. 

So I think this website is not compatible with Qtwebkit. There is nothing I can do about it. You could report this bug to qtwebkit 5.212 itself and maybe they are able to fix it.

objectifnul's picture

How do I enable/disable javascript in webcat? Didn't see it in settings.

llelectronics's picture

It is indeed not possible as I don't offer that in settings.

Bocephus's picture

FFS, yes it's "a u", and how is that even relevant as pertains to Webcat? What's your diagnosis?

skyjumper's picture


Are you able to add cookie control? I know we can delete them, but the ability to control session and third party cookies would be great.


ps and a small thing - it should be "open a url", not "open an url"

llelectronics's picture

I currently don't see a way to distinguish between them with API QtWebkit offers.

olf's picture

"u" is a vowel, not a consonant, right?
So why should it not be "an u..."?

skyjumper's picture

That's because of the lovely intricacies of the English language. Because the U in url sounds like a consonant - y, we use "a" instead of "an".

olf's picture

So the matter of "an" vs. "a" depends on pronouncing it "yurl" or "U-R-L", right?

Well, I (long ago) learnt, that a "y" is treated as a vowel depending on its pronunciation (e.g., "year" vs. "lovely", but I cannot think of any leading "y" being pronounced "ie", thus this is a non-issue WRT "a" vs. "an"), but vowels being treated as consonants is new to me; do you have a pointer at hand for further reading on this matter?

Sorry for bugging you with such an off topic question (some friends call me "language nazi", but that is usually about expressing oneself concisely, not grammar).

skyjumper's picture

Oh I understand completely - badly worded sentences or grammer is frustrating... Have a look at this: http://www.writersdigest.com/online-editor/a-before-consonants-and-an-be... - see what you think :-)

olf's picture

Thanks, that site provides some nice distraction for the evening.  But it were rather your statements (as we both seem to be in accordance on the grammar rule), which made me reconsider the original point:

a. My initial statements were too brief and thus not concise (in thinking *and* writing). ;\  Specifically, I would / should have spelled it "an URL", denoting to address the classic TLA of "Uniform Resource Locator", which is pronounced "U-R-L".

b. Thinking about it, I realise that many tend to use "url" as a simple noun nowadays, which is pronounced "yurl", hence should be spelled as "a url".  Well, many acronyms were always handled like this, e.g. "snafu", but OTOH think of "YMCA".

I personally still tend to use style a. (and pronounce it as single letters), but ... yes, I am growing old and language is permanently evolving.  Is this line of thoughts comprehensible and does it make sense for you?

skyjumper's picture

Yeah, makes sense to me. Though I would always says the letters as compared to saying the word - that seems strange. Though "an URL" seems stranger!

olf's picture

Thanks, as your last statement ultimately made me understand, that it ought be "a U" in any case (i.e. never "an U"), as even the single letter U is pronounced "ju", right?

mr_Upolo's picture

Hello! Sometimes at surfing a part of the page doesn't display (only white background). To make the page displayed need to refresh the page, or TO OPEN BOOKMARKS AND GO BACK TO THE PAGE. How to fix this problem?

llelectronics's picture

You can't it's an issue of SailfishOS. I reported it already

mr_Upolo's picture

So... What do we do? Just to reconcile?

llelectronics's picture

I suppose the problem is with the wayland compositor. So the only thing we can do is wait and hope Jolla fixes it.

olf's picture

Well, on the technical side, the result of spending a good part of this weekend with testing is:
The HTML5 compatibility has regressed in your QtWebKit build v5.212.0-10.43.1.jolla compared to v5.6.2+git3-1.19.1 from Jolla by "-18 points" in the area of "Storage" providers and by "-1 point" in "Performance: Shared workers", according to HTML5test.com.
But the improvements are vast and impressive: An increase in the cumulative HTML5test score by 75 "points" (329 - 292 + 18 + 20, trying to take the "cheating" of Webcat 2.9-1 in the areas HTML5-Audio and -Video into account), so with "-19 points" due to aforementioned regressions, other HTML5 features were improved "by 94 points". BTW, both QtWebKit5 based web browsers for SFOS, Webcat 2.9.7-1 and the last (now unmaintained) WebPirate 2.1-3, score "329 points" with your QtWebKit 5.212.0-10.43.1 on my two Jolla 1 phones; note, that you reported "326 points", so if this has not been a typo, there is something (positively) different on my devices.
Much more importantly though, is the impact in practice: Finally I tested a couple of web pages which used to fail with Jolla's latest QtWebKit 5.6.2 build, e.g. EFF's Panopticlick: They now work well with your QtWebKit 5.212.0-10.43.1 (as with the Gecko based Jolla Browser or Firefox for Android under AlienDalvik), and specifically Webcat scores quite well on Panopticlick (in contrast to WebPirate, so here your browser makes a significant difference!).

But the big take away is IMO:
Manually downloading and installing the five RPMs is not really a feasible way to distribute QtWebKit 5.212, and keeping it up to date implies regularly visiting your Mer-OBS repository. Although I tried to be more cautious than you suggested by using pkcon install-local *webkit*.rpm, I once accidentally downloaded one out of the five RPMs at v5.6.2-10.90.1.jolla (just "mis-tapped" a single line lower or higher in the directory listing), creating a version mismatch after installing all five RPMs, which caused Webcat to crash on startup; it took a while until I had analysed this and ultimately understood what went wrong (while many may have given up in this situation). And anybody not reading your instructions carefully will download and install the newest and highest numbered RPMs available there, as I initially did.
Hence my suggestion is:
Please create two qtwebkit5-V-R.jolla.*.rpm ("V" is currently "5.212.0" and "R" "10.43.1") "meta-RPMs" for armv7hl and i486 (if "qtwebkit5" does not collide with any existing package name, otherwise pick some other name, e.g. "webkit5"), which contain nothing but dependencies on the five RPMs libqtwebkit5 libqtwebkit5-widgets qt5-qtqml-import-webkitplugin qt5-qtqml-import-webkitplugin-experimental qt5-qtwebkit-uiprocess-launcher in exactly (i.e. Requires: P = V-R in the RPM spec) their corresponding version. Then upload these six RPMs to your repository on Openrepos. Finally create a new Webcat RPM, which depends on the meta-RPM, requiring at least version 5.212.0 (i.e. Requires: qtwebkit5 >= 5.212.0) for i486 and armv7hl. This scheme (introducing one level of indirection) allows you to update QtWebKit independently of Webcat and vice versa, and easily switch to using an updated QtWebKit5 when finally distributed by Jolla, simply by updating the "meta-RPM".
As you stated, that you are expecting Jolla to integrate QtWebKit >= 5.212.0 in SFOS 2.1.4 or 2.1.5, this will take 5 to 10 months (if Jolla maintains their current release cadence), so IMHO it is definitely worth to effort, in order to provide users with an easily installable, well working and vastly improved Webcat-"experience" until then.

As you may have already derived from the increasing amount of lengthy postings here (not just mine ;) ), there are many former WebPirate users looking for an alternative (to the Jolla Browser), native web browser:
And there is only one, your Webcat!