| Index: chrome/browser/extensions/extension_toolbar_model.h
|
| diff --git a/chrome/browser/extensions/extension_toolbar_model.h b/chrome/browser/extensions/extension_toolbar_model.h
|
| index c0d35d6aa9a35c02be70fbf122a7e4bd907c12a7..29e83b385d9b6e464860b90011ecdbb4da1cceb9 100644
|
| --- a/chrome/browser/extensions/extension_toolbar_model.h
|
| +++ b/chrome/browser/extensions/extension_toolbar_model.h
|
| @@ -37,8 +37,8 @@ class ExtensionToolbarModel : public content::NotificationObserver,
|
|
|
| // A class which is informed of changes to the model; represents the view of
|
| // MVC. Also used for signaling view changes such as showing extension popups.
|
| - // TODO(devlin): Should this really be an observer? There should probably be
|
| - // only one (aka a Delegate)...
|
| + // TODO(devlin): Should this really be an observer? It acts more like a
|
| + // delegate.
|
| class Observer {
|
| public:
|
| // An extension has been added to the toolbar and should go at |index|.
|
| @@ -59,8 +59,11 @@ class ExtensionToolbarModel : public content::NotificationObserver,
|
| virtual void ToolbarExtensionUpdated(const Extension* extension) = 0;
|
|
|
| // Signal the |extension| to show the popup now in the active window.
|
| + // If |grant_active_tab| is true, then active tab permissions should be
|
| + // given to the extension (only do this if this is through a user action).
|
| // Returns true if a popup was slated to be shown.
|
| - virtual bool ShowExtensionActionPopup(const Extension* extension) = 0;
|
| + virtual bool ShowExtensionActionPopup(const Extension* extension,
|
| + bool grant_active_tab) = 0;
|
|
|
| // Signal when the container needs to be redrawn because of a size change,
|
| // and when the model has finished loading.
|
| @@ -75,6 +78,9 @@ class ExtensionToolbarModel : public content::NotificationObserver,
|
| // with the new set (and just assume the new set is different).
|
| virtual void ToolbarHighlightModeChanged(bool is_highlighting) = 0;
|
|
|
| + // Returns the browser associated with the Observer.
|
| + virtual Browser* GetBrowser() = 0;
|
| +
|
| protected:
|
| virtual ~Observer() {}
|
| };
|
| @@ -112,9 +118,13 @@ class ExtensionToolbarModel : public content::NotificationObserver,
|
|
|
| void OnExtensionToolbarPrefChange();
|
|
|
| - // Tells observers to display a popup without granting tab permissions and
|
| - // returns whether the popup was slated to be shown.
|
| - bool ShowBrowserActionPopup(const Extension* extension);
|
| + // Finds the Observer associated with |browser| and tells it to display a
|
| + // popup for the given |extension|. If |grant_active_tab| is true, this
|
| + // grants active tab permissions to the |extension|; only do this because of
|
| + // a direct user action.
|
| + bool ShowExtensionActionPopup(const Extension* extension,
|
| + Browser* browser,
|
| + bool grant_active_tab);
|
|
|
| // Ensures that the extensions in the |extension_ids| list are visible on the
|
| // toolbar. This might mean they need to be moved to the front (if they are in
|
|
|