About hacking extensions

Add-ons for Pale Moon and other applications
General discussion, compatibility, contributed extensions, themes, plugins, and more.

Moderators: FranklinDM, Lootyhoof

User avatar
Moonchild
Pale Moon guru
Pale Moon guru
Posts: 35404
Joined: 2011-08-28, 17:27
Location: Motala, SE
Contact:

About hacking extensions

Unread post by Moonchild » 2016-11-11, 14:10

First and foremost, we welcome hacking away at extensions to make them work on Pale Moon! It is good to see people chipping away at compatibility issues and getting involved in extension development for Pale Moon.

That being said though, I feel a few things must be mentioned if you want to prevent problems with extensions and their original authors:
  • Please respect the original extension author's rights! if they release an extension under a restrictive (non-open) license, then no matter how much you would like to, you cannot use the extension's code to create your own derivative, even if it's a "simple fix to make it work", without getting the author's express permission.
    Although you can hack extensions for your own personal use in this case, and can share information of what you did, you absolutely cannot distribute the modified extensions to anyone else.
  • Similarly, if you change code under an Open Source license, please respect the terms of that license. If it requires the mention of the original author's copyright to be mentioned in source files, for example (e.g. GPL), then you must make sure this copyright is mentioned in what derivative you produce, even if it wasn't originally there.
  • Even if released under an Open Source license, this normally only applies to program code, not any unique graphics or distinguishing marks. Those will normally fall under regular copyright unless explicitly released into the Public Domain (and no, Open Source does not equal Public Domain!). So please be sure you can use this kind of content. If in doubt, make a proper fork with your own branding and identification.
  • You cannot just "re-license" code under a different license that you prefer at will, so please thoroughly understand the rules and restrictions of the source code license an extension is released under before you work on it or redistribute your derivative.
  • Please be aware that creating a fork or derivative may also mean you have to provide updates to the extensions in the future if a change to the browser code requires it.
  • Although it is quite possible to target multiple applications from a single extension (e.g. Firefox and Pale Moon), doing so may make things very complex over time, and will likely make extensions more resource-hungry or heavy to load than they need to be (if targeting just one family). You may want to consider splitting into targeted extensions that only focus on one or the other target application family.
  • Specifically for Firefox SDK extensions: with the incompatibility to run these on v27 and later, you can use some workarounds to make them (more) compatible with Pale Moon, including using some of our present toolkit code that has elements of the SDK in it for internal use. The resulting extensions will be Pale Moon exclusive by definition, so if you do this (with the potential risks of a browser update removing components it may need) you must specifically target Pale Moon as a target application separately and get your extension listed on our add-ons site.
"Sometimes, the best way to get what you want is to be a good person." -- Louis Rossmann
"Seek wisdom, not knowledge. Knowledge is of the past; wisdom is of the future." -- Native American proverb
"Linux makes everything difficult." -- Lyceus Anubite

Mom-Kat
Moonbather
Moonbather
Posts: 50
Joined: 2016-04-08, 00:05

Re: About hacking extensions

Unread post by Mom-Kat » 2016-12-16, 04:15

I admit to being lamentably ignorant about anything to do with coding add-ons and extensions. Does Pale Moon support the Web Extensions that Firefox is moving to? And, if so, does there need to be something specific to Pale Moon in the code to make it work?

GreenGeek

Re: About hacking extensions

Unread post by GreenGeek » 2016-12-16, 04:51

No, PM does not have support for Web Extensions. It might be possible to add someday through an extension but don't count on it.

User avatar
Shadeclan
Lunatic
Lunatic
Posts: 320
Joined: 2014-06-05, 17:27
Location: Albany, NY

Re: About hacking extensions

Unread post by Shadeclan » 2016-12-16, 13:17

I would hazard a guess that, since Web Extensions do not have anywhere near the versatility or browser access of "real" extensions, converting them would likely not be difficult. I would also speculate that any functionality that a Web Extension could possibly provide is either already present or would be simpler to add to Pale Moon than going through the licensing hassle of converting someone else's Web Extension code.
Image

