Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Port to WebExtension #705

Closed
SammysHP opened this issue Feb 8, 2017 · 186 comments
Closed

Port to WebExtension #705

SammysHP opened this issue Feb 8, 2017 · 186 comments

Comments

@SammysHP
Copy link
Member

SammysHP commented Feb 8, 2017

Sören Hentzschel has published a roadmap regarding multiprocess architecture and addon compatibility: https://www.soeren-hentzschel.at/firefox/so-geht-es-weiter-mit-dem-multiprozess-firefox-2/

(See also https://blog.mozilla.org/addons/2016/11/23/add-ons-in-2017/)

Especially two releases are important for Vimperator:

Firefox 53 (2017-04-18): Only WebExtensions allowed on AMO. This means that new developers cannot create new unlisted addons for signing.

Firefox 57 (2017-11-28): Only WebExtensions allowed in Firefox and AMO. Vimperator will not work with this release anymore.

Please note that the developer version of Firefox might drop support for XUL- and SDK-addons already some months earlier, maybe in June!

I have a really bad feeling about this. Considering the development activity during the last months I don't think that we will have ported Vimperator to a WebExtension in time. This process requires almost a complete rewrite of Vimperator and a lot of features aren't possible with WebExtensions at all. Don't get me wrong, but I fear that this is the death of Vimperator. :(

See also #211 for some more details, which focusses on e10s compatibility in general.

Chatroom

I created a chatroom on Gitter where we can organize and talk about the next steps:
https://gitter.im/vim-webextension/Talk

@SammysHP SammysHP changed the title Future Compatibility Port to WebExtension Feb 8, 2017
@hejops
Copy link

hejops commented Feb 9, 2017

If all else fails, could focus perhaps be shifted to compatibility with Pale Moon?

@timss
Copy link
Member

timss commented Feb 9, 2017

Also relevant: https://bugzilla.mozilla.org/show_bug.cgi?id=1215061#c22

I have a really bad feeling about this. Considering the development activity during the last months I don't think that we will have ported Vimperator to a WebExtension in time. This process requires almost a complete rewrite of Vimperator and a lot of features aren't possible with WebExtensions at all. Don't get me wrong, but I fear that this is the death of Vimperator. :(

It would indeed seem that the best possible and realistic outcome now would be to lag behind on Firefox releases for some time until a rewrite is completed, or even started.

At some point it stops making sense to even maintain the current code base. I would hope that we could get a working release (especially on AMO) for the next ESR (FF52), which in my opinion would be a good option to stay on for some time as releases after 52 will be increasingly hard to maintain.


Regarding the option of Pale Moon, there's a pretty interesting discussion on that in this Pentadactyl issue. I don't personally think it's a good idea.

5digits/dactyl#99

@svarogg
Copy link

svarogg commented Feb 9, 2017

I would really love to help with the effort. However, a few pointers on where can one start would be very helpful.

I've done the reading, and as I understand we are facing two major roadblocks:

  1. New APIs means a complete or at least a very extensive rewrite.
  2. Some APIs are not available, which makes some features hard or impossible to implement.

A couple of thoughts:
I think point No 1. warrants a new repository or at least a clean branch, especially if we are talking about a complete rewrite.

To address point No. 2 it would be nice to have a list of missing APIs, and might start thinking about workarounds.

I have much development experience, but none in browser extensions and haven't touched JS for a couple of years. So I don't think I am fit to lead this effort, but I would be more than happy to follow if pointed at the right direction.

@mavaa
Copy link

mavaa commented Feb 9, 2017

Hey, I just started using Firefox and vimperator after being a long-time Chromium/Vimium-user (Google Amp on my phone slowly made me turn away from google). I love the experience of using gui=none so far and would love to contribute some with keeping this project alive!

That being said, I don't have any experience writing Firefox plugins besides building the latest xpi a few days ago, though I'm a pretty decent developer working mostly in web. I'm guessing I should start by reading a bit about writing plugins in general, would reading up on WebExtensions be the right place to start right now? And/or should I take a look at some open issues already around?

@Nefari0uss
Copy link

@marza91 If I had to guess, I'd say Web Extensions might be worth looking into. Someone is gonna have to start a port and the earlier the better is my likely guess.

@mavaa
Copy link

mavaa commented Feb 9, 2017

This is probably possible to find out somewhere, but is Vimperator a "XUL/XPCOM" or "Add-ons SDK" extension?

@schemar
Copy link
Contributor

schemar commented Feb 9, 2017

Count me in when moving to WebExtensions 👍

@SammysHP
Copy link
Member Author

SammysHP commented Feb 9, 2017

@svarogg
A new repository is a good idea. Yes, it would be a complete rewrite. With a new repository it would be easier to manage issues etc.

For the start we need some experienced software engineers to create an initial framework. Later individual developers can contribute additional features individually. There will be a long design phase where we collect requirements, develop a solid foundation for the addon and where we can also analyze which features are missing in the webextension standard.

@marza91
Vimperator is a XUL addon.

@SammysHP
Copy link
Member Author

SammysHP commented Feb 9, 2017

Oh, I forgot something: The new version would be something completely new. There will be many things that will be different from what we are used to. It would be fantastic to forget the reasons that led to the fork and work together with the people from pentadactyl. They have the same problem as we have. And most developers joined after the fork. It makes no sense to create two new addon with the same functionality.

@cornop
Copy link

cornop commented Feb 10, 2017

Personally, I will be switching to VimFx. It doesn't change the UI, which is one thing I liked about Vimperator, but that won't be possible in the future anyway. It seems to be ahead of Vimperator in terms of Firefox's changes (it already supports multiprocess), is actively developed and has a roadmap for WebExtension support.

I'll just throw this in the room: Maybe the remaining developer power should be moved to this project.

@Dioxylin
Copy link

Regarding Pale Moon, their roadmap, at https://www.palemoon.org/roadmap.shtml, explicitly states that they are keeping XPCOM and XUL extensions support, unlike Firefox.

@mavaa
Copy link

mavaa commented Feb 10, 2017

The ability to change the GUI and the way it completely changes how you use the browser is what I like most about Vimperator as well, so VimFx seems like a downgrade to me. Not to talk down about the Add-on itself, I bet it works great, it's just not exactly what I want (I tried it briefly before changing to Vimperator).

Would it be an idea to start by assembling a feature-list and find out exactly what can and can't be ported? I'm also lending a bit towards switching to Pale Moon if there's interest in keeping the XUL version going and most features can't be ported.

@gkatsev
Copy link
Member

gkatsev commented Feb 10, 2017

Collecting a feature list and categorizing it into "supported by webext" sounds like an awesome idea.

@xdml
Copy link

xdml commented Feb 10, 2017

I follow your discussion about moving forward to WebExtensions age. I do not know exactly what is possible and what not, but from the discussion I got feeling, that interface rewrite by XUL will not be possible.

My question is, can be some of these issues solved by theme? So basically some XUL features will be done by theme?

@tfrangio
Copy link

tfrangio commented Feb 10, 2017 via email

@timss
Copy link
Member

timss commented Feb 11, 2017

New repo would be practical due to the high number of unresolved issues in this repo, but it would also mean that one can't as easily refer to still active issues using #705. There's also lots of commit statistics, links to the repo on the Internet etc. As a minimum, the main repo would have to include information and links to the other one.

That being said, I don't plan on manage the move to a new repo and/or branch, so it'll be up to whoever makes the call. Just thought I'd point out some possible pros/cons.

@lilydjwg
Copy link

You can easily refer to issues in other repos by pasting the full links, or use user/repo#xxx syntax.

@SammysHP
Copy link
Member Author

Yes, cross-linking issues is easy. The new code would not have much in common with the old Vimperator code, so I don't see a problem. As we will start from scratch, most issues would have no relevance anymore.

@timss
Copy link
Member

timss commented Feb 11, 2017

I'm well aware, @lilydjwg. My point is that there's some history that comes with all the issue numbers. In the event a new repo is created, an issue discussed with number e.g. 77 could be different, even though an issue 77 in the old repo could have historical value. Not a big problem, but it's not just about not having to write user/repo#N vs #N.

@fakedrake
Copy link

fakedrake commented Feb 11, 2017

Because there was some talk about palemoon and other browsers. I switched temporarily to IceCat because vimperator still works properly there.

It is extremely unfortunate tha palemoon does not run on OSX.

@SammysHP
Copy link
Member Author

@timss I don't understand what you mean. The new WebExtension version of Vimperator would be a completely new program. There are no bugs, only feature requests (many more than there are now because it won't have any features at the beginning). So in the rare situation that it is necessary to reference an old issue it would be no problem to use the repo#N syntax.

