Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1776)

Unified Diff: chrome/browser/extensions/extension_toolbar_model.cc

Issue 25305002: Implement initial chrome.browserAction.openPopup API. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: address comments Created 7 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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));
+}

Powered by Google App Engine
This is Rietveld 408576698