CanvasRenderingContext2D.drawWindow() won't work in some cases with Fission. If you're calling drawWindow() from an extension, you should switch to browser.tabs.captureTab(). If you're writing chrome code, you probably want to call WindowGlobalParent.drawSnapshot() from the parent process.
The WebExtension deprecation policy says we need to:
- ⬜ Announce on the dev-addons mailing list with the subject "Intent to deprecate".
- An Extensions blog post announced that
drawWindow() won't work with Fission and introduced the
captureVisibleTab() replacement APIs.
- And mentioned in this Fission announcement in the Add-ons Discourse forum.
- But we should still post a Discourse announcement with the subject "Intent to deprecate CanvasRenderingContext2D.drawWindow()"
⬜ Alter the addons-linter repository to warn developers using "web-ext lint" or AMO that the API is now deprecated. (addons-linter team recommends emailing authors instead: https://github.com/mozilla/addons-linter/issues/3661)
- ✅ Alter Firefox to output a warning to the browser console: bug 1696976
- ✅ Update the docs on MDN. The MDN docs for
drawWindow() have a big deprecation warning:
This API cannot be used by Web content. It is synchronous, and as such can't capture cross-origin (out of process) iframes with Fission. If you're using it from an extension, you should switch to tabs.captureTab. If you're writing chrome code, you probably want WindowGlobalParent.drawSnapshot from the parent process.
- ⬜ Wait for change to ride the change to ride Firefox trains to release.
- ⬜ At a minimum, wait for 3 Firefox releases, from when the deprecation lands in nightly.
⬜ Alter the add-ons linter repository to fail if the API is present.
- ⬜ Alter Firefox to remove the API: bug 1682545
- ⬜ Update the docs on MDN.
Andreas Wagner is searching the code of AMO extensions for
drawWindow() callers and
DRAWWINDOW_ flags. We can then reach out to affected extension developers.