@fakedrake
Copy link

fakedrake commented Feb 11, 2017

It wasn't clear from my comment but I would agree with@SammysHP as the current version of vimperator should still work with current/legacy browsers like icecat and palemoon.

EDIT: also I believe the (potential) shortcomings of github's issue tracker should probably not be taken into account in this decision.

@timss
Copy link
Member

timss commented Feb 11, 2017

Just thought I'd give my two cents, issue linking wasn't in itself a huge motivation. Please, don't let my remark become too much of a focus, I don't feel too strongly about it :)

@jrmiller82
Copy link

So.... firefox is doing something internally that's going to break vimperator? (Or already broke it? I'm on FF 51 and lots of things aren't working correctly anymore).

@Nefari0uss
Copy link

Nefari0uss commented Feb 12, 2017

@jrmiller82 Mozilla is making the decision to move away from XUL for their extension framework in favour of web extensions. This move will ultimately make it more difficult to customize nearly as much of the browser and will require lots of extensions to be rewritten. Their reasoning is that the current extension system makes it difficult to update the browser with new features as maintaining compatibility becomes increasingly more difficult. I'm not going to discuss the politics or the pros and cons of this move (that's already been done to death) but the fact of the matter is that it's being done. This means that ultimately Vimperator is going to have to be rewritten essentially from scratch to work with web extensions. This means for a while it's going to be rather painful as either we won't be able to use the extension or that whatever version works with the new ecosystem will be very lite in terms of feature set. Ideally the growing pains of WebExtensions gets re-mediated over a period of time and we have a new ecosystem, a new code base to work with (with whatever architectural improvements starting over can provide), and hopefully (near) feature parity in due time.

