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 12 namespace extensions { 13 14 BluetoothManifestHandler::BluetoothManifestHandler() {} 15 16 BluetoothManifestHandler::~BluetoothManifestHandler() {} 17 18 bool 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 31 ManifestPermission* BluetoothManifestHandler::CreatePermission() { 32 return new BluetoothManifestPermission(); 33 } 34 35 ManifestPermission* 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 43 const std::vector<std::string> BluetoothManifestHandler::Keys() const { 44 return SingleKey(manifest_keys::kBluetooth); 45 } 46 47 } // namespace extensions 48