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

Side by Side Diff: extensions/common/permissions/coalesced_permission_message.h

Issue 795543002: Added PermissionIDSet to APIPermissions (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@permissions_patch_1_static_initializer_fix
Patch Set: Created 6 years 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 unified diff | Download patch
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef EXTENSIONS_COMMON_PERMISSIONS_COALESCED_PERMISSION_MESSAGE_H_ 5 #ifndef EXTENSIONS_COMMON_PERMISSIONS_COALESCED_PERMISSION_MESSAGE_H_
6 #define EXTENSIONS_COMMON_PERMISSIONS_COALESCED_PERMISSION_MESSAGE_H_ 6 #define EXTENSIONS_COMMON_PERMISSIONS_COALESCED_PERMISSION_MESSAGE_H_
7 7
8 #include <set> 8 #include <list>
9 #include <string> 9 #include <string>
10 10
11 #include "base/memory/scoped_vector.h"
12 #include "extensions/common/permissions/api_permission.h"
13 #include "extensions/common/permissions/api_permission_set.h" 11 #include "extensions/common/permissions/api_permission_set.h"
14 12
15 namespace extensions { 13 namespace extensions {
16 14
17 // The new kind of Chrome app/extension permission messages. 15 // The new kind of Chrome app/extension permission messages.
18 // 16 //
19 // A CoalescedPermissionMessage is an immutable object that represents a single 17 // A CoalescedPermissionMessage is an immutable object that represents a single
20 // bullet in the list of an app or extension's permissions. It contains the 18 // bullet in the list of an app or extension's permissions. It contains the
21 // localized permission message to display, as well as the set of permissions 19 // localized permission message to display, as well as the set of permissions
22 // that contributed to that message (and should be revoked if this permission is 20 // that contributed to that message (and should be revoked if this permission is
(...skipping 12 matching lines...) Expand all
35 // collapsed if needed. For example, host permission messages may list all the 33 // collapsed if needed. For example, host permission messages may list all the
36 // sites the app has access to in |submessages|, with a summary message in 34 // sites the app has access to in |submessages|, with a summary message in
37 // |message|. 35 // |message|.
38 // 36 //
39 // TODO(sashab): Add a custom revoke action for each permission and nested 37 // TODO(sashab): Add a custom revoke action for each permission and nested
40 // permission message, registerable as a callback. 38 // permission message, registerable as a callback.
41 // TODO(sashab): Once the existing PermissionMessage is no longer used, rename 39 // TODO(sashab): Once the existing PermissionMessage is no longer used, rename
42 // this to PermissionMessage. 40 // this to PermissionMessage.
43 class CoalescedPermissionMessage { 41 class CoalescedPermissionMessage {
44 public: 42 public:
43 CoalescedPermissionMessage();
sashab 2014/12/10 08:57:49 Not sure if we should include this... Technically,
45 CoalescedPermissionMessage(const base::string16& message, 44 CoalescedPermissionMessage(const base::string16& message,
46 const PermissionIDSet& permissions); 45 const PermissionIDSet& permissions);
47 CoalescedPermissionMessage(const base::string16& message, 46 CoalescedPermissionMessage(const base::string16& message,
48 const PermissionIDSet& permissions, 47 const PermissionIDSet& permissions,
49 const std::vector<base::string16>& submessages); 48 const std::vector<base::string16>& submessages);
50 virtual ~CoalescedPermissionMessage(); 49 virtual ~CoalescedPermissionMessage();
51 50
52 const base::string16& message() const { return message_; } 51 const base::string16& message() const { return message_; }
53 const PermissionIDSet& permissions() const { return permissions_; } 52 const PermissionIDSet& permissions() const { return permissions_; }
54 const std::vector<base::string16>& submessages() const { 53 const std::vector<base::string16>& submessages() const {
55 return submessages_; 54 return submessages_;
56 } 55 }
57 56
58 private: 57 private:
59 const base::string16 message_; 58 const base::string16 message_;
60 const PermissionIDSet permissions_; 59 const PermissionIDSet permissions_;
61 const std::vector<base::string16> submessages_; 60 const std::vector<base::string16> submessages_;
62
63 DISALLOW_COPY_AND_ASSIGN(CoalescedPermissionMessage);
64 }; 61 };
65 62
66 typedef std::vector<CoalescedPermissionMessage> CoalescedPermissionMessages; 63 // Use a linked list to store our list of messages, since we will commonly be
64 // iterating/removing elements but should never be accessing by index.
65 typedef std::list<CoalescedPermissionMessage> CoalescedPermissionMessages;
67 66
68 } // namespace extensions 67 } // namespace extensions
69 68
70 #endif // EXTENSIONS_COMMON_PERMISSIONS_COALESCED_PERMISSION_MESSAGE_H_ 69 #endif // EXTENSIONS_COMMON_PERMISSIONS_COALESCED_PERMISSION_MESSAGE_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698