Index: chrome/common/extensions/permissions/permission_message.h |
diff --git a/chrome/common/extensions/permissions/permission_message.h b/chrome/common/extensions/permissions/permission_message.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..e8710af20b76882e8cf72534c9454f237a5213a8 |
--- /dev/null |
+++ b/chrome/common/extensions/permissions/permission_message.h |
@@ -0,0 +1,85 @@ |
+// Copyright (c) 2012 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_PERMISSION_MESSAGE_H_ |
+#define CHROME_COMMON_EXTENSIONS_PERMISSIONS_PERMISSION_MESSAGE_H_ |
+#pragma once |
+ |
+#include <set> |
+#include <string> |
+#include <vector> |
+ |
+#include "base/string16.h" |
+ |
+namespace extensions { |
+ |
+// When prompting the user to install or approve permissions, we display |
+// messages describing the effects of the permissions rather than listing the |
+// permissions themselves. Each PermissionMessage represents one of the |
+// messages shown to the user. |
+class PermissionMessage { |
+ public: |
+ // Do not reorder this enumeration. If you need to add a new enum, add it just |
+ // prior to kEnumBoundary. |
+ enum ID { |
+ kUnknown, |
+ kNone, |
+ kBookmarks, |
+ kGeolocation, |
+ kBrowsingHistory, |
+ kTabs, |
+ kManagement, |
+ kDebugger, |
+ kHosts1, |
+ kHosts2, |
+ kHosts3, |
+ kHosts4OrMore, |
+ kHostsAll, |
+ kFullAccess, |
+ kClipboard, |
+ kTtsEngine, |
+ kContentSettings, |
+ kAllPageContent, |
+ kPrivacy, |
+ kManagedMode, |
+ kInput, |
+ kAudioCapture, |
+ kVideoCapture, |
+ kDownloads, |
+ kEnumBoundary |
+ }; |
+ |
+ // Creates the corresponding permission message for a list of hosts. This is |
+ // simply a convenience method around the constructor, since the messages |
+ // change depending on what hosts are present. |
+ static PermissionMessage CreateFromHostList( |
+ const std::set<std::string>& hosts); |
+ |
+ // Creates the corresponding permission message. |
+ PermissionMessage(ID id, const string16& message); |
+ ~PermissionMessage(); |
+ |
+ // Gets the id of the permission message, which can be used in UMA |
+ // histograms. |
+ ID id() const { return id_; } |
+ |
+ // Gets a localized message describing this permission. Please note that |
+ // the message will be empty for message types TYPE_NONE and TYPE_UNKNOWN. |
+ const string16& message() const { return message_; } |
+ |
+ // Comparator to work with std::set. |
+ bool operator<(const PermissionMessage& that) const { |
+ return id_ < that.id_; |
+ } |
+ |
+ private: |
+ ID id_; |
+ string16 message_; |
+}; |
+ |
+typedef std::vector<PermissionMessage> PermissionMessages; |
+ |
+} // namespace extensions |
+ |
+#endif // CHROME_COMMON_EXTENSIONS_PERMISSIONS_PERMISSION_MESSAGE_H_ |