Jump to content

Force "multiprocess mode" in FF 52


Recommended Posts

On 5/6/2019 at 4:36 PM, win32 said:

Firefox 54 is the first multithreaded version

You can force "multiprocess mode" (aka "e10s") in Firefox 52 or @roytam1's Serpent 52 and 55, by creating the Boolean preference browser.tabs.remote.force-enable and setting it to true. This splits Firefox or Serpent into two processes.

To allow more than two, set dom.ipc.processCount to a value greater than one (i.e., setting it to 2 allows 3 processes, etc.)

Don't try this in New Moon, though; it will crash! It doesn't work in BNavigator or IceApe either; setting the above preference makes it appear to work in about:support, but Windows Task Manager nevertheless shows only one task no matter how many tabs are open. :(

Edit: Summarizing what was discovered below, this preference is required to enable e10s (multiprocess mode) in FF 52 on Windows XP. But with later Windows versions, or some other FF forks on XP (confirmed with Serpent 55), you can instead use the preferences @VistaLover recommends in the next post: toggle browser.tabs.remote.autostart from false to true, and if necessary (due to add-ons flagged as incompatible with e10s), toggle extensions.e10sBlocksEnabling from true to false.

In Chrome, each tab is a separate process; but in FF the maximum number of processes is limited by that preference. If you open more tabs than that value, tabs will begin to share processes vs. creating new processes.

Edited by Mathwiz
Add IceApe as unsupported
Link to comment
Share on other sites


21 hours ago, Mathwiz said:

You can force "multiprocess mode" in FF 52 by creating the Boolean preference browser.tabs.remote.force-enable and setting it to true.

Well, while what you suggested would indeed work for FxESR52, you need not create a new pref to initiate e10s; already existing prefs control multiprocess activation in the browser:

browser.tabs.remote.autostart;false

Toggling that pref (to true) and restarting the browser will enable e10s; in the event you have installed conflicting legacy extensions, you should also toggle (to false) the following pref:

extensions.e10sBlocksEnabling;true

(followed by a new browser restart)

21 hours ago, Mathwiz said:

This splits FF (or Serpent) into two processes.

The number of additional processes can be manually configured via the following about:config pref:

dom.ipc.processCount;1

The default value of 1 means that when e10s is enabled, one additional content process is spawned (two overall present in Task Manager); modify to 2 and you'll get three in total and so on... But the multiprocess support present in Firefox 52 (and UXP) is not that mature and increasing the value to high figures (>= 4) will probably result in adverse effects (e.g. I have experienced frequent crashes); also, the more processes you configure, the better CPU you should have (e10s works best with recent, powerful, hardware... ;) ).

21 hours ago, Mathwiz said:

(Also works in Serpent, BTW.)

JFYI, the Moonchild Productions developers are currently in the process of removing any multiprocess code still extant in their UXP code tree, as they do not endorse e10s; Pale Moon never supported e10s, the same fate awaits official Basilisk (and hence Serpent 52.9.0); this is being tracked in UXP issue #953

 

Edited by VistaLover
Corrected the bit about the "extensions.e10sBlocksEnabling" pref
Link to comment
Share on other sites

Well just as an experiment I tried setting all these settings in Firefox 52.9.1 ESR -

browser.tabs.remote.force-enable = true
browser.tabs.remote.autostart = true
(The setting browser.tabs.remote.autostart.2 is also set to "true")
extensions.e10sBlocksEnabling = true
dom.ipc.processCount = 1

I've still only got one process in Task Manager, no matter how many tabs I have open!
I realise this is actually off-topic, but i just wondered if I'm doing something wrong, or (very likely) I've fundamentally misunderstood something!
:dubbio:

Edited by Dave-H
Typo
Link to comment
Share on other sites

6 hours ago, Dave-H said:

I realise this is actually off-topic

Good. So, now that I gave it it's own topic, I hand to you the task of giving it a proper title (unless you think the one I gave it is good enough). :P

Link to comment
Share on other sites

@Dave-H Hi, I hope you had a nice Bank Holiday Monday!:)

