An alternative dual GUID method

Talk about code development, features, specific bugs, enhancements, patches, and similar things.
Forum rules
Please keep everything here strictly on-topic.
This board is meant for Pale Moon source code development related subjects only like code snippets, patches, specific bugs, git, the repositories, etc.

This is not for tech support! Please do not post tech support questions in the "Development" board!
Please make sure not to use this board for support questions. Please post issues with specific websites, extensions, etc. in the relevant boards for those topics.

Please keep things on-topic as this forum will be used for reference for Pale Moon development. Expect topics that aren't relevant as such to be moved or deleted.
Kriton
Moongazer
Moongazer
Posts: 13
Joined: 2014-04-30, 05:31
Location: Greece

An alternative dual GUID method

Unread post by Kriton » 2014-10-17, 04:51

I just had an idea that may improve dramatically the situation with many firefox extensions having become incompatible with pale moon 25, while keeping the idea of having a new GUID for pale moon:

Instead of pale moon having a new GUID, while also supporting firefox's GUID, do it the other way round. Have pale moon have firefox's GUID, while also supporting its own GUID, to be used only in install.rdf. This way, all firefox extensions will be considered compatible with pale moon (which I understand is the intention of supporting firefox's GUID in the current dual GUI scheme), while it will also be possible to write pale moon specific extensions (which I assume is tehreason that the new GUID was introduced).

Yes, it is not a "clean" solution, in the sense that pale moon specific extensions would have to use two GUID's, one in install.rdf and one elsewhere, but it will make users happy and it will save tons of work (no need to contact extension authors, no need to fork numerous extensions, no need to waste time explaining again and again to users why this situation exists). This way, the only extensions, that the pale moon site will need to provide, will be pale moon specific ones and, perhaps, pointers to older verions of extensions that are now australis specific.
I reversed the polarity of the neutron flow...

User avatar
Night Wing
Knows the dark side
Knows the dark side
Posts: 5173
Joined: 2011-10-03, 10:19
Location: Piney Woods of Southeast Texas, USA

Re: An alternative dual GUID method

Unread post by Night Wing » 2014-10-17, 12:14

I don't think this can be done, but Moonchild or Tobin can verify this.
Linux Mint 21.3 (Virginia) Xfce w/ Linux Pale Moon, Linux Waterfox, Linux SeaLion, Linux Firefox
MX Linux 23.2 (Libretto) Xfce w/ Linux Pale Moon, Linux Waterfox, Linux SeaLion, Linux Firefox
Linux Debian 12.5 (Bookworm) Xfce w/ Linux Pale Moon, Linux Waterfox, Linux SeaLion, Linux Firefox

Kriton
Moongazer
Moongazer
Posts: 13
Joined: 2014-04-30, 05:31
Location: Greece

Re: An alternative dual GUID method

Unread post by Kriton » 2014-10-17, 13:27

I assume that the two GUIDs are declared somewhere in the code. What I propose is to swap them.
I reversed the polarity of the neutron flow...

New Tobin Paradigm

Re: An alternative dual GUID method

Unread post by New Tobin Paradigm » 2014-10-17, 14:06

This not possible.

Kriton
Moongazer
Moongazer
Posts: 13
Joined: 2014-04-30, 05:31
Location: Greece

Re: An alternative dual GUID method

Unread post by Kriton » 2014-10-17, 16:42

I would have thought that what Moonchild did, by implementing dual GUIDs in palemoon was impossible, but he did it nevertheless!

Having looked at (but not understood) the code and seen numerous references to both GUIDs, I would think that, given what Moonchild has already accomplished, this may be quite possible, at least at a technical level. There could be other reasons, of course (e.g., political, licensing, etc.) which dictate that this should not be done. If that is the case, then, obviously, you guys, who are closer to the project, know best. Otherwise, I'd really like to hear Moonchild's opinion on the subject.

I agree that it would involve more than swapping every single GUID reference to its counterpart. It would be more like undoing every change involving GUIDs and then reimplementing the support for a secondary GUID, which this time would be palemoon's, not firefox's.

Having said that, I just swapped all occurrences of the two GUIDs and started making a Linux build, to watch the tweaked browser explode in my face! (In the unlikely case that it works, I understand that this not the way to do it—it will be fun, though!)
I reversed the polarity of the neutron flow...

New Tobin Paradigm

Re: An alternative dual GUID method

Unread post by New Tobin Paradigm » 2014-10-17, 16:49

What YOU are suggesting is not possible and for the stuff that is it is the wrong approach. We accept installation of all Firefox add-ons. That is as far as we are able to go. Read the FAQ entry for more detailed information.

tl;dr what can be done has been done and that is the way it is.

Kriton
Moongazer
Moongazer
Posts: 13
Joined: 2014-04-30, 05:31
Location: Greece

Re: An alternative dual GUID method

Unread post by Kriton » 2014-10-17, 19:58

I think you are being way too negative.

This is one developper addressing another, offering a solution to a problem, not a user whining, so please do not redirect me to an FAQ. As I mentioned previously, if there are reasons other than technical, for rejecting my suggestion, please say so, and I am not going to argue.

Limiting myself to the technical side, I just logged in to report that I finished building the version of pale moon with the two GUIDs swapped, as I mentioned in my previous post, and it worked! By "it worked", I mean the following:

With a clean profile:
  • I was able to install two problematic addons (Adblock Plus and Forecastfox) from addons.mozilla.org, and they ran perfectly, without requiring any modification.
  • I downloaded an addon that works fine with pale moon (Firegestures). I unpacked it, changed firefox's GUID in install.rdf to pale moon's, repacked, and tried installing it in both pale moon and firefox. It installed and ran fine in pale moon and, as expected, failed to install in firefox, which clamed that the addon was incompatible with it. This verifies that it is still possible to write pale moon-specific addons for this tweaked version.
I do not claim that swapping the two GUIDs everywhere is the correct approach for implementing my suggestion (though it might very well turn out to be, after this experiment!) but it does serve as a proof of concept that what I suggest is anything but impossible.

As I mentioned in my previous post, all credit should go to Moonchild, for coming up with the dual GUID approach. I am merely tweaking his approach.

Still waiting to read his views on the subject,

Kriton.
I reversed the polarity of the neutron flow...

User avatar
LimboSlam
Board Warrior
Board Warrior
Posts: 1029
Joined: 2014-06-09, 04:43
Location: USA

Re: An alternative dual GUID method

Unread post by LimboSlam » 2014-10-17, 21:19

Bad idea! No offense :D I just think having PM still carry FF suckish code will never let it reach it's full potential.
With Pale Moon by my side, surfing the web is quite enjoyable and takes my headaches away! :)
God is not punishing you, He is preparing you. Trust His plan, not your pain.#‎TrentShelton #‎RehabTime