User avatar
Moonchild
Pale Moon guru
Pale Moon guru
Posts: 35404
Joined: 2011-08-28, 17:27
Location: Motala, SE
Contact:

Re: About hacking extensions

Unread post by Moonchild » 2016-12-16, 15:09

The real question is... why bother making a compatibility layer for what will cater to at most gadgets (easily done in XUL) or web page content manipulation (make it greasemonkey script and you're done). WebExtensions won't have any interesting APIs to speak of.
"Sometimes, the best way to get what you want is to be a good person." -- Louis Rossmann
"Seek wisdom, not knowledge. Knowledge is of the past; wisdom is of the future." -- Native American proverb
"Linux makes everything difficult." -- Lyceus Anubite

CharmCityCrab

Re: About hacking extensions

Unread post by CharmCityCrab » 2016-12-19, 04:56

Moonchild wrote:The real question is... why bother making a compatibility layer for what will cater to at most gadgets (easily done in XUL) or web page content manipulation (make it greasemonkey script and you're done). WebExtensions won't have any interesting APIs to speak of.
The reason you'd do it would mainly be for non-technical users who want to have access to the same extensions their friends using other browsers are talking about, or the same extensions they use on other browsers to make the switch to Pale Moon as seamless for them as possible. I'm not saying that you should or shouldn't implement this, but from my perspective, that'd be the reason why. There will almost certainly be some people in the future who will want to switch from Firefox or Chrome to Pale Moon, but will say "Wait, my favorite extension isn't on Pale Moon." and that'll be their hold up. A compatibility layer for WebExtensions could theoretically solve that problem.

It's easy for people who know how to do it to do similar extensions in XUL- but will they do it bulk and get every possible extension that someone might want? Will they carry the brand names with them (Which would likely require the original developers)?

It's also easy for people who know how to do it to make a Greasemonkey script, but a casual user doesn't know how to do it. So, you've got to hope said user is going to come over to the forums, ask for a script, have someone write the script for them, and then have the casual user put the script into GreaseMonkey. My guess is that only a fraction of web browser users visit forums or discussions lists for their favorite browser, and then there is the friction of having someone have to write the script, and the user who's uncomfortable with code being willing to copy and paste it and such.

Just to emphasize- I am not saying Pale Moon should or shouldn't add WebExtension support. I am just saying there are potential reasons to *consider* it as something that some users and potential users might find useful.

Of course, the question becomes whether or not adopting that format as a secondary format to the current one would support or retard the development of a fuller app ecosystem for Pale Moon.

User avatar
Moonchild
Pale Moon guru
Pale Moon guru
Posts: 35404
Joined: 2011-08-28, 17:27
Location: Motala, SE
Contact:

Re: About hacking extensions

Unread post by Moonchild » 2016-12-19, 05:14

CharmCityCrab wrote:Just to emphasize- I am not saying Pale Moon should or shouldn't add WebExtension support. I am just saying there are potential reasons to *consider* it as something that some users and potential users might find useful.
And I never said we shouldn't have it (if it can be implemented safely/securely, that is -- I'd rather avoid sec issues). But it's at most a "nice to have" -- WebExtensions really "don't bring much to the table", so to say. There simply isn't much appeal to warrant sinking time into, in my opinion, especially if it can be done natively with XUL with just as little effort, in general, for the typical WE extensions I've seen thus far.

So for this to happen in the browser, it'll likely have to be someone's pet project.
"Sometimes, the best way to get what you want is to be a good person." -- Louis Rossmann
"Seek wisdom, not knowledge. Knowledge is of the past; wisdom is of the future." -- Native American proverb
"Linux makes everything difficult." -- Lyceus Anubite

CharmCityCrab

Re: About hacking extensions

Unread post by CharmCityCrab » 2016-12-19, 05:40

Moonchild wrote:
CharmCityCrab wrote:Just to emphasize- I am not saying Pale Moon should or shouldn't add WebExtension support. I am just saying there are potential reasons to *consider* it as something that some users and potential users might find useful.
And I never said we shouldn't have it (if it can be implemented safely/securely, that is -- I'd rather avoid sec issues). But it's at most a "nice to have" -- WebExtensions really "don't bring much to the table", so to say. There simply isn't much appeal to warrant sinking time into, in my opinion, especially if it can be done natively with XUL with just as little effort, in general, for the typical WE extensions I've seen thus far.