> The setting browser.tabs.remote.autostart.2 is also set to "true"

Is that pref in bold? I don't have it currently in my FxESR 52.9.1 (32-bit) (buildID=20180905233201) copy; reset the pref and it should go away with the next restart...

> dom.ipc.processCount = 1

That should be the default setting (not in bold)

> browser.tabs.remote.force-enable = true

You don't need that new pref per se, when existing prefs are set correctly; please, for the time being, reset it (and it should go away with the next restart)

> browser.tabs.remote.autostart = true

The default value is false, so if you've toggled it to true, the whole pref line should be in bold

> I've still only got one process in Task Manager, no matter how many tabs I have open!

Please load about:support and scroll a bit down to "Application Basics => Multiprocess Windows"

It should report "1/1 (Enabled by user)"; if not, please post the exact message; if it's extensions related, I fear you fell prey to a blunder I committed in my previous post (now corrected!).

When one (or more) of installed legacy extensions are not MPC-compatible, they'll block electrolysis (multiprocess mode, usually abdreviated to e10s), and a new pref will be created

extensions.e10sBlockedByAddons;true

To negate that pref you should set extensions.e10sBlocksEnabling to false

Always restart the browser after modifying any process related pref

Disclaimer: Force-enabling e10s when incompatible extensions are installed and active may introduce some instability to the browser behaviour; YMMV... Inside your Firefox ESR profile directory there should be an .ini file called extensions.ini ; with the browser closed, open it with a proper text editor and check whether a section labelled [MultiprocessIncompatibleExtensions] exists (if yes, it should contain a list of incompatible addon IDs; you can use the Extensions section of about:support page to identify the offending addons and you should probably disable them while conducting multiprocess experiments in your browser)...

Cheers :)

Link to comment
Share on other sites

5 hours ago, VistaLover said:

JFYI, the Moonchild Productions developers are currently in the process of removing any multiprocess code still extant in their UXP code tree, as they do not endorse e10s; Pale Moon never supported e10s, the same fate awaits official Basilisk (and hence Serpent 52.9.0); this is being tracked in UXP issue #953

I rather expected that. Without WE API support (which PM never had and was infamously removed from Basilisk), there's no way to write many complex add-ons in a way that will work with e10s. (AIUI that's one of the reasons the WE API set was created in the first place.) Thus, e10s is less useful with Basilisk than Serpent (which retains WE APIs), so it makes sense that MCP would want to yank out that code too.

We might prevail on @roytam1 to retain e10s in Serpent, as he did with WE APIs, but the former is less important than the latter. E10s mostly just helps to avoid running out of RAM when opening lots of tabs in the 32-bit version of FF/Serpent. (It also makes the browser a bit more responsive, but that may not make enough difference to even notice.)

2 hours ago, Dave-H said:

Well just as an experiment I tired setting all these settings in Firefox 52.9.1 ESR -

browser.tabs.remote.force-enable = true
browser.tabs.remote.autostart = true
(The setting browser.tabs.remote.autostart.2 is also set to "true")
extensions.e10sBlocksEnabling = true
dom.ipc.processCount = 1

I've still only got one process in Task Manager, no matter how many tabs I have open!

My off-hand guess would be that you have an add-on that's incompatible with e10s, so the highlighted pref is preventing it from starting.

AIUI, WE add-ons are inherently compatible, but legacy add-ons are only compatible under certain conditions, so the developer has to explicitly flag e10s-compatible legacy add-ons.

You could flip the pref to false just to see - it's possible the "incompatible" add-on(s) are actually e10s-compatible; but weren't tested under e10s, so the developer(s) didn't flag them as such.

Or the whole thing could come crashing down. If that happens you'll have to start in safe mode and flip the pref back to true.

2 hours ago, dencorso said:

So, now that I gave it it's own topic, I hand to you the task of giving it a proper title (unless you think tho one I gave it is good enough).

