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

Side by Side Diff: extensions/browser/api/usb/usb_api.cc

Issue 598173003: Run clang-modernize -use-nullptr over src/extensions/. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 2 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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 "extensions/browser/api/usb/usb_api.h" 5 #include "extensions/browser/api/usb/usb_api.h"
6 6
7 #include <string> 7 #include <string>
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/memory/scoped_ptr.h" 10 #include "base/memory/scoped_ptr.h"
(...skipping 170 matching lines...) Expand 10 before | Expand all | Expand 10 after
181 } 181 }
182 return false; 182 return false;
183 } 183 }
184 184
185 template <class T> 185 template <class T>
186 scoped_refptr<net::IOBuffer> CreateBufferForTransfer( 186 scoped_refptr<net::IOBuffer> CreateBufferForTransfer(
187 const T& input, 187 const T& input,
188 UsbEndpointDirection direction, 188 UsbEndpointDirection direction,
189 size_t size) { 189 size_t size) {
190 if (size >= kMaxTransferLength) 190 if (size >= kMaxTransferLength)
191 return NULL; 191 return nullptr;
192 192
193 // Allocate a |size|-bytes buffer, or a one-byte buffer if |size| is 0. This 193 // Allocate a |size|-bytes buffer, or a one-byte buffer if |size| is 0. This
194 // is due to an impedance mismatch between IOBuffer and URBs. An IOBuffer 194 // is due to an impedance mismatch between IOBuffer and URBs. An IOBuffer
195 // cannot represent a zero-length buffer, while an URB can. 195 // cannot represent a zero-length buffer, while an URB can.
196 scoped_refptr<net::IOBuffer> buffer = 196 scoped_refptr<net::IOBuffer> buffer =
197 new net::IOBuffer(std::max(static_cast<size_t>(1), size)); 197 new net::IOBuffer(std::max(static_cast<size_t>(1), size));
198 198
199 if (direction == device::USB_DIRECTION_INBOUND) { 199 if (direction == device::USB_DIRECTION_INBOUND) {
200 return buffer; 200 return buffer;
201 } else if (direction == device::USB_DIRECTION_OUTBOUND) { 201 } else if (direction == device::USB_DIRECTION_OUTBOUND) {
202 if (input.data.get() && size <= input.data->size()) { 202 if (input.data.get() && size <= input.data->size()) {
203 memcpy(buffer->data(), input.data->data(), size); 203 memcpy(buffer->data(), input.data->data(), size);
204 return buffer; 204 return buffer;
205 } 205 }
206 } 206 }
207 NOTREACHED(); 207 NOTREACHED();
208 return NULL; 208 return nullptr;
209 } 209 }
210 210
211 const char* ConvertTransferStatusToApi(const UsbTransferStatus status) { 211 const char* ConvertTransferStatusToApi(const UsbTransferStatus status) {
212 switch (status) { 212 switch (status) {
213 case device::USB_TRANSFER_COMPLETED: 213 case device::USB_TRANSFER_COMPLETED:
214 return ""; 214 return "";
215 case device::USB_TRANSFER_ERROR: 215 case device::USB_TRANSFER_ERROR:
216 return kErrorGeneric; 216 return kErrorGeneric;
217 case device::USB_TRANSFER_TIMEOUT: 217 case device::USB_TRANSFER_TIMEOUT:
218 return kErrorTimeout; 218 return kErrorTimeout;
(...skipping 197 matching lines...) Expand 10 before | Expand all | Expand 10 after
416 output->extra_data = 416 output->extra_data =
417 std::string(reinterpret_cast<const char*>(&input.extra_data[0]), 417 std::string(reinterpret_cast<const char*>(&input.extra_data[0]),
418 input.extra_data.size()); 418 input.extra_data.size());
419 } 419 }
420 } 420 }
421 421
422 } // namespace 422 } // namespace
423 423
424 namespace extensions { 424 namespace extensions {
425 425
426 UsbAsyncApiFunction::UsbAsyncApiFunction() : manager_(NULL) { 426 UsbAsyncApiFunction::UsbAsyncApiFunction() : manager_(nullptr) {
427 } 427 }
428 428
429 UsbAsyncApiFunction::~UsbAsyncApiFunction() { 429 UsbAsyncApiFunction::~UsbAsyncApiFunction() {
430 } 430 }
431 431
432 bool UsbAsyncApiFunction::PrePrepare() { 432 bool UsbAsyncApiFunction::PrePrepare() {
433 manager_ = ApiResourceManager<UsbDeviceResource>::Get(browser_context()); 433 manager_ = ApiResourceManager<UsbDeviceResource>::Get(browser_context());
434 set_work_thread_id(BrowserThread::FILE); 434 set_work_thread_id(BrowserThread::FILE);
435 return manager_ != NULL; 435 return manager_ != nullptr;
436 } 436 }
437 437
438 bool UsbAsyncApiFunction::Respond() { 438 bool UsbAsyncApiFunction::Respond() {
439 return error_.empty(); 439 return error_.empty();
440 } 440 }
441 441
442 // static 442 // static
443 void UsbAsyncApiFunction::CreateDeviceFilter(const usb::DeviceFilter& input, 443 void UsbAsyncApiFunction::CreateDeviceFilter(const usb::DeviceFilter& input,
444 UsbDeviceFilter* output) { 444 UsbDeviceFilter* output) {
445 if (input.vendor_id) { 445 if (input.vendor_id) {
(...skipping 20 matching lines...) Expand all
466 UsbDevicePermissionData::UNSPECIFIED_INTERFACE); 466 UsbDevicePermissionData::UNSPECIFIED_INTERFACE);
467 return extension()->permissions_data()->CheckAPIPermissionWithParam( 467 return extension()->permissions_data()->CheckAPIPermissionWithParam(
468 APIPermission::kUsbDevice, &param); 468 APIPermission::kUsbDevice, &param);
469 } 469 }
470 470
471 scoped_refptr<UsbDevice> UsbAsyncApiFunction::GetDeviceOrCompleteWithError( 471 scoped_refptr<UsbDevice> UsbAsyncApiFunction::GetDeviceOrCompleteWithError(
472 const Device& input_device) { 472 const Device& input_device) {
473 UsbService* service = device::DeviceClient::Get()->GetUsbService(); 473 UsbService* service = device::DeviceClient::Get()->GetUsbService();
474 if (!service) { 474 if (!service) {
475 CompleteWithError(kErrorInitService); 475 CompleteWithError(kErrorInitService);
476 return NULL; 476 return nullptr;
477 } 477 }
478 478
479 scoped_refptr<UsbDevice> device = service->GetDeviceById(input_device.device); 479 scoped_refptr<UsbDevice> device = service->GetDeviceById(input_device.device);
480 if (!device.get()) { 480 if (!device.get()) {
481 CompleteWithError(kErrorNoDevice); 481 CompleteWithError(kErrorNoDevice);
482 return NULL; 482 return nullptr;
483 } 483 }
484 484
485 if (!HasDevicePermission(device)) { 485 if (!HasDevicePermission(device)) {
486 // Must act as if there is no such a device. 486 // Must act as if there is no such a device.
487 // Otherwise can be used to finger print unauthorized devices. 487 // Otherwise can be used to finger print unauthorized devices.
488 CompleteWithError(kErrorNoDevice); 488 CompleteWithError(kErrorNoDevice);
489 return NULL; 489 return nullptr;
490 } 490 }
491 491
492 return device; 492 return device;
493 } 493 }
494 494
495 scoped_refptr<UsbDeviceHandle> 495 scoped_refptr<UsbDeviceHandle>
496 UsbAsyncApiFunction::GetDeviceHandleOrCompleteWithError( 496 UsbAsyncApiFunction::GetDeviceHandleOrCompleteWithError(
497 const ConnectionHandle& input_device_handle) { 497 const ConnectionHandle& input_device_handle) {
498 UsbDeviceResource* resource = 498 UsbDeviceResource* resource =
499 manager_->Get(extension_->id(), input_device_handle.handle); 499 manager_->Get(extension_->id(), input_device_handle.handle);
500 if (!resource) { 500 if (!resource) {
501 CompleteWithError(kErrorNoDevice); 501 CompleteWithError(kErrorNoDevice);
502 return NULL; 502 return nullptr;
503 } 503 }
504 504
505 if (!resource->device().get() || !resource->device()->GetDevice().get()) { 505 if (!resource->device().get() || !resource->device()->GetDevice().get()) {
506 CompleteWithError(kErrorDisconnect); 506 CompleteWithError(kErrorDisconnect);
507 manager_->Remove(extension_->id(), input_device_handle.handle); 507 manager_->Remove(extension_->id(), input_device_handle.handle);
508 return NULL; 508 return nullptr;
509 } 509 }
510 510
511 if (resource->device()->GetDevice()->vendor_id() != 511 if (resource->device()->GetDevice()->vendor_id() !=
512 input_device_handle.vendor_id || 512 input_device_handle.vendor_id ||
513 resource->device()->GetDevice()->product_id() != 513 resource->device()->GetDevice()->product_id() !=
514 input_device_handle.product_id) { 514 input_device_handle.product_id) {
515 CompleteWithError(kErrorNoDevice); 515 CompleteWithError(kErrorNoDevice);
516 return NULL; 516 return nullptr;
517 } 517 }
518 518
519 return resource->device(); 519 return resource->device();
520 } 520 }
521 521
522 void UsbAsyncApiFunction::RemoveUsbDeviceResource(int api_resource_id) { 522 void UsbAsyncApiFunction::RemoveUsbDeviceResource(int api_resource_id) {
523 manager_->Remove(extension_->id(), api_resource_id); 523 manager_->Remove(extension_->id(), api_resource_id);
524 } 524 }
525 525
526 void UsbAsyncApiFunction::CompleteWithError(const std::string& error) { 526 void UsbAsyncApiFunction::CompleteWithError(const std::string& error) {
(...skipping 643 matching lines...) Expand 10 before | Expand all | Expand 10 after
1170 SetResult(new base::FundamentalValue(false)); 1170 SetResult(new base::FundamentalValue(false));
1171 CompleteWithError(kErrorResetDevice); 1171 CompleteWithError(kErrorResetDevice);
1172 return; 1172 return;
1173 } 1173 }
1174 1174
1175 SetResult(new base::FundamentalValue(true)); 1175 SetResult(new base::FundamentalValue(true));
1176 AsyncWorkCompleted(); 1176 AsyncWorkCompleted();
1177 } 1177 }
1178 1178
1179 } // namespace extensions 1179 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698