Home | History | Annotate | Download | only in bluetooth
      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