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

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

Issue 64953004: Split extensions::MenuManager instance out from ExtensionService. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Explicit nit Created 7 years, 1 month 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 | Annotate | Revision Log
« no previous file with comments | « no previous file | chrome/browser/extensions/context_menu_matcher.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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_number_conversions.h" 9 #include "base/strings/string_number_conversions.h"
10 #include "base/strings/string_util.h" 10 #include "base/strings/string_util.h"
11 #include "base/values.h" 11 #include "base/values.h"
12 #include "chrome/browser/extensions/extension_service.h"
13 #include "chrome/browser/extensions/menu_manager.h" 12 #include "chrome/browser/extensions/menu_manager.h"
14 #include "chrome/browser/profiles/profile.h" 13 #include "chrome/browser/profiles/profile.h"
15 #include "chrome/common/extensions/api/context_menus.h" 14 #include "chrome/common/extensions/api/context_menus.h"
16 #include "extensions/common/error_utils.h" 15 #include "extensions/common/error_utils.h"
17 #include "extensions/common/manifest_handlers/background_info.h" 16 #include "extensions/common/manifest_handlers/background_info.h"
18 #include "extensions/common/url_pattern_set.h" 17 #include "extensions/common/url_pattern_set.h"
19 18
20 using extensions::ErrorUtils; 19 using extensions::ErrorUtils;
21 20
22 namespace { 21 namespace {
(...skipping 146 matching lines...) Expand 10 before | Expand all | Expand 10 after
169 base::DictionaryValue* properties = NULL; 168 base::DictionaryValue* properties = NULL;
170 EXTENSION_FUNCTION_VALIDATE(args_->GetDictionary(0, &properties)); 169 EXTENSION_FUNCTION_VALIDATE(args_->GetDictionary(0, &properties));
171 EXTENSION_FUNCTION_VALIDATE(properties->GetInteger(kGeneratedIdKey, 170 EXTENSION_FUNCTION_VALIDATE(properties->GetInteger(kGeneratedIdKey,
172 &id.uid)); 171 &id.uid));
173 } 172 }
174 173
175 std::string title; 174 std::string title;
176 if (params->create_properties.title.get()) 175 if (params->create_properties.title.get())
177 title = *params->create_properties.title; 176 title = *params->create_properties.title;
178 177
179 MenuManager* menu_manager = 178 MenuManager* menu_manager = MenuManager::Get(GetProfile());
180 GetProfile()->GetExtensionService()->menu_manager();
181 179
182 if (menu_manager->GetItemById(id)) { 180 if (menu_manager->GetItemById(id)) {
183 error_ = ErrorUtils::FormatErrorMessage(kDuplicateIDError, 181 error_ = ErrorUtils::FormatErrorMessage(kDuplicateIDError,
184 GetIDString(id)); 182 GetIDString(id));
185 return false; 183 return false;
186 } 184 }
187 185
188 if (BackgroundInfo::HasLazyBackgroundPage(GetExtension()) && 186 if (BackgroundInfo::HasLazyBackgroundPage(GetExtension()) &&
189 params->create_properties.onclick.get()) { 187 params->create_properties.onclick.get()) {
190 error_ = kOnclickDisallowedError; 188 error_ = kOnclickDisallowedError;
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
254 scoped_ptr<Update::Params> params(Update::Params::Create(*args_)); 252 scoped_ptr<Update::Params> params(Update::Params::Create(*args_));
255 253
256 EXTENSION_FUNCTION_VALIDATE(params.get()); 254 EXTENSION_FUNCTION_VALIDATE(params.get());
257 if (params->id.as_string) 255 if (params->id.as_string)
258 item_id.string_uid = *params->id.as_string; 256 item_id.string_uid = *params->id.as_string;
259 else if (params->id.as_integer) 257 else if (params->id.as_integer)
260 item_id.uid = *params->id.as_integer; 258 item_id.uid = *params->id.as_integer;
261 else 259 else
262 NOTREACHED(); 260 NOTREACHED();
263 261
264 ExtensionService* service = GetProfile()->GetExtensionService(); 262 MenuManager* manager = MenuManager::Get(GetProfile());
265 MenuManager* manager = service->menu_manager();
266 MenuItem* item = manager->GetItemById(item_id); 263 MenuItem* item = manager->GetItemById(item_id);
267 if (!item || item->extension_id() != extension_id()) { 264 if (!item || item->extension_id() != extension_id()) {
268 error_ = ErrorUtils::FormatErrorMessage( 265 error_ = ErrorUtils::FormatErrorMessage(
269 kCannotFindItemError, GetIDString(item_id)); 266 kCannotFindItemError, GetIDString(item_id));
270 return false; 267 return false;
271 } 268 }
272 269
273 // Type. 270 // Type.
274 MenuItem::Type type = GetType(params->update_properties, item->type()); 271 MenuItem::Type type = GetType(params->update_properties, item->type());
275 272
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
350 return false; 347 return false;
351 348
352 manager->WriteToStorage(GetExtension()); 349 manager->WriteToStorage(GetExtension());
353 return true; 350 return true;
354 } 351 }
355 352
356 bool ContextMenusRemoveFunction::RunImpl() { 353 bool ContextMenusRemoveFunction::RunImpl() {
357 scoped_ptr<Remove::Params> params(Remove::Params::Create(*args_)); 354 scoped_ptr<Remove::Params> params(Remove::Params::Create(*args_));
358 EXTENSION_FUNCTION_VALIDATE(params.get()); 355 EXTENSION_FUNCTION_VALIDATE(params.get());
359 356
360 ExtensionService* service = GetProfile()->GetExtensionService(); 357 MenuManager* manager = MenuManager::Get(GetProfile());
361 MenuManager* manager = service->menu_manager();
362 358
363 MenuItem::Id id(GetProfile()->IsOffTheRecord(), extension_id()); 359 MenuItem::Id id(GetProfile()->IsOffTheRecord(), extension_id());
364 if (params->menu_item_id.as_string) 360 if (params->menu_item_id.as_string)
365 id.string_uid = *params->menu_item_id.as_string; 361 id.string_uid = *params->menu_item_id.as_string;
366 else if (params->menu_item_id.as_integer) 362 else if (params->menu_item_id.as_integer)
367 id.uid = *params->menu_item_id.as_integer; 363 id.uid = *params->menu_item_id.as_integer;
368 else 364 else
369 NOTREACHED(); 365 NOTREACHED();
370 366
371 MenuItem* item = manager->GetItemById(id); 367 MenuItem* item = manager->GetItemById(id);
372 // Ensure one extension can't remove another's menu items. 368 // Ensure one extension can't remove another's menu items.
373 if (!item || item->extension_id() != extension_id()) { 369 if (!item || item->extension_id() != extension_id()) {
374 error_ = ErrorUtils::FormatErrorMessage( 370 error_ = ErrorUtils::FormatErrorMessage(
375 kCannotFindItemError, GetIDString(id)); 371 kCannotFindItemError, GetIDString(id));
376 return false; 372 return false;
377 } 373 }
378 374
379 if (!manager->RemoveContextMenuItem(id)) 375 if (!manager->RemoveContextMenuItem(id))
380 return false; 376 return false;
381 manager->WriteToStorage(GetExtension()); 377 manager->WriteToStorage(GetExtension());
382 return true; 378 return true;
383 } 379 }
384 380
385 bool ContextMenusRemoveAllFunction::RunImpl() { 381 bool ContextMenusRemoveAllFunction::RunImpl() {
386 ExtensionService* service = GetProfile()->GetExtensionService(); 382 MenuManager* manager = MenuManager::Get(GetProfile());
387 MenuManager* manager = service->menu_manager();
388 manager->RemoveAllContextItems(GetExtension()->id()); 383 manager->RemoveAllContextItems(GetExtension()->id());
389 manager->WriteToStorage(GetExtension()); 384 manager->WriteToStorage(GetExtension());
390 return true; 385 return true;
391 } 386 }
392 387
393 } // namespace extensions 388 } // namespace extensions
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/extensions/context_menu_matcher.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698