Right after the dreaded announcement of Adobe planing Flash EOL by end of 2020
some people started to mention something like that:
Yay Flash is dead!!!
wait … how are we gonna play SWF in the browser after 2020 ?
and then some other people came back with
oh … Adobe should open source Flash
After that, someone put this github page here
Petition to open source Flash spec
and that’s it? problem solved ?
Wether Flash is open sourced or not will not solve the main problem:
play a SWF inside the web browsers.
It feels like nobody really know what they are talking about and that they have a very short memories of events … so let put everything on the table.
First problem is correlation does not imply causation.
People will not be able to play SWF in the browsers not because Adobe announced Flash EOL in 2020,
but because the web browsers are removing plugins no matter what.
Flash EOL in 2020 is not the cause, it is the consequence of browsers getting rid of plugins.
You could have the whole Flash plugin sources open sourced right now, it does not matter to have the sources if you can not actually install the plugin in the damn browser.
Second problem is people are confusing everything about Flash.
Flash EOL in 2020 just means that at this time Adobe will stop to update the Flash Player plugin.
Supposed in 2020 you can still find a browser that support plugins, you can still play all the SWF you want. But major browser vendors have already planed to block Flash and remove any plugin.
Does it mean that animate CC not gonna support the SWF format ?
Does it mean that Adobe AIR is dead too?
Does it mean that ActionScript is dead?
And on, and on, and on…
But most people are like "oh Flash is dead then the Flash software (Animate CC) is dead too,
or “Flash is dead yipieee!!! ActionScript is dead too” …
And the very same confusion come into play with the “oh yeah let’s open source Flash and voila problem solved”, no it does not solve the problem.
So I hear what people wants: preservation of the SWF content on the web,
so by 2020 or even before and after, if someone want to play a SWF he/she can find an alternative that allow him/her to do so.
Let’s archive all the Flash!!!
This not gonna do much, ok then you got your SWF archived somewhere, but how do you actually play it in the browser ? you can’t.
Let’s open source all the Flash!!!
Not gonna do much either, good on you you have an open source Flash Player, can you install it in your browser? no you can’t.
And by then people run out of ideas… and so they come with even more stupid ideas.
Let’s play the SWF outside of the browser!!!
It could work for some basic SWF
but it will fail for all the SWF that need to load external dependencies
for example many games rely on loading external SWF for their levels
some other games will test to see if they are actually loaded in a browser
or if they are hosted on a particular domain and if not will block the loading of the whole game, etc.
Let’s play the SWF in the Standalone Flash Player
same as above, it will work for the simple SWF that does not load external stuff
but for more complex case it will fail
Let’s play the SWF in Adobe AIR on the desktop
this one could work but still have the same issues as above
also you will not load the SWF directly in AIR, you will need to
use the AIR HTMLLoader (another browser) and then display the SWF
and for that you would need to have the Flash Player plugin installed on the system
because AIR does not embed the plugin anymore, it rely on the plugin being available on the system
So, even if you archive those SWF it is not enough to just get the SWF, you need to get the whole environment and dependencies, eg. you need the HTML page embedding the SWF and the external assets in the correct folders, and for the more complex case you need to emulate the HTTP host (case where playing a SWF from local is blocked).
In any case, you will not be able to just play the SWF in your current browser of choice.
The only way to play a SWF in the browser without the Flash Player plugin is something like Shumway, eg. being able to play a SWF file without a plugin.
But Shumway has been abandoned, see Some Thoughts on the HTML Target for AIR
- BugZilla Bug 1243870 - Firefox Component Shumway is defunct. Move to Graveyard:Firefox Graveyard and close bugs in component (2016-01-28)
Firefox::Shumway component can be moved to the Firefox Graveyard component. People can report Shumway bugs on GitHub: https://github.com/mozilla/shumway/
The other alternative is to recompile to something else, but that assume you got the sources and the resources to do it.
First problem with that is that a lot of domain host SWF and they don’t have the sources, and there is no magic “SWF to something else” converters available, and yeah Google gave it a shot with Swiffy but that too has been abandoned.
Second problem, supposed you have the sources, there is nothing out there that can easily port sources like FLA files, AS2/AS3 files and output something else than a SWF.
That means to convert your SWF, even if you have all the sources, require a manual rewrite and that take time and resources that most people do not want to spend just to preserve “old content”.
And in all those cases, let me say that again, wether the Flash Player plugin is open sourced or not does not matter at all.
Because even if you have the Flash Player plugin sources in C++, what do you do ?
You go back into Shumway sources and port all that C++ code to TypeScript ?
What about the limitations of the browser API ? there are still there.
People would be very eager to have a magic solution, either a SWF converter or a SWF player (ideally both), but nobody actually want to spend resources building it.
Adobe already open sourced the core of the Flash Player: the ActionScript Virtual Machine (AVM2),
it’s here available to anyone: github.com/adobe/avmplus.
It’s not the whole Flash Player sources but it is a good start, available since 2006.
But who actually worked on it besides Adobe? well… nobody (almost nobody).
Just avmplus “as is” is a complex project, and nobody (almost nobody) done anything with it, what make you think that by getting suddenly the Flash Player sources you will get magically tons of contributors working on it to do something with it?
I don’t think so.
The same way Shumway and Swiffy got abandoned because well… it’s hard work, who would actually work on this Flash Player sources ?
Personally I would love to have access to the whole Flash Player sources under an OSS licence, just for the vector software renderer it will be worth it.
In the many talks about if Adobe could open source Flash, some people mentioned that even if Adobe wanted to do that, many parts of the sources could not be open sourced (3rd party proprietary licences to read/play some particular video codec and stuff like that).
One way or another, even if something could be done, it will not work 100% for all the SWF out there.
Yes, it is a hard problem to solve (with our without the Flash Player sources).
But let review that hard problem again:
on one side you have all these people who want flash to die
and they got it, Adobe announced Flash Player EOL for 2020
on the other side you have another bunch of people who say
but we want to preserve SWF and still be able to play SWF in the browser
You can not have both.
You can not, at the same time, use your favorite latest browser and play old SWF file.
This is incompatible.
It would be the same with anything else, like PNG files.
Remove the capabilities in the browsers to display PNG files and automatically all those PNG files can not be seen anymore.
The problem is the capacity to use a browser plugin or not, every single browsers out there want to remove those plugins, hence anything that depends on any plugin can not be seen in those browsers anymore.
If you want to still play SWF, that’s not the Flash Player plugin sources that you really need, it is another browser that still want to supports plugins.
That or the capability to play SWF with browsers technology and that have already been attempted by Adobe (project Wallaby), Google (project Swiffy) and Mozilla (project Shumway) and they have all “failed” one way or another.
And here the worst part, if a company or even an open source project were attempting to do something like that, they are guaranteed to be hated by all those people who want flash to die.
In summary, the problem is badly presented (open sourcing the Flash Player does not solve the problem), even if it was possible to still supports SWF in the browser it is a hard work that few can do (if any) and finally there is little to no gain to do that.