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

Side by Side Diff: chrome/browser/extensions/menu_manager.cc

Issue 104493005: Update some uses of Value in chrome/browser to use the base:: namespace. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix Created 6 years, 12 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 | Annotate | Revision Log
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/menu_manager.h" 5 #include "chrome/browser/extensions/menu_manager.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "base/json/json_writer.h" 9 #include "base/json/json_writer.h"
10 #include "base/logging.h" 10 #include "base/logging.h"
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
83 continue; 83 continue;
84 items.push_back(item); 84 items.push_back(item);
85 } 85 }
86 return items; 86 return items;
87 } 87 }
88 88
89 scoped_ptr<base::Value> MenuItemsToValue(const MenuItem::List& items) { 89 scoped_ptr<base::Value> MenuItemsToValue(const MenuItem::List& items) {
90 scoped_ptr<base::ListValue> list(new base::ListValue()); 90 scoped_ptr<base::ListValue> list(new base::ListValue());
91 for (size_t i = 0; i < items.size(); ++i) 91 for (size_t i = 0; i < items.size(); ++i)
92 list->Append(items[i]->ToValue().release()); 92 list->Append(items[i]->ToValue().release());
93 return scoped_ptr<Value>(list.release()); 93 return scoped_ptr<base::Value>(list.release());
94 } 94 }
95 95
96 bool GetStringList(const DictionaryValue& dict, 96 bool GetStringList(const base::DictionaryValue& dict,
97 const std::string& key, 97 const std::string& key,
98 std::vector<std::string>* out) { 98 std::vector<std::string>* out) {
99 if (!dict.HasKey(key)) 99 if (!dict.HasKey(key))
100 return true; 100 return true;
101 101
102 const base::ListValue* list = NULL; 102 const base::ListValue* list = NULL;
103 if (!dict.GetListWithoutPathExpansion(key, &list)) 103 if (!dict.GetListWithoutPathExpansion(key, &list))
104 return false; 104 return false;
105 105
106 for (size_t i = 0; i < list->GetSize(); ++i) { 106 for (size_t i = 0; i < list->GetSize(); ++i) {
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
184 return false; 184 return false;
185 checked_ = checked; 185 checked_ = checked;
186 return true; 186 return true;
187 } 187 }
188 188
189 void MenuItem::AddChild(MenuItem* item) { 189 void MenuItem::AddChild(MenuItem* item) {
190 item->parent_id_.reset(new Id(id_)); 190 item->parent_id_.reset(new Id(id_));
191 children_.push_back(item); 191 children_.push_back(item);
192 } 192 }
193 193
194 scoped_ptr<DictionaryValue> MenuItem::ToValue() const { 194 scoped_ptr<base::DictionaryValue> MenuItem::ToValue() const {
195 scoped_ptr<DictionaryValue> value(new DictionaryValue); 195 scoped_ptr<base::DictionaryValue> value(new base::DictionaryValue);
196 // Should only be called for extensions with event pages, which only have 196 // Should only be called for extensions with event pages, which only have
197 // string IDs for items. 197 // string IDs for items.
198 DCHECK_EQ(0, id_.uid); 198 DCHECK_EQ(0, id_.uid);
199 value->SetString(kStringUIDKey, id_.string_uid); 199 value->SetString(kStringUIDKey, id_.string_uid);
200 value->SetBoolean(kIncognitoKey, id_.incognito); 200 value->SetBoolean(kIncognitoKey, id_.incognito);
201 value->SetInteger(kTypeKey, type_); 201 value->SetInteger(kTypeKey, type_);
202 if (type_ != SEPARATOR) 202 if (type_ != SEPARATOR)
203 value->SetString(kTitleKey, title_); 203 value->SetString(kTitleKey, title_);
204 if (type_ == CHECKBOX || type_ == RADIO) 204 if (type_ == CHECKBOX || type_ == RADIO)
205 value->SetBoolean(kCheckedKey, checked_); 205 value->SetBoolean(kCheckedKey, checked_);
206 value->SetBoolean(kEnabledKey, enabled_); 206 value->SetBoolean(kEnabledKey, enabled_);
207 value->Set(kContextsKey, contexts_.ToValue().release()); 207 value->Set(kContextsKey, contexts_.ToValue().release());
208 if (parent_id_) { 208 if (parent_id_) {
209 DCHECK_EQ(0, parent_id_->uid); 209 DCHECK_EQ(0, parent_id_->uid);
210 value->SetString(kParentUIDKey, parent_id_->string_uid); 210 value->SetString(kParentUIDKey, parent_id_->string_uid);
211 } 211 }
212 value->Set(kDocumentURLPatternsKey, 212 value->Set(kDocumentURLPatternsKey,
213 document_url_patterns_.ToValue().release()); 213 document_url_patterns_.ToValue().release());
214 value->Set(kTargetURLPatternsKey, target_url_patterns_.ToValue().release()); 214 value->Set(kTargetURLPatternsKey, target_url_patterns_.ToValue().release());
215 return value.Pass(); 215 return value.Pass();
216 } 216 }
217 217
218 // static 218 // static
219 MenuItem* MenuItem::Populate(const std::string& extension_id, 219 MenuItem* MenuItem::Populate(const std::string& extension_id,
220 const DictionaryValue& value, 220 const base::DictionaryValue& value,
221 std::string* error) { 221 std::string* error) {
222 bool incognito = false; 222 bool incognito = false;
223 if (!value.GetBoolean(kIncognitoKey, &incognito)) 223 if (!value.GetBoolean(kIncognitoKey, &incognito))
224 return NULL; 224 return NULL;
225 Id id(incognito, extension_id); 225 Id id(incognito, extension_id);
226 if (!value.GetString(kStringUIDKey, &id.string_uid)) 226 if (!value.GetString(kStringUIDKey, &id.string_uid))
227 return NULL; 227 return NULL;
228 int type_int; 228 int type_int;
229 Type type = NORMAL; 229 Type type = NORMAL;
230 if (!value.GetInteger(kTypeKey, &type_int)) 230 if (!value.GetInteger(kTypeKey, &type_int))
231 return NULL; 231 return NULL;
232 type = static_cast<Type>(type_int); 232 type = static_cast<Type>(type_int);
233 std::string title; 233 std::string title;
234 if (type != SEPARATOR && !value.GetString(kTitleKey, &title)) 234 if (type != SEPARATOR && !value.GetString(kTitleKey, &title))
235 return NULL; 235 return NULL;
236 bool checked = false; 236 bool checked = false;
237 if ((type == CHECKBOX || type == RADIO) && 237 if ((type == CHECKBOX || type == RADIO) &&
238 !value.GetBoolean(kCheckedKey, &checked)) { 238 !value.GetBoolean(kCheckedKey, &checked)) {
239 return NULL; 239 return NULL;
240 } 240 }
241 bool enabled = true; 241 bool enabled = true;
242 if (!value.GetBoolean(kEnabledKey, &enabled)) 242 if (!value.GetBoolean(kEnabledKey, &enabled))
243 return NULL; 243 return NULL;
244 ContextList contexts; 244 ContextList contexts;
245 const Value* contexts_value = NULL; 245 const base::Value* contexts_value = NULL;
246 if (!value.Get(kContextsKey, &contexts_value)) 246 if (!value.Get(kContextsKey, &contexts_value))
247 return NULL; 247 return NULL;
248 if (!contexts.Populate(*contexts_value)) 248 if (!contexts.Populate(*contexts_value))
249 return NULL; 249 return NULL;
250 250
251 scoped_ptr<MenuItem> result(new MenuItem( 251 scoped_ptr<MenuItem> result(new MenuItem(
252 id, title, checked, enabled, type, contexts)); 252 id, title, checked, enabled, type, contexts));
253 253
254 std::vector<std::string> document_url_patterns; 254 std::vector<std::string> document_url_patterns;
255 if (!GetStringList(value, kDocumentURLPatternsKey, &document_url_patterns)) 255 if (!GetStringList(value, kDocumentURLPatternsKey, &document_url_patterns))
(...skipping 325 matching lines...) Expand 10 before | Expand all | Expand 10 after
581 } 581 }
582 582
583 // Now iterate forwards from |item| and uncheck any adjacent radio items. 583 // Now iterate forwards from |item| and uncheck any adjacent radio items.
584 for (i = item_location + 1; i != list->end(); ++i) { 584 for (i = item_location + 1; i != list->end(); ++i) {
585 if ((*i)->type() != MenuItem::RADIO) 585 if ((*i)->type() != MenuItem::RADIO)
586 break; 586 break;
587 (*i)->SetChecked(false); 587 (*i)->SetChecked(false);
588 } 588 }
589 } 589 }
590 590
591 static void AddURLProperty(DictionaryValue* dictionary, 591 static void AddURLProperty(base::DictionaryValue* dictionary,
592 const std::string& key, const GURL& url) { 592 const std::string& key, const GURL& url) {
593 if (!url.is_empty()) 593 if (!url.is_empty())
594 dictionary->SetString(key, url.possibly_invalid_spec()); 594 dictionary->SetString(key, url.possibly_invalid_spec());
595 } 595 }
596 596
597 void MenuManager::ExecuteCommand(Profile* profile, 597 void MenuManager::ExecuteCommand(Profile* profile,
598 WebContents* web_contents, 598 WebContents* web_contents,
599 const content::ContextMenuParams& params, 599 const content::ContextMenuParams& params,
600 const MenuItem::Id& menu_item_id) { 600 const MenuItem::Id& menu_item_id) {
601 EventRouter* event_router = extensions::ExtensionSystem::Get(profile)-> 601 EventRouter* event_router = extensions::ExtensionSystem::Get(profile)->
602 event_router(); 602 event_router();
603 if (!event_router) 603 if (!event_router)
604 return; 604 return;
605 605
606 MenuItem* item = GetItemById(menu_item_id); 606 MenuItem* item = GetItemById(menu_item_id);
607 if (!item) 607 if (!item)
608 return; 608 return;
609 609
610 // ExtensionService/Extension can be NULL in unit tests :( 610 // ExtensionService/Extension can be NULL in unit tests :(
611 ExtensionService* service = 611 ExtensionService* service =
612 ExtensionSystem::Get(profile_)->extension_service(); 612 ExtensionSystem::Get(profile_)->extension_service();
613 const Extension* extension = service ? 613 const Extension* extension = service ?
614 service->extensions()->GetByID(menu_item_id.extension_id) : NULL; 614 service->extensions()->GetByID(menu_item_id.extension_id) : NULL;
615 615
616 if (item->type() == MenuItem::RADIO) 616 if (item->type() == MenuItem::RADIO)
617 RadioItemSelected(item); 617 RadioItemSelected(item);
618 618
619 scoped_ptr<base::ListValue> args(new base::ListValue()); 619 scoped_ptr<base::ListValue> args(new base::ListValue());
620 620
621 DictionaryValue* properties = new DictionaryValue(); 621 base::DictionaryValue* properties = new base::DictionaryValue();
622 SetIdKeyValue(properties, "menuItemId", item->id()); 622 SetIdKeyValue(properties, "menuItemId", item->id());
623 if (item->parent_id()) 623 if (item->parent_id())
624 SetIdKeyValue(properties, "parentMenuItemId", *item->parent_id()); 624 SetIdKeyValue(properties, "parentMenuItemId", *item->parent_id());
625 625
626 switch (params.media_type) { 626 switch (params.media_type) {
627 case blink::WebContextMenuData::MediaTypeImage: 627 case blink::WebContextMenuData::MediaTypeImage:
628 properties->SetString("mediaType", "image"); 628 properties->SetString("mediaType", "image");
629 break; 629 break;
630 case blink::WebContextMenuData::MediaTypeVideo: 630 case blink::WebContextMenuData::MediaTypeVideo:
631 properties->SetString("mediaType", "video"); 631 properties->SetString("mediaType", "video");
(...skipping 16 matching lines...) Expand all
648 648
649 args->Append(properties); 649 args->Append(properties);
650 650
651 // Add the tab info to the argument list. 651 // Add the tab info to the argument list.
652 // No tab info in a platform app. 652 // No tab info in a platform app.
653 if (!extension || !extension->is_platform_app()) { 653 if (!extension || !extension->is_platform_app()) {
654 // Note: web_contents are NULL in unit tests :( 654 // Note: web_contents are NULL in unit tests :(
655 if (web_contents) { 655 if (web_contents) {
656 args->Append(ExtensionTabUtil::CreateTabValue(web_contents)); 656 args->Append(ExtensionTabUtil::CreateTabValue(web_contents));
657 } else { 657 } else {
658 args->Append(new DictionaryValue()); 658 args->Append(new base::DictionaryValue());
659 } 659 }
660 } 660 }
661 661
662 if (item->type() == MenuItem::CHECKBOX || 662 if (item->type() == MenuItem::CHECKBOX ||
663 item->type() == MenuItem::RADIO) { 663 item->type() == MenuItem::RADIO) {
664 bool was_checked = item->checked(); 664 bool was_checked = item->checked();
665 properties->SetBoolean("wasChecked", was_checked); 665 properties->SetBoolean("wasChecked", was_checked);
666 666
667 // RADIO items always get set to true when you click on them, but CHECKBOX 667 // RADIO items always get set to true when you click on them, but CHECKBOX
668 // items get their state toggled. 668 // items get their state toggled.
(...skipping 219 matching lines...) Expand 10 before | Expand all | Expand 10 after
888 if (uid < other.uid) 888 if (uid < other.uid)
889 return true; 889 return true;
890 if (uid == other.uid) 890 if (uid == other.uid)
891 return string_uid < other.string_uid; 891 return string_uid < other.string_uid;
892 } 892 }
893 } 893 }
894 return false; 894 return false;
895 } 895 }
896 896
897 } // namespace extensions 897 } // namespace extensions
OLDNEW
« no previous file with comments | « chrome/browser/extensions/installed_loader.cc ('k') | chrome/browser/extensions/menu_manager_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698