1 // Copyright 2013 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.
5 #ifndef EXTENSIONS_COMMON_PERMISSIONS_PERMISSION_MESSAGE_H_
6 #define EXTENSIONS_COMMON_PERMISSIONS_PERMISSION_MESSAGE_H_
11 #include "base/basictypes.h"
12 #include "base/strings/string16.h"
14 namespace extensions {
16 // When prompting the user to install or approve permissions, we display
17 // messages describing the effects of the permissions rather than listing the
18 // permissions themselves. Each PermissionMessage represents one of the
19 // messages shown to the user.
20 class PermissionMessage {
22 // Do not reorder this enumeration. If you need to add a new enum, add it just
23 // prior to kEnumBoundary.
50 kDeleted_FileSystemWrite,
51 kMediaGalleriesAllGalleriesRead,
60 kMediaGalleriesAllGalleriesCopyTo,
72 kDeclarativeWebRequest,
74 kFileSystemWriteDirectory,
81 kMediaGalleriesAllGalleriesDelete,
85 kAccessibilityFeaturesModify,
86 kAccessibilityFeaturesRead,
89 kExperienceSamplingPrivate,
93 COMPILE_ASSERT(PermissionMessage::kNone > PermissionMessage::kUnknown,
94 kNone_not_greater_than_kUnknown);
96 // Creates the corresponding permission message.
97 PermissionMessage(ID id, const base::string16& message);
98 PermissionMessage(ID id,
99 const base::string16& message,
100 const base::string16& details);
101 ~PermissionMessage();
103 // Gets the id of the permission message, which can be used in UMA
105 ID id() const { return id_; }
107 // Gets a localized message describing this permission. Please note that
108 // the message will be empty for message types TYPE_NONE and TYPE_UNKNOWN.
109 const base::string16& message() const { return message_; }
111 // Gets a localized message describing the details for this permission. Please
112 // note that the message will be empty for message types TYPE_NONE and
114 const base::string16& details() const { return details_; }
116 // Comparator to work with std::set.
117 bool operator<(const PermissionMessage& that) const {
118 return id_ < that.id_;
120 // Comparator to work with base::STLSetDifference.
121 bool operator>(const PermissionMessage& that) const {
122 return id_ > that.id_;
127 base::string16 message_;
128 base::string16 details_;
131 typedef std::vector<PermissionMessage> PermissionMessages;
133 } // namespace extensions
135 #endif // EXTENSIONS_COMMON_PERMISSIONS_PERMISSION_MESSAGE_H_