| 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));
|
| +}
|
|
|