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

Non-functional since Pale Moon 29.4.0? #16

Closed
b9AcE opened this issue Aug 17, 2021 · 42 comments
Closed

Non-functional since Pale Moon 29.4.0? #16

b9AcE opened this issue Aug 17, 2021 · 42 comments

Comments

@b9AcE
Copy link

b9AcE commented Aug 17, 2021

I have been using this extension for many years and it has been extremely helpful for me as I am visually impaired.
However, when the Pale Moon update for version 29.4.0 was applied, it seems that made NoSquint version 2.2.2 lose most of its functionality.

For example:

  • It no longer applies the global or site-specific zoom levels on page load, but applying a "full zoom" via the statusbar field's menu still works, however has to be re-applied each time a page is loaded.
  • It is also not possible to open the "Global Settings" or "Site Settings" through that menu. Those options just do nothing at all.
  • Lastly, out of the issues I have noticed yet, if one opens "[menu bar] Tools" → "Add-ons" → "NoSquint" → "Options", then none of the "OK", "Cancel" or "Help" buttons for that dialog box anymore. Clicking them just does nothing at all, not even closing the dialog box.

I am not aware of any of these issues being present in the previous Pale Moon version.

Hoping for a quick fix to this extension's functionality, as I rely on it quite heavily since becoming visually impaired.
Thank you!

@Gordon-Dry
Copy link

Gordon-Dry commented Aug 17, 2021

Same here, I just wanted to open an issue.

I can open the settings throught the addons tab, but I cannot close the settings popup by clicking Ok or Cancel, just by clicking the X on top right.
The changed settings are not applied.

@Gordon-Dry
Copy link

Gordon-Dry commented Aug 18, 2021

Here are some more clues about this issue:
https://forum.palemoon.org/viewtopic.php?p=219213#p219237

A quick scan of the source code shows that Application is not defined anywhere at all.
Nosquint uses it but does not create it.

@Gordon-Dry
Copy link

And brand new, I quote from
https://forum.palemoon.org/viewtopic.php?p=219247#p219249

THIS IS AN AUTHORITATIVE ANSWER TO ISSUES AT HAND. PLEASE REFERENCE IT IN OTHER THREADS!

We have identified that this and any other busted extension that cites Application as not being defined this release was because we removed the ancient first generation Mozilla, FUEL, attempt to make extensions "easier" to code. While we have had a deprecation message emitted for any consumers for some time.. Obviously some did not get the message.

Because FUEL was defined globally by its self in a way rarely seen that did NOT need initialization directly like most XPCOM JS Components. As a consequence of this, we missed a few aberrant uses in the browser core as well. As such we are going to to make an out-of-band release which will restore the FUEL component for the time being. However, extension developers should take notice and start work on updating their extensions to standard toolkit methods because the restoration will be short lived.

@b9AcE
Copy link
Author

b9AcE commented Aug 18, 2021

