Shumway: a SWF interpreter entirely in JavaScript

Today, Mozilla Research publicly announced the Shumway project. Shumway is JS/HTML library which displays SWF (Flash) content entirely using open web technologies.

Live demo below: Click the car and then use the arrow keys to drive.

I am very excited about this project. There is a lot of Flash content on the web, and Flash is not available for many mobile users, including most new users of Firefox for Android and Firefox OS. Many popular sites are already converting to HTML content, but there is always going to be a long tail of Flash content which is not actively maintained. Although it’s still a research project, my hope is that Shumway will some day be able to play enough Flash content that we could include it as part of Firefox on mobile platforms.

Another possibility of the Shumway technology is that website authors could use Shumway as a JavaScript library to display their legacy Flash content in any modern browser. For example the Shumway team already has an online example of SWF content running in the browser without any browser support at all. This example works in Chrome, and we can probably make it even easier to automatically convert <embed> nodes using shumway with a little bit of scripting. (The example doesn’t work in IE 9 because IE 9 doesn’t support JavaScript typed arrays or “const”. Maybe future versions of IE will join the modern era.)

Mozilla is actively looking for volunteers who are interested in helping build out Shumway to its full potential. We need help implementing important builtin objects, testing and tuning performance, and building out a test suite. For more information, clone the github project, check out the wiki, join the mailing list, and join us on irc.mozilla.org #shumway.

Atom Feed for Comments 8 Responses to “Shumway: a SWF interpreter entirely in JavaScript”

  1. Pam Says:

    Very interesting! But once you click the car, the up arrow still activates the page’s scroll, so the actions aren’t isolated to the window. Obviously, it’s still a work in progress, but very impressive.

  2. George Says:

    Please test this with iPad.

  3. ispiked Says:

    bsmedberg, you seem to have a penchant for re-writing and improving old projects. First pymake, then wordle, now Flash… Keep ’em coming.

  4. Jason Says:

    I’ve been really excited about this project ever since it was first announced. While I think the mobile experience is nice, I’m much more excited about this on the Desktop. I truly can’t wait for the day that I no longer need any of the infamously insecure Adobe software installed on my machine (or my parents’/friends’ computers either for that matter). Mozilla has already made some nice progress towards this goal with the pdf.js project (good riddance Adobe Reader). I have much more trust in Mozilla’s software update process and overall security track record that Adobe’s. Since this would all be handled by JavaScript anyways there is much less concern about native code security issues like there is with Adobe’s Flash Player. I just hope it will be able to support everything that Flash Player does (like the various video codecs). It seems like Adobe should be actually be investing in this project themselves just to get away from the black eye that Flash Player seems to have caused them.

  5. Benjamin Otte Says:

    Good luck. The gold standard is the Youtube Flash player, so you know where you need to go. :)

  6. Benjamin Smedberg Says:

    George: we welcome community who want to help test and fix iPad compatibility. Right now the Mozilla Shumway team is not focused on that aspect of the project, but there is lots of room for volunteer contributions in a bunch of areas!

    ispiked: This is not really my project, but thanks.

    Jason: the video codec problem is thorny, obviously. We’d love for Adobe to be actively involved in this project.

  7. Brennan Young Says:

    Works on Chrome, not Safari (“TypeError: setting a property that has only a getter. runtime.js 1276”).

  8. Krishnamurthy Says:

    Hi,

    I have some 30,000 Shockwave (.swf) files on my mobile site. I wish to stream them to iOS devices such as iPhones and iPad-mini browsers without loosing quality and interactivity. I have tried Adobe Media Server 5.0. But no solutions yet !!

    I am excited about Shumway project and its goals. Can somebody keep me posted about the progress on this project. I will be the first one to deploy this solution.

Leave a Reply