| OLD | NEW | 
|---|
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be | 
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. | 
| 4 | 4 | 
| 5 #ifndef CHROME_COMMON_EXTENSIONS_API_SOCKETS_SOCKETS_MANIFEST_PERMISSION_H_ | 5 #ifndef CHROME_COMMON_EXTENSIONS_API_BLUETOOTH_BLUETOOTH_MANIFEST_PERMISSION_H_ | 
| 6 #define CHROME_COMMON_EXTENSIONS_API_SOCKETS_SOCKETS_MANIFEST_PERMISSION_H_ | 6 #define CHROME_COMMON_EXTENSIONS_API_BLUETOOTH_BLUETOOTH_MANIFEST_PERMISSION_H_ | 
| 7 | 7 | 
| 8 #include <set> | 8 #include <set> | 
| 9 #include <vector> | 9 #include <vector> | 
| 10 | 10 | 
| 11 #include "chrome/common/extensions/permissions/socket_permission_entry.h" |  | 
| 12 #include "extensions/common/install_warning.h" | 11 #include "extensions/common/install_warning.h" | 
| 13 #include "extensions/common/permissions/manifest_permission.h" | 12 #include "extensions/common/permissions/manifest_permission.h" | 
| 14 | 13 | 
| 15 namespace content { |  | 
| 16 struct SocketPermissionRequest; |  | 
| 17 } |  | 
| 18 |  | 
| 19 namespace extensions { | 14 namespace extensions { | 
| 20 class Extension; | 15 class Extension; | 
| 21 } | 16 } | 
| 22 | 17 | 
| 23 namespace extensions { | 18 namespace extensions { | 
|  | 19 struct BluetoothPermissionRequest; | 
|  | 20 } | 
| 24 | 21 | 
| 25 class SocketsManifestPermission : public ManifestPermission { | 22 namespace extensions { | 
|  | 23 | 
|  | 24 class BluetoothManifestPermission : public ManifestPermission { | 
| 26  public: | 25  public: | 
| 27   typedef std::set<SocketPermissionEntry> SocketPermissionEntrySet; | 26   typedef std::set<std::string> BluetoothProfileUuidSet; | 
| 28   SocketsManifestPermission(); | 27   BluetoothManifestPermission(); | 
| 29   virtual ~SocketsManifestPermission(); | 28   virtual ~BluetoothManifestPermission(); | 
| 30 | 29 | 
| 31   // Tries to construct the info based on |value|, as it would have appeared in | 30   // Tries to construct the info based on |value|, as it would have appeared in | 
| 32   // the manifest. Sets |error| and returns an empty scoped_ptr on failure. | 31   // the manifest. Sets |error| and returns an empty scoped_ptr on failure. | 
| 33   static scoped_ptr<SocketsManifestPermission> FromValue( | 32   static scoped_ptr<BluetoothManifestPermission> FromValue( | 
| 34       const base::Value& value, | 33       const base::Value& value, | 
| 35       base::string16* error); | 34       base::string16* error); | 
| 36 | 35 | 
| 37   bool CheckRequest(const Extension* extension, | 36   bool CheckRequest(const Extension* extension, | 
| 38                     const content::SocketPermissionRequest& request) const; | 37                     const BluetoothPermissionRequest& request) const; | 
| 39 | 38 | 
| 40   void AddPermission(const SocketPermissionEntry& entry); | 39   void AddPermission(const std::string& profile_uuid); | 
| 41 | 40 | 
| 42   // extensions::ManifestPermission overrides. | 41   // extensions::ManifestPermission overrides. | 
| 43   virtual std::string name() const OVERRIDE; | 42   virtual std::string name() const OVERRIDE; | 
| 44   virtual std::string id() const OVERRIDE; | 43   virtual std::string id() const OVERRIDE; | 
| 45   virtual bool HasMessages() const OVERRIDE; | 44   virtual bool HasMessages() const OVERRIDE; | 
| 46   virtual PermissionMessages GetMessages() const OVERRIDE; | 45   virtual PermissionMessages GetMessages() const OVERRIDE; | 
| 47   virtual bool FromValue(const base::Value* value) OVERRIDE; | 46   virtual bool FromValue(const base::Value* value) OVERRIDE; | 
| 48   virtual scoped_ptr<base::Value> ToValue() const OVERRIDE; | 47   virtual scoped_ptr<base::Value> ToValue() const OVERRIDE; | 
| 49   virtual ManifestPermission* Clone() const OVERRIDE; | 48   virtual ManifestPermission* Clone() const OVERRIDE; | 
| 50   virtual ManifestPermission* Diff(const ManifestPermission* rhs) const | 49   virtual ManifestPermission* Diff(const ManifestPermission* rhs) | 
| 51       OVERRIDE; | 50       const OVERRIDE; | 
| 52   virtual ManifestPermission* Union(const ManifestPermission* rhs) const | 51   virtual ManifestPermission* Union(const ManifestPermission* rhs) | 
| 53       OVERRIDE; | 52       const OVERRIDE; | 
| 54   virtual ManifestPermission* Intersect(const ManifestPermission* rhs) const | 53   virtual ManifestPermission* Intersect(const ManifestPermission* rhs) | 
| 55       OVERRIDE; | 54       const OVERRIDE; | 
| 56   virtual bool Contains(const ManifestPermission* rhs) const OVERRIDE; | 55   virtual bool Contains(const ManifestPermission* rhs) const OVERRIDE; | 
| 57   virtual bool Equal(const ManifestPermission* rhs) const OVERRIDE; | 56   virtual bool Equal(const ManifestPermission* rhs) const OVERRIDE; | 
| 58   virtual void Write(IPC::Message* m) const OVERRIDE; | 57   virtual void Write(IPC::Message* m) const OVERRIDE; | 
| 59   virtual bool Read(const IPC::Message* m, PickleIterator* iter) OVERRIDE; | 58   virtual bool Read(const IPC::Message* m, PickleIterator* iter) OVERRIDE; | 
| 60   virtual void Log(std::string* log) const OVERRIDE; | 59   virtual void Log(std::string* log) const OVERRIDE; | 
| 61 | 60 | 
| 62   const SocketPermissionEntrySet& entries() const { return permissions_; } | 61   const BluetoothProfileUuidSet& profile_uuids() const { | 
|  | 62     return profile_uuids_; | 
|  | 63   } | 
| 63 | 64 | 
| 64  private: | 65  private: | 
| 65   bool AddAnyHostMessage(PermissionMessages& messages) const; | 66   BluetoothProfileUuidSet profile_uuids_; | 
| 66   void AddSubdomainHostMessage(PermissionMessages& messages) const; |  | 
| 67   void AddSpecificHostMessage(PermissionMessages& messages) const; |  | 
| 68   void AddNetworkListMessage(PermissionMessages& messages) const; |  | 
| 69 |  | 
| 70   SocketPermissionEntrySet permissions_; |  | 
| 71 }; | 67 }; | 
| 72 | 68 | 
| 73 }  // namespace extensions | 69 }  // namespace extensions | 
| 74 | 70 | 
| 75 #endif  // CHROME_COMMON_EXTENSIONS_API_SOCKETS_SOCKETS_MANIFEST_PERMISSION_H_ | 71 #endif  // CHROME_COMMON_EXTENSIONS_API_BLUETOOTH_BLUETOOTH_MANIFEST_PERMISSION_
    H_ | 
| OLD | NEW | 
|---|