Regression: installing addons at least from the web (AMO) is now broken in mozprofile (ABICT)

NEW
Unassigned

Status

Testing
Mozbase
5 years ago
3 years ago

People

(Reporter: Jeff Hammel, Unassigned)

Tracking

Firefox Tracking Flags

(Not tracked)

Details

(Reporter)

Description

5 years ago
So this used to work:

(mozmill)│mozprofile -a
https://addons.mozilla.org/firefox/downloads/latest/1191/addon-1191-latest.xpi
/tmp/tmpS5RNrb.mozrunner
(mozmill)│ls /tmp/tmpS5RNrb.mozrunner
extensions  prefs.js  user.js
(mozmill)│ls /tmp/tmpS5RNrb.mozrunner/extensions/
staged
(mozmill)│ls /tmp/tmpS5RNrb.mozrunner/extensions/staged/
(mozmill)│

Now I get a staged directory with nothing in it :(  Not sure if this
was a platform change that we didn't keep up with, or the web factor,
or what.  Just noticed that it was broken.

So step one is figuring out what is broken and why.

Step two is fixing it ;) (Probably not *that* hard)

Step three is writing tests to ensure that this doesn't happen again.
Hi, I give that a try. There is another error now (on master, and mozprofile 0.23):

mozprofile -a https://addons.mozilla.org/firefox/downloads/latest/1191/addon-1191-latest.xpi
Traceback (most recent call last):
  File "/home/jp/dev/mozregression/venv/bin/mozprofile", line 9, in <module>
    load_entry_point('mozprofile==0.22', 'console_scripts', 'mozprofile')()
  File "/home/jp/dev/mozregression/venv/lib/python2.7/site-packages/mozprofile-0.22-py2.7.egg/mozprofile/cli.py", line 112, in cli
    profile = cli.profile()
  File "/home/jp/dev/mozregression/venv/lib/python2.7/site-packages/mozprofile-0.22-py2.7.egg/mozprofile/cli.py", line 87, in profile
    return self.profile_class(**kwargs)
  File "/home/jp/dev/mozregression/venv/lib/python2.7/site-packages/mozprofile-0.22-py2.7.egg/mozprofile/profile.py", line 72, in __init__
    self._internal_init()
  File "/home/jp/dev/mozregression/venv/lib/python2.7/site-packages/mozprofile-0.22-py2.7.egg/mozprofile/profile.py", line 101, in _internal_init
    self.addon_manager.install_addons(self._addons, self._addon_manifests)
  File "/home/jp/dev/mozregression/venv/lib/python2.7/site-packages/mozprofile-0.22-py2.7.egg/mozprofile/addons.py", line 174, in install_addons
    self.install_from_path(addon)
  File "/home/jp/dev/mozregression/venv/lib/python2.7/site-packages/mozprofile-0.22-py2.7.egg/mozprofile/addons.py", line 322, in install_from_path
    path = self.download(path)
  File "/home/jp/dev/mozregression/venv/lib/python2.7/site-packages/mozprofile-0.22-py2.7.egg/mozprofile/addons.py", line 114, in download
    raise AddonFormatError('Not a valid add-on: %s' % url)
mozprofile.addons.AddonFormatError: Not a valid add-on: https://addons.mozilla.org/firefox/downloads/latest/1191/addon-1191-latest.xpi

This is not web related, if I download the file and run "mozprofile -a addon-1191-latest.xpi", I see an error too:

mozprofile -a addon-1191-latest.xpi 
mozprofile.addons WARNING | Could not install addon-1191-latest.xpi: 'NoneType' object has no attribute 'childNodes'
/tmp/tmpjWB2Zl.mozrunner

First, I wonder if the addon is a valid one ? If it is, it appears that we are trying to use a description variables here that is None, and that should be fixed I suppose:

https://dxr.mozilla.org/mozilla-central/source/testing/mozbase/mozprofile/mozprofile/addons.py#293
If it turns out that the download-from-amo functionality is broken, I think this bug should just be morphed into "remove all code related to downloading addons". I'm not aware of it being used anywhere.

But I wouldn't be surprised if you find many other bugs along the way, the mozprofile addon code is in need of much love :).
You need to log in before you can comment on or make changes to this bug.