akhodakivskiy / VimFx

Vim keyboard shortcuts for Firefox
https://addons.mozilla.org/firefox/addon/vimfx
Other
1.42k stars 174 forks source link

Fx 106.0.5: "This add-on could not be installed because it appears to be corrupt" #982

Closed Ace-Who closed 2 years ago

Ace-Who commented 2 years ago

After putting LegacyFox files in the profile folder and downloading VimFx.xpi v0.24.7, I install the add-on from the file, then Fx 106.0.5 says "This add-on could not be installed because it appears to be corrupt". Then I created a new blank profile and installed VimFx for it, the same error was reported. However, It was installed successfully on Nightly 108.

Ace-Who commented 2 years ago

Sorry, wrong step. I put LegacyFox files in to wrong folder. I'll try again.

Ace-Who commented 2 years ago

This time nothing happened, no message or error and no add-on was actually installed.


PS> cd 'C:\Program Files\Mozilla Firefox\'
PS> ls -Recurse defaults,legacy,config.js,legacy.manifest,Makefile,LICENSE,README

    目录: C:\Program Files\Mozilla Firefox\defaults

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
d-----       2022/11/10      7:03                pref

    目录: C:\Program Files\Mozilla Firefox\defaults\pref

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----       2017/10/25      9:38            245 channel-prefs.js
-a----        2022/4/29     22:15            134 config-prefs.js

    目录: C:\Program Files\Mozilla Firefox\legacy

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----        2022/4/29     22:15          11811 BootstrapLoader.jsm
-a----        2022/4/29     22:15          51603 RDFDataSource.jsm
-a----        2022/4/29     22:15           3182 RDFManifestConverter.jsm

    目录: C:\Program Files\Mozilla Firefox

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----        2022/4/29     22:15            690 config.js
-a----        2022/4/29     22:15             24 legacy.manifest
-a----        2022/4/29     22:15            497 Makefile
-a----        2022/4/29     22:15          16726 LICENSE
-a----        2022/4/29     22:15           1077 README
girst commented 2 years ago

have you looked at similar issues?

https://github.com/akhodakivskiy/VimFx/issues/956 https://github.com/akhodakivskiy/VimFx/issues/973 https://github.com/akhodakivskiy/VimFx/issues/980

try downloading the xpi from github to your downloads directory. then go to about:addons, click the gear icon and install it from there.

if that does not work, please work through the following troubleshooting steps:

then post your results.

Ace-Who commented 2 years ago

I'd read two of the issues and have read the rest one now. I downloaded the xpi file from github and installed it on about:addons page from file and failed. I created a new profile which I hadn't tried to install VimFx for, and took the troubleshooting steps:

image

image

Fx was restarted and the browser console is opened, and no error is reported.

image

Then I tried to install VimFx on about:addon. When I clicked Install Add-on From File... and opened the xpi I downloaded before, the browser console output this:

Uncaught (in promise) TypeError: (new TypeError("this.addon._repositoryAddon is undefined", "resource://gre/modules/addons/XPIInstall.jsm", 1659)) is not iterable
    init resource://gre/modules/addons/XPIInstall.jsm:2118

image

girst commented 2 years ago

The bad news is that this is a bug I haven't encoutered before. I usually test with nightly on Linux only.

The good news is: you installed legacyfox correctly. And I am able to reproduce this on linux using any localized (i.e non-english) version of firefox downloaded from mozilla. it even breaks on en_US firefox with any language pack installed (vimfx installed before adding a langpack will keep working, but even removing all langpacks will not make it possible to re-install vimfx until the whole browser profile is deleted).

I will try to find the cause for this issue, but I can't promise anything. As a workaround, you could use the en_US/english version of firefox, if that's an option to you.

girst commented 2 years ago

ok, i found the culprit, and an even easier workaround:

it's caused by the about:config preference "intl.locale.requested".

if a language pack is enabled (about:preferences -> language), it changes to a non-empty string.

on en_US firefox: deleting the pref or setting it to "" (empty string) again reverts to the default language and installation works. language packs can be reenabled afterwards.

on localized firefox: the pref does not exist, but creating it and setting it to "" keeps the default language, but vimfx installation now works.

@Ace-Who: please go to about:config, press the "i understand" button and type "intl.locale.requested" into the search box. set the check box to "string", and click create. then without typing anything klick the ok/checkmark button. vimfx installation should then work.

Ace-Who commented 2 years ago

Thanks. Wish you success. I'll keep using the en-US Nightly for a while and leave the zh-CN Firefox unchanged.

girst commented 2 years ago

more good news: the problem appears to be with vimfx's install.rdf file. i have a patch ready that would enable vimfx to work on unmodified localized firefox. can you please test the file attached?

vimfx.zip

note to self: the problem can be solved by copying <em:name> from the global <Description> section to the one in <em:localized>.

@Ace-Who: what was the last version of cn-firefox vimfx worked for you?

Ace-Who commented 2 years ago

ok, i found the culprit, and an even easier workaround: it's caused by the about:config preference "intl.locale.requested". if a language pack is enabled (about:preferences -> language), it changes to a non-empty string. on en_US firefox: deleting the pref or setting it to "" (empty string) again reverts to the default language and installation works. language packs can be reenabled afterwards. on localized firefox: the pref does not exist, but creating it and setting it to "" keeps the default language, but vimfx installation now works. @Ace-Who: please go to about:config, press the "i understand" button and type "intl.locale.requested" into the search box. set the check box to "string", and click create. then without typing anything klick the ok/checkmark button. vimfx installation should then work.

Glad to see this, I'll try it later.

Ace-Who commented 2 years ago

@Ace-Who: what was the last version of cn-firefox vimfx worked for you?

None. Because I upgraded from v56, which means the current version is my first try on a zh-CN Fx Quantum.

more good news: the problem appears to be with vimfx's install.rdf file. i have a patch ready that would enable vimfx to work on unmodified localized firefox. can you please test the file attached?

vimfx.zip

Good news here too, this patch works on my zh-CN Fx v106.0.5. It is installed successfully.

girst commented 2 years ago

thank you for your help finding and debugging this issue! i posted a new release here: https://github.com/akhodakivskiy/VimFx/releases/tag/v0.25.0

Ace-Who commented 2 years ago

My pleasure and thank you.