Force installed extensions in FF 115 ESR not auto updating when Firefox update is disabled (windows group policies)
Categories
(Toolkit :: Add-ons Manager, defect, P3)
Tracking
()
People
(Reporter: bugzilla, Unassigned)
Details
User Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36 Edg/122.0.0.0
Steps to reproduce:
Set user based windows group policies for Firefox using latest admx files from mozilla:
DisableAppUpdate=true
ExtensionSettings={"*":{"installation_mode":"blocked"},"{3bdedc7b-4521-44e0-bffe-519f60814d95}":{"installation_mode":"force_installed","updates_disabled":"false","install_url":"https://addons.mozilla.org/firefox/downloads/latest/password-safe-browser-add-on/latest.xpi","default_area":"navbar"}}
ExtensionUpdate=true
user agent string: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/115.0
Actual results:
Firefox ESR extensions are not auto updating
Expected results:
Even if Firefox ESR own update mechanism is disabled (because it is being updated by centralized software update mechanisms), (force) installed extensions should be auto updated.
Comment 1•9 months ago
|
||
The Bugbug bot thinks this bug should belong to the 'Toolkit::Application Update' component, and is moving the bug to that component. Please correct in case you think the bot is wrong.
Comment 2•9 months ago
|
||
I think it probably makes more sense to have the extensions folks look at this.
Comment 3•8 months ago
|
||
Hello,
Would you be able to provide the exact admx file you are currently using and also mention the location where it should be? Thank you !
I tried using the policy information from Comment 0 and set a local policy via the distribution
folder in the browser installation folder, however the policy is not recognized. I’m not sure I’ve set it up correctly.
Thank you for your reply. I'm using these policy templates: https://github.com/mozilla/policy-templates/releases/download/v5.8/policy_templates_v5.8.zip
The content of the included windows folder has to be placed into C:\WINDOWS\PolicyDefinitions folder. Then you can open gpedit.msc and configure the following settings:
Administrative Templates (Users)/Mozilla/Firefox/Disable Update = enabled
Administrative Templates (Users)/Mozilla/Firefox/Extensions/Extension Update = enabled
Administrative Templates (Users)/Mozilla/Firefox/Extensions/Extension Management = {"*":{"installation_mode":"blocked"},"{3bdedc7b-4521-44e0-bffe-519f60814d95}":{"installation_mode":"force_installed","updates_disabled":"false","install_url":"https://addons.mozilla.org/firefox/downloads/latest/password-safe-browser-add-on/latest.xpi","default_area":"navbar"}}
Your windows registry keys then look like this:
[HKEY_CURRENT_USER\Software\Policies\Mozilla\Firefox]
"DisableAppUpdate"=dword:00000001
"ExtensionUpdate"=dword:00000001
"ExtensionSettings"=hex(7):7b,00,22,00,2a,00,22,00,3a,00,7b,00,22,00,69,00,6e,
00,73,00,74,00,61,00,6c,00,6c,00,61,00,74,00,69,00,6f,00,6e,00,5f,00,6d,00,
6f,00,64,00,65,00,22,00,3a,00,22,00,62,00,6c,00,6f,00,63,00,6b,00,65,00,64,
00,22,00,7d,00,2c,00,00,00,22,00,7b,00,33,00,62,00,64,00,65,00,64,00,63,00,
37,00,62,00,2d,00,34,00,35,00,32,00,31,00,2d,00,34,00,34,00,65,00,30,00,2d,
00,62,00,66,00,66,00,65,00,2d,00,35,00,31,00,39,00,66,00,36,00,30,00,38,00,
31,00,34,00,64,00,39,00,35,00,7d,00,22,00,3a,00,7b,00,22,00,69,00,6e,00,73,
00,74,00,61,00,6c,00,6c,00,61,00,74,00,69,00,6f,00,6e,00,5f,00,6d,00,6f,00,
64,00,65,00,22,00,3a,00,20,00,22,00,66,00,6f,00,72,00,63,00,65,00,5f,00,69,
00,6e,00,73,00,74,00,61,00,6c,00,6c,00,65,00,64,00,22,00,2c,00,22,00,75,00,
70,00,64,00,61,00,74,00,65,00,73,00,5f,00,64,00,69,00,73,00,61,00,62,00,6c,
00,65,00,64,00,22,00,3a,00,20,00,22,00,66,00,61,00,6c,00,73,00,65,00,22,00,
2c,00,22,00,69,00,6e,00,73,00,74,00,61,00,6c,00,6c,00,5f,00,75,00,72,00,6c,
00,22,00,3a,00,20,00,22,00,68,00,74,00,74,00,70,00,73,00,3a,00,2f,00,2f,00,
61,00,64,00,64,00,6f,00,6e,00,73,00,2e,00,6d,00,6f,00,7a,00,69,00,6c,00,6c,
00,61,00,2e,00,6f,00,72,00,67,00,2f,00,66,00,69,00,72,00,65,00,66,00,6f,00,
78,00,2f,00,64,00,6f,00,77,00,6e,00,6c,00,6f,00,61,00,64,00,73,00,2f,00,6c,
00,61,00,74,00,65,00,73,00,74,00,2f,00,70,00,61,00,73,00,73,00,77,00,6f,00,
72,00,64,00,2d,00,73,00,61,00,66,00,65,00,2d,00,62,00,72,00,6f,00,77,00,73,
00,65,00,72,00,2d,00,61,00,64,00,64,00,2d,00,6f,00,6e,00,2f,00,6c,00,61,00,
74,00,65,00,73,00,74,00,2e,00,78,00,70,00,69,00,22,00,2c,00,22,00,64,00,65,
00,66,00,61,00,75,00,6c,00,74,00,5f,00,61,00,72,00,65,00,61,00,22,00,3a,00,
20,00,22,00,6e,00,61,00,76,00,62,00,61,00,72,00,22,00,7d,00,7d,00,00,00,00,
00
To test the non-working update functionality, you probably have to replace the install_url with a link to latest.xpi on your own webserver so you can update that file there without changing the policy setting. All versions can be downloaded from https://addons.mozilla.org/de/firefox/addon/password-safe-browser-add-on/versions/
Comment 5•8 months ago
|
||
Hi Mike, would you mind to take a look into this issue?
In particular we were wondering if there is any expected relationship betwen the "Firefox/Disable Update" and the "Firefox/Extensions/Extension Update" policy settings.
Comment 6•8 months ago
|
||
The bug is in the Extension Settings policy that was written:
"updates_disabled":"false"
should be
"updates_disabled": false
"false" is interpreted as being a truthy string by:
if (Services.policies.getExtensionSettings(this.id)?.updates_disabled) {
I'll make the docs more clear.
(In reply to Mike Kaply [:mkaply] from comment #6)
The bug is in the Extension Settings policy that was written:
"updates_disabled":"false"
should be
"updates_disabled": false
"false" is interpreted as being a truthy string by:
if (Services.policies.getExtensionSettings(this.id)?.updates_disabled) {
I'll make the docs more clear.
Thank you for your detailed feedback regarding this setting. But even when not using setting "updates_disabled" at all (thus using the standard setting = false), the extensions are not auto updating. I think the main problem here is that setting ExtensionUpdate=true is conflicting with setting DisableAppUpdate=true and the last one wins. Could this be possible?
Comment 8•8 months ago
|
||
How are you verifying that updates aren't happening?
Here's what I did. I used the following policies.json:
{
"policies": {
"DisableAppUpdate": true,
"ExtensionSettings": {
"*": {
"installation_mode": "blocked"
},
"{d634138d-c276-4fc8-924b-40a0ea21d284}": {
"installation_mode": "force_installed",
"updates_disabled": false,
"install_url": "https://addons.mozilla.org/firefox/downloads/file/4232852/1password_x_password_manager-2.20.2.xpi",
"default_area": "navbar"
}
},
"ExtensionUpdate": true
}
}
which deliberately installed an older version of one password.
I then went to the addons manager, selected the settings icon and clicked "check for updates" and the extension was updated.
(In reply to Mike Kaply [:mkaply] from comment #8)
How are you verifying that updates aren't happening?
Here's what I did. I used the following policies.json:
{ "policies": { "DisableAppUpdate": true, "ExtensionSettings": { "*": { "installation_mode": "blocked" }, "{d634138d-c276-4fc8-924b-40a0ea21d284}": { "installation_mode": "force_installed", "updates_disabled": false, "install_url": "https://addons.mozilla.org/firefox/downloads/file/4232852/1password_x_password_manager-2.20.2.xpi", "default_area": "navbar" } }, "ExtensionUpdate": true } }
which deliberately installed an older version of one password.
I then went to the addons manager, selected the settings icon and clicked "check for updates" and the extension was updated.
This is correct: manually triggering the "check for updates" works as expected. But I expect Firefox to automatically update the installed extensions without any user interaction. What also indicates that extension auto updating is disabled is when clicking the settings icon in addons manager the check mark next to "update add-ons automatically" is missing with this configuration.
Don't get me wrong: I'm questioning the described behavior of Firefox for large enterprise usage - not for home usage. Enterprise usage means updating Firefox via software deployment tools and force installing several extensions via group policy. Disabling Firefox own update service is then applied via group policy but still expecting the installed extensions updating automatically anyway.
Comment 10•8 months ago
|
||
The severity field is not set for this bug.
:rpl, could you have a look please?
For more information, please visit BugBot documentation.
Comment 11•8 months ago
|
||
Mike, is it expected that the policies defined in Comment 9 only allow manual updates (with the "check for updates" button in about:addons
)? I am wondering if DisableAppUpdate
is somehow disabling the timer or something along those lines, which would explain why (1) manual updates of the add-on with id {d634138d-c276-4fc8-924b-40a0ea21d284}
works but (2) it doesn't automatically get updated. Thoughts?
Comment 12•8 months ago
|
||
(In reply to William Durand [:willdurand] from comment #11)
I am wondering if
DisableAppUpdate
is somehow disabling the timer or something along those lines
I don't believe that we do anything like this. The DisableAppUpdate
policy's only direct affect is to cause Services.policies.isAllowed("appUpdate")
to return false
. This is mostly used to control nsIApplicationUpdateService.disabled
as well as some telemetry and UI stuff that should probably be changed to use nsIApplicationUpdateService.disabled
as well. We don't make any changes involving UpdateTimerManager
whatsoever when this policy is active. We just bail out immediately when the timer fires.
I'll leave the needinfo for mkaply just in case he has anything to add.
Comment 13•8 months ago
|
||
There is definitely no expectation addon automatic updates would be disabled. And as Robin said, app updates shouldn't affect this.
I have this on my list of things to investigate deeper. Was planning to look next week.
What's the best way to trigger automatic updates for testing?
Comment 14•7 months ago
|
||
Needinfo-ing Wlliam as a reminder to answer mkaply question from comment 13.
Comment 15•7 months ago
•
|
||
I would either set the extensions.update.interval
pref to a lower value (in seconds) or run some code snippet to check for updates manually in the browser console:
{
const { AddonManagerPrivate } = ChromeUtils.importESModule(
"resource://gre/modules/AddonManager.sys.mjs"
);
AddonManagerPrivate.backgroundUpdateCheck();
}
Comment 16•6 months ago
|
||
Hi Mike, we are moving this bug to the "Toolkit :: Add-ons Manager" bugzilla component while we are still investigating it to decide if this should be tracked on the Addon Manager or Enterprise Policies bugzilla components.
We would like to set a priority for this investigation too, in your opinion should this be a P2 or can it be a P3?
Updated•6 months ago
|
Description
•