Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(178)

Unified Diff: extensions/common/permissions/manifest_permission.h

Issue 51433002: Enable permission warnings from ManifestHandlers. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Address code review comments. Created 7 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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_

Powered by Google App Engine
This is Rietveld 408576698