107 comments

[ 3.0 ms ] story [ 148 ms ] thread
As much as I like Firefox. It is now on a cross road.

For debugging development purposes I am keeping a version now for older dev plugins that never got a proper replacement, and aren't compatible with the newer API and newer will be (because the API is so much less powerful, good for noobs / bad for power user).

And I can't wait until Servo gets more stable and feature complete. I am thinking about a Vivaldi browser like HTML5 based UI based on Servo web engine, instead of blink - that would be the ideal next-gen Firefox reboot! (Firefox/Firebird/forgotthename was initially a leaner fork of the "bloated" MozillaSuite, in the meantime Firefox got so much more bloated than the still maintained MozillaSuite (now called SeaMonkey, based on recent gecko engine)).

My Pale Moon (Linux) clocks in at around 200Mb less than latest Firefox. It's faster, too. And runs the addons I want it to run. Not going back.
How well is Pale Moon patching disclosed Firefox vulnerabilities?
Probably not as well as a whole, large, dedicated corporation-like setup a la Mozilla.

On the other hand, it's not moving absurdly fast and breaking things as a matter of policy like recent Firefox is.

With sensible browsing habits and a very conservative use of js, I'm confident enough, day to day.

I expect very well. The devs are VERY security focused if you spend time reading their changelogs.
> I can't wait until Servo gets more stable and feature complete

Parts of Servo are being migrated to Firefox. IIRC, Quantum Compositor, mentioned in the blog post, is one of them - you can start using it today!

http://jensimmons.com/post/jan-4-2017/replacing-jet-engine-w...

Quantum Compositor is just a separate process for GPU stuff. It isn't ported from Servo.
It's the same name as the Servo porting project. I could see that creating the separate process is a first step and involves no Servo code as of yet, but how do you know either way?
mccr8 is a Mozilla engineer.
It's literally ported from Servo.

> The goal of the Quantum Render project is to take the WebRender compositor in Servo and embed it in Firefox

https://wiki.mozilla.org/Platform/GFX/Quantum_Render

That's Quantum Render, not Quantum Compositor.
The meaning of "Quantum" is a bit confusing. I thought it was only Servo ports, but after I read your post I looked around and found this. I guess it's any improvement to Gecko?

"Quantum has a number of components, including several adopted from the Servo project."

https://medium.com/mozilla-tech/a-quantum-leap-for-the-web-a...

Quantum is the umbrella, if you will, under which a bunch of performance focused subprojects are being developed. Some of them (Quantum Render, Quantum CSS) are importing Servo components (WebRender and Stylo, respectively), while others (Quantum DOM, Quantum Compositor, Quantum Flow) are serious surgery on existing Gecko components.
Flow root. How did that take so long to become available?
Thank god that we get masks on the internet in 2017 and must not wait 10 years more ;)

Many bloated png can now retire.

Firefox and Chrome shipped it today: http://caniuse.com/#feat=flow-root

...and now begins the indeterminate wait for Edge and Safari :)

Looks like Chrome 58 also shipped today.
Hey, you're right! Editing the above comment. Thanks :)
I expect edge to have it by next iteration not sure about safari.
Whenever a new Firefox release drops, my favorite thing to do is to see if this (now ten-year-old) bug [0] is finally fixed.

Spoiler: it isn't.

This bug (and many others similar to it) are one of the main reasons I dislike using Firefox. It just feels out of place on macOS. I'm fine with non-native UI elements as long as they're not elements as fundamental as the select dropdown and the right-click menu.

Edit: Turns out this bug has been fixed, but only if you have Electrolysis [1] enabled [2].

[0] https://bugzilla.mozilla.org/show_bug.cgi?id=402625

[1] https://wiki.mozilla.org/Electrolysis

[2] https://bugzilla.mozilla.org/show_bug.cgi?id=402625#c32

Your standard of quality is whether a web page looks like it's not a web page?
The standard of quality is if you can build applications that behave as if they were native with a browser.

Considering stuff like Electron and co, that's not an unusual request.

Do people actually make web pages that try to look native to the OS they're loaded on? That is a lot of effort to reimplement GUI toolkits and I can't think of anything I've seen that does it.

I'd say the real way to look native in firefox involves XUL, even if it is getting removed.

Well, considering the web is replacing native toolkits more and more, there better be, eh?

Either you can build something looking native in the web languages, or Electron and co habe failed already.

My favorite thing is coming to the HN threads to read the "tried it out to see if <personal hangup re: obscure app feature 6 people use> is fixed (meaning works the way I want it to work) but it's not, therefore the entire project A SHIT" posts.

