summaryrefslogtreecommitdiffstats
path: root/chrome/browser/extensions
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/extensions')
-rw-r--r--chrome/browser/extensions/active_tab_permission_granter.cc6
-rw-r--r--chrome/browser/extensions/api/alarms/alarm_manager.h1
-rw-r--r--chrome/browser/extensions/api/app_current_window_internal/app_current_window_internal_api.cc3
-rw-r--r--chrome/browser/extensions/api/app_window/app_window_api.cc16
-rw-r--r--chrome/browser/extensions/api/autotest_private/autotest_private_api.cc11
-rw-r--r--chrome/browser/extensions/api/declarative/declarative_api.cc4
-rw-r--r--chrome/browser/extensions/api/declarative/rules_cache_delegate.cc7
-rw-r--r--chrome/browser/extensions/api/declarative/rules_registry_with_cache_unittest.cc5
-rw-r--r--chrome/browser/extensions/api/developer_private/developer_private_api.cc4
-rw-r--r--chrome/browser/extensions/api/downloads/downloads_api.cc7
-rw-r--r--chrome/browser/extensions/api/file_handlers/app_file_handler_util.cc4
-rw-r--r--chrome/browser/extensions/api/file_system/file_system_api.cc7
-rw-r--r--chrome/browser/extensions/api/location/location_manager.cc4
-rw-r--r--chrome/browser/extensions/api/management/management_api.cc4
-rw-r--r--chrome/browser/extensions/api/messaging/message_service.cc6
-rw-r--r--chrome/browser/extensions/api/permissions/permissions_api.cc8
-rw-r--r--chrome/browser/extensions/api/preference/preference_api.cc3
-rw-r--r--chrome/browser/extensions/api/preference/preference_helpers.cc3
-rw-r--r--chrome/browser/extensions/api/push_messaging/push_messaging_api.cc10
-rw-r--r--chrome/browser/extensions/api/web_request/web_request_api.cc11
-rw-r--r--chrome/browser/extensions/api/webrtc_audio_private/webrtc_audio_private_api.cc3
-rw-r--r--chrome/browser/extensions/convert_web_app_browsertest.cc7
-rw-r--r--chrome/browser/extensions/convert_web_app_unittest.cc7
-rw-r--r--chrome/browser/extensions/extension_disabled_ui.cc4
-rw-r--r--chrome/browser/extensions/extension_gcm_app_handler_unittest.cc4
-rw-r--r--chrome/browser/extensions/extension_install_prompt.cc10
-rw-r--r--chrome/browser/extensions/extension_service.cc6
-rw-r--r--chrome/browser/extensions/extension_service_unittest.cc14
-rw-r--r--chrome/browser/extensions/extension_special_storage_policy.cc25
-rw-r--r--chrome/browser/extensions/extension_storage_monitor.cc4
-rw-r--r--chrome/browser/extensions/extension_tab_util.cc5
-rw-r--r--chrome/browser/extensions/permissions_updater.cc7
-rw-r--r--chrome/browser/extensions/permissions_updater_unittest.cc9
-rw-r--r--chrome/browser/extensions/suggest_permission_util.cc3
34 files changed, 149 insertions, 83 deletions
diff --git a/chrome/browser/extensions/active_tab_permission_granter.cc b/chrome/browser/extensions/active_tab_permission_granter.cc
index 978bbfc..c2d0cd5e 100644
--- a/chrome/browser/extensions/active_tab_permission_granter.cc
+++ b/chrome/browser/extensions/active_tab_permission_granter.cc
@@ -55,7 +55,8 @@ void ActiveTabPermissionGranter::GrantIfRequested(const Extension* extension) {
-1, // No tab id.
GURL());
- if (extension->HasAPIPermission(APIPermission::kActiveTab) ||
+ if (extension->permissions_data()->HasAPIPermission(
+ APIPermission::kActiveTab) ||
requires_action_for_script_execution) {
URLPattern pattern(UserScript::ValidUserScriptSchemes());
// Pattern parsing could fail if this is an unsupported URL e.g. chrome://.
@@ -66,7 +67,8 @@ void ActiveTabPermissionGranter::GrantIfRequested(const Extension* extension) {
new_apis.insert(APIPermission::kTab);
}
- if (extension->HasAPIPermission(APIPermission::kTabCapture))
+ if (extension->permissions_data()->HasAPIPermission(
+ APIPermission::kTabCapture))
new_apis.insert(APIPermission::kTabCaptureForTab);
if (!new_apis.empty() || !new_hosts.is_empty()) {
diff --git a/chrome/browser/extensions/api/alarms/alarm_manager.h b/chrome/browser/extensions/api/alarms/alarm_manager.h
index c676398..9a44370 100644
--- a/chrome/browser/extensions/api/alarms/alarm_manager.h
+++ b/chrome/browser/extensions/api/alarms/alarm_manager.h
@@ -11,6 +11,7 @@
#include <vector>
#include "base/callback.h"
+#include "base/gtest_prod_util.h"
#include "base/memory/weak_ptr.h"
#include "base/scoped_observer.h"
#include "base/timer/timer.h"
diff --git a/chrome/browser/extensions/api/app_current_window_internal/app_current_window_internal_api.cc b/chrome/browser/extensions/api/app_current_window_internal/app_current_window_internal_api.cc
index 78ca0bc..022c8c0 100644
--- a/chrome/browser/extensions/api/app_current_window_internal/app_current_window_internal_api.cc
+++ b/chrome/browser/extensions/api/app_current_window_internal/app_current_window_internal_api.cc
@@ -14,6 +14,7 @@
#include "chrome/common/extensions/api/app_window.h"
#include "chrome/common/extensions/features/feature_channel.h"
#include "extensions/common/features/simple_feature.h"
+#include "extensions/common/permissions/permissions_data.h"
#include "extensions/common/switches.h"
#include "third_party/skia/include/core/SkRegion.h"
@@ -385,7 +386,7 @@ bool AppCurrentWindowInternalSetShapeFunction::RunWithWindow(
bool AppCurrentWindowInternalSetAlwaysOnTopFunction::RunWithWindow(
AppWindow* window) {
- if (!GetExtension()->HasAPIPermission(
+ if (!GetExtension()->permissions_data()->HasAPIPermission(
extensions::APIPermission::kAlwaysOnTopWindows)) {
error_ = kAlwaysOnTopPermission;
return false;
diff --git a/chrome/browser/extensions/api/app_window/app_window_api.cc b/chrome/browser/extensions/api/app_window/app_window_api.cc
index 3f05a81..c6623e0 100644
--- a/chrome/browser/extensions/api/app_window/app_window_api.cc
+++ b/chrome/browser/extensions/api/app_window/app_window_api.cc
@@ -26,6 +26,7 @@
#include "content/public/common/url_constants.h"
#include "extensions/browser/extensions_browser_client.h"
#include "extensions/browser/image_util.h"
+#include "extensions/common/permissions/permissions_data.h"
#include "extensions/common/switches.h"
#include "third_party/skia/include/core/SkColor.h"
#include "ui/base/ui_base_types.h"
@@ -225,7 +226,8 @@ bool AppWindowCreateFunction::RunAsync() {
return false;
if (options->transparent_background.get() &&
- (GetExtension()->HasAPIPermission(APIPermission::kExperimental) ||
+ (GetExtension()->permissions_data()->HasAPIPermission(
+ APIPermission::kExperimental) ||
CommandLine::ForCurrentProcess()->HasSwitch(
switches::kEnableExperimentalExtensionApis))) {
create_params.transparent_background = *options->transparent_background;
@@ -240,7 +242,8 @@ bool AppWindowCreateFunction::RunAsync() {
if (options->always_on_top.get()) {
create_params.always_on_top = *options->always_on_top.get();
- if (create_params.always_on_top && !GetExtension()->HasAPIPermission(
+ if (create_params.always_on_top &&
+ !GetExtension()->permissions_data()->HasAPIPermission(
APIPermission::kAlwaysOnTopWindows)) {
error_ = app_window_constants::kAlwaysOnTopPermission;
return false;
@@ -419,10 +422,11 @@ bool AppWindowCreateFunction::GetBoundsSpec(
AppWindow::Frame AppWindowCreateFunction::GetFrameFromString(
const std::string& frame_string) {
- if (frame_string == kHtmlFrameOption &&
- (GetExtension()->HasAPIPermission(APIPermission::kExperimental) ||
- CommandLine::ForCurrentProcess()->HasSwitch(
- switches::kEnableExperimentalExtensionApis))) {
+ if (frame_string == kHtmlFrameOption &&
+ (GetExtension()->permissions_data()->HasAPIPermission(
+ APIPermission::kExperimental) ||
+ CommandLine::ForCurrentProcess()->HasSwitch(
+ switches::kEnableExperimentalExtensionApis))) {
inject_html_titlebar_ = true;
return AppWindow::FRAME_NONE;
}
diff --git a/chrome/browser/extensions/api/autotest_private/autotest_private_api.cc b/chrome/browser/extensions/api/autotest_private/autotest_private_api.cc
index d5a3fe6..92ff460 100644
--- a/chrome/browser/extensions/api/autotest_private/autotest_private_api.cc
+++ b/chrome/browser/extensions/api/autotest_private/autotest_private_api.cc
@@ -32,11 +32,10 @@ namespace extensions {
namespace {
base::ListValue* GetHostPermissions(const Extension* ext, bool effective_perm) {
- URLPatternSet pattern_set;
- if (effective_perm)
- pattern_set = ext->permissions_data()->GetEffectiveHostPermissions();
- else
- pattern_set = ext->GetActivePermissions()->explicit_hosts();
+ const PermissionsData* permissions_data = ext->permissions_data();
+ const URLPatternSet& pattern_set =
+ effective_perm ? permissions_data->GetEffectiveHostPermissions()
+ : permissions_data->active_permissions()->explicit_hosts();
base::ListValue* permissions = new base::ListValue;
for (URLPatternSet::const_iterator perm = pattern_set.begin();
@@ -51,7 +50,7 @@ base::ListValue* GetHostPermissions(const Extension* ext, bool effective_perm) {
base::ListValue* GetAPIPermissions(const Extension* ext) {
base::ListValue* permissions = new base::ListValue;
std::set<std::string> perm_list =
- ext->GetActivePermissions()->GetAPIsAsStrings();
+ ext->permissions_data()->active_permissions()->GetAPIsAsStrings();
for (std::set<std::string>::const_iterator perm = perm_list.begin();
perm != perm_list.end(); ++perm) {
permissions->Append(new base::StringValue(perm->c_str()));
diff --git a/chrome/browser/extensions/api/declarative/declarative_api.cc b/chrome/browser/extensions/api/declarative/declarative_api.cc
index dbb22a6..f53ead1 100644
--- a/chrome/browser/extensions/api/declarative/declarative_api.cc
+++ b/chrome/browser/extensions/api/declarative/declarative_api.cc
@@ -17,6 +17,7 @@
#include "content/public/browser/render_view_host.h"
#include "extensions/browser/extension_system.h"
#include "extensions/common/extension_api.h"
+#include "extensions/common/permissions/permissions_data.h"
using extensions::api::events::Rule;
@@ -59,7 +60,8 @@ bool RulesFunction::HasPermission() {
std::string event_name;
EXTENSION_FUNCTION_VALIDATE(args_->GetString(0, &event_name));
if (IsWebViewEvent(event_name) &&
- extension_->HasAPIPermission(extensions::APIPermission::kWebView))
+ extension_->permissions_data()->HasAPIPermission(
+ extensions::APIPermission::kWebView))
return true;
Feature::Availability availability =
ExtensionAPI::GetSharedInstance()->IsAvailable(
diff --git a/chrome/browser/extensions/api/declarative/rules_cache_delegate.cc b/chrome/browser/extensions/api/declarative/rules_cache_delegate.cc
index 119b2b4..bfe59ac 100644
--- a/chrome/browser/extensions/api/declarative/rules_cache_delegate.cc
+++ b/chrome/browser/extensions/api/declarative/rules_cache_delegate.cc
@@ -16,6 +16,7 @@
#include "extensions/browser/extension_registry.h"
#include "extensions/browser/extension_system.h"
#include "extensions/browser/info_map.h"
+#include "extensions/common/permissions/permissions_data.h"
namespace {
@@ -138,8 +139,10 @@ void RulesCacheDelegate::ReadRulesForInstalledExtensions() {
i != extensions->end();
++i) {
bool needs_apis_storing_rules =
- (*i)->HasAPIPermission(APIPermission::kDeclarativeContent) ||
- (*i)->HasAPIPermission(APIPermission::kDeclarativeWebRequest);
+ (*i)->permissions_data()->HasAPIPermission(
+ APIPermission::kDeclarativeContent) ||
+ (*i)->permissions_data()->HasAPIPermission(
+ APIPermission::kDeclarativeWebRequest);
bool respects_off_the_record =
!(profile_->IsOffTheRecord()) ||
util::IsIncognitoEnabled((*i)->id(), profile_);
diff --git a/chrome/browser/extensions/api/declarative/rules_registry_with_cache_unittest.cc b/chrome/browser/extensions/api/declarative/rules_registry_with_cache_unittest.cc
index 4a6660a..dff53b7 100644
--- a/chrome/browser/extensions/api/declarative/rules_registry_with_cache_unittest.cc
+++ b/chrome/browser/extensions/api/declarative/rules_registry_with_cache_unittest.cc
@@ -23,6 +23,7 @@
#include "extensions/browser/value_store/testing_value_store.h"
#include "extensions/common/extension.h"
#include "extensions/common/manifest_constants.h"
+#include "extensions/common/permissions/permissions_data.h"
#include "testing/gtest/include/gtest/gtest.h"
using extension_test_util::LoadManifestUnchecked;
@@ -348,8 +349,8 @@ TEST_F(RulesRegistryWithCacheTest, RulesPreservedAcrossRestart) {
ASSERT_TRUE(error.empty());
extension_service->AddExtension(extension.get());
EXPECT_TRUE(extension_service->extensions()->Contains(extension->id()));
- EXPECT_TRUE(
- extension->HasAPIPermission(APIPermission::kDeclarativeWebRequest));
+ EXPECT_TRUE(extension->permissions_data()->HasAPIPermission(
+ APIPermission::kDeclarativeWebRequest));
env_.GetExtensionSystem()->SetReady();
// 2. First run, adding a rule for the extension.
diff --git a/chrome/browser/extensions/api/developer_private/developer_private_api.cc b/chrome/browser/extensions/api/developer_private/developer_private_api.cc
index 5fc8747..f737704 100644
--- a/chrome/browser/extensions/api/developer_private/developer_private_api.cc
+++ b/chrome/browser/extensions/api/developer_private/developer_private_api.cc
@@ -65,6 +65,7 @@
#include "extensions/common/manifest_handlers/icons_handler.h"
#include "extensions/common/manifest_handlers/incognito_info.h"
#include "extensions/common/manifest_handlers/offline_enabled_info.h"
+#include "extensions/common/permissions/permissions_data.h"
#include "extensions/common/switches.h"
#include "grit/chromium_strings.h"
#include "grit/generated_resources.h"
@@ -747,7 +748,8 @@ bool DeveloperPrivateShowPermissionsDialogFunction::RunSync() {
// Released by InstallUIAbort or InstallUIProceed.
AddRef();
std::vector<base::FilePath> retained_file_paths;
- if (extension->HasAPIPermission(APIPermission::kFileSystem)) {
+ if (extension->permissions_data()->HasAPIPermission(
+ APIPermission::kFileSystem)) {
std::vector<apps::SavedFileEntry> retained_file_entries =
apps::SavedFilesService::Get(GetProfile())
->GetAllFileEntries(extension_id_);
diff --git a/chrome/browser/extensions/api/downloads/downloads_api.cc b/chrome/browser/extensions/api/downloads/downloads_api.cc
index 52f113e..c34147f 100644
--- a/chrome/browser/extensions/api/downloads/downloads_api.cc
+++ b/chrome/browser/extensions/api/downloads/downloads_api.cc
@@ -64,6 +64,7 @@
#include "extensions/browser/extension_function_dispatcher.h"
#include "extensions/browser/extension_prefs.h"
#include "extensions/browser/extension_registry.h"
+#include "extensions/common/permissions/permissions_data.h"
#include "net/base/filename_util.h"
#include "net/base/load_flags.h"
#include "net/http/http_util.h"
@@ -1386,7 +1387,8 @@ bool DownloadsOpenFunction::RunSync() {
Fault(download_item->GetState() != DownloadItem::COMPLETE,
errors::kNotComplete,
&error_) ||
- Fault(!GetExtension()->HasAPIPermission(APIPermission::kDownloadsOpen),
+ Fault(!GetExtension()->permissions_data()->HasAPIPermission(
+ APIPermission::kDownloadsOpen),
errors::kOpenPermission,
&error_))
return false;
@@ -1431,7 +1433,8 @@ bool DownloadsSetShelfEnabledFunction::RunSync() {
scoped_ptr<downloads::SetShelfEnabled::Params> params(
downloads::SetShelfEnabled::Params::Create(*args_));
EXTENSION_FUNCTION_VALIDATE(params.get());
- if (!GetExtension()->HasAPIPermission(APIPermission::kDownloadsShelf)) {
+ if (!GetExtension()->permissions_data()->HasAPIPermission(
+ APIPermission::kDownloadsShelf)) {
error_ = download_extension_errors::kShelfPermission;
return false;
}
diff --git a/chrome/browser/extensions/api/file_handlers/app_file_handler_util.cc b/chrome/browser/extensions/api/file_handlers/app_file_handler_util.cc
index 5a972af..277bc99 100644
--- a/chrome/browser/extensions/api/file_handlers/app_file_handler_util.cc
+++ b/chrome/browser/extensions/api/file_handlers/app_file_handler_util.cc
@@ -12,6 +12,7 @@
#include "content/public/browser/child_process_security_policy.h"
#include "content/public/browser/render_process_host.h"
#include "extensions/browser/extension_prefs.h"
+#include "extensions/common/permissions/permissions_data.h"
#include "net/base/mime_util.h"
#include "webkit/browser/fileapi/isolated_context.h"
#include "webkit/common/fileapi/file_system_mount_option.h"
@@ -329,7 +330,8 @@ void PrepareFilesForWritableApp(
}
bool HasFileSystemWritePermission(const Extension* extension) {
- return extension->HasAPIPermission(APIPermission::kFileSystemWrite);
+ return extension->permissions_data()->HasAPIPermission(
+ APIPermission::kFileSystemWrite);
}
bool ValidateFileEntryAndGetPath(
diff --git a/chrome/browser/extensions/api/file_system/file_system_api.cc b/chrome/browser/extensions/api/file_system/file_system_api.cc
index 2cd8ddf..ddec04b 100644
--- a/chrome/browser/extensions/api/file_system/file_system_api.cc
+++ b/chrome/browser/extensions/api/file_system/file_system_api.cc
@@ -35,6 +35,7 @@
#include "extensions/browser/extension_prefs.h"
#include "extensions/browser/extension_system.h"
#include "extensions/common/permissions/api_permission.h"
+#include "extensions/common/permissions/permissions_data.h"
#include "grit/generated_resources.h"
#include "net/base/mime_util.h"
#include "ui/base/l10n/l10n_util.h"
@@ -386,7 +387,8 @@ bool FileSystemGetWritableEntryFunction::RunAsync() {
void FileSystemGetWritableEntryFunction::CheckPermissionAndSendResponse() {
DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
if (is_directory_ &&
- !extension_->HasAPIPermission(APIPermission::kFileSystemDirectory)) {
+ !extension_->permissions_data()->HasAPIPermission(
+ APIPermission::kFileSystemDirectory)) {
error_ = kRequiresFileSystemDirectoryError;
SendResponse(false);
}
@@ -869,7 +871,8 @@ bool FileSystemChooseEntryFunction::RunAsync() {
picker_type = ui::SelectFileDialog::SELECT_SAVEAS_FILE;
} else if (options->type == file_system::CHOOSE_ENTRY_TYPE_OPENDIRECTORY) {
is_directory_ = true;
- if (!extension_->HasAPIPermission(APIPermission::kFileSystemDirectory)) {
+ if (!extension_->permissions_data()->HasAPIPermission(
+ APIPermission::kFileSystemDirectory)) {
error_ = kRequiresFileSystemDirectoryError;
return false;
}
diff --git a/chrome/browser/extensions/api/location/location_manager.cc b/chrome/browser/extensions/api/location/location_manager.cc
index b436e9e..8762a3f 100644
--- a/chrome/browser/extensions/api/location/location_manager.cc
+++ b/chrome/browser/extensions/api/location/location_manager.cc
@@ -22,6 +22,7 @@
#include "extensions/browser/extension_system.h"
#include "extensions/common/extension.h"
#include "extensions/common/permissions/permission_set.h"
+#include "extensions/common/permissions/permissions_data.h"
using content::BrowserThread;
@@ -358,7 +359,8 @@ void LocationManager::Observe(int type,
const Extension* extension =
content::Details<const Extension>(details).ptr();
- if (extension->HasAPIPermission(APIPermission::kLocation)) {
+ if (extension->permissions_data()->HasAPIPermission(
+ APIPermission::kLocation)) {
content::GeolocationProvider::GetInstance()->
UserDidOptIntoLocationServices();
}
diff --git a/chrome/browser/extensions/api/management/management_api.cc b/chrome/browser/extensions/api/management/management_api.cc
index 1e7d3f8..1f45eb3 100644
--- a/chrome/browser/extensions/api/management/management_api.cc
+++ b/chrome/browser/extensions/api/management/management_api.cc
@@ -193,7 +193,7 @@ scoped_ptr<management::ExtensionInfo> CreateExtensionInfo(
}
const std::set<std::string> perms =
- extension.GetActivePermissions()->GetAPIsAsStrings();
+ extension.permissions_data()->active_permissions()->GetAPIsAsStrings();
if (!perms.empty()) {
std::set<std::string>::const_iterator perms_iter;
for (perms_iter = perms.begin(); perms_iter != perms.end(); ++perms_iter)
@@ -203,7 +203,7 @@ scoped_ptr<management::ExtensionInfo> CreateExtensionInfo(
if (!extension.is_hosted_app()) {
// Skip host permissions for hosted apps.
const URLPatternSet host_perms =
- extension.GetActivePermissions()->explicit_hosts();
+ extension.permissions_data()->active_permissions()->explicit_hosts();
if (!host_perms.is_empty()) {
for (URLPatternSet::const_iterator iter = host_perms.begin();
iter != host_perms.end(); ++iter) {
diff --git a/chrome/browser/extensions/api/messaging/message_service.cc b/chrome/browser/extensions/api/messaging/message_service.cc
index a05331d..8f336f2f4 100644
--- a/chrome/browser/extensions/api/messaging/message_service.cc
+++ b/chrome/browser/extensions/api/messaging/message_service.cc
@@ -41,6 +41,7 @@
#include "extensions/common/manifest_handlers/background_info.h"
#include "extensions/common/manifest_handlers/externally_connectable.h"
#include "extensions/common/manifest_handlers/incognito_info.h"
+#include "extensions/common/permissions/permissions_data.h"
#include "net/base/completion_callback.h"
#include "url/gurl.h"
@@ -368,8 +369,9 @@ void MessageService::OpenChannelToNativeApp(
if (extension_service) {
const Extension* extension =
extension_service->GetExtensionById(source_extension_id, false);
- has_permission = extension && extension->HasAPIPermission(
- APIPermission::kNativeMessaging);
+ has_permission = extension &&
+ extension->permissions_data()->HasAPIPermission(
+ APIPermission::kNativeMessaging);
}
if (!has_permission) {
diff --git a/chrome/browser/extensions/api/permissions/permissions_api.cc b/chrome/browser/extensions/api/permissions/permissions_api.cc
index 977afc9..7d6ff25 100644
--- a/chrome/browser/extensions/api/permissions/permissions_api.cc
+++ b/chrome/browser/extensions/api/permissions/permissions_api.cc
@@ -15,6 +15,7 @@
#include "extensions/common/extension.h"
#include "extensions/common/manifest_handlers/permissions_parser.h"
#include "extensions/common/permissions/permission_message_provider.h"
+#include "extensions/common/permissions/permissions_data.h"
#include "extensions/common/permissions/permissions_info.h"
namespace extensions {
@@ -60,13 +61,14 @@ bool PermissionsContainsFunction::RunSync() {
return false;
results_ = Contains::Results::Create(
- GetExtension()->GetActivePermissions()->Contains(*permissions.get()));
+ GetExtension()->permissions_data()->active_permissions()->Contains(
+ *permissions.get()));
return true;
}
bool PermissionsGetAllFunction::RunSync() {
- scoped_ptr<Permissions> permissions =
- helpers::PackPermissionSet(GetExtension()->GetActivePermissions().get());
+ scoped_ptr<Permissions> permissions = helpers::PackPermissionSet(
+ GetExtension()->permissions_data()->active_permissions().get());
results_ = GetAll::Results::Create(*permissions);
return true;
}
diff --git a/chrome/browser/extensions/api/preference/preference_api.cc b/chrome/browser/extensions/api/preference/preference_api.cc
index 3ef891e..848d315 100644
--- a/chrome/browser/extensions/api/preference/preference_api.cc
+++ b/chrome/browser/extensions/api/preference/preference_api.cc
@@ -33,6 +33,7 @@
#include "extensions/browser/pref_names.h"
#include "extensions/common/error_utils.h"
#include "extensions/common/permissions/api_permission.h"
+#include "extensions/common/permissions/permissions_data.h"
namespace keys = extensions::preference_api_constants;
namespace helpers = extensions::preference_helpers;
@@ -512,7 +513,7 @@ bool PreferenceFunction::ValidateBrowserPref(
APIPermission::ID permission = permission_type == PERMISSION_TYPE_READ
? read_permission
: write_permission;
- if (!GetExtension()->HasAPIPermission(permission)) {
+ if (!GetExtension()->permissions_data()->HasAPIPermission(permission)) {
error_ = ErrorUtils::FormatErrorMessage(
keys::kPermissionErrorMessage, extension_pref_key);
return false;
diff --git a/chrome/browser/extensions/api/preference/preference_helpers.cc b/chrome/browser/extensions/api/preference/preference_helpers.cc
index 09b00f3..237e365 100644
--- a/chrome/browser/extensions/api/preference/preference_helpers.cc
+++ b/chrome/browser/extensions/api/preference/preference_helpers.cc
@@ -15,6 +15,7 @@
#include "extensions/browser/extension_prefs.h"
#include "extensions/browser/extension_system.h"
#include "extensions/common/manifest_handlers/incognito_info.h"
+#include "extensions/common/permissions/permissions_data.h"
namespace extensions {
namespace preference_helpers {
@@ -100,7 +101,7 @@ void DispatchEventToExtensions(
std::string extension_id = (*it)->id();
// TODO(bauerb): Only iterate over registered event listeners.
if (router->ExtensionHasEventListener(extension_id, event_name) &&
- (*it)->HasAPIPermission(permission) &&
+ (*it)->permissions_data()->HasAPIPermission(permission) &&
(!incognito || IncognitoInfo::IsSplitMode(it->get()) ||
util::CanCrossIncognito(it->get(), profile))) {
// Inject level of control key-value.
diff --git a/chrome/browser/extensions/api/push_messaging/push_messaging_api.cc b/chrome/browser/extensions/api/push_messaging/push_messaging_api.cc
index 053b445e..bd725c6 100644
--- a/chrome/browser/extensions/api/push_messaging/push_messaging_api.cc
+++ b/chrome/browser/extensions/api/push_messaging/push_messaging_api.cc
@@ -33,6 +33,7 @@
#include "extensions/browser/extensions_browser_client.h"
#include "extensions/common/extension.h"
#include "extensions/common/permissions/api_permission.h"
+#include "extensions/common/permissions/permissions_data.h"
#include "google_apis/gaia/gaia_constants.h"
#include "google_apis/gaia/identity_provider.h"
@@ -339,7 +340,8 @@ void PushMessagingAPI::OnExtensionLoaded(
if (!InitEventRouterAndHandler())
return;
- if (extension->HasAPIPermission(APIPermission::kPushMessaging)) {
+ if (extension->permissions_data()->HasAPIPermission(
+ APIPermission::kPushMessaging)) {
handler_->RegisterExtension(extension->id());
}
}
@@ -351,7 +353,8 @@ void PushMessagingAPI::OnExtensionUnloaded(
if (!InitEventRouterAndHandler())
return;
- if (extension->HasAPIPermission(APIPermission::kPushMessaging)) {
+ if (extension->permissions_data()->HasAPIPermission(
+ APIPermission::kPushMessaging)) {
handler_->UnregisterExtension(extension->id());
}
}
@@ -365,7 +368,8 @@ void PushMessagingAPI::Observe(int type,
const Extension* extension =
content::Details<const InstalledExtensionInfo>(details)->extension;
- if (extension->HasAPIPermission(APIPermission::kPushMessaging)) {
+ if (extension->permissions_data()->HasAPIPermission(
+ APIPermission::kPushMessaging)) {
handler_->SuppressInitialInvalidationsForExtension(extension->id());
}
}
diff --git a/chrome/browser/extensions/api/web_request/web_request_api.cc b/chrome/browser/extensions/api/web_request/web_request_api.cc
index b4e8158d..93ef588 100644
--- a/chrome/browser/extensions/api/web_request/web_request_api.cc
+++ b/chrome/browser/extensions/api/web_request/web_request_api.cc
@@ -2214,11 +2214,12 @@ bool WebRequestInternalAddEventListenerFunction::RunSync() {
// We check automatically whether the extension has the 'webRequest'
// permission. For blocking calls we require the additional permission
// 'webRequestBlocking'.
- if ((!is_web_view_guest && extra_info_spec &
- (ExtensionWebRequestEventRouter::ExtraInfoSpec::BLOCKING |
- ExtensionWebRequestEventRouter::ExtraInfoSpec::ASYNC_BLOCKING)) &&
- !extension->HasAPIPermission(
- extensions::APIPermission::kWebRequestBlocking)) {
+ if ((!is_web_view_guest &&
+ extra_info_spec &
+ (ExtensionWebRequestEventRouter::ExtraInfoSpec::BLOCKING |
+ ExtensionWebRequestEventRouter::ExtraInfoSpec::ASYNC_BLOCKING)) &&
+ !extension->permissions_data()->HasAPIPermission(
+ extensions::APIPermission::kWebRequestBlocking)) {
error_ = keys::kBlockingPermissionRequired;
return false;
}
diff --git a/chrome/browser/extensions/api/webrtc_audio_private/webrtc_audio_private_api.cc b/chrome/browser/extensions/api/webrtc_audio_private/webrtc_audio_private_api.cc
index 0edc00b..0b52214 100644
--- a/chrome/browser/extensions/api/webrtc_audio_private/webrtc_audio_private_api.cc
+++ b/chrome/browser/extensions/api/webrtc_audio_private/webrtc_audio_private_api.cc
@@ -17,6 +17,7 @@
#include "extensions/browser/event_router.h"
#include "extensions/browser/extension_system.h"
#include "extensions/common/error_utils.h"
+#include "extensions/common/permissions/permissions_data.h"
#include "media/audio/audio_manager_base.h"
#include "media/audio/audio_output_controller.h"
@@ -90,7 +91,7 @@ void WebrtcAudioPrivateEventService::SignalEvent() {
it != extensions->end(); ++it) {
const std::string& extension_id = (*it)->id();
if (router->ExtensionHasEventListener(extension_id, kEventName) &&
- (*it)->HasAPIPermission("webrtcAudioPrivate")) {
+ (*it)->permissions_data()->HasAPIPermission("webrtcAudioPrivate")) {
scoped_ptr<Event> event(
new Event(kEventName, make_scoped_ptr(new base::ListValue()).Pass()));
router->DispatchEventToExtension(extension_id, event.Pass());
diff --git a/chrome/browser/extensions/convert_web_app_browsertest.cc b/chrome/browser/extensions/convert_web_app_browsertest.cc
index 955e49c..b53893e 100644
--- a/chrome/browser/extensions/convert_web_app_browsertest.cc
+++ b/chrome/browser/extensions/convert_web_app_browsertest.cc
@@ -25,6 +25,7 @@
#include "extensions/common/extension_icon_set.h"
#include "extensions/common/manifest_handlers/icons_handler.h"
#include "extensions/common/permissions/permission_set.h"
+#include "extensions/common/permissions/permissions_data.h"
namespace extensions {
@@ -89,7 +90,11 @@ IN_PROC_BROWSER_TEST_F(ExtensionFromWebAppTest, DISABLED_Basic) {
AppLaunchInfo::GetLaunchWebURL(installed_extension_));
EXPECT_EQ(LAUNCH_CONTAINER_TAB,
AppLaunchInfo::GetLaunchContainer(installed_extension_));
- EXPECT_EQ(0u, installed_extension_->GetActivePermissions()->apis().size());
+ EXPECT_EQ(0u,
+ installed_extension_->permissions_data()
+ ->active_permissions()
+ ->apis()
+ .size());
EXPECT_EQ(0u, IconsInfo::GetIcons(installed_extension_).map().size());
}
diff --git a/chrome/browser/extensions/convert_web_app_unittest.cc b/chrome/browser/extensions/convert_web_app_unittest.cc
index b8be22f..48d262b 100644
--- a/chrome/browser/extensions/convert_web_app_unittest.cc
+++ b/chrome/browser/extensions/convert_web_app_unittest.cc
@@ -23,6 +23,7 @@
#include "extensions/common/extension_resource.h"
#include "extensions/common/manifest_handlers/icons_handler.h"
#include "extensions/common/permissions/permission_set.h"
+#include "extensions/common/permissions/permissions_data.h"
#include "extensions/common/url_pattern.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "ui/gfx/codec/png_codec.h"
@@ -129,7 +130,8 @@ TEST(ExtensionFromWebApp, Basic) {
EXPECT_EQ(base::UTF16ToUTF8(web_app.title), extension->name());
EXPECT_EQ(base::UTF16ToUTF8(web_app.description), extension->description());
EXPECT_EQ(web_app.app_url, AppLaunchInfo::GetFullLaunchURL(extension.get()));
- EXPECT_EQ(0u, extension->GetActivePermissions()->apis().size());
+ EXPECT_EQ(0u,
+ extension->permissions_data()->active_permissions()->apis().size());
ASSERT_EQ(0u, extension->web_extent().patterns().size());
EXPECT_EQ(web_app.icons.size(),
@@ -175,7 +177,8 @@ TEST(ExtensionFromWebApp, Minimal) {
EXPECT_EQ("", extension->description());
EXPECT_EQ(web_app.app_url, AppLaunchInfo::GetFullLaunchURL(extension.get()));
EXPECT_EQ(0u, IconsInfo::GetIcons(extension.get()).map().size());
- EXPECT_EQ(0u, extension->GetActivePermissions()->apis().size());
+ EXPECT_EQ(0u,
+ extension->permissions_data()->active_permissions()->apis().size());
ASSERT_EQ(0u, extension->web_extent().patterns().size());
}
diff --git a/chrome/browser/extensions/extension_disabled_ui.cc b/chrome/browser/extensions/extension_disabled_ui.cc
index 3bdc8e5..1bd9f92 100644
--- a/chrome/browser/extensions/extension_disabled_ui.cc
+++ b/chrome/browser/extensions/extension_disabled_ui.cc
@@ -39,6 +39,7 @@
#include "extensions/common/manifest_handlers/icons_handler.h"
#include "extensions/common/permissions/permission_message_provider.h"
#include "extensions/common/permissions/permission_set.h"
+#include "extensions/common/permissions/permissions_data.h"
#include "grit/chromium_strings.h"
#include "grit/generated_resources.h"
#include "grit/theme_resources.h"
@@ -290,7 +291,8 @@ ExtensionDisabledGlobalError::GetBubbleViewMessages() {
std::vector<base::string16> messages;
std::vector<base::string16> permission_warnings =
extensions::PermissionMessageProvider::Get()->GetWarningMessages(
- extension_->GetActivePermissions(), extension_->GetType());
+ extension_->permissions_data()->active_permissions(),
+ extension_->GetType());
if (is_remote_install_) {
messages.push_back(l10n_util::GetStringFUTF16(
extension_->is_app()
diff --git a/chrome/browser/extensions/extension_gcm_app_handler_unittest.cc b/chrome/browser/extensions/extension_gcm_app_handler_unittest.cc
index 5ec0e8b..24d802f 100644
--- a/chrome/browser/extensions/extension_gcm_app_handler_unittest.cc
+++ b/chrome/browser/extensions/extension_gcm_app_handler_unittest.cc
@@ -41,6 +41,7 @@
#include "extensions/common/manifest.h"
#include "extensions/common/manifest_constants.h"
#include "extensions/common/permissions/api_permission.h"
+#include "extensions/common/permissions/permissions_data.h"
#include "testing/gtest/include/gtest/gtest.h"
#if !defined(OS_ANDROID)
@@ -257,7 +258,8 @@ class ExtensionGCMAppHandlerTest : public testing::Test {
Extension::NO_FLAGS,
&error);
EXPECT_TRUE(extension.get()) << error;
- EXPECT_TRUE(extension->HasAPIPermission(APIPermission::kGcm));
+ EXPECT_TRUE(
+ extension->permissions_data()->HasAPIPermission(APIPermission::kGcm));
return extension;
}
diff --git a/chrome/browser/extensions/extension_install_prompt.cc b/chrome/browser/extensions/extension_install_prompt.cc
index f0947c2..f0ba3c7 100644
--- a/chrome/browser/extensions/extension_install_prompt.cc
+++ b/chrome/browser/extensions/extension_install_prompt.cc
@@ -530,7 +530,7 @@ void ExtensionInstallPrompt::ConfirmStandaloneInstall(
const ExtensionInstallPrompt::Prompt& prompt) {
DCHECK(ui_loop_ == base::MessageLoop::current());
extension_ = extension;
- permissions_ = extension->GetActivePermissions();
+ permissions_ = extension->permissions_data()->active_permissions();
delegate_ = delegate;
prompt_ = prompt;
@@ -556,7 +556,7 @@ void ExtensionInstallPrompt::ConfirmInstall(
const ShowDialogCallback& show_dialog_callback) {
DCHECK(ui_loop_ == base::MessageLoop::current());
extension_ = extension;
- permissions_ = extension->GetActivePermissions();
+ permissions_ = extension->permissions_data()->active_permissions();
delegate_ = delegate;
prompt_.set_type(INSTALL_PROMPT);
show_dialog_callback_ = show_dialog_callback;
@@ -583,7 +583,7 @@ void ExtensionInstallPrompt::ConfirmReEnable(Delegate* delegate,
const Extension* extension) {
DCHECK(ui_loop_ == base::MessageLoop::current());
extension_ = extension;
- permissions_ = extension->GetActivePermissions();
+ permissions_ = extension->permissions_data()->active_permissions();
delegate_ = delegate;
bool is_remote_install =
install_ui_->profile() &&
@@ -607,7 +607,7 @@ void ExtensionInstallPrompt::ConfirmExternalInstall(
const Prompt& prompt) {
DCHECK(ui_loop_ == base::MessageLoop::current());
extension_ = extension;
- permissions_ = extension->GetActivePermissions();
+ permissions_ = extension->permissions_data()->active_permissions();
delegate_ = delegate;
prompt_ = prompt;
show_dialog_callback_ = show_dialog_callback;
@@ -634,7 +634,7 @@ void ExtensionInstallPrompt::ReviewPermissions(
const std::vector<base::FilePath>& retained_file_paths) {
DCHECK(ui_loop_ == base::MessageLoop::current());
extension_ = extension;
- permissions_ = extension->GetActivePermissions();
+ permissions_ = extension->permissions_data()->active_permissions();
prompt_.set_retained_files(retained_file_paths);
delegate_ = delegate;
prompt_.set_type(POST_INSTALL_PERMISSIONS_PROMPT);
diff --git a/chrome/browser/extensions/extension_service.cc b/chrome/browser/extensions/extension_service.cc
index bb23964..c124c72 100644
--- a/chrome/browser/extensions/extension_service.cc
+++ b/chrome/browser/extensions/extension_service.cc
@@ -1672,9 +1672,9 @@ void ExtensionService::CheckPermissionsIncrease(const Extension* extension,
// to a version that requires additional privileges.
is_privilege_increase =
extensions::PermissionMessageProvider::Get()->IsPrivilegeIncrease(
- granted_permissions,
- extension->GetActivePermissions().get(),
- extension->GetType());
+ granted_permissions,
+ extension->permissions_data()->active_permissions().get(),
+ extension->GetType());
}
if (is_extension_installed) {
diff --git a/chrome/browser/extensions/extension_service_unittest.cc b/chrome/browser/extensions/extension_service_unittest.cc
index da2e193..a0d61e5 100644
--- a/chrome/browser/extensions/extension_service_unittest.cc
+++ b/chrome/browser/extensions/extension_service_unittest.cc
@@ -104,6 +104,7 @@
#include "extensions/common/manifest_constants.h"
#include "extensions/common/manifest_handlers/background_info.h"
#include "extensions/common/permissions/permission_set.h"
+#include "extensions/common/permissions/permissions_data.h"
#include "extensions/common/switches.h"
#include "extensions/common/url_pattern.h"
#include "extensions/common/value_builder.h"
@@ -1401,8 +1402,9 @@ TEST_F(ExtensionServiceTest, LoadAllExtensionsFromDirectorySuccess) {
expected_patterns.ClearPatterns();
AddPattern(&expected_patterns, "http://*.google.com/*");
AddPattern(&expected_patterns, "https://*.google.com/*");
- EXPECT_EQ(expected_patterns,
- extension->GetActivePermissions()->explicit_hosts());
+ EXPECT_EQ(
+ expected_patterns,
+ extension->permissions_data()->active_permissions()->explicit_hosts());
EXPECT_EQ(std::string(good1), loaded_[1]->id());
EXPECT_EQ(std::string("My extension 2"), loaded_[1]->name());
@@ -2605,7 +2607,7 @@ TEST_F(ExtensionServiceTest, InstallAppsWithUnlimitedStorage) {
ValidatePrefKeyCount(++pref_count);
ASSERT_EQ(1u, registry_->enabled_extensions().size());
const std::string id1 = extension->id();
- EXPECT_TRUE(extension->HasAPIPermission(
+ EXPECT_TRUE(extension->permissions_data()->HasAPIPermission(
APIPermission::kUnlimitedStorage));
EXPECT_TRUE(extension->web_extent().MatchesURL(
extensions::AppLaunchInfo::GetFullLaunchURL(extension)));
@@ -2619,7 +2621,7 @@ TEST_F(ExtensionServiceTest, InstallAppsWithUnlimitedStorage) {
ValidatePrefKeyCount(++pref_count);
ASSERT_EQ(2u, registry_->enabled_extensions().size());
const std::string id2 = extension->id();
- EXPECT_TRUE(extension->HasAPIPermission(
+ EXPECT_TRUE(extension->permissions_data()->HasAPIPermission(
APIPermission::kUnlimitedStorage));
EXPECT_TRUE(extension->web_extent().MatchesURL(
extensions::AppLaunchInfo::GetFullLaunchURL(extension)));
@@ -4520,7 +4522,7 @@ TEST_F(ExtensionServiceTest, ClearAppData) {
ValidatePrefKeyCount(++pref_count);
ASSERT_EQ(1u, registry_->enabled_extensions().size());
const std::string id1 = extension->id();
- EXPECT_TRUE(extension->HasAPIPermission(
+ EXPECT_TRUE(extension->permissions_data()->HasAPIPermission(
APIPermission::kUnlimitedStorage));
const GURL origin1(
extensions::AppLaunchInfo::GetFullLaunchURL(extension).GetOrigin());
@@ -4533,7 +4535,7 @@ TEST_F(ExtensionServiceTest, ClearAppData) {
ValidatePrefKeyCount(++pref_count);
ASSERT_EQ(2u, registry_->enabled_extensions().size());
const std::string id2 = extension->id();
- EXPECT_TRUE(extension->HasAPIPermission(
+ EXPECT_TRUE(extension->permissions_data()->HasAPIPermission(
APIPermission::kUnlimitedStorage));
EXPECT_TRUE(extension->web_extent().MatchesURL(
extensions::AppLaunchInfo::GetFullLaunchURL(extension)));
diff --git a/chrome/browser/extensions/extension_special_storage_policy.cc b/chrome/browser/extensions/extension_special_storage_policy.cc
index 219e8ec..57c91fb 100644
--- a/chrome/browser/extensions/extension_special_storage_policy.cc
+++ b/chrome/browser/extensions/extension_special_storage_policy.cc
@@ -20,6 +20,7 @@
#include "extensions/common/constants.h"
#include "extensions/common/extension.h"
#include "extensions/common/extension_set.h"
+#include "extensions/common/permissions/permissions_data.h"
using content::BrowserThread;
using extensions::APIPermission;
@@ -103,8 +104,10 @@ void ExtensionSpecialStoragePolicy::GrantRightsForExtension(
const extensions::Extension* extension) {
DCHECK(extension);
if (!(NeedsProtection(extension) ||
- extension->HasAPIPermission(APIPermission::kUnlimitedStorage) ||
- extension->HasAPIPermission(APIPermission::kFileBrowserHandler) ||
+ extension->permissions_data()->HasAPIPermission(
+ APIPermission::kUnlimitedStorage) ||
+ extension->permissions_data()->HasAPIPermission(
+ APIPermission::kFileBrowserHandler) ||
extensions::AppIsolationInfo::HasIsolatedStorage(extension) ||
extension->is_app())) {
return;
@@ -119,11 +122,13 @@ void ExtensionSpecialStoragePolicy::GrantRightsForExtension(
if (extension->is_app())
installed_apps_.Add(extension);
- if (extension->HasAPIPermission(APIPermission::kUnlimitedStorage) &&
+ if (extension->permissions_data()->HasAPIPermission(
+ APIPermission::kUnlimitedStorage) &&
unlimited_extensions_.Add(extension))
change_flags |= SpecialStoragePolicy::STORAGE_UNLIMITED;
- if (extension->HasAPIPermission(APIPermission::kFileBrowserHandler))
+ if (extension->permissions_data()->HasAPIPermission(
+ APIPermission::kFileBrowserHandler))
file_handler_extensions_.Add(extension);
if (extensions::AppIsolationInfo::HasIsolatedStorage(extension))
@@ -140,8 +145,10 @@ void ExtensionSpecialStoragePolicy::RevokeRightsForExtension(
const extensions::Extension* extension) {
DCHECK(extension);
if (!(NeedsProtection(extension) ||
- extension->HasAPIPermission(APIPermission::kUnlimitedStorage) ||
- extension->HasAPIPermission(APIPermission::kFileBrowserHandler) ||
+ extension->permissions_data()->HasAPIPermission(
+ APIPermission::kUnlimitedStorage) ||
+ extension->permissions_data()->HasAPIPermission(
+ APIPermission::kFileBrowserHandler) ||
extensions::AppIsolationInfo::HasIsolatedStorage(extension) ||
extension->is_app())) {
return;
@@ -155,11 +162,13 @@ void ExtensionSpecialStoragePolicy::RevokeRightsForExtension(
if (extension->is_app())
installed_apps_.Remove(extension);
- if (extension->HasAPIPermission(APIPermission::kUnlimitedStorage) &&
+ if (extension->permissions_data()->HasAPIPermission(
+ APIPermission::kUnlimitedStorage) &&
unlimited_extensions_.Remove(extension))
change_flags |= SpecialStoragePolicy::STORAGE_UNLIMITED;
- if (extension->HasAPIPermission(APIPermission::kFileBrowserHandler))
+ if (extension->permissions_data()->HasAPIPermission(
+ APIPermission::kFileBrowserHandler))
file_handler_extensions_.Remove(extension);
if (extensions::AppIsolationInfo::HasIsolatedStorage(extension))
diff --git a/chrome/browser/extensions/extension_storage_monitor.cc b/chrome/browser/extensions/extension_storage_monitor.cc
index e89201d..88b5013 100644
--- a/chrome/browser/extensions/extension_storage_monitor.cc
+++ b/chrome/browser/extensions/extension_storage_monitor.cc
@@ -26,6 +26,7 @@
#include "extensions/browser/extension_system.h"
#include "extensions/common/extension.h"
#include "extensions/common/manifest_handlers/icons_handler.h"
+#include "extensions/common/permissions/permissions_data.h"
#include "grit/generated_resources.h"
#include "ui/base/l10n/l10n_util.h"
#include "ui/message_center/message_center.h"
@@ -69,7 +70,8 @@ const char kPrefDisableStorageNotifications[] = "disable_storage_notifications";
bool ShouldMonitorStorageFor(const Extension* extension) {
// Only monitor storage for extensions that are granted unlimited storage.
// Do not monitor storage for component extensions.
- return extension->HasAPIPermission(APIPermission::kUnlimitedStorage) &&
+ return extension->permissions_data()->HasAPIPermission(
+ APIPermission::kUnlimitedStorage) &&
extension->location() != Manifest::COMPONENT;
}
diff --git a/chrome/browser/extensions/extension_tab_util.cc b/chrome/browser/extensions/extension_tab_util.cc
index fc1d3c5..7f52623 100644
--- a/chrome/browser/extensions/extension_tab_util.cc
+++ b/chrome/browser/extensions/extension_tab_util.cc
@@ -402,8 +402,9 @@ void ExtensionTabUtil::ScrubTabValueForExtension(
void ExtensionTabUtil::ScrubTabForExtension(const Extension* extension,
api::tabs::Tab* tab) {
- bool has_permission = extension && extension->HasAPIPermission(
- APIPermission::kTab);
+ bool has_permission =
+ extension &&
+ extension->permissions_data()->HasAPIPermission(APIPermission::kTab);
if (!has_permission) {
tab->url.reset();
diff --git a/chrome/browser/extensions/permissions_updater.cc b/chrome/browser/extensions/permissions_updater.cc
index c132adb..814c5b3 100644
--- a/chrome/browser/extensions/permissions_updater.cc
+++ b/chrome/browser/extensions/permissions_updater.cc
@@ -36,7 +36,7 @@ PermissionsUpdater::~PermissionsUpdater() {}
void PermissionsUpdater::AddPermissions(
const Extension* extension, const PermissionSet* permissions) {
scoped_refptr<const PermissionSet> existing(
- extension->GetActivePermissions());
+ extension->permissions_data()->active_permissions());
scoped_refptr<PermissionSet> total(
PermissionSet::CreateUnion(existing.get(), permissions));
scoped_refptr<PermissionSet> added(
@@ -53,7 +53,7 @@ void PermissionsUpdater::AddPermissions(
void PermissionsUpdater::RemovePermissions(
const Extension* extension, const PermissionSet* permissions) {
scoped_refptr<const PermissionSet> existing(
- extension->GetActivePermissions());
+ extension->permissions_data()->active_permissions());
scoped_refptr<PermissionSet> total(
PermissionSet::CreateDifference(existing.get(), permissions));
scoped_refptr<PermissionSet> removed(
@@ -77,7 +77,8 @@ void PermissionsUpdater::GrantActivePermissions(const Extension* extension) {
return;
ExtensionPrefs::Get(profile_)->AddGrantedPermissions(
- extension->id(), extension->GetActivePermissions().get());
+ extension->id(),
+ extension->permissions_data()->active_permissions().get());
}
void PermissionsUpdater::UpdateActivePermissions(
diff --git a/chrome/browser/extensions/permissions_updater_unittest.cc b/chrome/browser/extensions/permissions_updater_unittest.cc
index 70cd6cf..c9c8c80 100644
--- a/chrome/browser/extensions/permissions_updater_unittest.cc
+++ b/chrome/browser/extensions/permissions_updater_unittest.cc
@@ -21,6 +21,7 @@
#include "extensions/browser/extension_prefs.h"
#include "extensions/common/extension.h"
#include "extensions/common/permissions/permission_set.h"
+#include "extensions/common/permissions/permissions_data.h"
#include "testing/gtest/include/gtest/gtest.h"
using extension_test_util::LoadManifest;
@@ -130,9 +131,9 @@ TEST_F(PermissionsUpdaterTest, AddAndRemovePermissions) {
// Make sure it loaded properly.
scoped_refptr<const PermissionSet> permissions =
- extension->GetActivePermissions();
+ extension->permissions_data()->active_permissions();
ASSERT_EQ(*default_permissions.get(),
- *extension->GetActivePermissions().get());
+ *extension->permissions_data()->active_permissions().get());
// Add a few permissions.
APIPermissionSet apis;
@@ -161,7 +162,7 @@ TEST_F(PermissionsUpdaterTest, AddAndRemovePermissions) {
scoped_refptr<PermissionSet> active_permissions =
PermissionSet::CreateUnion(default_permissions.get(), delta.get());
ASSERT_EQ(*active_permissions.get(),
- *extension->GetActivePermissions().get());
+ *extension->permissions_data()->active_permissions().get());
// Verify that the new granted and active permissions were also stored
// in the extension preferences. In this case, the granted permissions should
@@ -197,7 +198,7 @@ TEST_F(PermissionsUpdaterTest, AddAndRemovePermissions) {
active_permissions =
PermissionSet::CreateDifference(active_permissions.get(), delta.get());
ASSERT_EQ(*active_permissions.get(),
- *extension->GetActivePermissions().get());
+ *extension->permissions_data()->active_permissions().get());
// Verify that the extension prefs hold the new active permissions and the
// same granted permissions.
diff --git a/chrome/browser/extensions/suggest_permission_util.cc b/chrome/browser/extensions/suggest_permission_util.cc
index 4490762..66a0f6a 100644
--- a/chrome/browser/extensions/suggest_permission_util.cc
+++ b/chrome/browser/extensions/suggest_permission_util.cc
@@ -11,6 +11,7 @@
#include "extensions/browser/process_manager.h"
#include "extensions/common/extension.h"
#include "extensions/common/extension_messages.h"
+#include "extensions/common/permissions/permissions_data.h"
#include "extensions/common/permissions/permissions_info.h"
using content::CONSOLE_MESSAGE_LEVEL_WARNING;
@@ -49,7 +50,7 @@ bool IsExtensionWithPermissionOrSuggestInConsole(
APIPermission::ID permission,
const Extension* extension,
content::RenderViewHost* host) {
- if (extension && extension->HasAPIPermission(permission))
+ if (extension && extension->permissions_data()->HasAPIPermission(permission))
return true;
if (extension)