@fakedrake
Copy link

So maybe someone who knows the ins and outs of vimperator and has some idea of what are the priority features should break down what rewriting vimperator would entail so we can get going. I was looking at the XUL/XPCOM vs WebExtensions article and it looks like very few of the useful features of vimperator are translatable to WebExtensions.

@jrmiller82
Copy link

So in the meantime, is there a vim-like plugin that does work with the new WebExtensions? Or gasp, will I have to use Chrome and vimium or something awful like that? 👎

@ghost
Copy link

ghost commented Nov 30, 2017

@robehickman: I agree, and there are a number of misguided changes that Mozilla has undertaken in the past (a particularly bad one was the removal of some extension functionality that a program could get around using the OS). If users here would ask questions on the mailing list about development efforts I think we could affect some positive change.

Something I have found that helps is asking for clear and concise justification for the changes that have been implemented. This should, hopefully, not be burdensome to the developers, as some justification should already exist. If not - then they have admitted to making changes for no reason.

I think it important that the Mozilla developers be held accountable to their users in some way. The changes to extensions are perhaps the least troubling. An important example that I think reflects very poorly on Mozilla is their support for the page visibility API, which YouTube uses to enforce "pause when page not visible." I can't find the exact bug report, but they state that the API shouldn't be disabled because it would subvert user expectations. That's fine, but by that logic Firefox shouldn't block popups by default.

Foundation members seem to be making things up as they go.

@Hi-Angel
Copy link

Any other options?

@robehickman please read the scrollback — peoples, me including, have suggested some nice alternatives to Vimperator/Pentadactyl.

@Hi-Angel
Copy link

@robehickman in fact, you can use this list on the main page of Qutebrowser, AFAIK the owner tries to keep the list current (in a way, he writes down any changes he becomes aware of).

@nachoparker
Copy link

nachoparker commented Nov 30, 2017

pretty happy with vim vixen... they came out of nowhere and it works really well. Also they are pretty active so it seems that they will get the rest working soon.

Some of the things you mention are mozilla's fault, so you won't find a FF addon that supports them.

edit: @robehickman I suggest you go to their github and ask for the features or somehow support them. They are doing a great job and that's how open source is built... with interaction ;)

@robehickman
Copy link

UI modification can still be done with userChrome.css

/* Get rid of tab bar */
#TabsToolbar {
visibility: collapse !important;
}

/* Get rid of URL bar */
#nav-bar {
visibility: collapse !important;
}

@bovine3dom
Copy link

@robehickman We found that autohiding the UI was a decent compromise - https://github.com/cmcaine/tridactyl/blob/master/src/static/userChrome-minimal.css - as it doesn't break anything.

@jmercouris
Copy link

I would also like to throw my 2 cents in for those looking for a replacement in the form of a browser, mine is based on GTK and Cocoa (using native OS wherever possible)

a VI compatibility layer is possible to program on top of it, check it out and let me know what you think: https://github.com/nEXT-Browser/nEXT

@SammysHP
Copy link
Member Author

SammysHP commented Jan 9, 2018

I think we can close this issue now as it is clear that Vimperator will never be available as a webextension. Other projects were already mentioned and looking at their GitHub repos is simply amazing. They have more activity in a few weeks than Vimperator during the last years. Thanks for all supporters of Vimperator and please support other projects as well. Eventually there will be an extension as good and rich of features as Vimperator and maybe even better.

@SammysHP SammysHP closed this as completed Jan 9, 2018
@gkatsev
Copy link
Member

gkatsev commented Jan 9, 2018

Thanks @SammysHP! Yeah, it's sad to see vimperator go. Maybe someone at some point will resurrect it for one of the firefox forks that are keeping the old addon API. But it's good to see that people are picking up the slack elsewhere!

