Modern guide to XUL?

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

Moderators: FranklinDM, Lootyhoof

User avatar
PseudoDistant
Moonbather
Moonbather
Posts: 73
Joined: 2024-02-06, 20:19

Re: Modern guide to XUL?

Unread post by PseudoDistant » 2024-02-15, 20:43

PseudoDistant wrote:
2024-02-15, 20:13
I found the SDK for Firefox 52, but I'm still struggling with actually using it. It seems Firefox 52's WebIDE no longer works, and every guide I've found on how to set it up in VS Code refers to really old versions of VS Code and no longer even work with current builds. :coffee:
Okay nevermind, the Gecko SDK I found (from Mozilla's archive) doesn't have a XPIDL binary, and the Python files seem to do nothing...
Eat your school.
Eat your drugs.
Eat your teeth.

User avatar
athenian200
Contributing developer
Contributing developer
Posts: 1537
Joined: 2018-10-28, 19:56
Location: Georgia

Re: Modern guide to XUL?

Unread post by athenian200 » 2024-02-15, 21:26

PseudoDistant wrote:
2024-02-15, 20:13
I found the SDK for Firefox 52, but I'm still struggling with actually using it. It seems Firefox 52's WebIDE no longer works, and every guide I've found on how to set it up in VS Code refers to really old versions of VS Code and no longer even work with current builds. :coffee:
I do have to admit, we haven't really managed to create a lot of resources to help people create new projects built on XUL/XPCOM in a serious way, despite trying to maintain that technology. Instead, we are providing a platform that allows existing XUL and XPCOM projects and their forks to continue working... in other words, everything is currently setup a lot more for legacy support of existing projects than it is for giving people what they need to create new ones.

It doesn't help that Mozilla has gotten rid of what little documentation existed, and allowed a lot of the tools associated with it to bitrot and become useless long before XUL itself was dropped.

I mean, I would like to do more on that front, but we've all had our hands full keeping UXP and our UXP applications alive. For instance, I didn't know that Mozilla had an SDK or that there was ever any kind of WebIDE. You probably know more about how this stuff was initially developed than I do.
"The Athenians, however, represent the unity of these opposites; in them, mind or spirit has emerged from the Theban subjectivity without losing itself in the Spartan objectivity of ethical life. With the Athenians, the rights of the State and of the individual found as perfect a union as was possible at all at the level of the Greek spirit." -- Hegel's philosophy of Mind

User avatar
PseudoDistant
Moonbather
Moonbather
Posts: 73
Joined: 2024-02-06, 20:19

Re: Modern guide to XUL?

Unread post by PseudoDistant » 2024-02-15, 22:08

athenian200 wrote:
2024-02-15, 21:26
I do have to admit, we haven't really managed to create a lot of resources to help people create new projects built on XUL/XPCOM in a serious way, despite trying to maintain that technology. Instead, we are providing a platform that allows existing XUL and XPCOM projects and their forks to continue working... in other words, everything is currently setup a lot more for legacy support of existing projects than it is for giving people what they need to create new ones.

It doesn't help that Mozilla has gotten rid of what little documentation existed, and allowed a lot of the tools associated with it to bitrot and become useless long before XUL itself was dropped.

I mean, I would like to do more on that front, but we've all had our hands full keeping UXP and our UXP applications alive. For instance, I didn't know that Mozilla had an SDK or that there was ever any kind of WebIDE. You probably know more about how this stuff was initially developed than I do.
Yea it looks like this. :)
Image
Image

Unfortunately, when you try to register a new app, it tries to download something, and fails immediately. It's not usable at all.
Do you know of a simple XPCOM project (that builds) that I could fork? That might be easier.
Eat your school.
Eat your drugs.
Eat your teeth.

User avatar
PseudoDistant
Moonbather
Moonbather
Posts: 73
Joined: 2024-02-06, 20:19

Re: Modern guide to XUL?

Unread post by PseudoDistant » 2024-02-15, 22:11

PseudoDistant wrote:
2024-02-15, 22:08
Yea it looks like this. :)
I should immediately clarify that I deleted my Firefox profile folder a long time ago, it's complaint of "This can occur if you've used this profile with a newer version of Firefox" is irrelevant, since it's a fresh profile.
Eat your school.
Eat your drugs.
Eat your teeth.

User avatar
FranklinDM
Add-ons Team
Add-ons Team
Posts: 582
Joined: 2017-01-14, 02:40
Location: Philippines

Re: Modern guide to XUL?

Unread post by FranklinDM » 2024-02-16, 01:39

WebIDE is an entirely different and unrelated tool - it is used for remotely debugging Firefox OS or Firefox for Android. If you're looking into creating a binary XPCOM component (?), you might want to check existing extensions that make use of it instead, such as MinTrayR.

User avatar
PseudoDistant
Moonbather
Moonbather
Posts: 73
Joined: 2024-02-06, 20:19

Re: Modern guide to XUL?

Unread post by PseudoDistant » 2024-02-16, 03:12

FranklinDM wrote:
2024-02-16, 01:39
WebIDE is an entirely different and unrelated tool - it is used for remotely debugging Firefox OS or Firefox for Android. If you're looking into creating a binary XPCOM component (?), you might want to check existing extensions that make use of it instead, such as MinTrayR.
MinTrayR's use of XPCOM doesn't seem to match anything in UDN, nor does it actually seem to compile it's native code.. Do XPCOM binaries not compile? :think:

EDIT: I saw the Makefile, and it clearly should do something, but the source files are still present in the XPI, even after installation. There seems to be no binary for it, unless I missed it.
Eat your school.
Eat your drugs.
Eat your teeth.

User avatar
adoxa
Fanatic
Fanatic
Posts: 170
Joined: 2019-03-16, 13:26

Re: Modern guide to XUL?

Unread post by adoxa » 2024-02-16, 06:49

build.py does not build the binaries, looks like you have to do so manually; they are then generated directly in the lib directory (Windows) or via make install (or make cp).

User avatar
PseudoDistant
Moonbather
Moonbather
Posts: 73
Joined: 2024-02-06, 20:19

Re: Modern guide to XUL?

Unread post by PseudoDistant » 2024-02-16, 13:58

adoxa wrote:
2024-02-16, 06:49
build.py does not build the binaries, looks like you have to do so manually; they are then generated directly in the lib directory (Windows) or via make install (or make cp).
I don't get it, is `export-versionscript` how you define exposed functions in newer (post-UDN) XPCOM?
Eat your school.
Eat your drugs.
Eat your teeth.

mrnhmath
Fanatic
Fanatic
Posts: 122
Joined: 2017-06-21, 02:37

Re: Modern guide to XUL?

Unread post by mrnhmath » 2024-02-16, 14:00

Hello, I'm the responsible for restoring the XULRunner runtime into the platform, but I've yet to set up build infrastructure for XULRunner/Goanna SDK.

You can build the SDK by doing

Code: Select all

./mach build
from the UXP tree and then

Code: Select all

./mach sdk
from the resulting obj directory.

User avatar
PseudoDistant
Moonbather
Moonbather
Posts: 73
Joined: 2024-02-06, 20:19

Re: Modern guide to XUL?

Unread post by PseudoDistant » 2024-02-17, 00:06

mrnhmath wrote:
2024-02-16, 14:00
Hello, I'm the responsible for restoring the XULRunner runtime into the platform, but I've yet to set up build infrastructure for XULRunner/Goanna SDK.

You can build the SDK by doing

Code: Select all

./mach build
from the UXP tree and then

Code: Select all

./mach sdk
from the resulting obj directory.
Is there better XPCOM documentation than on UDN tho? :cry:

The SDK only does so much if I can't learn how to use it.
(I could read the source and try to figure it out myself, but that didn't go exactly as I'd have hoped last time I tried that on not Java code...)
Eat your school.
Eat your drugs.
Eat your teeth.

User avatar
moonbat
Knows the dark side
Knows the dark side
Posts: 4984
Joined: 2015-12-09, 15:45

Re: Modern guide to XUL?

Unread post by moonbat » 2024-02-17, 01:13

