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 3// found in the LICENSE file. 4 5#include "extensions/common/api/bluetooth/bluetooth_manifest_handler.h" 6 7#include "extensions/common/api/bluetooth/bluetooth_manifest_data.h" 8#include "extensions/common/api/bluetooth/bluetooth_manifest_permission.h" 9#include "extensions/common/extension.h" 10#include "extensions/common/manifest_constants.h" 11 12namespace extensions { 13 14BluetoothManifestHandler::BluetoothManifestHandler() {} 15 16BluetoothManifestHandler::~BluetoothManifestHandler() {} 17 18bool BluetoothManifestHandler::Parse(Extension* extension, 19 base::string16* error) { 20 const base::Value* bluetooth = NULL; 21 CHECK(extension->manifest()->Get(manifest_keys::kBluetooth, &bluetooth)); 22 scoped_ptr<BluetoothManifestData> data = 23 BluetoothManifestData::FromValue(*bluetooth, error); 24 if (!data) 25 return false; 26 27 extension->SetManifestData(manifest_keys::kBluetooth, data.release()); 28 return true; 29} 30 31ManifestPermission* BluetoothManifestHandler::CreatePermission() { 32 return new BluetoothManifestPermission(); 33} 34 35ManifestPermission* BluetoothManifestHandler::CreateInitialRequiredPermission( 36 const Extension* extension) { 37 BluetoothManifestData* data = BluetoothManifestData::Get(extension); 38 if (data) 39 return data->permission()->Clone(); 40 return NULL; 41} 42 43const std::vector<std::string> BluetoothManifestHandler::Keys() const { 44 return SingleKey(manifest_keys::kBluetooth); 45} 46 47} // namespace extensions 48