Index: chrome/browser/resources/bluetooth_internals/interfaces.js |
diff --git a/chrome/browser/resources/bluetooth_internals/interfaces.js b/chrome/browser/resources/bluetooth_internals/interfaces.js |
index a48eb81f6311c93ec7cc6924db863bd67ce92ad7..063cbe734192a4c298ee5cd0dc6a7118929d12f7 100644 |
--- a/chrome/browser/resources/bluetooth_internals/interfaces.js |
+++ b/chrome/browser/resources/bluetooth_internals/interfaces.js |
@@ -9,21 +9,30 @@ |
cr.define('interfaces', function() { |
/** |
+ * Overriden by tests to give them a chance to setup a fake Mojo browser proxy |
+ * before any other code executes. |
+ * @return {!Promise} A promise firing once necessary setup has been completed. |
+ */ |
+ var setupFn = window.setupFn || function() { return Promise.resolve(); }; |
+ |
+ /** |
* Sets up Mojo interfaces and adds them to window.interfaces. |
* @return {Promise} |
*/ |
function setupInterfaces() { |
- return importModules([ |
- 'content/public/renderer/frame_interfaces', |
- 'device/bluetooth/public/interfaces/adapter.mojom', |
- 'device/bluetooth/public/interfaces/device.mojom', |
- 'mojo/public/js/connection', |
- ]).then(function([frameInterfaces, bluetoothAdapter, bluetoothDevice, |
- connection]) { |
- interfaces.BluetoothAdapter = bluetoothAdapter; |
- interfaces.BluetoothDevice = bluetoothDevice; |
- interfaces.Connection = connection; |
- interfaces.FrameInterfaces = frameInterfaces; |
+ return setupFn().then(function() { |
+ return importModules([ |
+ 'content/public/renderer/frame_interfaces', |
+ 'device/bluetooth/public/interfaces/adapter.mojom', |
+ 'device/bluetooth/public/interfaces/device.mojom', |
+ 'mojo/public/js/connection', |
+ ]).then(function([frameInterfaces, bluetoothAdapter, bluetoothDevice, |
+ connection]) { |
+ interfaces.BluetoothAdapter = bluetoothAdapter; |
+ interfaces.BluetoothDevice = bluetoothDevice; |
+ interfaces.Connection = connection; |
+ interfaces.FrameInterfaces = frameInterfaces; |
+ }); |
}); |
} |