Index: chrome/common/extensions/permissions/settings_override_permission.h |
diff --git a/chrome/common/extensions/permissions/settings_override_permission.h b/chrome/common/extensions/permissions/settings_override_permission.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..3f2958d26c8d40f752755ee9ac2ba1060ce431d7 |
--- /dev/null |
+++ b/chrome/common/extensions/permissions/settings_override_permission.h |
@@ -0,0 +1,44 @@ |
+// Copyright (c) 2013 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#ifndef CHROME_COMMON_EXTENSIONS_PERMISSIONS_SETTINGS_OVERRIDE_PERMISSION_H_ |
+#define CHROME_COMMON_EXTENSIONS_PERMISSIONS_SETTINGS_OVERRIDE_PERMISSION_H_ |
+ |
+#include <string> |
+ |
+#include "extensions/common/permissions/api_permission.h" |
+ |
+namespace extensions { |
+ |
+// Takes care of creating custom permission messages for extensions that |
+// override settings. |
+class SettingsOverrideAPIPermission : public APIPermission { |
+ public: |
+ SettingsOverrideAPIPermission( |
+ const APIPermissionInfo* permission, const std::string& setting_value); |
+ virtual ~SettingsOverrideAPIPermission(); |
+ |
+ // APIPermission overrides. |
+ virtual bool HasMessages() const OVERRIDE; |
+ virtual PermissionMessages GetMessages() const OVERRIDE; |
+ virtual bool Check(const APIPermission::CheckParam* param) const OVERRIDE; |
+ virtual bool Contains(const APIPermission* rhs) const OVERRIDE; |
+ virtual bool Equal(const APIPermission* rhs) const OVERRIDE; |
+ virtual bool FromValue(const base::Value* value) OVERRIDE; |
+ virtual scoped_ptr<base::Value> ToValue() const OVERRIDE; |
+ virtual APIPermission* Clone() const OVERRIDE; |
+ virtual APIPermission* Diff(const APIPermission* rhs) const OVERRIDE; |
+ virtual APIPermission* Union(const APIPermission* rhs) const OVERRIDE; |
+ virtual APIPermission* Intersect(const APIPermission* rhs) const OVERRIDE; |
+ virtual void Write(IPC::Message* m) const OVERRIDE; |
+ virtual bool Read(const IPC::Message* m, PickleIterator* iter) OVERRIDE; |
+ virtual void Log(std::string* log) const OVERRIDE; |
+ |
+ private: |
+ std::string setting_value_; |
+}; |
+ |
+} // namespace extensions |
+ |
+#endif // CHROME_COMMON_EXTENSIONS_PERMISSIONS_SETTINGS_OVERRIDE_PERMISSION_H_ |