Gecko esr91 work (former "Flypig's gecko dev diary")

Until parallel builds start working, there is not all that much that it would do. Single core performance peaks already in stuff you can readily have at home.

1 Like

Did you already test the build using the updated compiler stack of 4.6? Perhaps there are performance improvements or parallel builds are working now.

Hm 10x faster compilation would probably have been … 15 days faster? Probably half the frustration during development…?
unfortunatley thats nothing i can help with…

Hm.

In theory something like a “sccache cluster” could be built, with people contributing storage and computation power.

But in practice I guess latencies over the internet will offset any gains.

Also, setting it up and getting it to work reliably is likely not exactly trivial.

Still, maybe coderus’ docker build containers could be extended to include an sccache client setup, flypig could run a server, and users who want to contribute could fire up said Docker.

Or something.

EDIT: Huh, it would appear icecream which is a related/similar tool has support for OBS (or the other way around). Interesting. So maybe once the “cluster” mentioned above is there, it could be used by a simple ‘osc build’…

1 Like

My understanding is that most of the build is single threaded. So a laptop build of 8 hours may be halved by a nitrogen cooled destkop, overclocked, but not more…

First of all, @flypig congratulations for cracking the WebView rendering! I can only imagine the weight lifted when you got the page rendering the first time!

To everyone asking, the build is single-threaded, because cargo build hangs almost every time if it uses anything above -j 1 in SB2 (see e.g. this old post). It is however possible to configure the Rust project(s) single-threaded (see The Cargo Book) but that would introduce yet another patch to the mix. I haven’t tried compiling the browser with all its bells and whistles for a long time, and this week is crammed already…

3 Likes

Thank you for taking on such a challenging task. Should you succeed and reach a milestone you feel is worth celebrating, please send me a private message with an address and your drink of choice, and I will post it to you free of charge.

5 Likes

Happy to see such great news after your hard work. Your diary is an good lesson in “Never give up”.

And what is a hot, dazzling, lazy summer afternoon :sunny: :beach_umbrella: against a good fix of a thrilling crash :beetle: ?

1 Like

I’ve read your latest blog post, @flypig. Congratulations to you for your achievements!
You are doing a really great job! Thanks a lot for your efforts!

You wrote that it might be time to build installable packages for the very brave amongst us. Will you provide some rpms?

4 Likes

Thanks for all of your support here; it really motivates me to persevere. Thank you especially for all of your kind offers to buy me a drink (@rob_kouw, @gabrigubin, @Firefox84, @lukas_jolla2015, @cypherpunks). The fact you offer is a big motivation and if we find ourselves at a Sailfish event together I’ll happily take you up on it! But honestly, everyone here has been super-generous with comments and offers to help and I very much appreciate it.

To @jauri.gagarin.II and others who asked for installable packages, I’ll try to make something available. Following @rainemak’s suggestion at the latest community meeting I’m hoping it can be built on OBS so that all the dependant packages can be offered together.

I’ll be sure to post here when there’s news on this.

29 Likes

Very nice recent achievements. All pieces seem to fall down into places. Of course, with a large help from your side ! Congratulations.

8 Likes

Dear @flypig, I and many others are very grateful that you have tackled this big task. I think this closes a big gap for many towards native apps only.

There was a question in the English Telegram channel about the possibility of opening tabs in the background. This does not seem to be implemented at the moment. Someone suggested to ask you: do you see a way to implement this after the bugs are fixed? Is it purely a UI thing? Or is there something that needs to be implemented in the background?

8 Likes

Dear @flypig, I would be very happy to use a new browser with a cover which does not change with the content.
(You could show one of these nice AI generated flying pigs, for instance.)

Of course, in the meantime I’ll be practising my patience. No rush. Amazing what you solved during this project anyway.

Good luck with this hanging cover!

3 Likes

I agree, it’s a low-down priority. But getting it working on Sailfish OS 4.6 is a bit more critical and sadly that’s not quite there yet. Thanks for being so patient. And that applies to everyone, I know how frustrating it must be having to wait.

Thanks for your kind words @jauri.gagarin.II and sorry for not replying sooner. As far as I’m aware you’re correct that this isn’t currently possible. It’s possible to have hidden tabs which don’t appear at all (although they can’t be triggered by websites) and based on my experience of those, I’d say background tabs wouldn’t be too hard to implement. Do you know if there’s a standard way to do this using JavaScript on other browsers? When it came up in discussion, was there a particular use case in mind?

5 Likes

I believe that is something that is implemented on the UI/Settings side in all browsers, and there is no way for a website or URL to control this.

Mozilla uses the browser.tabs.loadInBackground and browser.tabs.loadDivertedInBackground preferences AFAIK.

One use case (for me) is while reading a page (lets say an article) which includes links for more information. I want to finish reading the article even if some of the links are interesting.

In an ideal “open in background tab” world, I could just click links as they appear, continue reading the original page, and later go on to already-loaded pages from the opened links.

Currently, I have the option to either open such links in a new (foreground) tab,
disrupting my reading flow (and potentially even causing a reload or re-layout of the original page when I go back to it), or finish reading the original article and then go back up to find the links again.

(Foreground tabs have the additional issue that you have to wait for them to begin loading before you can switch away from them.)

Another use case is search result lists, where you also maybe want to open a couple of them in the background and revisit them later.

12 Likes

Opening a link to a new background tab is a feature I’ve thought of too.

My desktop browser use case is opening a news site and opening selected news articles to background tabs, and then close the news site. Then I just read an opened article and close it until there’s no more opened articles left. (Middle-click the links, and then scroll-and-close until done.)

That is my best knowledge too. This is entirely an UI / user thing as far as I know. There’s <a target="_blank|_top|_parent|_self" but that doesn’t take foreground/background into account - the page silently opening a new background tab is something that should not be allowed (unlike pop-up windows, selectively).

Great work getting audio and video working and especially tracking down the crash! Reading the blog has become a morning routine for me - I’m afraid I’ll have to find something else to replace it in near future :wink:

6 Likes

Happy anniversary :partying_face:
I should have posted it 2 days ago…

5 Likes

@flypig for the rust versioning;
see Initial implementation of `up-streamer-rust` by PLeVasseur · Pull Request #8 · eclipse-uprotocol/up-streamer-rust · GitHub
file Cargo.toml line 19

you can actually pin the toolchain version on rust workspaces…saved me really alot of headaches :slight_smile:

3 Likes

Thank youvfor considering this :slight_smile:

Regarding the standard way, I really have no idea. Fortunately there are people like @nephros and @direc85 around, who know more about this than me :slight_smile:
And they already covered both of my use cases for opening tabs in background.

2 Likes

Thank you for the great bug hunting these days. Your diary shows the energy needed to finish such a work.

When you create test packages will you also provide a package for Sailfish webview embedded in normal apps?

2 Likes