Index: chrome/renderer/resources/extensions/experimental.tab_capture_custom_bindings.js |
diff --git a/chrome/renderer/resources/extensions/experimental.tab_capture_custom_bindings.js b/chrome/renderer/resources/extensions/experimental.tab_capture_custom_bindings.js |
new file mode 100644 |
index 0000000000000000000000000000000000000000..0af790865be9a740ba25c4c5626c07887a498a12 |
--- /dev/null |
+++ b/chrome/renderer/resources/extensions/experimental.tab_capture_custom_bindings.js |
@@ -0,0 +1,30 @@ |
+// 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 tabCaptureNatives = requireNative('experimental_tabCapture'); |
+var chromeHidden = requireNative('chrome_hidden').GetChromeHidden(); |
+ |
+chromeHidden.registerCustomHook('experimental.tabCapture', |
+ function(bindingsAPI, extensionId) { |
+ var apiFunctions = bindingsAPI.apiFunctions; |
+ |
+ apiFunctions.setCustomCallback('getTabMedia', |
+ function(name, request, response) { |
+ if (response && request.callback) { |
+ var callback = request.callback; |
+ var successFunc = function(stream) { |
+ callback(stream); |
+ }; |
+ var errorFunc = function() { |
+ callback(null); |
+ }; |
+ if (0 !== tabCaptureNatives.RequestDeviceMedia( |
+ response.deviceId, response.options, successFunc, errorFunc)) |
+ errorFunc(); |
+ } |
+ request.callback = null; |
+ }); |
+}); |