summaryrefslogtreecommitdiffstats
path: root/chrome/common/extensions/permissions/socket_permission_data.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/common/extensions/permissions/socket_permission_data.cc')
-rw-r--r--chrome/common/extensions/permissions/socket_permission_data.cc19
1 files changed, 14 insertions, 5 deletions
diff --git a/chrome/common/extensions/permissions/socket_permission_data.cc b/chrome/common/extensions/permissions/socket_permission_data.cc
index bd9f041..bbf4523 100644
--- a/chrome/common/extensions/permissions/socket_permission_data.cc
+++ b/chrome/common/extensions/permissions/socket_permission_data.cc
@@ -12,6 +12,8 @@
#include "base/string_number_conversions.h"
#include "base/string_split.h"
#include "base/string_util.h"
+#include "chrome/common/extensions/permissions/api_permission.h"
+#include "chrome/common/extensions/permissions/socket_permission.h"
#include "googleurl/src/url_canon.h"
namespace {
@@ -27,7 +29,7 @@ const char kTCPConnect[] = "tcp-connect";
const char kTCPListen[] = "tcp-listen";
const char kUDPBind[] = "udp-bind";
const char kUDPSendTo[] = "udp-send-to";
-const int kAnyPort = 0;
+const int kWildcardPortNumber = 0;
const int kInvalidPort = -1;
SocketPermissionRequest::OperationType StringToType(const std::string& s) {
@@ -105,7 +107,14 @@ bool SocketPermissionData::operator==(const SocketPermissionData& rhs) const {
(pattern_.port == rhs.pattern_.port);
}
-bool SocketPermissionData::Match(SocketPermissionRequest request) const {
+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;
+
if (pattern_.type != request.type)
return false;
@@ -137,7 +146,7 @@ bool SocketPermissionData::Match(SocketPermissionRequest request) const {
}
}
- if (pattern_.port != request.port && pattern_.port != kAnyPort)
+ if (pattern_.port != request.port && pattern_.port != kWildcardPortNumber)
return false;
return true;
@@ -147,7 +156,7 @@ bool SocketPermissionData::Parse(const std::string& permission) {
do {
pattern_.host.clear();
match_subdomains_ = true;
- pattern_.port = kAnyPort;
+ pattern_.port = kWildcardPortNumber;
spec_.clear();
std::vector<std::string> tokens;
@@ -224,7 +233,7 @@ const std::string& SocketPermissionData::GetAsString() const {
spec_.append(1, kColon).append(pattern_.host);
}
- if (pattern_.port == kAnyPort)
+ if (pattern_.port == kWildcardPortNumber)
spec_.append(1, kColon).append(kWildcard);
else
spec_.append(1, kColon).append(base::IntToString(pattern_.port));