| Index: chrome/common/extensions/permissions/bluetooth_device_permission.cc
|
| ===================================================================
|
| --- chrome/common/extensions/permissions/bluetooth_device_permission.cc (revision 170599)
|
| +++ chrome/common/extensions/permissions/bluetooth_device_permission.cc (working copy)
|
| @@ -1,220 +0,0 @@
|
| -// Copyright (c) 2012 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.
|
| -
|
| -#include "chrome/common/extensions/permissions/bluetooth_device_permission.h"
|
| -
|
| -#include <algorithm>
|
| -#include <string>
|
| -#include <vector>
|
| -
|
| -#include "base/logging.h"
|
| -#include "base/memory/scoped_ptr.h"
|
| -#include "base/string16.h"
|
| -#include "base/string_util.h"
|
| -#include "base/utf_string_conversions.h"
|
| -#include "base/values.h"
|
| -#include "chrome/common/extensions/extension_messages.h"
|
| -#include "chrome/common/extensions/permissions/permissions_info.h"
|
| -#include "device/bluetooth/bluetooth_adapter.h"
|
| -#include "device/bluetooth/bluetooth_adapter_factory.h"
|
| -#include "device/bluetooth/bluetooth_device.h"
|
| -#include "grit/generated_resources.h"
|
| -#include "ui/base/l10n/l10n_util.h"
|
| -
|
| -namespace {
|
| -
|
| -const char* kSeparator = "|";
|
| -
|
| -} // namespace
|
| -
|
| -namespace extensions {
|
| -
|
| -BluetoothDevicePermission::BluetoothDevicePermission(
|
| - const APIPermissionInfo* info) : APIPermission(info) {
|
| -}
|
| -
|
| -BluetoothDevicePermission::~BluetoothDevicePermission() {
|
| -}
|
| -
|
| -void BluetoothDevicePermission::AddDevicesFromString(
|
| - const std::string &devices_string) {
|
| - std::vector<std::string> devices;
|
| - Tokenize(devices_string, kSeparator, &devices);
|
| - for (std::vector<std::string>::const_iterator i = devices.begin();
|
| - i != devices.end(); ++i) {
|
| - devices_.insert(*i);
|
| - }
|
| -}
|
| -
|
| -std::string BluetoothDevicePermission::ToString() const {
|
| - std::vector<std::string> parts;
|
| - parts.push_back(name());
|
| - for (std::set<std::string>::const_iterator i = devices_.begin();
|
| - i != devices_.end(); ++i) {
|
| - parts.push_back(*i);
|
| - }
|
| - return JoinString(parts, kSeparator);
|
| -}
|
| -
|
| -bool BluetoothDevicePermission::ManifestEntryForbidden() const {
|
| - return true;
|
| -}
|
| -
|
| -bool BluetoothDevicePermission::HasMessages() const {
|
| - return !devices_.empty();
|
| -}
|
| -
|
| -PermissionMessages BluetoothDevicePermission::GetMessages() const {
|
| - DCHECK(HasMessages());
|
| - PermissionMessages result;
|
| -
|
| - scoped_refptr<device::BluetoothAdapter> bluetooth_adapter =
|
| - device::BluetoothAdapterFactory::DefaultAdapter();
|
| -
|
| - for (std::set<std::string>::const_iterator i = devices_.begin();
|
| - i != devices_.end(); ++i) {
|
| -
|
| - string16 device_identifier;
|
| - if (bluetooth_adapter) {
|
| - device::BluetoothDevice* device = bluetooth_adapter->GetDevice(*i);
|
| - if (device)
|
| - device_identifier = device->GetName();
|
| - }
|
| -
|
| - if (device_identifier.length() == 0) {
|
| - UTF8ToUTF16(i->c_str(), i->length(), &device_identifier);
|
| - }
|
| -
|
| - result.push_back(PermissionMessage(
|
| - PermissionMessage::kBluetoothDevice,
|
| - l10n_util::GetStringFUTF16(
|
| - IDS_EXTENSION_PROMPT_WARNING_BLUETOOTH_DEVICE,
|
| - device_identifier)));
|
| - }
|
| -
|
| - return result;
|
| -}
|
| -
|
| -bool BluetoothDevicePermission::Check(
|
| - const APIPermission::CheckParam* param) const {
|
| - const CheckParam* bluetooth_device_parameter =
|
| - static_cast<const CheckParam*>(param);
|
| - for (std::set<std::string>::const_iterator i = devices_.begin();
|
| - i != devices_.end(); ++i) {
|
| - if (*i == bluetooth_device_parameter->device_address)
|
| - return true;
|
| - }
|
| - return false;
|
| -}
|
| -
|
| -bool BluetoothDevicePermission::Contains(const APIPermission* rhs) const {
|
| - CHECK(rhs->info() == info());
|
| - const BluetoothDevicePermission* perm =
|
| - static_cast<const BluetoothDevicePermission*>(rhs);
|
| - return std::includes(
|
| - devices_.begin(), devices_.end(),
|
| - perm->devices_.begin(), perm->devices_.end());
|
| -}
|
| -
|
| -bool BluetoothDevicePermission::Equal(const APIPermission* rhs) const {
|
| - CHECK(rhs->info() == info());
|
| - const BluetoothDevicePermission* perm =
|
| - static_cast<const BluetoothDevicePermission*>(rhs);
|
| - return devices_ == perm->devices_;
|
| -}
|
| -
|
| -bool BluetoothDevicePermission::FromValue(const base::Value* value) {
|
| - devices_.clear();
|
| - const base::ListValue* list = NULL;
|
| -
|
| - if (!value)
|
| - return false;
|
| -
|
| - if (!value->GetAsList(&list) || list->GetSize() == 0)
|
| - return false;
|
| -
|
| - for (size_t i = 0; i < list->GetSize(); ++i) {
|
| - std::string device_address;
|
| - if (!list->GetString(i, &device_address))
|
| - return false;
|
| - devices_.insert(device_address);
|
| - }
|
| -
|
| - return true;
|
| -}
|
| -
|
| -void BluetoothDevicePermission::ToValue(base::Value** value) const {
|
| - base::ListValue* list = new ListValue();
|
| - std::set<std::string>::const_iterator i;
|
| - for (std::set<std::string>::const_iterator i = devices_.begin();
|
| - i != devices_.end(); ++i) {
|
| - list->Append(base::Value::CreateStringValue(*i));
|
| - }
|
| - *value = list;
|
| -}
|
| -
|
| -APIPermission* BluetoothDevicePermission::Clone() const {
|
| - BluetoothDevicePermission* result = new BluetoothDevicePermission(info());
|
| - result->devices_ = devices_;
|
| - return result;
|
| -}
|
| -
|
| -APIPermission* BluetoothDevicePermission::Diff(const APIPermission* rhs) const {
|
| - CHECK(rhs->info() == info());
|
| - const BluetoothDevicePermission* perm =
|
| - static_cast<const BluetoothDevicePermission*>(rhs);
|
| - scoped_ptr<BluetoothDevicePermission> result(
|
| - new BluetoothDevicePermission(info()));
|
| - std::set_difference(
|
| - devices_.begin(), devices_.end(),
|
| - perm->devices_.begin(), perm->devices_.end(),
|
| - std::inserter<std::set<std::string> >(
|
| - result->devices_, result->devices_.begin()));
|
| - return result->devices_.empty() ? NULL : result.release();
|
| -}
|
| -
|
| -APIPermission* BluetoothDevicePermission::Union(
|
| - const APIPermission* rhs) const {
|
| - CHECK(rhs->info() == info());
|
| - const BluetoothDevicePermission* perm =
|
| - static_cast<const BluetoothDevicePermission*>(rhs);
|
| - scoped_ptr<BluetoothDevicePermission> result(
|
| - new BluetoothDevicePermission(info()));
|
| - std::set_union(
|
| - devices_.begin(), devices_.end(),
|
| - perm->devices_.begin(), perm->devices_.end(),
|
| - std::inserter<std::set<std::string> >(
|
| - result->devices_, result->devices_.begin()));
|
| - return result->devices_.empty() ? NULL : result.release();
|
| -}
|
| -
|
| -APIPermission* BluetoothDevicePermission::Intersect(
|
| - const APIPermission* rhs) const {
|
| - CHECK(rhs->info() == info());
|
| - const BluetoothDevicePermission* perm =
|
| - static_cast<const BluetoothDevicePermission*>(rhs);
|
| - scoped_ptr<BluetoothDevicePermission> result(
|
| - new BluetoothDevicePermission(info()));
|
| - std::set_intersection(
|
| - devices_.begin(), devices_.end(),
|
| - perm->devices_.begin(), perm->devices_.end(),
|
| - std::inserter<std::set<std::string> >(
|
| - result->devices_, result->devices_.begin()));
|
| - return result->devices_.empty() ? NULL : result.release();
|
| -}
|
| -
|
| -void BluetoothDevicePermission::Write(IPC::Message* m) const {
|
| - IPC::WriteParam(m, devices_);
|
| -}
|
| -
|
| -bool BluetoothDevicePermission::Read(
|
| - const IPC::Message* m, PickleIterator* iter) {
|
| - return IPC::ReadParam(m, iter, &devices_);
|
| -}
|
| -
|
| -void BluetoothDevicePermission::Log(std::string* log) const {
|
| - IPC::LogParam(devices_, log);
|
| -}
|
| -
|
| -} // namespace extensions
|
|
|