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 7var binding = require('binding').Binding.create('tabCapture'); 8 9binding.registerCustomHook(function(bindingsAPI, extensionId) { 10 var apiFunctions = bindingsAPI.apiFunctions; 11 12 apiFunctions.setCustomCallback('capture', function(name, request, response) { 13 if (response && request.callback) { 14 var callback = request.callback; 15 var options = {}; 16 if (response.audioConstraints) 17 options.audio = response.audioConstraints; 18 if (response.videoConstraints) 19 options.video = response.videoConstraints; 20 21 try { 22 navigator.webkitGetUserMedia(options, 23 function(stream) { callback(stream); }, 24 function() { callback(null); }); 25 } catch (e) { 26 callback(null); 27 } 28 } else { 29 request.callback(null); 30 } 31 request.callback = null; 32 }); 33}); 34 35exports.binding = binding.generate(); 36