So for this to happen in the browser, it'll likely have to be someone's pet project.
Makes sense. With a limited number of developer hours and resources in general, there are probably much more important things to focus on unless, as you said, someone wanted to take it on as their pet project and were volunteering this own time.

It'd be nice to see more developers volunteer to help you guys out. Obviously, they can do what they want with their own free time, I'm just thinking in an ideal perfect world scenario. I love what you and the other developers have done with a limited number of people, and wonder what could be achieved with, say, double the people, or parity with the exponentially great number of people who contribute to the larger browsers. That you have a browser that for desktop I think is better than anything else out there despite the resource disparity that exists between Pale Moon and the larger browsers says a lot about the talent of you and your team, or at least that our tastes overlap in many respects!

I'm still not sure why Pale Moon isn't a rallying point for all the developers who used to volunteer time for Mozilla either directly working on the browser or doing extensions for them. However, psychology was never one of my strong suits. :) It just seems like the hypothetical disgruntled guy who hates the way Firefox is going and is on the bottom tier of Firefox development, barely having any input at all, and doing his coding for it in his free-time, could come over here and work directly with you and have a much bigger impact on a browser that is much more to his tastes instead. People who aren't involved at all, but who make browser extensions for Firefox, could come over here and work on the mainline browser for the first time *and* port their extensions. Someone who designs Android apps could pick up Pale Moon for Android, where development has had to be discontinued apart from security updates, and have the built in brand recognition of the half million people who use the desktop version, subject to some oversight and limitations on direction, and so on and so forth.

It is what it is, though. I am not saying anyone owes anyone anything, and everyone should make the choices that they want to make in life, within reason. I'm just amazed at how much is already accomplished with so few people, and just would love to see you guys get the chance to have a big enough team to really develop your vision in every direction possible that seems sound.

Mom-Kat
Moonbather
Moonbather
Posts: 50
Joined: 2016-04-08, 00:05

Re: About hacking extensions

Unread post by Mom-Kat » 2016-12-19, 08:17

I agree heartily with CharmCityCrab in respect to the hope for more talent getting on board. Pale Moon is my browser of choice, not just because I detest Australis and every step Firefox has taken in that direction, but because Pale Moon just does so many things so much better. I have made an absolute pest of myself badgering sites to recognize and support PM. My ONLY reservation as concerns 27 is the lack of some extensions that I use. At present, I have managed to find replacements - or workarounds - for most of them.

I'll have to admit, I'm one of those users that would like to be able to grab a particular web extension and toss it on Pale Moon. For many things, there are options - other extensions that DO work and do the same general thing. The problem comes when you have a very specific extension that has one person who codes it and it's something that's really important to me, personally, but not so much to a large number of people. IN such cases the dev either can't or won't make the effort to make it specifically for Pale Moon, because they see PM as too niche or too small or they simply haven't got the time to invest. It may be that I'm one of ten people who use Pale Moon that will actually use said extension, so the dev may well be right - it really isn't worth his time. Unfortunately I don't have the skill or knowledge to code it myself. If the web extension worked on PM, I don't have a problem anymore.

Mind you, I'm not whining and I'm not jumping ship over this. Fortunately, as I said, I have found an alternative that, while not particularly easy or easy to use, does do what I need it to do, for the time being. And I find staying with Pale Moon is worth the effort and some extra fiddling about if that's what it takes. Thanks, Moonchild, for making a damn good browser.

Locked