OLD | NEW |
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 307 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
318 bool success) { | 318 bool success) { |
319 if (success) { | 319 if (success) { |
320 ++i; | 320 ++i; |
321 } else { | 321 } else { |
322 i = devices->erase(i); | 322 i = devices->erase(i); |
323 } | 323 } |
324 if (i == devices->end()) { | 324 if (i == devices->end()) { |
325 callback.Run(devices.Pass()); | 325 callback.Run(devices.Pass()); |
326 return; | 326 return; |
327 } | 327 } |
328 (*i)->RequestUsbAcess(interface_id, | 328 (*i)->RequestUsbAccess(interface_id, |
329 base::Bind(RequestUsbDevicesAccessHelper, | 329 base::Bind(RequestUsbDevicesAccessHelper, |
330 base::Passed(devices.Pass()), | 330 base::Passed(devices.Pass()), |
331 i, | 331 i, |
332 interface_id, | 332 interface_id, |
333 callback)); | 333 callback)); |
334 } | 334 } |
335 | 335 |
336 void RequestUsbDevicesAccess( | 336 void RequestUsbDevicesAccess( |
337 ScopedDeviceVector devices, | 337 ScopedDeviceVector devices, |
338 int interface_id, | 338 int interface_id, |
339 const base::Callback<void(ScopedDeviceVector result)>& callback) { | 339 const base::Callback<void(ScopedDeviceVector result)>& callback) { |
340 if (devices->empty()) { | 340 if (devices->empty()) { |
341 callback.Run(devices.Pass()); | 341 callback.Run(devices.Pass()); |
342 return; | 342 return; |
343 } | 343 } |
344 std::vector<scoped_refptr<UsbDevice> >::iterator i = devices->begin(); | 344 std::vector<scoped_refptr<UsbDevice> >::iterator i = devices->begin(); |
345 (*i)->RequestUsbAcess(interface_id, | 345 (*i)->RequestUsbAccess(interface_id, |
346 base::Bind(RequestUsbDevicesAccessHelper, | 346 base::Bind(RequestUsbDevicesAccessHelper, |
347 base::Passed(devices.Pass()), | 347 base::Passed(devices.Pass()), |
348 i, | 348 i, |
349 interface_id, | 349 interface_id, |
350 callback)); | 350 callback)); |
351 } | 351 } |
352 #endif // OS_CHROMEOS | 352 #endif // OS_CHROMEOS |
353 | 353 |
354 base::DictionaryValue* CreateTransferInfo(UsbTransferStatus status, | 354 base::DictionaryValue* CreateTransferInfo(UsbTransferStatus status, |
355 scoped_refptr<net::IOBuffer> data, | 355 scoped_refptr<net::IOBuffer> data, |
356 size_t length) { | 356 size_t length) { |
357 base::DictionaryValue* result = new base::DictionaryValue(); | 357 base::DictionaryValue* result = new base::DictionaryValue(); |
358 result->SetInteger(kResultCodeKey, status); | 358 result->SetInteger(kResultCodeKey, status); |
359 result->Set(kDataKey, | 359 result->Set(kDataKey, |
360 base::BinaryValue::CreateWithCopiedBuffer(data->data(), length)); | 360 base::BinaryValue::CreateWithCopiedBuffer(data->data(), length)); |
(...skipping 312 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
673 return true; | 673 return true; |
674 } | 674 } |
675 | 675 |
676 void UsbRequestAccessFunction::AsyncWorkStart() { | 676 void UsbRequestAccessFunction::AsyncWorkStart() { |
677 #if defined(OS_CHROMEOS) | 677 #if defined(OS_CHROMEOS) |
678 scoped_refptr<UsbDevice> device = | 678 scoped_refptr<UsbDevice> device = |
679 GetDeviceOrOrCompleteWithError(parameters_->device); | 679 GetDeviceOrOrCompleteWithError(parameters_->device); |
680 if (!device) | 680 if (!device) |
681 return; | 681 return; |
682 | 682 |
683 device->RequestUsbAcess( | 683 device->RequestUsbAccess( |
684 parameters_->interface_id, | 684 parameters_->interface_id, |
685 base::Bind(&UsbRequestAccessFunction::OnCompleted, this)); | 685 base::Bind(&UsbRequestAccessFunction::OnCompleted, this)); |
686 #else | 686 #else |
687 SetResult(new base::FundamentalValue(false)); | 687 SetResult(new base::FundamentalValue(false)); |
688 CompleteWithError(kErrorNotSupported); | 688 CompleteWithError(kErrorNotSupported); |
689 #endif // OS_CHROMEOS | 689 #endif // OS_CHROMEOS |
690 } | 690 } |
691 | 691 |
692 void UsbRequestAccessFunction::OnCompleted(bool success) { | 692 void UsbRequestAccessFunction::OnCompleted(bool success) { |
693 SetResult(new base::FundamentalValue(success)); | 693 SetResult(new base::FundamentalValue(success)); |
(...skipping 505 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1199 SetResult(new base::FundamentalValue(false)); | 1199 SetResult(new base::FundamentalValue(false)); |
1200 CompleteWithError(kErrorResetDevice); | 1200 CompleteWithError(kErrorResetDevice); |
1201 return; | 1201 return; |
1202 } | 1202 } |
1203 | 1203 |
1204 SetResult(new base::FundamentalValue(true)); | 1204 SetResult(new base::FundamentalValue(true)); |
1205 AsyncWorkCompleted(); | 1205 AsyncWorkCompleted(); |
1206 } | 1206 } |
1207 | 1207 |
1208 } // namespace extensions | 1208 } // namespace extensions |
OLD | NEW |