From MozillaWiki
Jump to: navigation, search
Please use "Edit with form" above to edit this page.


Azure Direct2D backend for canvas
Stage Landed
Status Complete
Release target Firefox 7
Health OK
Status note being actively worked on the graphics project branch


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

Open issues/risks


Stage 1: Definition

1. Feature overview

This feature is an implementation of an HTML5 canvas context using the new Azure 2D API with the Direct2D backend. It should give us significantly faster performance on canvas benchmarks and demos with no loss in functionality or quality.

Azure is a project to create and implement a new 2D API that's closer to hardware and platform APIs. Read more:

2. Users & use cases

Improve the performance of the 2D canvas context on common benchmarks and demos when using Direct2D.

3. Dependencies


4. Requirements

  • Needs to pass all canvas tests on mozilla-central.
  • Need to define a benchmark suite for canvas performance.
  • Needs to be a net benefit to performance on that benchmark suite on at least our talos slaves.
  • Needs an implementation security review (NB: is this true?)


  • Non-Direct2D backends for Azure.
  • Using the Azure API for activities other than the canvas context.

Stage 2: Design

5. Functional specification

6. User experience design


Stage 3: Planning

7. Implementation plan


8. Reviews

Security review


Privacy review


Localization review




Quality Assurance review


Operations review


Stage 4: Development

9. Implementation

The API was designed by Bas Schouten, Robert O'Callahan and Jeff Muizelaar. The initial canvas backend was implemented by Benoit Jacob and Bas Schouten. Bas is working on the Direct2D backend for the Azure 2D API.

Next Steps

  • The remainder of the 2D canvas context API needs to be implemented on the graphics branch.
  • We need to define what we are going to use as a benchmark suite for canvas.
  • The graphics branch needs to land on mozilla-central with the Azure backend for canvas contexts preffed off.
  • We need to solicit nightly testers to turn on the Azure canvas backend and test using it.
  • Once that testing is complete and the bugs are fixed, we can turn on backend by default.

Related Bugs & Dependencies

Stage 5: Release

10. Landing criteria


Feature details

Priority P1
Rank 999
Theme / Goal `
Roadmap Gecko
Secondary roadmap `
Feature list Platform
Project `
Engineering team Graphics

Team status notes

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