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

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

Issue 1814603002: Track USB device interface claim state in Blink. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebased. Created 4 years, 9 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 9e8afc6cfd4f2b73e25fcad239cac2a215f6a3b7..27c59d80bf9a60edad1ab8ed91fdcf7a9e6a87b9 100644
--- a/third_party/WebKit/Source/modules/webusb/USBDevice.h
+++ b/third_party/WebKit/Source/modules/webusb/USBDevice.h
@@ -12,6 +12,7 @@
#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"
namespace blink {
@@ -42,7 +43,9 @@ public:
const WebUSBDeviceInfo& info() const { return m_device->info(); }
void onDeviceOpenedOrClosed(bool);
- void onConfigurationSelected(bool success, int configurationIndex);
+ void onConfigurationSelected(bool success, size_t configurationIndex);
+ void onInterfaceClaimedOrUnclaimed(bool claimed, size_t interfaceIndex);
+ bool isInterfaceClaimed(size_t configurationIndex, size_t interfaceIndex) const;
// IDL exposed interface:
String guid() const { return info().guid; }
@@ -73,7 +76,7 @@ public:
ScriptPromise controlTransferIn(ScriptState*, const USBControlTransferParameters& setup, unsigned length);
ScriptPromise controlTransferOut(ScriptState*, const USBControlTransferParameters& setup);
ScriptPromise controlTransferOut(ScriptState*, const USBControlTransferParameters& setup, const ArrayBufferOrArrayBufferView& data);
- ScriptPromise clearHalt(ScriptState*, uint8_t endpointNumber);
+ ScriptPromise clearHalt(ScriptState*, String direction, uint8_t endpointNumber);
ScriptPromise transferIn(ScriptState*, uint8_t endpointNumber, unsigned length);
ScriptPromise transferOut(ScriptState*, uint8_t endpointNumber, const ArrayBufferOrArrayBufferView& data);
ScriptPromise isochronousTransferIn(ScriptState*, uint8_t endpointNumber, Vector<unsigned> packetLengths);
@@ -86,12 +89,19 @@ public:
private:
int findConfigurationIndex(uint8_t configurationValue) const;
+ int findInterfaceIndex(uint8_t interfaceNumber) const;
+ bool ensureNoDeviceOrInterfaceChangeInProgress(ScriptPromiseResolver*) const;
bool ensureDeviceConfigured(ScriptPromiseResolver*) const;
+ bool ensureInterfaceClaimed(uint8_t interfaceNumber, ScriptPromiseResolver*) const;
+ bool ensureEndpointAvailable(bool inTransfer, uint8_t endpointNumber, ScriptPromiseResolver*) const;
+ bool anyInterfaceChangeInProgress() const;
OwnPtr<WebUSBDevice> m_device;
bool m_opened;
bool m_deviceStateChangeInProgress;
int m_configurationIndex;
+ WTF::BitVector m_claimedInterfaces;
+ WTF::BitVector m_interfaceStateChangeInProgress;
};
} // namespace blink
« no previous file with comments | « third_party/WebKit/Source/modules/webusb/USBConfiguration.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