Since you’re blocking Mozilla domains, my first thought was that it might have to do with the automatic malware checks for downloaded files. But the knowledge base article says it only checks executables, and it doesn’t sound like it tries to contact a Mozilla server either.
But yeah, maybe you want to try turning that off in the settings for debugging either way.
The other suspicion is immediately Snap, primarily because I’ve seen quite some brokenness from Snap Firefox already.
You can try downloading the non-Snap version from the webpage directly: https://www.mozilla.org/en-GB/firefox/all/desktop-release/linux64/
That’ll give you a .tar.bz2
, which you just unpack and run the firefox
binary inside.
If it works there and you want to permanently switch, you probably want to use Mozilla’s APT repo: https://support.mozilla.org/en-US/kb/install-firefox-linux#w_install-firefox-deb-package-for-debian-based-distributions-recommended
Yep, some code examples from the official documentation. This:
printPersons( roster, (Person p) -> p.getGender() == Person.Sex.MALE && p.getAge() >= 18 && p.getAge() <= 25 );
…is syntactic sugar for this:
interface CheckPerson { boolean test(Person p); } printPersons( roster, new CheckPerson() { public boolean test(Person p) { return p.getGender() == Person.Sex.MALE && p.getAge() >= 18 && p.getAge() <= 25; } } );
…which is syntactic sugar for this:
interface CheckPerson { boolean test(Person p); } class CheckPersonEligibleForSelectiveService implements CheckPerson { public boolean test(Person p) { return p.gender == Person.Sex.MALE && p.getAge() >= 18 && p.getAge() <= 25; } } printPersons(roster, new CheckPersonEligibleForSelectiveService());
The
printPersons
function looks like this:public static void printPersons(List<Person> roster, CheckPerson tester) { for (Person p : roster) { if (tester.test(p)) { p.printPerson(); } } }
Basically, if you accept a parameter that implements an interface with only one method (
CheckPerson
), then your caller can provide you an object like that by using the lambda syntax from the first example.They had to retrofit lambdas into the language, and they sure chose the one hammer that the language has.
Source: https://docs.oracle.com/javase/tutorial/java/javaOO/lambdaexpressions.html