Home | History | Annotate | Download | only in extensions
      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