• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2014 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 EXTENSIONS_COMMON_PERMISSIONS_SETTINGS_OVERRIDE_PERMISSION_H_
6 #define EXTENSIONS_COMMON_PERMISSIONS_SETTINGS_OVERRIDE_PERMISSION_H_
7 
8 #include <string>
9 
10 #include "extensions/common/permissions/api_permission.h"
11 
12 namespace extensions {
13 
14 // Takes care of creating custom permission messages for extensions that
15 // override settings.
16 class SettingsOverrideAPIPermission : public APIPermission {
17  public:
18   SettingsOverrideAPIPermission(const APIPermissionInfo* permission,
19                                 const std::string& setting_value);
20   virtual ~SettingsOverrideAPIPermission();
21 
22   // APIPermission overrides.
23   virtual bool HasMessages() const OVERRIDE;
24   virtual PermissionMessages GetMessages() const OVERRIDE;
25   virtual bool Check(const APIPermission::CheckParam* param) const OVERRIDE;
26   virtual bool Contains(const APIPermission* rhs) const OVERRIDE;
27   virtual bool Equal(const APIPermission* rhs) const OVERRIDE;
28   virtual bool FromValue(
29       const base::Value* value,
30       std::string* error,
31       std::vector<std::string>* unhandled_permissions) OVERRIDE;
32   virtual scoped_ptr<base::Value> ToValue() const OVERRIDE;
33   virtual APIPermission* Clone() const OVERRIDE;
34   virtual APIPermission* Diff(const APIPermission* rhs) const OVERRIDE;
35   virtual APIPermission* Union(const APIPermission* rhs) const OVERRIDE;
36   virtual APIPermission* Intersect(const APIPermission* rhs) const OVERRIDE;
37   virtual void Write(IPC::Message* m) const OVERRIDE;
38   virtual bool Read(const IPC::Message* m, PickleIterator* iter) OVERRIDE;
39   virtual void Log(std::string* log) const OVERRIDE;
40 
41  private:
42   std::string setting_value_;
43 };
44 
45 }  // namespace extensions
46 
47 #endif  // EXTENSIONS_COMMON_PERMISSIONS_SETTINGS_OVERRIDE_PERMISSION_H_
48