Platform/Features/NPAPIAsyncDrawing

Please use "Edit with form" above to edit this page.

Status

NPAPI AsyncDrawing specification and implementation
Stage Landed
Status Complete
Release target Firefox 13
Health `
Status note This was on hold for agreement from plugin-futures, but we'd like to go ahead and implement this with Adobe so that we can move away from windowed plugins even without general buyin. This appears to be landed https://bugzilla.mozilla.org/show_bug.cgi?id=651192 so I'm updating this feature page. Please revert if I'm wrong - Asa (2012-05-02)

{{#set:Feature name=NPAPI AsyncDrawing specification and implementation

|Feature stage=Landed |Feature status=Complete |Feature version=Firefox 13 |Feature health=` |Feature status note=This was on hold for agreement from plugin-futures, but we'd like to go ahead and implement this with Adobe so that we can move away from windowed plugins even without general buyin.

This appears to be landed https://bugzilla.mozilla.org/show_bug.cgi?id=651192 so I'm updating this feature page. Please revert if I'm wrong - Asa (2012-05-02) }}

Team

Product manager Chris Blizzard
Directly Responsible Individual Josh Aas
Lead engineer Bas Schouten
Security lead Curtis Koenig
Privacy lead `
Localization lead `
Accessibility lead `
QA lead Virgil Dicu
UX lead `
Product marketing lead `
Operations lead `
Additional members `

{{#set:Feature product manager=Chris Blizzard

|Feature feature manager=Josh Aas |Feature lead engineer=Bas Schouten |Feature security lead=Curtis Koenig |Feature privacy lead=` |Feature localization lead=` |Feature accessibility lead=` |Feature qa lead=Virgil Dicu |Feature ux lead=` |Feature product marketing lead=` |Feature operations lead=` |Feature additional members=` }}

Open issues/risks

`

Stage 1: Definition

1. Feature overview

This feature allows plugins to asynchronously draw to surfaces. These surfaces may be located in video memory, and so this allows hardware accelerated plugin drawing.

2. Users & use cases

Goals

  • Make it possible for plugins to draw, explicitly asynchronously, to a bitmap/software surface.
  • Make it possible for plugins to draw, explicitly asynchronously, to a hardware accelerated surface - DXGI or DirectX 9Ex.
  • Allow Flash to never request windowed plugin mode

3. Dependencies

`

4. Requirements

  • Needs testing with a version of Flash that implements the specification.
  • Needs a design and implementation security review.

Non-goals

  • Non-Windows implementations or specifications for accelerated drawing.

Stage 2: Design

5. Functional specification

6. User experience design

`

Stage 3: Planning

7. Implementation plan

`

8. Reviews

Security review

Privacy review

`

Localization review

`

Accessibility

`

Quality Assurance review

  • Patch still being developed

Operations review

`

Stage 4: Development

9. Implementation

The specification was designed by Bas Schouten and Josh Aas, with input from Robert O'Callahan. The Windows implementation is being done by Bas Schouten.

  • bug 651192 Implement new AsyncDrawing model for plugins

Next Steps

  • Complete the implementation of the specification.
  • Get a build of Flash that implements this specification.
  • Get the specification ratified by the plugin-futures group.

Stage 5: Release

10. Landing criteria

` {{#set:Feature open issues and risks=` |Feature overview=This feature allows plugins to asynchronously draw to surfaces. These surfaces may be located in video memory, and so this allows hardware accelerated plugin drawing. |Feature users and use cases===== Goals ====

  • Make it possible for plugins to draw, explicitly asynchronously, to a bitmap/software surface.
  • Make it possible for plugins to draw, explicitly asynchronously, to a hardware accelerated surface - DXGI or DirectX 9Ex.
  • Allow Flash to never request windowed plugin mode

|Feature dependencies=` |Feature requirements=* Needs testing with a version of Flash that implements the specification.

  • Needs a design and implementation security review.

|Feature non-goals=* Non-Windows implementations or specifications for accelerated drawing. |Feature functional spec=* NPAPI:AsyncDrawing |Feature ux design=` |Feature implementation plan=` |Feature security review=* Security Discussion/Review |Feature privacy review=` |Feature localization review=` |Feature accessibility review=` |Feature qa review=* Patch still being developed |Feature operations review=` |Feature implementation notes=The specification was designed by Bas Schouten and Josh Aas, with input from Robert O'Callahan. The Windows implementation is being done by Bas Schouten.

  • bug 651192 Implement new AsyncDrawing model for plugins

Next Steps

  • Complete the implementation of the specification.
  • Get a build of Flash that implements this specification.
  • Get the specification ratified by the plugin-futures group.

|Feature landing criteria=` }}

Feature details

Priority P2
Rank 999
Theme / Goal `
Roadmap Platform
Secondary roadmap Plugin Interactions
Feature list Platform
Project Flash
Engineering team Graphics

{{#set:Feature priority=P2

|Feature rank=999 |Feature theme=` |Feature roadmap=Platform |Feature secondary roadmap=Plugin Interactions |Feature list=Platform |Feature project=Flash |Feature engineering team=Graphics }}

Team status notes

  status notes
Products ` `
Engineering ` `
Security sec-review-complete Notes
Privacy ` `
Localization ` `
Accessibility ` `
Quality assurance ` `
User experience ` `
Product marketing ` `
Operations ` `

{{#set:Feature products status=`

|Feature products notes=` |Feature engineering status=` |Feature engineering notes=` |Feature security status=sec-review-complete |Feature security health=OK |Feature security notes=Notes |Feature privacy status=` |Feature privacy notes=` |Feature localization status=` |Feature localization notes=` |Feature accessibility status=` |Feature accessibility notes=` |Feature qa status=` |Feature qa notes=` |Feature ux status=` |Feature ux notes=` |Feature product marketing status=` |Feature product marketing notes=` |Feature operations status=` |Feature operations notes=` }}