Flashify funne thread

General project discussion.
Use this as a last resort if your topic does not fit in any of the other boards but it still on-topic.
Forum rules
This General Discussion board is meant for topics that are still relevant to Pale Moon, web browsers, browser tech, UXP applications, and related, but don't have a more fitting board available.

Please stick to the relevance of this forum here, which focuses on everything around the Pale Moon project and its user community. "Random" subjects don't belong here, and should be posted in the Off-Topic board.
User avatar
PseudoDistant
Moonbather
Moonbather
Posts: 73
Joined: 2024-02-06, 20:19

Flashify funne thread

Unread post by PseudoDistant » 2024-03-05, 19:54

I suppose it's time.
I've made enough threads annoying people with my absolute dumness, but I haven't shown too much of what I have.
Here's a thread on Flashify!

What exactly is Flashify? I hear nobody ask.
Flashify is a UXP extension that forces Flash content to run in Flash instead of Ruffle.
Ruffle has a host of compatibility issues and browser-specific bugs (not to mention it has quite a few issues on Pale Moon specifically), but a lot of sites don't even give you the option to use Flash Player anymore.
So I made a neat little extension to play Flash content in Flash Player instead.
Image

It has three modes:
  • Embed
  • Redirect
  • New Tab
In Embed Mode, Flashify will re-embed the Flash content in place of the Ruffle content, offering an almost seamless experience.
In Redirect mode, Flashify will open the Flash content in the current tab directly, without the rest of the page.
In New Tab mode, Flashify will open the Flash content in a new tab.

Flashify will also have the option to automatically trust Flash content from Newgrounds, or any other supported website, should the user want to automatically load Flash content.
For untrusted sites, you will click the Flashify extension icon to Flashify the page, or the dropdown menu for more options. (The default option when clilcking the extension icon is also configurable.)
Image

Flashify will be ready very soon, I want to release it when it supports more than four websites ideally. :oops:
I also have a few more annoying bugs to deal with.
I'm only making this post now because I feel bad about not publishing it anywhere yet.
This is my first XUL extension, I've only had exposure to userscripts and WebExtensions before, so there's a lot of stuff for me to figure out, and I want to make sure it meets the (probably) high bar of "not modern JavaShit slop" that I want to achieve.
I do plan on releasing it, and I hope it will be useful to someone at least. :D
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: Flashify funne thread

Unread post by moonbat » 2024-03-05, 21:18

Congratulations on your first extension :)
If you can publish the source on a repository it will be easier to help fix any other issues, and then whenever you're ready it can go on the addons site as well.
"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
athenian200
Contributing developer
Contributing developer
Posts: 1537
Joined: 2018-10-28, 19:56
Location: Georgia

Re: Flashify funne thread

Unread post by athenian200 » 2024-03-05, 22:12

PseudoDistant wrote:
2024-03-05, 19:54
Flashify is a UXP extension that forces Flash content to run in Flash instead of Ruffle.
Ruffle has a host of compatibility issues and browser-specific bugs (not to mention it has quite a few issues on Pale Moon specifically), but a lot of sites don't even give you the option to use Flash Player anymore.
So I made a neat little extension to play Flash content in Flash Player instead.
I've actually been worried about sites forcing Ruffle down our throats and not letting us use real Flash Player anymore, regardless of whether we support it or not. I definitely like the idea. Having an extension like this definitely helps us keep doing what we've been doing, using real Flash and not the poorly-made substitute coded in... you won't even believe it, it's coded in Rust, of all things. :sick:
"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: Flashify funne thread

Unread post by PseudoDistant » 2024-03-05, 22:19

athenian200 wrote:
2024-03-05, 22:12
I've actually been worried about sites forcing Ruffle down our throats and not letting us use real Flash Player anymore, regardless of whether we support it or not. I definitely like the idea. Having an extension like this definitely helps us keep doing what we've been doing, using real Flash and not the poorly-made substitute coded in... you won't even believe it, it's coded in Rust, of all things. :sick:
Honestly I'm more scared that one of the top contributors is a Mojang developer than it itself being Rust. It doesn't matter how good or bad the language itself is if the developer using it is bad themselves.
There seem to be a few "Flash archive" sites that lock the real SWF file behind some sort of server-side DNS emulation or something, seemingly to prevent the user from doing these kinds of things.
I can't get a SWF file from Flash Museum, for example.
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: Flashify funne thread

Unread post by athenian200 » 2024-03-05, 22:40

