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

Side by Side Diff: third_party/WebKit/Source/modules/webusb/USBDevice.h

Issue 1781533002: Track USBDevice open 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 unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef USBDevice_h 5 #ifndef USBDevice_h
6 #define USBDevice_h 6 #define USBDevice_h
7 7
8 #include "bindings/core/v8/ScriptPromise.h" 8 #include "bindings/core/v8/ScriptPromise.h"
9 #include "bindings/core/v8/ScriptWrappable.h" 9 #include "bindings/core/v8/ScriptWrappable.h"
10 #include "bindings/modules/v8/UnionTypesModules.h" 10 #include "bindings/modules/v8/UnionTypesModules.h"
(...skipping 12 matching lines...) Expand all
23 23
24 class USBDevice 24 class USBDevice
25 : public GarbageCollectedFinalized<USBDevice> 25 : public GarbageCollectedFinalized<USBDevice>
26 , public ContextLifecycleObserver 26 , public ContextLifecycleObserver
27 , public ScriptWrappable { 27 , public ScriptWrappable {
28 WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(USBDevice); 28 WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(USBDevice);
29 DEFINE_WRAPPERTYPEINFO(); 29 DEFINE_WRAPPERTYPEINFO();
30 public: 30 public:
31 using WebType = OwnPtr<WebUSBDevice>; 31 using WebType = OwnPtr<WebUSBDevice>;
32 32
33 static USBDevice* create(PassOwnPtr<WebUSBDevice> device) 33 static USBDevice* create(PassOwnPtr<WebUSBDevice> device, ExecutionContext* context)
34 { 34 {
35 return new USBDevice(device); 35 return new USBDevice(device, context);
36 } 36 }
37 37
38 static USBDevice* take(ScriptPromiseResolver*, PassOwnPtr<WebUSBDevice> devi ce) 38 static USBDevice* take(ScriptPromiseResolver*, PassOwnPtr<WebUSBDevice>);
39 {
40 return create(device);
41 }
42 39
43 explicit USBDevice(PassOwnPtr<WebUSBDevice> device) 40 explicit USBDevice(PassOwnPtr<WebUSBDevice> device, ExecutionContext* contex t)
44 : ContextLifecycleObserver(nullptr) 41 : ContextLifecycleObserver(context)
45 , m_device(device) 42 , m_device(device)
43 , m_opened(false)
44 , m_deviceStateChangeInProgress(false)
46 { 45 {
47 } 46 }
48 47
49 virtual ~USBDevice() { } 48 virtual ~USBDevice() { }
50 49
51 const WebUSBDeviceInfo& info() const { return m_device->info(); } 50 const WebUSBDeviceInfo& info() const { return m_device->info(); }
51 void onDeviceOpenedOrClosed(bool);
52 52
53 // IDL exposed interface:
53 String guid() const { return info().guid; } 54 String guid() const { return info().guid; }
54 uint8_t usbVersionMajor() { return info().usbVersionMajor; } 55 uint8_t usbVersionMajor() { return info().usbVersionMajor; }
55 uint8_t usbVersionMinor() { return info().usbVersionMinor; } 56 uint8_t usbVersionMinor() { return info().usbVersionMinor; }
56 uint8_t usbVersionSubminor() { return info().usbVersionSubminor; } 57 uint8_t usbVersionSubminor() { return info().usbVersionSubminor; }
57 uint8_t deviceClass() { return info().deviceClass; } 58 uint8_t deviceClass() { return info().deviceClass; }
58 uint8_t deviceSubclass() const { return info().deviceSubclass; } 59 uint8_t deviceSubclass() const { return info().deviceSubclass; }
59 uint8_t deviceProtocol() const { return info().deviceProtocol; } 60 uint8_t deviceProtocol() const { return info().deviceProtocol; }
60 uint16_t vendorId() const { return info().vendorID; } 61 uint16_t vendorId() const { return info().vendorID; }
61 uint16_t productId() const { return info().productID; } 62 uint16_t productId() const { return info().productID; }
62 uint8_t deviceVersionMajor() const { return info().deviceVersionMajor; } 63 uint8_t deviceVersionMajor() const { return info().deviceVersionMajor; }
63 uint8_t deviceVersionMinor() const { return info().deviceVersionMinor; } 64 uint8_t deviceVersionMinor() const { return info().deviceVersionMinor; }
64 uint8_t deviceVersionSubminor() const { return info().deviceVersionSubminor; } 65 uint8_t deviceVersionSubminor() const { return info().deviceVersionSubminor; }
65 String manufacturerName() const { return info().manufacturerName; } 66 String manufacturerName() const { return info().manufacturerName; }
66 String productName() const { return info().productName; } 67 String productName() const { return info().productName; }
67 String serialNumber() const { return info().serialNumber; } 68 String serialNumber() const { return info().serialNumber; }
68 HeapVector<Member<USBConfiguration>> configurations() const; 69 HeapVector<Member<USBConfiguration>> configurations() const;
70 bool opened() const { return m_opened; }
69 71
70 ScriptPromise open(ScriptState*); 72 ScriptPromise open(ScriptState*);
71 ScriptPromise close(ScriptState*); 73 ScriptPromise close(ScriptState*);
72 ScriptPromise getConfiguration(ScriptState*); 74 ScriptPromise getConfiguration(ScriptState*);
73 ScriptPromise setConfiguration(ScriptState*, uint8_t configurationValue); 75 ScriptPromise setConfiguration(ScriptState*, uint8_t configurationValue);
74 ScriptPromise claimInterface(ScriptState*, uint8_t interfaceNumber); 76 ScriptPromise claimInterface(ScriptState*, uint8_t interfaceNumber);
75 ScriptPromise releaseInterface(ScriptState*, uint8_t interfaceNumber); 77 ScriptPromise releaseInterface(ScriptState*, uint8_t interfaceNumber);
76 ScriptPromise setInterface(ScriptState*, uint8_t interfaceNumber, uint8_t al ternateSetting); 78 ScriptPromise setInterface(ScriptState*, uint8_t interfaceNumber, uint8_t al ternateSetting);
77 ScriptPromise controlTransferIn(ScriptState*, const USBControlTransferParame ters& setup, unsigned length); 79 ScriptPromise controlTransferIn(ScriptState*, const USBControlTransferParame ters& setup, unsigned length);
78 ScriptPromise controlTransferOut(ScriptState*, const USBControlTransferParam eters& setup); 80 ScriptPromise controlTransferOut(ScriptState*, const USBControlTransferParam eters& setup);
79 ScriptPromise controlTransferOut(ScriptState*, const USBControlTransferParam eters& setup, const ArrayBufferOrArrayBufferView& data); 81 ScriptPromise controlTransferOut(ScriptState*, const USBControlTransferParam eters& setup, const ArrayBufferOrArrayBufferView& data);
80 ScriptPromise clearHalt(ScriptState*, uint8_t endpointNumber); 82 ScriptPromise clearHalt(ScriptState*, uint8_t endpointNumber);
81 ScriptPromise transferIn(ScriptState*, uint8_t endpointNumber, unsigned leng th); 83 ScriptPromise transferIn(ScriptState*, uint8_t endpointNumber, unsigned leng th);
82 ScriptPromise transferOut(ScriptState*, uint8_t endpointNumber, const ArrayB ufferOrArrayBufferView& data); 84 ScriptPromise transferOut(ScriptState*, uint8_t endpointNumber, const ArrayB ufferOrArrayBufferView& data);
83 ScriptPromise isochronousTransferIn(ScriptState*, uint8_t endpointNumber, Ve ctor<unsigned> packetLengths); 85 ScriptPromise isochronousTransferIn(ScriptState*, uint8_t endpointNumber, Ve ctor<unsigned> packetLengths);
84 ScriptPromise isochronousTransferOut(ScriptState*, uint8_t endpointNumber, c onst ArrayBufferOrArrayBufferView& data, Vector<unsigned> packetLengths); 86 ScriptPromise isochronousTransferOut(ScriptState*, uint8_t endpointNumber, c onst ArrayBufferOrArrayBufferView& data, Vector<unsigned> packetLengths);
85 ScriptPromise reset(ScriptState*); 87 ScriptPromise reset(ScriptState*);
86 88
87 void contextDestroyed() override; 89 void contextDestroyed() override;
88 90
89 DECLARE_TRACE(); 91 DECLARE_TRACE();
90 92
91 private: 93 private:
92 OwnPtr<WebUSBDevice> m_device; 94 OwnPtr<WebUSBDevice> m_device;
95 bool m_opened;
96 bool m_deviceStateChangeInProgress;
93 }; 97 };
94 98
95 } // namespace blink 99 } // namespace blink
96 100
97 #endif // USBDevice_h 101 #endif // USBDevice_h
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/modules/webusb/USB.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