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

Extensions support (Chrome and Firefox) #42

Open
landroni opened this issue Jan 8, 2014 · 20 comments
Open

Extensions support (Chrome and Firefox) #42

landroni opened this issue Jan 8, 2014 · 20 comments

Comments

@landroni
Copy link

@landroni landroni commented Jan 8, 2014

I see that 'extensions' is on the TODO list. But I was curious whether Otter plans to support existing Chromium extenions? More specifically, will the Ghostery extension be available in Otter?

@Emdek
Copy link
Member

@Emdek Emdek commented Jan 8, 2014

All in good time, I plan to have support for existing extensions APIs (most interesting options are Firefox and Chrome), and try to avoid need to expose custom ones.

It might make sense to implement them also as modules, wrappers for core APIs, exposing them in a way expected by existing extensions.

@landroni
Copy link
Author

@landroni landroni commented Jan 8, 2014

Sounds like a nice plan.

PS Thanks a lot for working on this. I was initially skeptical, but the screenshots look very juicy indeed in recreating good old Opera 12. I only hope that you will reach stability faster than, say, Midori (which I also consider as a viable alternative to Chropera (aka Opera 15+).

@Emdek
Copy link
Member

@Emdek Emdek commented Jan 8, 2014

Midori is still is not enough mature?
When I've look some years ago it looked not that bad, there were few missing things still, but worked quite nicely.

@landroni
Copy link
Author

@landroni landroni commented Jan 8, 2014

Midori is nice, but has some glaring omissions: password manager, chromium extensions or similar, the dynamic 'new tab' button next to the right-most tab, etc. I like Midori for occasional browsing, but I never managed to settle with it for day-to-day browsing as I can with Opera 12.

@Emdek
Copy link
Member

@Emdek Emdek commented Jan 8, 2014

Ah, well, I guess that they intend to be more like thin wrapper around WebKit.

@lollox
Copy link

@lollox lollox commented Jan 20, 2014

I think that support for FF extensions could be very very problematic... Most of them rely on XUL to create GUI elements and interaction and emulate this (if possible) could be also a resource eater process...

The chromium ones are more suitable since follow more strictly the "widget draft" developed by Opera years ago and rely for GUI only on HTML/JS technology... And even here there is the big problem of "proprietary" APIs that call directly features exposed by the chromum engine

@Emdek
Copy link
Member

@Emdek Emdek commented Jan 20, 2014

Well, full compatibility with Firefox extensions is impossible anyway, but as much as could be done - should be done. ;-)

@Piter432
Copy link

@Piter432 Piter432 commented Mar 14, 2014

Will be a support for Opera 12 extensions also? :)

@Emdek
Copy link
Member

@Emdek Emdek commented Mar 14, 2014

@Piter432, if someone would like add support for them then it could be considered, but I don't believe that it would be useful, many extensions are ports from Firefox or could be easily (probably most of them if not all) ported to these architectures.

@Muzer
Copy link

@Muzer Muzer commented Jun 18, 2014

Yeah, Firefox extension support sounds a bit too ambitious to me. What, are you going to have a layer emulating XUL? IMHO stick with more feasible things ;)

@Emdek
Copy link
Member

@Emdek Emdek commented Jun 19, 2014

@Muzer, AFAIK they have few different kinds of APIs, not all are bound to XUL. ;-)

Emdek added a commit that referenced this issue Feb 1, 2015
… something more powerful and easier to use directly, references #42
@Emdek
Copy link
Member

@Emdek Emdek commented Feb 1, 2015

OK, we can't avoid it any-longer, we are starting on resolving task #42, the so called "Answer to the Ultimate Question of Life, the Universe, and Everything", at least in our context. ;-)

OK, now seriously, we will start small, by introducing concept of "scriptlets", small JS/ECMAScript snippets to replace custom buttons and partially bookmarklets using APIs compatible with Chrome, trying to implement next APIs one by one, until we will be able to start advertising support for full blown, existing extensions etc.
Each snippet will behave like actions right now, it will be possible to trigger it by shortcut, add to some menu or place as button on toolbar (although these two uses will require support for events which would allow to properly update their UI state, like icon or title).
There are still few loose ends left in our design, but it is already proven to be feasible (design process was started in December 2013, but without help from @Frenzie I would be stuck on deciding on some critical details).

@lollox
Copy link

@lollox lollox commented Jan 2, 2017

With all the recent changes and news from Mozilla, I think finally it's the time to simply change the goal to "support the WebExtension platform" as all other browsers. (old Opera extensions are dead, Firefox XUL and SDK ones will be totally dropped this year)

Probably an easy task for the WebEngine backend... a bit more effort for the WebKit one?

@Emdek
Copy link
Member

@Emdek Emdek commented Jan 2, 2017

@lollox, old title still fits, that just means one set of APIs now. ;-)
At the moment it doesn't matter which backend would be used, both do not expose any helpers currently.

@zakius
Copy link
Contributor

@zakius zakius commented Jun 26, 2017

not exactly one set as they are alike yet completely different (especially that chrome extensions API doesn't support all the new ES features available for websites while WebExtensions take great use of them)
though I'd love to be able to use some (or exactly one at least) of my Firefox extensions

@Frenzie
Copy link
Member

@Frenzie Frenzie commented Jun 26, 2017

Which one? Curious minds want to know. :-P

@zakius
Copy link
Contributor

@zakius zakius commented Jun 28, 2017

Which extension? Long lost Pocket as it gives me full access to my list without loading that heavy webapp and performs search in local cache so it's blazing fast!

and if you are asking about which features are not exactly available for chromium extensions WebExtensions docs mentioned Promises for example (at least while interacting with built-in functions, might be available for everything else), though it could've changed already

@Frenzie
Copy link
Member

@Frenzie Frenzie commented Jun 28, 2017

I was asking about Promises (well, I didn't know that of course :-P). Odd/interesting that it wouldn't be available for extensions.

@zakius
Copy link
Contributor

@zakius zakius commented Jun 28, 2017

I assume it's more like while built in function in WebExtensions returns Promise analog function of Chrome Extension expects callback as a parameter, not that Promises are completely unavailable

@smnthermes
Copy link

@smnthermes smnthermes commented Mar 6, 2020

Why not just rebase Otter Browser on Firefox or Chromium?

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

Successfully merging a pull request may close this issue.

None yet
8 participants
You can’t perform that action at this time.