Index: chrome/browser/extensions/api/extension_action/extension_action_api.cc |
diff --git a/chrome/browser/extensions/api/extension_action/extension_action_api.cc b/chrome/browser/extensions/api/extension_action/extension_action_api.cc |
index 98e73ee428297faf8f31e47801af00e6872994d5..4ac070901e45be68dbe5b5f352dd4b37f98b086f 100644 |
--- a/chrome/browser/extensions/api/extension_action/extension_action_api.cc |
+++ b/chrome/browser/extensions/api/extension_action/extension_action_api.cc |
@@ -4,7 +4,7 @@ |
#include "chrome/browser/extensions/api/extension_action/extension_action_api.h" |
-#include <string> |
+#include <set> |
Finnur
2013/10/15 10:44:21
Where's std::set used?
justinlin
2013/10/16 07:06:48
Done.
|
#include "base/base64.h" |
#include "base/lazy_instance.h" |
@@ -25,6 +25,7 @@ |
#include "chrome/browser/extensions/tab_helper.h" |
#include "chrome/browser/profiles/profile.h" |
#include "chrome/common/extensions/api/extension_action/action_info.h" |
+#include "chrome/common/extensions/features/simple_feature.h" |
Finnur
2013/10/15 10:44:21
Don't need this?
justinlin
2013/10/16 07:06:48
Done.
|
#include "chrome/common/render_messages.h" |
#include "content/public/browser/navigation_entry.h" |
#include "content/public/browser/notification_service.h" |
@@ -32,6 +33,7 @@ |
#include "ui/gfx/image/image.h" |
#include "ui/gfx/image/image_skia.h" |
+using chrome::VersionInfo; |
Finnur
2013/10/15 10:44:21
Don't need this, right?
justinlin
2013/10/16 07:06:48
Done.
|
using content::WebContents; |
namespace page_actions_keys = extension_page_actions_api_constants; |
@@ -209,6 +211,7 @@ ExtensionActionAPI::ExtensionActionAPI(Profile* profile) { |
registry->RegisterFunction<BrowserActionGetPopupFunction>(); |
registry->RegisterFunction<BrowserActionEnableFunction>(); |
registry->RegisterFunction<BrowserActionDisableFunction>(); |
+ registry->RegisterFunction<BrowserActionOpenPopupFunction>(); |
// Page Actions |
registry->RegisterFunction<EnablePageActionsFunction>(); |
@@ -805,6 +808,26 @@ bool ExtensionActionGetBadgeBackgroundColorFunction::RunExtensionAction() { |
return true; |
} |
+bool BrowserActionOpenPopupFunction::RunImpl() { |
+ ExtensionService* service = |
+ extensions::ExtensionSystem::Get(profile_)->extension_service(); |
+ if (!service) { |
+ SetResult(new base::DictionaryValue()); |
+ return false; |
Finnur
2013/10/15 10:44:21
Do you see these (service and model below) being N
justinlin
2013/10/16 07:06:48
yea, I think extension_service() would not be NULL
|
+ } |
+ |
+ ExtensionToolbarModel *model = service->toolbar_model(); |
Finnur
2013/10/15 10:44:21
Foo* foo
not
Foo *foo.
justinlin
2013/10/16 07:06:48
Done.
|
+ if (!model) { |
+ SetResult(new base::DictionaryValue()); |
+ return false; |
+ } |
+ |
+ model->ShowBrowserActionPopup(extension_); |
+ |
+ SetResult(new base::DictionaryValue()); |
+ return true; |
+} |
+ |
// |
// ScriptBadgeGetAttentionFunction |
// |