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
);