1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
6 * Function to take the screenshot of the current screen.
7 * @param {function(HTMLCanvasElement)} callback Callback for returning the
8 * canvas with the screenshot on it.
10 function takeScreenshot(callback) {
11 var screenshotStream = null;
12 var video = document.createElement('video');
14 video.addEventListener('canplay', function(e) {
15 if (screenshotStream) {
16 var canvas = document.createElement('canvas');
17 canvas.setAttribute('width', video.videoWidth);
18 canvas.setAttribute('height', video.videoHeight);
19 canvas.getContext('2d').drawImage(
20 video, 0, 0, video.videoWidth, video.videoHeight);
25 screenshotStream.stop();
26 screenshotStream = null;
32 navigator.webkitGetUserMedia(
36 chromeMediaSource: 'screen',
44 screenshotStream = stream;
45 video.src = window.URL.createObjectURL(screenshotStream);
50 console.error('takeScreenshot failed: ' +
51 err.name + '; ' + err.message + '; ' + err.constraintName);