Chromium Code Reviews| Index: chrome/common/extensions/permissions/chrome_permission_message_rules.cc |
| diff --git a/chrome/common/extensions/permissions/chrome_permission_message_rules.cc b/chrome/common/extensions/permissions/chrome_permission_message_rules.cc |
| index 3ccd4707c5beacb504ad394a196a28192070a332..61a0e56a78b49730455cef02ffb92cc98ff57669 100644 |
| --- a/chrome/common/extensions/permissions/chrome_permission_message_rules.cc |
| +++ b/chrome/common/extensions/permissions/chrome_permission_message_rules.cc |
| @@ -384,38 +384,42 @@ ChromePermissionMessageRule::GetAllRules() { |
| // enough that rules like this should not occur; the visibility of the rules |
| // system should allow us to design a system that is simple enough to explain |
| // yet powerful enough to encapsulate all the messages we want to display. |
| - // |
| - // TODO(sashab): Once existing message sites are deprecated, reorder this list |
| - // to better describe the rules generated, rather than the callsites they are |
| - // migrated from. |
| ChromePermissionMessageRule rules_arr[] = { |
| - // Full url access permission messages. |
| + // Full access permission messages. |
| {IDS_EXTENSION_PROMPT_WARNING_DEBUGGER, {APIPermission::kDebugger}, {}}, |
| {IDS_EXTENSION_PROMPT_WARNING_FULL_ACCESS, |
| {APIPermission::kPlugin}, |
| + // TODO(treib): Add the other IDs implied by kFullAccess/kHostsAll. |
| {APIPermission::kFullAccess, APIPermission::kHostsAll, |
| APIPermission::kHostsAllReadOnly, APIPermission::kDeclarativeWebRequest, |
| APIPermission::kTopSites, APIPermission::kTab}}, |
| {IDS_EXTENSION_PROMPT_WARNING_FULL_ACCESS, |
| {APIPermission::kFullAccess}, |
| + // TODO(treib): Add the other IDs implied by kHostsAll. |
| {APIPermission::kHostsAll, APIPermission::kHostsAllReadOnly, |
| APIPermission::kDeclarativeWebRequest, APIPermission::kTopSites, |
| APIPermission::kTab}}, |
| - // Parameterized permission messages: |
| - // Messages generated by the sockets permission. |
| - {new SpaceSeparatedListFormatter( |
| - IDS_EXTENSION_PROMPT_WARNING_SOCKET_HOSTS_IN_DOMAIN, |
| - IDS_EXTENSION_PROMPT_WARNING_SOCKET_HOSTS_IN_DOMAINS), |
| - {APIPermission::kSocketDomainHosts}, |
| - {}}, |
| - {new SpaceSeparatedListFormatter( |
| - IDS_EXTENSION_PROMPT_WARNING_SOCKET_SPECIFIC_HOST, |
| - IDS_EXTENSION_PROMPT_WARNING_SOCKET_SPECIFIC_HOSTS), |
| - {APIPermission::kSocketSpecificHosts}, |
| - {}}, |
| + // Hosts permission messages. |
| + // Full host access already allows DeclarativeWebRequest, reading the list |
| + // of most frequently visited sites, and tab access. |
| + // The warning message for declarativeWebRequest permissions speaks about |
| + // blocking parts of pages, which is a subset of what the "<all_urls>" |
| + // access allows. Therefore we display only the "<all_urls>" warning |
| + // message if both permissions are required. |
| + {IDS_EXTENSION_PROMPT_WARNING_ALL_HOSTS, |
| + {APIPermission::kHostsAll}, |
| + // TODO(treib): Add kHostReadWrite and kHostReadOnly. |
| + {APIPermission::kDeclarativeWebRequest, APIPermission::kFavicon, |
| + APIPermission::kHostsAllReadOnly, APIPermission::kProcesses, |
| + APIPermission::kTab, APIPermission::kTopSites, |
| + APIPermission::kWebNavigation}}, |
| + {IDS_EXTENSION_PROMPT_WARNING_ALL_HOSTS_READ_ONLY, |
| + {APIPermission::kHostsAllReadOnly}, |
| + // TODO(treib): Add kHostReadOnly. |
| + {APIPermission::kFavicon, APIPermission::kProcesses, APIPermission::kTab, |
| + APIPermission::kTopSites, APIPermission::kWebNavigation}}, |
| - // Messages generated by host permissions. |
| {new CommaSeparatedListFormatter( |
| IDS_EXTENSION_PROMPT_WARNING_1_HOST_READ_ONLY, |
| IDS_EXTENSION_PROMPT_WARNING_2_HOSTS_READ_ONLY, |
| @@ -430,6 +434,55 @@ ChromePermissionMessageRule::GetAllRules() { |
| {APIPermission::kHostReadWrite}, |
| {}}, |
| + // History-related permission messages. |
| + // History already allows reading favicons, tab access and accessing the |
| + // list of most frequently visited sites. |
| + {IDS_EXTENSION_PROMPT_WARNING_HISTORY_WRITE_AND_SESSIONS, |
| + {APIPermission::kSessions, APIPermission::kHistory}, |
| + {APIPermission::kFavicon, APIPermission::kProcesses, APIPermission::kTab, |
| + APIPermission::kTopSites, APIPermission::kWebNavigation}}, |
| + {IDS_EXTENSION_PROMPT_WARNING_HISTORY_READ_AND_SESSIONS, |
| + {APIPermission::kSessions, APIPermission::kTab}, |
| + {APIPermission::kFavicon, APIPermission::kProcesses, |
| + APIPermission::kTopSites, APIPermission::kWebNavigation}}, |
| + {IDS_EXTENSION_PROMPT_WARNING_HISTORY_WRITE, |
| + {APIPermission::kHistory}, |
| + {APIPermission::kFavicon, APIPermission::kProcesses, APIPermission::kTab, |
| + APIPermission::kTopSites, APIPermission::kWebNavigation}}, |
| + {IDS_EXTENSION_PROMPT_WARNING_HISTORY_READ, |
| + {APIPermission::kTab}, |
| + {APIPermission::kFavicon, APIPermission::kProcesses, |
| + APIPermission::kTopSites, APIPermission::kWebNavigation}}, |
| + // TODO(treib): Should we have _AND_SESSIONS versions of these 2 as well? |
|
Devlin
2015/09/01 15:55:24
I looked a bit more into it, and I think I underst
Marc Treib
2015/09/01 15:59:50
Ah, good to know! Thanks for investigating!
I alre
|
| + {IDS_EXTENSION_PROMPT_WARNING_HISTORY_READ, |
| + {APIPermission::kProcesses}, |
| + {}}, |
| + {IDS_EXTENSION_PROMPT_WARNING_HISTORY_READ, |
| + {APIPermission::kWebNavigation}, |
| + {}}, |
| + {IDS_EXTENSION_PROMPT_WARNING_FAVICON, {APIPermission::kFavicon}, {}}, |
| + {IDS_EXTENSION_PROMPT_WARNING_TOPSITES, {APIPermission::kTopSites}, {}}, |
| + {IDS_EXTENSION_PROMPT_WARNING_DECLARATIVE_WEB_REQUEST, |
| + {APIPermission::kDeclarativeWebRequest}, |
| + {}}, |
| + |
| + // Messages generated by the sockets permission. |
| + {IDS_EXTENSION_PROMPT_WARNING_SOCKET_ANY_HOST, |
| + {APIPermission::kSocketAnyHost}, |
| + // TODO(treib): Add kSocketDomainHosts and kSocketSpecificHosts. |
| + {}}, |
| + {new SpaceSeparatedListFormatter( |
| + IDS_EXTENSION_PROMPT_WARNING_SOCKET_HOSTS_IN_DOMAIN, |
| + IDS_EXTENSION_PROMPT_WARNING_SOCKET_HOSTS_IN_DOMAINS), |
| + {APIPermission::kSocketDomainHosts}, |
| + {}}, |
| + {new SpaceSeparatedListFormatter( |
| + IDS_EXTENSION_PROMPT_WARNING_SOCKET_SPECIFIC_HOST, |
| + IDS_EXTENSION_PROMPT_WARNING_SOCKET_SPECIFIC_HOSTS), |
| + {APIPermission::kSocketSpecificHosts}, |
| + {}}, |
| + |
| + // Devices-related messages. |
| // USB Device Permission rules. Think of these three rules as a single one |
| // that applies when any of the three kUsb* IDs is there, and pulls them |
| // all into a single formatter. |
| @@ -441,20 +494,37 @@ ChromePermissionMessageRule::GetAllRules() { |
| {APIPermission::kUsbDeviceUnknownProduct}, |
| {APIPermission::kUsbDeviceUnknownVendor}}, |
| {new USBDevicesFormatter, {APIPermission::kUsbDeviceUnknownVendor}, {}}, |
| - |
| - // Coalesced message rules taken from |
| - // ChromePermissionMessageProvider::GetWarningMessages(): |
| - |
| // Access to users' devices should provide a single warning message |
| // specifying the transport method used; serial and/or Bluetooth. |
| {IDS_EXTENSION_PROMPT_WARNING_BLUETOOTH_SERIAL, |
| {APIPermission::kBluetooth, APIPermission::kSerial}, |
| {APIPermission::kBluetoothDevices}}, |
| + {IDS_EXTENSION_PROMPT_WARNING_BLUETOOTH, |
| + {APIPermission::kBluetooth}, |
| + {APIPermission::kBluetoothDevices}}, |
| + {IDS_EXTENSION_PROMPT_WARNING_BLUETOOTH_DEVICES, |
| + {APIPermission::kBluetoothDevices}, |
| + {}}, |
| + {IDS_EXTENSION_PROMPT_WARNING_BLUETOOTH_PRIVATE, |
| + {APIPermission::kBluetoothPrivate}, |
| + {}}, |
| + {IDS_EXTENSION_PROMPT_WARNING_SERIAL, {APIPermission::kSerial}, {}}, |
| + // Universal 2nd Factor devices. |
| + {IDS_EXTENSION_PROMPT_WARNING_U2F_DEVICES, |
| + {APIPermission::kU2fDevices}, |
| + {}}, |
| + // Accessibility features. |
| {IDS_EXTENSION_PROMPT_WARNING_ACCESSIBILITY_FEATURES_READ_MODIFY, |
| {APIPermission::kAccessibilityFeaturesModify, |
| APIPermission::kAccessibilityFeaturesRead}, |
| {}}, |
| + {IDS_EXTENSION_PROMPT_WARNING_ACCESSIBILITY_FEATURES_MODIFY, |
| + {APIPermission::kAccessibilityFeaturesModify}, |
| + {}}, |
| + {IDS_EXTENSION_PROMPT_WARNING_ACCESSIBILITY_FEATURES_READ, |
| + {APIPermission::kAccessibilityFeaturesRead}, |
| + {}}, |
| // TODO(sashab): Add the missing combinations of media galleries |
| // permissions so a valid permission is generated for all combinations. |
| @@ -475,63 +545,59 @@ ChromePermissionMessageRule::GetAllRules() { |
| {APIPermission::kMediaGalleriesAllGalleriesRead}, |
| {}}, |
| - {IDS_EXTENSION_PROMPT_WARNING_HISTORY_WRITE_AND_SESSIONS, |
| - {APIPermission::kSessions, APIPermission::kHistory}, |
| - {APIPermission::kFavicon, APIPermission::kProcesses, APIPermission::kTab, |
| - APIPermission::kTopSites, APIPermission::kWebNavigation}}, |
| - {IDS_EXTENSION_PROMPT_WARNING_HISTORY_READ_AND_SESSIONS, |
| - {APIPermission::kSessions, APIPermission::kTab}, |
| - {APIPermission::kFavicon, APIPermission::kProcesses, |
| - APIPermission::kTopSites, APIPermission::kWebNavigation}}, |
| - |
| - // Suppression list taken from |
| - // ChromePermissionMessageProvider::GetPermissionMessages(): |
| - // Some warnings are more generic and/or powerful and supercede other |
| - // warnings. In that case, the first message suppresses the second one. |
| - {IDS_EXTENSION_PROMPT_WARNING_BLUETOOTH, |
| - {APIPermission::kBluetooth}, |
| - {APIPermission::kBluetoothDevices}}, |
| - {IDS_EXTENSION_PROMPT_WARNING_BOOKMARKS, |
| - {APIPermission::kBookmark}, |
| - {APIPermission::kOverrideBookmarksUI}}, |
| - // History already allows reading favicons, tab access and accessing the |
| - // list of most frequently visited sites. |
| - {IDS_EXTENSION_PROMPT_WARNING_HISTORY_WRITE, |
| - {APIPermission::kHistory}, |
| - {APIPermission::kFavicon, APIPermission::kProcesses, APIPermission::kTab, |
| - APIPermission::kTopSites, APIPermission::kWebNavigation}}, |
| + // The permission string for "fileSystem" is only shown when |
| + // "write" or "directory" is present. Read-only access is only |
| + // granted after the user has been shown a file or directory |
| + // chooser dialog and selected a file or directory. Selecting |
| + // the file or directory is considered consent to read it. |
| {IDS_EXTENSION_PROMPT_WARNING_FILE_SYSTEM_WRITE_DIRECTORY, |
| {APIPermission::kFileSystemWrite, APIPermission::kFileSystemDirectory}, |
| {}}, |
| - // Full access already allows DeclarativeWebRequest, reading the list of |
| - // most frequently visited sites, and tab access. |
| - // The warning message for declarativeWebRequest |
| - // permissions speaks about blocking parts of pages, which is a |
| - // subset of what the "<all_urls>" access allows. Therefore we |
| - // display only the "<all_urls>" warning message if both permissions |
| - // are required. |
| - {IDS_EXTENSION_PROMPT_WARNING_ALL_HOSTS, |
| - {APIPermission::kHostsAll}, |
| - {APIPermission::kDeclarativeWebRequest, APIPermission::kFavicon, |
| - APIPermission::kHostsAllReadOnly, APIPermission::kProcesses, |
| - APIPermission::kTab, APIPermission::kTopSites, |
| - APIPermission::kWebNavigation}}, |
| - // AutomationManifestPermission: |
| - {IDS_EXTENSION_PROMPT_WARNING_ALL_HOSTS_READ_ONLY, |
| - {APIPermission::kHostsAllReadOnly}, |
| - {APIPermission::kFavicon, APIPermission::kProcesses, APIPermission::kTab, |
| - APIPermission::kTopSites, APIPermission::kWebNavigation}}, |
| - // Tabs already allows reading favicons and reading the list of most |
| - // frequently visited sites. |
| - {IDS_EXTENSION_PROMPT_WARNING_HISTORY_READ, |
| - {APIPermission::kTab}, |
| - {APIPermission::kFavicon, APIPermission::kProcesses, |
| - APIPermission::kTopSites, APIPermission::kWebNavigation}}, |
| + {IDS_EXTENSION_PROMPT_WARNING_FILE_SYSTEM_DIRECTORY, |
| + {APIPermission::kFileSystemDirectory}, |
| + {}}, |
| - // Individual message rules taken from |
| - // ChromeAPIPermissions::GetAllPermissions(): |
| - // Permission messages for all extension types: |
| + // Video and audio capture. |
| + {IDS_EXTENSION_PROMPT_WARNING_AUDIO_AND_VIDEO_CAPTURE, |
| + {APIPermission::kAudioCapture, APIPermission::kVideoCapture}, |
| + {}}, |
| + {IDS_EXTENSION_PROMPT_WARNING_AUDIO_CAPTURE, |
| + {APIPermission::kAudioCapture}, |
| + {}}, |
| + {IDS_EXTENSION_PROMPT_WARNING_VIDEO_CAPTURE, |
| + {APIPermission::kVideoCapture}, |
| + {}}, |
| + |
| + // Network-related permissions. |
| + {IDS_EXTENSION_PROMPT_WARNING_NETWORKING_PRIVATE, |
| + {APIPermission::kNetworkingPrivate}, |
| + {}}, |
| + {IDS_EXTENSION_PROMPT_WARNING_NETWORKING_CONFIG, |
| + {APIPermission::kNetworkingConfig}, |
| + {}}, |
| + {IDS_EXTENSION_PROMPT_WARNING_NETWORK_STATE, |
| + {APIPermission::kNetworkState}, |
| + {}}, |
| + {IDS_EXTENSION_PROMPT_WARNING_VPN, {APIPermission::kVpnProvider}, {}}, |
| + {IDS_EXTENSION_PROMPT_WARNING_WEB_CONNECTABLE, |
| + {APIPermission::kWebConnectable}, |
| + {}}, |
| + {new SingleParameterFormatter( |
| + IDS_EXTENSION_PROMPT_WARNING_HOME_PAGE_SETTING_OVERRIDE), |
| + {APIPermission::kHomepage}, |
| + {}}, |
| + {new SingleParameterFormatter( |
| + IDS_EXTENSION_PROMPT_WARNING_SEARCH_SETTINGS_OVERRIDE), |
| + {APIPermission::kSearchProvider}, |
| + {}}, |
| + {new SingleParameterFormatter( |
| + IDS_EXTENSION_PROMPT_WARNING_START_PAGE_SETTING_OVERRIDE), |
| + {APIPermission::kStartupPages}, |
| + {}}, |
| + {IDS_EXTENSION_PROMPT_WARNING_BOOKMARKS, |
| + {APIPermission::kBookmark}, |
| + {APIPermission::kOverrideBookmarksUI}}, |
| {IDS_EXTENSION_PROMPT_WARNING_CLIPBOARD, |
| {APIPermission::kClipboardRead}, |
| {}}, |
| @@ -548,14 +614,10 @@ ChromePermissionMessageRule::GetAllRules() { |
| {IDS_EXTENSION_PROMPT_WARNING_GEOLOCATION, |
| {APIPermission::kGeolocation}, |
| {}}, |
| - |
| - // Permission messages for extensions: |
| - {IDS_EXTENSION_PROMPT_WARNING_ACCESSIBILITY_FEATURES_MODIFY, |
| - {APIPermission::kAccessibilityFeaturesModify}, |
| - {}}, |
| - {IDS_EXTENSION_PROMPT_WARNING_ACCESSIBILITY_FEATURES_READ, |
| - {APIPermission::kAccessibilityFeaturesRead}, |
| + {IDS_EXTENSION_PROMPT_WARNING_GEOLOCATION, |
| + {APIPermission::kLocation}, |
| {}}, |
| + |
| {IDS_EXTENSION_PROMPT_WARNING_CONTENT_SETTINGS, |
| {APIPermission::kContentSettings}, |
| {}}, |
| @@ -565,10 +627,10 @@ ChromePermissionMessageRule::GetAllRules() { |
| {IDS_EXTENSION_PROMPT_WARNING_DOCUMENT_SCAN, |
| {APIPermission::kDocumentScan}, |
| {}}, |
| + {IDS_EXTENSION_PROMPT_WARNING_INTERCEPT_ALL_KEYS, |
| + {APIPermission::kInterceptAllKeys}, |
| + {}}, // TODO(treib): This should probably suppress kInput. |
| {IDS_EXTENSION_PROMPT_WARNING_INPUT, {APIPermission::kInput}, {}}, |
| - {IDS_EXTENSION_PROMPT_WARNING_GEOLOCATION, |
| - {APIPermission::kLocation}, |
| - {}}, |
| {IDS_EXTENSION_PROMPT_WARNING_MANAGEMENT, |
| {APIPermission::kManagement}, |
| {}}, |
| @@ -577,28 +639,20 @@ ChromePermissionMessageRule::GetAllRules() { |
| {APIPermission::kNativeMessaging}, |
| {}}, |
| {IDS_EXTENSION_PROMPT_WARNING_PRIVACY, {APIPermission::kPrivacy}, {}}, |
| - {IDS_EXTENSION_PROMPT_WARNING_HISTORY_READ, |
| - {APIPermission::kProcesses}, |
| - {}}, |
| {IDS_EXTENSION_PROMPT_WARNING_SIGNED_IN_DEVICES, |
| {APIPermission::kSignedInDevices}, |
| {}}, |
| {IDS_EXTENSION_PROMPT_WARNING_SYNCFILESYSTEM, |
| {APIPermission::kSyncFileSystem}, |
| {}}, |
| - {IDS_EXTENSION_PROMPT_WARNING_TOPSITES, {APIPermission::kTopSites}, {}}, |
| {IDS_EXTENSION_PROMPT_WARNING_TTS_ENGINE, |
| {APIPermission::kTtsEngine}, |
| {}}, |
| {IDS_EXTENSION_PROMPT_WARNING_WALLPAPER, {APIPermission::kWallpaper}, {}}, |
| - {IDS_EXTENSION_PROMPT_WARNING_HISTORY_READ, |
| - {APIPermission::kWebNavigation}, |
| - {}}, |
| {IDS_EXTENSION_PROMPT_WARNING_PLATFORMKEYS, |
| {APIPermission::kPlatformKeys}, |
| {}}, |
| - // Permission messages for private permissions: |
| {IDS_EXTENSION_PROMPT_WARNING_SCREENLOCK_PRIVATE, |
| {APIPermission::kScreenlockPrivate}, |
| {}}, |
| @@ -608,9 +662,6 @@ ChromePermissionMessageRule::GetAllRules() { |
| {IDS_EXTENSION_PROMPT_WARNING_EXPERIENCE_SAMPLING_PRIVATE, |
| {APIPermission::kExperienceSamplingPrivate}, |
| {}}, |
| - {IDS_EXTENSION_PROMPT_WARNING_NETWORKING_PRIVATE, |
| - {APIPermission::kNetworkingPrivate}, |
| - {}}, |
| {IDS_EXTENSION_PROMPT_WARNING_MUSIC_MANAGER_PRIVATE, |
| {APIPermission::kMusicManagerPrivate}, |
| {}}, |
| @@ -629,95 +680,6 @@ ChromePermissionMessageRule::GetAllRules() { |
| {IDS_EXTENSION_PROMPT_WARNING_USERS_PRIVATE, |
| {APIPermission::kUsersPrivate}, |
| {}}, |
| - |
| - // Platform-app permission messages. |
| - |
| - // The permission string for "fileSystem" is only shown when |
| - // "write" or "directory" is present. Read-only access is only |
| - // granted after the user has been shown a file or directory |
| - // chooser dialog and selected a file or directory. Selecting |
| - // the file or directory is considered consent to read it. |
| - {IDS_EXTENSION_PROMPT_WARNING_FILE_SYSTEM_DIRECTORY, |
| - {APIPermission::kFileSystemDirectory}, |
| - {}}, |
| - |
| - // Because warning messages for the "mediaGalleries" permission |
| - // vary based on the permissions parameters, no message ID or |
| - // message text is specified here. The message ID and text used |
| - // will be determined at run-time in the |
| - // |MediaGalleriesPermission| class. |
| - |
| - {IDS_EXTENSION_PROMPT_WARNING_INTERCEPT_ALL_KEYS, |
| - {APIPermission::kInterceptAllKeys}, |
| - {}}, |
| - |
| - {IDS_EXTENSION_PROMPT_WARNING_AUDIO_AND_VIDEO_CAPTURE, |
| - {APIPermission::kAudioCapture, APIPermission::kVideoCapture}, |
| - {}}, |
| - |
| - // Individual message rules taken from |
| - // ExtensionsAPIPermissions::GetAllPermissions(): |
| - {IDS_EXTENSION_PROMPT_WARNING_AUDIO_CAPTURE, |
| - {APIPermission::kAudioCapture}, |
| - {}}, |
| - {IDS_EXTENSION_PROMPT_WARNING_BLUETOOTH_PRIVATE, |
| - {APIPermission::kBluetoothPrivate}, |
| - {}}, |
| - {IDS_EXTENSION_PROMPT_WARNING_DECLARATIVE_WEB_REQUEST, |
| - {APIPermission::kDeclarativeWebRequest}, |
| - {}}, |
| - {IDS_EXTENSION_PROMPT_WARNING_SERIAL, {APIPermission::kSerial}, {}}, |
| - {IDS_EXTENSION_PROMPT_WARNING_NETWORKING_CONFIG, |
| - {APIPermission::kNetworkingConfig}, |
| - {}}, |
| - |
| - // Because warning messages for the "socket" permission vary based |
| - // on the permissions parameters, no message ID or message text is |
| - // specified here. The message ID and text used will be |
| - // determined at run-time in the |SocketPermission| class. |
| - {IDS_EXTENSION_PROMPT_WARNING_U2F_DEVICES, |
| - {APIPermission::kU2fDevices}, |
| - {}}, |
| - {IDS_EXTENSION_PROMPT_WARNING_VIDEO_CAPTURE, |
| - {APIPermission::kVideoCapture}, |
| - {}}, |
| - {IDS_EXTENSION_PROMPT_WARNING_VPN, {APIPermission::kVpnProvider}, {}}, |
| - {IDS_EXTENSION_PROMPT_WARNING_WEB_CONNECTABLE, |
| - {APIPermission::kWebConnectable}, |
| - {}}, |
| - |
| - // Rules from ManifestPermissions: |
| - // BluetoothManifestPermission: |
| - {IDS_EXTENSION_PROMPT_WARNING_BLUETOOTH_DEVICES, |
| - {APIPermission::kBluetoothDevices}, |
| - {}}, |
| - |
| - // SocketsManifestPermission: |
| - {IDS_EXTENSION_PROMPT_WARNING_SOCKET_ANY_HOST, |
| - {APIPermission::kSocketAnyHost}, |
| - {}}, |
| - {IDS_EXTENSION_PROMPT_WARNING_NETWORK_STATE, |
| - {APIPermission::kNetworkState}, |
| - {}}, |
| - |
| - // API permission rules: |
| - // SettingsOverrideAPIPermission: |
| - {new SingleParameterFormatter( |
| - IDS_EXTENSION_PROMPT_WARNING_HOME_PAGE_SETTING_OVERRIDE), |
| - {APIPermission::kHomepage}, |
| - {}}, |
| - {new SingleParameterFormatter( |
| - IDS_EXTENSION_PROMPT_WARNING_SEARCH_SETTINGS_OVERRIDE), |
| - {APIPermission::kSearchProvider}, |
| - {}}, |
| - {new SingleParameterFormatter( |
| - IDS_EXTENSION_PROMPT_WARNING_START_PAGE_SETTING_OVERRIDE), |
| - {APIPermission::kStartupPages}, |
| - {}}, |
| - |
| - // Other rules: |
| - // From ChromeExtensionsClient::FilterHostPermissions(): |
| - {IDS_EXTENSION_PROMPT_WARNING_FAVICON, {APIPermission::kFavicon}, {}}, |
| }; |
| return std::vector<ChromePermissionMessageRule>( |