PseudoDistant wrote:
2024-03-05, 22:19
Honestly I'm more scared that one of the top contributors is a Mojang developer than it itself being Rust. It doesn't matter how good or bad the language itself is if the developer using it is bad themselves.
Off-topic:
Well, honestly part of why I don't like Rust is because it tends to attract bad developers with bad motives and questionable associations. There's a reason why I like Pale Moon for not being coded in Rust, and am wary of Firefox because they're putting Rust in it. It's a language invented by Mozilla that changes its API so often that if you don't keep your code updated, it bitrots within months. It's hard to get your hands on older versions of the Rust compiler, and there isn't an alternative implementation. It's all from one vendor that I definitely don't think people should rely on.
"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

Daikun
Lunatic
Lunatic
Posts: 443
Joined: 2013-12-13, 20:54
Location: California

Re: Flashify funne thread

Unread post by Daikun » 2024-03-06, 04:28

So, does this mean it can embed the Flash content without using the Flash Player (if anyone still keeps it around)?
If so, wouldn't you have needed the source code for Flash to make this possible? Isn't Adobe pretty tight-lipped about releasing their source code?

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

Re: Flashify funne thread

Unread post by PseudoDistant » 2024-03-06, 06:03

Daikun wrote:
2024-03-06, 04:28
So, does this mean it can embed the Flash content without using the Flash Player (if anyone still keeps it around)?
If so, wouldn't you have needed the source code for Flash to make this possible? Isn't Adobe pretty tight-lipped about releasing their source code?
No, you need the Flash Player plugin installed.
The extension guts Ruffle embeds and modifies the web page to re-embed Flash content that renders in Adobe Flash Player.

Flash content in a website isn't actually embedded by Flash Player itself, rather an HTML object with the Flash mimetype.

Code: Select all

<object type="application/x-shockwave-flash" data="file.swf" width="500" height="400"\>
This is all a Flash embed was in HTML, just an object tag with a SWF file and some data to tell Flash Player how to deal with it.
You need Flash Player installed to use that Flash embed.
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: Flashify funne thread

Unread post by moonbat » 2024-03-06, 09:49

PseudoDistant wrote:
2024-03-06, 06:03
You need Flash Player installed to use that Flash embed.
It should be possible to query whether the Flash plugin is installed when your extension runs for the first time, and warn the user/uninstall itself if not.
"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
PseudoDistant
Moonbather
Moonbather
Posts: 73
Joined: 2024-02-06, 20:19

Re: Flashify funne thread

Unread post by PseudoDistant » 2024-03-06, 16:09

moonbat wrote:
2024-03-06, 09:49
It should be possible to query whether the Flash plugin is installed when your extension runs for the first time, and warn the user/uninstall itself if not.
Now the question is should I do that, or should I go the classic route and embed a message saying:

"Adobe Flash Player isn't installed, You can get it here."

directly in the web page?
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: Flashify funne thread

Unread post by moonbat » 2024-03-06, 20:06

That would definitely be easier to do.
"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
PseudoDistant
Moonbather
Moonbather
Posts: 73
Joined: 2024-02-06, 20:19

Re: Flashify funne thread

Unread post by PseudoDistant » 2024-03-07, 00:17

moonbat wrote:
2024-03-06, 20:06
That would definitely be easier to do.
tbh I don't care that much if it's easier to do, I'd be willing to learn regardless, it'd be more about authenticity I guess..?
Eat your school.
Eat your drugs.
Eat your teeth.

User avatar
THX-1139
Lunatic
Lunatic
Posts: 456
Joined: 2019-06-13, 13:42
Location: In a place with no YT

Re: Flashify funne thread

Unread post by THX-1139 » 2024-03-07, 05:50

PseudoDistant wrote:
2024-03-07, 00:17
moonbat wrote:
2024-03-06, 20:06
That would definitely be easier to do.
tbh I don't care that much if it's easier to do, I'd be willing to learn regardless, it'd be more about authenticity I guess..?
While IDK about the "Authenticity" aspect, I can say it would be very convenient to have for the end user experience.
Pale Moon 32.5.0 (64) Win7 pro (64) Intel Core i5-3570 3.4GHz-16 GB DDR3

"The biggest joke on mankind is that computers have started asking humans to prove they're not a robot."

"Man needs difficulties; they are necessary for health." ~Carl Jung

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

Re: Flashify funne thread

Unread post by moonbat » 2024-03-07, 06:54

One good UX practice is to not let the user screw up in the first place rather than telling/admonishing them after the fact. Seen that way, better to prevent the user from installing it if the prerequisite of Flash isn't met first. I meant that if it is too complex to do (I haven't figured out how to enumerate installed plugins as opposed to installed extensions for one) then you can use the webpage warning instead.
Off-topic:
On that note I wonder if the Pale Moon installer on Windows can detect if the CPU doesn't support the minimum required instruction sets and cancel installation if so.
"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
PseudoDistant
Moonbather
Moonbather
Posts: 73
Joined: 2024-02-06, 20:19

Re: Flashify funne thread

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