PseudoDistant wrote:
2024-02-17, 00:06
Is there better XPCOM documentation than on UDN tho? :cry:
Sadly, no - UDN itself is an archive of what was Mozilla's own moth eaten documentation at that point. Going through it one thing is clear - documentation was always Mozilla's Achilles' heel - despite having a powerful application platform that could create desktop applications using just XUL and Javascript with XPCOM components as necessary - lack of complete and well structured documentation means you just have to perform archaeology on what's left to find useful pages.
"One hosts to look them up, one DNS to find them and in the darkness BIND them."

Image
Linux Mint 21 Xfce x64 on HP i5-5200 laptop, 12 GB RAM.
AutoPageColor|PermissionsPlus|PMPlayer|Pure URL|RecordRewind|TextFX

User avatar
adoxa
Fanatic
Fanatic
Posts: 170
Joined: 2019-03-16, 13:26

Re: Modern guide to XUL?

Unread post by adoxa » 2024-02-17, 01:31

PseudoDistant wrote:
2024-02-16, 13:58
I don't get it, is `export-versionscript` how you define exposed functions in newer (post-UDN) XPCOM?
Indirectly, as I expect it's the general way to indicate what the .so file should export (not really sure, I'm a Windows user).

User avatar
PseudoDistant
Moonbather
Moonbather
Posts: 73
Joined: 2024-02-06, 20:19

Re: Modern guide to XUL?

Unread post by PseudoDistant » 2024-02-17, 02:14

moonbat wrote:
2024-02-17, 01:13
Sadly, no - UDN itself is an archive of what was Mozilla's own moth eaten documentation at that point. Going through it one thing is clear - documentation was always Mozilla's Achilles' heel - despite having a powerful application platform that could create desktop applications using just XUL and Javascript with XPCOM components as necessary - lack of complete and well structured documentation means you just have to perform archaeology on what's left to find useful pages.
Damn, looks like I have a fun few weeks ahead of me.
Image
Eat your school.
Eat your drugs.
Eat your teeth.

User avatar
soundmodel
Hobby Astronomer
Hobby Astronomer
Posts: 24
Joined: 2023-05-14, 06:21

Re: Modern guide to XUL?

Unread post by soundmodel » 2024-02-22, 11:11

Maybe we could start a XUL doc project. I am also interested in it as an app framework. I started with Mozilla Web API, which is fine for general use.

OTOH, the Mozilla-side argument seems to be that HTML5 is more useful than XUL by now.

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

Re: Modern guide to XUL?

Unread post by Moonchild » 2024-02-22, 13:31

soundmodel wrote:
2024-02-22, 11:11
OTOH, the Mozilla-side argument seems to be that HTML5 is more useful than XUL by now.
That's nonsense. HTML5 (i.e. WebExtensions) runs in a web container and only has access to what little APIs have been made available to it. By definition it cannot do all that XUL can.
XUL, on the other hand, can import the HTML namespace and use html5 elements inside it if it wants, and get access to HTML elements inside XUL.
So it's literally the other way around.
"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

User avatar
PseudoDistant
Moonbather
Moonbather
Posts: 73
Joined: 2024-02-06, 20:19

Re: Modern guide to XUL?

Unread post by PseudoDistant » 2024-02-22, 14:38

Moonchild wrote:
2024-02-22, 13:31
That's nonsense. HTML5 (i.e. WebExtensions) runs in a web container and only has access to what little APIs have been made available to it. By definition it cannot do all that XUL can.
XUL, on the other hand, can import the HTML namespace and use html5 elements inside it if it wants, and get access to HTML elements inside XUL.
So it's literally the other way around.
Really, Mozilla's just been stripping back because Baker wanted more mons...
I distinctly remember some Mozilla developer releasing a statement on "what really happened" and why they killed XUL sometime a couple years back, and it could be summarized to:
"We had a lot of development costs, we needed to support developers, and some developers didn't like when some things broke because of an update."
Yeah no shit, that's called "maintaining a framework", they just outsourced that work to Google. :(
I really believe UXP is the last hope for the modern web, Mitchell Baker's spawn that succeeded her isn't going to fix anything.
Sorry for being doomer, I'm just very passionate about the non-corporate web. I come from a better time, it hurts.
Eat your school.
Eat your drugs.
Eat your teeth.

User avatar
athenian200
Contributing developer
Contributing developer
Posts: 1537
Joined: 2018-10-28, 19:56
Location: Georgia

