diff options
author | rdevlin.cronin@chromium.org <rdevlin.cronin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-06-06 21:47:26 +0000 |
---|---|---|
committer | rdevlin.cronin@chromium.org <rdevlin.cronin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-06-06 21:47:26 +0000 |
commit | 076ebedaa781461c668ea435ef3af3ca707775d5 (patch) | |
tree | 5189adac73248df281db674fff5ce4c08dda0ce8 | |
parent | 4bd4064aede02bd5ae1c0a4b7a01af4830abb47a (diff) | |
download | chromium_src-076ebedaa781461c668ea435ef3af3ca707775d5.zip chromium_src-076ebedaa781461c668ea435ef3af3ca707775d5.tar.gz chromium_src-076ebedaa781461c668ea435ef3af3ca707775d5.tar.bz2 |
Remove deprecated permissions functions from Extension
The methods GetActivePermission() and HasAPIPermission() have been deprecated
for more than a year. Finally remove them.
Also clean up some includes in extension.h, and fix transitive includes.
BUG=379356
TBR=atwilson@chromium.org (c/b/background)
TBR=yurys@chromium.org (c/b/devtools)
TBR=bauerb@chromium.org (c/b/managed_mode)
TBR=dalecurtis@chromium.org (c/b/media)
TBR=dewittj@chromium.org (c/b/notifications)
TBR=msw@chromium.org (c/b/ui)
All TBRs are for strictly mechanical changes - no functional difference.
Review URL: https://codereview.chromium.org/314113010
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@275531 0039d316-1c4b-4281-b951-d872f2087c98
68 files changed, 315 insertions, 197 deletions
diff --git a/apps/app_window.cc b/apps/app_window.cc index be59b80..dbc28f7 100644 --- a/apps/app_window.cc +++ b/apps/app_window.cc @@ -41,6 +41,7 @@ #include "extensions/common/extension.h" #include "extensions/common/extension_messages.h" #include "extensions/common/manifest_handlers/icons_handler.h" +#include "extensions/common/permissions/permissions_data.h" #include "grit/theme_resources.h" #include "third_party/skia/include/core/SkRegion.h" #include "ui/base/resource/resource_bundle.h" @@ -432,7 +433,8 @@ bool AppWindow::PreHandleKeyboardEvent( if (event.windowsKeyCode == ui::VKEY_ESCAPE && (fullscreen_types_ != FULLSCREEN_TYPE_NONE) && ((fullscreen_types_ & FULLSCREEN_TYPE_FORCED) == 0) && - !extension->HasAPIPermission(APIPermission::kOverrideEscFullscreen)) { + !extension->permissions_data()->HasAPIPermission( + APIPermission::kOverrideEscFullscreen)) { Restore(); return true; } diff --git a/apps/saved_files_service.cc b/apps/saved_files_service.cc index f1e12c7..f8053c0 100644 --- a/apps/saved_files_service.cc +++ b/apps/saved_files_service.cc @@ -19,6 +19,7 @@ #include "extensions/browser/extension_util.h" #include "extensions/common/permissions/api_permission.h" #include "extensions/common/permissions/permission_set.h" +#include "extensions/common/permissions/permissions_data.h" namespace apps { @@ -262,7 +263,7 @@ const SavedFileEntry* SavedFilesService::GetFileEntry( void SavedFilesService::ClearQueueIfNoRetainPermission( const Extension* extension) { if (extensions::util::IsEphemeralApp(extension->id(), profile_) || - !extension->GetActivePermissions()->HasAPIPermission( + !extension->permissions_data()->active_permissions()->HasAPIPermission( APIPermission::kFileSystemRetainEntries)) { ClearQueue(extension); } diff --git a/chrome/browser/background/background_application_list_model.cc b/chrome/browser/background/background_application_list_model.cc index 9969a8f..1c65a31 100644 --- a/chrome/browser/background/background_application_list_model.cc +++ b/chrome/browser/background/background_application_list_model.cc @@ -33,6 +33,7 @@ #include "extensions/common/manifest_handlers/background_info.h" #include "extensions/common/manifest_handlers/icons_handler.h" #include "extensions/common/permissions/permission_set.h" +#include "extensions/common/permissions/permissions_data.h" #include "ui/base/l10n/l10n_util_collator.h" #include "ui/gfx/image/image.h" #include "ui/gfx/image/image_skia.h" @@ -277,8 +278,10 @@ int BackgroundApplicationListModel::GetPosition( bool BackgroundApplicationListModel::RequiresBackgroundModeForPushMessaging( const Extension& extension) { // No PushMessaging permission - does not require the background mode. - if (!extension.HasAPIPermission(APIPermission::kPushMessaging)) + if (!extension.permissions_data()->HasAPIPermission( + APIPermission::kPushMessaging)) { return false; + } // If in the whitelist, then does not require background mode even if // uses push messaging. @@ -306,7 +309,8 @@ bool BackgroundApplicationListModel::IsBackgroundApp( // Not a background app if we don't have the background permission or // the push messaging permission - if (!extension.HasAPIPermission(APIPermission::kBackground) && + if (!extension.permissions_data()->HasAPIPermission( + APIPermission::kBackground) && !RequiresBackgroundModeForPushMessaging(extension)) return false; diff --git a/chrome/browser/background/background_application_list_model_unittest.cc b/chrome/browser/background/background_application_list_model_unittest.cc index 34b0ae4..3e5f413 100644 --- a/chrome/browser/background/background_application_list_model_unittest.cc +++ b/chrome/browser/background/background_application_list_model_unittest.cc @@ -25,6 +25,7 @@ #include "extensions/common/manifest_constants.h" #include "extensions/common/permissions/api_permission.h" #include "extensions/common/permissions/permission_set.h" +#include "extensions/common/permissions/permissions_data.h" #include "testing/gtest/include/gtest/gtest.h" // This value is used to seed the PRNG at the beginning of a sequence of @@ -139,7 +140,7 @@ void AddBackgroundPermission(ExtensionService* service, scoped_refptr<Extension> temporary = CreateExtension(GenerateUniqueExtensionName(), true); scoped_refptr<const extensions::PermissionSet> permissions = - temporary->GetActivePermissions(); + temporary->permissions_data()->active_permissions(); extensions::PermissionsUpdater(service->profile()).AddPermissions( extension, permissions.get()); } @@ -150,8 +151,8 @@ void RemoveBackgroundPermission(ExtensionService* service, service->profile())) { return; } - extensions::PermissionsUpdater(service->profile()) - .RemovePermissions(extension, extension->GetActivePermissions().get()); + extensions::PermissionsUpdater(service->profile()).RemovePermissions( + extension, extension->permissions_data()->active_permissions().get()); } } // namespace @@ -319,9 +320,11 @@ TEST_F(BackgroundApplicationListModelTest, AddRemovePermissionsTest) { ASSERT_EQ(0U, model->size()); scoped_refptr<Extension> ext = CreateExtension("extension", false); - ASSERT_FALSE(ext->HasAPIPermission(APIPermission::kBackground)); + ASSERT_FALSE( + ext->permissions_data()->HasAPIPermission(APIPermission::kBackground)); scoped_refptr<Extension> bgapp = CreateExtension("application", true); - ASSERT_TRUE(bgapp->HasAPIPermission(APIPermission::kBackground)); + ASSERT_TRUE( + bgapp->permissions_data()->HasAPIPermission(APIPermission::kBackground)); ASSERT_TRUE(service->extensions() != NULL); ASSERT_EQ(0U, service->extensions()->size()); ASSERT_EQ(0U, model->size()); @@ -338,19 +341,23 @@ TEST_F(BackgroundApplicationListModelTest, AddRemovePermissionsTest) { // Change permissions back and forth AddBackgroundPermission(service, ext.get()); - ASSERT_TRUE(ext->HasAPIPermission(APIPermission::kBackground)); + ASSERT_TRUE( + ext->permissions_data()->HasAPIPermission(APIPermission::kBackground)); ASSERT_EQ(2U, service->extensions()->size()); ASSERT_EQ(2U, model->size()); RemoveBackgroundPermission(service, bgapp.get()); - ASSERT_FALSE(bgapp->HasAPIPermission(APIPermission::kBackground)); + ASSERT_FALSE( + bgapp->permissions_data()->HasAPIPermission(APIPermission::kBackground)); ASSERT_EQ(2U, service->extensions()->size()); ASSERT_EQ(1U, model->size()); RemoveBackgroundPermission(service, ext.get()); - ASSERT_FALSE(ext->HasAPIPermission(APIPermission::kBackground)); + ASSERT_FALSE( + ext->permissions_data()->HasAPIPermission(APIPermission::kBackground)); ASSERT_EQ(2U, service->extensions()->size()); ASSERT_EQ(0U, model->size()); AddBackgroundPermission(service, bgapp.get()); - ASSERT_TRUE(bgapp->HasAPIPermission(APIPermission::kBackground)); + ASSERT_TRUE( + bgapp->permissions_data()->HasAPIPermission(APIPermission::kBackground)); ASSERT_EQ(2U, service->extensions()->size()); ASSERT_EQ(1U, model->size()); } diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc index 8a0a08b..97d504a 100644 --- a/chrome/browser/chrome_content_browser_client.cc +++ b/chrome/browser/chrome_content_browser_client.cc @@ -1040,7 +1040,8 @@ bool ChromeContentBrowserClient::ShouldUseProcessPerSite( // page, we want to give each instance its own process to improve // responsiveness. if (extension->GetType() == Manifest::TYPE_HOSTED_APP) { - if (!extension->HasAPIPermission(APIPermission::kBackground) || + if (!extension->permissions_data()->HasAPIPermission( + APIPermission::kBackground) || !extensions::BackgroundInfo::AllowJSAccess(extension)) { return false; } diff --git a/chrome/browser/devtools/devtools_ui_bindings.cc b/chrome/browser/devtools/devtools_ui_bindings.cc index 65dd557..ae45cdb 100644 --- a/chrome/browser/devtools/devtools_ui_bindings.cc +++ b/chrome/browser/devtools/devtools_ui_bindings.cc @@ -49,6 +49,7 @@ #include "content/public/common/url_constants.h" #include "extensions/browser/extension_system.h" #include "extensions/common/extension_set.h" +#include "extensions/common/permissions/permissions_data.h" #include "grit/generated_resources.h" #include "ui/base/l10n/l10n_util.h" @@ -757,10 +758,10 @@ void DevToolsUIBindings::AddDevToolsExtensionsToClient() { extensions::ManifestURL::GetDevToolsPage( extension->get()).spec())); extension_info->Set("name", new base::StringValue((*extension)->name())); - extension_info->Set( - "exposeExperimentalAPIs", - new base::FundamentalValue((*extension)->HasAPIPermission( - extensions::APIPermission::kExperimental))); + extension_info->Set("exposeExperimentalAPIs", + new base::FundamentalValue( + (*extension)->permissions_data()->HasAPIPermission( + extensions::APIPermission::kExperimental))); results.Append(extension_info); } CallClientFunction("WebInspector.addExtensions", &results, NULL, NULL); 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) diff --git a/chrome/browser/managed_mode/managed_user_service.h b/chrome/browser/managed_mode/managed_user_service.h index e8b69d1..e6e1394 100644 --- a/chrome/browser/managed_mode/managed_user_service.h +++ b/chrome/browser/managed_mode/managed_user_service.h @@ -9,6 +9,7 @@ #include <vector> #include "base/callback.h" +#include "base/gtest_prod_util.h" #include "base/memory/scoped_ptr.h" #include "base/prefs/pref_change_registrar.h" #include "base/scoped_observer.h" diff --git a/chrome/browser/media/media_capture_devices_dispatcher.cc b/chrome/browser/media/media_capture_devices_dispatcher.cc index 87fcb2a..05d32ec 100644 --- a/chrome/browser/media/media_capture_devices_dispatcher.cc +++ b/chrome/browser/media/media_capture_devices_dispatcher.cc @@ -41,6 +41,7 @@ #include "content/public/common/media_stream_request.h" #include "extensions/common/constants.h" #include "extensions/common/extension.h" +#include "extensions/common/permissions/permissions_data.h" #include "grit/generated_resources.h" #include "media/audio/audio_manager_base.h" #include "media/base/media_switches.h" @@ -550,14 +551,16 @@ void MediaCaptureDevicesDispatcher::ProcessTabCaptureAccessRequest( if (request.audio_type == content::MEDIA_TAB_AUDIO_CAPTURE && tab_capture_allowed && - extension->HasAPIPermission(extensions::APIPermission::kTabCapture)) { + extension->permissions_data()->HasAPIPermission( + extensions::APIPermission::kTabCapture)) { devices.push_back(content::MediaStreamDevice( content::MEDIA_TAB_AUDIO_CAPTURE, std::string(), std::string())); } if (request.video_type == content::MEDIA_TAB_VIDEO_CAPTURE && tab_capture_allowed && - extension->HasAPIPermission(extensions::APIPermission::kTabCapture)) { + extension->permissions_data()->HasAPIPermission( + extensions::APIPermission::kTabCapture)) { devices.push_back(content::MediaStreamDevice( content::MEDIA_TAB_VIDEO_CAPTURE, std::string(), std::string())); } @@ -585,12 +588,14 @@ void MediaCaptureDevicesDispatcher:: Profile::FromBrowserContext(web_contents->GetBrowserContext()); if (request.audio_type == content::MEDIA_DEVICE_AUDIO_CAPTURE && - extension->HasAPIPermission(extensions::APIPermission::kAudioCapture)) { + extension->permissions_data()->HasAPIPermission( + extensions::APIPermission::kAudioCapture)) { GetDefaultDevicesForProfile(profile, true, false, &devices); } if (request.video_type == content::MEDIA_DEVICE_VIDEO_CAPTURE && - extension->HasAPIPermission(extensions::APIPermission::kVideoCapture)) { + extension->permissions_data()->HasAPIPermission( + extensions::APIPermission::kVideoCapture)) { GetDefaultDevicesForProfile(profile, false, true, &devices); } diff --git a/chrome/browser/notifications/message_center_settings_controller.cc b/chrome/browser/notifications/message_center_settings_controller.cc index d5613ce..9a6d732 100644 --- a/chrome/browser/notifications/message_center_settings_controller.cc +++ b/chrome/browser/notifications/message_center_settings_controller.cc @@ -35,6 +35,8 @@ #include "extensions/browser/extension_system.h" #include "extensions/browser/extension_util.h" #include "extensions/common/constants.h" +#include "extensions/common/extension.h" +#include "extensions/common/permissions/permissions_data.h" #include "grit/theme_resources.h" #include "grit/ui_strings.h" #include "ui/base/l10n/l10n_util.h" @@ -227,7 +229,7 @@ void MessageCenterSettingsController::GetNotifierList( iter != extension_set->end(); ++iter) { const extensions::Extension* extension = iter->get(); - if (!extension->HasAPIPermission( + if (!extension->permissions_data()->HasAPIPermission( extensions::APIPermission::kNotification)) { continue; } diff --git a/chrome/browser/ui/app_list/drive/drive_app_converter_browsertest.cc b/chrome/browser/ui/app_list/drive/drive_app_converter_browsertest.cc index ec6ba39..095a51b 100644 --- a/chrome/browser/ui/app_list/drive/drive_app_converter_browsertest.cc +++ b/chrome/browser/ui/app_list/drive/drive_app_converter_browsertest.cc @@ -20,6 +20,7 @@ #include "extensions/common/extension.h" #include "extensions/common/manifest_handlers/icons_handler.h" #include "extensions/common/permissions/permission_set.h" +#include "extensions/common/permissions/permissions_data.h" #include "net/test/embedded_test_server/embedded_test_server.h" #include "testing/gtest/include/gtest/gtest.h" @@ -110,7 +111,7 @@ IN_PROC_BROWSER_TEST_F(DriveAppConverterTest, GoodApp) { EXPECT_EQ(GURL(kAppUrl), extensions::AppLaunchInfo::GetLaunchWebURL(app)); EXPECT_EQ(extensions::LAUNCH_CONTAINER_TAB, extensions::AppLaunchInfo::GetLaunchContainer(app)); - EXPECT_EQ(0u, app->GetActivePermissions()->apis().size()); + EXPECT_EQ(0u, app->permissions_data()->active_permissions()->apis().size()); EXPECT_EQ(1u, extensions::IconsInfo::GetIcons(app).map().size()); const extensions::Extension* installed = diff --git a/chrome/browser/ui/views/apps/app_info_dialog/app_info_permissions_tab.cc b/chrome/browser/ui/views/apps/app_info_dialog/app_info_permissions_tab.cc index 6247254..9236ebc 100644 --- a/chrome/browser/ui/views/apps/app_info_dialog/app_info_permissions_tab.cc +++ b/chrome/browser/ui/views/apps/app_info_dialog/app_info_permissions_tab.cc @@ -14,6 +14,7 @@ #include "extensions/common/manifest_handlers/permissions_parser.h" #include "extensions/common/permissions/api_permission.h" #include "extensions/common/permissions/permission_message_provider.h" +#include "extensions/common/permissions/permissions_data.h" #include "grit/generated_resources.h" #include "grit/theme_resources.h" #include "ui/base/l10n/l10n_util.h" @@ -467,7 +468,8 @@ AppInfoPermissionsTab::GetOptionalPermissionMessages() const { const std::vector<base::FilePath> AppInfoPermissionsTab::GetRetainedFilePermissions() const { std::vector<base::FilePath> retained_file_paths; - if (app_->HasAPIPermission(extensions::APIPermission::kFileSystem)) { + if (app_->permissions_data()->HasAPIPermission( + extensions::APIPermission::kFileSystem)) { std::vector<apps::SavedFileEntry> retained_file_entries = apps::SavedFilesService::Get(profile_)->GetAllFileEntries(app_->id()); for (std::vector<apps::SavedFileEntry>::const_iterator it = diff --git a/chrome/browser/ui/webui/extensions/extension_settings_handler.cc b/chrome/browser/ui/webui/extensions/extension_settings_handler.cc index e50de2f..ccd4e47 100644 --- a/chrome/browser/ui/webui/extensions/extension_settings_handler.cc +++ b/chrome/browser/ui/webui/extensions/extension_settings_handler.cc @@ -1066,7 +1066,8 @@ void ExtensionSettingsHandler::HandlePermissionsMessage( extension_id_prompting_ = extension->id(); prompt_.reset(new ExtensionInstallPrompt(web_contents())); 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(Profile::FromWebUI( web_ui()))->GetAllFileEntries(extension_id_prompting_); diff --git a/chrome/browser/ui/webui/options/content_settings_handler.cc b/chrome/browser/ui/webui/options/content_settings_handler.cc index 4626986..3891aa0 100644 --- a/chrome/browser/ui/webui/options/content_settings_handler.cc +++ b/chrome/browser/ui/webui/options/content_settings_handler.cc @@ -44,6 +44,7 @@ #include "content/public/common/page_zoom.h" #include "extensions/common/extension_set.h" #include "extensions/common/permissions/api_permission.h" +#include "extensions/common/permissions/permissions_data.h" #include "grit/generated_resources.h" #include "grit/locale_settings.h" #include "ui/base/l10n/l10n_util.h" @@ -210,7 +211,8 @@ base::DictionaryValue* GetNotificationExceptionForPage( template <APIPermission::ID permission> bool HostedAppHasPermission( const extensions::Extension& extension, Profile* /*profile*/) { - return extension.is_hosted_app() && extension.HasAPIPermission(permission); + return extension.is_hosted_app() && + extension.permissions_data()->HasAPIPermission(permission); } // Add an "Allow"-entry to the list of |exceptions| for a |url_pattern| from diff --git a/chrome/common/extensions/manifest_tests/extension_manifests_old_unittest.cc b/chrome/common/extensions/manifest_tests/extension_manifests_old_unittest.cc index b8c4e5f..2091280 100644 --- a/chrome/common/extensions/manifest_tests/extension_manifests_old_unittest.cc +++ b/chrome/common/extensions/manifest_tests/extension_manifests_old_unittest.cc @@ -5,6 +5,7 @@ #include "chrome/common/extensions/manifest_tests/extension_manifest_test.h" #include "extensions/common/extension.h" +#include "extensions/common/permissions/permissions_data.h" #include "testing/gtest/include/gtest/gtest.h" // Tests that the old permission name "unlimited_storage" still works for @@ -13,6 +14,6 @@ TEST_F(ExtensionManifestTest, OldUnlimitedStoragePermission) { scoped_refptr<extensions::Extension> extension = LoadAndExpectSuccess( "old_unlimited_storage.json", extensions::Manifest::INTERNAL, extensions::Extension::NO_FLAGS); - EXPECT_TRUE(extension->HasAPIPermission( + EXPECT_TRUE(extension->permissions_data()->HasAPIPermission( extensions::APIPermission::kUnlimitedStorage)); } diff --git a/chrome/common/extensions/permissions/permission_set_unittest.cc b/chrome/common/extensions/permissions/permission_set_unittest.cc index 864bfbf..907eb5c 100644 --- a/chrome/common/extensions/permissions/permission_set_unittest.cc +++ b/chrome/common/extensions/permissions/permission_set_unittest.cc @@ -131,7 +131,7 @@ TEST(PermissionsTest, EffectiveHostPermissions) { scoped_refptr<const PermissionSet> permissions; extension = LoadManifest("effective_host_permissions", "empty.json"); - permissions = extension->GetActivePermissions(); + permissions = extension->permissions_data()->active_permissions(); EXPECT_EQ(0u, extension->permissions_data() ->GetEffectiveHostPermissions() @@ -142,7 +142,7 @@ TEST(PermissionsTest, EffectiveHostPermissions) { EXPECT_FALSE(permissions->HasEffectiveAccessToAllHosts()); extension = LoadManifest("effective_host_permissions", "one_host.json"); - permissions = extension->GetActivePermissions(); + permissions = extension->permissions_data()->active_permissions(); EXPECT_TRUE(permissions->HasEffectiveAccessToURL( GURL("http://www.google.com"))); EXPECT_FALSE(permissions->HasEffectiveAccessToURL( @@ -151,14 +151,14 @@ TEST(PermissionsTest, EffectiveHostPermissions) { extension = LoadManifest("effective_host_permissions", "one_host_wildcard.json"); - permissions = extension->GetActivePermissions(); + permissions = extension->permissions_data()->active_permissions(); EXPECT_TRUE(permissions->HasEffectiveAccessToURL(GURL("http://google.com"))); EXPECT_TRUE(permissions->HasEffectiveAccessToURL( GURL("http://foo.google.com"))); EXPECT_FALSE(permissions->HasEffectiveAccessToAllHosts()); extension = LoadManifest("effective_host_permissions", "two_hosts.json"); - permissions = extension->GetActivePermissions(); + permissions = extension->permissions_data()->active_permissions(); EXPECT_TRUE(permissions->HasEffectiveAccessToURL( GURL("http://www.google.com"))); EXPECT_TRUE(permissions->HasEffectiveAccessToURL( @@ -167,14 +167,14 @@ TEST(PermissionsTest, EffectiveHostPermissions) { extension = LoadManifest("effective_host_permissions", "https_not_considered.json"); - permissions = extension->GetActivePermissions(); + permissions = extension->permissions_data()->active_permissions(); EXPECT_TRUE(permissions->HasEffectiveAccessToURL(GURL("http://google.com"))); EXPECT_TRUE(permissions->HasEffectiveAccessToURL(GURL("https://google.com"))); EXPECT_FALSE(permissions->HasEffectiveAccessToAllHosts()); extension = LoadManifest("effective_host_permissions", "two_content_scripts.json"); - permissions = extension->GetActivePermissions(); + permissions = extension->permissions_data()->active_permissions(); EXPECT_TRUE(permissions->HasEffectiveAccessToURL(GURL("http://google.com"))); EXPECT_TRUE(permissions->HasEffectiveAccessToURL( GURL("http://www.reddit.com"))); @@ -183,7 +183,7 @@ TEST(PermissionsTest, EffectiveHostPermissions) { EXPECT_FALSE(permissions->HasEffectiveAccessToAllHosts()); extension = LoadManifest("effective_host_permissions", "all_hosts.json"); - permissions = extension->GetActivePermissions(); + permissions = extension->permissions_data()->active_permissions(); EXPECT_TRUE(permissions->HasEffectiveAccessToURL(GURL("http://test/"))); EXPECT_FALSE(permissions->HasEffectiveAccessToURL(GURL("https://test/"))); EXPECT_TRUE( @@ -191,14 +191,14 @@ TEST(PermissionsTest, EffectiveHostPermissions) { EXPECT_TRUE(permissions->HasEffectiveAccessToAllHosts()); extension = LoadManifest("effective_host_permissions", "all_hosts2.json"); - permissions = extension->GetActivePermissions(); + permissions = extension->permissions_data()->active_permissions(); EXPECT_TRUE(permissions->HasEffectiveAccessToURL(GURL("http://test/"))); EXPECT_TRUE( permissions->HasEffectiveAccessToURL(GURL("http://www.google.com"))); EXPECT_TRUE(permissions->HasEffectiveAccessToAllHosts()); extension = LoadManifest("effective_host_permissions", "all_hosts3.json"); - permissions = extension->GetActivePermissions(); + permissions = extension->permissions_data()->active_permissions(); EXPECT_FALSE(permissions->HasEffectiveAccessToURL(GURL("http://test/"))); EXPECT_TRUE(permissions->HasEffectiveAccessToURL(GURL("https://test/"))); EXPECT_TRUE( @@ -623,9 +623,9 @@ TEST(PermissionsTest, IsPrivilegeIncrease) { continue; scoped_refptr<const PermissionSet> old_p( - old_extension->GetActivePermissions()); + old_extension->permissions_data()->active_permissions()); scoped_refptr<const PermissionSet> new_p( - new_extension->GetActivePermissions()); + new_extension->permissions_data()->active_permissions()); Manifest::Type extension_type = old_extension->GetType(); bool increased = PermissionMessageProvider::Get()->IsPrivilegeIncrease( @@ -947,9 +947,8 @@ TEST(PermissionsTest, GetWarningMessages_AudioVideo) { scoped_refptr<Extension> extension = LoadManifest("permissions", "audio-video.json"); const PermissionMessageProvider* provider = PermissionMessageProvider::Get(); - PermissionSet* set = - const_cast<PermissionSet*>( - extension->GetActivePermissions().get()); + PermissionSet* set = const_cast<PermissionSet*>( + extension->permissions_data()->active_permissions().get()); std::vector<base::string16> warnings = provider->GetWarningMessages(set, extension->GetType()); EXPECT_FALSE(Contains(warnings, "Use your microphone")); @@ -991,7 +990,8 @@ TEST(PermissionsTest, GetWarningMessages_DeclarativeWebRequest) { scoped_refptr<Extension> extension = LoadManifest("permissions", "web_request_not_all_host_permissions.json"); const PermissionMessageProvider* provider = PermissionMessageProvider::Get(); - const PermissionSet* set = extension->GetActivePermissions().get(); + const PermissionSet* set = + extension->permissions_data()->active_permissions().get(); std::vector<base::string16> warnings = provider->GetWarningMessages(set, extension->GetType()); EXPECT_TRUE(Contains(warnings, "Block parts of web pages")); @@ -1002,7 +1002,7 @@ TEST(PermissionsTest, GetWarningMessages_DeclarativeWebRequest) { // permissions do cover all hosts. extension = LoadManifest("permissions", "web_request_all_host_permissions.json"); - set = extension->GetActivePermissions().get(); + set = extension->permissions_data()->active_permissions().get(); warnings = provider->GetWarningMessages(set, extension->GetType()); EXPECT_FALSE(Contains(warnings, "Block parts of web pages")); EXPECT_TRUE(Contains( @@ -1014,7 +1014,8 @@ TEST(PermissionsTest, GetWarningMessages_Serial) { LoadManifest("permissions", "serial.json"); EXPECT_TRUE(extension->is_platform_app()); - EXPECT_TRUE(extension->HasAPIPermission(APIPermission::kSerial)); + EXPECT_TRUE( + extension->permissions_data()->HasAPIPermission(APIPermission::kSerial)); std::vector<base::string16> warnings = extension->permissions_data()->GetPermissionMessageStrings(); EXPECT_TRUE( @@ -1028,7 +1029,8 @@ TEST(PermissionsTest, GetWarningMessages_Socket_AnyHost) { scoped_refptr<Extension> extension = LoadManifest("permissions", "socket_any_host.json"); EXPECT_TRUE(extension->is_platform_app()); - EXPECT_TRUE(extension->HasAPIPermission(APIPermission::kSocket)); + EXPECT_TRUE( + extension->permissions_data()->HasAPIPermission(APIPermission::kSocket)); std::vector<base::string16> warnings = extension->permissions_data()->GetPermissionMessageStrings(); EXPECT_EQ(1u, warnings.size()); @@ -1042,7 +1044,8 @@ TEST(PermissionsTest, GetWarningMessages_Socket_OneDomainTwoHostnames) { scoped_refptr<Extension> extension = LoadManifest("permissions", "socket_one_domain_two_hostnames.json"); EXPECT_TRUE(extension->is_platform_app()); - EXPECT_TRUE(extension->HasAPIPermission(APIPermission::kSocket)); + EXPECT_TRUE( + extension->permissions_data()->HasAPIPermission(APIPermission::kSocket)); std::vector<base::string16> warnings = extension->permissions_data()->GetPermissionMessageStrings(); @@ -1068,7 +1071,8 @@ TEST(PermissionsTest, GetWarningMessages_Socket_TwoDomainsOneHostname) { scoped_refptr<Extension> extension = LoadManifest("permissions", "socket_two_domains_one_hostname.json"); EXPECT_TRUE(extension->is_platform_app()); - EXPECT_TRUE(extension->HasAPIPermission(APIPermission::kSocket)); + EXPECT_TRUE( + extension->permissions_data()->HasAPIPermission(APIPermission::kSocket)); std::vector<base::string16> warnings = extension->permissions_data()->GetPermissionMessageStrings(); @@ -1543,7 +1547,8 @@ TEST(PermissionsTest, SyncFileSystemPermission) { APIPermissionSet apis; apis.insert(APIPermission::kSyncFileSystem); EXPECT_TRUE(extension->is_platform_app()); - EXPECT_TRUE(extension->HasAPIPermission(APIPermission::kSyncFileSystem)); + EXPECT_TRUE(extension->permissions_data()->HasAPIPermission( + APIPermission::kSyncFileSystem)); std::vector<base::string16> warnings = extension->permissions_data()->GetPermissionMessageStrings(); EXPECT_TRUE(Contains(warnings, "Store data in your Google Drive account")); @@ -1573,12 +1578,12 @@ TEST(PermissionsTest, IsPrivilegeIncrease_DeclarativeWebRequest) { scoped_refptr<Extension> extension( LoadManifest("permissions", "permissions_all_urls.json")); scoped_refptr<const PermissionSet> permissions( - extension->GetActivePermissions()); + extension->permissions_data()->active_permissions()); scoped_refptr<Extension> extension_dwr( LoadManifest("permissions", "web_request_all_host_permissions.json")); scoped_refptr<const PermissionSet> permissions_dwr( - extension_dwr->GetActivePermissions()); + extension_dwr->permissions_data()->active_permissions()); EXPECT_FALSE(PermissionMessageProvider::Get()-> IsPrivilegeIncrease(permissions.get(), diff --git a/chrome/common/extensions/permissions/settings_override_permission_unittest.cc b/chrome/common/extensions/permissions/settings_override_permission_unittest.cc index 7f92290..61f6b5b 100644 --- a/chrome/common/extensions/permissions/settings_override_permission_unittest.cc +++ b/chrome/common/extensions/permissions/settings_override_permission_unittest.cc @@ -64,7 +64,7 @@ class SettingsOverridePermissionTest : public ExtensionManifestTest { TEST_F(SettingsOverridePermissionTest, HomePage) { scoped_refptr<Extension> extension(GetPermissionSet(kHomepage)); scoped_refptr<const PermissionSet> permission_set( - extension->GetActivePermissions()); + extension->permissions_data()->active_permissions()); #if defined(OS_WIN) EXPECT_TRUE(permission_set->HasAPIPermission(APIPermission::kHomepage)); @@ -88,7 +88,7 @@ TEST_F(SettingsOverridePermissionTest, HomePage) { TEST_F(SettingsOverridePermissionTest, StartupPages) { scoped_refptr<Extension> extension(GetPermissionSet(kStartupPages)); scoped_refptr<const PermissionSet> permission_set( - extension->GetActivePermissions()); + extension->permissions_data()->active_permissions()); #if defined(OS_WIN) EXPECT_TRUE(permission_set->HasAPIPermission(APIPermission::kStartupPages)); @@ -112,7 +112,7 @@ TEST_F(SettingsOverridePermissionTest, StartupPages) { TEST_F(SettingsOverridePermissionTest, SearchSettings) { scoped_refptr<Extension> extension(GetPermissionSet(kSearchProvider)); scoped_refptr<const PermissionSet> permission_set( - extension->GetActivePermissions()); + extension->permissions_data()->active_permissions()); #if defined(OS_WIN) EXPECT_TRUE(permission_set->HasAPIPermission(APIPermission::kSearchProvider)); @@ -136,7 +136,7 @@ TEST_F(SettingsOverridePermissionTest, All) { scoped_refptr<Extension> extension(GetPermissionSet( kSearchProvider | kStartupPages | kHomepage)); scoped_refptr<const PermissionSet> permission_set( - extension->GetActivePermissions()); + extension->permissions_data()->active_permissions()); #if defined(OS_WIN) EXPECT_TRUE(permission_set->HasAPIPermission(APIPermission::kSearchProvider)); @@ -154,7 +154,7 @@ TEST_F(SettingsOverridePermissionTest, Some) { scoped_refptr<Extension> extension(GetPermissionSet( kSearchProvider | kHomepage)); scoped_refptr<const PermissionSet> permission_set( - extension->GetActivePermissions()); + extension->permissions_data()->active_permissions()); #if defined(OS_WIN) EXPECT_TRUE(permission_set->HasAPIPermission(APIPermission::kSearchProvider)); diff --git a/chrome/common/extensions/sync_helper.cc b/chrome/common/extensions/sync_helper.cc index 93d8ce4..c38fdbc 100644 --- a/chrome/common/extensions/sync_helper.cc +++ b/chrome/common/extensions/sync_helper.cc @@ -10,6 +10,7 @@ #include "chrome/common/extensions/manifest_url_handler.h" #include "extensions/common/extension.h" #include "extensions/common/manifest.h" +#include "extensions/common/permissions/permissions_data.h" namespace extensions { namespace sync_helper { @@ -42,7 +43,7 @@ SyncType GetSyncType(const Extension* extension) { // TODO(akalin): Relax this restriction once we've put in UI to // approve synced extensions. if (PluginInfo::HasPlugins(extension) || - extension->HasAPIPermission(APIPermission::kPlugin)) { + extension->permissions_data()->HasAPIPermission(APIPermission::kPlugin)) { return SYNC_TYPE_NONE; } diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer/chrome_content_renderer_client.cc index d625a25..6481a78 100644 --- a/chrome/renderer/chrome_content_renderer_client.cc +++ b/chrome/renderer/chrome_content_renderer_client.cc @@ -498,7 +498,7 @@ bool ChromeContentRendererClient::OverrideCreatePlugin( extensions::APIPermission::kAdView }; for (size_t i = 0; i < arraysize(perms); ++i) { - if (extension->HasAPIPermission(perms[i])) + if (extension->permissions_data()->HasAPIPermission(perms[i])) return false; } } diff --git a/chrome/renderer/content_settings_observer.cc b/chrome/renderer/content_settings_observer.cc index b24c71c..5e3edba 100644 --- a/chrome/renderer/content_settings_observer.cc +++ b/chrome/renderer/content_settings_observer.cc @@ -14,6 +14,8 @@ #include "content/public/renderer/render_frame.h" #include "content/public/renderer/render_view.h" #include "extensions/common/constants.h" +#include "extensions/common/extension.h" +#include "extensions/common/permissions/permissions_data.h" #include "extensions/renderer/dispatcher.h" #include "third_party/WebKit/public/platform/WebPermissionCallbacks.h" #include "third_party/WebKit/public/platform/WebURL.h" @@ -434,7 +436,8 @@ bool ContentSettingsObserver::allowWebComponents(bool default_value) { return true; if (const extensions::Extension* extension = GetExtension(origin)) { - if (extension->HasAPIPermission(APIPermission::kExperimental)) + if (extension->permissions_data()->HasAPIPermission( + APIPermission::kExperimental)) return true; } diff --git a/chrome/renderer/extensions/chrome_extensions_dispatcher_delegate.cc b/chrome/renderer/extensions/chrome_extensions_dispatcher_delegate.cc index 9eb290b..c8e411e 100644 --- a/chrome/renderer/extensions/chrome_extensions_dispatcher_delegate.cc +++ b/chrome/renderer/extensions/chrome_extensions_dispatcher_delegate.cc @@ -75,7 +75,8 @@ void ChromeExtensionsDispatcherDelegate::InitOriginPermissions( // whitelist entries need to be updated when the kManagement permission // changes. if (context_type == extensions::Feature::BLESSED_EXTENSION_CONTEXT && - extension->HasAPIPermission(extensions::APIPermission::kManagement)) { + extension->permissions_data()->HasAPIPermission( + extensions::APIPermission::kManagement)) { blink::WebSecurityPolicy::addOriginAccessWhitelistEntry( extension->url(), blink::WebString::fromUTF8(content::kChromeUIScheme), @@ -276,7 +277,8 @@ void ChromeExtensionsDispatcherDelegate::RequireAdditionalModules( // The API will be automatically set up when first used. if (context_type == extensions::Feature::BLESSED_EXTENSION_CONTEXT || context_type == extensions::Feature::UNBLESSED_EXTENSION_CONTEXT) { - if (extension->HasAPIPermission(extensions::APIPermission::kWebView)) { + if (extension->permissions_data()->HasAPIPermission( + extensions::APIPermission::kWebView)) { module_system->Require("webView"); if (extensions::GetCurrentChannel() <= chrome::VersionInfo::CHANNEL_DEV) { module_system->Require("webViewExperimental"); @@ -303,7 +305,8 @@ void ChromeExtensionsDispatcherDelegate::RequireAdditionalModules( is_within_platform_app) { if (CommandLine::ForCurrentProcess()->HasSwitch( ::switches::kEnableAdview)) { - if (extension->HasAPIPermission(extensions::APIPermission::kAdView)) { + if (extension->permissions_data()->HasAPIPermission( + extensions::APIPermission::kAdView)) { module_system->Require("adView"); } else { module_system->Require("denyAdView"); diff --git a/extensions/browser/api/storage/local_value_store_cache.cc b/extensions/browser/api/storage/local_value_store_cache.cc index 6946f33..4865b31 100644 --- a/extensions/browser/api/storage/local_value_store_cache.cc +++ b/extensions/browser/api/storage/local_value_store_cache.cc @@ -18,6 +18,7 @@ #include "extensions/common/constants.h" #include "extensions/common/extension.h" #include "extensions/common/permissions/api_permission.h" +#include "extensions/common/permissions/permissions_data.h" using content::BrowserThread; @@ -62,7 +63,8 @@ void LocalValueStoreCache::RunWithValueStoreForExtension( // A neat way to implement unlimited storage; if the extension has the // unlimited storage permission, force through all calls to Set(). - if (extension->HasAPIPermission(APIPermission::kUnlimitedStorage)) { + if (extension->permissions_data()->HasAPIPermission( + APIPermission::kUnlimitedStorage)) { WeakUnlimitedSettingsStorage unlimited_storage(storage); callback.Run(&unlimited_storage); } else { diff --git a/extensions/browser/api/storage/settings_test_util.cc b/extensions/browser/api/storage/settings_test_util.cc index a44a5a0d..c1ac660 100644 --- a/extensions/browser/api/storage/settings_test_util.cc +++ b/extensions/browser/api/storage/settings_test_util.cc @@ -93,7 +93,7 @@ scoped_refptr<const Extension> AddExtensionWithIdAndPermissions( for (std::set<std::string>::const_iterator it = permissions_set.begin(); it != permissions_set.end(); ++it) { - DCHECK(extension->HasAPIPermission(*it)); + DCHECK(extension->permissions_data()->HasAPIPermission(*it)); } return extension; diff --git a/extensions/browser/event_router.cc b/extensions/browser/event_router.cc index c441195..3c6679f 100644 --- a/extensions/browser/event_router.cc +++ b/extensions/browser/event_router.cc @@ -30,6 +30,7 @@ #include "extensions/common/extension_urls.h" #include "extensions/common/manifest_handlers/background_info.h" #include "extensions/common/manifest_handlers/incognito_info.h" +#include "extensions/common/permissions/permissions_data.h" using base::DictionaryValue; using base::ListValue; @@ -533,8 +534,9 @@ void EventRouter::DispatchEventToProcess(const std::string& extension_id, // permission for it (or if the event originated from itself). if (!event->event_url.is_empty() && event->event_url.host() != extension->id() && - !extension->GetActivePermissions()->HasEffectiveAccessToURL( - event->event_url)) { + !extension->permissions_data() + ->active_permissions() + ->HasEffectiveAccessToURL(event->event_url)) { return; } diff --git a/extensions/browser/info_map.cc b/extensions/browser/info_map.cc index 42b85c5..1042f63 100644 --- a/extensions/browser/info_map.cc +++ b/extensions/browser/info_map.cc @@ -10,6 +10,7 @@ #include "extensions/common/extension.h" #include "extensions/common/extension_set.h" #include "extensions/common/manifest_handlers/incognito_info.h" +#include "extensions/common/permissions/permissions_data.h" using content::BrowserThread; @@ -150,7 +151,8 @@ void InfoMap::GetExtensionsWithAPIPermissionForSecurityOrigin( if (origin.SchemeIs(kExtensionScheme)) { const std::string& id = origin.host(); const Extension* extension = extensions_.GetByID(id); - if (extension && extension->HasAPIPermission(permission) && + if (extension && + extension->permissions_data()->HasAPIPermission(permission) && process_map_.Contains(id, process_id)) { extensions->Insert(extension); } @@ -161,7 +163,7 @@ void InfoMap::GetExtensionsWithAPIPermissionForSecurityOrigin( for (; i != extensions_.end(); ++i) { if ((*i)->web_extent().MatchesSecurityOrigin(origin) && process_map_.Contains((*i)->id(), process_id) && - (*i)->HasAPIPermission(permission)) { + (*i)->permissions_data()->HasAPIPermission(permission)) { extensions->Insert(*i); } } diff --git a/extensions/browser/info_map.h b/extensions/browser/info_map.h index 5dfc9c2..5b1f8a3 100644 --- a/extensions/browser/info_map.h +++ b/extensions/browser/info_map.h @@ -14,6 +14,7 @@ #include "extensions/browser/process_map.h" #include "extensions/browser/quota_service.h" #include "extensions/common/extension_set.h" +#include "extensions/common/permissions/api_permission.h" namespace extensions { class ContentVerifier; diff --git a/extensions/browser/info_map_unittest.cc b/extensions/browser/info_map_unittest.cc index d01fa61..c953468 100644 --- a/extensions/browser/info_map_unittest.cc +++ b/extensions/browser/info_map_unittest.cc @@ -10,6 +10,7 @@ #include "extensions/browser/info_map.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 content::BrowserThread; @@ -144,16 +145,25 @@ TEST_F(InfoMapTest, CheckPermissions) { // chrome-extension URL or from its web extent. const Extension* match = info_map->extensions().GetExtensionOrAppByURL( app->GetResourceURL("a.html")); - EXPECT_TRUE(match && match->HasAPIPermission(APIPermission::kNotification)); + EXPECT_TRUE(match && + match->permissions_data()->HasAPIPermission( + APIPermission::kNotification)); match = info_map->extensions().GetExtensionOrAppByURL(app_url); - EXPECT_TRUE(match && match->HasAPIPermission(APIPermission::kNotification)); - EXPECT_FALSE(match && match->HasAPIPermission(APIPermission::kTab)); + EXPECT_TRUE(match && + match->permissions_data()->HasAPIPermission( + APIPermission::kNotification)); + EXPECT_FALSE( + match && + match->permissions_data()->HasAPIPermission(APIPermission::kTab)); // The extension should have the tabs permission. match = info_map->extensions().GetExtensionOrAppByURL( extension->GetResourceURL("a.html")); - EXPECT_TRUE(match && match->HasAPIPermission(APIPermission::kTab)); - EXPECT_FALSE(match && match->HasAPIPermission(APIPermission::kNotification)); + EXPECT_TRUE(match && + match->permissions_data()->HasAPIPermission(APIPermission::kTab)); + EXPECT_FALSE(match && + match->permissions_data()->HasAPIPermission( + APIPermission::kNotification)); // Random URL should not have any permissions. GURL evil_url("http://evil.com/a.html"); diff --git a/extensions/common/extension.cc b/extensions/common/extension.cc index 9179d46..8fab82b 100644 --- a/extensions/common/extension.cc +++ b/extensions/common/extension.cc @@ -28,12 +28,11 @@ #include "extensions/common/manifest_constants.h" #include "extensions/common/manifest_handler.h" #include "extensions/common/manifest_handlers/permissions_parser.h" -#include "extensions/common/permissions/api_permission_set.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/switches.h" -#include "extensions/common/url_pattern_set.h" +#include "extensions/common/url_pattern.h" #include "net/base/filename_util.h" #include "url/url_util.h" @@ -287,18 +286,6 @@ GURL Extension::GetBaseURLFromExtensionId(const std::string& extension_id) { url::kStandardSchemeSeparator + extension_id + "/"); } -bool Extension::HasAPIPermission(APIPermission::ID permission) const { - return permissions_data_->HasAPIPermission(permission); -} - -bool Extension::HasAPIPermission(const std::string& permission_name) const { - return permissions_data_->HasAPIPermission(permission_name); -} - -scoped_refptr<const PermissionSet> Extension::GetActivePermissions() const { - return permissions_data_->active_permissions(); -} - bool Extension::ShowConfigureContextMenus() const { // Don't show context menu for component extensions. We might want to show // options for component extension button but now there is no component diff --git a/extensions/common/extension.h b/extensions/common/extension.h index 1423adb..cf5e85c 100644 --- a/extensions/common/extension.h +++ b/extensions/common/extension.h @@ -23,8 +23,6 @@ #include "extensions/common/extension_resource.h" #include "extensions/common/install_warning.h" #include "extensions/common/manifest.h" -#include "extensions/common/permissions/api_permission.h" -#include "extensions/common/url_pattern.h" #include "extensions/common/url_pattern_set.h" #include "ui/base/accelerators/accelerator.h" #include "ui/gfx/size.h" @@ -43,8 +41,6 @@ class ImageSkia; } namespace extensions { -class APIPermissionSet; -class ManifestPermissionSet; class PermissionSet; class PermissionsData; class PermissionsParser; @@ -250,12 +246,6 @@ class Extension : public base::RefCountedThreadSafe<Extension> { // Returns the base extension url for a given |extension_id|. static GURL GetBaseURLFromExtensionId(const ExtensionId& extension_id); - // DEPRECATED: These methods have been moved to PermissionsData. - // TODO(rdevlin.cronin): remove these once all calls have been updated. - bool HasAPIPermission(APIPermission::ID permission) const; - bool HasAPIPermission(const std::string& permission_name) const; - scoped_refptr<const PermissionSet> GetActivePermissions() const; - // Whether context menu should be shown for page and browser actions. bool ShowConfigureContextMenus() const; diff --git a/extensions/common/extension_messages.cc b/extensions/common/extension_messages.cc index ae1c180..054b2fa 100644 --- a/extensions/common/extension_messages.cc +++ b/extensions/common/extension_messages.cc @@ -33,11 +33,16 @@ ExtensionMsg_Loaded_Params::ExtensionMsg_Loaded_Params( : manifest(extension->manifest()->value()->DeepCopy()), location(extension->location()), path(extension->path()), - apis(extension->GetActivePermissions()->apis()), - manifest_permissions( - extension->GetActivePermissions()->manifest_permissions()), - explicit_hosts(extension->GetActivePermissions()->explicit_hosts()), - scriptable_hosts(extension->GetActivePermissions()->scriptable_hosts()), + apis(extension->permissions_data()->active_permissions()->apis()), + manifest_permissions(extension->permissions_data() + ->active_permissions() + ->manifest_permissions()), + explicit_hosts(extension->permissions_data() + ->active_permissions() + ->explicit_hosts()), + scriptable_hosts(extension->permissions_data() + ->active_permissions() + ->scriptable_hosts()), id(extension->id()), creation_flags(extension->creation_flags()) { } diff --git a/extensions/common/extension_set.h b/extensions/common/extension_set.h index 6b41ae6..c46163f 100644 --- a/extensions/common/extension_set.h +++ b/extensions/common/extension_set.h @@ -9,7 +9,7 @@ #include <map> #include <string> -#include "base/callback_forward.h" +#include "base/callback.h" #include "base/gtest_prod_util.h" #include "base/memory/ref_counted.h" #include "extensions/common/extension.h" diff --git a/extensions/common/manifest_handlers/externally_connectable_unittest.cc b/extensions/common/manifest_handlers/externally_connectable_unittest.cc index 41b2d32..77acf35 100644 --- a/extensions/common/manifest_handlers/externally_connectable_unittest.cc +++ b/extensions/common/manifest_handlers/externally_connectable_unittest.cc @@ -9,6 +9,7 @@ #include "extensions/common/error_utils.h" #include "extensions/common/manifest_constants.h" #include "extensions/common/manifest_handlers/externally_connectable.h" +#include "extensions/common/permissions/permissions_data.h" #include "testing/gmock/include/gmock/gmock.h" #include "testing/gtest/include/gtest/gtest.h" @@ -38,7 +39,8 @@ TEST_F(ExternallyConnectableTest, IDsAndMatches) { LoadAndExpectSuccess("externally_connectable_ids_and_matches.json"); ASSERT_TRUE(extension.get()); - EXPECT_TRUE(extension->HasAPIPermission(APIPermission::kWebConnectable)); + EXPECT_TRUE(extension->permissions_data()->HasAPIPermission( + APIPermission::kWebConnectable)); ExternallyConnectableInfo* info = ExternallyConnectableInfo::Get(extension.get()); @@ -99,7 +101,8 @@ TEST_F(ExternallyConnectableTest, IDs) { LoadAndExpectSuccess("externally_connectable_ids.json"); ASSERT_TRUE(extension.get()); - EXPECT_FALSE(extension->HasAPIPermission(APIPermission::kWebConnectable)); + EXPECT_FALSE(extension->permissions_data()->HasAPIPermission( + APIPermission::kWebConnectable)); ExternallyConnectableInfo* info = ExternallyConnectableInfo::Get(extension.get()); @@ -119,7 +122,8 @@ TEST_F(ExternallyConnectableTest, Matches) { LoadAndExpectSuccess("externally_connectable_matches.json"); ASSERT_TRUE(extension.get()); - EXPECT_TRUE(extension->HasAPIPermission(APIPermission::kWebConnectable)); + EXPECT_TRUE(extension->permissions_data()->HasAPIPermission( + APIPermission::kWebConnectable)); ExternallyConnectableInfo* info = ExternallyConnectableInfo::Get(extension.get()); @@ -161,7 +165,8 @@ TEST_F(ExternallyConnectableTest, MatchesWithTlsChannelId) { "externally_connectable_matches_tls_channel_id.json"); ASSERT_TRUE(extension.get()); - EXPECT_TRUE(extension->HasAPIPermission(APIPermission::kWebConnectable)); + EXPECT_TRUE(extension->permissions_data()->HasAPIPermission( + APIPermission::kWebConnectable)); ExternallyConnectableInfo* info = ExternallyConnectableInfo::Get(extension.get()); @@ -185,7 +190,8 @@ TEST_F(ExternallyConnectableTest, AllIDs) { LoadAndExpectSuccess("externally_connectable_all_ids.json"); ASSERT_TRUE(extension.get()); - EXPECT_FALSE(extension->HasAPIPermission(APIPermission::kWebConnectable)); + EXPECT_FALSE(extension->permissions_data()->HasAPIPermission( + APIPermission::kWebConnectable)); ExternallyConnectableInfo* info = ExternallyConnectableInfo::Get(extension.get()); diff --git a/extensions/common/manifest_handlers/shared_module_info.cc b/extensions/common/manifest_handlers/shared_module_info.cc index 66a06e9..38eef6e 100644 --- a/extensions/common/manifest_handlers/shared_module_info.cc +++ b/extensions/common/manifest_handlers/shared_module_info.cc @@ -14,6 +14,7 @@ #include "extensions/common/error_utils.h" #include "extensions/common/manifest_constants.h" #include "extensions/common/permissions/permission_set.h" +#include "extensions/common/permissions/permissions_data.h" namespace extensions { @@ -243,7 +244,7 @@ bool SharedModuleHandler::Validate( // own, instead they rely on the permissions of the extensions which import // them. if (SharedModuleInfo::IsSharedModule(extension) && - !extension->GetActivePermissions()->IsEmpty()) { + !extension->permissions_data()->active_permissions()->IsEmpty()) { *error = errors::kInvalidExportPermissions; return false; } diff --git a/extensions/common/permissions/permissions_data_unittest.cc b/extensions/common/permissions/permissions_data_unittest.cc index f7fad22..f9f1b6a 100644 --- a/extensions/common/permissions/permissions_data_unittest.cc +++ b/extensions/common/permissions/permissions_data_unittest.cc @@ -133,11 +133,14 @@ TEST(ExtensionPermissionsTest, EffectiveHostPermissions) { hosts = extension->permissions_data()->GetEffectiveHostPermissions(); EXPECT_TRUE(hosts.MatchesURL(GURL("http://google.com"))); EXPECT_TRUE(hosts.MatchesURL(GURL("http://www.reddit.com"))); - EXPECT_TRUE(extension->GetActivePermissions()->HasEffectiveAccessToURL( - GURL("http://www.reddit.com"))); + EXPECT_TRUE(extension->permissions_data() + ->active_permissions() + ->HasEffectiveAccessToURL(GURL("http://www.reddit.com"))); EXPECT_TRUE(hosts.MatchesURL(GURL("http://news.ycombinator.com"))); - EXPECT_TRUE(extension->GetActivePermissions()->HasEffectiveAccessToURL( - GURL("http://news.ycombinator.com"))); + EXPECT_TRUE( + extension->permissions_data() + ->active_permissions() + ->HasEffectiveAccessToURL(GURL("http://news.ycombinator.com"))); EXPECT_FALSE(extension->permissions_data()->HasEffectiveAccessToAllHosts()); extension = LoadManifest("effective_host_permissions", "all_hosts.json"); diff --git a/extensions/renderer/dispatcher.cc b/extensions/renderer/dispatcher.cc index cfa6afd6..39d862d 100644 --- a/extensions/renderer/dispatcher.cc +++ b/extensions/renderer/dispatcher.cc @@ -735,7 +735,7 @@ void Dispatcher::OnUpdatePermissions( scoped_refptr<const PermissionSet> delta = new PermissionSet( apis, manifest_permissions, explicit_hosts, scriptable_hosts); scoped_refptr<const PermissionSet> old_active = - extension->GetActivePermissions(); + extension->permissions_data()->active_permissions(); UpdatedExtensionPermissionsInfo::Reason reason = static_cast<UpdatedExtensionPermissionsInfo::Reason>(reason_id); |