The fact that this one then acknowledges that the bug is actually fixed if you use the browser in the recommended mode gives it extra points.

Electrolysis isn't enabled by default, so I don't think it qualifies as "the recommended mode".

Furthermore, I never said "the entire project is shit". Firefox is a great piece of software, but I don't use it personally because of the issue I mentioned, among other issues in the same category (like the right-click menu looking different compared to other right-click menus, or not integrating with the macOS spell-check system).

Electrolysis has been enabled by default since Firefox 48. Source: https://wiki.mozilla.org/Electrolysis#Schedule.
> As of Firefox 54+ (early 2017), our Multi-Content process model is currently being tested on Nightly (4 processes). Four content processes will be enabled on 54 Aurora and if stable enough, we will begin to roll it out in Firefox 54 Beta experiments.

This seems to be the case because I downloaded Firefox 53 for the first time on my new MacBook Pro and e10s wasn't enabled. I had to go to about:config and enable it manually.

You may have an extension blocking it. Get the addon compatability plugin.
Firefox 52 shipped with e10s enabled by default for all users except those who are on Windows XP, have a windows machine with a touchscreen, or have extensions that are not compatible with e10s. It uses one browser UI process and one web content process.

Firefox 54 has e10s-multi, with multiple web content processes.

If you go to about:support in your Firefox 53, the "Multiprocess Windows" item in the first section ("Application Basics") should tell you why e10s is disabled for you, if it's disabled.

The only thing it says for me is "0/1 (Disabled)". [0]

Edit: Ah, so this is weird. It looks like e10s isn't enabled when you first run Firefox. You need to quit, and then relaunch. On the second launch e10s is then enabled. This explains why I thought it was disabled by default (since it was my first time running Firefox on this machine).

[0] https://gist.github.com/dstaley/b17ce52947cf520ca793d545daee...

"Disabled" means there was an explicit pref set to disable it.

I can't tell from over here what preferences you changed and in what order and when. You said "I had to go to about:config and enable it manually"... did you restart after that? e10s pref changes require a restart to take effect. What was the state of the preferences before you did that, if you remember?

In any case, glad to hear it's working for you now.

(comment deleted)

  Electrolysis isn't enabled by default
It is enabled by default, you just may have a plugin installed that is blocking it. The plugin(s) could be multiprocess compatible but unmaintained and missing the multiprocess=true flag in its package.json.

You can go to about:support to see if multiprocess is truly enabled. If not, go to about:addons and start disabling extensions until it does work.

I love the compact themes - it always unreasonably annoyed me how much vertical space the browser chrome "wastes"!
(comment deleted)
I love it too, excellent feature!
I switched to Chrome in 2016 because I needed to easily switch between multiple profiles. With Firefox I have to launch with a command line switch. :(
You should check out Container tabs in Firefox: https://wiki.mozilla.org/Security/Contextual_Identity_Projec.... It's like per-tab profiles, no need for multiple copies of the browser, etc. Totally changed the way I deal with sites I need multiple accounts for (like AWS).

You can use Containers in Nightly or via the Containers Testpilot experiment here: https://testpilot.firefox.com/.

disclaimer: I work for Mozilla

I love it although now that I have a Mozilla employee here I should mention that:

- it seems to be missing features when running with Tab Tree

- the ux of Mozilla vertical tabs experiment is weird and IMO bad. And I rarely complain about UX. The problem is: the tab bar goes up on the side of the awesomebar and slides it back and forth as the tab panel expands and goes back.

I have reported this but so far nobody seems to care.

Another small thing: I more or less love Firefox in general <3

> and slides it back and forth as the tab panel expands and goes back.

There's a "pin" button there that keeps it open. I know, this doesn't fix your problem, but I and everyone I've seen using it uses the pin button, and IMO it's a much better experience :) I've noticed that on most high-end laptops websites have way too much blank space on the side margins so pinning a useful tab bar in that space works fine.

(comment deleted)
> the ux of Mozilla vertical tabs experiment is weird and IMO bad ... the tab bar goes up on the side of the awesomebar and slides it back and forth as the tab panel expands and goes back.

Yeah this seems really whack. I like what Safari did: they have a left sidebar with several tabs (favorites, reading lists, shared links). Having these independent sliding spaces overloaded in the same area is clumsy.

The problem though is there is UI hierarchy between tabs and something in the sidebar like bookmarks. I can't think of a good way to place these relative to each other to impart that relationship, which is probably why they are independent for now. Hopefully they do something about that though.

