| 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 df01de5d17281de69b7072048f8efca77b573e26..ef35793664fdc9b29b9658d907ac9423e98ec75a 100644
|
| --- a/chrome/browser/extensions/extension_toolbar_model.h
|
| +++ b/chrome/browser/extensions/extension_toolbar_model.h
|
| @@ -33,7 +33,7 @@ class ExtensionToolbarModel : public content::NotificationObserver {
|
| };
|
|
|
| // A class which is informed of changes to the model; represents the view of
|
| - // MVC.
|
| + // MVC. Also used for signaling view changes such as showing extension popups.
|
| class Observer {
|
| public:
|
| // An extension with a browser action button has been added, and should go
|
| @@ -48,6 +48,10 @@ class ExtensionToolbarModel : public content::NotificationObserver {
|
| virtual void BrowserActionMoved(const extensions::Extension* extension,
|
| int index) {}
|
|
|
| + // Signal the |extension| to show the popup now in the active window.
|
| + // Returns true if a popup was slated to be shown.
|
| + virtual bool BrowserActionShowPopup(const extensions::Extension* extension);
|
| +
|
| // Called when the model has finished loading.
|
| virtual void ModelLoaded() {}
|
|
|
| @@ -62,7 +66,13 @@ class ExtensionToolbarModel : public content::NotificationObserver {
|
| // Executes the browser action for an extension and returns the action that
|
| // the UI should perform in response.
|
| // |popup_url_out| will be set if the extension should show a popup, with
|
| - // the URL that should be shown, if non-NULL.
|
| + // the URL that should be shown, if non-NULL. |should_grant| controls whether
|
| + // the browser action should grant the page tab permissions. The showPopup API
|
| + // does not grant permissions.
|
| + Action ExecuteBrowserAction(const extensions::Extension* extension,
|
| + Browser* browser,
|
| + GURL* popup_url_out,
|
| + bool should_grant);
|
| Action ExecuteBrowserAction(const extensions::Extension* extension,
|
| Browser* browser,
|
| GURL* popup_url_out);
|
| @@ -85,6 +95,10 @@ 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 extensions::Extension* extension);
|
| +
|
| private:
|
| // content::NotificationObserver implementation.
|
| virtual void Observe(int type,
|
|
|