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

Unified Diff: chrome/browser/views/extensions/browser_action_overflow_menu_controller.cc

Issue 1107007: Extension context menu refactor (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 10 years, 9 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/views/extensions/browser_action_overflow_menu_controller.cc
===================================================================
--- chrome/browser/views/extensions/browser_action_overflow_menu_controller.cc (revision 41960)
+++ chrome/browser/views/extensions/browser_action_overflow_menu_controller.cc (working copy)
@@ -7,12 +7,14 @@
#include "app/gfx/canvas.h"
#include "base/utf_string_conversions.h"
#include "chrome/browser/browser_list.h"
+#include "chrome/browser/extensions/extension_context_menu_model.h"
#include "chrome/browser/profile.h"
#include "chrome/browser/tab_contents/tab_contents.h"
#include "chrome/browser/views/browser_actions_container.h"
#include "chrome/browser/views/extensions/browser_action_drag_data.h"
#include "chrome/common/extensions/extension.h"
#include "views/controls/menu/menu_item_view.h"
+#include "views/controls/menu/menu_2.h"
BrowserActionOverflowMenuController::BrowserActionOverflowMenuController(
BrowserActionsContainer* owner,
@@ -70,7 +72,9 @@
menu_->RunMenuForDropAt(window, bounds, anchor);
} else {
menu_->RunMenuAt(window, menu_button_, bounds, anchor, false);
- delete this;
+ // Give the context menu (if any) a chance to execute the user-selected
+ // command.
+ MessageLoop::current()->DeleteSoon(FROM_HERE, this);
}
return true;
}
@@ -90,13 +94,13 @@
int id,
const gfx::Point& p,
bool is_mouse_gesture) {
+ context_menu_contents_.reset(new ExtensionContextMenuModel(
+ (*views_)[start_index_ + id - 1]->button()->extension(),
+ owner_->browser(),
+ owner_));
+ context_menu_menu_.reset(new views::Menu2(context_menu_contents_.get()));
// This blocks until the user choses something or dismisses the menu.
- owner_->GetContextMenu()->Run(
- (*views_)[start_index_ + id - 1]->button()->extension(),
- (*views_)[start_index_ + id - 1]->button()->extension()->browser_action(),
- owner_,
- owner_->profile()->GetPrefs(),
- p);
+ context_menu_menu_->RunContextMenuAt(p);
// The user is done with the context menu, so we can close the underlying
// menu.

Powered by Google App Engine
This is Rietveld 408576698