| Index: chrome/browser/extensions/api/context_menus/context_menus_api.cc
|
| diff --git a/chrome/browser/extensions/api/context_menus/context_menus_api.cc b/chrome/browser/extensions/api/context_menus/context_menus_api.cc
|
| index 90b8849fca2787a6ab0895f62b540d94a1a2ebe8..efe97dd7572cff235731769863f0ece36f4edfb6 100644
|
| --- a/chrome/browser/extensions/api/context_menus/context_menus_api.cc
|
| +++ b/chrome/browser/extensions/api/context_menus/context_menus_api.cc
|
| @@ -32,8 +32,8 @@ namespace Create = api::context_menus::Create;
|
| namespace Remove = api::context_menus::Remove;
|
| namespace Update = api::context_menus::Update;
|
|
|
| -bool ContextMenusCreateFunction::RunSync() {
|
| - MenuItem::Id id(GetProfile()->IsOffTheRecord(),
|
| +ExtensionFunction::ResponseAction ContextMenusCreateFunction::Run() {
|
| + MenuItem::Id id(browser_context()->IsOffTheRecord(),
|
| MenuItem::ExtensionKey(extension_id()));
|
| std::unique_ptr<Create::Params> params(Create::Params::Create(*args_));
|
| EXTENSION_FUNCTION_VALIDATE(params.get());
|
| @@ -41,10 +41,8 @@ bool ContextMenusCreateFunction::RunSync() {
|
| if (params->create_properties.id.get()) {
|
| id.string_uid = *params->create_properties.id;
|
| } else {
|
| - if (BackgroundInfo::HasLazyBackgroundPage(extension())) {
|
| - error_ = kIdRequiredError;
|
| - return false;
|
| - }
|
| + if (BackgroundInfo::HasLazyBackgroundPage(extension()))
|
| + return RespondNow(Error(kIdRequiredError));
|
|
|
| // The Generated Id is added by context_menus_custom_bindings.js.
|
| base::DictionaryValue* properties = NULL;
|
| @@ -53,12 +51,16 @@ bool ContextMenusCreateFunction::RunSync() {
|
| properties->GetInteger(helpers::kGeneratedIdKey, &id.uid));
|
| }
|
|
|
| - return helpers::CreateMenuItem(
|
| - params->create_properties, GetProfile(), extension(), id, &error_);
|
| + std::string error;
|
| + if (!helpers::CreateMenuItem(params->create_properties, browser_context(),
|
| + extension(), id, &error)) {
|
| + return RespondNow(Error(error));
|
| + }
|
| + return RespondNow(NoArguments());
|
| }
|
|
|
| -bool ContextMenusUpdateFunction::RunSync() {
|
| - MenuItem::Id item_id(GetProfile()->IsOffTheRecord(),
|
| +ExtensionFunction::ResponseAction ContextMenusUpdateFunction::Run() {
|
| + MenuItem::Id item_id(browser_context()->IsOffTheRecord(),
|
| MenuItem::ExtensionKey(extension_id()));
|
| std::unique_ptr<Update::Params> params(Update::Params::Create(*args_));
|
|
|
| @@ -70,17 +72,21 @@ bool ContextMenusUpdateFunction::RunSync() {
|
| else
|
| NOTREACHED();
|
|
|
| - return helpers::UpdateMenuItem(
|
| - params->update_properties, GetProfile(), extension(), item_id, &error_);
|
| + std::string error;
|
| + if (!helpers::UpdateMenuItem(params->update_properties, browser_context(),
|
| + extension(), item_id, &error)) {
|
| + return RespondNow(Error(error));
|
| + }
|
| + return RespondNow(NoArguments());
|
| }
|
|
|
| -bool ContextMenusRemoveFunction::RunSync() {
|
| +ExtensionFunction::ResponseAction ContextMenusRemoveFunction::Run() {
|
| std::unique_ptr<Remove::Params> params(Remove::Params::Create(*args_));
|
| EXTENSION_FUNCTION_VALIDATE(params.get());
|
|
|
| - MenuManager* manager = MenuManager::Get(GetProfile());
|
| + MenuManager* manager = MenuManager::Get(browser_context());
|
|
|
| - MenuItem::Id id(GetProfile()->IsOffTheRecord(),
|
| + MenuItem::Id id(browser_context()->IsOffTheRecord(),
|
| MenuItem::ExtensionKey(extension_id()));
|
| if (params->menu_item_id.as_string)
|
| id.string_uid = *params->menu_item_id.as_string;
|
| @@ -92,23 +98,22 @@ bool ContextMenusRemoveFunction::RunSync() {
|
| MenuItem* item = manager->GetItemById(id);
|
| // Ensure one extension can't remove another's menu items.
|
| if (!item || item->extension_id() != extension_id()) {
|
| - error_ = ErrorUtils::FormatErrorMessage(
|
| - helpers::kCannotFindItemError, helpers::GetIDString(id));
|
| - return false;
|
| + return RespondNow(
|
| + Error(helpers::kCannotFindItemError, helpers::GetIDString(id)));
|
| }
|
|
|
| if (!manager->RemoveContextMenuItem(id))
|
| - return false;
|
| + return RespondNow(Error("Cannot remove menu item."));
|
| manager->WriteToStorage(extension(), id.extension_key);
|
| - return true;
|
| + return RespondNow(NoArguments());
|
| }
|
|
|
| -bool ContextMenusRemoveAllFunction::RunSync() {
|
| - MenuManager* manager = MenuManager::Get(GetProfile());
|
| +ExtensionFunction::ResponseAction ContextMenusRemoveAllFunction::Run() {
|
| + MenuManager* manager = MenuManager::Get(browser_context());
|
| manager->RemoveAllContextItems(MenuItem::ExtensionKey(extension()->id()));
|
| manager->WriteToStorage(extension(),
|
| MenuItem::ExtensionKey(extension()->id()));
|
| - return true;
|
| + return RespondNow(NoArguments());
|
| }
|
|
|
| } // namespace extensions
|
|
|