@mcarton
Copy link

mcarton commented Jan 9, 2018

@gkatsev, @SammysHP and others, in this happy/sad moment, I just wanted to say: thanks for bringing us and maintaining Vimperator all those years! ❤️

@taocp
Copy link

taocp commented Jan 10, 2018

Thank you all. Thank you Vimperator!

@maoanran
Copy link

maoanran commented Jan 10, 2018

So sad 😭 Vimperator is the only reason to use Firefox for many one.

Really thanks you guys for these years. That means a lot to us. 🥇 🥇 🥇

@zunsthy
Copy link

zunsthy commented Jan 12, 2018

Vimperator is No.1.
Thank you all.

@janzhen
Copy link

janzhen commented Jan 12, 2018

It's sad. Vimperator is the only reason I stay with Firefox.
Thank you all.

@MasahiroSakoda
Copy link

Thank you so much!!
I think Vimperator was one of greatest
addon.

@ajwsert
Copy link

ajwsert commented Jan 16, 2018

I see this has been closed, long discussed and I don't personally use the add-on but I would like to add my two cents here as well.

I see that some has argued against but I would tell to give PaleMoon some more love. I have switched to it so soon I learned about the Mozilla's announcement about dropping XUL and I haven't had any issues with it. Almost all of the add-ons I had been using on Firefox are compatible to some extend and for the most popular ones there are forks to make them fully compatible.

In fact, I went even to the extreme to simply copy my FF's profile files (add-ons files; history, bookmarks, cookies db files etc) to a PM profile and it worked great "out-of-box", I got all my data and add-ons in PM exactly as it was in FF. The only issue was that PM promptly marked some add-ons like incompatible (it doesn't support Jetpack SDK) but around 90% of the add-ons kept working. Even so, some of the incompatible ones could be replaced with PM targeted ones (e.g. Adblock Plus for FF is incompatible, but there is a version from the same dev made for PM [Adblock Latitude]).

Regarding HTML5 or other technologies, I haven't had issues with it. I can't recall any websites not rendering properly in it (maybe 1 or 2 in a thousand) and possibly it was due websites targeting specific browsers through the User Agent string (PM even has a setting to change it to a Gecko or FF compatibility mode). I have used websites with Websockets, HTML5 video etc in it with no issues.

Ok, I have been long already. I just wanted to drop my experience with PM and tell to not give up giving it some attention and who knows this Vimp can live some more in it.

@0re5ama
Copy link

0re5ama commented Feb 18, 2018

Is this project dead?

@Hi-Angel
Copy link

In some sense. There's no point in further development, given modern Firefox removed all the necessary API. See the discussion for alternatives.

@0re5ama
Copy link

0re5ama commented Feb 28, 2018

Sadly none of those alternatives feels even close to vimperator.

@dschrempf
Copy link

dschrempf commented Feb 28, 2018

I can recommend qutebrowser, it comes pretty close!

@nachoparker
Copy link

happy user of Vim Vixen here

@zouhair
Copy link

zouhair commented Apr 30, 2018

Well this is a huge disappointment :(

Thanks for all the good days you gave us, have a good life

@bovine3dom bovine3dom mentioned this issue May 10, 2018
@ZirconCode
Copy link

So long and thanks for all the fish =(

@tvestelind
Copy link

Vimperator is a great plugin and the only reason I've delayed switching to 57. Thank you for all your work!

@quba42
Copy link

quba42 commented Nov 4, 2018

I have been using an older version of Vimperator (3.13.1) with Pale Moon.
With the last Pale Moon update a couple of extra Vimperator features broke, but for the time being even a partial Vimperator is still preferable to any alternatives I've tried.

If I find the time (a big if), I may look into some more systematic testing of Vimperator features within Pale Moon.
Given the partial "out of the box" compatibility it should be possible to create a Vimperator for Pale Moon fork with reasonable effort...

@bovine3dom
Copy link

Have you tried Pale Moon's port of Pentadactyl? https://addons.palemoon.org/addon/pentadactyl/

@dotancohen
Copy link

Vimperator will be missed. It blazed a new trail in UI for a web browser, actually making the web comfortable to use.

Tridactyl walks in Vimperator's footsteps. As of early 2019 I find it feature complete for everyday browsing. Highly recommended to those who mourn the mighty Vimperator.

https://github.com/tridactyl/tridactyl
https://addons.mozilla.org/en-US/firefox/addon/tridactyl-vim/

@feniksa
Copy link

feniksa commented Aug 21, 2019

vimperator is best of the best! Wish to have same functionality in future (currently use tridactyl as alternative).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests