Index: chrome/browser/ui/extensions/extension_action_view_controller.h |
diff --git a/chrome/browser/ui/extensions/extension_action_view_controller.h b/chrome/browser/ui/extensions/extension_action_view_controller.h |
index fbc67bc6c866d0407f77527b88e053430f2fc1aa..87117d9c0b351868ff7e28056a3ecc0dee0d17d8 100644 |
--- a/chrome/browser/ui/extensions/extension_action_view_controller.h |
+++ b/chrome/browser/ui/extensions/extension_action_view_controller.h |
@@ -5,6 +5,7 @@ |
#ifndef CHROME_BROWSER_UI_EXTENSIONS_EXTENSION_ACTION_VIEW_CONTROLLER_H_ |
#define CHROME_BROWSER_UI_EXTENSIONS_EXTENSION_ACTION_VIEW_CONTROLLER_H_ |
+#include "base/memory/weak_ptr.h" |
#include "base/scoped_observer.h" |
#include "chrome/browser/extensions/extension_action_icon_factory.h" |
#include "chrome/browser/extensions/extension_context_menu_model.h" |
@@ -75,6 +76,9 @@ class ExtensionActionViewController |
// Closes the active popup (whether it was this action's popup or not). |
void HideActivePopup(); |
+ // Handles cleanup after a menu closes. |
+ void OnMenuClosed(); |
+ |
// Populates |command| with the command associated with |extension|, if one |
// exists. Returns true if |command| was populated. |
bool GetExtensionCommand(extensions::Command* command); |
@@ -114,14 +118,21 @@ class ExtensionActionViewController |
// e.g. an API). Returns true if a popup is shown. |
bool ExecuteAction(PopupShowAction show_action, bool grant_tab_permissions); |
- // Shows the popup for the extension action, given the associated |popup_url|. |
- // |grant_tab_permissions| is true if active tab permissions should be given |
- // to the extension; this is only true if the popup is opened through a user |
- // action. |
- // Returns true if a popup is successfully shown. |
- bool ShowPopupWithUrl(PopupShowAction show_action, |
- const GURL& popup_url, |
- bool grant_tab_permissions); |
+ // Begins the process of showing the popup for the extension action, given the |
+ // associated |popup_url|. |grant_tab_permissions| is true if active tab |
+ // permissions should be given to the extension; this is only true if the |
+ // popup is opened through a user action. |
+ // The popup may not be shown synchronously if the extension is hidden and |
+ // first needs to slide itself out. |
+ // Returns true if a popup will be shown. |
+ bool TriggerPopupWithUrl(PopupShowAction show_action, |
+ const GURL& popup_url, |
+ bool grant_tab_permissions); |
+ |
+ // Shows the popup with the given |host|. |
+ void ShowPopup(scoped_ptr<extensions::ExtensionViewHost> host, |
+ bool grant_tab_permissions, |
+ PopupShowAction show_action); |
// Handles cleanup after the popup closes. |
void OnPopupClosed(); |
@@ -171,6 +182,8 @@ class ExtensionActionViewController |
ScopedObserver<extensions::ExtensionHost, extensions::ExtensionHostObserver> |
popup_host_observer_; |
+ base::WeakPtrFactory<ExtensionActionViewController> weak_factory_; |
+ |
DISALLOW_COPY_AND_ASSIGN(ExtensionActionViewController); |
}; |