[go: nahoru, domu]

blob: ac6b13e1129eb4948c4e1b319bc5cabf4688a948 [file] [log] [blame]
// Copyright 2015 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef EXTENSIONS_COMMON_API_PRINTER_PROVIDER_USB_PRINTER_MANIFEST_DATA_H_
#define EXTENSIONS_COMMON_API_PRINTER_PROVIDER_USB_PRINTER_MANIFEST_DATA_H_
#include <memory>
#include <vector>
#include "extensions/common/extension.h"
#include "services/device/public/mojom/usb_device.mojom.h"
#include "services/device/public/mojom/usb_enumeration_options.mojom.h"
namespace extensions {
// The parsed form of the "usb_printers" manifest entry.
class UsbPrinterManifestData : public Extension::ManifestData {
public:
UsbPrinterManifestData();
~UsbPrinterManifestData() override;
// Gets the UsbPrinterManifestData for |extension|, or NULL if none was
// specified.
static const UsbPrinterManifestData* Get(const Extension* extension);
// Parses the data stored in |value|. Sets |error| and returns an empty
// scoped_ptr on failure.
static std::unique_ptr<UsbPrinterManifestData> FromValue(
const base::Value& value,
std::u16string* error);
bool SupportsDevice(const device::mojom::UsbDeviceInfo& device) const;
private:
FRIEND_TEST_ALL_PREFIXES(UsbPrinterManifestTest, Filters);
std::vector<device::mojom::UsbDeviceFilterPtr> filters_;
};
} // namespace extensions
#endif // EXTENSIONS_COMMON_API_PRINTER_PROVIDER_USB_PRINTER_MANIFEST_DATA_H_