#include "base/memory/scoped_ptr.h"
#include "chrome/browser/chrome_notification_types.h"
#include "chrome/browser/extensions/api/permissions/permissions_api_helpers.h"
-#include "chrome/browser/extensions/extension_prefs.h"
#include "chrome/browser/extensions/permissions_updater.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/common/extensions/api/permissions.h"
-#include "chrome/common/extensions/extension.h"
-#include "chrome/common/extensions/permissions/permissions_data.h"
+#include "extensions/browser/extension_prefs.h"
#include "extensions/common/error_utils.h"
+#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"
-#include "extensions/common/url_pattern_set.h"
-#include "url/gurl.h"
namespace extensions {
} // namespace
-bool PermissionsContainsFunction::RunImpl() {
+bool PermissionsContainsFunction::RunSync() {
scoped_ptr<Contains::Params> params(Contains::Params::Create(*args_));
EXTENSION_FUNCTION_VALIDATE(params);
return false;
results_ = Contains::Results::Create(
- GetExtension()->GetActivePermissions()->Contains(*permissions.get()));
+ extension()->permissions_data()->active_permissions()->Contains(
+ *permissions.get()));
return true;
}
-bool PermissionsGetAllFunction::RunImpl() {
- scoped_ptr<Permissions> permissions =
- helpers::PackPermissionSet(GetExtension()->GetActivePermissions().get());
+bool PermissionsGetAllFunction::RunSync() {
+ scoped_ptr<Permissions> permissions = helpers::PackPermissionSet(
+ extension()->permissions_data()->active_permissions().get());
results_ = GetAll::Results::Create(*permissions);
return true;
}
-bool PermissionsRemoveFunction::RunImpl() {
+bool PermissionsRemoveFunction::RunSync() {
scoped_ptr<Remove::Params> params(Remove::Params::Create(*args_));
EXTENSION_FUNCTION_VALIDATE(params);
if (!permissions.get())
return false;
- const Extension* extension = GetExtension();
-
// Make sure they're only trying to remove permissions supported by this API.
APIPermissionSet apis = permissions->apis();
for (APIPermissionSet::const_iterator i = apis.begin();
}
// Make sure we don't remove any required pemissions.
- const PermissionSet* required =
- PermissionsData::GetRequiredPermissions(extension);
+ scoped_refptr<const PermissionSet> required =
+ PermissionsParser::GetRequiredPermissions(extension());
scoped_refptr<PermissionSet> intersection(
- PermissionSet::CreateIntersection(permissions.get(), required));
+ PermissionSet::CreateIntersection(permissions.get(), required.get()));
if (!intersection->IsEmpty()) {
error_ = kCantRemoveRequiredPermissionsError;
return false;
}
PermissionsUpdater(GetProfile())
- .RemovePermissions(extension, permissions.get());
+ .RemovePermissions(extension(), permissions.get());
results_ = Remove::Results::Create(true);
return true;
}
void PermissionsRequestFunction::InstallUIProceed() {
PermissionsUpdater perms_updater(GetProfile());
- perms_updater.AddPermissions(GetExtension(), requested_permissions_.get());
+ perms_updater.AddPermissions(extension(), requested_permissions_.get());
results_ = Request::Results::Create(true);
SendResponse(true);
- Release(); // Balanced in RunImpl().
+ Release(); // Balanced in RunAsync().
}
void PermissionsRequestFunction::InstallUIAbort(bool user_initiated) {
SendResponse(true);
- Release(); // Balanced in RunImpl().
+ Release(); // Balanced in RunAsync().
}
PermissionsRequestFunction::~PermissionsRequestFunction() {}
-bool PermissionsRequestFunction::RunImpl() {
+bool PermissionsRequestFunction::RunAsync() {
results_ = Request::Results::Create(false);
if (!user_gesture() &&
}
// The requested permissions must be defined as optional in the manifest.
- if (!PermissionsData::GetOptionalPermissions(GetExtension())
- ->Contains(*requested_permissions_.get())) {
+ if (!PermissionsParser::GetOptionalPermissions(extension())
+ ->Contains(*requested_permissions_.get())) {
error_ = kNotInOptionalPermissionsError;
return false;
}
// We don't need to prompt the user if the requested permissions are a subset
// of the granted permissions set.
- scoped_refptr<const PermissionSet> granted = ExtensionPrefs::Get(
- GetProfile())->GetGrantedPermissions(GetExtension()->id());
+ scoped_refptr<const PermissionSet> granted =
+ ExtensionPrefs::Get(GetProfile())
+ ->GetGrantedPermissions(extension()->id());
if (granted.get() && granted->Contains(*requested_permissions_.get())) {
PermissionsUpdater perms_updater(GetProfile());
- perms_updater.AddPermissions(GetExtension(), requested_permissions_.get());
+ perms_updater.AddPermissions(extension(), requested_permissions_.get());
results_ = Request::Results::Create(true);
SendResponse(true);
return true;
// We don't need to show the prompt if there are no new warnings, or if
// we're skipping the confirmation UI. All extension types but INTERNAL
// are allowed to silently increase their permission level.
- bool has_no_warnings =
- PermissionMessageProvider::Get()->GetWarningMessages(
- requested_permissions_, GetExtension()->GetType()).empty();
+ bool has_no_warnings = PermissionMessageProvider::Get()
+ ->GetWarningMessages(requested_permissions_.get(),
+ extension()->GetType())
+ .empty();
if (auto_confirm_for_tests == PROCEED || has_no_warnings ||
extension_->location() == Manifest::COMPONENT) {
InstallUIProceed();
CHECK_EQ(DO_NOT_SKIP, auto_confirm_for_tests);
install_ui_.reset(new ExtensionInstallPrompt(GetAssociatedWebContents()));
install_ui_->ConfirmPermissions(
- this, GetExtension(), requested_permissions_.get());
+ this, extension(), requested_permissions_.get());
}
return true;