Thanks! I expected my post to be a one-off, as I only meant to mention an alternative for folks wanting a way around the 2GB barrier but worried about Chrome 360 spying on them - but the post sort of took on a life of its own! :blushing: Sometimes that happens, I guess....

Link to comment
Share on other sites

Thanks guys, and thanks @dencorsofor the new thread!
I checked the configuration details and it said "0/1 (Disabled by add-ons)".
So, I changed extensions.e10sBlockedByAddons to "false".
It now says "0/1 (Windows XP)".
I still have only one process!
browser.tabs.remote.autostart.2 is in bold and set to "true"
dom.ipc.processCount isn't in bold, and set to "1"
I've reset browser.tabs.remote.force-enable
browser.tabs.remote.autostart is in bold, and set to "true"

:dubbio:

Link to comment
Share on other sites

1 hour ago, Dave-H said:

I checked the configuration details and it said "0/1 (Disabled by add-ons)".

I feared as much... As I wrote in my previous post, you should also set

extensions.e10sBlocksEnabling;false

1 hour ago, Dave-H said:

browser.tabs.remote.autostart.2 is in bold and set to "true"

... but I told you to RESET that and restart the browser!

1 hour ago, Dave-H said:

It now says "0/1 (Windows XP)".

This is quite ominous; it might indicate that the Mozilla devs have excluded Firefox installations on XP from being able to activate their e10s support the standard way; after searching Bugzilla for related bugs, I think I found it:

[e10s] Block e10s on Windows XP

1 hour ago, Dave-H said:

I've reset browser.tabs.remote.force-enable

Given that e10s is being blocked on XP, the only way to enable it (under XP) is to force-enable it, like @Mathwiz suggested:

https://wiki.mozilla.org/Electrolysis#Force_Enable

Quote

If you've tried enabling e10s following the instruction above, but your about:support indicates that e10s is disabled (e.g., accessibility, add-ons can trigger this), you can force e10s on for testing purposes. Within about:config create a new boolean pref named browser.tabs.remote.force-enable and set it to true. This is not encouraged, use it at your own risk!

Hopefully, after a full browser restart, it'll work; if it isn't, I'm out of ideas TBH; but people on XP have indeed managed to make it work:

http://wp.xin.at/archives/4103

