Missing features - mozilla/shumway GitHub Wiki
Missing features
Shumway doesn't implement all of Flash's features yet. The following is a list of missing features, their impact on our initial, banner ad-focused, release, and our plans for them.
flash.accessibility
What?
Flash contains support for screen readers that allows authors to associate display elements with names and descriptions to be read out by screen readers and tab ordering.
Impact
Little, banner ads aren't usually accessible. (I.e., I'm not aware of a single one that is.)
Required Effort
Medium
Plans
We might implement this on top of browsers' accessibility support for a later release.
flash.concurrent, flash.system.Worker, flash.system.MessageChannel
What?
Worker threads with synchronous communication capabilities.
Impact
None, we haven't encountered any banners using this.
Required Effort
Very large to infeasible.
Plans
We don't plan to ever implement this.
flash.crypto.generateRandomBytes()
What?
Support for AS3-implemented crypto algorithms.
Impact
None, we haven't encountered any banners using this.
Required Effort
Small
Plans
Would be easy to implement on top of crypto.RandomSource.getRandomValues().
flash.desktop.Clipboard
What?
Support for interacting with the system clipboard.
Impact
None, banners don't (or at the very least mustn't) use the clipboard.
Required Effort
Small-ish for copy-only, medium for paste, large for complex, app-defined data types.
Plans
Will implement support for setting clipboard values eventually. More extensive support not currently planned.
flash.display.BitmapData, various methods
What?
Quite a few methods of the BitmapData class are currently just stubbed to prevent exceptions from being thrown but don't actually contain the required implementation.
Impact
Incorrect rendering for some banners: some of these are used for visual effects.
Required Effort
Medium for some, large for complete coverage.
Plans
We'll implement some of these before shipping and add telemetry for the others to gauge their relevance.
flash.display.GraphicsPath and supporting classes
What?
Object-oriented API for vector drawing.
Impact
Little, we haven't encountered banners using this.
Required Effort
Medium
Plans
Not currently planning to implement this in the near term. Wouldn't be all that hard, though.
flash.display, JPEGXR support
What?
Support for rendering and encoding JPEG-XR images.
Impact
Little to none, we haven't encountered these in banners.
Required Effort
Large to infeasible: only IE supports this format so we'd have to have our own decoder, and I'm not aware of any we could use. See Firefox bug 500500 - (JPEG-XR) Add support for JPEG-XR/HD Photo.
Plans
No support planned.
flash.display.Shader
What?
GPU shaders to be used in Stage3D and ShaderFilter.
Impact
Little to none, we're not aware of any banners using this.
Required Effort
Medium to large: JS implementations of this exist under amenable licenses and might be usable.
Plans
No support planned, but might change our minds.
flash.display.Stage3D, flash.display3D
What?
GPU-accelerated 3D rendering, somewhat similar to WebGL.
Impact
Little to none, we're not aware of any banners using this.
Required Effort
Large to infeasible: JS implementations of this exist under amenable licenses and might be usable, but even that would be a lot of work.
Plans
No support planned.
flash.filters, various classes
What?
Filters that can be applied to parts of the DisplayList to affect rendering.
Impact
Medium, some banners use filters we haven't implemented.
Required Effort
Medium to large: some filters can be implemented on top of the ones supported by SVG filters, some would have to be implemented in JS.
Plans
We plan to support some more of these and add telemetry for the rest.
flash.geom.Matrix3D, 2.5D transforms
What?
2.5D transforms similar to those available in CSS.
Impact
Medium, these are used by a small but significant fraction of banners.
Required Effort
Medium for a partial implementation, very large for complete coverage.
Plans
Plan to implement a simple approximation of this before shipping: full support of the API in AS3, rendering only applied for z-index and rotation around a single axis and without full perspective correctness. In progress.
flash.globalization
What?
Framework for localizing content depending on the user's locale, similar to EcmaScript's Intl support.
Impact
Little to none, we're not aware of banners using this.
Required Effort
Large to infeasible, depending on how well this matches the capabilities of the Intl class.
Plans
No support planned.
flash.media, audio
What?
Support for most advanced audio usage
Impact
Little, banners don't usually use audio, and it's not clear we'd want them to.
Required Effort
Medium to large, depending on coverage.
Plans
Small enhancements and bugfixes plans, but no substantial increase in functionality.
flash.media, video
What?
Video streaming, timeline-embedded video, advanced usage of non-streaming video.
Impact
Medium, a small but significant fraction of banners use video.
Required Effort
Medium to large, depending on coverage.
Plans
Plan to support timeline-embedded video and generally improve handling of video. Streaming not currently planned, but doable and interesting for video players.
flash.media, VP6 video
What?
VP6-encoded video playback.
Impact
Medium, largely see above.
Required Effort
Medium for a Flash plugin-based polyfill (exists, but needs fixes to fully work), large to infeasible for full standalone support, depending on licensing concerns.
Plans
Plan to complete Flash plugin-based polyfill before shipping.
flash.media.StageVideo
What?
Support for video decoded directly to a GPU surface, layered below all other content.
Impact
Medium, probably used by some ads, mostly with a fallback to normal Video, though.
Required Effort
Medium, mostly plumbing for the AS3-facing APIs. Our Video implementation is actually closer to StageVideo in functionality.
Plans
Unclear, we might want to implement this before release.
flash.media, audio and video input
What?
Microphone and Camera access.
Impact
None, not used by banners.
Required Effort
Medium to large, depending on coverage.
Plans
No support planned.
flash.net.NetGroup
What?
Support for RTMFP P2P networking.
Impact
None, not used by banners.
Required Effort
Large.
Plans
No support planned.
flash.net.NetStream, advanced usage
What?
Support for streaming video
Impact
Little, we're not aware of banners using this.
Required Effort
Medium to large
Plans
A prototype implementation of an RTMP client library exists, but isn't production quality. Getting it there would probably be some work, still, which we don't currently plan on doing for our initial release.
flash.net.Socket
What?
Connecting to raw TCP sockets
Impact
None, not used by banners.
Required Effort
Medium
Plans
No support planned. Only feasible in the extension for now, as sockets aren't yet available to general content.
flash.net.drm
What?
Support for DRM'd media playback
Impact
None, not used by banners.
Required Effort
Infeasible to implement.
Plans
No support planned (or possible, really).
flash.printing
What?
Support for printing static or dynamically created content.
Impact
None, not used by banners.
Required Effort
Large
Plans
No support planned.
flash.sensors.Accelerometer
What?
Access to accelerometer data.
Impact
None, not used by banners.
Required Effort
Medium
Plans
No support planned.
flash.system.IME, flash.text.ime
What?
Support for interacting with the system's IME
Impact
None, not used by banners.
Required Effort
Unknown
Plans
No support planned. If we decide to support text input, we should do it in a way that makes the browser just handle this.
flash.system.SecurityContext, security properties of
What?
Hardened implementation of SecurityContext that we trust to properly prevent content from different sandboxes from accessing each other.
Impact
Medium, some banners load content from other domains, and hence into other SecurityDomains.
Required Effort
Large for a trusted implementation.
Plans
We mitigate this by enabling loading of other SWFs only if the loading SWF is allowed to also load arbitrary data from the same host. If it can do that, it could also load the child SWF as data and run it in its own domain, circumventing the SecurityDomain protections. Vague long-term plans for additional support exist.
flash.display.TextField, input mode
What?
Text input.
Impact
None, banners don't use this.
Required Effort
Medium
Plans
No support planned.
flash.text.engine, flashx.textLayout, flashx.undo
What?
Sophisticated low-level text layout support.
Impact
Little to none, almost no banners use this.
Required Effort
Large to infeasible
Plans
No support planned. Would be required for Flex 4 applications and some games, though, notably King.com games.
flash.ui.ContextMenu
What?
Support for customizing the context menu.
Impact
Little, banners either don't use this or don't rely on it for their main functionality.
Required Effort
Medium
Plans
No support planned.
flash.ui.MouseCursor
What?
Support for setting the mouse cursor to a builtin one or a provided bitmap.
Impact
Very little, banners almost never use this.
Required Effort
Little for bultin cursors, medium to large for custom bitmaps.
Plans
No support planned.
flash.ui.MultiTouch
What?
Support for multi-touch events
Impact
None, banners don't use this.
Required Effort
Unknown
Plans
No support planned.