Supernova

Re: An alternative dual GUID method

Unread post by Supernova » 2014-10-17, 21:39

:roll:

access2godzilla

Re: An alternative dual GUID method

Unread post by access2godzilla » 2014-10-18, 03:33

Have you tried installing Jetpack addons? Those often turn out to be problematic at times. But nevertheless an interesting approach!

I would like to see the diff though, to better understand what you have done.
Off-topic:
Tobin, your assumption that no other solution can be better than the ones developed by the PM dev team; or that no one is capable of understanding source code better is quite wrong. (Of course I do not mean that the compatibility retention in Pale Moon is suboptimal.)
Last edited by access2godzilla on 2014-10-18, 18:30, edited 1 time in total.

Mercury

Re: An alternative dual GUID method

Unread post by Mercury » 2014-10-18, 04:13

Matt A Tobin wrote:This not possible.
This statement is clearly false. It is possible. Whether it is a good idea or not does not change the fact that it is possible.

These kinds of blunt shut-downs relying on incorrect information make it more difficult to believe other, potentially true statements coming from the same source. Trust is hard-won, and easily lost. Please don't do this.
Kriton wrote:while it will also be possible to write pale moon specific extensions (which I assume is tehreason that the new GUID was introduced).
While my understanding is not perfect, what I have gleaned form the various FAQs and announcements is that the new GUID has multiple reasons behind it. But doing the GUID-swap you've essentially reverted Pale Moon back to being a flavour of Firefox, and undone all the advantages, present and future, it brings. The main thrust behind the new GUID is the statement that Pale Moon is not Firefox. Your "fix" is for Pale Moon to continue to claim that it is Firefox.