(scroll down to chapter 2, Electrolysis / e10s; but don't use as high a process number (16) as in that article!)

(More reading material: https://www.ghacks.net/2016/07/22/multi-process-firefox/ )

Cheers

Edited by VistaLover
Link to comment
Share on other sites

1 hour ago, Dave-H said:

browser.tabs.remote.autostart.2 is in bold and set to "true"

I also had browser.tabs.remote.autostart.2 user set to "true," on two different installations of Serpent.

I suspect I inadvertently copied it from my Firefox 52 profile. I reset it on both Serpent installations; resetting it seems to have had no effect, so I don't know why it was ever there in the first place.

Link to comment
Share on other sites

2 hours ago, Dave-H said:

I checked the configuration details and it said "0/1 (Disabled by add-ons)".
So, I changed extensions.e10sBlockedByAddons to "false".
It now says "0/1 (Windows XP)".

Wow - that sounds as if FF 52 specifically blocks e10s on WinXP!

To be fair, I've always enabled e10s on FF 52 by creating the browser.tabs.remote.force-enable Boolean preference and setting it to true, which bypasses all sanity checks. Sort of the "if it jams, force it" approach ;)

But I tried @VistaLover's way, and it works with Serpent 55 on WinXP.

Haven't tried it with FF or St 52 on XP yet. I'll do that tomorrow if I have time.

Edit: Well, that's what I get for responding before reading the full thread. @VistaLover beat me to it. Oh, well....

Edited by Mathwiz
Link to comment
Share on other sites

28 minutes ago, Mathwiz said:

I also had browser.tabs.remote.autostart.2 user set to "true," on two different installations of Serpent.

I suspect I inadvertently copied it from my Firefox 52 profile.
(snipped)
so I don't know why it was ever there in the first place.

... For those with a curiosity to learn the finer details, here it goes:

While browser.tabs.remote.autostart is currently the main pref that controls e10s activation in Firefox, at an older time when the feature was being developed (particularly in the Aurora/Devedition and Nightly branches) the Mozilla devs had introduced two related prefs to control e10s activation: 

browser.tabs.remote.autostart.1
browser.tabs.remote.autostart.2

so that they (the devs) could enable themselves e10s (when a user updated the browser build) on controlled user groups; telemetry would then inform the devs of the performance of the e10s code on said client machines... Those prefs would "ride the trains" (Mozilla speak for migrating code from Nightly -> Aurora -> Beta -> Release branches) all the way down to stable Firefox builds, where they would simply not work anymore as originally designed, since e10s activation had, by then, been delegated to only the main pref, browser.tabs.remote.autostart. The following screengrab is from one of the last Nightly 53.0a1 builds that would run on Vista:

bYsV1Wl.jpg

Config Descriptions v1.0.1-signed.1-signed is installed, so that about:config "Source Comments" are made visible...

So the browser.tabs.remote.autostart.2 pref in FxESR 52.9.0 is just vestigial code from previous developmental stages, harmless on its own... As we know, @Mathwiz did plant over his FxESR 52 profile on both Serpent 52 & Serpent 55 (which it was discussed in another thread some weeks ago as not being the proper/smartest way of doing things), so that is indeed how that pref, unrelated to Basilisk/Serpent, found its way there... ;)

Link to comment
Share on other sites

Sorry I had to go to bed yesterday before responding to the last few messages.

I now have -

browser.tabs.remote.force-enable = no longer present
browser.tabs.remote.autostart = true (in bold)
browser.tabs.remote.autostart.2 = no longer present
extensions.e10sBlocksEnabling = false (in bold)
dom.ipc.processCount = 1 (not in bold)

The Multiprocess Windows troubleshooting entry still says "0/1 (Windows XP)".

Still only one process in Task Manager.
So, am I onto a loser here?
:(
 

Link to comment
Share on other sites

@Dave-H; it looks as if you'll have to put browser.tabs.remote.force-enable back in. Make it Boolean and set it to true. Apparently this doesn't work on XP unless you force it. Edit: I just confirmed this on my own copy of FF 52. If you don't have browser.tabs.remote.force-enable set to true, FF won't start e10s on WinXP.

23 hours ago, VistaLover said:

The number of additional processes can be manually configured via the following about:config pref:

dom.ipc.processCount;1

The default value of 1 means that when e10s is enabled, one additional content process is spawned (two overall present in Task Manager); modify to 2 and you'll get three in total and so on.

Note: that pref appears to to have no effect in St 55. I always get 2 processes on XP and 3 on Win 7, regardless of how it's set.

On FF/St 52 it appears to be a maximum. If you set it to, say, 2, you don't get 2 extra processes (3 total) immediately after starting the browser, but you will once you open up a second tab (not including about: tabs).

Edited by Mathwiz
Link to comment
Share on other sites

33 minutes ago, Dave-H said:

So, am I onto a loser here?

Kindly (re-)read my detailed instructions (again) in my previous post HERE ;)

I think it's all been explained in a clear, easy to follow, fashion...

Link to comment
Share on other sites

I have a few add-ons flagged as incompatible with e10s:

  • Classic Add-Ons Archive (works anyway, via a kludge, but you have to edit a .js file and remove the check for Waterfox first, otherwise it will just display a message telling you to turn e10s off when you click its icon; note that doing this invalidates it signature so you also have to set xpinstall.signatures.required to false to run it with this edit)
  • Classic Theme Restorer (works anyway AFAICS)
  • Version in Add-On Bar (works anyway AFAICS)
  • IE Tabs 2 (rarely used; I set up a "single-process mode" profile with e10s disabled for those rare cases)
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...