Index: chrome/renderer/resources/extensions/tab_capture_custom_bindings.js |
diff --git a/chrome/renderer/resources/extensions/tab_capture_custom_bindings.js b/chrome/renderer/resources/extensions/tab_capture_custom_bindings.js |
new file mode 100644 |
index 0000000000000000000000000000000000000000..63da78e0d787ee5a8d104369926d7aaa0b651db6 |
--- /dev/null |
+++ b/chrome/renderer/resources/extensions/tab_capture_custom_bindings.js |
@@ -0,0 +1,33 @@ |
+// 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 bindings for the Tab Capture API. |
+var chromeHidden = requireNative('chrome_hidden').GetChromeHidden(); |
+ |
+chromeHidden.registerCustomHook('tabCapture', |
+ function(bindingsAPI, extensionId) { |
+ var apiFunctions = bindingsAPI.apiFunctions; |
+ |
+ apiFunctions.setCustomCallback('capture', |
+ function(name, request, response) { |
+ if (response && request.callback) { |
+ var callback = request.callback; |
+ var successFunc = function(stream) { |
+ callback(stream); |
+ }; |
+ var errorFunc = function() { |
+ callback(null); |
+ }; |
+ |
+ var options = {}; |
+ options.video = response.videoConstraints; |
+ options.audio = response.audioConstraints; |
+ |
+ navigator.webkitGetUserMedia(options, successFunc, errorFunc); |
+ } else { |
+ request.callback(); |
+ } |
+ request.callback = null; |
+ }); |
+}); |