Introduced blink::mojom::WebUsbService with restricted methods.
This CL introduced blink::mojom::WebUsbService implemented
by WebUsbServiceImpl in chrome/browser/usb which used to be
WebDeviceManager.
Paralleling with device::mojom::UsbDeviceManager, the new interface
aims to simplify the interactions with Blink, and a meaningless
argument of GetDevices() method has been reduced in this CL.
device::mojom::UsbChooserService will be merged to this interface in
subsequent CLs.
BUG=699790
Change-Id: I891c56460425c20d2e8d067f9335091f6945ae7d
Reviewed-on: https://chromium-review.googlesource.com/1151065
Commit-Queue: Donna Wu <donna.wu@intel.com>
Reviewed-by: Kinuko Yasuda <kinuko@chromium.org>
Reviewed-by: Reilly Grant <reillyg@chromium.org>
Cr-Commit-Position: refs/heads/master@{#582108}
diff --git a/resources/chromium/web_usb_service.mojom.js b/resources/chromium/web_usb_service.mojom.js
new file mode 100644
index 0000000..c283f0e
--- /dev/null
+++ b/resources/chromium/web_usb_service.mojom.js
@@ -0,0 +1,561 @@
+// Copyright 2014 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.
+
+'use strict';
+
+(function() {
+ var mojomId = 'third_party/blink/public/mojom/usb/web_usb_service.mojom';
+ if (mojo.internal.isMojomLoaded(mojomId)) {
+ console.warn('The following mojom is loaded multiple times: ' + mojomId);
+ return;
+ }
+ mojo.internal.markMojomLoaded(mojomId);
+ var bindings = mojo;
+ var associatedBindings = mojo;
+ var codec = mojo.internal;
+ var validator = mojo.internal;
+
+ var exports = mojo.internal.exposeNamespace('blink.mojom');
+ var device$ =
+ mojo.internal.exposeNamespace('device.mojom');
+ if (mojo.config.autoLoadMojomDeps) {
+ mojo.internal.loadMojomIfNecessary(
+ 'device/usb/public/mojom/device.mojom', '../../../../../device/usb/public/mojom/device.mojom.js');
+ }
+ var device_manager$ =
+ mojo.internal.exposeNamespace('device.mojom');
+ if (mojo.config.autoLoadMojomDeps) {
+ mojo.internal.loadMojomIfNecessary(
+ 'device/usb/public/mojom/device_manager.mojom', '../../../../../device/usb/public/mojom/device_manager.mojom.js');
+ }
+
+
+
+ function WebUsbService_GetDevices_Params(values) {
+ this.initDefaults_();
+ this.initFields_(values);
+ }
+
+
+ WebUsbService_GetDevices_Params.prototype.initDefaults_ = function() {
+ };
+ WebUsbService_GetDevices_Params.prototype.initFields_ = function(fields) {
+ for(var field in fields) {
+ if (this.hasOwnProperty(field))
+ this[field] = fields[field];
+ }
+ };
+ WebUsbService_GetDevices_Params.generate = function(generator_) {
+ var generated = new WebUsbService_GetDevices_Params;
+ return generated;
+ };
+
+ WebUsbService_GetDevices_Params.prototype.mutate = function(mutator_) {
+ return this;
+ };
+ WebUsbService_GetDevices_Params.prototype.getHandleDeps = function() {
+ var handles = [];
+ return handles;
+ };
+
+ WebUsbService_GetDevices_Params.prototype.setHandles = function() {
+ this.setHandlesInternal_(arguments, 0);
+ };
+ WebUsbService_GetDevices_Params.prototype.setHandlesInternal_ = function(handles, idx) {
+ return idx;
+ };
+
+ WebUsbService_GetDevices_Params.validate = function(messageValidator, offset) {
+ var err;
+ err = messageValidator.validateStructHeader(offset, codec.kStructHeaderSize);
+ if (err !== validator.validationError.NONE)
+ return err;
+
+ var kVersionSizes = [
+ {version: 0, numBytes: 8}
+ ];
+ err = messageValidator.validateStructVersion(offset, kVersionSizes);
+ if (err !== validator.validationError.NONE)
+ return err;
+
+ return validator.validationError.NONE;
+ };
+
+ WebUsbService_GetDevices_Params.encodedSize = codec.kStructHeaderSize + 0;
+
+ WebUsbService_GetDevices_Params.decode = function(decoder) {
+ var packed;
+ var val = new WebUsbService_GetDevices_Params();
+ var numberOfBytes = decoder.readUint32();
+ var version = decoder.readUint32();
+ return val;
+ };
+
+ WebUsbService_GetDevices_Params.encode = function(encoder, val) {
+ var packed;
+ encoder.writeUint32(WebUsbService_GetDevices_Params.encodedSize);
+ encoder.writeUint32(0);
+ };
+ function WebUsbService_GetDevices_ResponseParams(values) {
+ this.initDefaults_();
+ this.initFields_(values);
+ }
+
+
+ WebUsbService_GetDevices_ResponseParams.prototype.initDefaults_ = function() {
+ this.results = null;
+ };
+ WebUsbService_GetDevices_ResponseParams.prototype.initFields_ = function(fields) {
+ for(var field in fields) {
+ if (this.hasOwnProperty(field))
+ this[field] = fields[field];
+ }
+ };
+ WebUsbService_GetDevices_ResponseParams.generate = function(generator_) {
+ var generated = new WebUsbService_GetDevices_ResponseParams;
+ generated.results = generator_.generateArray(function() {
+ return generator_.generateStruct(device.mojom.UsbDeviceInfo, false);
+ });
+ return generated;
+ };
+
+ WebUsbService_GetDevices_ResponseParams.prototype.mutate = function(mutator_) {
+ if (mutator_.chooseMutateField()) {
+ this.results = mutator_.mutateArray(this.results, function(val) {
+ return mutator_.mutateStruct(val, device.mojom.UsbDeviceInfo, false);
+ });
+ }
+ return this;
+ };
+ WebUsbService_GetDevices_ResponseParams.prototype.getHandleDeps = function() {
+ var handles = [];
+ return handles;
+ };
+
+ WebUsbService_GetDevices_ResponseParams.prototype.setHandles = function() {
+ this.setHandlesInternal_(arguments, 0);
+ };
+ WebUsbService_GetDevices_ResponseParams.prototype.setHandlesInternal_ = function(handles, idx) {
+ return idx;
+ };
+
+ WebUsbService_GetDevices_ResponseParams.validate = function(messageValidator, offset) {
+ var err;
+ err = messageValidator.validateStructHeader(offset, codec.kStructHeaderSize);
+ if (err !== validator.validationError.NONE)
+ return err;
+
+ var kVersionSizes = [
+ {version: 0, numBytes: 16}
+ ];
+ err = messageValidator.validateStructVersion(offset, kVersionSizes);
+ if (err !== validator.validationError.NONE)
+ return err;
+
+
+ // validate WebUsbService_GetDevices_ResponseParams.results
+ err = messageValidator.validateArrayPointer(offset + codec.kStructHeaderSize + 0, 8, new codec.PointerTo(device$.UsbDeviceInfo), false, [0], 0);
+ if (err !== validator.validationError.NONE)
+ return err;
+
+ return validator.validationError.NONE;
+ };
+
+ WebUsbService_GetDevices_ResponseParams.encodedSize = codec.kStructHeaderSize + 8;
+
+ WebUsbService_GetDevices_ResponseParams.decode = function(decoder) {
+ var packed;
+ var val = new WebUsbService_GetDevices_ResponseParams();
+ var numberOfBytes = decoder.readUint32();
+ var version = decoder.readUint32();
+ val.results = decoder.decodeArrayPointer(new codec.PointerTo(device$.UsbDeviceInfo));
+ return val;
+ };
+
+ WebUsbService_GetDevices_ResponseParams.encode = function(encoder, val) {
+ var packed;
+ encoder.writeUint32(WebUsbService_GetDevices_ResponseParams.encodedSize);
+ encoder.writeUint32(0);
+ encoder.encodeArrayPointer(new codec.PointerTo(device$.UsbDeviceInfo), val.results);
+ };
+ function WebUsbService_GetDevice_Params(values) {
+ this.initDefaults_();
+ this.initFields_(values);
+ }
+
+
+ WebUsbService_GetDevice_Params.prototype.initDefaults_ = function() {
+ this.guid = null;
+ this.deviceRequestd = new bindings.InterfaceRequest();
+ };
+ WebUsbService_GetDevice_Params.prototype.initFields_ = function(fields) {
+ for(var field in fields) {
+ if (this.hasOwnProperty(field))
+ this[field] = fields[field];
+ }
+ };
+ WebUsbService_GetDevice_Params.generate = function(generator_) {
+ var generated = new WebUsbService_GetDevice_Params;
+ generated.guid = generator_.generateString(false);
+ generated.deviceRequestd = generator_.generateInterfaceRequest("device.mojom.UsbDevice", false);
+ return generated;
+ };
+
+ WebUsbService_GetDevice_Params.prototype.mutate = function(mutator_) {
+ if (mutator_.chooseMutateField()) {
+ this.guid = mutator_.mutateString(this.guid, false);
+ }
+ if (mutator_.chooseMutateField()) {
+ this.deviceRequestd = mutator_.mutateInterfaceRequest(this.deviceRequestd, "device.mojom.UsbDevice", false);
+ }
+ return this;
+ };
+ WebUsbService_GetDevice_Params.prototype.getHandleDeps = function() {
+ var handles = [];
+ if (this.deviceRequestd !== null) {
+ Array.prototype.push.apply(handles, ["device.mojom.UsbDeviceRequest"]);
+ }
+ return handles;
+ };
+
+ WebUsbService_GetDevice_Params.prototype.setHandles = function() {
+ this.setHandlesInternal_(arguments, 0);
+ };
+ WebUsbService_GetDevice_Params.prototype.setHandlesInternal_ = function(handles, idx) {
+ this.deviceRequestd = handles[idx++];;
+ return idx;
+ };
+
+ WebUsbService_GetDevice_Params.validate = function(messageValidator, offset) {
+ var err;
+ err = messageValidator.validateStructHeader(offset, codec.kStructHeaderSize);
+ if (err !== validator.validationError.NONE)
+ return err;
+
+ var kVersionSizes = [
+ {version: 0, numBytes: 24}
+ ];
+ err = messageValidator.validateStructVersion(offset, kVersionSizes);
+ if (err !== validator.validationError.NONE)
+ return err;
+
+
+ // validate WebUsbService_GetDevice_Params.guid
+ err = messageValidator.validateStringPointer(offset + codec.kStructHeaderSize + 0, false)
+ if (err !== validator.validationError.NONE)
+ return err;
+
+
+ // validate WebUsbService_GetDevice_Params.deviceRequestd
+ err = messageValidator.validateInterfaceRequest(offset + codec.kStructHeaderSize + 8, false)
+ if (err !== validator.validationError.NONE)
+ return err;
+
+ return validator.validationError.NONE;
+ };
+
+ WebUsbService_GetDevice_Params.encodedSize = codec.kStructHeaderSize + 16;
+
+ WebUsbService_GetDevice_Params.decode = function(decoder) {
+ var packed;
+ var val = new WebUsbService_GetDevice_Params();
+ var numberOfBytes = decoder.readUint32();
+ var version = decoder.readUint32();
+ val.guid = decoder.decodeStruct(codec.String);
+ val.deviceRequestd = decoder.decodeStruct(codec.InterfaceRequest);
+ decoder.skip(1);
+ decoder.skip(1);
+ decoder.skip(1);
+ decoder.skip(1);
+ return val;
+ };
+
+ WebUsbService_GetDevice_Params.encode = function(encoder, val) {
+ var packed;
+ encoder.writeUint32(WebUsbService_GetDevice_Params.encodedSize);
+ encoder.writeUint32(0);
+ encoder.encodeStruct(codec.String, val.guid);
+ encoder.encodeStruct(codec.InterfaceRequest, val.deviceRequestd);
+ encoder.skip(1);
+ encoder.skip(1);
+ encoder.skip(1);
+ encoder.skip(1);
+ };
+ function WebUsbService_SetClient_Params(values) {
+ this.initDefaults_();
+ this.initFields_(values);
+ }
+
+
+ WebUsbService_SetClient_Params.prototype.initDefaults_ = function() {
+ this.client = new device_manager$.UsbDeviceManagerClientPtr();
+ };
+ WebUsbService_SetClient_Params.prototype.initFields_ = function(fields) {
+ for(var field in fields) {
+ if (this.hasOwnProperty(field))
+ this[field] = fields[field];
+ }
+ };
+ WebUsbService_SetClient_Params.generate = function(generator_) {
+ var generated = new WebUsbService_SetClient_Params;
+ generated.client = generator_.generateInterface("device.mojom.UsbDeviceManagerClient", false);
+ return generated;
+ };
+
+ WebUsbService_SetClient_Params.prototype.mutate = function(mutator_) {
+ if (mutator_.chooseMutateField()) {
+ this.client = mutator_.mutateInterface(this.client, "device.mojom.UsbDeviceManagerClient", false);
+ }
+ return this;
+ };
+ WebUsbService_SetClient_Params.prototype.getHandleDeps = function() {
+ var handles = [];
+ if (this.client !== null) {
+ Array.prototype.push.apply(handles, ["device.mojom.UsbDeviceManagerClientPtr"]);
+ }
+ return handles;
+ };
+
+ WebUsbService_SetClient_Params.prototype.setHandles = function() {
+ this.setHandlesInternal_(arguments, 0);
+ };
+ WebUsbService_SetClient_Params.prototype.setHandlesInternal_ = function(handles, idx) {
+ this.client = handles[idx++];;
+ return idx;
+ };
+
+ WebUsbService_SetClient_Params.validate = function(messageValidator, offset) {
+ var err;
+ err = messageValidator.validateStructHeader(offset, codec.kStructHeaderSize);
+ if (err !== validator.validationError.NONE)
+ return err;
+
+ var kVersionSizes = [
+ {version: 0, numBytes: 16}
+ ];
+ err = messageValidator.validateStructVersion(offset, kVersionSizes);
+ if (err !== validator.validationError.NONE)
+ return err;
+
+
+ // validate WebUsbService_SetClient_Params.client
+ err = messageValidator.validateInterface(offset + codec.kStructHeaderSize + 0, false);
+ if (err !== validator.validationError.NONE)
+ return err;
+
+ return validator.validationError.NONE;
+ };
+
+ WebUsbService_SetClient_Params.encodedSize = codec.kStructHeaderSize + 8;
+
+ WebUsbService_SetClient_Params.decode = function(decoder) {
+ var packed;
+ var val = new WebUsbService_SetClient_Params();
+ var numberOfBytes = decoder.readUint32();
+ var version = decoder.readUint32();
+ val.client = decoder.decodeStruct(new codec.Interface(device_manager$.UsbDeviceManagerClientPtr));
+ return val;
+ };
+
+ WebUsbService_SetClient_Params.encode = function(encoder, val) {
+ var packed;
+ encoder.writeUint32(WebUsbService_SetClient_Params.encodedSize);
+ encoder.writeUint32(0);
+ encoder.encodeStruct(new codec.Interface(device_manager$.UsbDeviceManagerClientPtr), val.client);
+ };
+ var kWebUsbService_GetDevices_Name = 0;
+ var kWebUsbService_GetDevice_Name = 1;
+ var kWebUsbService_SetClient_Name = 2;
+
+ function WebUsbServicePtr(handleOrPtrInfo) {
+ this.ptr = new bindings.InterfacePtrController(WebUsbService,
+ handleOrPtrInfo);
+ }
+
+ function WebUsbServiceAssociatedPtr(associatedInterfacePtrInfo) {
+ this.ptr = new associatedBindings.AssociatedInterfacePtrController(
+ WebUsbService, associatedInterfacePtrInfo);
+ }
+
+ WebUsbServiceAssociatedPtr.prototype =
+ Object.create(WebUsbServicePtr.prototype);
+ WebUsbServiceAssociatedPtr.prototype.constructor =
+ WebUsbServiceAssociatedPtr;
+
+ function WebUsbServiceProxy(receiver) {
+ this.receiver_ = receiver;
+ }
+ WebUsbServicePtr.prototype.getDevices = function() {
+ return WebUsbServiceProxy.prototype.getDevices
+ .apply(this.ptr.getProxy(), arguments);
+ };
+
+ WebUsbServiceProxy.prototype.getDevices = function() {
+ var params_ = new WebUsbService_GetDevices_Params();
+ return new Promise(function(resolve, reject) {
+ var builder = new codec.MessageV1Builder(
+ kWebUsbService_GetDevices_Name,
+ codec.align(WebUsbService_GetDevices_Params.encodedSize),
+ codec.kMessageExpectsResponse, 0);
+ builder.encodeStruct(WebUsbService_GetDevices_Params, params_);
+ var message = builder.finish();
+ this.receiver_.acceptAndExpectResponse(message).then(function(message) {
+ var reader = new codec.MessageReader(message);
+ var responseParams =
+ reader.decodeStruct(WebUsbService_GetDevices_ResponseParams);
+ resolve(responseParams);
+ }).catch(function(result) {
+ reject(Error("Connection error: " + result));
+ });
+ }.bind(this));
+ };
+ WebUsbServicePtr.prototype.getDevice = function() {
+ return WebUsbServiceProxy.prototype.getDevice
+ .apply(this.ptr.getProxy(), arguments);
+ };
+
+ WebUsbServiceProxy.prototype.getDevice = function(guid, deviceRequestd) {
+ var params_ = new WebUsbService_GetDevice_Params();
+ params_.guid = guid;
+ params_.deviceRequestd = deviceRequestd;
+ var builder = new codec.MessageV0Builder(
+ kWebUsbService_GetDevice_Name,
+ codec.align(WebUsbService_GetDevice_Params.encodedSize));
+ builder.encodeStruct(WebUsbService_GetDevice_Params, params_);
+ var message = builder.finish();
+ this.receiver_.accept(message);
+ };
+ WebUsbServicePtr.prototype.setClient = function() {
+ return WebUsbServiceProxy.prototype.setClient
+ .apply(this.ptr.getProxy(), arguments);
+ };
+
+ WebUsbServiceProxy.prototype.setClient = function(client) {
+ var params_ = new WebUsbService_SetClient_Params();
+ params_.client = client;
+ var builder = new codec.MessageV0Builder(
+ kWebUsbService_SetClient_Name,
+ codec.align(WebUsbService_SetClient_Params.encodedSize));
+ builder.encodeStruct(WebUsbService_SetClient_Params, params_);
+ var message = builder.finish();
+ this.receiver_.accept(message);
+ };
+
+ function WebUsbServiceStub(delegate) {
+ this.delegate_ = delegate;
+ }
+ WebUsbServiceStub.prototype.getDevices = function() {
+ return this.delegate_ && this.delegate_.getDevices && this.delegate_.getDevices();
+ }
+ WebUsbServiceStub.prototype.getDevice = function(guid, deviceRequestd) {
+ return this.delegate_ && this.delegate_.getDevice && this.delegate_.getDevice(guid, deviceRequestd);
+ }
+ WebUsbServiceStub.prototype.setClient = function(client) {
+ return this.delegate_ && this.delegate_.setClient && this.delegate_.setClient(client);
+ }
+
+ WebUsbServiceStub.prototype.accept = function(message) {
+ var reader = new codec.MessageReader(message);
+ switch (reader.messageName) {
+ case kWebUsbService_GetDevice_Name:
+ var params = reader.decodeStruct(WebUsbService_GetDevice_Params);
+ this.getDevice(params.guid, params.deviceRequestd);
+ return true;
+ case kWebUsbService_SetClient_Name:
+ var params = reader.decodeStruct(WebUsbService_SetClient_Params);
+ this.setClient(params.client);
+ return true;
+ default:
+ return false;
+ }
+ };
+
+ WebUsbServiceStub.prototype.acceptWithResponder =
+ function(message, responder) {
+ var reader = new codec.MessageReader(message);
+ switch (reader.messageName) {
+ case kWebUsbService_GetDevices_Name:
+ var params = reader.decodeStruct(WebUsbService_GetDevices_Params);
+ this.getDevices().then(function(response) {
+ var responseParams =
+ new WebUsbService_GetDevices_ResponseParams();
+ responseParams.results = response.results;
+ var builder = new codec.MessageV1Builder(
+ kWebUsbService_GetDevices_Name,
+ codec.align(WebUsbService_GetDevices_ResponseParams.encodedSize),
+ codec.kMessageIsResponse, reader.requestID);
+ builder.encodeStruct(WebUsbService_GetDevices_ResponseParams,
+ responseParams);
+ var message = builder.finish();
+ responder.accept(message);
+ });
+ return true;
+ default:
+ return false;
+ }
+ };
+
+ function validateWebUsbServiceRequest(messageValidator) {
+ var message = messageValidator.message;
+ var paramsClass = null;
+ switch (message.getName()) {
+ case kWebUsbService_GetDevices_Name:
+ if (message.expectsResponse())
+ paramsClass = WebUsbService_GetDevices_Params;
+ break;
+ case kWebUsbService_GetDevice_Name:
+ if (!message.expectsResponse() && !message.isResponse())
+ paramsClass = WebUsbService_GetDevice_Params;
+ break;
+ case kWebUsbService_SetClient_Name:
+ if (!message.expectsResponse() && !message.isResponse())
+ paramsClass = WebUsbService_SetClient_Params;
+ break;
+ }
+ if (paramsClass === null)
+ return validator.validationError.NONE;
+ return paramsClass.validate(messageValidator, messageValidator.message.getHeaderNumBytes());
+ }
+
+ function validateWebUsbServiceResponse(messageValidator) {
+ var message = messageValidator.message;
+ var paramsClass = null;
+ switch (message.getName()) {
+ case kWebUsbService_GetDevices_Name:
+ if (message.isResponse())
+ paramsClass = WebUsbService_GetDevices_ResponseParams;
+ break;
+ }
+ if (paramsClass === null)
+ return validator.validationError.NONE;
+ return paramsClass.validate(messageValidator, messageValidator.message.getHeaderNumBytes());
+ }
+
+ var WebUsbService = {
+ name: 'blink.mojom.WebUsbService',
+ kVersion: 0,
+ ptrClass: WebUsbServicePtr,
+ proxyClass: WebUsbServiceProxy,
+ stubClass: WebUsbServiceStub,
+ validateRequest: validateWebUsbServiceRequest,
+ validateResponse: validateWebUsbServiceResponse,
+ mojomId: 'third_party/blink/public/mojom/usb/web_usb_service.mojom',
+ fuzzMethods: {
+ getDevices: {
+ params: WebUsbService_GetDevices_Params,
+ },
+ getDevice: {
+ params: WebUsbService_GetDevice_Params,
+ },
+ setClient: {
+ params: WebUsbService_SetClient_Params,
+ },
+ },
+ };
+ WebUsbServiceStub.prototype.validator = validateWebUsbServiceRequest;
+ WebUsbServiceProxy.prototype.validator = validateWebUsbServiceResponse;
+ exports.WebUsbService = WebUsbService;
+ exports.WebUsbServicePtr = WebUsbServicePtr;
+ exports.WebUsbServiceAssociatedPtr = WebUsbServiceAssociatedPtr;
+})();
\ No newline at end of file
diff --git a/resources/chromium/web_usb_service.mojom.js.headers b/resources/chromium/web_usb_service.mojom.js.headers
new file mode 100644
index 0000000..6805c32
--- /dev/null
+++ b/resources/chromium/web_usb_service.mojom.js.headers
@@ -0,0 +1 @@
+Content-Type: text/javascript; charset=utf-8
diff --git a/resources/chromium/webusb-test.js b/resources/chromium/webusb-test.js
index 630a7da..94db93d 100644
--- a/resources/chromium/webusb-test.js
+++ b/resources/chromium/webusb-test.js
@@ -10,9 +10,9 @@
let internal = {
intialized: false,
- deviceManager: null,
- deviceManagerInterceptor: null,
- deviceManagerCrossFrameProxy: null,
+ webUsbService: null,
+ webUsbServiceInterceptor: null,
+ webUsbServiceCrossFrameProxy: null,
chooser: null,
chooserInterceptor: null,
@@ -299,9 +299,9 @@
}
}
-class FakeDeviceManager {
+class FakeWebUsbService {
constructor() {
- this.bindingSet_ = new mojo.BindingSet(device.mojom.UsbDeviceManager);
+ this.bindingSet_ = new mojo.BindingSet(blink.mojom.WebUsbService);
this.devices_ = new Map();
this.devicesByGuid_ = new Map();
this.client_ = null;
@@ -351,7 +351,7 @@
this.devicesByGuid_.clear();
}
- getDevices(options) {
+ getDevices() {
let devices = [];
this.devices_.forEach(device => {
devices.push(fakeDeviceInitToDeviceInfo(device.guid, device.info));
@@ -391,7 +391,7 @@
// Wait until |value| resolves (if it is a Promise). This function returns
// no value.
Promise.resolve(value).then(fakeDevice => {
- let device = internal.deviceManager.devices_.get(fakeDevice);
+ let device = internal.webUsbService.devices_.get(fakeDevice);
let result = null;
if (device) {
result = fakeDeviceInitToDeviceInfo(device.guid, device.info);
@@ -431,7 +431,7 @@
}
disconnect() {
- setTimeout(() => internal.deviceManager.removeDevice(this), 0);
+ setTimeout(() => internal.webUsbService.removeDevice(this), 0);
}
}
@@ -463,14 +463,14 @@
if (internal.initialized)
return;
- internal.deviceManager = new FakeDeviceManager();
- internal.deviceManagerInterceptor =
- new MojoInterfaceInterceptor(device.mojom.UsbDeviceManager.name);
- internal.deviceManagerInterceptor.oninterfacerequest =
- e => internal.deviceManager.addBinding(e.handle);
- internal.deviceManagerInterceptor.start();
- internal.deviceManagerCrossFrameProxy = new CrossFrameHandleProxy(
- handle => internal.deviceManager.addBinding(handle));
+ internal.webUsbService = new FakeWebUsbService();
+ internal.webUsbServiceInterceptor =
+ new MojoInterfaceInterceptor(blink.mojom.WebUsbService.name);
+ internal.webUsbServiceInterceptor.oninterfacerequest =
+ e => internal.webUsbService.addBinding(e.handle);
+ internal.webUsbServiceInterceptor.start();
+ internal.webUsbServiceCrossFrameProxy = new CrossFrameHandleProxy(
+ handle => internal.webUsbService.addBinding(handle));
internal.chooser = new FakeChooserService();
internal.chooserInterceptor =
@@ -491,12 +491,12 @@
if (!internal.initialized)
throw new Error('Call initialize() before attachToWindow().');
- otherWindow.deviceManagerInterceptor =
+ otherWindow.webUsbServiceInterceptor =
new otherWindow.MojoInterfaceInterceptor(
- device.mojom.UsbDeviceManager.name);
- otherWindow.deviceManagerInterceptor.oninterfacerequest =
- e => internal.deviceManagerCrossFrameProxy.forwardHandle(e.handle);
- otherWindow.deviceManagerInterceptor.start();
+ blink.mojom.WebUsbService.name);
+ otherWindow.webUsbServiceInterceptor.oninterfacerequest =
+ e => internal.webUsbServiceCrossFrameProxy.forwardHandle(e.handle);
+ otherWindow.webUsbServiceInterceptor.start();
otherWindow.chooserInterceptor =
new otherWindow.MojoInterfaceInterceptor(
@@ -519,7 +519,7 @@
// may not be true for all implementations of this test API.
let fakeDevice = new FakeUSBDevice();
setTimeout(
- () => internal.deviceManager.addDevice(fakeDevice, deviceInit), 0);
+ () => internal.webUsbService.addDevice(fakeDevice, deviceInit), 0);
return fakeDevice;
}
@@ -531,7 +531,7 @@
// the fact that this polyfill can do this synchronously.
return new Promise(resolve => {
setTimeout(() => {
- internal.deviceManager.removeAllDevices();
+ internal.webUsbService.removeAllDevices();
resolve();
}, 0);
});
diff --git a/webusb/resources/usb-helpers.js b/webusb/resources/usb-helpers.js
index e2b7d46..881ea8b 100644
--- a/webusb/resources/usb-helpers.js
+++ b/webusb/resources/usb-helpers.js
@@ -22,6 +22,7 @@
'/resources/chromium/device.mojom.js',
'/resources/chromium/device_manager.mojom.js',
'/resources/chromium/chooser_service.mojom.js',
+ '/resources/chromium/web_usb_service.mojom.js',
'/resources/chromium/webusb-test.js',
].forEach(path => {
// Use importScripts for workers.