Tab Tree and TST just place them left or right of the content.

This might not be perfect for what I know but at least it doesn't move the majority of the browser controls around.

Containers are awesome and very easy to use compared to profiles.

I'm guessing that Chrome might not want to make such a powerful pro-privacy feature available to the masses, so this could be a good way for Firefox to distinguish itself.

As you're already here, when can we expect Firefox to...

(a) read QT_SCREEN_SCALE_FACTORS to do per-screen dpi scaling on Linux? Currently there's an old-style extension to read this, and scale the browser accordingly, but with WebExtension only, I'd be stuck with a browser that's always the wrong scale.

(b) support hardware video decoding on Linux? Currently I use a plugin to force Firefox to use VLC to handle HTML5 video, wherever possible, so I can get fluent video - with WebExtension, this won't be possible, and CPU-decoding of HTML5 video eats over 5-10% of CPU even on an i7-6700 with a 4K video. On laptops, it's almost unusable.

(c) How long do you expect it to take until we can customize the entire browser chrome with HTML, CSS and JS again? XUL will be gone, but with Browser.html, and competing browsers such as Vivaldi, these things are possible easily. As we're already on that topic...

(d) as you don't seem to be willing to implement Tab Previews in the browser itself, when can we expect a WebExtension API to do so ourselves? In old-style extensions it is possible, but this breaks with WebExtension.