The non-functionality issue has temporarily been suspended by the issue-specific hotfix release 29.4.0.1 of Pale Moon (https://forum.palemoon.org/viewtopic.php?t=27276&p=219262#p219262) but as the release announcement states, "please update your extension before the next major release".

Note that the issue itself is NOT fixed, just temporarily worked around and will reoccur when the mentioned "FUEL component" is removed again,
so this problem report should not be closed until future compatibility has been ensured.

@Gordon-Dry
Copy link

All hacks and troubleshootings are really obsolete now, as with Pale Moon 29.4.2 the support for FUEL is finally scrapped.
NoSquint finally does not work anymore.

@b9AcE
Copy link
Author

b9AcE commented Nov 9, 2021

This is extremely unfortunate.
The changelog for Pale Moon 29.4.2 did not mention that change and checking to make sure it wasn't there was specifically the reason I read the changelog. Very bad practice to just omit known failure-causing changes from a changelog.
Because of this, I am now as a visually impaired person back at being unable to realistically use Pale Moon and will have to migrate to some browser I would have otherwise still considered inferior.

If anyone has a suggestion for a workaround in Pale Moon or does decide to fork/develop a new extension with similar functionality to that of NoSquint, please consider notifications to this problem report very much welcome!

@ErolB1
Copy link

ErolB1 commented Nov 10, 2021

The Pale Moon people claim that it ought to be an easy-peasy, super-simple, just stop whining and go ahead and do it fix to make NoSquint compatible again. But looking at the source code and js files, I am daunted.

Does anyone else have more of a clue than I do?

@Gittyperson
Copy link

Check this post, and the following ones: https://forum.palemoon.org/viewtopic.php?f=3&t=27261&start=20#p219618

@Gordon-Dry
Copy link

@Gittyperson well, this is the outdated info you're referring to. btw at least I was involved in those posts.

@lczlcz
Copy link

lczlcz commented Nov 10, 2021

there are some other legacy firefox addons we might be able to use. I remember I used one called zoom page. Now it's called zoom page we. But I don't know where we can find those legacy addons.

@Gittyperson
Copy link

You can find most of them here:

Classic Add-ons Archive

@lczlcz
Copy link

lczlcz commented Nov 14, 2021

That is a combined xpi file with a big sqlite life in it. Is there a way to just separate one of the addons out of that file?

@lczlcz
Copy link

lczlcz commented Nov 14, 2021

oh, never mind. I figured it out. Need to install it first to get other addons. thank you.

@lczlcz
Copy link

lczlcz commented Nov 16, 2021

ok, I don't think we need no squint anymore. I changed the ID of two other addons. One is called global zoom - you can set zoom setting for one tab and it applies to all other tabs.
Other one is called zoom page. You can set default zoom level for all pages, pictures, text. It works perfectly in my PM now.

@Gittyperson
Copy link

I still believe we need as Pale Moon users -not individually since NoSquint has been made to work, too- at least one zoom manager extension in the Pale Moon Add-ons Site, and NoSquint is the best of the bunch.

@ErolB1
Copy link

ErolB1 commented Nov 16, 2021

I agree that we need at least one zoom manager extension in the Pale Moon add-ons site, and that NoSquint is the best of the bunch. But someone needs to keep it up-to-date as the Pale Moon developers change things in ways that make the old extensions stop working. It's not just changing the ID; the plan, according to the Pale Moon forum, is to drop the use of install.rdf files in favor of some JSON thing. And other changes can be expected to come around and bite the old extensions at any time, the way dropping FUEL did to NoSquint.

And pace MoonChild it has to be someone who can program. (He claims "Almost all extensions were made by "consumers" of Firefox. Updating isn't even close to making one from scratch. If they could, you can. Regular people made this, not some wizards of coding." But this is not the case. The extensions were created by a specially skilled subset of Firefox users who were actually wizards of coding.)

@Jirido
Copy link

Jirido commented Nov 16, 2021

Hi. I use pentadactyl and is so happens pentadactyl leaves a clue.
Processing resize event: TypeError: NoSquint.prefs is undefined.

I'm no programmer but just by searching trough the source folder I find references to nosquint.prefs
in /src/content/zoommanager.js line 53 return viewer.fullZoom != 1.0 ? true : NoSquint.prefs.fullZoomPrimary;
/src/content/browser.js line 35 NoSquint.prefs.checkVersionChange();
/src/content/prefs.js line 14 NoSquint.prefs = NoSquint.ns(function() { with(NoSquint) {
line 24 this.id = 'NoSquint.prefs';
line 896 NoSquint.prefs.save();
/src/defaults/preferences/nosquint.js line 15 pref("extensions.nosquint.prefsVersion", '0');

I guess some of the other extension managers could manage to figure it out if there is no reaction on this from EbonJaeger.

@Gittyperson
Copy link

I believe it has already been figured out and fixed, for personal use only at the moment. You just need to look at the Pale Moon forum links above.

@b9AcE
Copy link
Author

b9AcE commented Nov 16, 2021

It could be very helpful if someone would please summarize this referenced fix here or link to a concise summary elsewhere, as reading through long threads of text can be extremely exhausting at best for visually impaired people, probably a primary user group of NoSquint.

@NintendoManiac64
Copy link

NintendoManiac64 commented Nov 16, 2021

EDIT For reference, this is the supposed "fix" that I question the validity of: https://forum.palemoon.org/viewtopic.php?f=3&t=27261&start=20#p219622


It should really be worth noting that the aforementioned fix was NOT tested on 29.4.0 (only on 29.4.0.2... the version where stock NoSquint already worked) and, from my own testing whereby AFAICT I did everything 100% correctly, the supposed "fix" doesn't actually make the extension work... or at least function enough to the point of being actually usable.

(for reference, despite my inability to code as hardware is my specialty rather than software, I am at least quite computer savvy and am able to poke around config and/or script files and the like)

Now I don't want this to be taken as gospel as, like I said, I can't code worth a darn so it's extremely possible that I did in fact screw up the process. However, as someone that is extremely OCD when it comes to doing any sort of testing, the fact that it wasn't even tested on 29.4.0 raises huge red flags for the validity of the supposed "fix" (I mean, it's not like it was difficult to test when portable versions of v29.4.0 are made available in the "archived versions" which is what I used for trying out the supposed "fix").

@Jirido
Copy link

Jirido commented Nov 16, 2021

Obviously this is a very loved extension and I am happy to see the action here in the middle of the night, gathering around the fire for their fix.
I trust that it will live on good and strong by the early morning light.

@ErolB1
Copy link

ErolB1 commented Nov 16, 2021

For what it's worth, I'm running PM 29.4.2 (not 29.0.2) and the "fixed" version is working for me.
EDIT
On Pale Moon Portable 29.4.2.1, the standard NoSquint installed via the Pale Moon site does not work, but if I upgrade NoSquint to the "fixed" version, it does.

@Gittyperson
Copy link

Gittyperson commented Nov 16, 2021

It could be very helpful if someone would please summarize this referenced fix here or link to a concise summary elsewhere...

The NoSquint issue was caused by the sensible removal of the very old FUEL component. From the PM release notes:

"...the optional FUEL component (long since deprecated precursor to the Mozilla Add-On SDK) was removed from Pale Moon"

This fix by astewart on the Pale Moon forum involves editing two files.

On init.js, the code described here needs to be added near the end of the file (where to add it is perhaps irrelevant).

On lib.js, the instructions are here. That code needs to replace the corresponding original lines, and also an additional simple text search/replace operation is required.

Application.storage.get becomes NSQApp.storage.getItem
Application.storage.set becomes NSQApp.storage.setItem

That's it.

@Jirido
Copy link

Jirido commented Nov 17, 2021

I made the mistake to do a search and replace of .get to .getItem and .set to .setItem.. in lib.js
Do not do that. THERE IS A LOT OF bundle.getSimpleEnumeration, this.getStringBundle and such that get destroyed if you do.
Else this worked grate for me. SUPER DUPER Alice Cooper! I'm a Super Trooper.

So why not only make a pull request in this repo? Will it not validate?
New Tobin in the palemoon thread suggest it will not, saying: "If you are just gonna shitfork it, don't bother. You likely wouldn't get past validation anyway.. Let alone review."

Is this just negativity or are an "deeper" solution necessary?

@b9AcE
Copy link
Author

b9AcE commented Nov 17, 2021

Maybe someone that believes themself to have acquired a completely successful implementation of the required fix could even post a diff output here,
so that others can reach the same result using a patch-command locally,
instead of everyone having to make their own attempt at achieving the exact same result?

@Gittyperson
Copy link

...could even post a diff output here...

If possible, give me a quick guide on how to do that and I might attempt it later. Thanks.

@b9AcE
Copy link
Author

b9AcE commented Nov 17, 2021

This seems like a good guide for beginners on how to create a diff-file,
especially since they also have a corresponding guide for how to apply the patch and both
guides include instructions both for Windows and Linux (and some more).

@Gordon-Dry
Copy link

Well, all this fuss still does not make it work on Pale Moon 29.4.2.1

@Gittyperson
Copy link

Gittyperson commented Nov 17, 2021

Thanks b9AcE. I've created the two patch/diff files below using WinMerge. It seems they correctly indicate the differences between the original and patched files. Now, I'm not sure what the heck I can do with them here on Github, apart from merely attaching them on a comment (which I haven't, yet).

init.js.patch
lib.js.patch

@Gittyperson
Copy link

Gittyperson commented Nov 17, 2021

By the way, I extracted the nosquint.jar file (which contains init.js and lib.js) because WinMerge didn't seem to like working directly on it.

@Gittyperson
Copy link

2 diff files.zip

@Gittyperson
Copy link

Gittyperson commented Nov 17, 2021

Not sure if necessary, but before installing the patched NoSquint I recommend to:

  1. Uninstall NoSquint (settings won't be lost)
  2. Restart Pale Moon
  3. Go to about:config, find browser.zoom.siteSpecific and set it to True. This restores Pale Moon's default setting (NoSquint will set it back to False in the next step).
  4. Install the patched NoSquint

@b9AcE
Copy link
Author

b9AcE commented Nov 17, 2021

Thank you, @Gittyperson!
I took your two loose diff-files and made them into a file of the more convenient and normally used unified diff format instead, in nosquint_nofuel.zip.
I have not had the ability to verify the functionality, but this should make it easier for others to do that and to compare with each other in case there are issues or future further improvements.

@NintendoManiac64
Copy link

NintendoManiac64 commented Nov 17, 2021

I took your two loose diff-files and made them into a file of the more convenient and normally used unified diff format instead,

My lack of software-dev & command-line skills are making me have trouble using these patch files... Think you could make one in the BPS or xDelta patch format instead? Also it's unclear what file we're supposed to be patching - is it the v2.2.2 XPI file directly?

Maybe things are different in the software-dev world, but as someone with a background more in retro game console modding, I've found the patch formats IPS, BPS, and xDelta to be much more commonly used and have a slew of GUI patchers and patch-creation software for them, including even a browser-based one:

http://www.marcrobledo.com/RomPatcher.js/

(I generally would recommend using BPS or, for larger 1+GB files, xDelta; IPS is a legacy format that, much like MP3 and GIF, is only still widely used due to inertia)

@EbonJaeger
Copy link
Owner

@NintendoManiac64

I took your two loose diff-files and made them into a file of the more convenient and normally used unified diff format instead,

My software-dev & command-line in-expertise is making me have trouble using these patch files... Think you could make one in the BPS or xDelta patch format instead? Also it's unclear what file we're supposed to be patching - is it the v2.2.2 XPI file directly?

It looks to be just a standard git diff. To apply it, you would clone the repo, and run git am path/to/the/patch/file, then rebuild the extension (there is a script to do this in the root of the project). I suppose you could directly patch an existing... whatever file an extension is these days..., since iirc it's just an archive, but that would be a bit more painful to do.

@Gittyperson @b9AcE

Thanks b9AcE. I've created the two patch/diff files below using WinMerge. It seems they correctly indicate the differences between the original and patched files. Now, I'm not sure what the heck I can do with them here on Github, apart from merely attaching them on a comment (which I haven't, yet).

init.js.patch lib.js.patch

The standard way to submit changes to a git project (on GitHub, tho the flow is the same for any other repository hosting like GitLab) is to:

  1. Fork and clone the project
  2. Create a new branch to work in
  3. Make the desired code changes
  4. Commit those changes
  5. Push the commit(s) to your forked repo
  6. On GitHub, create a Pull Request (visiting the branch in GitHub will prompt you to do this), making sure that the target is the upstream repository

All that said, ideally someone who wants to maintain this should fork this repo, do anything necessary, and work with PM for ownership. I moved on from Pale Moon years ago and have no desire to be a part of... all of that.

@NintendoManiac64
Copy link

NintendoManiac64 commented Nov 17, 2021

ideally someone who wants to maintain this should fork this repo, do anything necessary, and work with PM for ownership.

The user back2themoon on the forum sounds like they may be interested in such a thing:
https://forum.palemoon.org/viewtopic.php?f=46&t=27580&p=221681&hilit=nosquint#p221683

EDIT At least temporarily,, Tobin is taking what he calls "casual charge" for the time being:
https://forum.palemoon.org/viewtopic.php?f=46&t=27580&start=20#p221703

@ErolB1
Copy link

ErolB1 commented Nov 17, 2021

@EbonJaeger

The standard way to submit changes to a git project (on GitHub, tho the flow is the same for any other repository hosting like GitLab) is to:

1. Fork and clone the project

2. Create a new branch to work in

3. Make the desired code changes

4. Commit those changes

5. Push the commit(s) to your forked repo

6. On GitHub, create a Pull Request (visiting the branch in GitHub will prompt you to do this), making sure that the target is the upstream repository

I've done that to clean up the super ancient code of issue 3, as best I could as a first-time newbie. That ancient code is also a small part of this issue. My changes work on PM 29.4.0.1 at least as well as the hard-code the variables hack, but I suspect that there are still bits of cleanup I missed.

All that said, ideally someone who wants to maintain this should fork this repo, do anything necessary, and work with PM for ownership. I moved on from Pale Moon years ago and have no desire to be a part of... all of that.

I'm mildly tempted to "work with PM for ownership" just to make Moonchild eat crow about his "If they could, you can. Regular people made this, not some wizards of coding." But I'm not in for being yelled at when things get screwed up because I'm in over my head.

@b9AcE
Copy link
Author

b9AcE commented Nov 17, 2021

Also it's unclear what file we're supposed to be patching - is it the v2.2.2 XPI file directly?

Maybe things are different in the software-dev world, but as someone with a background more in retro game console modding, I've found the patch formats IPS, BPS, and xDelta to be much more commonly used

That is true for patching binary files, but .diff has been the main, near only, format for patching pure text files and similar such as source code for oh, about 50 years.

Here's something I wrote for you now:

1. Copy "nosquint@me.ebonjaeger.com.xpi" from your Pale Moon extensions-directory to a temporary working directory,
   rename it to "nosquint@me.ebonjaeger.com.xpi.ORIGINAL.zip" and copy the diff-file to
   "nosquint_nofuel.diff" in the same location.
2. Right-click and select whichever "Extract to [...]" option your 7-zip/WinRAR/equivalent hopefully has added to that menu.
   This extracts the file into a NEW directory by that name, as opposed to "Extract Here" or similar options.
3. Go into the new "nosquint@me.ebonjaeger.com.xpi.ORIGINAL" directory and then further into the "chrome" directory,
   where a file named "nosquint.jar" should exist.
4. Rename that file to "nosquint.jar.zip", right-click it and choose "Extract to nosquint.jar" then delete the file "nosquint.jar.zip".
5. Open a Linux command prompt in the directory "nosquint@me.ebonjaeger.com.xpi.ORIGINAL".
   If you are using Windows 10/11 your can for example use the integrated WSL from Microsoft for that.
6. Enter the command "patch -p1 < ../nosquint_nofuel.diff" and hopefully see two lines starting with "patching file".
7. Compress the content of the directory "nosquint.jar" back to become "nosquint.jar.zip" again,
   delete the directory "nosquint.jar" then rename the file back to "nosquint.jar".
   Note that it should be the content of the directory, not the directory and its content.
8. Go back to your working directory where "nosquint@me.ebonjaeger.com.xpi.ORIGINAL" is located and
   rename it to "nosquint@me.ebonjaeger.com.xpi" then compress its content
   to become "nosquint@me.ebonjaeger.com.xpi.zip" and finally rename it back to just "nosquint@me.ebonjaeger.com.xpi"
   (or whatever else you feel is better, but always ending with .xpi) and install that resulting file into Pale Moon.

@b9AcE
Copy link
Author

b9AcE commented Dec 14, 2021

From the release notes of newly released Pale Moon version 29.4.3:

Despite being removed in 29.4.0 and 29.4.2, the long-since deprecated FUEL abstraction functions inside Pale Moon
have been restored again after considerable blowback from the community and lack of effort to fix afflicted extensions.
It was decided to just restore this indefinitely in the end, since it serves no-one to have users be forced to do without
or stay on insecure versions of the browser for something nobody seems to want to address in the extension ecosystem.

So, presumably this should mean this issue is now indefinitely no longer an issue,
but I will leave the issue open for a while just for in case something unexpectedly remains related to the original issue.

@Gordon-Dry
Copy link

Gordon-Dry commented Dec 14, 2021

I tried the "fuel fixed" version with Pale Moon 29.4.3 - it does not work.
I will try the "normal" version 2.2.2 now.

Edit:
The "normal" version works.

@b9AcE
Copy link
Author

b9AcE commented Dec 14, 2021

I already tried removing the modified version of NoSquint and reinstalling it from https://addons.palemoon.org/addon/nosquint/ and it all works again for me, including remembering previous zoom levels.

@b9AcE
Copy link
Author

b9AcE commented Dec 20, 2021

Well, it's been 6 days since FUEL was rolled back into Pale Moon and nobody added any outstanding problems here, so I will hereby close this issue considering it resolved.
Thanks to everyone that contributed towards the resolution.

@b9AcE b9AcE closed this as completed Dec 20, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

8 participants