summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authortreib <treib@chromium.org>2015-08-20 04:23:31 -0700
committerCommit bot <commit-bot@chromium.org>2015-08-20 11:24:15 +0000
commita27148197ec0834b2bd74f1467d00ced0f1e1860 (patch)
treea12cc832d2744d063fbcfbb25ba906f0e26e048b
parent3bcb0ad7800e5a00f12c8aca1a71c91ea45df915 (diff)
downloadchromium_src-a27148197ec0834b2bd74f1467d00ced0f1e1860.zip
chromium_src-a27148197ec0834b2bd74f1467d00ced0f1e1860.tar.gz
chromium_src-a27148197ec0834b2bd74f1467d00ced0f1e1860.tar.bz2
Extensions: Remove the legacy GetMessages/HasMessages
from APIPermission and ManifestPermission [This is part 4 of operation "remove the old permission message system".] BUG=398257 Review URL: https://codereview.chromium.org/1213603004 Cr-Commit-Position: refs/heads/master@{#344475}
-rw-r--r--chrome/browser/extensions/permission_messages_unittest.cc118
-rw-r--r--chrome/common/extensions/manifest_handlers/automation.cc47
-rw-r--r--chrome/common/extensions/manifest_handlers/ui_overrides_handler.cc17
-rw-r--r--chrome/common/extensions/permissions/chrome_api_permissions.cc182
-rw-r--r--chrome/common/extensions/permissions/chrome_permission_message_rules.cc5
-rw-r--r--chrome/common/extensions/permissions/permission_set_unittest.cc14
-rw-r--r--extensions/common/api/bluetooth/bluetooth_manifest_permission.cc22
-rw-r--r--extensions/common/api/bluetooth/bluetooth_manifest_permission.h2
-rw-r--r--extensions/common/api/sockets/sockets_manifest_permission.cc11
-rw-r--r--extensions/common/api/sockets/sockets_manifest_permission.h2
-rw-r--r--extensions/common/api/sockets/sockets_manifest_permission_unittest.cc2
-rw-r--r--extensions/common/permissions/api_permission.cc22
-rw-r--r--extensions/common/permissions/api_permission.h27
-rw-r--r--extensions/common/permissions/api_permission_set.cc16
-rw-r--r--extensions/common/permissions/api_permission_set.h10
-rw-r--r--extensions/common/permissions/extensions_api_permissions.cc75
-rw-r--r--extensions/common/permissions/manifest_permission.h11
-rw-r--r--extensions/common/permissions/manifest_permission_set_unittest.cc6
-rw-r--r--extensions/common/permissions/media_galleries_permission.cc8
-rw-r--r--extensions/common/permissions/media_galleries_permission.h1
-rw-r--r--extensions/common/permissions/permission_message_test_util.cc2
-rw-r--r--extensions/common/permissions/set_disjunction_permission.h2
-rw-r--r--extensions/common/permissions/settings_override_permission.cc33
-rw-r--r--extensions/common/permissions/settings_override_permission.h2
-rw-r--r--extensions/common/permissions/socket_permission.cc8
-rw-r--r--extensions/common/permissions/socket_permission.h2
-rw-r--r--extensions/common/permissions/usb_device_permission.cc7
-rw-r--r--extensions/common/permissions/usb_device_permission.h1
-rw-r--r--extensions/common/permissions/usb_device_permission_unittest.cc93
29 files changed, 189 insertions, 559 deletions
diff --git a/chrome/browser/extensions/permission_messages_unittest.cc b/chrome/browser/extensions/permission_messages_unittest.cc
index 0ddbec5..4a0aeec 100644
--- a/chrome/browser/extensions/permission_messages_unittest.cc
+++ b/chrome/browser/extensions/permission_messages_unittest.cc
@@ -3,6 +3,7 @@
// found in the LICENSE file.
#include "base/memory/scoped_ptr.h"
+#include "base/strings/utf_string_conversions.h"
#include "chrome/browser/extensions/extension_service.h"
#include "chrome/browser/extensions/permissions_updater.h"
#include "chrome/browser/extensions/test_extension_environment.h"
@@ -17,6 +18,9 @@
#include "extensions/common/manifest_handlers/permissions_parser.h"
#include "extensions/common/permissions/permission_set.h"
#include "extensions/common/permissions/permissions_data.h"
+#include "extensions/common/permissions/permissions_info.h"
+#include "extensions/common/permissions/usb_device_permission.h"
+#include "extensions/common/permissions/usb_device_permission_data.h"
#include "extensions/common/test_util.h"
#include "extensions/common/value_builder.h"
#include "testing/gtest/include/gtest/gtest.h"
@@ -43,11 +47,6 @@ class PermissionMessagesUnittest : public testing::Test {
: message_provider_(new ChromePermissionMessageProvider()) {}
~PermissionMessagesUnittest() override {}
- // Overridden from testing::Test:
- void SetUp() override {
- testing::Test::SetUp();
- }
-
protected:
void CreateAndInstallAppWithPermissions(ListBuilder& required_permissions,
ListBuilder& optional_permissions) {
@@ -254,4 +253,113 @@ TEST_F(PermissionMessagesUnittest,
active_permissions()[0]);
}
+class USBDevicePermissionMessagesTest : public testing::Test {
+ public:
+ USBDevicePermissionMessagesTest()
+ : message_provider_(new ChromePermissionMessageProvider()) {}
+ ~USBDevicePermissionMessagesTest() override {}
+
+ CoalescedPermissionMessages GetMessages(const PermissionIDSet& permissions) {
+ return message_provider_->GetPermissionMessages(permissions);
+ }
+
+ private:
+ scoped_ptr<ChromePermissionMessageProvider> message_provider_;
+};
+
+TEST_F(USBDevicePermissionMessagesTest, SingleDevice) {
+ {
+ const char kMessage[] =
+ "Access any PVR Mass Storage from HUMAX Co., Ltd. via USB";
+
+ scoped_ptr<base::ListValue> permission_list(new base::ListValue());
+ permission_list->Append(
+ UsbDevicePermissionData(0x02ad, 0x138c, -1).ToValue().release());
+
+ UsbDevicePermission permission(
+ PermissionsInfo::GetInstance()->GetByID(APIPermission::kUsbDevice));
+ ASSERT_TRUE(permission.FromValue(permission_list.get(), NULL, NULL));
+
+ CoalescedPermissionMessages messages =
+ GetMessages(permission.GetPermissions());
+ ASSERT_EQ(1U, messages.size());
+ EXPECT_EQ(base::ASCIIToUTF16(kMessage), messages.front().message());
+ }
+ {
+ const char kMessage[] = "Access USB devices from HUMAX Co., Ltd.";
+
+ scoped_ptr<base::ListValue> permission_list(new base::ListValue());
+ permission_list->Append(
+ UsbDevicePermissionData(0x02ad, 0x138d, -1).ToValue().release());
+
+ UsbDevicePermission permission(
+ PermissionsInfo::GetInstance()->GetByID(APIPermission::kUsbDevice));
+ ASSERT_TRUE(permission.FromValue(permission_list.get(), NULL, NULL));
+
+ CoalescedPermissionMessages messages =
+ GetMessages(permission.GetPermissions());
+ ASSERT_EQ(1U, messages.size());
+ EXPECT_EQ(base::ASCIIToUTF16(kMessage), messages.front().message());
+ }
+ {
+ const char kMessage[] = "Access USB devices from an unknown vendor";
+
+ scoped_ptr<base::ListValue> permission_list(new base::ListValue());
+ permission_list->Append(
+ UsbDevicePermissionData(0x02ae, 0x138d, -1).ToValue().release());
+
+ UsbDevicePermission permission(
+ PermissionsInfo::GetInstance()->GetByID(APIPermission::kUsbDevice));
+ ASSERT_TRUE(permission.FromValue(permission_list.get(), NULL, NULL));
+
+ CoalescedPermissionMessages messages =
+ GetMessages(permission.GetPermissions());
+ ASSERT_EQ(1U, messages.size());
+ EXPECT_EQ(base::ASCIIToUTF16(kMessage), messages.front().message());
+ }
+}
+
+TEST_F(USBDevicePermissionMessagesTest, MultipleDevice) {
+ const char kMessage[] = "Access any of these USB devices";
+ const char* kDetails[] = {
+ "PVR Mass Storage from HUMAX Co., Ltd.",
+ // TODO(treib): The following two should be the other way around -
+ // "unknown devices from Vendor" first, then the catch-all "devices from
+ // unknown vendor". crbug.com/522842
+ "devices from an unknown vendor",
+ "unknown devices from HUMAX Co., Ltd."
+ };
+
+ // Prepare data set
+ scoped_ptr<base::ListValue> permission_list(new base::ListValue());
+ permission_list->Append(
+ UsbDevicePermissionData(0x02ad, 0x138c, -1).ToValue().release());
+ // This device's product ID is not in Chrome's database.
+ permission_list->Append(
+ UsbDevicePermissionData(0x02ad, 0x138d, -1).ToValue().release());
+ // This additional unknown product will be collapsed into the entry above.
+ permission_list->Append(
+ UsbDevicePermissionData(0x02ad, 0x138e, -1).ToValue().release());
+ // This device's vendor ID is not in Chrome's database.
+ permission_list->Append(
+ UsbDevicePermissionData(0x02ae, 0x138d, -1).ToValue().release());
+ // This additional unknown vendor will be collapsed into the entry above.
+ permission_list->Append(
+ UsbDevicePermissionData(0x02af, 0x138d, -1).ToValue().release());
+
+ UsbDevicePermission permission(
+ PermissionsInfo::GetInstance()->GetByID(APIPermission::kUsbDevice));
+ ASSERT_TRUE(permission.FromValue(permission_list.get(), NULL, NULL));
+
+ CoalescedPermissionMessages messages =
+ GetMessages(permission.GetPermissions());
+ ASSERT_EQ(1U, messages.size());
+ EXPECT_EQ(base::ASCIIToUTF16(kMessage), messages.front().message());
+ const std::vector<base::string16>& submessages =
+ messages.front().submessages();
+ ASSERT_EQ(arraysize(kDetails), submessages.size());
+ for (size_t i = 0; i < submessages.size(); i++)
+ EXPECT_EQ(base::ASCIIToUTF16(kDetails[i]), submessages[i]);
+}
+
} // namespace extensions
diff --git a/chrome/common/extensions/manifest_handlers/automation.cc b/chrome/common/extensions/manifest_handlers/automation.cc
index 03d83c4..8ae13e1 100644
--- a/chrome/common/extensions/manifest_handlers/automation.cc
+++ b/chrome/common/extensions/manifest_handlers/automation.cc
@@ -50,10 +50,6 @@ class AutomationManifestPermission : public ManifestPermission {
PermissionIDSet GetPermissions() const override;
- bool HasMessages() const override;
-
- PermissionMessages GetMessages() const override;
-
bool FromValue(const base::Value* value) override;
scoped_ptr<base::Value> ToValue() const override;
@@ -76,10 +72,6 @@ std::string AutomationManifestPermission::id() const {
return keys::kAutomation;
}
-bool AutomationManifestPermission::HasMessages() const {
- return GetMessages().size() > 0;
-}
-
PermissionIDSet AutomationManifestPermission::GetPermissions() const {
// Meant to mimic the behavior of GetMessages().
PermissionIDSet permissions;
@@ -108,45 +100,6 @@ PermissionIDSet AutomationManifestPermission::GetPermissions() const {
return permissions;
}
-PermissionMessages AutomationManifestPermission::GetMessages() const {
- // When modifying this function, be careful to modify the functionality in
- // GetPermissions() above as well.
- PermissionMessages messages;
- if (automation_info_->desktop) {
- messages.push_back(PermissionMessage(
- PermissionMessage::kFullAccess,
- l10n_util::GetStringUTF16(IDS_EXTENSION_PROMPT_WARNING_FULL_ACCESS)));
- } else if (automation_info_->matches.MatchesAllURLs()) {
- if (automation_info_->interact) {
- messages.push_back(PermissionMessage(
- PermissionMessage::kHostsAll,
- l10n_util::GetStringUTF16(IDS_EXTENSION_PROMPT_WARNING_ALL_HOSTS)));
- } else {
- messages.push_back(PermissionMessage(
- PermissionMessage::kHostsAllReadOnly,
- l10n_util::GetStringUTF16(
- IDS_EXTENSION_PROMPT_WARNING_ALL_HOSTS_READ_ONLY)));
- }
- } else {
- URLPatternSet regular_hosts;
- std::set<PermissionMessage> message_set;
- ExtensionsClient::Get()->FilterHostPermissions(
- automation_info_->matches, &regular_hosts, &message_set);
- messages.insert(messages.end(), message_set.begin(), message_set.end());
-
- std::set<std::string> hosts =
- permission_message_util::GetDistinctHosts(regular_hosts, true, true);
- if (!hosts.empty()) {
- messages.push_back(permission_message_util::CreateFromHostList(
- hosts,
- automation_info_->interact ? permission_message_util::kReadWrite
- : permission_message_util::kReadOnly));
- }
- }
-
- return messages;
-}
-
bool AutomationManifestPermission::FromValue(const base::Value* value) {
base::string16 error;
automation_info_.reset(AutomationInfo::FromValue(*value,
diff --git a/chrome/common/extensions/manifest_handlers/ui_overrides_handler.cc b/chrome/common/extensions/manifest_handlers/ui_overrides_handler.cc
index 84120a2..e5da7fa 100644
--- a/chrome/common/extensions/manifest_handlers/ui_overrides_handler.cc
+++ b/chrome/common/extensions/manifest_handlers/ui_overrides_handler.cc
@@ -45,23 +45,6 @@ class UIOverridesHandler::ManifestPermissionImpl : public ManifestPermission {
return permissions;
}
- bool HasMessages() const override {
- return override_bookmarks_ui_permission_;
- }
-
- PermissionMessages GetMessages() const override {
- // When making changes to this function, be careful to modify
- // GetPermissions() above to have the same behaviour.
- PermissionMessages result;
- if (override_bookmarks_ui_permission_) {
- result.push_back(PermissionMessage(
- PermissionMessage::kOverrideBookmarksUI,
- l10n_util::GetStringUTF16(
- IDS_EXTENSION_PROMPT_WARNING_OVERRIDE_BOOKMARKS_UI)));
- }
- return result;
- }
-
bool FromValue(const base::Value* value) override {
return value && value->GetAsBoolean(&override_bookmarks_ui_permission_);
}
diff --git a/chrome/common/extensions/permissions/chrome_api_permissions.cc b/chrome/common/extensions/permissions/chrome_api_permissions.cc
index b172bf6..901d6fd 100644
--- a/chrome/common/extensions/permissions/chrome_api_permissions.cc
+++ b/chrome/common/extensions/permissions/chrome_api_permissions.cc
@@ -30,39 +30,24 @@ std::vector<APIPermissionInfo*> ChromeAPIPermissions::GetAllPermissions()
// WARNING: If you are modifying a permission message in this list, be sure to
// add the corresponding permission message rule to
// ChromePermissionMessageProvider::GetCoalescedPermissionMessages as well.
- // TODO(sashab): Remove all permission messages from this list, once
- // GetCoalescedPermissionMessages() is the only way of generating permission
- // messages.
APIPermissionInfo::InitInfo permissions_to_register[] = {
// Register permissions for all extension types.
{APIPermission::kBackground, "background"},
{APIPermission::kDeclarativeContent, "declarativeContent"},
- {APIPermission::kDesktopCapture, "desktopCapture",
- APIPermissionInfo::kFlagNone,
- IDS_EXTENSION_PROMPT_WARNING_DESKTOP_CAPTURE,
- PermissionMessage::kDesktopCapture},
+ {APIPermission::kDesktopCapture, "desktopCapture"},
{APIPermission::kDesktopCapturePrivate, "desktopCapturePrivate"},
- {APIPermission::kDownloads, "downloads", APIPermissionInfo::kFlagNone,
- IDS_EXTENSION_PROMPT_WARNING_DOWNLOADS, PermissionMessage::kDownloads},
- {APIPermission::kDownloadsOpen, "downloads.open",
- APIPermissionInfo::kFlagNone,
- IDS_EXTENSION_PROMPT_WARNING_DOWNLOADS_OPEN,
- PermissionMessage::kDownloadsOpen},
+ {APIPermission::kDownloads, "downloads"},
+ {APIPermission::kDownloadsOpen, "downloads.open"},
{APIPermission::kDownloadsShelf, "downloads.shelf"},
{APIPermission::kEasyUnlockPrivate, "easyUnlockPrivate"},
{APIPermission::kIdentity, "identity"},
- {APIPermission::kIdentityEmail, "identity.email",
- APIPermissionInfo::kFlagNone,
- IDS_EXTENSION_PROMPT_WARNING_IDENTITY_EMAIL,
- PermissionMessage::kIdentityEmail},
+ {APIPermission::kIdentityEmail, "identity.email"},
{APIPermission::kExperimental, "experimental",
APIPermissionInfo::kFlagCannotBeOptional},
{APIPermission::kEmbeddedExtensionOptions, "embeddedExtensionOptions",
APIPermissionInfo::kFlagCannotBeOptional},
{APIPermission::kGeolocation, "geolocation",
- APIPermissionInfo::kFlagCannotBeOptional,
- IDS_EXTENSION_PROMPT_WARNING_GEOLOCATION,
- PermissionMessage::kGeolocation},
+ APIPermissionInfo::kFlagCannotBeOptional},
{APIPermission::kNotifications, "notifications"},
{APIPermission::kGcdPrivate, "gcdPrivate"},
{APIPermission::kGcm, "gcm"},
@@ -70,30 +55,20 @@ std::vector<APIPermissionInfo*> ChromeAPIPermissions::GetAllPermissions()
// Register extension permissions.
{APIPermission::kAccessibilityFeaturesModify,
- "accessibilityFeatures.modify", APIPermissionInfo::kFlagNone,
- IDS_EXTENSION_PROMPT_WARNING_ACCESSIBILITY_FEATURES_MODIFY,
- PermissionMessage::kAccessibilityFeaturesModify},
- {APIPermission::kAccessibilityFeaturesRead, "accessibilityFeatures.read",
- APIPermissionInfo::kFlagNone,
- IDS_EXTENSION_PROMPT_WARNING_ACCESSIBILITY_FEATURES_READ,
- PermissionMessage::kAccessibilityFeaturesRead},
+ "accessibilityFeatures.modify"},
+ {APIPermission::kAccessibilityFeaturesRead, "accessibilityFeatures.read"},
{APIPermission::kAccessibilityPrivate, "accessibilityPrivate",
APIPermissionInfo::kFlagCannotBeOptional},
{APIPermission::kActiveTab, "activeTab"},
{APIPermission::kAudioModem, "audioModem"},
- {APIPermission::kBookmark, "bookmarks", APIPermissionInfo::kFlagNone,
- IDS_EXTENSION_PROMPT_WARNING_BOOKMARKS, PermissionMessage::kBookmarks},
+ {APIPermission::kBookmark, "bookmarks"},
{APIPermission::kBrailleDisplayPrivate, "brailleDisplayPrivate",
APIPermissionInfo::kFlagCannotBeOptional},
{APIPermission::kBrowsingData, "browsingData"},
- {APIPermission::kContentSettings, "contentSettings",
- APIPermissionInfo::kFlagNone,
- IDS_EXTENSION_PROMPT_WARNING_CONTENT_SETTINGS,
- PermissionMessage::kContentSettings},
+ {APIPermission::kContentSettings, "contentSettings"},
{APIPermission::kContextMenus, "contextMenus"},
{APIPermission::kCookie, "cookies"},
- {APIPermission::kCopresence, "copresence", APIPermissionInfo::kFlagNone,
- IDS_EXTENSION_PROMPT_WARNING_COPRESENCE, PermissionMessage::kCopresence},
+ {APIPermission::kCopresence, "copresence"},
{APIPermission::kCopresencePrivate, "copresencePrivate"},
{APIPermission::kCryptotokenPrivate, "cryptotokenPrivate"},
{APIPermission::kDataReductionProxy, "dataReductionProxy",
@@ -106,64 +81,34 @@ std::vector<APIPermissionInfo*> ChromeAPIPermissions::GetAllPermissions()
APIPermissionInfo::kFlagCannotBeOptional},
{APIPermission::kFontSettings, "fontSettings",
APIPermissionInfo::kFlagCannotBeOptional},
- {APIPermission::kHistory, "history", APIPermissionInfo::kFlagNone,
- IDS_EXTENSION_PROMPT_WARNING_HISTORY_WRITE,
- PermissionMessage::kBrowsingHistory},
+ {APIPermission::kHistory, "history"},
{APIPermission::kIdltest, "idltest"},
- {APIPermission::kInput, "input", APIPermissionInfo::kFlagNone,
- IDS_EXTENSION_PROMPT_WARNING_INPUT, PermissionMessage::kInput},
+ {APIPermission::kInput, "input"},
{APIPermission::kLocation, "location",
- APIPermissionInfo::kFlagCannotBeOptional,
- IDS_EXTENSION_PROMPT_WARNING_GEOLOCATION,
- PermissionMessage::kGeolocation},
- {APIPermission::kManagement, "management", APIPermissionInfo::kFlagNone,
- IDS_EXTENSION_PROMPT_WARNING_MANAGEMENT, PermissionMessage::kManagement},
- {APIPermission::kMDns, "mdns", APIPermissionInfo::kFlagCannotBeOptional,
- IDS_EXTENSION_PROMPT_WARNING_MDNS, PermissionMessage::kMDns},
- {APIPermission::kNativeMessaging, "nativeMessaging",
- APIPermissionInfo::kFlagNone,
- IDS_EXTENSION_PROMPT_WARNING_NATIVE_MESSAGING,
- PermissionMessage::kNativeMessaging},
- {APIPermission::kPlatformKeys, "platformKeys",
- APIPermissionInfo::kFlagNone, IDS_EXTENSION_PROMPT_WARNING_PLATFORMKEYS,
- PermissionMessage::kPlatformKeys},
- {APIPermission::kPrivacy, "privacy", APIPermissionInfo::kFlagNone,
- IDS_EXTENSION_PROMPT_WARNING_PRIVACY, PermissionMessage::kPrivacy},
- {APIPermission::kProcesses, "processes", APIPermissionInfo::kFlagNone,
- IDS_EXTENSION_PROMPT_WARNING_HISTORY_READ, PermissionMessage::kTabs},
+ APIPermissionInfo::kFlagCannotBeOptional},
+ {APIPermission::kManagement, "management"},
+ {APIPermission::kMDns, "mdns", APIPermissionInfo::kFlagCannotBeOptional},
+ {APIPermission::kNativeMessaging, "nativeMessaging"},
+ {APIPermission::kPlatformKeys, "platformKeys"},
+ {APIPermission::kPrivacy, "privacy"},
+ {APIPermission::kProcesses, "processes"},
{APIPermission::kSessions, "sessions"},
- {APIPermission::kSignedInDevices, "signedInDevices",
- APIPermissionInfo::kFlagNone,
- IDS_EXTENSION_PROMPT_WARNING_SIGNED_IN_DEVICES,
- PermissionMessage::kSignedInDevices},
- {APIPermission::kSyncFileSystem, "syncFileSystem",
- APIPermissionInfo::kFlagNone,
- IDS_EXTENSION_PROMPT_WARNING_SYNCFILESYSTEM,
- PermissionMessage::kSyncFileSystem},
- {APIPermission::kTab, "tabs", APIPermissionInfo::kFlagNone,
- IDS_EXTENSION_PROMPT_WARNING_HISTORY_READ, PermissionMessage::kTabs},
- {APIPermission::kTopSites, "topSites", APIPermissionInfo::kFlagNone,
- IDS_EXTENSION_PROMPT_WARNING_TOPSITES, PermissionMessage::kTopSites},
- {APIPermission::kTts, "tts", 0, APIPermissionInfo::kFlagCannotBeOptional},
+ {APIPermission::kSignedInDevices, "signedInDevices"},
+ {APIPermission::kSyncFileSystem, "syncFileSystem"},
+ {APIPermission::kTab, "tabs"},
+ {APIPermission::kTopSites, "topSites"},
+ {APIPermission::kTts, "tts", APIPermissionInfo::kFlagCannotBeOptional},
{APIPermission::kTtsEngine, "ttsEngine",
- APIPermissionInfo::kFlagCannotBeOptional,
- IDS_EXTENSION_PROMPT_WARNING_TTS_ENGINE, PermissionMessage::kTtsEngine},
+ APIPermissionInfo::kFlagCannotBeOptional},
{APIPermission::kWallpaper, "wallpaper",
- APIPermissionInfo::kFlagCannotBeOptional,
- IDS_EXTENSION_PROMPT_WARNING_WALLPAPER, PermissionMessage::kWallpaper},
- {APIPermission::kWebNavigation, "webNavigation",
- APIPermissionInfo::kFlagNone, IDS_EXTENSION_PROMPT_WARNING_HISTORY_READ,
- PermissionMessage::kTabs},
+ APIPermissionInfo::kFlagCannotBeOptional},
+ {APIPermission::kWebNavigation, "webNavigation"},
// Register private permissions.
{APIPermission::kScreenlockPrivate, "screenlockPrivate",
- APIPermissionInfo::kFlagCannotBeOptional,
- IDS_EXTENSION_PROMPT_WARNING_SCREENLOCK_PRIVATE,
- PermissionMessage::kScreenlockPrivate},
+ APIPermissionInfo::kFlagCannotBeOptional},
{APIPermission::kActivityLogPrivate, "activityLogPrivate",
- APIPermissionInfo::kFlagCannotBeOptional,
- IDS_EXTENSION_PROMPT_WARNING_ACTIVITY_LOG_PRIVATE,
- PermissionMessage::kActivityLogPrivate},
+ APIPermissionInfo::kFlagCannotBeOptional},
{APIPermission::kAutoTestPrivate, "autotestPrivate",
APIPermissionInfo::kFlagCannotBeOptional},
{APIPermission::kBookmarkManagerPrivate, "bookmarkManagerPrivate",
@@ -180,9 +125,7 @@ std::vector<APIPermissionInfo*> ChromeAPIPermissions::GetAllPermissions()
{APIPermission::kDial, "dial", APIPermissionInfo::kFlagCannotBeOptional},
{APIPermission::kDownloadsInternal, "downloadsInternal"},
{APIPermission::kExperienceSamplingPrivate, "experienceSamplingPrivate",
- APIPermissionInfo::kFlagCannotBeOptional,
- IDS_EXTENSION_PROMPT_WARNING_EXPERIENCE_SAMPLING_PRIVATE,
- PermissionMessage::kExperienceSamplingPrivate},
+ APIPermissionInfo::kFlagCannotBeOptional},
{APIPermission::kFileBrowserHandlerInternal, "fileBrowserHandlerInternal",
APIPermissionInfo::kFlagCannotBeOptional},
{APIPermission::kFileManagerPrivate, "fileManagerPrivate",
@@ -201,9 +144,7 @@ std::vector<APIPermissionInfo*> ChromeAPIPermissions::GetAllPermissions()
{APIPermission::kMetricsPrivate, "metricsPrivate",
APIPermissionInfo::kFlagCannotBeOptional},
{APIPermission::kMusicManagerPrivate, "musicManagerPrivate",
- APIPermissionInfo::kFlagCannotBeOptional,
- IDS_EXTENSION_PROMPT_WARNING_MUSIC_MANAGER_PRIVATE,
- PermissionMessage::kMusicManagerPrivate},
+ APIPermissionInfo::kFlagCannotBeOptional},
{APIPermission::kPreferencesPrivate, "preferencesPrivate",
APIPermissionInfo::kFlagCannotBeOptional},
{APIPermission::kSystemPrivate, "systemPrivate",
@@ -247,35 +188,24 @@ std::vector<APIPermissionInfo*> ChromeAPIPermissions::GetAllPermissions()
APIPermissionInfo::kFlagCannotBeOptional},
{APIPermission::kInlineInstallPrivate, "inlineInstallPrivate"},
{APIPermission::kSettingsPrivate, "settingsPrivate",
- APIPermissionInfo::kFlagCannotBeOptional,
- IDS_EXTENSION_PROMPT_WARNING_SETTINGS_PRIVATE,
- PermissionMessage::kSettingsPrivate},
+ APIPermissionInfo::kFlagCannotBeOptional},
{APIPermission::kSearchEnginesPrivate, "searchEnginesPrivate",
- APIPermissionInfo::kFlagCannotBeOptional,
- IDS_EXTENSION_PROMPT_WARNING_SEARCH_ENGINES_PRIVATE,
- PermissionMessage::kSearchEnginesPrivate},
+ APIPermissionInfo::kFlagCannotBeOptional},
{APIPermission::kAutofillPrivate, "autofillPrivate",
- APIPermissionInfo::kFlagCannotBeOptional,
- IDS_EXTENSION_PROMPT_WARNING_AUTOFILL_PRIVATE,
- PermissionMessage::kAutofillPrivate},
+ APIPermissionInfo::kFlagCannotBeOptional},
{APIPermission::kWebstoreWidgetPrivate, "webstoreWidgetPrivate",
APIPermissionInfo::kFlagCannotBeOptional},
{APIPermission::kPasswordsPrivate, "passwordsPrivate",
- APIPermissionInfo::kFlagCannotBeOptional,
- IDS_EXTENSION_PROMPT_WARNING_PASSWORDS_PRIVATE,
- PermissionMessage::kPasswordsPrivate},
+ APIPermissionInfo::kFlagCannotBeOptional},
{APIPermission::kUsersPrivate, "usersPrivate",
- APIPermissionInfo::kFlagCannotBeOptional,
- IDS_EXTENSION_PROMPT_WARNING_USERS_PRIVATE,
- PermissionMessage::kUsersPrivate},
+ APIPermissionInfo::kFlagCannotBeOptional},
{APIPermission::kLanguageSettingsPrivate, "languageSettingsPrivate",
APIPermissionInfo::kFlagCannotBeOptional},
// Full url access permissions.
{APIPermission::kDebugger, "debugger",
APIPermissionInfo::kFlagImpliesFullURLAccess |
- APIPermissionInfo::kFlagCannotBeOptional,
- IDS_EXTENSION_PROMPT_WARNING_DEBUGGER, PermissionMessage::kDebugger},
+ APIPermissionInfo::kFlagCannotBeOptional},
{APIPermission::kDevtools, "devtools",
APIPermissionInfo::kFlagImpliesFullURLAccess |
APIPermissionInfo::kFlagCannotBeOptional |
@@ -290,9 +220,7 @@ std::vector<APIPermissionInfo*> ChromeAPIPermissions::GetAllPermissions()
APIPermissionInfo::kFlagImpliesFullURLAccess |
APIPermissionInfo::kFlagImpliesFullAccess |
APIPermissionInfo::kFlagCannotBeOptional |
- APIPermissionInfo::kFlagInternal,
- IDS_EXTENSION_PROMPT_WARNING_FULL_ACCESS,
- PermissionMessage::kFullAccess},
+ APIPermissionInfo::kFlagInternal},
{APIPermission::kProxy, "proxy",
APIPermissionInfo::kFlagImpliesFullURLAccess |
APIPermissionInfo::kFlagCannotBeOptional},
@@ -305,52 +233,32 @@ std::vector<APIPermissionInfo*> ChromeAPIPermissions::GetAllPermissions()
// chooser dialog and selected a file or directory. Selecting
// the file or directory is considered consent to read it.
{APIPermission::kFileSystem, "fileSystem"},
- {APIPermission::kFileSystemDirectory, "fileSystem.directory",
- APIPermissionInfo::kFlagNone,
- IDS_EXTENSION_PROMPT_WARNING_FILE_SYSTEM_DIRECTORY,
- PermissionMessage::kFileSystemDirectory},
+ {APIPermission::kFileSystemDirectory, "fileSystem.directory"},
{APIPermission::kFileSystemProvider, "fileSystemProvider"},
{APIPermission::kFileSystemRequestFileSystem,
"fileSystem.requestFileSystem"},
{APIPermission::kFileSystemRetainEntries, "fileSystem.retainEntries"},
{APIPermission::kFileSystemWrite, "fileSystem.write"},
- {APIPermission::kFileSystemWriteDirectory, "fileSystem.writeDirectory",
- APIPermissionInfo::kFlagNone,
- IDS_EXTENSION_PROMPT_WARNING_FILE_SYSTEM_WRITE_DIRECTORY,
- PermissionMessage::kFileSystemWriteDirectory},
- // 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.
+ {APIPermission::kFileSystemWriteDirectory, "fileSystem.writeDirectory"},
{APIPermission::kMediaGalleries, "mediaGalleries",
- APIPermissionInfo::kFlagNone, 0, PermissionMessage::kNone,
+ APIPermissionInfo::kFlagNone,
&CreateAPIPermission<MediaGalleriesPermission>},
{APIPermission::kPointerLock, "pointerLock"},
{APIPermission::kCastStreaming, "cast.streaming"},
{APIPermission::kBrowser, "browser"},
- {APIPermission::kInterceptAllKeys, "app.window.interceptAllKeys",
- APIPermissionInfo::kFlagNone,
- IDS_EXTENSION_PROMPT_WARNING_INTERCEPT_ALL_KEYS,
- PermissionMessage::kInterceptAllKeys},
+ {APIPermission::kInterceptAllKeys, "app.window.interceptAllKeys"},
{APIPermission::kLauncherSearchProvider, "launcherSearchProvider"},
// Settings override permissions.
{APIPermission::kHomepage, "homepage",
APIPermissionInfo::kFlagCannotBeOptional |
- APIPermissionInfo::kFlagInternal,
- IDS_EXTENSION_PROMPT_WARNING_HOME_PAGE_SETTING_OVERRIDE,
- PermissionMessage::kHomepage},
+ APIPermissionInfo::kFlagInternal},
{APIPermission::kSearchProvider, "searchProvider",
APIPermissionInfo::kFlagCannotBeOptional |
- APIPermissionInfo::kFlagInternal,
- IDS_EXTENSION_PROMPT_WARNING_SEARCH_SETTINGS_OVERRIDE,
- PermissionMessage::kSearchProvider},
+ APIPermissionInfo::kFlagInternal},
{APIPermission::kStartupPages, "startupPages",
APIPermissionInfo::kFlagCannotBeOptional |
- APIPermissionInfo::kFlagInternal,
- IDS_EXTENSION_PROMPT_WARNING_START_PAGE_SETTING_OVERRIDE,
- PermissionMessage::kStartupPages},
+ APIPermissionInfo::kFlagInternal},
};
std::vector<APIPermissionInfo*> permissions;
diff --git a/chrome/common/extensions/permissions/chrome_permission_message_rules.cc b/chrome/common/extensions/permissions/chrome_permission_message_rules.cc
index e172efc..7576d83 100644
--- a/chrome/common/extensions/permissions/chrome_permission_message_rules.cc
+++ b/chrome/common/extensions/permissions/chrome_permission_message_rules.cc
@@ -304,7 +304,7 @@ ChromePermissionMessageRule::GetAllRules() {
// TODO(sashab, reillyg): Rework the permission message logic for USB
// devices to generate more meaningful messages and better fit the current
// rules system. Maybe model it similarly to host or socket permissions
- // above.
+ // above. crbug.com/522842
{new SingleParameterFormatter(IDS_EXTENSION_PROMPT_WARNING_USB_DEVICE),
{APIPermission::kUsbDevice},
{}},
@@ -566,6 +566,9 @@ ChromePermissionMessageRule::GetAllRules() {
{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
diff --git a/chrome/common/extensions/permissions/permission_set_unittest.cc b/chrome/common/extensions/permissions/permission_set_unittest.cc
index c77cc6b..e62a510 100644
--- a/chrome/common/extensions/permissions/permission_set_unittest.cc
+++ b/chrome/common/extensions/permissions/permission_set_unittest.cc
@@ -840,12 +840,12 @@ TEST(PermissionsTest, PermissionMessages) {
skip.insert(APIPermission::kFileSystemWrite);
skip.insert(APIPermission::kSocket);
skip.insert(APIPermission::kUsb);
- skip.insert(APIPermission::kUsbDevice);
skip.insert(APIPermission::kLauncherSearchProvider);
// We already have a generic message for declaring externally_connectable.
skip.insert(APIPermission::kExternallyConnectableAllUrls);
+ const PermissionMessageProvider* provider = PermissionMessageProvider::Get();
PermissionsInfo* info = PermissionsInfo::GetInstance();
APIPermissionSet permissions = info->GetAll();
for (APIPermissionSet::const_iterator i = permissions.begin();
@@ -853,13 +853,11 @@ TEST(PermissionsTest, PermissionMessages) {
const APIPermissionInfo* permission_info = i->info();
EXPECT_TRUE(permission_info != NULL);
- if (skip.count(i->id())) {
- EXPECT_EQ(PermissionMessage::kNone, permission_info->message_id())
- << "unexpected message_id for " << permission_info->name();
- } else {
- EXPECT_NE(PermissionMessage::kNone, permission_info->message_id())
- << "missing message_id for " << permission_info->name();
- }
+ PermissionIDSet id;
+ id.insert(permission_info->id());
+ bool has_message = !provider->GetPermissionMessages(id).empty();
+ bool should_have_message = !skip.count(i->id());
+ EXPECT_EQ(should_have_message, has_message) << permission_info->name();
}
}
diff --git a/extensions/common/api/bluetooth/bluetooth_manifest_permission.cc b/extensions/common/api/bluetooth/bluetooth_manifest_permission.cc
index 9b2e7a3..ceab6e7 100644
--- a/extensions/common/api/bluetooth/bluetooth_manifest_permission.cc
+++ b/extensions/common/api/bluetooth/bluetooth_manifest_permission.cc
@@ -141,28 +141,6 @@ PermissionIDSet BluetoothManifestPermission::GetPermissions() const {
return permissions;
}
-bool BluetoothManifestPermission::HasMessages() const { return true; }
-
-PermissionMessages BluetoothManifestPermission::GetMessages() const {
- // When modifying this function, be careful to also modify GetPermissions()
- // above to have the same functionality.
- DCHECK(HasMessages());
- PermissionMessages result;
-
- result.push_back(PermissionMessage(
- PermissionMessage::kBluetooth,
- l10n_util::GetStringUTF16(IDS_EXTENSION_PROMPT_WARNING_BLUETOOTH)));
-
- if (!uuids_.empty()) {
- result.push_back(
- PermissionMessage(PermissionMessage::kBluetoothDevices,
- l10n_util::GetStringUTF16(
- IDS_EXTENSION_PROMPT_WARNING_BLUETOOTH_DEVICES)));
- }
-
- return result;
-}
-
bool BluetoothManifestPermission::FromValue(const base::Value* value) {
if (!value)
return false;
diff --git a/extensions/common/api/bluetooth/bluetooth_manifest_permission.h b/extensions/common/api/bluetooth/bluetooth_manifest_permission.h
index bbf5d3a..d72b226 100644
--- a/extensions/common/api/bluetooth/bluetooth_manifest_permission.h
+++ b/extensions/common/api/bluetooth/bluetooth_manifest_permission.h
@@ -45,8 +45,6 @@ class BluetoothManifestPermission : public ManifestPermission {
std::string name() const override;
std::string id() const override;
PermissionIDSet GetPermissions() const override;
- bool HasMessages() const override;
- PermissionMessages GetMessages() const override;
bool FromValue(const base::Value* value) override;
scoped_ptr<base::Value> ToValue() const override;
ManifestPermission* Diff(const ManifestPermission* rhs) const override;
diff --git a/extensions/common/api/sockets/sockets_manifest_permission.cc b/extensions/common/api/sockets/sockets_manifest_permission.cc
index dccb793..a37267a 100644
--- a/extensions/common/api/sockets/sockets_manifest_permission.cc
+++ b/extensions/common/api/sockets/sockets_manifest_permission.cc
@@ -272,17 +272,6 @@ PermissionIDSet SocketsManifestPermission::GetPermissions() const {
return ids;
}
-bool SocketsManifestPermission::HasMessages() const {
- bool is_empty = permissions_.empty();
- return !is_empty;
-}
-
-PermissionMessages SocketsManifestPermission::GetMessages() const {
- PermissionMessages messages;
- AddSocketHostPermissions(permissions_, NULL, &messages);
- return messages;
-}
-
bool SocketsManifestPermission::FromValue(const base::Value* value) {
if (!value)
return false;
diff --git a/extensions/common/api/sockets/sockets_manifest_permission.h b/extensions/common/api/sockets/sockets_manifest_permission.h
index b6636d2..324acd6 100644
--- a/extensions/common/api/sockets/sockets_manifest_permission.h
+++ b/extensions/common/api/sockets/sockets_manifest_permission.h
@@ -44,8 +44,6 @@ class SocketsManifestPermission : public ManifestPermission {
std::string name() const override;
std::string id() const override;
PermissionIDSet GetPermissions() const override;
- bool HasMessages() const override;
- PermissionMessages GetMessages() const override;
bool FromValue(const base::Value* value) override;
scoped_ptr<base::Value> ToValue() const override;
ManifestPermission* Diff(const ManifestPermission* rhs) const override;
diff --git a/extensions/common/api/sockets/sockets_manifest_permission_unittest.cc b/extensions/common/api/sockets/sockets_manifest_permission_unittest.cc
index 4b2dbcf..ad5ba16 100644
--- a/extensions/common/api/sockets/sockets_manifest_permission_unittest.cc
+++ b/extensions/common/api/sockets/sockets_manifest_permission_unittest.cc
@@ -34,7 +34,7 @@ static void AssertEmptyPermission(const SocketsManifestPermission* permission) {
EXPECT_TRUE(permission);
EXPECT_EQ(std::string(extensions::manifest_keys::kSockets), permission->id());
EXPECT_EQ(permission->id(), permission->name());
- EXPECT_FALSE(permission->HasMessages());
+ EXPECT_TRUE(permission->GetPermissions().empty());
EXPECT_EQ(0u, permission->entries().size());
}
diff --git a/extensions/common/permissions/api_permission.cc b/extensions/common/permissions/api_permission.cc
index 7d8f04e..70b71ce 100644
--- a/extensions/common/permissions/api_permission.cc
+++ b/extensions/common/permissions/api_permission.cc
@@ -27,17 +27,6 @@ class SimpleAPIPermission : public APIPermission {
return permissions;
}
- bool HasMessages() const override {
- return info()->message_id() > PermissionMessage::kNone;
- }
-
- PermissionMessages GetMessages() const override {
- DCHECK(HasMessages());
- PermissionMessages result;
- result.push_back(GetMessage_());
- return result;
- }
-
bool Check(const APIPermission::CheckParam* param) const override {
return !param;
}
@@ -110,10 +99,6 @@ const char* APIPermission::name() const {
return info()->name();
}
-PermissionMessage APIPermission::GetMessage_() const {
- return info()->GetMessage_();
-}
-
//
// APIPermissionInfo
//
@@ -122,8 +107,6 @@ APIPermissionInfo::APIPermissionInfo(const APIPermissionInfo::InitInfo& info)
: id_(info.id),
name_(info.name),
flags_(info.flags),
- l10n_message_id_(info.l10n_message_id),
- message_id_(info.message_id ? info.message_id : PermissionMessage::kNone),
api_permission_constructor_(info.constructor) {
}
@@ -134,9 +117,4 @@ APIPermission* APIPermissionInfo::CreateAPIPermission() const {
api_permission_constructor_(this) : new SimpleAPIPermission(this);
}
-PermissionMessage APIPermissionInfo::GetMessage_() const {
- return PermissionMessage(
- message_id_, l10n_util::GetStringUTF16(l10n_message_id_));
-}
-
} // namespace extensions
diff --git a/extensions/common/permissions/api_permission.h b/extensions/common/permissions/api_permission.h
index bf25a1b..8600454 100644
--- a/extensions/common/permissions/api_permission.h
+++ b/extensions/common/permissions/api_permission.h
@@ -5,7 +5,6 @@
#ifndef EXTENSIONS_COMMON_PERMISSIONS_API_PERMISSION_H_
#define EXTENSIONS_COMMON_PERMISSIONS_API_PERMISSION_H_
-#include <map>
#include <set>
#include <string>
#include <vector>
@@ -288,14 +287,6 @@ class APIPermission {
// ChromePermissionMessageProvider.
virtual PermissionIDSet GetPermissions() const = 0;
- // Returns true if this permission has any PermissionMessages.
- // TODO(sashab): Deprecate this in favor of GetPermissions() above.
- virtual bool HasMessages() const = 0;
-
- // Returns the localized permission messages of this permission.
- // TODO(sashab): Deprecate this in favor of GetPermissions() above.
- virtual PermissionMessages GetMessages() const = 0;
-
// Returns true if the given permission is allowed.
virtual bool Check(const CheckParam* param) const = 0;
@@ -339,11 +330,6 @@ class APIPermission {
// Logs this permission.
virtual void Log(std::string* log) const = 0;
- protected:
- // Returns the localized permission message associated with this api.
- // Use GetMessage_ to avoid name conflict with macro GetMessage on Windows.
- PermissionMessage GetMessage_() const;
-
private:
const APIPermissionInfo* const info_;
};
@@ -388,11 +374,6 @@ class APIPermissionInfo {
APIPermission::ID id() const { return id_; }
- // Returns the message id associated with this permission.
- PermissionMessage::ID message_id() const {
- return message_id_;
- }
-
// Returns the name of this permission.
const char* name() const { return name_; }
@@ -440,22 +421,14 @@ class APIPermissionInfo {
APIPermission::ID id;
const char* name;
int flags;
- int l10n_message_id;
- PermissionMessage::ID message_id;
APIPermissionInfo::APIPermissionConstructor constructor;
};
explicit APIPermissionInfo(const InitInfo& info);
- // Returns the localized permission message associated with this api.
- // Use GetMessage_ to avoid name conflict with macro GetMessage on Windows.
- PermissionMessage GetMessage_() const;
-
const APIPermission::ID id_;
const char* const name_;
const int flags_;
- const int l10n_message_id_;
- const PermissionMessage::ID message_id_;
const APIPermissionConstructor api_permission_constructor_;
};
diff --git a/extensions/common/permissions/api_permission_set.cc b/extensions/common/permissions/api_permission_set.cc
index 562c730..82d2faa 100644
--- a/extensions/common/permissions/api_permission_set.cc
+++ b/extensions/common/permissions/api_permission_set.cc
@@ -212,7 +212,7 @@ PermissionIDSet::~PermissionIDSet() {
}
void PermissionIDSet::insert(APIPermission::ID permission_id) {
- permissions_.insert(PermissionID(permission_id, base::string16()));
+ insert(permission_id, base::string16());
}
void PermissionIDSet::insert(APIPermission::ID permission_id,
@@ -280,20 +280,6 @@ PermissionIDSet PermissionIDSet::Difference(const PermissionIDSet& set_1,
set_1.permissions_, set_2.permissions_));
}
-// static
-PermissionIDSet PermissionIDSet::Intersection(const PermissionIDSet& set_1,
- const PermissionIDSet& set_2) {
- return PermissionIDSet(base::STLSetIntersection<std::set<PermissionID>>(
- set_1.permissions_, set_2.permissions_));
-}
-
-// static
-PermissionIDSet PermissionIDSet::Union(const PermissionIDSet& set_1,
- const PermissionIDSet& set_2) {
- return PermissionIDSet(base::STLSetUnion<std::set<PermissionID>>(
- set_1.permissions_, set_2.permissions_));
-}
-
size_t PermissionIDSet::size() const {
return permissions_.size();
}
diff --git a/extensions/common/permissions/api_permission_set.h b/extensions/common/permissions/api_permission_set.h
index f96c50e..476ad13 100644
--- a/extensions/common/permissions/api_permission_set.h
+++ b/extensions/common/permissions/api_permission_set.h
@@ -5,7 +5,11 @@
#ifndef EXTENSIONS_COMMON_PERMISSIONS_API_PERMISSION_SET_H_
#define EXTENSIONS_COMMON_PERMISSIONS_API_PERMISSION_SET_H_
+#include <set>
+#include <string>
+#include <vector>
+#include "base/strings/string16.h"
#include "extensions/common/permissions/api_permission.h"
#include "extensions/common/permissions/base_set_operators.h"
@@ -136,15 +140,11 @@ class PermissionIDSet {
PermissionIDSet GetAllPermissionsWithIDs(
const std::set<APIPermission::ID>& permission_ids) const;
- // Convenience functions that call their stl_util counterparts.
+ // Convenience functions for common set operations.
bool Includes(const PermissionIDSet& subset) const;
bool Equals(const PermissionIDSet& set) const;
static PermissionIDSet Difference(const PermissionIDSet& set_1,
const PermissionIDSet& set_2);
- static PermissionIDSet Intersection(const PermissionIDSet& set_1,
- const PermissionIDSet& set_2);
- static PermissionIDSet Union(const PermissionIDSet& set_1,
- const PermissionIDSet& set_2);
size_t size() const;
bool empty() const;
diff --git a/extensions/common/permissions/extensions_api_permissions.cc b/extensions/common/permissions/extensions_api_permissions.cc
index 3b21c61..6977f8f 100644
--- a/extensions/common/permissions/extensions_api_permissions.cc
+++ b/extensions/common/permissions/extensions_api_permissions.cc
@@ -33,9 +33,6 @@ std::vector<APIPermissionInfo*> ExtensionsAPIPermissions::GetAllPermissions()
// WARNING: If you are modifying a permission message in this list, be sure to
// add the corresponding permission message rule to
// ChromePermissionMessageProvider::GetCoalescedPermissionMessages as well.
- // TODO(sashab): Remove all permission messages from this list, once
- // GetCoalescedPermissionMessages() is the only way of generating permission
- // messages.
APIPermissionInfo::InitInfo permissions_to_register[] = {
{APIPermission::kAlarms, "alarms"},
{APIPermission::kAlphaEnabled, "app.window.alpha"},
@@ -44,75 +41,43 @@ std::vector<APIPermissionInfo*> ExtensionsAPIPermissions::GetAllPermissions()
"appview",
APIPermissionInfo::kFlagCannotBeOptional},
{APIPermission::kAudio, "audio"},
- {APIPermission::kAudioCapture,
- "audioCapture",
- APIPermissionInfo::kFlagNone,
- IDS_EXTENSION_PROMPT_WARNING_AUDIO_CAPTURE,
- PermissionMessage::kAudioCapture},
+ {APIPermission::kAudioCapture, "audioCapture"},
{APIPermission::kBluetoothPrivate,
"bluetoothPrivate",
- APIPermissionInfo::kFlagCannotBeOptional,
- IDS_EXTENSION_PROMPT_WARNING_BLUETOOTH_PRIVATE,
- PermissionMessage::kBluetoothPrivate},
+ APIPermissionInfo::kFlagCannotBeOptional},
{APIPermission::kClipboardRead,
"clipboardRead",
- APIPermissionInfo::kFlagSupportsContentCapabilities,
- IDS_EXTENSION_PROMPT_WARNING_CLIPBOARD,
- PermissionMessage::kClipboard},
+ APIPermissionInfo::kFlagSupportsContentCapabilities},
{APIPermission::kClipboardWrite,
"clipboardWrite",
APIPermissionInfo::kFlagSupportsContentCapabilities},
- {APIPermission::kDeclarativeWebRequest,
- "declarativeWebRequest",
- APIPermissionInfo::kFlagNone,
- IDS_EXTENSION_PROMPT_WARNING_DECLARATIVE_WEB_REQUEST,
- PermissionMessage::kDeclarativeWebRequest},
+ {APIPermission::kDeclarativeWebRequest, "declarativeWebRequest"},
{APIPermission::kDiagnostics,
"diagnostics",
APIPermissionInfo::kFlagCannotBeOptional},
{APIPermission::kDns, "dns"},
- {APIPermission::kDocumentScan,
- "documentScan",
- APIPermissionInfo::kFlagNone,
- IDS_EXTENSION_PROMPT_WARNING_DOCUMENT_SCAN,
- PermissionMessage::kDocumentScan},
+ {APIPermission::kDocumentScan, "documentScan"},
{APIPermission::kExtensionView,
"extensionview",
APIPermissionInfo::kFlagCannotBeOptional},
{APIPermission::kExternallyConnectableAllUrls,
"externally_connectable.all_urls"},
{APIPermission::kFullscreen, "app.window.fullscreen"},
- {APIPermission::kHid, "hid", APIPermissionInfo::kFlagNone},
+ {APIPermission::kHid, "hid"},
{APIPermission::kImeWindowEnabled, "app.window.ime"},
{APIPermission::kOverrideEscFullscreen,
"app.window.fullscreen.overrideEsc"},
{APIPermission::kIdle, "idle"},
- {APIPermission::kNetworkingConfig,
- "networking.config",
- APIPermissionInfo::kFlagNone,
- IDS_EXTENSION_PROMPT_WARNING_NETWORKING_CONFIG,
- PermissionMessage::kNetworkingConfig},
+ {APIPermission::kNetworkingConfig, "networking.config"},
{APIPermission::kNetworkingPrivate,
"networkingPrivate",
- APIPermissionInfo::kFlagCannotBeOptional,
- IDS_EXTENSION_PROMPT_WARNING_NETWORKING_PRIVATE,
- PermissionMessage::kNetworkingPrivate},
+ APIPermissionInfo::kFlagCannotBeOptional},
{APIPermission::kPower, "power"},
{APIPermission::kPrinterProvider, "printerProvider"},
- {APIPermission::kSerial,
- "serial",
- APIPermissionInfo::kFlagNone,
- IDS_EXTENSION_PROMPT_WARNING_SERIAL,
- PermissionMessage::kSerial},
- // 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.
+ {APIPermission::kSerial, "serial"},
{APIPermission::kSocket,
"socket",
APIPermissionInfo::kFlagCannotBeOptional,
- 0,
- PermissionMessage::kNone,
&CreateAPIPermission<SocketPermission>},
{APIPermission::kStorage, "storage"},
{APIPermission::kSystemCpu, "system.cpu"},
@@ -120,11 +85,7 @@ std::vector<APIPermissionInfo*> ExtensionsAPIPermissions::GetAllPermissions()
{APIPermission::kSystemNetwork, "system.network"},
{APIPermission::kSystemDisplay, "system.display"},
{APIPermission::kSystemStorage, "system.storage"},
- {APIPermission::kU2fDevices,
- "u2fDevices",
- APIPermissionInfo::kFlagNone,
- IDS_EXTENSION_PROMPT_WARNING_U2F_DEVICES,
- PermissionMessage::kU2fDevices},
+ {APIPermission::kU2fDevices, "u2fDevices"},
{APIPermission::kUnlimitedStorage,
"unlimitedStorage",
APIPermissionInfo::kFlagCannotBeOptional |
@@ -133,28 +94,18 @@ std::vector<APIPermissionInfo*> ExtensionsAPIPermissions::GetAllPermissions()
{APIPermission::kUsbDevice,
"usbDevices",
APIPermissionInfo::kFlagNone,
- 0,
- PermissionMessage::kNone,
&CreateAPIPermission<UsbDevicePermission>},
- {APIPermission::kVideoCapture,
- "videoCapture",
- APIPermissionInfo::kFlagNone,
- IDS_EXTENSION_PROMPT_WARNING_VIDEO_CAPTURE,
- PermissionMessage::kVideoCapture},
+ {APIPermission::kVideoCapture, "videoCapture"},
{APIPermission::kVpnProvider,
"vpnProvider",
- APIPermissionInfo::kFlagCannotBeOptional,
- IDS_EXTENSION_PROMPT_WARNING_VPN,
- PermissionMessage::kVpnProvider},
+ APIPermissionInfo::kFlagCannotBeOptional},
// NOTE(kalman): This is provided by a manifest property but needs to
// appear in the install permission dialogue, so we need a fake
// permission for it. See http://crbug.com/247857.
{APIPermission::kWebConnectable,
"webConnectable",
APIPermissionInfo::kFlagCannotBeOptional |
- APIPermissionInfo::kFlagInternal,
- IDS_EXTENSION_PROMPT_WARNING_WEB_CONNECTABLE,
- PermissionMessage::kWebConnectable},
+ APIPermissionInfo::kFlagInternal},
{APIPermission::kWebRequest, "webRequest"},
{APIPermission::kWebRequestBlocking, "webRequestBlocking"},
{APIPermission::kWebView,
diff --git a/extensions/common/permissions/manifest_permission.h b/extensions/common/permissions/manifest_permission.h
index fded281..31e6ffc 100644
--- a/extensions/common/permissions/manifest_permission.h
+++ b/extensions/common/permissions/manifest_permission.h
@@ -15,7 +15,6 @@
namespace base {
class PickleIterator;
-class ListValue;
class Value;
}
@@ -43,16 +42,6 @@ class ManifestPermission {
// for the app.
virtual PermissionIDSet GetPermissions() const = 0;
- // Returns true if this permission has any PermissionMessages.
- // TODO(sashab): Deprecate this, using GetPermissions() above and adding
- // message rules to ChromePermissionMessageProvider.
- virtual bool HasMessages() const = 0;
-
- // Returns the localized permission messages of this permission.
- // TODO(sashab): Deprecate this, using GetPermissions() above and adding
- // message rules to ChromePermissionMessageProvider.
- virtual PermissionMessages GetMessages() const = 0;
-
// Parses the ManifestPermission from |value|. Returns false if error happens.
virtual bool FromValue(const base::Value* value) = 0;
diff --git a/extensions/common/permissions/manifest_permission_set_unittest.cc b/extensions/common/permissions/manifest_permission_set_unittest.cc
index 5018ab2..f366036 100644
--- a/extensions/common/permissions/manifest_permission_set_unittest.cc
+++ b/extensions/common/permissions/manifest_permission_set_unittest.cc
@@ -23,12 +23,6 @@ class MockManifestPermission : public ManifestPermission {
PermissionIDSet GetPermissions() const override { return PermissionIDSet(); }
- bool HasMessages() const override { return false; }
-
- PermissionMessages GetMessages() const override {
- return PermissionMessages();
- }
-
bool FromValue(const base::Value* value) override { return true; }
scoped_ptr<base::Value> ToValue() const override {
diff --git a/extensions/common/permissions/media_galleries_permission.cc b/extensions/common/permissions/media_galleries_permission.cc
index 7f01332..864d13e 100644
--- a/extensions/common/permissions/media_galleries_permission.cc
+++ b/extensions/common/permissions/media_galleries_permission.cc
@@ -187,17 +187,9 @@ bool MediaGalleriesPermission::FromValue(
}
PermissionIDSet MediaGalleriesPermission::GetPermissions() const {
- DCHECK(HasMessages());
PermissionIDSet result;
AddPermissionsToLists(data_set_, &result, NULL);
return result;
}
-PermissionMessages MediaGalleriesPermission::GetMessages() const {
- DCHECK(HasMessages());
- PermissionMessages result;
- AddPermissionsToLists(data_set_, NULL, &result);
- return result;
-}
-
} // namespace extensions
diff --git a/extensions/common/permissions/media_galleries_permission.h b/extensions/common/permissions/media_galleries_permission.h
index e7764ab..0276454 100644
--- a/extensions/common/permissions/media_galleries_permission.h
+++ b/extensions/common/permissions/media_galleries_permission.h
@@ -44,7 +44,6 @@ class MediaGalleriesPermission
// APIPermission overrides.
PermissionIDSet GetPermissions() const override;
- PermissionMessages GetMessages() const override;
// Permission strings.
static const char kAllAutoDetectedPermission[];
diff --git a/extensions/common/permissions/permission_message_test_util.cc b/extensions/common/permissions/permission_message_test_util.cc
index 77ee5d6a..fb8a5bb 100644
--- a/extensions/common/permissions/permission_message_test_util.cc
+++ b/extensions/common/permissions/permission_message_test_util.cc
@@ -91,7 +91,7 @@ bool CheckThatSubmessagesMatch(
std::vector<base::string16> actual_sorted(actual_submessages);
std::sort(actual_sorted.begin(), actual_sorted.end());
- if (actual_sorted != actual_submessages) {
+ if (expected_sorted != actual_sorted) {
// This is always a failure, even within an EXPECT_FALSE.
// Message: Expected submessages for "Message" to be { "Foo" }, but got
// { "Bar", "Baz" }
diff --git a/extensions/common/permissions/set_disjunction_permission.h b/extensions/common/permissions/set_disjunction_permission.h
index 15625a1..00ffad7 100644
--- a/extensions/common/permissions/set_disjunction_permission.h
+++ b/extensions/common/permissions/set_disjunction_permission.h
@@ -34,8 +34,6 @@ class SetDisjunctionPermission : public APIPermission {
~SetDisjunctionPermission() override {}
// APIPermission overrides
- bool HasMessages() const override { return !data_set_.empty(); }
-
bool Check(const APIPermission::CheckParam* param) const override {
for (typename std::set<PermissionDataType>::const_iterator i =
data_set_.begin();
diff --git a/extensions/common/permissions/settings_override_permission.cc b/extensions/common/permissions/settings_override_permission.cc
index c45678c..b4cec3c 100644
--- a/extensions/common/permissions/settings_override_permission.cc
+++ b/extensions/common/permissions/settings_override_permission.cc
@@ -24,39 +24,6 @@ PermissionIDSet SettingsOverrideAPIPermission::GetPermissions() const {
return permissions;
}
-bool SettingsOverrideAPIPermission::HasMessages() const {
- return info()->message_id() > PermissionMessage::kNone;
-}
-
-PermissionMessages SettingsOverrideAPIPermission::GetMessages() const {
- DCHECK(HasMessages());
- int string_id = -1;
- // Warning: when modifying this function, be sure to modify the correct rule
- // in ChromePermissionMessageProvider.
- switch (id()) {
- case kHomepage: {
- string_id = IDS_EXTENSION_PROMPT_WARNING_HOME_PAGE_SETTING_OVERRIDE;
- break;
- }
- case kStartupPages: {
- string_id = IDS_EXTENSION_PROMPT_WARNING_START_PAGE_SETTING_OVERRIDE;
- break;
- }
- case kSearchProvider: {
- string_id = IDS_EXTENSION_PROMPT_WARNING_SEARCH_SETTINGS_OVERRIDE;
- break;
- }
- default:
- NOTREACHED();
- }
- PermissionMessages result;
- result.push_back(
- PermissionMessage(info()->message_id(),
- l10n_util::GetStringFUTF16(
- string_id, base::UTF8ToUTF16(setting_value_))));
- return result;
-}
-
bool SettingsOverrideAPIPermission::Check(
const APIPermission::CheckParam* param) const {
return (param == NULL);
diff --git a/extensions/common/permissions/settings_override_permission.h b/extensions/common/permissions/settings_override_permission.h
index 20910e3..8c0bb00 100644
--- a/extensions/common/permissions/settings_override_permission.h
+++ b/extensions/common/permissions/settings_override_permission.h
@@ -21,8 +21,6 @@ class SettingsOverrideAPIPermission : public APIPermission {
// APIPermission overrides.
PermissionIDSet GetPermissions() const override;
- bool HasMessages() const override;
- PermissionMessages GetMessages() const override;
bool Check(const APIPermission::CheckParam* param) const override;
bool Contains(const APIPermission* rhs) const override;
bool Equal(const APIPermission* rhs) const override;
diff --git a/extensions/common/permissions/socket_permission.cc b/extensions/common/permissions/socket_permission.cc
index e5fac9d..1826282 100644
--- a/extensions/common/permissions/socket_permission.cc
+++ b/extensions/common/permissions/socket_permission.cc
@@ -45,12 +45,4 @@ PermissionIDSet SocketPermission::GetPermissions() const {
return ids;
}
-PermissionMessages SocketPermission::GetMessages() const {
- DCHECK(HasMessages());
- PermissionMessages messages;
- SocketPermissionEntrySet entries = ExtractSocketEntries(data_set_);
- SocketsManifestPermission::AddSocketHostPermissions(entries, NULL, &messages);
- return messages;
-}
-
} // namespace extensions
diff --git a/extensions/common/permissions/socket_permission.h b/extensions/common/permissions/socket_permission.h
index c2c1156..d554293 100644
--- a/extensions/common/permissions/socket_permission.h
+++ b/extensions/common/permissions/socket_permission.h
@@ -29,8 +29,6 @@ class SocketPermission
~SocketPermission() override;
PermissionIDSet GetPermissions() const override;
- // Returns the localized permission messages of this permission.
- PermissionMessages GetMessages() const override;
private:
// Add all host messages for this manifest permission into the given lists.
diff --git a/extensions/common/permissions/usb_device_permission.cc b/extensions/common/permissions/usb_device_permission.cc
index 59b28d5..287cf24 100644
--- a/extensions/common/permissions/usb_device_permission.cc
+++ b/extensions/common/permissions/usb_device_permission.cc
@@ -146,11 +146,4 @@ PermissionIDSet UsbDevicePermission::GetPermissions() const {
return ids;
}
-PermissionMessages UsbDevicePermission::GetMessages() const {
- DCHECK(HasMessages());
- PermissionMessages messages;
- AddPermissionsToLists(data_set_, NULL, &messages);
- return messages;
-}
-
} // namespace extensions
diff --git a/extensions/common/permissions/usb_device_permission.h b/extensions/common/permissions/usb_device_permission.h
index 50ea79d..881d6dd 100644
--- a/extensions/common/permissions/usb_device_permission.h
+++ b/extensions/common/permissions/usb_device_permission.h
@@ -31,7 +31,6 @@ class UsbDevicePermission
// APIPermission overrides
PermissionIDSet GetPermissions() const override;
- PermissionMessages GetMessages() const override;
};
} // namespace extensions
diff --git a/extensions/common/permissions/usb_device_permission_unittest.cc b/extensions/common/permissions/usb_device_permission_unittest.cc
index 345a000..7397196 100644
--- a/extensions/common/permissions/usb_device_permission_unittest.cc
+++ b/extensions/common/permissions/usb_device_permission_unittest.cc
@@ -2,18 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#include <set>
-#include <string>
-
-#include "base/memory/scoped_ptr.h"
-#include "base/pickle.h"
-#include "base/strings/utf_string_conversions.h"
-#include "base/values.h"
-#include "extensions/common/permissions/api_permission.h"
-#include "extensions/common/permissions/permissions_info.h"
-#include "extensions/common/permissions/usb_device_permission.h"
#include "extensions/common/permissions/usb_device_permission_data.h"
-#include "ipc/ipc_message.h"
#include "testing/gtest/include/gtest/gtest.h"
namespace extensions {
@@ -27,86 +16,4 @@ TEST(USBDevicePermissionTest, PermissionDataOrder) {
UsbDevicePermissionData(0x02ad, 0x138c, 0));
}
-TEST(USBDevicePermissionTest, SingleDevicePermissionMessages) {
- const char* const kMessages[] = {
- "Access any PVR Mass Storage from HUMAX Co., Ltd. via USB",
- "Access USB devices from HUMAX Co., Ltd.",
- "Access USB devices from an unknown vendor",
- };
-
- {
- scoped_ptr<base::ListValue> permission_list(new base::ListValue());
- permission_list->Append(
- UsbDevicePermissionData(0x02ad, 0x138c, -1).ToValue().release());
-
- UsbDevicePermission permission(
- PermissionsInfo::GetInstance()->GetByID(APIPermission::kUsbDevice));
- ASSERT_TRUE(permission.FromValue(permission_list.get(), NULL, NULL));
-
- PermissionMessages messages = permission.GetMessages();
- ASSERT_EQ(1U, messages.size());
- EXPECT_EQ(base::ASCIIToUTF16(kMessages[0]), messages.at(0).message());
- }
- {
- scoped_ptr<base::ListValue> permission_list(new base::ListValue());
- permission_list->Append(
- UsbDevicePermissionData(0x02ad, 0x138d, -1).ToValue().release());
-
- UsbDevicePermission permission(
- PermissionsInfo::GetInstance()->GetByID(APIPermission::kUsbDevice));
- ASSERT_TRUE(permission.FromValue(permission_list.get(), NULL, NULL));
-
- PermissionMessages messages = permission.GetMessages();
- ASSERT_EQ(1U, messages.size());
- EXPECT_EQ(base::ASCIIToUTF16(kMessages[1]), messages.at(0).message());
- }
- {
- scoped_ptr<base::ListValue> permission_list(new base::ListValue());
- permission_list->Append(
- UsbDevicePermissionData(0x02ae, 0x138d, -1).ToValue().release());
-
- UsbDevicePermission permission(
- PermissionsInfo::GetInstance()->GetByID(APIPermission::kUsbDevice));
- ASSERT_TRUE(permission.FromValue(permission_list.get(), NULL, NULL));
-
- PermissionMessages messages = permission.GetMessages();
- ASSERT_EQ(1U, messages.size());
- EXPECT_EQ(base::ASCIIToUTF16(kMessages[2]), messages.at(0).message());
- }
-}
-
-TEST(USBDevicePermissionTest, MultipleDevicePermissionMessage) {
- const char* const kMessage = "Access any of these USB devices";
- const char* const kDetails =
- "PVR Mass Storage from HUMAX Co., Ltd.\n"
- "unknown devices from HUMAX Co., Ltd.\n"
- "devices from an unknown vendor";
-
- // Prepare data set
- scoped_ptr<base::ListValue> permission_list(new base::ListValue());
- permission_list->Append(
- UsbDevicePermissionData(0x02ad, 0x138c, -1).ToValue().release());
- // This device's product ID is not in Chrome's database.
- permission_list->Append(
- UsbDevicePermissionData(0x02ad, 0x138d, -1).ToValue().release());
- // This additional unknown product will be collapsed into the entry above.
- permission_list->Append(
- UsbDevicePermissionData(0x02ad, 0x138e, -1).ToValue().release());
- // This device's vendor ID is not in Chrome's database.
- permission_list->Append(
- UsbDevicePermissionData(0x02ae, 0x138d, -1).ToValue().release());
- // This additional unknown vendor will be collapsed into the entry above.
- permission_list->Append(
- UsbDevicePermissionData(0x02af, 0x138d, -1).ToValue().release());
-
- UsbDevicePermission permission(
- PermissionsInfo::GetInstance()->GetByID(APIPermission::kUsbDevice));
- ASSERT_TRUE(permission.FromValue(permission_list.get(), NULL, NULL));
-
- PermissionMessages messages = permission.GetMessages();
- ASSERT_EQ(1U, messages.size());
- EXPECT_EQ(base::ASCIIToUTF16(kMessage), messages.at(0).message());
- EXPECT_EQ(base::ASCIIToUTF16(kDetails), messages.at(0).details());
-}
-
} // namespace extensions