Enable extensions process unconditionally in GeckoView
Categories
(GeckoView :: Extensions, task, P3)
Tracking
(Not tracked)
People
(Reporter: robwu, Unassigned)
References
(Blocks 3 open bugs)
Details
The extensions.webextensions.remote pref (controlling out-of-process extensions) is currently true by default on all desktop Firefox builds and Thunderbird. It is also true in Fenix on Android (bug 1867597). The pref being false (meaning: extensions run in the main process) is not really supported (bug 1613141).
But the pref is still false by default in GeckoView and Android-Components (including non-Fenix apps such as Focus and Reference Browser).
More details: https://bugzilla.mozilla.org/show_bug.cgi?id=1535365#c22
There are a number of issues with extensions that are resolved when the extension process is enabled. Ideally GeckoView (and Android-Components) should default to run with out-of-process extensions enabled by default. I have linked some dependencies that have been marked as resolved because the flag defaults to true on Fenix, but these issues still occur on non-Fenix Android apps.
Comment 1•1 year ago
|
||
Is there a need to flip this pref or could it just be removed? If you remove it, then you'll have remote WebExtensions everywhere and no work will need to be done in GeckoView or GeckoView consumers, right?
| Reporter | ||
Comment 2•1 year ago
|
||
(In reply to Markus Stange [:mstange] from comment #1)
Is there a need to flip this pref or could it just be removed?
The only potential use case with positive user impact is conserving resources when a mobile product does not generally support third-party add-ons. For example, Firefox Focus does not support third-party add-ons, but some built-in components are implemented as an extension, and if we run them in the parent process, there is less overhead (at the expense of a larger browser process). I've mentioned this in https://bugzilla.mozilla.org/show_bug.cgi?id=1535365#c22 (linked from the bug report).
Another use case for the pref is to debug issues specific where toggling out-of-process extensions can change the behavior. But if this were to be the only use case, I'd be fine with dropping support for in-process webextensions.
If you remove it, then you'll have remote WebExtensions everywhere and no work will need to be done in GeckoView or GeckoView consumers, right?
Yep. One clear benefit of removing is lower maintenance cost in this area, because it is a configuration to not account for.
P.S. For context, I referenced this bug in a review comment on a patch (D245637) for bug 1960752 (relating to bug 1958327).
Description
•