Flypig's gecko dev diary

Hello @flypig, a merry Christmas to you. Also to all the other followers of your daily Pentagon.
I really like reading your stories in the morning. I wouldn’t know where to start with the different layers of code you’re diving into, but it reads like an adventure.
So on one hand: please keep them coming. And on the other: I’m wishing you to reach the final day of this work SOON!


Hello flypig,
I just read this morning’s post where you solved the pdf printing (hurray!) I remarked to my wife about the digging into this long, long list of threads: where to start?
After some more explanation she yells: “Who wants hidden browser tabs?”
And in fact, couldn’t these be misused at some point?
Kind regards, Rob


You have a very smart wife :smiley: I think she’s quite right that there are risks here. I’m fairly certain that at the moment the only way to create one of these hidden tabs is by setting the hidden flag deep inside the C++ code, and right now this only happens for windows with the isForPrinting flag set like this:

  const bool isForPrinting = aOpenWindowInfo->GetIsForPrinting();

  mChild->CreateWindow(parentID, reinterpret_cast<uintptr_t>
      (parentBrowsingContext.get()), aChromeFlags, isForPrinting,
      &createdID, aCancel);

That’s an internal flag that external JavaScript has no control over, so the only situation in which one will be created is for printing. But you (your wife) has raised a good point and I’ll dig a bit more into it in an upcoming post. I should check whether it’s really the case that nothing else can create these hidden windows. Thanks for the helpful input @rob_kouw!


Todays blog strikes home really close. My work produces such testing challenges at times and man do I feel your frustration, when it takes forever to find the culprit. It will show itself in the end, I’m sure of it!


I am one of those who read your gecko dev diary. I have one idea on the blank page. For me this happens on amazon Germany’s product detail pages. The workaround which works on ESR78 is to unlock orientation (I always lock it to portrait) and flip the phone from portrait mode to landscape mode.


I can confirm having the same experience on Amazon.


Me too, Xperia 10iii on latest “vanilla” sfos (no patches or anything fancy).

1 Like

Reading your last post I was wondering if Firefox remote debugging could somehow get to work with sailfish-browser? Unfortunately my attempts (via about:config) failed so far. But maybe someone else knows some more tricks?

user_pref("", true);
user_pref("devtools.debugger.remote-enabled", true);
user_pref("devtools.debugger.prompt-connection", false);

and then some sources claim you need to add --start-debugger-server and a port (this would obviously need to be implemented for sfos-browser…)

and finally you could connect using about:debugging from desktop to debug what’s happening on the phone.


Thanks for all of the super-useful feedback. I’ve commented on both the Amazon issue and remote debugging in the blog, although I’ve not yet done them justice, but will return to them. This is all really useful input.


Finally remembering to post thoughts i have accumulated after the last weeks of following the blog:
Have you tried with a wildly different User Agent override for DucDuckGo, like iPhone or something?
The hanging parallel compile - could that be related to some syscall that gets used in synchronization, but which is stubbed in sb2?


The syscall sounds like a very plausible reason; llvm is very picky w/r to them…the problem being that pinpointing the syscall will not be too straightforward…I had a similar issue back in the days when compiling llvm for the x86_64 target,
and finding the correct spot took alot of effort and tracing…perhaps the best would be to see if theres a test suite for sb2 to be run on the aarch64 arch and take it from there. Though I recall sb2 was not too easy to work with…shrughs

1 Like

@flypig can we get a build of the browser somewhere to collect sites that are not working? Maybe it helps to find other pages.


I wonder if Firefox ESR 91 and Firefox ESR 78 behave the same way with DuckDuckGo as Browser does…


Can’t wait to see this improved browser :smile: just hearing esr91 feels good

1 Like

I tried to run them a few weeks ago but failed.
Maybe the easiest thing would be to simply replace the binary…

someone already tried that?

1 Like

I think the suggestion of having a build that people can use to find problem sites is a great idea. Unfortunately it’s quite intrusive as there’s no way to install it alongside the default browser.

I can’t think of a cleaner way than replacing all of these packages:


If anyone is up for giving it a go I could put together some instructions. But I absolutely wouldn’t recommend doing this on a daily device I’m afraid.


Broken browser is something we got used to but keep in mind that you won’t be able to read mails while you have a non-matching version installed.

Do we actually need a phone though? Would the i486 build actually work in the emulator?

I looked at the broken ddg and dev console on desktop said

Laden fehlgeschlagen für das <script> mit der Quelle "".

and this file actually displays xml content:

<Message>Access Denied</Message>

Is that an artifact of your cloning or possibly the actual problem?


I am avaible to help the testing, no problem in reflashing if something get broken :wink: so count me in


@flypig (perhaps) silly suggestion that came to mind : have you tried the ESR-78 User agent on the ESR-91 build yet (when querying Duckduck go)?

The browser rendering pipeline is different on the emulator, so I think it won’t work there yet unfortunately (@piggz tried it on a native port which has a similar pipeline to the emulator, but the results weren’t good).

Thanks for flagging this; it was a mistake I made during cloning which completely changes the rendering. It might also hint that the locale has something to do with ESR 91’s rendering problems with DDG. But that needs a bit more investigation. Thanks for this input @simonschmeisser; really helpful stuff.

Thank you @Valorsoguerriero97! I’ll try to get some installable packages and instructions worked out (it might take some time; please bear with me).

Not a silly question at all. It is something I tried and while it doesn’t fix it alone, as I’ve written about today, it is at part of the problem!

Thanks all for this great input.