While it is arguable (and has been, and no doubt will continue to be, argued) that the old approach might be better and produce a more functional product, it is not the approach Moonchild et al. have decided on. Your solution won't be accepted because it is effectively a reversion of what has been done.

New Tobin Paradigm

Re: An alternative dual GUID method

Unread post by New Tobin Paradigm » 2014-10-18, 10:57

It is not possible to do what he wants in a safe, predictable, and reliable way because of the way GUIDs are used in the program. Having the Firefox one being primary and the Pale Moon one being secondary is just a reversal in the same situation we have now. (Plus all the all the reasons we wanted to proceed with this change being completely ignored and made irrelevant) Let me clue you in on something.. IF we could have the manifest parser that deals with XUL overlays could be changed to accept the firefox guid and apply overlays as if this was Firefox was possible and accept the native app guid.. we would have done it.. In fact we did try to do it. The code is not accepting of this and the work had to be abandoned. The most we can do without rewriting massive amounts of the code deep at the core of how mozilla based programs are constructed and function (which could render this entire situation moot as it would be a fundamental change that would break complete compatibility at more than just the surface level we have now) is what we HAVE done.

So yeah i guess not being possible is not a black and white truth but it is a feasible truth.. It is not feasibly possible to do what he wants and as for the rest we simply aren't going to for reasons given elsewhere. You can have the ability to use Firefox add-ons that install and function if passing the install check is the only limiting factor here OR you can have NO firefox add-ons function. That is your choice as far as Pale Moon is concerned and we have chosen the former.

But this is a community project so if you can find a solution to allow us to have our unique guid and accept the firefox guid for xul overlays and not entirely blow up the parser then patches welcome.

DAOWAce

Re: An alternative dual GUID method

Unread post by DAOWAce » 2014-11-01, 17:12

Kriton wrote:Limiting myself to the technical side, I just logged in to report that I finished building the version of pale moon with the two GUIDs swapped, as I mentioned in my previous post, and it worked!
I'd take it.

I could've switched to Palemoon prior to this change, but now I can't since I use ABP, Greasemonkey, Stylish and some other misc addons.. and Stylish is barely functional now + other things I can't remember. I don't have the technical knowledge of the browsers to check compatibility with everything else, so I've just opted to sit and wait for a solution to this issue (more than 'use this forked version') rather than risk it. I don't quite need it right now anyway.. maybe when a firefox version is released that actually supports web standards (HTML5) and palemoon is built from it, but until then I'm fine using v28, the last FF version with a non-terrible UI. (Well, I said this back when FF4 was released, but Australis is irredeemable.)

SvenG

Re: An alternative dual GUID method

Unread post by SvenG » 2014-11-01, 17:42

DAOWAce wrote: and Stylish is barely functional now
Nope, Stylish is full functional, just has two icons in about:addons. Also the next version of Stylish which is already available as a beta will come with Pale Moon support added..

dark_moon

Re: An alternative dual GUID method

Unread post by dark_moon » 2014-11-01, 18:00

SvenG wrote:Stylish is full functional, just has two icons in about:addons.
Add this in your userchrome to fix the two icons bug:

Code: Select all

#category-userstyles {display:none !important}

DAOWAce

Re: An alternative dual GUID method

Unread post by DAOWAce » 2014-11-02, 07:48

SvenG wrote:Nope, Stylish is full functional, just has two icons in about:addons. Also the next version of Stylish which is already available as a beta will come with Pale Moon support added..
Hm, maybe it was Greasemonkey then?

I tested it a few weeks ago on another OS install where I replaced IE with PM. I just remember something barely being functional.

ABP doesn't have its tools menu, which I used relatively often, but this is a known issue. (latest PM version is older than the official one too)

I also use Screengrab, and used to use a few other addons (findbar tweak, HTTPS everywhere, nightly tester tools), but disabled or removed them.

Good to hear some addons are finally coming out with proper PM support. Hopefully things will be better when the next Firefox version is released with proper HTML5 support (60FPS Youtube) and PM is built from it (though considering the issue with MSE, I question how long it will take), as once that happens, I'll probably be switching over once and for all.
dark_moon wrote:Add this in your userchrome to fix the two icons bug:

