Index: chrome/browser/extensions/extension_toolbar_model.cc |
diff --git a/chrome/browser/extensions/extension_toolbar_model.cc b/chrome/browser/extensions/extension_toolbar_model.cc |
index c869fd91d184932f037a508c2b9ecfb58be2b29a..ce7d57f3fe479d31536a4bad94fe5b5e845e5e3f 100644 |
--- a/chrome/browser/extensions/extension_toolbar_model.cc |
+++ b/chrome/browser/extensions/extension_toolbar_model.cc |
@@ -4,6 +4,8 @@ |
#include "chrome/browser/extensions/extension_toolbar_model.h" |
+#include <string> |
+ |
#include "base/prefs/pref_service.h" |
#include "chrome/browser/chrome_notification_types.h" |
#include "chrome/browser/extensions/api/extension_action/extension_action_api.h" |
@@ -129,6 +131,14 @@ ExtensionToolbarModel::Action ExtensionToolbarModel::ExecuteBrowserAction( |
const Extension* extension, |
Browser* browser, |
GURL* popup_url_out) { |
+ return ExecuteBrowserAction(extension, browser, popup_url_out, true); |
+} |
+ |
+ExtensionToolbarModel::Action ExtensionToolbarModel::ExecuteBrowserAction( |
+ const Extension* extension, |
+ Browser* browser, |
+ GURL* popup_url_out, |
+ bool should_grant) { |
content::WebContents* web_contents = NULL; |
int tab_id = 0; |
if (!ExtensionTabUtil::GetDefaultTab(browser, &web_contents, &tab_id)) |
@@ -142,8 +152,10 @@ ExtensionToolbarModel::Action ExtensionToolbarModel::ExecuteBrowserAction( |
if (!browser_action->GetIsVisible(tab_id)) |
return ACTION_NONE; |
- extensions::TabHelper::FromWebContents(web_contents)-> |
- active_tab_permission_granter()->GrantIfRequested(extension); |
+ if (should_grant) { |
+ extensions::TabHelper::FromWebContents(web_contents)-> |
+ active_tab_permission_granter()->GrantIfRequested(extension); |
+ } |
if (browser_action->HasPopup(tab_id)) { |
if (popup_url_out) |
@@ -454,3 +466,8 @@ void ExtensionToolbarModel::OnExtensionToolbarPrefChange() { |
weak_ptr_factory_.GetWeakPtr())); |
} |
} |
+ |
+void ExtensionToolbarModel::ShowBrowserActionPopup( |
+ const extensions::Extension* extension) { |
+ FOR_EACH_OBSERVER(Observer, observers_, BrowserActionShowPopup(extension)); |
+} |