diff options
Diffstat (limited to 'chrome/common/extensions/permissions/socket_permission_data.cc')
-rw-r--r-- | chrome/common/extensions/permissions/socket_permission_data.cc | 19 |
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)); |