Index: chrome/browser/ui/views/renderer_context_menu/render_view_context_menu_views.cc |
diff --git a/chrome/browser/ui/views/renderer_context_menu/render_view_context_menu_views.cc b/chrome/browser/ui/views/renderer_context_menu/render_view_context_menu_views.cc |
index b9df373df40af6b095003a70d1ba0b7788691b57..3c47e03c328bda0ed954a0cb74ab534e9f79daca 100644 |
--- a/chrome/browser/ui/views/renderer_context_menu/render_view_context_menu_views.cc |
+++ b/chrome/browser/ui/views/renderer_context_menu/render_view_context_menu_views.cc |
@@ -16,6 +16,7 @@ |
#include "ui/events/keycodes/keyboard_codes.h" |
#include "ui/gfx/point.h" |
#include "ui/views/controls/menu/menu_item_view.h" |
+#include "ui/views/controls/menu/menu_model_adapter.h" |
#include "ui/views/controls/menu/menu_runner.h" |
using content::WebContents; |
@@ -27,7 +28,8 @@ RenderViewContextMenuViews::RenderViewContextMenuViews( |
content::RenderFrameHost* render_frame_host, |
const content::ContextMenuParams& params) |
: RenderViewContextMenu(render_frame_host, params), |
- bidi_submenu_model_(this) { |
+ bidi_submenu_model_(this), |
+ menu_view_(NULL) { |
} |
RenderViewContextMenuViews::~RenderViewContextMenuViews() { |
@@ -58,8 +60,10 @@ void RenderViewContextMenuViews::RunMenuAt(views::Widget* parent, |
// RenderViewContextMenuViews, protected: |
void RenderViewContextMenuViews::PlatformInit() { |
+ menu_adapter_.reset(new views::MenuModelAdapter(&menu_model_)); |
+ menu_view_ = menu_adapter_->CreateMenu(); |
menu_runner_.reset(new views::MenuRunner( |
- &menu_model_, |
+ menu_view_, |
views::MenuRunner::HAS_MNEMONICS | views::MenuRunner::CONTEXT_MENU)); |
} |
@@ -191,8 +195,7 @@ void RenderViewContextMenuViews::UpdateMenuItem(int command_id, |
bool enabled, |
bool hidden, |
const base::string16& title) { |
- views::MenuItemView* item = |
- menu_runner_->GetMenu()->GetMenuItemByID(command_id); |
+ views::MenuItemView* item = menu_view_->GetMenuItemByID(command_id); |
if (!item) |
return; |