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. 4 5#ifndef EXTENSIONS_COMMON_PERMISSIONS_PERMISSION_MESSAGE_PROVIDER_H_ 6#define EXTENSIONS_COMMON_PERMISSIONS_PERMISSION_MESSAGE_PROVIDER_H_ 7 8#include <vector> 9 10#include "extensions/common/manifest.h" 11#include "extensions/common/permissions/permission_message.h" 12 13namespace extensions { 14 15class PermissionSet; 16 17// The PermissionMessageProvider interprets permissions, translating them 18// into warning messages to show to the user. It also determines whether 19// a new set of permissions entails showing new warning messages. 20class PermissionMessageProvider { 21 public: 22 PermissionMessageProvider() {} 23 virtual ~PermissionMessageProvider() {} 24 25 // Return the global permission message provider. 26 static const PermissionMessageProvider* Get(); 27 28 // Gets the localized permission messages that represent this set. 29 // The set of permission messages shown varies by extension type. 30 virtual PermissionMessages GetPermissionMessages( 31 const PermissionSet* permissions, 32 Manifest::Type extension_type) const = 0; 33 34 // Gets the localized permission messages that represent this set (represented 35 // as strings). The set of permission messages shown varies by extension type. 36 virtual std::vector<base::string16> GetWarningMessages( 37 const PermissionSet* permissions, 38 Manifest::Type extension_type) const = 0; 39 40 // Gets the localized permission details for messages that represent this set 41 // (represented as strings). The set of permission messages shown varies by 42 // extension type. 43 virtual std::vector<base::string16> GetWarningMessagesDetails( 44 const PermissionSet* permissions, 45 Manifest::Type extension_type) const = 0; 46 47 // Returns true if |new_permissions| has a greater privilege level than 48 // |old_permissions|. 49 // Whether certain permissions are considered varies by extension type. 50 virtual bool IsPrivilegeIncrease( 51 const PermissionSet* old_permissions, 52 const PermissionSet* new_permissions, 53 Manifest::Type extension_type) const = 0; 54}; 55 56} // namespace extensions 57 58#endif // EXTENSIONS_COMMON_PERMISSIONS_PERMISSION_MESSAGE_PROVIDER_H_ 59