Index: extensions/common/api/printer_provider/usb_printer_manifest_data.cc |
diff --git a/extensions/common/api/printer_provider/usb_printer_manifest_data.cc b/extensions/common/api/printer_provider/usb_printer_manifest_data.cc |
index 35f21651da86f12cb7f2ae314d90bba424c60b62..c34a349e7862e875876074ffe93fd936f8b72d34 100644 |
--- a/extensions/common/api/printer_provider/usb_printer_manifest_data.cc |
+++ b/extensions/common/api/printer_provider/usb_printer_manifest_data.cc |
@@ -4,6 +4,7 @@ |
#include "extensions/common/api/printer_provider/usb_printer_manifest_data.h" |
+#include "base/memory/ptr_util.h" |
#include "base/strings/utf_string_conversions.h" |
#include "device/usb/usb_device.h" |
#include "device/usb/usb_device_filter.h" |
@@ -37,27 +38,29 @@ std::unique_ptr<UsbPrinterManifestData> UsbPrinterManifestData::FromValue( |
return nullptr; |
} |
- std::unique_ptr<UsbPrinterManifestData> result(new UsbPrinterManifestData()); |
+ auto result = base::MakeUnique<UsbPrinterManifestData>(); |
for (const auto& input : usb_printers->filters) { |
- UsbDeviceFilter output; |
- output.SetVendorId(input.vendor_id); |
if (input.product_id && input.interface_class) { |
*error = base::ASCIIToUTF16( |
"Only one of productId or interfaceClass may be specified."); |
return nullptr; |
} |
- if (input.product_id) { |
- output.SetProductId(*input.product_id); |
- } |
+ |
+ UsbDeviceFilter output; |
+ output.vendor_id = input.vendor_id; |
+ |
+ if (input.product_id) |
+ output.product_id = *input.product_id; |
+ |
if (input.interface_class) { |
- output.SetInterfaceClass(*input.interface_class); |
+ output.interface_class = *input.interface_class; |
if (input.interface_subclass) { |
- output.SetInterfaceSubclass(*input.interface_subclass); |
- if (input.interface_protocol) { |
- output.SetInterfaceProtocol(*input.interface_protocol); |
- } |
+ output.interface_subclass = *input.interface_subclass; |
+ if (input.interface_protocol) |
+ output.interface_protocol = *input.interface_protocol; |
} |
} |
+ |
result->filters_.push_back(output); |
} |
return result; |