| Index: chrome/browser/extensions/extension_permissions_api.cc
|
| diff --git a/chrome/browser/extensions/extension_permissions_api.cc b/chrome/browser/extensions/extension_permissions_api.cc
|
| index fe9271006595b0e6604079ac279cffe3de5cbfb7..36b4b9cfcea440c61840a8ea9ac5d785414b02c2 100644
|
| --- a/chrome/browser/extensions/extension_permissions_api.cc
|
| +++ b/chrome/browser/extensions/extension_permissions_api.cc
|
| @@ -11,14 +11,18 @@
|
| #include "chrome/browser/extensions/permissions_updater.h"
|
| #include "chrome/browser/profiles/profile.h"
|
| #include "chrome/common/chrome_notification_types.h"
|
| +#include "chrome/common/extensions/api/permissions_api.h"
|
| #include "chrome/common/extensions/extension.h"
|
| #include "chrome/common/extensions/extension_error_utils.h"
|
| #include "chrome/common/extensions/url_pattern_set.h"
|
| #include "googleurl/src/gurl.h"
|
|
|
| using extensions::PermissionsUpdater;
|
| +using extensions::permissions_api::Contains;
|
| using extensions::permissions_api::PackPermissionsToValue;
|
| -using extensions::permissions_api::UnpackPermissionsFromValue;
|
| +using extensions::permissions_api::Remove;
|
| +using extensions::permissions_api::Request;
|
| +using extensions::permissions_api::UnpackPermissionSet;
|
|
|
| namespace {
|
|
|
| @@ -42,16 +46,13 @@ bool ignore_user_gesture_for_tests = false;
|
| } // namespace
|
|
|
| bool ContainsPermissionsFunction::RunImpl() {
|
| - DictionaryValue* args = NULL;
|
| - EXTENSION_FUNCTION_VALIDATE(args_->GetDictionary(0, &args));
|
| - std::string error;
|
| - if (!args)
|
| - return false;
|
| + Contains::Params params;
|
| + EXTENSION_FUNCTION_VALIDATE(Contains::Params::Populate(*args_, ¶ms));
|
|
|
| - scoped_refptr<ExtensionPermissionSet> permissions;
|
| - if (!UnpackPermissionsFromValue(args, &permissions, &bad_message_, &error_))
|
| + scoped_refptr<ExtensionPermissionSet> permissions =
|
| + UnpackPermissionSet(params.permissions, &error_);
|
| + if (!permissions.get())
|
| return false;
|
| - CHECK(permissions.get());
|
|
|
| result_.reset(Value::CreateBooleanValue(
|
| GetExtension()->GetActivePermissions()->Contains(*permissions)));
|
| @@ -65,15 +66,13 @@ bool GetAllPermissionsFunction::RunImpl() {
|
| }
|
|
|
| bool RemovePermissionsFunction::RunImpl() {
|
| - DictionaryValue* args = NULL;
|
| - EXTENSION_FUNCTION_VALIDATE(args_->GetDictionary(0, &args));
|
| - if (!args)
|
| - return false;
|
| + Remove::Params params;
|
| + EXTENSION_FUNCTION_VALIDATE(Remove::Params::Populate(*args_, ¶ms));
|
|
|
| - scoped_refptr<ExtensionPermissionSet> permissions;
|
| - if (!UnpackPermissionsFromValue(args, &permissions, &bad_message_, &error_))
|
| + scoped_refptr<ExtensionPermissionSet> permissions =
|
| + UnpackPermissionSet(params.permissions, &error_);
|
| + if (!permissions.get())
|
| return false;
|
| - CHECK(permissions.get());
|
|
|
| const Extension* extension = GetExtension();
|
| ExtensionPermissionsInfo* info = ExtensionPermissionsInfo::GetInstance();
|
| @@ -125,15 +124,12 @@ bool RequestPermissionsFunction::RunImpl() {
|
| return false;
|
| }
|
|
|
| - DictionaryValue* args = NULL;
|
| - EXTENSION_FUNCTION_VALIDATE(args_->GetDictionary(0, &args));
|
| - if (!args)
|
| - return false;
|
| + Request::Params params;
|
| + EXTENSION_FUNCTION_VALIDATE(Request::Params::Populate(*args_.get(), ¶ms));
|
|
|
| - if (!UnpackPermissionsFromValue(
|
| - args, &requested_permissions_, &bad_message_, &error_))
|
| + requested_permissions_ = UnpackPermissionSet(params.permissions, &error_);
|
| + if (!requested_permissions_.get())
|
| return false;
|
| - CHECK(requested_permissions_.get());
|
|
|
| ExtensionPermissionsInfo* info = ExtensionPermissionsInfo::GetInstance();
|
| ExtensionPrefs* prefs = profile()->GetExtensionService()->extension_prefs();
|
|
|