5digits / dactyl

Pentadactyl and other related Gecko extensions
Other
468 stars 98 forks source link

Broken in Firefox 48 #168

Closed wshanks closed 7 years ago

wshanks commented 8 years ago

As reported in #99, Pentadactyl does not start up in Firefox 48 any more. Here is the console output when you enable it:

1467641520319 addons.xpi WARN Error loading bootstrap.js for pentadactyl-signed@willsalmanj.github.com: TypeError: can't convert undefined to object (resource://gre/modules/addons/XPIProvider.jsm -> jar:file:///home/user/.mozilla/firefox/mxcy0c1o.tmpbeta/extensions/pentadactyl-signed@willsalmanj.github.com.xpi!/bootstrap.js:20:1) JS Stack trace: @resource://gre/modules/addons/XPIProvider.jsm -> jar:file:///home/user/.mozilla/firefox/mxcy0c1o.tmpbeta/extensions/pentadactyl-signed@bootstrap.js:20:1 < @XPIProvider.jsm:4646:1 < this.XPIProvider.loadBootstrapScope@XPIProvider.jsm:4646:7 < this.XPIProvider.callBootstrapMethod@XPIProvider.jsm:4725:9 < this.XPIProvider.updateAddonDisabledState@XPIProvider.jsm:4902:13 < AddonWrapper.prototype.userDisabled@XPIProvider.jsm:7241:9 < set_userDisabled@extensions.xml:1084:11 < oncommand@about:addons:1:1

