1 // Copyright (c) 2012 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. 4 5 // Custom binding for the Tab Capture API. 6 7 var binding = require('binding').Binding.create('tabCapture'); 8 9 binding.registerCustomHook(function(bindingsAPI, extensionId) { 10 var apiFunctions = bindingsAPI.apiFunctions; 11 12 apiFunctions.setCustomCallback('capture', 13 function(name, request, response) { 14 if (response && request.callback) { 15 var callback = request.callback; 16 var successFunc = function(stream) { 17 callback(stream); 18 }; 19 var errorFunc = function() { 20 callback(null); 21 }; 22 23 var options = {}; 24 if (response.audioConstraints) 25 options.audio = response.audioConstraints; 26 if (response.videoConstraints) 27 options.video = response.videoConstraints; 28 29 navigator.webkitGetUserMedia(options, successFunc, errorFunc); 30 } else { 31 request.callback(); 32 } 33 request.callback = null; 34 }); 35 }); 36 37 exports.binding = binding.generate(); 38