| Index: extensions/common/permissions/manifest_permission.h
|
| diff --git a/extensions/common/permissions/manifest_permission.h b/extensions/common/permissions/manifest_permission.h
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..6688407eff7e0b57136026000dbdc48a6f68fe2b
|
| --- /dev/null
|
| +++ b/extensions/common/permissions/manifest_permission.h
|
| @@ -0,0 +1,88 @@
|
| +// Copyright 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 EXTENSIONS_COMMON_PERMISSIONS_MANIFEST_PERMISSION_H_
|
| +#define EXTENSIONS_COMMON_PERMISSIONS_MANIFEST_PERMISSION_H_
|
| +
|
| +#include <string>
|
| +
|
| +#include "base/memory/scoped_ptr.h"
|
| +#include "base/pickle.h"
|
| +#include "extensions/common/permissions/permission_message.h"
|
| +
|
| +class PickleIterator;
|
| +
|
| +namespace base {
|
| +class Value;
|
| +class ListValue;
|
| +}
|
| +
|
| +namespace IPC {
|
| +class Message;
|
| +}
|
| +
|
| +namespace extensions {
|
| +
|
| +// Represent the custom behavior of a top-level manifest entry contributing to
|
| +// permission messages and storage.
|
| +class ManifestPermission {
|
| + public:
|
| + ManifestPermission();
|
| + virtual ~ManifestPermission();
|
| +
|
| + // The manifest key this permission applies to.
|
| + virtual std::string name() const = 0;
|
| +
|
| + // Same as name(), needed for compatibility with APIPermission.
|
| + virtual std::string id() const = 0;
|
| +
|
| + // Returns true if this permission has any PermissionMessages.
|
| + virtual bool HasMessages() const = 0;
|
| +
|
| + // Returns the localized permission messages of this permission.
|
| + virtual PermissionMessages GetMessages() const = 0;
|
| +
|
| + // Parses the ManifestPermission from |value|. Returns false if error happens.
|
| + virtual bool FromValue(const base::Value* value) = 0;
|
| +
|
| + // Stores this into a new created |value|.
|
| + virtual scoped_ptr<base::Value> ToValue() const = 0;
|
| +
|
| + // Clones this.
|
| + virtual ManifestPermission* Clone() const = 0;
|
| +
|
| + // Returns a new manifest permission which equals this - |rhs|.
|
| + virtual ManifestPermission* Diff(const ManifestPermission* rhs) const = 0;
|
| +
|
| + // Returns a new manifest permission which equals the union of this and |rhs|.
|
| + virtual ManifestPermission* Union(const ManifestPermission* rhs) const = 0;
|
| +
|
| + // Returns a new manifest permission which equals the intersect of this and
|
| + // |rhs|.
|
| + virtual ManifestPermission* Intersect(const ManifestPermission* rhs)
|
| + const = 0;
|
| +
|
| + // Returns true if |rhs| is a subset of this.
|
| + virtual bool Contains(const ManifestPermission* rhs) const = 0;
|
| +
|
| + // Returns true if |rhs| is equal to this.
|
| + virtual bool Equal(const ManifestPermission* rhs) const = 0;
|
| +
|
| + // IPC functions
|
| + // Writes this into the given IPC message |m|.
|
| + virtual void Write(IPC::Message* m) const = 0;
|
| +
|
| + // Reads from the given IPC message |m|.
|
| + virtual bool Read(const IPC::Message* m, PickleIterator* iter) = 0;
|
| +
|
| + // Logs this permission.
|
| + virtual void Log(std::string* log) const = 0;
|
| +
|
| + private:
|
| + DISALLOW_COPY_AND_ASSIGN(ManifestPermission);
|
| +};
|
| +
|
| +} // namespace extensions
|
| +
|
| +#endif // EXTENSIONS_COMMON_PERMISSIONS_MANIFEST_PERMISSION_H_
|
|
|