The default bug view has changed. See this FAQ.

Set extensions.systemAddon.update.url to enable system add-ons infrastructure for Fennec

NEW
Unassigned

Status

()

Firefox for Android
General
a year ago
a month ago

People

(Reporter: mconley, Unassigned)

Tracking

(Blocks: 1 bug)

Firefox Tracking Flags

(Not tracked)

Details

The system add-ons infrastructure that's used to ship Hello and Pocket in Firefox for Desktop is also available to Fennec, and was designed with Fennec as a potential consumer.

Apparently, in order for a system add-on to be shipped for Fennec, it's necessary to point extensions.systemAddon.update.url at an appropriate URI endpoint that advertises potential updates to system add-ons. If the pref is not set, XPIProvider.jsm assumes that system add-ons are not being used.

Desktop sets this to https://aus5.mozilla.org/update/3/SystemAddons/%VERSION%/%BUILD_ID%/%BUILD_TARGET%/%LOCALE%/%CHANNEL%/%OS_VERSION%/%DISTRIBUTION%/%DISTRIBUTION_VERSION%/update.xml, and I wonder if that's sufficient for Fennec as well.

The reason why I'm advocating the enabling of this infrastructure is for the FlyWeb team, who are hoping to ship some experimental UI for FlyWeb (preffed off by default to start). This allows them to focus on developing the UI while keeping it isolated from the Fennec core front-end team.
Blocks: 1228662
Hey Mossop, how was the endpoint that serves up https://aus5.mozilla.org/update/3/SystemAddons/%VERSION%/%BUILD_ID%/%BUILD_TARGET%/%LOCALE%/%CHANNEL%/%OS_VERSION%/%DISTRIBUTION%/%DISTRIBUTION_VERSION%/update.xml for desktop set up, and do you think we'd need to do anything special for Fennec? Or can we just point Fennec at this and close this out?
Flags: needinfo?(dtownsend)
(In reply to Mike Conley (:mconley) - Needinfo me! from comment #1)
> Hey Mossop, how was the endpoint that serves up
> https://aus5.mozilla.org/update/3/SystemAddons/%VERSION%/%BUILD_ID%/
> %BUILD_TARGET%/%LOCALE%/%CHANNEL%/%OS_VERSION%/%DISTRIBUTION%/
> %DISTRIBUTION_VERSION%/update.xml for desktop set up, and do you think we'd
> need to do anything special for Fennec? Or can we just point Fennec at this
> and close this out?

Not sure, does OS_VERSION allow us to distinguish between Firefox and Fennec? Bhearsum can probably help better here.
Flags: needinfo?(dtownsend) → needinfo?(bhearsum)
(In reply to Dave Townsend [:mossop] from comment #2)
> (In reply to Mike Conley (:mconley) - Needinfo me! from comment #1)
> > Hey Mossop, how was the endpoint that serves up
> > https://aus5.mozilla.org/update/3/SystemAddons/%VERSION%/%BUILD_ID%/
> > %BUILD_TARGET%/%LOCALE%/%CHANNEL%/%OS_VERSION%/%DISTRIBUTION%/
> > %DISTRIBUTION_VERSION%/update.xml for desktop set up, and do you think we'd
> > need to do anything special for Fennec? Or can we just point Fennec at this
> > and close this out?
> 
> Not sure, does OS_VERSION allow us to distinguish between Firefox and
> Fennec? Bhearsum can probably help better here.

Technically yes...but it's probably not a good way of doing it. The kindof filtering we have on OS Version is designed to deal with OS deprecation, not routing requests -> responses. There's two better ways of doing this:
1) Use a unique %PRODUCT% (eg: FennecSystemAddons). This would mean we have a parallel set of rules/releases for Fennec.
2) Use the same product, but distinguish by %BUILD_TARGET%. Balrog delegates %BUILD_TARGET% into the Releases, so you can do platform-specific things in there. Eg, this is the current SystemAddons blob we're using to ship Loop: https://gist.github.com/bhearsum/9fe0b8b99392008ef377. We could change these Releases to have all of the Fennec+Firefox SystemAddons, and use the Build Targets to ship the right things to the right apps.

I'd recommend #2 if we expect that Firefox and Fennec are going to ship System Addon updates at the same time. If not, the parallel set of rules makes it much easier to ship per-app SystemAddon updates.
Flags: needinfo?(bhearsum)
Talked to bhearsum IRL, and #2 sounds like a fine choice to start with.

TL;DR, putting https://aus5.mozilla.org/update/3/SystemAddons/%VERSION%/%BUILD_ID%/%BUILD_TARGET%/%LOCALE%/%CHANNEL%/%OS_VERSION%/%DISTRIBUTION%/%DISTRIBUTION_VERSION%/update.xml as the value for extensions.systemAddon.update.url in mobile.js should be fine.
Blocks: 1265442
You need to log in before you can comment on or make changes to this bug.