moonbat wrote:
2024-03-07, 06:54
One good UX practice is to not let the user screw up in the first place rather than telling/admonishing them after the fact. Seen that way, better to prevent the user from installing it if the prerequisite of Flash isn't met first. I meant that if it is too complex to do (I haven't figured out how to enumerate installed plugins as opposed to installed extensions for one) then you can use the webpage warning instead.
Off-topic:
On that note I wonder if the Pale Moon installer on Windows can detect if the CPU doesn't support the minimum required instruction sets and cancel installation if so.
It's more that the webpage warning is just exactly what you'd get if your Flash plugin is out of date or nonexistent.
I know that there were a huge number of users back in the day who refused to update beyond Flash 10 because their i286s choked on newer Flash features. :coffee:
Maybe I'm just dumb about things, I see myself as a preservationist, and get unreasonably upset when something is removed with no real alternative.
Even if something like Ruffle was perfect, you still miss out on the whole experience. (Though Ruffle isn't perfect, and I doubt it ever will be with one of Mojank's best at the helm.)
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: Flashify funne thread

Unread post by moonbat » 2024-03-08, 16:30

PseudoDistant wrote:
2024-03-08, 16:12
Though Ruffle isn't perfect, and I doubt it ever will be
It can't. Flash is just one example of amazing, well used technology that was deliberately dumped in the name of security with none to totally shitty alternatives; mostly acting as though Javascript is the only programming language on the planet and needs to replace every other one no matter what.
"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
PseudoDistant
Moonbather
Moonbather
Posts: 73
Joined: 2024-02-06, 20:19

Re: Flashify funne thread

Unread post by PseudoDistant » 2024-03-08, 18:21

moonbat wrote:
2024-03-08, 16:30
It can't. Flash is just one example of amazing, well used technology that was deliberately dumped in the name of security with none to totally shitty alternatives; mostly acting as though Javascript is the only programming language on the planet and needs to replace every other one no matter what.
https://en.wikipedia.org/wiki/WebAssembly
It's not converting to JavaScript, it's compiling to WebAssembly.

Though I do agree that Flash was dumped without a real alternative.
Many people cite HTML5 and ECMAScript6, but there's still a lot of things Flash can do that modern web tech outside of WebAssembly can't do.
And I really don't think WebAssembly is the answer, as there are too many browser-specific quirks. The point of Flash being a plugin was to not do that. :/
Eat your school.
Eat your drugs.
Eat your teeth.

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

Re: Flashify funne thread

Unread post by Moonchild » 2024-03-08, 18:31

PseudoDistant wrote:
2024-03-08, 18:21
It's not converting to JavaScript, it's compiling to WebAssembly.
WASM is a subset of JS (literally the asm.js subset with a few extras). The only difference is that it is precompiled and can be transpiled from other source languages; but for the browser/client it is just JS.
"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: Flashify funne thread

Unread post by PseudoDistant » 2024-03-08, 18:34

PseudoDistant wrote:
2024-03-08, 18:21
And I really don't think WebAssembly is the answer, as there are too many browser-specific quirks. The point of Flash being a plugin was to not do that. :/
One such fun example I found recently was that fonts don't work on Firefox. :sick:
idk if it was my browser configuration, or what, but it's so jarring not being able to read shit.
(In all fairness I did make some about:config edits to make it usable.)
Image
Image
Guess which is which.
Click here when you're ready. :D
Eat your school.
Eat your drugs.
Eat your teeth.

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

Re: Flashify funne thread

Unread post by PseudoDistant » 2024-03-08, 18:38

Moonchild wrote:
2024-03-08, 18:31
WASM is a subset of JS (literally the asm.js subset with a few extras). The only difference is that it is precompiled and can be transpiled from other source languages; but for the browser/client it is just JS.
To some degree, yes. It still has a hard requirement for JavaScript interop instead of being able to mess with the DOM directly. But it has more in common with JVM bytecode than JavaScript at this point. :/
It has a binary format and bytecode, and runs in a VM, similar to Java or C#.
WebAssembly applications are distributed in compiled form, instead of being a script.
But it does run in the same sandbox as JavaScript, as it's applications still make use of JavaScript APIs and such.

(This is my understanding of it at least, I'm by no means an expert.)

Ruffle, as an application and Flash emulator, is written in Rust, and compiled to WebAssembly.
Ruffle, as both a WebExtension and website script, is loaded using JavaScript.
Eat your school.
Eat your drugs.
Eat your teeth.

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

Re: Flashify funne thread

Unread post by Moonchild » 2024-03-08, 18:48

PseudoDistant wrote:
2024-03-08, 18:38
It has a binary format and bytecode, and runs in a VM, similar to Java or C#.
Under the hood that is how JS runs in browsers too. Everything is baseline compiled to bytecode, and can from there be passed on to the Ion compiler as well. JS is not a real-time interpreted language in just about all cases.
"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