| 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/barrier_closure.h" | 10 #include "base/barrier_closure.h" |
| (...skipping 623 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 634 &filters[i]); | 634 &filters[i]); |
| 635 } | 635 } |
| 636 } | 636 } |
| 637 | 637 |
| 638 prompt_ = ExtensionsAPIClient::Get()->CreateDevicePermissionsPrompt( | 638 prompt_ = ExtensionsAPIClient::Get()->CreateDevicePermissionsPrompt( |
| 639 GetAssociatedWebContents()); | 639 GetAssociatedWebContents()); |
| 640 if (!prompt_) { | 640 if (!prompt_) { |
| 641 return RespondNow(Error(kErrorNotSupported)); | 641 return RespondNow(Error(kErrorNotSupported)); |
| 642 } | 642 } |
| 643 | 643 |
| 644 AddRef(); | |
| 645 prompt_->AskForUsbDevices( | 644 prompt_->AskForUsbDevices( |
| 646 this, extension(), browser_context(), multiple, filters); | 645 extension(), browser_context(), multiple, filters, |
| 646 base::Bind(&UsbGetUserSelectedDevicesFunction::OnDevicesChosen, this)); |
| 647 return RespondLater(); | 647 return RespondLater(); |
| 648 } | 648 } |
| 649 | 649 |
| 650 void UsbGetUserSelectedDevicesFunction::OnUsbDevicesChosen( | 650 void UsbGetUserSelectedDevicesFunction::OnDevicesChosen( |
| 651 const std::vector<scoped_refptr<UsbDevice>>& devices) { | 651 const std::vector<scoped_refptr<UsbDevice>>& devices) { |
| 652 scoped_ptr<base::ListValue> result(new base::ListValue()); | 652 scoped_ptr<base::ListValue> result(new base::ListValue()); |
| 653 for (const auto& device : devices) { | 653 for (const auto& device : devices) { |
| 654 result->Append(PopulateDevice(device.get())); | 654 result->Append(PopulateDevice(device.get())); |
| 655 } | 655 } |
| 656 | 656 |
| 657 Respond(OneArgument(result.release())); | 657 Respond(OneArgument(result.release())); |
| 658 Release(); | |
| 659 } | 658 } |
| 660 | 659 |
| 661 UsbRequestAccessFunction::UsbRequestAccessFunction() { | 660 UsbRequestAccessFunction::UsbRequestAccessFunction() { |
| 662 } | 661 } |
| 663 | 662 |
| 664 UsbRequestAccessFunction::~UsbRequestAccessFunction() { | 663 UsbRequestAccessFunction::~UsbRequestAccessFunction() { |
| 665 } | 664 } |
| 666 | 665 |
| 667 ExtensionFunction::ResponseAction UsbRequestAccessFunction::Run() { | 666 ExtensionFunction::ResponseAction UsbRequestAccessFunction::Run() { |
| 668 scoped_ptr<extensions::core_api::usb::RequestAccess::Params> parameters = | 667 scoped_ptr<extensions::core_api::usb::RequestAccess::Params> parameters = |
| (...skipping 514 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1183 ReleaseDeviceHandle(parameters_->handle); | 1182 ReleaseDeviceHandle(parameters_->handle); |
| 1184 | 1183 |
| 1185 scoped_ptr<base::ListValue> error_args(new base::ListValue()); | 1184 scoped_ptr<base::ListValue> error_args(new base::ListValue()); |
| 1186 error_args->AppendBoolean(false); | 1185 error_args->AppendBoolean(false); |
| 1187 // Returning arguments with an error is wrong but we're stuck with it. | 1186 // Returning arguments with an error is wrong but we're stuck with it. |
| 1188 Respond(ErrorWithArguments(error_args.Pass(), kErrorResetDevice)); | 1187 Respond(ErrorWithArguments(error_args.Pass(), kErrorResetDevice)); |
| 1189 } | 1188 } |
| 1190 } | 1189 } |
| 1191 | 1190 |
| 1192 } // namespace extensions | 1191 } // namespace extensions |
| OLD | NEW |