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

Side by Side Diff: chrome/browser/extensions/api/context_menus/context_menus_api.cc

Issue 2328643003: [Extensions] Convert some ChromeSyncExtensionFunctions (Closed)
Patch Set: Remove GetProfile() usage Created 4 years, 3 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/extensions/api/context_menus/context_menus_api.h" 5 #include "chrome/browser/extensions/api/context_menus/context_menus_api.h"
6 6
7 #include <string> 7 #include <string>
8 8
9 #include "base/strings/string_util.h" 9 #include "base/strings/string_util.h"
10 #include "base/values.h" 10 #include "base/values.h"
(...skipping 14 matching lines...) Expand all
25 "id parameter to chrome.contextMenus.create"; 25 "id parameter to chrome.contextMenus.create";
26 26
27 } // namespace 27 } // namespace
28 28
29 namespace extensions { 29 namespace extensions {
30 30
31 namespace Create = api::context_menus::Create; 31 namespace Create = api::context_menus::Create;
32 namespace Remove = api::context_menus::Remove; 32 namespace Remove = api::context_menus::Remove;
33 namespace Update = api::context_menus::Update; 33 namespace Update = api::context_menus::Update;
34 34
35 bool ContextMenusCreateFunction::RunSync() { 35 ExtensionFunction::ResponseAction ContextMenusCreateFunction::Run() {
36 MenuItem::Id id(GetProfile()->IsOffTheRecord(), 36 MenuItem::Id id(browser_context()->IsOffTheRecord(),
37 MenuItem::ExtensionKey(extension_id())); 37 MenuItem::ExtensionKey(extension_id()));
38 std::unique_ptr<Create::Params> params(Create::Params::Create(*args_)); 38 std::unique_ptr<Create::Params> params(Create::Params::Create(*args_));
39 EXTENSION_FUNCTION_VALIDATE(params.get()); 39 EXTENSION_FUNCTION_VALIDATE(params.get());
40 40
41 if (params->create_properties.id.get()) { 41 if (params->create_properties.id.get()) {
42 id.string_uid = *params->create_properties.id; 42 id.string_uid = *params->create_properties.id;
43 } else { 43 } else {
44 if (BackgroundInfo::HasLazyBackgroundPage(extension())) { 44 if (BackgroundInfo::HasLazyBackgroundPage(extension()))
45 error_ = kIdRequiredError; 45 return RespondNow(Error(kIdRequiredError));
46 return false;
47 }
48 46
49 // The Generated Id is added by context_menus_custom_bindings.js. 47 // The Generated Id is added by context_menus_custom_bindings.js.
50 base::DictionaryValue* properties = NULL; 48 base::DictionaryValue* properties = NULL;
51 EXTENSION_FUNCTION_VALIDATE(args_->GetDictionary(0, &properties)); 49 EXTENSION_FUNCTION_VALIDATE(args_->GetDictionary(0, &properties));
52 EXTENSION_FUNCTION_VALIDATE( 50 EXTENSION_FUNCTION_VALIDATE(
53 properties->GetInteger(helpers::kGeneratedIdKey, &id.uid)); 51 properties->GetInteger(helpers::kGeneratedIdKey, &id.uid));
54 } 52 }
55 53
56 return helpers::CreateMenuItem( 54 std::string error;
57 params->create_properties, GetProfile(), extension(), id, &error_); 55 if (!helpers::CreateMenuItem(params->create_properties, browser_context(),
56 extension(), id, &error)) {
57 return RespondNow(Error(error));
58 }
59 return RespondNow(NoArguments());
58 } 60 }
59 61
60 bool ContextMenusUpdateFunction::RunSync() { 62 ExtensionFunction::ResponseAction ContextMenusUpdateFunction::Run() {
61 MenuItem::Id item_id(GetProfile()->IsOffTheRecord(), 63 MenuItem::Id item_id(browser_context()->IsOffTheRecord(),
62 MenuItem::ExtensionKey(extension_id())); 64 MenuItem::ExtensionKey(extension_id()));
63 std::unique_ptr<Update::Params> params(Update::Params::Create(*args_)); 65 std::unique_ptr<Update::Params> params(Update::Params::Create(*args_));
64 66
65 EXTENSION_FUNCTION_VALIDATE(params.get()); 67 EXTENSION_FUNCTION_VALIDATE(params.get());
66 if (params->id.as_string) 68 if (params->id.as_string)
67 item_id.string_uid = *params->id.as_string; 69 item_id.string_uid = *params->id.as_string;
68 else if (params->id.as_integer) 70 else if (params->id.as_integer)
69 item_id.uid = *params->id.as_integer; 71 item_id.uid = *params->id.as_integer;
70 else 72 else
71 NOTREACHED(); 73 NOTREACHED();
72 74
73 return helpers::UpdateMenuItem( 75 std::string error;
74 params->update_properties, GetProfile(), extension(), item_id, &error_); 76 if (!helpers::UpdateMenuItem(params->update_properties, browser_context(),
77 extension(), item_id, &error)) {
78 return RespondNow(Error(error));
79 }
80 return RespondNow(NoArguments());
75 } 81 }
76 82
77 bool ContextMenusRemoveFunction::RunSync() { 83 ExtensionFunction::ResponseAction ContextMenusRemoveFunction::Run() {
78 std::unique_ptr<Remove::Params> params(Remove::Params::Create(*args_)); 84 std::unique_ptr<Remove::Params> params(Remove::Params::Create(*args_));
79 EXTENSION_FUNCTION_VALIDATE(params.get()); 85 EXTENSION_FUNCTION_VALIDATE(params.get());
80 86
81 MenuManager* manager = MenuManager::Get(GetProfile()); 87 MenuManager* manager = MenuManager::Get(browser_context());
82 88
83 MenuItem::Id id(GetProfile()->IsOffTheRecord(), 89 MenuItem::Id id(browser_context()->IsOffTheRecord(),
84 MenuItem::ExtensionKey(extension_id())); 90 MenuItem::ExtensionKey(extension_id()));
85 if (params->menu_item_id.as_string) 91 if (params->menu_item_id.as_string)
86 id.string_uid = *params->menu_item_id.as_string; 92 id.string_uid = *params->menu_item_id.as_string;
87 else if (params->menu_item_id.as_integer) 93 else if (params->menu_item_id.as_integer)
88 id.uid = *params->menu_item_id.as_integer; 94 id.uid = *params->menu_item_id.as_integer;
89 else 95 else
90 NOTREACHED(); 96 NOTREACHED();
91 97
92 MenuItem* item = manager->GetItemById(id); 98 MenuItem* item = manager->GetItemById(id);
93 // Ensure one extension can't remove another's menu items. 99 // Ensure one extension can't remove another's menu items.
94 if (!item || item->extension_id() != extension_id()) { 100 if (!item || item->extension_id() != extension_id()) {
95 error_ = ErrorUtils::FormatErrorMessage( 101 return RespondNow(
96 helpers::kCannotFindItemError, helpers::GetIDString(id)); 102 Error(helpers::kCannotFindItemError, helpers::GetIDString(id)));
97 return false;
98 } 103 }
99 104
100 if (!manager->RemoveContextMenuItem(id)) 105 if (!manager->RemoveContextMenuItem(id))
101 return false; 106 return RespondNow(Error("Cannot remove menu item."));
102 manager->WriteToStorage(extension(), id.extension_key); 107 manager->WriteToStorage(extension(), id.extension_key);
103 return true; 108 return RespondNow(NoArguments());
104 } 109 }
105 110
106 bool ContextMenusRemoveAllFunction::RunSync() { 111 ExtensionFunction::ResponseAction ContextMenusRemoveAllFunction::Run() {
107 MenuManager* manager = MenuManager::Get(GetProfile()); 112 MenuManager* manager = MenuManager::Get(browser_context());
108 manager->RemoveAllContextItems(MenuItem::ExtensionKey(extension()->id())); 113 manager->RemoveAllContextItems(MenuItem::ExtensionKey(extension()->id()));
109 manager->WriteToStorage(extension(), 114 manager->WriteToStorage(extension(),
110 MenuItem::ExtensionKey(extension()->id())); 115 MenuItem::ExtensionKey(extension()->id()));
111 return true; 116 return RespondNow(NoArguments());
112 } 117 }
113 118
114 } // namespace extensions 119 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698