Teams‎ > ‎Paint Team (paint-dev)‎ > ‎

Canvas team OKRs

Q4 2016

Ship OffscreenCanvas #wp-performance #wp-ergonomics
  • Lead: xlai
  • implement convertToBlob
  • Owner: xlai
  • Make placeholder canvas elements work as image sources (drawImage, toBlob, etc)
  • Owner: xlai
  • Ship it in M57
  • Owners: junovxidachenxlai
  • This includes achieving full spec conformance.
  • Make a convincing performance demo, and support devrel with launch PR
  • Owner: xlai
  • Land the specification against whatwg
  • Owner: junov
  • Get canvas filters to work in a Worker
  • Owner: fserb
  • Make OffscreenCanvas commit flow works in the Android WebView
  • Owner: xidachen
  • Write tests that verify that it works, fix if necessary.
OffscreenCanvas testing and tracking #wp-predictability
  • Lead: xidachen
  • Contribute to web platform tests
  • Owners: junovxidachenxlai
  • Achieve complete test coverage: Each statement in the spec should be covered by tests, with xrefs to the spec.
    Upstream the tests to web platform tests repo, test other implementations for conformance
    Main owner/coordinator is xidachen. xlai and junov are contributors.
  • Add telemetry performance tests for OffscreenCanvas
  • Owner: xidachen
  • Must cover commit() and ImageBitmap flows, cover all permutations of GPU/CPU rendering and compositing, run on GPU bots.
  • Add usage metrics histograms.
  • Owner: xidachen
  • Must track:
    * OffscreenCanvas feature usage
    * mode of operation (commit vs transferToImageBitmap)
    * commit() code path
    * CPU run time for each commit() code path (on the thread where commit is called)
    * commit() latency (time elapsed from commit() call to UI compositor update)
  • Have the fastest implementation
  • Owners: junovxidachenxlai
  • Write animometer-style benchmarks for OffscreenCanvas (commit and imageBitmap flows, 2D and WebGL). Compare to other implementations. Stay on top
    Main owner/coordinator: xidachen. junov and xlai to contribute to fixing perf issues.
requestAnimationFrame in Workers #wp-ergonomics
Owners: chrome-canvasjunov
  • Implement it
  • Spec it
  • Ship it in M57
Product excellence #wp-health
  • Lead: xidachen
  • Weekly product excellence report
  • Owner: xidachen
  • Publish weekly report to chrome-canvas mailing list.
    Bug stats: outstanding bug count (number fixed, number of new bugs), list of high-profile outstanding bugs (crashers, security, regressions, highly starred, p0-p1), high profile bugs resolved since last report. Keep report history in a google doc.
    Delegate reporting when on leave.
  • Performance metrics report
  • Owner: xidachen
  • Twice in the quarter, present to paint team show salient fluctuations in key performance metrics.
  • Prevent bug count from creeping up.
  • Owners: junovxidachenxlaizakerinasab
  • (104 outstanding bugs as of October 5 2016)
  • Refactor Canvas and OffscreenCanvas dependencies on cc
  • Owners: xidachenxlai
Misc canvas features #wp-ergonomics
  • Make experimental implementation of canvas colorspace work
  • Owners: junovzakerinasab
  • Experimental implementation of text rendering in workers (stretch)
  • Owner: zakerinasab
  • 0.5 for getting text to render using only the default font.
  • Ship DOMMatrixInit-based canvas APIs (stretch)
  • Owner: xlai

Q3 2016

OffscreenCanvas feature complete #wp-future
  • 0.80P2commit() flow working for 2D canvas
  • Owner: xlai
  • Mid-quarter status: Stalled for about 3 weeks due to dependency on mojo improvements. Still on track for EOQ
    EOQ status: Mostly implemented except software compositing cases
  • 0.80P2commit() flow working for WebGL
  • Owner: xidachen
  • Mid-quarter status: Not started, still possible by EOQ.
    EOQ status: Mostly implemented except software compositing cases
  • 1.00P3GPU-accelerated 2D canvas in a worker
  • Owner: junov
  • Mid-quarter status: WIP CL almost done. On track.
    EOQ status: done.
  • 0.50P1Finish specification for OffscreenCanvas (rolled over from Q2)
  • Owner: junov
  • Mid-quarter status: iterated on proposal some more, still attainable by EOQ, moderate risk of slipping.
    EOQ: Draft complete, not yet publicly shared.
  • 0.80P3Canvas readback APIs + tainting for 2D
  • Owner: xlai
  • getImageData + toBlob + toDataURL working on OffscreenCanvas on main thread + Workers (stretch)

    Mid-quarter status: WIP, tainting for 2D completed, the rest partially implemented, at risk of slipping into Q4
    EOQ status: done, except for toBlob which is not yet implemented
0.10P3Canvas color space support #wp-future
Owners: chrome-canvasjunov
  • Mid-quarter: Slow progress so far this Q, work on colorspace implementation is ramping up with zakerinasab@
  • 0.00P2Converge spec proposal
  • Owner: junov
  • Close all unresolved issues about the proposal on the W3C WICG forum
    Mid-quareter status: No progress. Still attainable this Q
  • 0.00P3Write spec (stretch)
  • Owner: junov
  • Commit CanvasColorSpace spec against WHATWG HTML spec.
    Mid-quarter status: No progress, not likely this quarter.
  • 0.30P4Prototype/experimental implementation in Blink
  • Owner: junov
  • Mid-qarter status: Partially landed. Experimental API is there, color space plumbing in the compositor is there, not functional due to several missing pieces in skia, blink and compositor.
0.74P1Product Excellence #wp-health
  • 0.80P2Reduce bug count
  • Owners: junovxidachenxlai
  • Go from 121 to under 100 open bugs (Type = Bug + Bug-Regression + Bug-Security)
    Mid-quarter status: 106 outstanding bugs. On track!
    EOQ status: 104 bugs.
  • P1Resolve all memory leak-like issues related to canvas
  • Owner: xidachen
  • Mid-quarter status: Out of our hands: dependency on V8 team GC triggers.
  • 0.80P12 week SLA on fixing crashers and security bugs
  • Owners: junovxidachenxlai
  • Mid-quarter status: On track.
    EOQ status: crasher 624718 is lagging behind. Otherwise we did good.
  • 1.00P21 week SLA on triage
  • Owner: junov
  • Mid-quarter status: on track
    EOQ: done.
  • 0.50P3Be the best browser for all canvas-related Animometer benchmark scores
  • Owner: junov
  • (Includes work by intern sebastienlc)
    Mid-quarter status: implemented but not enabled. Not on track because no one is currently owning follow-up on intern's work. Postponing.
    EOQ status: some heuristic for falling back to SW have been implemented, thus preventing critical performance cliffs. Global approach is not ready to ship.
  • 0.60P2Fix top starred issues
  • Owners: junovxidachen
  • - Experimental `imageSmoothingQuality` property doesn't provide expected quality - We don't anti-alias <canvas> drawImage
    Mid-quarter status: 7508 is fixed, 618324 has been investigated but will probably not be fixed this quarter.
    EOQ status: 1/2 bugs fixed + bonus bug 424291
Misc Features #wp-future #wp-performance
  • 0.70P3Ship ImageBitmap resize
  • Owner: xidachen
  • Mid-quarter status: on track
    EOQ staus: implementation complete, but not shipped
  • 0.90P2Ship ImageSmoothingQuality
  • Owner: junov
  • Mid-quarter status: done, but there are outstanding complaint about the quality of the mipmaps used for high quality filtering.