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

Side by Side Diff: chrome/common/extensions/extension.h

Issue 11588004: Move ScriptBadge, ActionInfo out of Extension; preparation for BrowserAction (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Latest master for CQ Created 7 years, 11 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef CHROME_COMMON_EXTENSIONS_EXTENSION_H_ 5 #ifndef CHROME_COMMON_EXTENSIONS_EXTENSION_H_
6 #define CHROME_COMMON_EXTENSIONS_EXTENSION_H_ 6 #define CHROME_COMMON_EXTENSIONS_EXTENSION_H_
7 7
8 #include <algorithm> 8 #include <algorithm>
9 #include <iosfwd> 9 #include <iosfwd>
10 #include <map> 10 #include <map>
11 #include <set> 11 #include <set>
12 #include <string> 12 #include <string>
13 #include <utility> 13 #include <utility>
14 #include <vector> 14 #include <vector>
15 15
16 #include "base/file_path.h" 16 #include "base/file_path.h"
17 #include "base/gtest_prod_util.h" 17 #include "base/gtest_prod_util.h"
18 #include "base/hash_tables.h" 18 #include "base/hash_tables.h"
19 #include "base/memory/linked_ptr.h" 19 #include "base/memory/linked_ptr.h"
20 #include "base/memory/ref_counted.h" 20 #include "base/memory/ref_counted.h"
21 #include "base/memory/scoped_ptr.h" 21 #include "base/memory/scoped_ptr.h"
22 #include "base/synchronization/lock.h" 22 #include "base/synchronization/lock.h"
23 #include "base/threading/thread_checker.h" 23 #include "base/threading/thread_checker.h"
24 #include "chrome/common/extensions/api/extension_action/action_info.h"
24 #include "chrome/common/extensions/command.h" 25 #include "chrome/common/extensions/command.h"
25 #include "chrome/common/extensions/extension_constants.h" 26 #include "chrome/common/extensions/extension_constants.h"
26 #include "chrome/common/extensions/extension_icon_set.h" 27 #include "chrome/common/extensions/extension_icon_set.h"
27 #include "chrome/common/extensions/permissions/api_permission.h" 28 #include "chrome/common/extensions/permissions/api_permission.h"
28 #include "chrome/common/extensions/permissions/api_permission_set.h" 29 #include "chrome/common/extensions/permissions/api_permission_set.h"
29 #include "chrome/common/extensions/permissions/permission_message.h" 30 #include "chrome/common/extensions/permissions/permission_message.h"
30 #include "chrome/common/extensions/user_script.h" 31 #include "chrome/common/extensions/user_script.h"
31 #include "extensions/common/url_pattern.h" 32 #include "extensions/common/url_pattern.h"
32 #include "extensions/common/url_pattern_set.h" 33 #include "extensions/common/url_pattern_set.h"
33 #include "googleurl/src/gurl.h" 34 #include "googleurl/src/gurl.h"
(...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after
175 struct OAuth2Info { 176 struct OAuth2Info {
176 OAuth2Info(); 177 OAuth2Info();
177 ~OAuth2Info(); 178 ~OAuth2Info();
178 179
179 OAuth2Scopes GetScopesAsSet(); 180 OAuth2Scopes GetScopesAsSet();
180 181
181 std::string client_id; 182 std::string client_id;
182 std::vector<std::string> scopes; 183 std::vector<std::string> scopes;
183 }; 184 };
184 185
185 struct ActionInfo {
186 explicit ActionInfo();
187 ~ActionInfo();
188
189 // The types of extension actions.
190 enum Type {
191 TYPE_BROWSER,
192 TYPE_PAGE,
193 TYPE_SCRIPT_BADGE,
194 TYPE_SYSTEM_INDICATOR,
195 };
196
197 // Empty implies the key wasn't present.
198 ExtensionIconSet default_icon;
199 std::string default_title;
200 GURL default_popup_url;
201 // action id -- only used with legacy page actions API.
202 std::string id;
203 };
204
205 struct InstallWarning { 186 struct InstallWarning {
206 enum Format { 187 enum Format {
207 // IMPORTANT: Do not build HTML strings from user or developer-supplied 188 // IMPORTANT: Do not build HTML strings from user or developer-supplied
208 // input. 189 // input.
209 FORMAT_TEXT, 190 FORMAT_TEXT,
210 FORMAT_HTML, 191 FORMAT_HTML,
211 }; 192 };
212 InstallWarning(Format format, const std::string& message) 193 InstallWarning(Format format, const std::string& message)
213 : format(format), message(message) { 194 : format(format), message(message) {
214 } 195 }
(...skipping 409 matching lines...) Expand 10 before | Expand all | Expand 10 after
624 // Base64-encoded version of the key used to sign this extension. 605 // Base64-encoded version of the key used to sign this extension.
625 // In pseudocode, returns 606 // In pseudocode, returns
626 // base::Base64Encode(RSAPrivateKey(pem_file).ExportPublicKey()). 607 // base::Base64Encode(RSAPrivateKey(pem_file).ExportPublicKey()).
627 const std::string& public_key() const { return public_key_; } 608 const std::string& public_key() const { return public_key_; }
628 const std::string& description() const { return description_; } 609 const std::string& description() const { return description_; }
629 int manifest_version() const { return manifest_version_; } 610 int manifest_version() const { return manifest_version_; }
630 bool converted_from_user_script() const { 611 bool converted_from_user_script() const {
631 return converted_from_user_script_; 612 return converted_from_user_script_;
632 } 613 }
633 const UserScriptList& content_scripts() const { return content_scripts_; } 614 const UserScriptList& content_scripts() const { return content_scripts_; }
634 const ActionInfo* script_badge_info() const {
635 return script_badge_info_.get();
636 }
637 const ActionInfo* page_action_info() const { return page_action_info_.get(); } 615 const ActionInfo* page_action_info() const { return page_action_info_.get(); }
638 const ActionInfo* browser_action_info() const { 616 const ActionInfo* browser_action_info() const {
639 return browser_action_info_.get(); 617 return browser_action_info_.get();
640 } 618 }
641 const ActionInfo* system_indicator_info() const { 619 const ActionInfo* system_indicator_info() const {
642 return system_indicator_info_.get(); 620 return system_indicator_info_.get();
643 } 621 }
644 const std::vector<PluginInfo>& plugins() const { return plugins_; } 622 const std::vector<PluginInfo>& plugins() const { return plugins_; }
645 const std::vector<NaClModuleInfo>& nacl_modules() const { 623 const std::vector<NaClModuleInfo>& nacl_modules() const {
646 return nacl_modules_; 624 return nacl_modules_;
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
684 bool has_lazy_background_page() const { 662 bool has_lazy_background_page() const {
685 return has_background_page() && !background_page_is_persistent_; 663 return has_background_page() && !background_page_is_persistent_;
686 } 664 }
687 const GURL& details_url() const { return details_url_;} 665 const GURL& details_url() const { return details_url_;}
688 const PermissionSet* optional_permission_set() const { 666 const PermissionSet* optional_permission_set() const {
689 return optional_permission_set_.get(); 667 return optional_permission_set_.get();
690 } 668 }
691 const PermissionSet* required_permission_set() const { 669 const PermissionSet* required_permission_set() const {
692 return required_permission_set_.get(); 670 return required_permission_set_.get();
693 } 671 }
694 // Appends |new_warnings| to install_warnings(). 672 // Appends |new_warning[s]| to install_warnings_.
673 void AddInstallWarning(const InstallWarning& new_warning);
695 void AddInstallWarnings(const InstallWarningVector& new_warnings); 674 void AddInstallWarnings(const InstallWarningVector& new_warnings);
696 const InstallWarningVector& install_warnings() const { 675 const InstallWarningVector& install_warnings() const {
697 return install_warnings_; 676 return install_warnings_;
698 } 677 }
699 const ExtensionIconSet& icons() const { return icons_; } 678 const ExtensionIconSet& icons() const { return icons_; }
700 const extensions::Manifest* manifest() const { 679 const extensions::Manifest* manifest() const {
701 return manifest_.get(); 680 return manifest_.get();
702 } 681 }
703 const std::string default_locale() const { return default_locale_; } 682 const std::string default_locale() const { return default_locale_; }
704 bool incognito_split_mode() const { return incognito_split_mode_; } 683 bool incognito_split_mode() const { return incognito_split_mode_; }
(...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after
857 string16* error); 836 string16* error);
858 bool LoadBackgroundAllowJSAccess( 837 bool LoadBackgroundAllowJSAccess(
859 const APIPermissionSet& api_permissions, 838 const APIPermissionSet& api_permissions,
860 string16* error); 839 string16* error);
861 bool LoadExtensionFeatures(APIPermissionSet* api_permissions, 840 bool LoadExtensionFeatures(APIPermissionSet* api_permissions,
862 string16* error); 841 string16* error);
863 bool LoadManifestHandlerFeatures(string16* error); 842 bool LoadManifestHandlerFeatures(string16* error);
864 bool LoadContentScripts(string16* error); 843 bool LoadContentScripts(string16* error);
865 bool LoadPageAction(string16* error); 844 bool LoadPageAction(string16* error);
866 bool LoadBrowserAction(string16* error); 845 bool LoadBrowserAction(string16* error);
867 bool LoadScriptBadge(string16* error);
868 bool LoadSystemIndicator(APIPermissionSet* api_permissions, string16* error); 846 bool LoadSystemIndicator(APIPermissionSet* api_permissions, string16* error);
869 bool LoadTextToSpeechVoices(string16* error); 847 bool LoadTextToSpeechVoices(string16* error);
870 bool LoadIncognitoMode(string16* error); 848 bool LoadIncognitoMode(string16* error);
871 bool LoadContentSecurityPolicy(string16* error); 849 bool LoadContentSecurityPolicy(string16* error);
872 850
873 bool LoadThemeFeatures(string16* error); 851 bool LoadThemeFeatures(string16* error);
874 bool LoadThemeImages(const base::DictionaryValue* theme_value, 852 bool LoadThemeImages(const base::DictionaryValue* theme_value,
875 string16* error); 853 string16* error);
876 bool LoadThemeColors(const base::DictionaryValue* theme_value, 854 bool LoadThemeColors(const base::DictionaryValue* theme_value,
877 string16* error); 855 string16* error);
(...skipping 25 matching lines...) Expand all
903 881
904 // Helper method that loads either the include_globs or exclude_globs list 882 // Helper method that loads either the include_globs or exclude_globs list
905 // from an entry in the content_script lists of the manifest. 883 // from an entry in the content_script lists of the manifest.
906 bool LoadGlobsHelper(const base::DictionaryValue* content_script, 884 bool LoadGlobsHelper(const base::DictionaryValue* content_script,
907 int content_script_index, 885 int content_script_index,
908 const char* globs_property_name, 886 const char* globs_property_name,
909 string16* error, 887 string16* error,
910 void(UserScript::*add_method)(const std::string& glob), 888 void(UserScript::*add_method)(const std::string& glob),
911 UserScript* instance); 889 UserScript* instance);
912 890
913 // Helper method to load an ExtensionAction from the page_action or
914 // browser_action entries in the manifest.
915 scoped_ptr<ActionInfo> LoadExtensionActionInfoHelper(
916 const base::DictionaryValue* manifest_section,
917 ActionInfo::Type action_type,
918 string16* error);
919
920 // Helper method that loads the OAuth2 info from the 'oauth2' manifest key. 891 // Helper method that loads the OAuth2 info from the 'oauth2' manifest key.
921 bool LoadOAuth2Info(string16* error); 892 bool LoadOAuth2Info(string16* error);
922 893
923 // Returns true if the extension has more than one "UI surface". For example, 894 // Returns true if the extension has more than one "UI surface". For example,
924 // an extension that has a browser action and a page action. 895 // an extension that has a browser action and a page action.
925 bool HasMultipleUISurfaces() const; 896 bool HasMultipleUISurfaces() const;
926 897
927 // Updates the launch URL and extents for the extension using the given 898 // Updates the launch URL and extents for the extension using the given
928 // |override_url|. 899 // |override_url|.
929 void OverrideLaunchUrl(const GURL& override_url); 900 void OverrideLaunchUrl(const GURL& override_url);
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after
1017 988
1018 // Paths to the content scripts the extension contains. 989 // Paths to the content scripts the extension contains.
1019 UserScriptList content_scripts_; 990 UserScriptList content_scripts_;
1020 991
1021 // The extension's page action, if any. 992 // The extension's page action, if any.
1022 scoped_ptr<ActionInfo> page_action_info_; 993 scoped_ptr<ActionInfo> page_action_info_;
1023 994
1024 // The extension's browser action, if any. 995 // The extension's browser action, if any.
1025 scoped_ptr<ActionInfo> browser_action_info_; 996 scoped_ptr<ActionInfo> browser_action_info_;
1026 997
1027 // The extension's script badge. Never NULL.
1028 scoped_ptr<ActionInfo> script_badge_info_;
1029
1030 // The extension's system indicator, if any. 998 // The extension's system indicator, if any.
1031 scoped_ptr<ActionInfo> system_indicator_info_; 999 scoped_ptr<ActionInfo> system_indicator_info_;
1032 1000
1033 // Optional list of NPAPI plugins and associated properties. 1001 // Optional list of NPAPI plugins and associated properties.
1034 std::vector<PluginInfo> plugins_; 1002 std::vector<PluginInfo> plugins_;
1035 1003
1036 // Optional list of NaCl modules and associated properties. 1004 // Optional list of NaCl modules and associated properties.
1037 std::vector<NaClModuleInfo> nacl_modules_; 1005 std::vector<NaClModuleInfo> nacl_modules_;
1038 1006
1039 // Optional list of commands (keyboard shortcuts). 1007 // Optional list of commands (keyboard shortcuts).
(...skipping 174 matching lines...) Expand 10 before | Expand all | Expand 10 after
1214 1182
1215 UpdatedExtensionPermissionsInfo( 1183 UpdatedExtensionPermissionsInfo(
1216 const Extension* extension, 1184 const Extension* extension,
1217 const PermissionSet* permissions, 1185 const PermissionSet* permissions,
1218 Reason reason); 1186 Reason reason);
1219 }; 1187 };
1220 1188
1221 } // namespace extensions 1189 } // namespace extensions
1222 1190
1223 #endif // CHROME_COMMON_EXTENSIONS_EXTENSION_H_ 1191 #endif // CHROME_COMMON_EXTENSIONS_EXTENSION_H_
OLDNEW
« no previous file with comments | « chrome/common/extensions/api/extension_action/script_badge_manifest_unittest.cc ('k') | chrome/common/extensions/extension.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698