Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3688)

Unified Diff: chrome/browser/extensions/api/permissions/permissions_api.cc

Issue 2399423004: [Extensions] Convert some ChromeSyncExtensionFunctions (Closed)
Patch Set: Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/extensions/api/permissions/permissions_api.cc
diff --git a/chrome/browser/extensions/api/permissions/permissions_api.cc b/chrome/browser/extensions/api/permissions/permissions_api.cc
index 0a8222f08afb5d492d7a808b0da7371a2cbc59ec..3b52c7334c2b4d6d9a50e5e1b4c3a059a58b87cd 100644
--- a/chrome/browser/extensions/api/permissions/permissions_api.cc
+++ b/chrome/browser/extensions/api/permissions/permissions_api.cc
@@ -54,53 +54,50 @@ bool ignore_user_gesture_for_tests = false;
} // namespace
-bool PermissionsContainsFunction::RunSync() {
+ExtensionFunction::ResponseAction PermissionsContainsFunction::Run() {
std::unique_ptr<Contains::Params> params(Contains::Params::Create(*args_));
EXTENSION_FUNCTION_VALIDATE(params);
// NOTE: |permissions| is not used to make any security decisions. Therefore,
// it is entirely fine to set |allow_file_access| to true below. This will
// avoid throwing error when extension() doesn't have access to file://.
+ std::string error;
std::unique_ptr<const PermissionSet> permissions =
helpers::UnpackPermissionSet(params->permissions,
- true /* allow_file_access */, &error_);
+ true /* allow_file_access */, &error);
if (!permissions.get())
- return false;
+ return RespondNow(Error(error));
- results_ = Contains::Results::Create(
+ return RespondNow(ArgumentList(Contains::Results::Create(
extension()->permissions_data()->active_permissions().Contains(
- *permissions));
- return true;
+ *permissions))));
}
-bool PermissionsGetAllFunction::RunSync() {
+ExtensionFunction::ResponseAction PermissionsGetAllFunction::Run() {
std::unique_ptr<Permissions> permissions = helpers::PackPermissionSet(
extension()->permissions_data()->active_permissions());
- results_ = GetAll::Results::Create(*permissions);
- return true;
+ return RespondNow(ArgumentList(GetAll::Results::Create(*permissions)));
}
-bool PermissionsRemoveFunction::RunSync() {
+ExtensionFunction::ResponseAction PermissionsRemoveFunction::Run() {
std::unique_ptr<Remove::Params> params(Remove::Params::Create(*args_));
EXTENSION_FUNCTION_VALIDATE(params);
+ std::string error;
std::unique_ptr<const PermissionSet> permissions =
- helpers::UnpackPermissionSet(
- params->permissions,
- ExtensionPrefs::Get(GetProfile())->AllowFileAccess(extension_->id()),
- &error_);
+ helpers::UnpackPermissionSet(params->permissions,
+ ExtensionPrefs::Get(browser_context())
+ ->AllowFileAccess(extension_->id()),
+ &error);
+
if (!permissions.get())
- return false;
+ return RespondNow(Error(error));
// Make sure they're only trying to remove permissions supported by this API.
APIPermissionSet apis = permissions->apis();
- for (APIPermissionSet::const_iterator i = apis.begin();
- i != apis.end(); ++i) {
- if (!i->info()->supports_optional()) {
- error_ = ErrorUtils::FormatErrorMessage(
- kNotWhitelistedError, i->name());
- return false;
- }
+ for (const APIPermission* permission : apis) {
+ if (!permission->info()->supports_optional())
+ return RespondNow(Error(kNotWhitelistedError, permission->name()));
}
// Make sure we only remove optional permissions, and not required
@@ -116,8 +113,7 @@ bool PermissionsRemoveFunction::RunSync() {
!std::unique_ptr<const PermissionSet>(
PermissionSet::CreateIntersection(*permissions, required))
->IsEmpty()) {
- error_ = kCantRemoveRequiredPermissionsError;
- return false;
+ return RespondNow(Error(kCantRemoveRequiredPermissionsError));
}
// Only try and remove those permissions that are active on the extension.
@@ -126,11 +122,10 @@ bool PermissionsRemoveFunction::RunSync() {
permissions = PermissionSet::CreateIntersection(
*permissions, extension()->permissions_data()->active_permissions());
- PermissionsUpdater(GetProfile())
+ PermissionsUpdater(browser_context())
.RemovePermissions(extension(), *permissions,
PermissionsUpdater::REMOVE_SOFT);
- results_ = Remove::Results::Create(true);
- return true;
+ return RespondNow(ArgumentList(Remove::Results::Create(true)));
}
// static

Powered by Google App Engine
This is Rietveld 408576698