Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.
The deprecated, non-standard and internal only CanvasRenderingContext2D.drawWindow()
method of the Canvas 2D API renders a region of a window into the canvas
. The contents of the window's viewport are rendered, ignoring viewport clipping and scrolling.
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
to capture the tab's image as a data: URL and then render the captured image onto canvas using CanvasRenderingContext2D.drawImage
. If you're writing chrome code, you probably want WindowGlobalParent.drawSnapshot from the parent process.
drawWindow(window, x, y, w, h, bgColor)
drawWindow(window, x, y, w, h, bgColor, flags)
This method draws a snapshot of the contents of a DOM window
into the canvas. For example,
ctx.drawWindow(window, 0, 0, 100, 200, 'rgb(255,255,255)');
... would draw the contents of the current window, in the rectangle (0,0,100,200) in pixels relative to the top-left of the viewport, on a white background, into the canvas. By specifying "rgba(255,255,255,0)
" as the color, the contents would be drawn with a transparent background (which would be slower).
It is usually a bad idea to use any background other than pure white "rgb(255,255,255)
" or transparent, as this is what all browsers do, and many websites expect that transparent parts of their interface will be drawn on white background.
With this method, it is possible to fill a hidden IFRAME with arbitrary content (e.g., CSS-styled HTML text, or SVG) and draw it into a canvas. It will be scaled, rotated and so on according to the current transformation.
Ted Mielczarek's tab preview extension uses this technique in chrome to provide thumbnails of web pages, and the source is available for reference.
Not part of any current specification or draft. This is a non-standard and internal only API.