Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(65)

Unified Diff: third_party/WebKit/Source/modules/webusb/USBDevice.h

Issue 1850023002: Consume Mojo services directly in Blink's WebUSB implementation. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Don't do assignments in if statements. Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/modules/webusb/USBDevice.h
diff --git a/third_party/WebKit/Source/modules/webusb/USBDevice.h b/third_party/WebKit/Source/modules/webusb/USBDevice.h
index 9b5154b85c006e597c20bb8a9aadf5c400ccc3e0..17bff6b005cff03fc2f10fe05eb6e83f41f6a472 100644
--- a/third_party/WebKit/Source/modules/webusb/USBDevice.h
+++ b/third_party/WebKit/Source/modules/webusb/USBDevice.h
@@ -9,9 +9,8 @@
#include "bindings/core/v8/ScriptWrappable.h"
#include "bindings/modules/v8/UnionTypesModules.h"
#include "core/dom/ContextLifecycleObserver.h"
+#include "device/usb/public/interfaces/device.mojom-wtf.h"
#include "platform/heap/Handle.h"
-#include "public/platform/modules/webusb/WebUSBDevice.h"
-#include "public/platform/modules/webusb/WebUSBDeviceInfo.h"
#include "wtf/BitVector.h"
#include "wtf/Vector.h"
@@ -29,42 +28,34 @@ class USBDevice
USING_GARBAGE_COLLECTED_MIXIN(USBDevice);
DEFINE_WRAPPERTYPEINFO();
public:
- using WebType = OwnPtr<WebUSBDevice>;
-
- static USBDevice* create(PassOwnPtr<WebUSBDevice> device, ExecutionContext* context)
+ static USBDevice* create(device::usb::wtf::DeviceInfoPtr deviceInfo, device::usb::wtf::DevicePtr device, ExecutionContext* context)
{
- return new USBDevice(device, context);
+ return new USBDevice(std::move(deviceInfo), std::move(device), context);
}
- static USBDevice* take(ScriptPromiseResolver*, PassOwnPtr<WebUSBDevice>);
-
- explicit USBDevice(PassOwnPtr<WebUSBDevice>, ExecutionContext*);
- virtual ~USBDevice() { }
+ explicit USBDevice(device::usb::wtf::DeviceInfoPtr, device::usb::wtf::DevicePtr, ExecutionContext*);
+ virtual ~USBDevice();
- const WebUSBDeviceInfo& info() const { return m_device->info(); }
- void onDeviceOpenedOrClosed(bool);
- void onConfigurationSelected(bool success, size_t configurationIndex);
- void onInterfaceClaimedOrUnclaimed(bool claimed, size_t interfaceIndex);
- void onAlternateInterfaceSelected(bool success, size_t interfaceIndex, size_t alternateIndex);
+ const device::usb::wtf::DeviceInfo& info() const { return *m_deviceInfo; }
bool isInterfaceClaimed(size_t configurationIndex, size_t interfaceIndex) const;
size_t selectedAlternateInterface(size_t interfaceIndex) const;
- // IDL exposed interface:
+ // USBDevice.idl
String guid() const { return info().guid; }
- uint8_t usbVersionMajor() { return info().usbVersionMajor; }
- uint8_t usbVersionMinor() { return info().usbVersionMinor; }
- uint8_t usbVersionSubminor() { return info().usbVersionSubminor; }
- uint8_t deviceClass() { return info().deviceClass; }
- uint8_t deviceSubclass() const { return info().deviceSubclass; }
- uint8_t deviceProtocol() const { return info().deviceProtocol; }
- uint16_t vendorId() const { return info().vendorID; }
- uint16_t productId() const { return info().productID; }
- uint8_t deviceVersionMajor() const { return info().deviceVersionMajor; }
- uint8_t deviceVersionMinor() const { return info().deviceVersionMinor; }
- uint8_t deviceVersionSubminor() const { return info().deviceVersionSubminor; }
- String manufacturerName() const { return info().manufacturerName; }
- String productName() const { return info().productName; }
- String serialNumber() const { return info().serialNumber; }
+ uint8_t usbVersionMajor() const { return info().usb_version_major; }
+ uint8_t usbVersionMinor() const { return info().usb_version_minor; }
+ uint8_t usbVersionSubminor() const { return info().usb_version_subminor; }
+ uint8_t deviceClass() const { return info().class_code; }
+ uint8_t deviceSubclass() const { return info().subclass_code; }
+ uint8_t deviceProtocol() const { return info().protocol_code; }
+ uint16_t vendorId() const { return info().vendor_id; }
+ uint16_t productId() const { return info().product_id; }
+ uint8_t deviceVersionMajor() const { return info().device_version_major; }
+ uint8_t deviceVersionMinor() const { return info().device_version_minor; }
+ uint8_t deviceVersionSubminor() const { return info().device_version_subminor; }
+ String manufacturerName() const { return info().manufacturer_name; }
+ String productName() const { return info().product_name; }
+ String serialNumber() const { return info().serial_number; }
USBConfiguration* configuration() const;
HeapVector<Member<USBConfiguration>> configurations() const;
bool opened() const { return m_opened; }
@@ -99,10 +90,30 @@ private:
bool ensureInterfaceClaimed(uint8_t interfaceNumber, ScriptPromiseResolver*) const;
bool ensureEndpointAvailable(bool inTransfer, uint8_t endpointNumber, ScriptPromiseResolver*) const;
bool anyInterfaceChangeInProgress() const;
- bool convertControlTransferParameters(WebUSBDevice::TransferDirection, const USBControlTransferParameters&, WebUSBDevice::ControlTransferParameters*, ScriptPromiseResolver*) const;
+ device::usb::wtf::ControlTransferParamsPtr convertControlTransferParameters(const USBControlTransferParameters&, ScriptPromiseResolver*) const;
void setEndpointsForInterface(size_t interfaceIndex, bool set);
- OwnPtr<WebUSBDevice> m_device;
+ void asyncOpen(ScriptPromiseResolver*, device::usb::wtf::OpenDeviceError);
+ void asyncClose(ScriptPromiseResolver*);
+ void onDeviceOpenedOrClosed(bool);
+ void asyncSelectConfiguration(size_t configurationIndex, ScriptPromiseResolver*, bool success);
+ void onConfigurationSelected(bool success, size_t configurationIndex);
+ void asyncClaimInterface(size_t interfaceIndex, ScriptPromiseResolver*, bool success);
+ void asyncReleaseInterface(size_t interfaceIndex, ScriptPromiseResolver*, bool success);
+ void onInterfaceClaimedOrUnclaimed(bool claimed, size_t interfaceIndex);
+ void asyncSelectAlternateInterface(size_t interfaceIndex, size_t alternateIndex, ScriptPromiseResolver*, bool success);
+ void asyncControlTransferIn(ScriptPromiseResolver*, device::usb::wtf::TransferStatus, mojo::WTFArray<uint8_t>);
+ void asyncControlTransferOut(unsigned, ScriptPromiseResolver*, device::usb::wtf::TransferStatus);
+ void asyncClearHalt(ScriptPromiseResolver*, bool success);
+ void asyncTransferIn(ScriptPromiseResolver*, device::usb::wtf::TransferStatus, mojo::WTFArray<uint8_t>);
+ void asyncTransferOut(unsigned, ScriptPromiseResolver*, device::usb::wtf::TransferStatus);
+ void asyncIsochronousTransferIn(ScriptPromiseResolver*, mojo::WTFArray<uint8_t>, mojo::WTFArray<device::usb::wtf::IsochronousPacketPtr>);
+ void asyncIsochronousTransferOut(ScriptPromiseResolver*, mojo::WTFArray<device::usb::wtf::IsochronousPacketPtr>);
+ void asyncReset(ScriptPromiseResolver*, bool success);
+
+ device::usb::wtf::DeviceInfoPtr m_deviceInfo;
+ device::usb::wtf::DevicePtr m_device;
+ HeapHashSet<Member<ScriptPromiseResolver>> m_deviceRequests;
bool m_opened;
bool m_deviceStateChangeInProgress;
int m_configurationIndex;
« no previous file with comments | « third_party/WebKit/Source/modules/webusb/USBController.cpp ('k') | third_party/WebKit/Source/modules/webusb/USBDevice.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698