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

Side by Side Diff: extensions/common/api/printer_provider/usb_printer_manifest_data.cc

Issue 1163743002: Revert of Include USB printers in printer list as "provisional" devices. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 6 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 | « extensions/common/api/printer_provider/usb_printer_manifest_data.h ('k') | no next file » | 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 "extensions/common/api/printer_provider/usb_printer_manifest_data.h" 5 #include "extensions/common/api/printer_provider/usb_printer_manifest_data.h"
6 6
7 #include "base/strings/utf_string_conversions.h" 7 #include "base/strings/utf_string_conversions.h"
8 #include "device/usb/usb_device.h"
9 #include "device/usb/usb_device_filter.h" 8 #include "device/usb/usb_device_filter.h"
10 #include "extensions/common/api/extensions_manifest_types.h" 9 #include "extensions/common/api/extensions_manifest_types.h"
11 #include "extensions/common/manifest_constants.h" 10 #include "extensions/common/manifest_constants.h"
12 11
13 using device::UsbDeviceFilter;
14
15 namespace extensions { 12 namespace extensions {
16 13
17 UsbPrinterManifestData::UsbPrinterManifestData() { 14 UsbPrinterManifestData::UsbPrinterManifestData() {
18 } 15 }
19 16
20 UsbPrinterManifestData::~UsbPrinterManifestData() { 17 UsbPrinterManifestData::~UsbPrinterManifestData() {
21 } 18 }
22 19
23 // static 20 // static
24 const UsbPrinterManifestData* UsbPrinterManifestData::Get( 21 const UsbPrinterManifestData* UsbPrinterManifestData::Get(
25 const Extension* extension) { 22 const Extension* extension) {
26 return static_cast<UsbPrinterManifestData*>( 23 return static_cast<UsbPrinterManifestData*>(
27 extension->GetManifestData(manifest_keys::kUsbPrinters)); 24 extension->GetManifestData(manifest_keys::kUsbPrinters));
28 } 25 }
29 26
30 // static 27 // static
31 scoped_ptr<UsbPrinterManifestData> UsbPrinterManifestData::FromValue( 28 scoped_ptr<UsbPrinterManifestData> UsbPrinterManifestData::FromValue(
32 const base::Value& value, 29 const base::Value& value,
33 base::string16* error) { 30 base::string16* error) {
34 scoped_ptr<core_api::extensions_manifest_types::UsbPrinters> usb_printers = 31 scoped_ptr<core_api::extensions_manifest_types::UsbPrinters> usb_printers =
35 core_api::extensions_manifest_types::UsbPrinters::FromValue(value, error); 32 core_api::extensions_manifest_types::UsbPrinters::FromValue(value, error);
36 if (!usb_printers) { 33 if (!usb_printers) {
37 return nullptr; 34 return nullptr;
38 } 35 }
39 36
40 scoped_ptr<UsbPrinterManifestData> result(new UsbPrinterManifestData()); 37 scoped_ptr<UsbPrinterManifestData> result(new UsbPrinterManifestData());
41 for (const auto& input : usb_printers->filters) { 38 for (const auto& input : usb_printers->filters) {
42 DCHECK(input.get()); 39 DCHECK(input.get());
43 UsbDeviceFilter output; 40 device::UsbDeviceFilter output;
44 output.SetVendorId(input->vendor_id); 41 output.SetVendorId(input->vendor_id);
45 if (input->product_id && input->interface_class) { 42 if (input->product_id && input->interface_class) {
46 *error = base::ASCIIToUTF16( 43 *error = base::ASCIIToUTF16(
47 "Only one of productId or interfaceClass may be specified."); 44 "Only one of productId or interfaceClass may be specified.");
48 return nullptr; 45 return nullptr;
49 } 46 }
50 if (input->product_id) { 47 if (input->product_id) {
51 output.SetProductId(*input->product_id); 48 output.SetProductId(*input->product_id);
52 } 49 }
53 if (input->interface_class) { 50 if (input->interface_class) {
54 output.SetInterfaceClass(*input->interface_class); 51 output.SetInterfaceClass(*input->interface_class);
55 if (input->interface_subclass) { 52 if (input->interface_subclass) {
56 output.SetInterfaceSubclass(*input->interface_subclass); 53 output.SetInterfaceSubclass(*input->interface_subclass);
57 if (input->interface_protocol) { 54 if (input->interface_protocol) {
58 output.SetInterfaceProtocol(*input->interface_protocol); 55 output.SetInterfaceProtocol(*input->interface_protocol);
59 } 56 }
60 } 57 }
61 } 58 }
62 result->filters_.push_back(output); 59 result->filters_.push_back(output);
63 } 60 }
64 return result.Pass(); 61 return result.Pass();
65 } 62 }
66 63
67 bool UsbPrinterManifestData::SupportsDevice(
68 const scoped_refptr<device::UsbDevice>& device) const {
69 return UsbDeviceFilter::MatchesAny(device, filters_);
70 }
71
72 } // namespace extensions 64 } // namespace extensions
OLDNEW
« no previous file with comments | « extensions/common/api/printer_provider/usb_printer_manifest_data.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698