| Index: chrome/common/extensions/permissions/socket_permission_data.cc
|
| diff --git a/chrome/common/extensions/permissions/socket_permission_data.cc b/chrome/common/extensions/permissions/socket_permission_data.cc
|
| deleted file mode 100644
|
| index b110cb50e6b1268b3d2c410c1e86c0409af1cf80..0000000000000000000000000000000000000000
|
| --- a/chrome/common/extensions/permissions/socket_permission_data.cc
|
| +++ /dev/null
|
| @@ -1,159 +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/socket_permission_data.h"
|
| -
|
| -#include <cstdlib>
|
| -#include <sstream>
|
| -#include <vector>
|
| -
|
| -#include "base/logging.h"
|
| -#include "base/memory/scoped_ptr.h"
|
| -#include "base/strings/string_number_conversions.h"
|
| -#include "base/strings/string_split.h"
|
| -#include "base/strings/string_util.h"
|
| -#include "chrome/common/extensions/permissions/socket_permission.h"
|
| -#include "extensions/common/permissions/api_permission.h"
|
| -#include "url/url_canon.h"
|
| -
|
| -namespace {
|
| -
|
| -using content::SocketPermissionRequest;
|
| -using extensions::SocketPermissionData;
|
| -
|
| -const char kColon = ':';
|
| -const char kInvalid[] = "invalid";
|
| -const char kTCPConnect[] = "tcp-connect";
|
| -const char kTCPListen[] = "tcp-listen";
|
| -const char kUDPBind[] = "udp-bind";
|
| -const char kUDPSendTo[] = "udp-send-to";
|
| -const char kUDPMulticastMembership[] = "udp-multicast-membership";
|
| -const char kResolveHost[] = "resolve-host";
|
| -const char kResolveProxy[] = "resolve-proxy";
|
| -const char kNetworkState[] = "network-state";
|
| -
|
| -SocketPermissionRequest::OperationType StringToType(const std::string& s) {
|
| - if (s == kTCPConnect)
|
| - return SocketPermissionRequest::TCP_CONNECT;
|
| - if (s == kTCPListen)
|
| - return SocketPermissionRequest::TCP_LISTEN;
|
| - if (s == kUDPBind)
|
| - return SocketPermissionRequest::UDP_BIND;
|
| - if (s == kUDPSendTo)
|
| - return SocketPermissionRequest::UDP_SEND_TO;
|
| - if (s == kUDPMulticastMembership)
|
| - return SocketPermissionRequest::UDP_MULTICAST_MEMBERSHIP;
|
| - if (s == kResolveHost)
|
| - return SocketPermissionRequest::RESOLVE_HOST;
|
| - if (s == kResolveProxy)
|
| - return SocketPermissionRequest::RESOLVE_PROXY;
|
| - if (s == kNetworkState)
|
| - return SocketPermissionRequest::NETWORK_STATE;
|
| - return SocketPermissionRequest::NONE;
|
| -}
|
| -
|
| -const char* TypeToString(SocketPermissionRequest::OperationType type) {
|
| - switch (type) {
|
| - case SocketPermissionRequest::TCP_CONNECT:
|
| - return kTCPConnect;
|
| - case SocketPermissionRequest::TCP_LISTEN:
|
| - return kTCPListen;
|
| - case SocketPermissionRequest::UDP_BIND:
|
| - return kUDPBind;
|
| - case SocketPermissionRequest::UDP_SEND_TO:
|
| - return kUDPSendTo;
|
| - case SocketPermissionRequest::UDP_MULTICAST_MEMBERSHIP:
|
| - return kUDPMulticastMembership;
|
| - case SocketPermissionRequest::RESOLVE_HOST:
|
| - return kResolveHost;
|
| - case SocketPermissionRequest::RESOLVE_PROXY:
|
| - return kResolveProxy;
|
| - case SocketPermissionRequest::NETWORK_STATE:
|
| - return kNetworkState;
|
| - default:
|
| - return kInvalid;
|
| - }
|
| -}
|
| -
|
| -} // namespace
|
| -
|
| -namespace extensions {
|
| -
|
| -SocketPermissionData::SocketPermissionData() { }
|
| -
|
| -SocketPermissionData::~SocketPermissionData() { }
|
| -
|
| -bool SocketPermissionData::operator<(const SocketPermissionData& rhs) const {
|
| - return entry_ < rhs.entry_;
|
| -}
|
| -
|
| -bool SocketPermissionData::operator==(const SocketPermissionData& rhs) const {
|
| - return entry_ == rhs.entry_;
|
| -}
|
| -
|
| -bool SocketPermissionData::Check(
|
| - const APIPermission::CheckParam* param) const {
|
| - if (!param)
|
| - return false;
|
| - const SocketPermission::CheckParam& specific_param =
|
| - *static_cast<const SocketPermission::CheckParam*>(param);
|
| - const SocketPermissionRequest &request = specific_param.request;
|
| -
|
| - return entry_.Check(request);
|
| -}
|
| -
|
| -scoped_ptr<base::Value> SocketPermissionData::ToValue() const {
|
| - return scoped_ptr<base::Value>(new base::StringValue(GetAsString()));
|
| -}
|
| -
|
| -bool SocketPermissionData::FromValue(const base::Value* value) {
|
| - std::string spec;
|
| - if (!value->GetAsString(&spec))
|
| - return false;
|
| -
|
| - return Parse(spec);
|
| -}
|
| -
|
| -SocketPermissionEntry& SocketPermissionData::entry() {
|
| - // Clear the spec because the caller could mutate |this|.
|
| - spec_.clear();
|
| - return entry_;
|
| -}
|
| -
|
| -// TODO(ikarienator): Rewrite this method to support IPv6.
|
| -bool SocketPermissionData::Parse(const std::string& permission) {
|
| - Reset();
|
| -
|
| - std::vector<std::string> tokens;
|
| - base::SplitStringDontTrim(permission, kColon, &tokens);
|
| - if (tokens.empty())
|
| - return false;
|
| -
|
| - SocketPermissionRequest::OperationType type = StringToType(tokens[0]);
|
| - if (type == SocketPermissionRequest::NONE)
|
| - return false;
|
| -
|
| - tokens.erase(tokens.begin());
|
| - return SocketPermissionEntry::ParseHostPattern(type, tokens, &entry_);
|
| -}
|
| -
|
| -const std::string& SocketPermissionData::GetAsString() const {
|
| - if (!spec_.empty())
|
| - return spec_;
|
| -
|
| - spec_.reserve(64);
|
| - spec_.append(TypeToString(entry_.pattern().type));
|
| - std::string pattern = entry_.GetHostPatternAsString();
|
| - if (!pattern.empty()) {
|
| - spec_.append(1, kColon).append(pattern);
|
| - }
|
| - return spec_;
|
| -}
|
| -
|
| -void SocketPermissionData::Reset() {
|
| - entry_ = SocketPermissionEntry();
|
| - spec_.clear();
|
| -}
|
| -
|
| -} // namespace extensions
|
|
|