Google Swiffy

Google Swiffy is a web-based tool developed by Google that converts SWF files to HTML5. Its main goal is to display Flash contents on devices that do not support Flash, such as iPhone, iPad, and Android Tablets.

Approach
There is a server-side component (source currently not public) that converts SWF to an intermediate representation serialized as JSON. This representation is in turn converted into SVG in the web browser via JavaScript, which is also used for animations. The Swiffy thesis (2012) explains its general approach in the following way:

''The choice of SVG for rendering leaves us with several options to animate the SVG content. At first sight, both CSS animation and SMIL, adhere to our design goal of using a declarative representation when possible. However, both technologies provide insufficient control over the animation when support for ActionScript scripting is required. For example, although the concept of keyframes exists in CSS animation, it does not provide a mechanism to synchronise the JavaScript code to those keyframes or to modify the timeline from JavaScript, which is a basic feature required for SWF compatibility. Another limiting factor is that animation in the SWF file itself is not defined in terms of high-level transitions, but defines the position of every object at specific keyframes. Mapping these definitions back onto CSS or SMIL transitions is not always possible. Finally, these standards are not widely available: The CSS animation specification is still in working draft state, while SMIL is not implemented in the Internet Explorer browser We have therefore chosen to use JavaScript to animate SVG on the client. Although this imperative approach might be less efficient, the level of control it provides is required to match all SWF functionality.''

Supports
Google Swiffy currently supports a subset of SWF 10, ActionScript 2.0 and ActionScript 3.0.

Supporting browsers

 * Google Chrome
 * Safari
 * Firefox 5+ (partly supported)
 * IE9 (partly supported) and IE10
 * Webkit-based browsers

Development
Swiffy was started in the summer of 2011 by Google engineering intern Pieter Senster, who joined their mobile advertising team to search for solutions to display Flash content on devices that do not support Flash. Progress on Swiffy was sufficient that Google hired him full-time and formed a team to work on the project. The product manager of Google Swiffy is Marcel Gordon.

Swiffy 6.0.1 was released on February 11, 2014.