Embed Flash SWF content without the Plugin

Embed Flash SWF content without the Plugin

Macromedia (and later Adobe) Flash is a proprietary development platform used for animations, rich web applications and games. Flash was always somewhat controversial, but it did give the world tons of entertainment and was the technology that enabled widespread use of good quality streaming video on the web.

All good things come to an end and in December 2020, Adobe will stop supporting the Flash Plugin for browsers. While this is a relief for many as the plugin has been plagued by performance and security issues over the years, it also means that decades of content built with Flash and published as SWF (Small Web Format) files will no longer be available for the masses natively via the official flash plugin for browsers.

It is tragic that such a big piece of our common digital cultural heritage is potentially going to be lost forever by digital erosion. But thankfully the technology has evolved since the time of Flash. The Internet Archive, an organization archiving digital content, have announced that they will keep Flash content accessible for future generations.

Emulating the Flash plugin in the browser

Flash became popular because it could offer more features than the humble web browser. Since that time the web technologies have evolved and it is today possible to implement the Flash plugin functionality within the browser. You can use emulators to imitate the functions of an old games console on a new computer to play old games. You can do the same with the Flash plugin and the modern browser capabilities.

This can be implemented in many ways. These three products achieve it in differently:

  • Shumway
  • Ruffle
  • CheerpX for Flash

Shumway was an experimental Flash VM and runtime written in JavaScript. The project was developed by Mozilla, and has since been discontinued. Shumway doesn't (always) have great performance or 100% compatibility for very complex SWF files, but it runs the presentation of Kim Dotcom's Megacar from Cebit 1999 acceptably.

Ruffle is a Flash Player emulator written in Rust. Ruffle is distributed as a wasm executable that runs in modern browsersWebAssembly is a technology that lower level than JavaScript, and as such seems like the perfect target for running complex applications (like the Flash Plugin emulator) in the browser. It is open, in active development and used by the Internet Archive in their archiving effort.

CheerpX for Flash takes a different Approach by virtualizing and running the full Adobe Flash Player in a browser sandbox using WebAssembly. The advantage is that unlike Shumway or Ruffle, which are re-implementing the Flash Plugin, it offers 100% compatibility with all SWF content. The product is from Leaning Technologies, a company specializing extending the life of applications with WebAssembly.

Digital Erosion is a plague

In addition to emulation, there are a number of methods that convert Flash content into web technologies ("Flash-to-HTML5" seems to be the buzzword here). These are also an option, but the emulation method is more practical as it will take any SWF package and execute it as is. I feel emulation is better for preservation as it enables better protection against digital erosion of content that you have, but can't decipher.

Speaking of availability, this is another important aspect. Erosion of data is by no means new, as we've already gone through many physical formats for digital data like cassettes, magnetic and optical disks and solid-state storage like USB Sticks. You may have a physical copy of your data, but can't access it because you don't have a disk to read. Or alternatively the media itself, like a recordable CD, may simply rot over time

Physical copies themselves are increasingly hard to obtain. With your data being "in the cloud" you may never have a copy of it. And this may not seem like an issue today with Google and others offering "free storage forever". What if forever ends? It is difficult to see giants like Facebook, Apple or Microsoft faltering but so far in the history of man no empire has lasted forever. It may never be an issue for you, but it might be for the digital archaeologists of the future digging into their analog past.

But returning to the present day, one era in the history is now ending with the End of Life for Adobe Flash Player. Some will be dancing on the grave of the technology that started as FutureWave SmartSketch back in 1993. Some will say Steve Jobs himself killed Flash by Apple not supporting it on the iPhone, opting for web technologies instead. I certainly won't miss installing or updating the plugin, but what I am certain of is that there is a lot of content built with Flash that is absolutely worth preserving.

Photo by haik ourfal on Unsplash

Insights and News

DEVELOPER INSIGHTS
By Tomasz Dabrowski
26/08/2021 | 3 Min read
PRODUCT
By Mateusz Bieniek
12/03/2021 | 2 Min read
DEVELOPER INSIGHTS
By Jani Tarvainen
11/03/2021 | 5 Min read