Code: Select all

#category-userstyles {display:none !important}
I added it as a new stylish style, works just fine! Thanks.

User avatar
Sajadi
Board Warrior
Board Warrior
Posts: 1227
Joined: 2013-04-19, 00:46

Re: An alternative dual GUID method

Unread post by Sajadi » 2014-11-02, 10:19

DAOWAce wrote:Hopefully things will be better when the next Firefox version is released with proper HTML5 support (60FPS Youtube) and PM is built from it
Seems you have missed something important! Moonchild has stated that Firefox and Pale Moon go different ways now, so do not expect that Pale Moon's engine is completely exchanged against one of those later unstable codebases for the near future. Instead as it was earlier done, carefully choosen features which make sense and and security patches will be brought over from later Gecko Engines to Pale Moon.

When or if there is ever again a full engine switch, only our great developer does know. And as long as things work out fluid that way, switching to a more unstable Australis codebase, where it is not known at all if it is possible to keep it running with Australis patched out would be a true madness!
Last edited by Sajadi on 2014-11-02, 11:16, edited 1 time in total.

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

Re: An alternative dual GUID method

Unread post by Moonchild » 2014-11-02, 11:03

To address some concerns in this thread:
  • A program can only have one GUID. The "dual-GUID" setup applies to providing compatibility for a second application GUID in the installation and handling of XPIs. That does not mean that the application suddenly has 2 GUIDs.
  • Pale Moon should not continue carrying the Firefox GUID, because it is, in all respects, completely split off now. Maintaining the Firefox GUID is not only bad from a technological point of view (even though it does cause some issues becoming a "new application" from an extension point of view) but also causes confusion as to the state of the browser and the project as a whole. Yes, this is a big deal.
  • Swapping the GUIDs is of course going to compile, but what you are doing then is building yet another "Firefox-identified clone" like Pale Moon's state was before 25.0 - but then with the added possibility to install Pale Moon extensions (that are likely not going to work in the same way that specifically Firefox targeted extensions don't work). What would be the point of even making such a build, apart from not wanting to accept this necessary change?
  • Of course it is theoretically possible to implement any sort of multi-GUID system you can think up. Any. The sky is the limit.
    But theory and practice are two completely different things, here. So, in a practical sense, it is not possible, and that is what Tobin meant. If you are familiar with how any Mozilla-based application is built, you would understand that it's simply not at all feasible to go in and change things around. There's literally years of coding between single GUID core and multi-GUID core because you'd have to completely rewrite the basic structure of the core and the elaborate security measures in place for components, interfaces and wrappers... And for what? Just to satisfy the extensions that are focusing on the rapid release constantly tweaked and increasingly incompatible Firefox features? That really is too great a cost for no return.
"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

Supernova

Re: An alternative dual GUID method

Unread post by Supernova » 2014-11-02, 13:54

DAOWAce wrote:ABP doesn't have its tools menu, which I used relatively often, but this is a known issue. (latest PM version is older than the official one too)

I also use Screengrab, and used to use a few other addons (findbar tweak, HTTPS everywhere, nightly tester tools), but disabled or removed them.
ABP ; screengrab & findbar tweak have adapted versions for Pale Moon.

Grail Knight

Re: An alternative dual GUID method

Unread post by Grail Knight » 2014-11-12, 14:10

dark_moon wrote:
SvenG wrote:Stylish is full functional, just has two icons in about:addons.
Add this in your userchrome to fix the two icons bug:

Code: Select all

#category-userstyles {display:none !important}
I used a fix similar to the one for AdblockEdge 2.16 to fix Stylish.

Open (Do not unzip) up Stylish using 7zip of similar and drag the chrome.manifest to the desktop and open in notepad.

Search for all instances of ec8030f7-c20a-464f-9b0e-13a3a9e97384 and replace them with 8de7fcbb-c55c-4fbe-bfc5-fc555c87dbc4

Save the file and then drag it back into Stylish.

Reinstall Stylish in PaleMoon and it should solve the double button in the addons manager.

Locked