Index: chrome/browser/ui/views/extensions/extension_action_view_controller.cc |
diff --git a/chrome/browser/ui/views/extensions/extension_action_view_controller.cc b/chrome/browser/ui/views/extensions/extension_action_view_controller.cc |
index e03d2968fcd5076781be3515969879ef41814500..e17e5ce7742991411fdbf8a912712b341357013d 100644 |
--- a/chrome/browser/ui/views/extensions/extension_action_view_controller.cc |
+++ b/chrome/browser/ui/views/extensions/extension_action_view_controller.cc |
@@ -72,11 +72,8 @@ bool ExtensionActionViewController::ExecuteAction( |
ExecuteExtensionAction(extension_, browser_, grant_tab_permissions) == |
ExtensionAction::ACTION_SHOW_POPUP) { |
GURL popup_url = extension_action_->GetPopupUrl(GetCurrentTabId()); |
- if (delegate_->GetPreferredPopupViewController()->ShowPopupWithUrl( |
- show_action, popup_url)) { |
- delegate_->OnPopupShown(grant_tab_permissions); |
- return true; |
- } |
+ return delegate_->GetPreferredPopupViewController()->ShowPopupWithUrl( |
+ show_action, popup_url, grant_tab_permissions); |
} |
return false; |
} |
@@ -203,8 +200,6 @@ void ExtensionActionViewController::DoShowContextMenu( |
// We shouldn't have both a popup and a context menu showing. |
delegate_->HideActivePopup(); |
- delegate_->OnWillShowContextMenus(); |
- |
// Reconstructs the menu every time because the menu's contents are dynamic. |
scoped_refptr<ExtensionContextMenuModel> context_menu_model( |
new ExtensionContextMenuModel(extension_, browser_, this)); |
@@ -224,7 +219,7 @@ void ExtensionActionViewController::DoShowContextMenu( |
if (menu_runner_->RunMenuAt( |
parent, |
- NULL, |
+ delegate_->GetContextMenuButton(), |
gfx::Rect(screen_loc, delegate_->GetAsView()->size()), |
views::MENU_ANCHOR_TOPLEFT, |
source_type) == views::MenuRunner::MENU_DELETED) { |
@@ -233,7 +228,6 @@ void ExtensionActionViewController::DoShowContextMenu( |
context_menu_owner = NULL; |
menu_runner_.reset(); |
- delegate_->OnContextMenuDone(); |
// If another extension action wants to show its context menu, allow it to. |
if (!followup_context_menu_task_.is_null()) { |
@@ -244,7 +238,9 @@ void ExtensionActionViewController::DoShowContextMenu( |
} |
bool ExtensionActionViewController::ShowPopupWithUrl( |
- ExtensionPopup::ShowAction show_action, const GURL& popup_url) { |
+ ExtensionPopup::ShowAction show_action, |
+ const GURL& popup_url, |
+ bool grant_tab_permissions) { |
// If we're already showing the popup for this browser action, just hide it |
// and return. |
bool already_showing = popup_ != NULL; |
@@ -269,6 +265,8 @@ bool ExtensionActionViewController::ShowPopupWithUrl( |
popup_url, browser_, reference_view, arrow, show_action); |
popup_->GetWidget()->AddObserver(this); |
+ delegate_->OnPopupShown(grant_tab_permissions); |
+ |
return true; |
} |