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, |