1// Copyright (c) 2012 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#ifndef CHROME_COMMON_EXTENSIONS_PERMISSIONS_SOCKET_PERMISSION_H_ 6#define CHROME_COMMON_EXTENSIONS_PERMISSIONS_SOCKET_PERMISSION_H_ 7 8#include <string> 9 10#include "chrome/common/extensions/permissions/api_permission.h" 11#include "chrome/common/extensions/permissions/set_disjunction_permission.h" 12#include "chrome/common/extensions/permissions/socket_permission_data.h" 13 14namespace extensions { 15 16class SocketPermission : public SetDisjunctionPermission<SocketPermissionData, 17 SocketPermission> { 18 public: 19 struct CheckParam : APIPermission::CheckParam { 20 CheckParam(content::SocketPermissionRequest::OperationType type, 21 const std::string& host, 22 int port) 23 : request(type, host, port) { } 24 content::SocketPermissionRequest request; 25 }; 26 27 explicit SocketPermission(const APIPermissionInfo* info); 28 29 virtual ~SocketPermission(); 30 31 // Returns the localized permission messages of this permission. 32 virtual PermissionMessages GetMessages() const OVERRIDE; 33 34 private: 35 bool AddAnyHostMessage(PermissionMessages& messages) const; 36 void AddSubdomainHostMessage(PermissionMessages& messages) const; 37 void AddSpecificHostMessage(PermissionMessages& messages) const; 38}; 39 40} // namespace extensions 41 42#endif // CHROME_COMMON_EXTENSIONS_PERMISSIONS_SOCKET_PERMISSION_H_ 43