1467641520320 addons.xpi WARN Exception running bootstrap method startup on pentadactyl-signed@willsalmanj.github.com: ReferenceError: can't access lexical declaration `initialized' before initialization (resource://gre/modules/addons/XPIProvider.jsm -> jar:file:///home/user/.mozilla/firefox/mxcy0c1o.tmpbeta/extensions/pentadactyl-signed@willsalmanj.github.com.xpi!/bootstrap.js:361:9) JS Stack trace: startup@resource://gre/modules/addons/XPIProvider.jsm -> jar:file:///home/user/.mozilla/firefox/mxcy0c1o.tmpbeta/extensions/pentadactyl-signed@bootstrap.js:361:9 < this.XPIProvider.callBootstrapMethod@XPIProvider.jsm:4775:9 < this.XPIProvider.updateAddonDisabledState@XPIProvider.jsm:4902:13 < AddonWrapper.prototype.userDisabled@XPIProvider.jsm:7241:9 < set_userDisabled@extensions.xml:1084:11 < oncommand@about:addons:1:1

cougarten commented 7 years ago

same for later FF versions (at least 49, but I think I also tested 50)

jak3 commented 7 years ago

Thanks @willsALMANJ for your work! But I still have problems using it.

ffledgling commented 7 years ago

@jak3 @willsALMANJ 's issue description doesn't propose a fix (aiui there is no fix at the moment), you'll want to try an older version of firefox.

wshanks commented 7 years ago

Has anyone tried #160? I haven't had a chance to yet, but based on the error message it seems like #160 should at least get Pentadactyl further along in startup even if it doesn't fix the problem entirely.

wshanks commented 7 years ago

160 lets Pentdactyl mostly work with Firefox 48. You can try it from here if you want: https://github.com/willsALMANJ/pentadactyl-signed/releases/download/7286/pentadactyl-signed-7286.xpi

kazuoteramoto commented 7 years ago

@willsALMANJ your signed xpi (7286) is working for me on Firefox 48

dumblob commented 7 years ago

@willsALMANJ how about switching on per-tab process support? This should be the main culprit.

gliptak commented 7 years ago

@willsALMANJ +1 xpi works with FF 48

gliptak commented 7 years ago

@dumblob do you refer to browser.tabs.remote.autostart -> true (on about:config)?

dumblob commented 7 years ago

@gliptak yes, you can check it in about:support (see e.g. https://superuser.com/questions/1029400/how-to-enable-electrolysis-e10s-on-mozilla-firefox-beta ).

haasn commented 7 years ago

@willsALMANJ That PR mostly fixes it for me, but for some odd reason :set showtabline seems to be completely broken in FF 48.

(The only option it lists is ‘always’, and even setting that claims it's an invalid parameter. I want to disable the tab bar completely)

wshanks commented 7 years ago

@haasn Yes, it seems like settings are somewhat broken. With defsearch, if you try to change from Google to something else, it complains that that search provider does not exist even though you can still use that search provider with :open. For that at least you can just remap s to :open <search-provider> .

@dumblob e10s support is #50 though there is not much detail there. There is also some discussion in #99. Pentadactyl is a pretty large code base with a lot of functionality (internally it sets up and reuses a lot of custom classes and constructs; when I look through the code I feel like I am reading a new language), and it was written without any consideration for browser/content separation. It is possible the Pentadactyl devs could add e10s support with only a day's worth of work, but for anyone else it would take longer to understand the code and figure out how to split everything up into separate browser and content processes.

It would be a worthy project to take on, except that we already know that XUL add-ons are being deprecated and replaced by WebExtensions which use a completely different API. To me, it doesn't seem worth making Pentadactyl (the current XUL version) e10s compatible when it might become deprecated within another year after that. I don't think WebExtensions currently support all of the features Pentadactyl has, so it might be easier to make a new WebExtensions add-on inspired by Pentadactyl that is built up over time rather than port Pentadactyl directly. For such a WebExtensions version of Pentadactyl, it might be easier to start from an existing Chrome extension like Vimium and add features to it. I started #99 partly as a place for going through these kinds of considerations.

haasn commented 7 years ago

I've noticed far more issues than just the defsearch in FF 48 after using it a bit longer (too many to list, really), I wouldn't call it very usable, sadly.

I think I'm personally fine with just sticking to pale moon for now - its performance is a billion times faster than stock firefox for me and I don't see that changing any time soon (FF 47 -> FF 48 crippled my firefox performance even further, which has been a trend). If somebody is still interested in maintaining pentadactyl, my personal wish would be to maintain the palemoon-compatible fork - especially in light of the expected deprecation of XUL/XPCOM in plain firefox.

matreex commented 7 years ago

@willsALMANJ , dactyl had been working on firefox v50.0, it's nice good job, very thanks for you.

wshanks commented 7 years ago

betaveros fixed the defsearch issue with a pull request here so I merged that in. I also merged in the other open pull requests that seemed reasonable. I haven't noticed any issues with the features of Pentadactyl I use. Still, I don't know how long Pentadactyl can be sustained in this way, so I would encourage people to keep looking into alternatives (Pale Moon, Vimperator, VimFx, etc.) that work them.

matreex commented 7 years ago

I see that, I find you when i would give up it. i'm so happy to you can do this, because i can use Pentadactyl, again. :) Pentadactyl is powerful addon, and Vimperator is power too, but i like dactyl more than vimp. Thanks a lot for you forked it, I will follow you until you have to give up. @willsALMANJ

maturanomx commented 7 years ago

I can not make it work on FF 48.0.2 (from Arch repositories). xpinstall.signatures.required: false not seems to work.

Any help please?; now I can't work without pentadactyl :disappointed:

wshanks commented 7 years ago

Firefox 48 or higher requires that extensions be signed by Mozilla (there is no way to disable the requirement). You can either use Firefox Developer edition (firefox-developer in the AUR), an unbranded version of Firefox (firefox-unbranded in the AUR), or use a signed version of Pentadactyl (here is my signed version: https://github.com/willsALMANJ/pentadactyl-signed/releases/download/7287/pentadactyl-signed-7287.xpi). For the first two, you will still need xpinstal.signatures.required set to false.

Also, I'm closing this issue because @dkearns merged in fixes for the parts that broke in Firefox 48.

polyzen commented 7 years ago

Will's signed version is also available for global installation at aur/firefox-pentadactyl-signed. This way you can install/update it once for all users/profiles.

On August 30, 2016 10:14:33 AM EDT, willsALMANJ notifications@github.com wrote:

Firefox 48 or higher requires that extensions be signed by Mozilla (there is no way to disable the requirement). You can either use Firefox Developer edition (firefox-developer in the AUR), an unbranded version of Firefox (firefox-unbranded in the AUR), or use a signed version of Pentadactyl (here is my signed version: https://github.com/willsALMANJ/pentadactyl-signed/releases/download/7287/pentadactyl-signed-7287.xpi). For the first two, you will still need xpinstal.signatures.required set to false.

You are receiving this because you commented. Reply to this email directly or view it on GitHub: https://github.com/5digits/dactyl/issues/168#issuecomment-243452826

maturanomx commented 7 years ago

@willsALMANJ The thing is that with firefox 48.0 on Ubuntu works from master. I just clone and execute make -C pentadactyl install

:version
Pentadactyl 1.2pre running on:
Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:48.0) Gecko/20100101 Firefox/48.0

I tried the same with Archlinux. Also I tried with Developer Edition and with Aurora but there are a lot of issues.

Anyway, I will continue trying but I'm scare of the future :confused:

wshanks commented 7 years ago

Hmm, I just checked that out and you're right that xpinstall.signatures.required still works in Firefox 48 on Ubuntu (at least in that one case). I don't have time to look into this more now but it would be interesting to do so. It's possible that Ubuntu chose to patch Firefox so that it would keep working this way. I remember seeing mailing list discussions for Debian and Arch where the maintainers said they would not disable the signing requirement because it was a security feature but I didn't see any discussion for Ubuntu.

jam-jam commented 7 years ago

Thanks @willsALMANJ. I just couldn't go back to any other finger flow. I would just stop the Internet, and find another job. I think I should pay @dkearns and @kmaglione, and you of course. Or threaten you so you keep working on it. Whatever works. Thanks again for the xpi.

wshanks commented 7 years ago

@jam-jam There is a donation link on Pentadactyl's listing on addons.mozilla.org that should go to @dkearns and @kmaglione. There are other addons that provide similar finger flow like VimFx (there is some discussion of them in #99). I still expect Pentadactyl to become unusable at some point, so it is worth keeping an eye on alternatives. That will be whenever XUL addon support is removed (the new extension API is getting close to parity with Chrome but there is no schedule for removing XUL support right now) or multiprocess mode becomes mandatory (by January multiprocess mode will be on for most users but there is no schedule for when the ability to turn it off will be removed).

haasn commented 7 years ago

There are also other keyboard-driven browsers like qutebrowser, which have replaced pentadactyl for me. (I could not get comfortable with any of the other alternatives, and palemoon isn't exactly a long-term solution either)