Closed Bug 857458 Opened 7 years ago Closed 8 months ago

Remove support for update.rdf

Categories

(Toolkit :: Add-ons Manager, defect, P1)

defect

Tracking

()

RESOLVED FIXED
mozilla67
Tracking Status
firefox67 --- fixed

People

(Reporter: Unfocused, Assigned: aswan)

References

(Blocks 1 open bug)

Details

Attachments

(1 file)

Currently, the Add-ons Manager uses nsIRDFService to read update manifests (update.rdf) - we'd like to kill that with fire. However, we can't just drop support for update.rdf. Instead, I'd like to move to using the RDF reader JSM that bug 857454 will implement.
Depends on: 357276
No longer depends on: 857454
Summary: Use RDF reader module for reading update.rdf manifests → Use RDF reader module for reading update.rdf manifests, or convert them to JSON
:mak, it seems like we can close this now that we only support web extensions. Is that correct?
Flags: needinfo?(mak77)
I'm pretty sure AMO still serves update manifests as rdf, even for webextensions.
Flags: needinfo?(mak77)
This one is tricky.  We support both rdf and json for updates.  There's an immediate dependency on AMO to get it to serve updates as json.  But we also document the rdf update format for extension developers so we need to give them some notice if we're going to take it away.
I think we talked about this earlier but I can't find the bug.  In any case, Jorge, can we make it deprecated an announce an intent to remove it in some specific release (say 60 just to pull something out of thin air?)
Flags: needinfo?(jorge)
(In reply to Eric Rahm [:erahm] (please no mozreview requests) from comment #1)
> :mak, it seems like we can close this now that we only support web
> extensions. Is that correct?

Regardless, once AMO is fixed, we should also remove the add-ons code that uses nsIRDFService and some tests could have to rewritten or removed.
(In reply to Andrew Swan [:aswan] from comment #3)
> This one is tricky.  We support both rdf and json for updates.  There's an
> immediate dependency on AMO to get it to serve updates as json.  But we also
> document the rdf update format for extension developers so we need to give
> them some notice if we're going to take it away.
> I think we talked about this earlier but I can't find the bug.  In any case,
> Jorge, can we make it deprecated an announce an intent to remove it in some
> specific release (say 60 just to pull something out of thin air?)

59 might make more sense so that it corresponds with the next ESR.
Moving AMO to use the JSON update format is not a priority at the moment, and Firefox 59 is too soon. I'll try to get this in for H1 2018, but unless there's some urgency to get this done sooner I can't make any promises.
Flags: needinfo?(jorge)
One thing we could do earlier is show a warning in the console when an RDF update happens (except for AMO). That will reach developers more effectively than any comms we put out, since these are all unlisted add-ons we're talking about.
That log will show to the end users of the add-ons not the developers (unless they test their add-on updates). Since at least all the add-ons come through AMO we could try hitting the end point specified in the add-on as it gets signed and seeing what format it is.
(In reply to Jorge Villalobos [:jorgev] from comment #6)
> Moving AMO to use the JSON update format is not a priority at the moment,
> and Firefox 59 is too soon. I'll try to get this in for H1 2018, but unless
> there's some urgency to get this done sooner I can't make any promises.

Eric might feel differently but this is about a chunk of obsolete bloat that we would like to remove from the browser.  That's never really going to something we can realistically call "urgent" but its an ongoing tax.  If I do the addons-server patches can we do this soon or is there another bottleneck like QA or something?
Flags: needinfo?(jorge)
> That log will show to the end users of the add-ons not the developers (unless they test their add-on updates)

We encourage devs to always test their add-ons with the console open. But I suppose it's a stretch to expect them to test their updates in the same way.

> If I do the addons-server patches can we do this soon or is there another bottleneck like QA or something?

It's not just a matter of changing to the new format. We'll probably need to support both formats for some time, to support older clients, and that means we'll need to add client detection and figure out what its performance impact will be. And sure, this needs lots of QA since add-on updates are a critical feature.
Flags: needinfo?(jorge)
(In reply to Jorge Villalobos [:jorgev] from comment #10)
> > If I do the addons-server patches can we do this soon or is there another bottleneck like QA or something?
> 
> It's not just a matter of changing to the new format. We'll probably need to
> support both formats for some time, to support older clients, and that means
> we'll need to add client detection and figure out what its performance
> impact will be. And sure, this needs lots of QA since add-on updates are a
> critical feature.

The JSON format has been supported since Firefox 45 (see bug 1214058), given that webextensions were pretty primitive back then and AMO no longer accepts updates to legacy extensions, I think we can just make a clean switch.  So sorry to keep nagging on this but in light of the above, if I write the addons-server patches, can we make time in the QA schedule to push this out soon-ish?
Flags: needinfo?(jorge)
> I think we can just make a clean switch

Sorry, but this is not a decision that we're going to make lightly. I understand the value of getting rid of RDF, and agree it should happen sooner rather than later, but I'm not going rush this through.
Flags: needinfo?(jorge)
I filed an issue to investigate the clean switch option: https://github.com/mozilla/addons-server/issues/6612
Summary: Use RDF reader module for reading update.rdf manifests, or convert them to JSON → stop supporting update.rdf
This is becoming increasingly problematic to maintain. We need to remove support for non-restartless add-ons before we can start working on things like supporting async startup and shutdown of bootstrap operations. At the moment, that requires majorly reworking a bunch of tests that currently need to support both RDF and JSON update formats.
Assignee: nobody → kmaglione+bmo
Priority: -- → P1
Summary: stop supporting update.rdf → Remove support for update.rdf
Blocks: 1460180
Is this a duplicate of fixed bug 857456?
Assignee: kmaglione+bmo → aswan
Status: NEW → RESOLVED
Closed: 8 months ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla67
Depends on: 1525886
Flags: needinfo?(aswan)
You need to log in before you can comment on or make changes to this bug.