i have so been needing this! no more opening new windows, private windows, and new browsers with private windows to test multiple user scenarios. [thumbsup emoji]
Which means you edit the shortcut once and leave it that way forever. You don't have to use a command line.
You might want to take a look at the profilist extension
Update: I installed profilist and now I learned that I have to reinstall extensions on a per-profile basis. boo hoo :(
Still no hardware accelerated video for Linux :(

Everytime Firefox releases something I am reminded of this:

https://xkcd.com/619/

I wonder if this is why battery and heat are so bad with Firefox on my Ubuntu 16.04 box? I've switched away to chromium because of the sheer difference in battery drain.

(And no, it's not a plugin that's causing the problem)

Are you letting random advertising Javascript run? I don't. Noscript disables most of that. My experience is that Chrome uses more battery than my Firefox, by a lot. Of course, Chrome is what I use when I just want a site to work, not have to wonder if I turned on enough Javascript.
If you watch a lot of Youtube, force the video to MP4 so your graphics card can decode it in hardware. Youtube defaults to VP9 but gfx cards rarely support that codec.

Google's wasting a lot of battery life by pushing VP9 onto everyone.

How do you do that?
You don't. The person that wrote that is mistaken. Hardware video decoding on Linux is not implemented.
Hardware video decoding does not work in linux period. It doesn't matter whether you play an mp4 or vp9 video.
Not sure what you mean by that.

It's true that Chrome/Chromium don't support it. [0]

Linux itself certainly supports it [1], and at least Mozilla have some progress towards it happening [2][3][4], if slow progress.

However, we used to have hardware video decoding via gstreamer and VLC within Firefox as plugins, using VAAPI and NPAPI, so it's still possible to get working today.

[0] https://bugs.chromium.org/p/chromium/issues/detail?id=463440

[1] https://wiki.archlinux.org/index.php/Hardware_video_accelera...

[2] https://bugzilla.mozilla.org/show_bug.cgi?id=563206

[3] https://bugzilla.mozilla.org/show_bug.cgi?id=1210729

[4] https://bugzilla.mozilla.org/show_bug.cgi?id=1210726

Right, this explains why my laptop has been running at a steady 85c the last few days, back to chrome for a bit then.
You can easily force enable it. But the stability varies wildly with hardware. My iGPU works good, my NVIDIA 920m works good but the old AMD 5750HD causes crashes.

Go to about:config and set: layers.acceleration.force-enabled to true.

BUG REPORT: https://bugzilla.mozilla.org/show_bug.cgi?id=594876

Nope, that's hardware accelerated layers and compositing.

Video is always decoded on CPU on Linux. Always. Eating, at 4K, around 5-10% on an i7-6700.

On a smaller laptop, this can eat an entire core, and make the browser close to unusable.

Reminds me of https://stackoverflow.com/questions/23289157/how-to-use-hard....

The entire Linux graphics stack is fragmented and makes things worse for both users and developers.

The entire Linux world is fragmented. Luckily, things are getting better with systemd, wayland, etc, aiming to provide a simple and standardized way to interface with some parts of the system for developers.
On my laptop, Firefox cannot play any youtube video at the default resolution. Have to manually set it to 360p.
its not just that video is CPU decoded, MPV preforms massively better on slower systems, even with software only decoding.

Its just plain slower code for whatever reason

(comment deleted)
Both Firefox and mpv use the same decoder for Youtube (ffvp9). With accelerated layers forced on and fullscreen, you should see roughly comparable performance. For windowed, it's currently expected to be somewhat more taxing than mpv because all of the extra window contents are composited every frame.
I'm not at all convinced about making the general user choose between 32- and 64-bit versions at installation, given that even techies disagree on the relative merits [1]. (Sometimes with themselves [2].)

If the system only supports one or the other, the installer should be able to work that out. If it supports both, the installer should at least give some hints as to what the tradeoffs are.

[1] https://blogs.msdn.microsoft.com/ricom/2015/12/29/revisiting...

[2] https://blogs.msdn.microsoft.com/ricom/2016/01/04/64-bit-vis...

The bitness choice (and that entire screenshotted dialog) is only present if you select "Advanced Options" in the bottom left of the installer's first screen, it's not something that we force every user through.
Ah, OK, that makes more sense. Thanks.

What's the default if you don't select "Advanced Options", btw?

We're still defaulting to 32-bit on systems where both are supported, but we hope to default to 64-bit around Firefox 55. We had to delay this due to issues with Flash, sandboxing, and Farmville 2: https://bugzil.la/1317995

The tracking bug for making 64-bit the default is https://bugzil.la/1340936

So I can blame Farmville for Firefox not being 64-bit by default on Windows? :)
I dislike how the JIT don't comply with Windows x64 SEH requirements anyway. As a side note, I fixed NSS: https://bugzilla.mozilla.org/show_bug.cgi?id=1284375
Yuhong, is there a bug filed for the x64 SpiderMonkey JIT issues? What is the side effect of not following the x86-64 ABI for JIT code?
SEH exception handling don't work properly and debuggers don't show a proper callstack. For it to work properly, the JIT has to generate "function tables" to allow Windows to do stack walking.

  The storage.sync API allows add-ons to 
  save user preferences to Firefox Sync, 
  where it can be shared and synchronized 
  between devices.
Now all Chrome Extensions automatically work on Firefox.
That's fairly nice now Firefox extensions stopped working in Firefox.
Legacy Firefox extensions still work in this release, it is 57 that will be WebExtension-only.
(comment deleted)
And, as always, I just added Firefox 53 to Browserling. You can try this new version at this URL without installing or updating it:

https://www.browserling.com/firefox/53/news.ycombinator.com

I've a bunch of VMs available for free testing. If there are too many people wanting to try it, then you'll have to wait in a queue for a few minutes.

This site is really cool! I work on browsers and often need to test things in IE (to see how behavior of a web feature differs across browsers) and hate booting up VMs :)
just fyi you can access the filesystem with file:/// URLs, and I was able to run arbitrary programs.
Yup. That's a feature. Run any app on any platform in your browser. That's where I'm taking Browserling. We've a bunch of users already running all kinds of software in their browsers so rather than restricting VMs, I'm opening them up. These are throw away VMs anyway, once the session is up, VM is gone.
Ah, back in the day I had Netscape setup to launch exes in DOSEmu.
You can use old unpatched versions of Firefox...
Most of the Safari versions are broken because your URL route mechanism is not prepending "http://" to the front of the URL.
In the same vein, Windows users can grab the portable version of Firefox 53 and use it without needing to install it, without needing admin rights, and without interfering with a different version installed within Windows:

https://portableapps.com/apps/internet/firefox_portable

In addition to the stable channel, you can grab beta, dev, nightly, and esr and automatically update them within the PortableApps.com Platform. We also have all old major versions of it available on our SourceForge project. They're all free and fully open source.

Ha, what unexpected Rickroll! :D
Oh no! That actually should've worked as described (not auto-playing until you switch tabs), but it looks like auto-play suppression is in 54, not 53. Sorry :( https://bugzil.la/1308154
When is it coming to Linux? And is it going to use Vulkan eventually?

  Media playback on new tabs is blocked until the tab is visible
^^ That feature was in the Beta release notes but didn't seem to make it into 53 release...disappointing because it appears to work great in Beta/Developer Edition. Can anyone from Mozilla explain why it was scrapped?
Best feature for me is the themes from developer edition, so now I can finally stop using the the developer edition just for the themes
Beat me to it! The light and dark themes are each so clean and minimal
All along there was an extension called "Developer Edition Theme Enabler" that you could have used :)