- add sources.
[platform/framework/web/crosswalk.git] / src / chrome / renderer / resources / extensions / tab_capture_custom_bindings.js
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', 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
35 exports.binding = binding.generate();