Index: chrome/common/extensions/extension.h |
diff --git a/chrome/common/extensions/extension.h b/chrome/common/extensions/extension.h |
index 22ca9fb9e72f599c8d42e0856c963e19a6256461..7391489a93e0827b8823b96b03996fd8a8247711 100644 |
--- a/chrome/common/extensions/extension.h |
+++ b/chrome/common/extensions/extension.h |
@@ -21,7 +21,6 @@ |
#include "base/memory/scoped_ptr.h" |
#include "base/synchronization/lock.h" |
#include "chrome/common/extensions/command.h" |
-#include "chrome/common/extensions/extension_action.h" |
#include "chrome/common/extensions/extension_constants.h" |
#include "chrome/common/extensions/extension_icon_set.h" |
#include "chrome/common/extensions/permissions/api_permission.h" |
@@ -208,6 +207,28 @@ class Extension : public base::RefCountedThreadSafe<Extension> { |
std::vector<std::string> scopes; |
}; |
+ // Manifest information for ExtensionActions. |
+ struct ActionInfo { |
+ // The types of extension actions. |
+ enum Type { |
+ TYPE_BROWSER, |
Aaron Boodman
2012/09/16 01:42:50
Do we need to carry around the type? The caller kn
not at google - send to devlin
2012/09/27 00:46:10
It was initially added for when page actions got i
|
+ TYPE_PAGE, |
+ TYPE_SCRIPT_BADGE, |
+ }; |
+ |
+ explicit ActionInfo(Type action_type); |
+ ~ActionInfo(); |
+ |
+ Type action_type; |
+ |
+ // Empty implies not present. |
+ std::string default_icon_path; |
+ std::string default_title; |
+ GURL default_popup_url; |
+ // action id -- only used with legacy page actions API. |
+ std::string id; |
+ }; |
+ |
struct InstallWarning { |
enum Format { |
// IMPORTANT: Do not build HTML strings from user or developer-supplied |
@@ -622,15 +643,15 @@ class Extension : public base::RefCountedThreadSafe<Extension> { |
return converted_from_user_script_; |
} |
const UserScriptList& content_scripts() const { return content_scripts_; } |
- ExtensionAction* script_badge() const { return script_badge_.get(); } |
- ExtensionAction* page_action() const { return page_action_.get(); } |
- ExtensionAction* browser_action() const { return browser_action_.get(); } |
+ ActionInfo* script_badge() const { return script_badge_.get(); } |
+ ActionInfo* page_action() const { return page_action_.get(); } |
+ ActionInfo* browser_action() const { return browser_action_.get(); } |
bool is_verbose_install_message() const { |
return !omnibox_keyword().empty() || |
browser_action() || |
(page_action() && |
(page_action_command() || |
- !page_action()->default_icon_path().empty())); |
+ !page_action()->default_icon_path.empty())); |
} |
const FileBrowserHandlerList* file_browser_handlers() const { |
return file_browser_handlers_.get(); |
@@ -919,11 +940,11 @@ class Extension : public base::RefCountedThreadSafe<Extension> { |
void(UserScript::*add_method)(const std::string& glob), |
UserScript* instance); |
- // Helper method to load an ExtensionAction from the page_action or |
- // browser_action entries in the manifest. |
- scoped_ptr<ExtensionAction> LoadExtensionActionHelper( |
+ // Helper method to load an ActionInfo from the page_action, |
+ // browser_action, or script_badge entries in the manifest. |
+ scoped_ptr<ActionInfo> LoadExtensionActionHelper( |
const base::DictionaryValue* extension_action, |
- ExtensionAction::Type action_type, |
+ ActionInfo::Type action_type, |
string16* error); |
// Helper method that loads the OAuth2 info from the 'oauth2' manifest key. |
@@ -1028,13 +1049,13 @@ class Extension : public base::RefCountedThreadSafe<Extension> { |
UserScriptList content_scripts_; |
// The extension's page action, if any. |
- scoped_ptr<ExtensionAction> page_action_; |
+ scoped_ptr<ActionInfo> page_action_; |
// The extension's browser action, if any. |
- scoped_ptr<ExtensionAction> browser_action_; |
+ scoped_ptr<ActionInfo> browser_action_; |
// The extension's script badge. Never NULL. |
- scoped_ptr<ExtensionAction> script_badge_; |
+ scoped_ptr<ActionInfo> script_badge_; |
// The extension's file browser actions, if any. |
scoped_ptr<FileBrowserHandlerList> file_browser_handlers_; |