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

Side by Side Diff: content/renderer/usb/web_usb_device_impl.cc

Issue 1873783003: Convert //content/renderer from scoped_ptr to std::unique_ptr (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: 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 unified diff | Download patch
« no previous file with comments | « content/renderer/usb/web_usb_device_impl.h ('k') | content/renderer/web_ui_extension.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 #include "content/renderer/usb/web_usb_device_impl.h" 5 #include "content/renderer/usb/web_usb_device_impl.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/callback.h" 10 #include "base/callback.h"
(...skipping 20 matching lines...) Expand all
31 const char kReleaseInterfaceFailed[] = "Unable to release interface."; 31 const char kReleaseInterfaceFailed[] = "Unable to release interface.";
32 const char kSetConfigurationFailed[] = "Unable to set device configuration."; 32 const char kSetConfigurationFailed[] = "Unable to set device configuration.";
33 const char kSetInterfaceFailed[] = "Unable to set device interface."; 33 const char kSetInterfaceFailed[] = "Unable to set device interface.";
34 const char kTransferFailed[] = "Transfer failed."; 34 const char kTransferFailed[] = "Transfer failed.";
35 35
36 // Generic default rejection handler for any WebUSB callbacks type. Assumes 36 // Generic default rejection handler for any WebUSB callbacks type. Assumes
37 // |CallbacksType| is a blink::WebCallbacks<T, const blink::WebUSBError&> 37 // |CallbacksType| is a blink::WebCallbacks<T, const blink::WebUSBError&>
38 // for any type |T|. 38 // for any type |T|.
39 template <typename CallbacksType> 39 template <typename CallbacksType>
40 void RejectWithError(const blink::WebUSBError& error, 40 void RejectWithError(const blink::WebUSBError& error,
41 scoped_ptr<CallbacksType> callbacks) { 41 std::unique_ptr<CallbacksType> callbacks) {
42 callbacks->onError(error); 42 callbacks->onError(error);
43 } 43 }
44 44
45 template <typename CallbacksType> 45 template <typename CallbacksType>
46 void RejectWithTransferError(scoped_ptr<CallbacksType> callbacks) { 46 void RejectWithTransferError(std::unique_ptr<CallbacksType> callbacks) {
47 RejectWithError(blink::WebUSBError(blink::WebUSBError::Error::Network, 47 RejectWithError(blink::WebUSBError(blink::WebUSBError::Error::Network,
48 base::ASCIIToUTF16(kTransferFailed)), 48 base::ASCIIToUTF16(kTransferFailed)),
49 std::move(callbacks)); 49 std::move(callbacks));
50 } 50 }
51 51
52 // Create a new ScopedWebCallbacks for WebUSB device callbacks, defaulting to 52 // Create a new ScopedWebCallbacks for WebUSB device callbacks, defaulting to
53 // a "device unavailable" rejection. 53 // a "device unavailable" rejection.
54 template <typename CallbacksType> 54 template <typename CallbacksType>
55 ScopedWebCallbacks<CallbacksType> MakeScopedUSBCallbacks( 55 ScopedWebCallbacks<CallbacksType> MakeScopedUSBCallbacks(
56 CallbacksType* callbacks) { 56 CallbacksType* callbacks) {
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
117 case device::usb::TransferStatus::STALLED: 117 case device::usb::TransferStatus::STALLED:
118 web_status = blink::WebUSBTransferInfo::Status::Stall; 118 web_status = blink::WebUSBTransferInfo::Status::Stall;
119 break; 119 break;
120 case device::usb::TransferStatus::BABBLE: 120 case device::usb::TransferStatus::BABBLE:
121 web_status = blink::WebUSBTransferInfo::Status::Babble; 121 web_status = blink::WebUSBTransferInfo::Status::Babble;
122 break; 122 break;
123 default: 123 default:
124 RejectWithTransferError(std::move(scoped_callbacks)); 124 RejectWithTransferError(std::move(scoped_callbacks));
125 return; 125 return;
126 } 126 }
127 scoped_ptr<blink::WebUSBTransferInfo> info(new blink::WebUSBTransferInfo()); 127 std::unique_ptr<blink::WebUSBTransferInfo> info(
128 new blink::WebUSBTransferInfo());
128 info->status.assign( 129 info->status.assign(
129 std::vector<blink::WebUSBTransferInfo::Status>(1, web_status)); 130 std::vector<blink::WebUSBTransferInfo::Status>(1, web_status));
130 info->data.assign(data); 131 info->data.assign(data);
131 scoped_callbacks->onSuccess(std::move(info)); 132 scoped_callbacks->onSuccess(std::move(info));
132 } 133 }
133 134
134 void OnTransferOut( 135 void OnTransferOut(
135 ScopedWebCallbacks<blink::WebUSBDeviceTransferCallbacks> callbacks, 136 ScopedWebCallbacks<blink::WebUSBDeviceTransferCallbacks> callbacks,
136 size_t bytes_written, 137 size_t bytes_written,
137 device::usb::TransferStatus status) { 138 device::usb::TransferStatus status) {
138 auto scoped_callbacks = callbacks.PassCallbacks(); 139 auto scoped_callbacks = callbacks.PassCallbacks();
139 blink::WebUSBTransferInfo::Status web_status; 140 blink::WebUSBTransferInfo::Status web_status;
140 switch (status) { 141 switch (status) {
141 case device::usb::TransferStatus::COMPLETED: 142 case device::usb::TransferStatus::COMPLETED:
142 web_status = blink::WebUSBTransferInfo::Status::Ok; 143 web_status = blink::WebUSBTransferInfo::Status::Ok;
143 break; 144 break;
144 case device::usb::TransferStatus::STALLED: 145 case device::usb::TransferStatus::STALLED:
145 web_status = blink::WebUSBTransferInfo::Status::Stall; 146 web_status = blink::WebUSBTransferInfo::Status::Stall;
146 break; 147 break;
147 default: 148 default:
148 RejectWithTransferError(std::move(scoped_callbacks)); 149 RejectWithTransferError(std::move(scoped_callbacks));
149 return; 150 return;
150 } 151 }
151 // TODO(rockot): Device::ControlTransferOut should expose the number of bytes 152 // TODO(rockot): Device::ControlTransferOut should expose the number of bytes
152 // actually transferred so we can send it from here. 153 // actually transferred so we can send it from here.
153 scoped_ptr<blink::WebUSBTransferInfo> info(new blink::WebUSBTransferInfo()); 154 std::unique_ptr<blink::WebUSBTransferInfo> info(
155 new blink::WebUSBTransferInfo());
154 info->status.assign( 156 info->status.assign(
155 std::vector<blink::WebUSBTransferInfo::Status>(1, web_status)); 157 std::vector<blink::WebUSBTransferInfo::Status>(1, web_status));
156 info->bytesTransferred.assign(std::vector<uint32_t>(1, bytes_written)); 158 info->bytesTransferred.assign(std::vector<uint32_t>(1, bytes_written));
157 scoped_callbacks->onSuccess(std::move(info)); 159 scoped_callbacks->onSuccess(std::move(info));
158 } 160 }
159 161
160 void OnIsochronousTransferIn( 162 void OnIsochronousTransferIn(
161 ScopedWebCallbacks<blink::WebUSBDeviceTransferCallbacks> callbacks, 163 ScopedWebCallbacks<blink::WebUSBDeviceTransferCallbacks> callbacks,
162 mojo::Array<uint8_t> data, 164 mojo::Array<uint8_t> data,
163 mojo::Array<device::usb::IsochronousPacketPtr> packets) { 165 mojo::Array<device::usb::IsochronousPacketPtr> packets) {
164 auto scoped_callbacks = callbacks.PassCallbacks(); 166 auto scoped_callbacks = callbacks.PassCallbacks();
165 scoped_ptr<blink::WebUSBTransferInfo> info(new blink::WebUSBTransferInfo()); 167 std::unique_ptr<blink::WebUSBTransferInfo> info(
168 new blink::WebUSBTransferInfo());
166 info->data.assign(data); 169 info->data.assign(data);
167 info->status = 170 info->status =
168 blink::WebVector<blink::WebUSBTransferInfo::Status>(packets.size()); 171 blink::WebVector<blink::WebUSBTransferInfo::Status>(packets.size());
169 info->packetLength = blink::WebVector<uint32_t>(packets.size()); 172 info->packetLength = blink::WebVector<uint32_t>(packets.size());
170 info->bytesTransferred = blink::WebVector<uint32_t>(packets.size()); 173 info->bytesTransferred = blink::WebVector<uint32_t>(packets.size());
171 for (size_t i = 0; i < packets.size(); ++i) { 174 for (size_t i = 0; i < packets.size(); ++i) {
172 switch (packets[i]->status) { 175 switch (packets[i]->status) {
173 case device::usb::TransferStatus::COMPLETED: 176 case device::usb::TransferStatus::COMPLETED:
174 info->status[i] = blink::WebUSBTransferInfo::Status::Ok; 177 info->status[i] = blink::WebUSBTransferInfo::Status::Ok;
175 break; 178 break;
(...skipping 10 matching lines...) Expand all
186 info->packetLength[i] = packets[i]->length; 189 info->packetLength[i] = packets[i]->length;
187 info->bytesTransferred[i] = packets[i]->transferred_length; 190 info->bytesTransferred[i] = packets[i]->transferred_length;
188 } 191 }
189 scoped_callbacks->onSuccess(std::move(info)); 192 scoped_callbacks->onSuccess(std::move(info));
190 } 193 }
191 194
192 void OnIsochronousTransferOut( 195 void OnIsochronousTransferOut(
193 ScopedWebCallbacks<blink::WebUSBDeviceTransferCallbacks> callbacks, 196 ScopedWebCallbacks<blink::WebUSBDeviceTransferCallbacks> callbacks,
194 mojo::Array<device::usb::IsochronousPacketPtr> packets) { 197 mojo::Array<device::usb::IsochronousPacketPtr> packets) {
195 auto scoped_callbacks = callbacks.PassCallbacks(); 198 auto scoped_callbacks = callbacks.PassCallbacks();
196 scoped_ptr<blink::WebUSBTransferInfo> info(new blink::WebUSBTransferInfo()); 199 std::unique_ptr<blink::WebUSBTransferInfo> info(
200 new blink::WebUSBTransferInfo());
197 info->status = 201 info->status =
198 blink::WebVector<blink::WebUSBTransferInfo::Status>(packets.size()); 202 blink::WebVector<blink::WebUSBTransferInfo::Status>(packets.size());
199 info->bytesTransferred = blink::WebVector<uint32_t>(packets.size()); 203 info->bytesTransferred = blink::WebVector<uint32_t>(packets.size());
200 for (size_t i = 0; i < packets.size(); ++i) { 204 for (size_t i = 0; i < packets.size(); ++i) {
201 switch (packets[i]->status) { 205 switch (packets[i]->status) {
202 case device::usb::TransferStatus::COMPLETED: 206 case device::usb::TransferStatus::COMPLETED:
203 info->status[i] = blink::WebUSBTransferInfo::Status::Ok; 207 info->status[i] = blink::WebUSBTransferInfo::Status::Ok;
204 break; 208 break;
205 case device::usb::TransferStatus::STALLED: 209 case device::usb::TransferStatus::STALLED:
206 info->status[i] = blink::WebUSBTransferInfo::Status::Stall; 210 info->status[i] = blink::WebUSBTransferInfo::Status::Stall;
(...skipping 201 matching lines...) Expand 10 before | Expand all | Expand 10 after
408 412
409 void WebUSBDeviceImpl::reset(blink::WebUSBDeviceResetCallbacks* callbacks) { 413 void WebUSBDeviceImpl::reset(blink::WebUSBDeviceResetCallbacks* callbacks) {
410 auto scoped_callbacks = MakeScopedUSBCallbacks(callbacks); 414 auto scoped_callbacks = MakeScopedUSBCallbacks(callbacks);
411 if (device_) 415 if (device_)
412 device_->Reset(base::Bind(&HandlePassFailDeviceOperation, 416 device_->Reset(base::Bind(&HandlePassFailDeviceOperation,
413 base::Passed(&scoped_callbacks), 417 base::Passed(&scoped_callbacks),
414 kDeviceResetFailed)); 418 kDeviceResetFailed));
415 } 419 }
416 420
417 } // namespace content 421 } // namespace content
OLDNEW
« no previous file with comments | « content/renderer/usb/web_usb_device_impl.h ('k') | content/renderer/web_ui_extension.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698