Re: Modern guide to XUL?

Unread post by athenian200 » 2024-02-22, 19:06

PseudoDistant wrote:
2024-02-22, 14:38
Really, Mozilla's just been stripping back because Baker wanted more mons...
I distinctly remember some Mozilla developer releasing a statement on "what really happened" and why they killed XUL sometime a couple years back, and it could be summarized to:
"We had a lot of development costs, we needed to support developers, and some developers didn't like when some things broke because of an update."
Yeah no shit, that's called "maintaining a framework", they just outsourced that work to Google. :(
I really believe UXP is the last hope for the modern web, Mitchell Baker's spawn that succeeded her isn't going to fix anything.
Sorry for being doomer, I'm just very passionate about the non-corporate web. I come from a better time, it hurts.
Yeah. This is why we're here. Truth be told, the state of XUL in our current codebase isn't ideal, but it is much better than modern Mozilla... by the time we forked off, Mozilla had already started the process of removing the less frequently used parts of XUL that most users playing around with extensions and themes wouldn't notice. We forked off the last working state with full support for XUL as used by themes, extensions, and applications, but that particular state isn't well-documented, and most documentation is from the earlier era back when Mozilla still cared. I think we have the highest compatibility possible with the majority of extensions created for Firefox that we can have, without compromising on other things.
"The Athenians, however, represent the unity of these opposites; in them, mind or spirit has emerged from the Theban subjectivity without losing itself in the Spartan objectivity of ethical life. With the Athenians, the rights of the State and of the individual found as perfect a union as was possible at all at the level of the Greek spirit." -- Hegel's philosophy of Mind

User avatar
PseudoDistant
Moonbather
Moonbather
Posts: 73
Joined: 2024-02-06, 20:19

Re: Modern guide to XUL?

Unread post by PseudoDistant » 2024-02-23, 02:03

athenian200 wrote:
2024-02-22, 19:06
Yeah. This is why we're here. Truth be told, the state of XUL in our current codebase isn't ideal, but it is much better than modern Mozilla... by the time we forked off, Mozilla had already started the process of removing the less frequently used parts of XUL that most users playing around with extensions and themes wouldn't notice. We forked off the last working state with full support for XUL as used by themes, extensions, and applications, but that particular state isn't well-documented, and most documentation is from the earlier era back when Mozilla still cared. I think we have the highest compatibility possible with the majority of extensions created for Firefox that we can have, without compromising on other things.
I really can't understand the people who think Mitchell Baker is some sort of messiah. I've heard people praise her achievements, while completely ignoring what she actually does.
Thank you for working on and maintaining one of the last usable web browsers out there.. If only more devs would look at XUL again...
Eat your school.
Eat your drugs.
Eat your teeth.

mrnhmath
Fanatic
Fanatic
Posts: 122
Joined: 2017-06-21, 02:37

Re: Modern guide to XUL?

Unread post by mrnhmath » 2024-03-01, 01:03

@PseudoDistant If you're still interested, the correct command for generating the Goanna/XULRunner SDK
from the XULRunner objdir is

Code: Select all

make client.mk sdk
instead of

Code: Select all

./mach sdk
Apologies for the noise, I'm just getting back on work.

User avatar
PseudoDistant
Moonbather
Moonbather
Posts: 73
Joined: 2024-02-06, 20:19

Re: Modern guide to XUL?

Unread post by PseudoDistant » 2024-03-03, 05:25

mrnhmath wrote:
2024-03-01, 01:03
@PseudoDistant If you're still interested, the correct command for generating the Goanna/XULRunner SDK
from the XULRunner objdir is

Code: Select all

make client.mk sdk
instead of

Code: Select all

./mach sdk
Apologies for the noise, I'm just getting back on work.
You're good.
Of course I'm interested. I unfortunately have a few issues I need to address right now, but I absolutely need a non-Chromium alternative, even if that means I have to get my hands dirty with Chromium (I created a page on my site, but the gist of it is "I want to make ChromeTab because I don't want to use ChromeTab in the future").
I really hope Pale Moon and Basilisk pick up, with Mozilla continuing down the road of enshittification, I don't want to live in a Chromium world.
Eat your school.
Eat your drugs.
Eat your teeth.