Home | History | Annotate | Download | only in permissions
      1 // Copyright 2013 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 "chrome/common/extensions/permissions/bluetooth_permission.h"
      6 
      7 #include <string>
      8 
      9 #include "base/logging.h"
     10 #include "base/strings/string16.h"
     11 #include "base/strings/string_util.h"
     12 #include "base/strings/utf_string_conversions.h"
     13 #include "chrome/common/extensions/permissions/bluetooth_permission_data.h"
     14 #include "chrome/common/extensions/permissions/permissions_info.h"
     15 #include "grit/generated_resources.h"
     16 #include "ui/base/l10n/l10n_util.h"
     17 
     18 namespace extensions {
     19 
     20 BluetoothPermission::BluetoothPermission(const APIPermissionInfo* info)
     21   : SetDisjunctionPermission<BluetoothPermissionData,
     22                              BluetoothPermission>(info) {
     23 }
     24 
     25 BluetoothPermission::~BluetoothPermission() {
     26 }
     27 
     28 bool BluetoothPermission::FromValue(const base::Value* value) {
     29   // Value may be omitted to gain access to non-profile functions.
     30   if (!value)
     31     return true;
     32 
     33   // Value may be an empty list for the same reason.
     34   const base::ListValue* list = NULL;
     35   if (value->GetAsList(&list) && list->GetSize() == 0)
     36     return true;
     37 
     38   if (!SetDisjunctionPermission<BluetoothPermissionData,
     39                                 BluetoothPermission>::FromValue(value)) {
     40     return false;
     41   }
     42 
     43   return true;
     44 }
     45 
     46 PermissionMessages BluetoothPermission::GetMessages() const {
     47   DCHECK(HasMessages());
     48   PermissionMessages result;
     49 
     50   result.push_back(PermissionMessage(
     51         PermissionMessage::kBluetooth,
     52         l10n_util::GetStringUTF16(
     53             IDS_EXTENSION_PROMPT_WARNING_BLUETOOTH)));
     54 
     55   if (!data_set_.empty()) {
     56     result.push_back(PermissionMessage(
     57           PermissionMessage::kBluetoothDevices,
     58           l10n_util::GetStringUTF16(
     59               IDS_EXTENSION_PROMPT_WARNING_BLUETOOTH_DEVICES)));
     60   }
     61 
     62   return result;
     63 }
     64 
     65 }  // namespace extensions
     66