Chromium Code Reviews| 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 |
| index e44844c039cdf17984fd152ae97ad67bcbefcf4f..3369ccfcfa7c58078d7ce0300fab7ddbccf36fc4 100644 |
| --- a/chrome/common/extensions/permissions/socket_permission_data.cc |
| +++ b/chrome/common/extensions/permissions/socket_permission_data.cc |
| @@ -30,6 +30,7 @@ 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 int kWildcardPortNumber = 0; |
| const int kInvalidPort = -1; |
| @@ -42,6 +43,8 @@ SocketPermissionRequest::OperationType StringToType(const std::string& s) { |
| return SocketPermissionRequest::UDP_BIND; |
| if (s == kUDPSendTo) |
| return SocketPermissionRequest::UDP_SEND_TO; |
| + if (s == kUDPMulticastMembership) |
| + return SocketPermissionRequest::UDP_MUTICAST_MEMBERSHIP; |
| return SocketPermissionRequest::NONE; |
| } |
| @@ -55,6 +58,8 @@ const char* TypeToString(SocketPermissionRequest::OperationType type) { |
| return kUDPBind; |
| case SocketPermissionRequest::UDP_SEND_TO: |
| return kUDPSendTo; |
| + case SocketPermissionRequest::UDP_MUTICAST_MEMBERSHIP: |
|
miket_OOO
2013/04/25 21:52:12
spelling (fix everywhere, please)
|
| + return kUDPMulticastMembership; |
| default: |
| return kInvalid; |
| } |
| @@ -207,6 +212,10 @@ bool SocketPermissionData::Parse(const std::string& permission) { |
| if (tokens.size() == 1) |
| return true; |
| + // Multicast membership permission string does not include an address. |
| + if (pattern_.type == SocketPermissionRequest::UDP_MUTICAST_MEMBERSHIP) |
| + return false; |
| + |
| pattern_.host = tokens[1]; |
| if (!pattern_.host.empty()) { |
| if (StartsOrEndsWithWhitespace(pattern_.host)) |
| @@ -250,6 +259,9 @@ const std::string& SocketPermissionData::GetAsString() const { |
| spec_.reserve(64); |
| spec_.append(TypeToString(pattern_.type)); |
| + if (pattern_.type == SocketPermissionRequest::UDP_MUTICAST_MEMBERSHIP) |
| + return spec_; |
| + |
| if (match_subdomains_) { |
| spec_.append(1, kColon).append(kWildcard); |
| if (!pattern_.host.empty()) |