blob: 0e285d2508c93bffba99247ac313960b0c816a0b [file] [log] [blame]
// Copyright (c) 2012 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// Custom binding for the Tab Capture API.
var binding = require('binding').Binding.create('tabCapture');
binding.registerCustomHook(function(bindingsAPI, extensionId) {
var apiFunctions = bindingsAPI.apiFunctions;
apiFunctions.setCustomCallback('capture', function(name, request, response) {
if (response && request.callback) {
var callback = request.callback;
var options = {};
if (response.audioConstraints)
options.audio = response.audioConstraints;
if (response.videoConstraints)
options.video = response.videoConstraints;
try {
navigator.webkitGetUserMedia(options,
function(stream) { callback(stream); },
function() { callback(null); });
} catch (e) {
callback(null);
}
} else {
request.callback(null);
}
request.callback = null;
});
});
exports.binding = binding.generate();