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

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

Issue 2816513002: Revert of Change base::Value::ListStorage to std::vector<base::Value> (Closed)
Patch Set: Created 3 years, 8 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/menu_manager.h" 5 #include "chrome/browser/extensions/menu_manager.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <memory> 8 #include <memory>
9 #include <tuple> 9 #include <tuple>
10 #include <utility> 10 #include <utility>
(...skipping 607 matching lines...) Expand 10 before | Expand all | Expand 10 after
618 if (!item) 618 if (!item)
619 return; 619 return;
620 620
621 ExtensionRegistry* registry = ExtensionRegistry::Get(browser_context_); 621 ExtensionRegistry* registry = ExtensionRegistry::Get(browser_context_);
622 const Extension* extension = 622 const Extension* extension =
623 registry->enabled_extensions().GetByID(item->extension_id()); 623 registry->enabled_extensions().GetByID(item->extension_id());
624 624
625 if (item->type() == MenuItem::RADIO) 625 if (item->type() == MenuItem::RADIO)
626 RadioItemSelected(item); 626 RadioItemSelected(item);
627 627
628 std::unique_ptr<base::ListValue> args(new base::ListValue());
628 629
629 std::unique_ptr<base::DictionaryValue> properties( 630 std::unique_ptr<base::DictionaryValue> properties(
630 new base::DictionaryValue()); 631 new base::DictionaryValue());
631 SetIdKeyValue(properties.get(), "menuItemId", item->id()); 632 SetIdKeyValue(properties.get(), "menuItemId", item->id());
632 if (item->parent_id()) 633 if (item->parent_id())
633 SetIdKeyValue(properties.get(), "parentMenuItemId", *item->parent_id()); 634 SetIdKeyValue(properties.get(), "parentMenuItemId", *item->parent_id());
634 635
635 switch (params.media_type) { 636 switch (params.media_type) {
636 case blink::WebContextMenuData::kMediaTypeImage: 637 case blink::WebContextMenuData::kMediaTypeImage:
637 properties->SetString("mediaType", "image"); 638 properties->SetString("mediaType", "image");
(...skipping 18 matching lines...) Expand all
656 properties->SetBoolean("editable", params.is_editable); 657 properties->SetBoolean("editable", params.is_editable);
657 658
658 WebViewGuest* webview_guest = WebViewGuest::FromWebContents(web_contents); 659 WebViewGuest* webview_guest = WebViewGuest::FromWebContents(web_contents);
659 if (webview_guest) { 660 if (webview_guest) {
660 // This is used in web_view_internalcustom_bindings.js. 661 // This is used in web_view_internalcustom_bindings.js.
661 // The property is not exposed to developer API. 662 // The property is not exposed to developer API.
662 properties->SetInteger("webviewInstanceId", 663 properties->SetInteger("webviewInstanceId",
663 webview_guest->view_instance_id()); 664 webview_guest->view_instance_id());
664 } 665 }
665 666
666 auto args = base::MakeUnique<base::ListValue>(); 667 base::DictionaryValue* raw_properties = properties.get();
667 args->Reserve(2);
668 args->Append(std::move(properties)); 668 args->Append(std::move(properties));
669 // |properties| is invalidated at this time, which is why |args| needs to be
670 // queried for the pointer. The obtained pointer is guaranteed to stay valid
671 // even after further Appends, because enough storage was reserved above.
672 base::DictionaryValue* raw_properties = nullptr;
673 args->GetDictionary(0, &raw_properties);
674 669
675 // Add the tab info to the argument list. 670 // Add the tab info to the argument list.
676 // No tab info in a platform app. 671 // No tab info in a platform app.
677 if (!extension || !extension->is_platform_app()) { 672 if (!extension || !extension->is_platform_app()) {
678 // Note: web_contents are null in unit tests :( 673 // Note: web_contents are null in unit tests :(
679 if (web_contents) { 674 if (web_contents) {
680 int frame_id = ExtensionApiFrameIdMap::GetFrameId(render_frame_host); 675 int frame_id = ExtensionApiFrameIdMap::GetFrameId(render_frame_host);
681 if (frame_id != ExtensionApiFrameIdMap::kInvalidFrameId) 676 if (frame_id != ExtensionApiFrameIdMap::kInvalidFrameId)
682 raw_properties->SetInteger("frameId", frame_id); 677 raw_properties->SetInteger("frameId", frame_id);
683 678
(...skipping 284 matching lines...) Expand 10 before | Expand all | Expand 10 after
968 bool MenuItem::Id::operator!=(const Id& other) const { 963 bool MenuItem::Id::operator!=(const Id& other) const {
969 return !(*this == other); 964 return !(*this == other);
970 } 965 }
971 966
972 bool MenuItem::Id::operator<(const Id& other) const { 967 bool MenuItem::Id::operator<(const Id& other) const {
973 return std::tie(incognito, extension_key, uid, string_uid) < 968 return std::tie(incognito, extension_key, uid, string_uid) <
974 std::tie(other.incognito, other.extension_key, other.uid, other.string_uid); 969 std::tie(other.incognito, other.extension_key, other.uid, other.string_uid);
975 } 970 }
976 971
977 } // namespace extensions 972 } // namespace extensions
OLDNEW
« no previous file with comments | « chrome/browser/extensions/install_signer.cc ('k') | chrome/browser/extensions/policy_handlers.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698