| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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> |
| (...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 105 DEPRECATED_DISABLE_PERMISSIONS_INCREASE, | 105 DEPRECATED_DISABLE_PERMISSIONS_INCREASE, |
| 106 DEPRECATED_DISABLE_RELOAD, | 106 DEPRECATED_DISABLE_RELOAD, |
| 107 DEPRECATED_DISABLE_LAST, // Not used. | 107 DEPRECATED_DISABLE_LAST, // Not used. |
| 108 }; | 108 }; |
| 109 | 109 |
| 110 enum DisableReason { | 110 enum DisableReason { |
| 111 DISABLE_NONE = 0, | 111 DISABLE_NONE = 0, |
| 112 DISABLE_USER_ACTION = 1 << 0, | 112 DISABLE_USER_ACTION = 1 << 0, |
| 113 DISABLE_PERMISSIONS_INCREASE = 1 << 1, | 113 DISABLE_PERMISSIONS_INCREASE = 1 << 1, |
| 114 DISABLE_RELOAD = 1 << 2, | 114 DISABLE_RELOAD = 1 << 2, |
| 115 DISABLE_UNSUPPORTED_REQUIREMENT = 1 << 3 |
| 115 }; | 116 }; |
| 116 | 117 |
| 117 enum InstallType { | 118 enum InstallType { |
| 118 INSTALL_ERROR, | 119 INSTALL_ERROR, |
| 119 DOWNGRADE, | 120 DOWNGRADE, |
| 120 REINSTALL, | 121 REINSTALL, |
| 121 UPGRADE, | 122 UPGRADE, |
| 122 NEW_INSTALL | 123 NEW_INSTALL |
| 123 }; | 124 }; |
| 124 | 125 |
| 125 // Do not change the order of entries or remove entries in this list | 126 // Do not change the order of entries or remove entries in this list |
| 126 // as this is used in UMA_HISTOGRAM_ENUMERATIONs about extensions. | 127 // as this is used in UMA_HISTOGRAM_ENUMERATIONs about extensions. |
| 127 enum Type { | 128 enum Type { |
| 128 TYPE_UNKNOWN = 0, | 129 TYPE_UNKNOWN = 0, |
| 129 TYPE_EXTENSION, | 130 TYPE_EXTENSION, |
| 130 TYPE_THEME, | 131 TYPE_THEME, |
| 131 TYPE_USER_SCRIPT, | 132 TYPE_USER_SCRIPT, |
| 132 TYPE_HOSTED_APP, | 133 TYPE_HOSTED_APP, |
| 133 TYPE_PACKAGED_APP, | 134 TYPE_PACKAGED_APP, |
| 134 TYPE_PLATFORM_APP | 135 TYPE_PLATFORM_APP |
| 135 }; | 136 }; |
| 136 | 137 |
| 137 enum SyncType { | 138 enum SyncType { |
| 138 SYNC_TYPE_NONE = 0, | 139 SYNC_TYPE_NONE = 0, |
| 139 SYNC_TYPE_EXTENSION, | 140 SYNC_TYPE_EXTENSION, |
| 140 SYNC_TYPE_APP | 141 SYNC_TYPE_APP |
| 141 }; | 142 }; |
| 142 | 143 |
| 144 // Declared requirements for the extension. |
| 145 struct Requirements { |
| 146 Requirements(); |
| 147 ~Requirements(); |
| 148 |
| 149 bool webgl; |
| 150 bool css3d; |
| 151 bool npapi; |
| 152 }; |
| 153 |
| 143 // An NPAPI plugin included in the extension. | 154 // An NPAPI plugin included in the extension. |
| 144 struct PluginInfo { | 155 struct PluginInfo { |
| 145 FilePath path; // Path to the plugin. | 156 FilePath path; // Path to the plugin. |
| 146 bool is_public; // False if only this extension can load this plugin. | 157 bool is_public; // False if only this extension can load this plugin. |
| 147 }; | 158 }; |
| 148 | 159 |
| 149 // An NaCl module included in the extension. | 160 // An NaCl module included in the extension. |
| 150 struct NaClModuleInfo { | 161 struct NaClModuleInfo { |
| 151 GURL url; | 162 GURL url; |
| 152 std::string mime_type; | 163 std::string mime_type; |
| (...skipping 427 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 580 // |permissions|. | 591 // |permissions|. |
| 581 void UpdateTabSpecificPermissions( | 592 void UpdateTabSpecificPermissions( |
| 582 int tab_id, | 593 int tab_id, |
| 583 scoped_refptr<const PermissionSet> permissions) const; | 594 scoped_refptr<const PermissionSet> permissions) const; |
| 584 | 595 |
| 585 // Clears the tab-specific permissions of |tab_id|. | 596 // Clears the tab-specific permissions of |tab_id|. |
| 586 void ClearTabSpecificPermissions(int tab_id) const; | 597 void ClearTabSpecificPermissions(int tab_id) const; |
| 587 | 598 |
| 588 // Accessors: | 599 // Accessors: |
| 589 | 600 |
| 601 const Requirements& requirements() const { return requirements_; } |
| 590 const FilePath& path() const { return path_; } | 602 const FilePath& path() const { return path_; } |
| 591 const GURL& url() const { return extension_url_; } | 603 const GURL& url() const { return extension_url_; } |
| 592 Location location() const; | 604 Location location() const; |
| 593 const std::string& id() const; | 605 const std::string& id() const; |
| 594 const Version* version() const { return version_.get(); } | 606 const Version* version() const { return version_.get(); } |
| 595 const std::string VersionString() const; | 607 const std::string VersionString() const; |
| 596 const std::string& name() const { return name_; } | 608 const std::string& name() const { return name_; } |
| 597 const std::string& non_localized_name() const { return non_localized_name_; } | 609 const std::string& non_localized_name() const { return non_localized_name_; } |
| 598 // Base64-encoded version of the key used to sign this extension. | 610 // Base64-encoded version of the key used to sign this extension. |
| 599 // In pseudocode, returns | 611 // In pseudocode, returns |
| (...skipping 208 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 808 bool LoadDescription(string16* error); | 820 bool LoadDescription(string16* error); |
| 809 bool LoadManifestVersion(string16* error); | 821 bool LoadManifestVersion(string16* error); |
| 810 bool LoadHomepageURL(string16* error); | 822 bool LoadHomepageURL(string16* error); |
| 811 bool LoadUpdateURL(string16* error); | 823 bool LoadUpdateURL(string16* error); |
| 812 bool LoadIcons(string16* error); | 824 bool LoadIcons(string16* error); |
| 813 bool LoadCommands(string16* error); | 825 bool LoadCommands(string16* error); |
| 814 bool LoadPlugins(string16* error); | 826 bool LoadPlugins(string16* error); |
| 815 bool LoadNaClModules(string16* error); | 827 bool LoadNaClModules(string16* error); |
| 816 bool LoadWebAccessibleResources(string16* error); | 828 bool LoadWebAccessibleResources(string16* error); |
| 817 bool LoadSandboxedPages(string16* error); | 829 bool LoadSandboxedPages(string16* error); |
| 818 bool CheckRequirements(string16* error); | 830 // Must be called after LoadPlugins(). |
| 831 bool LoadRequirements(string16* error); |
| 819 bool LoadDefaultLocale(string16* error); | 832 bool LoadDefaultLocale(string16* error); |
| 820 bool LoadOfflineEnabled(string16* error); | 833 bool LoadOfflineEnabled(string16* error); |
| 821 bool LoadOptionsPage(string16* error); | 834 bool LoadOptionsPage(string16* error); |
| 822 bool LoadBackgroundScripts(string16* error); | 835 bool LoadBackgroundScripts(string16* error); |
| 823 bool LoadBackgroundScripts(const std::string& key, string16* error); | 836 bool LoadBackgroundScripts(const std::string& key, string16* error); |
| 824 bool LoadBackgroundPage(const APIPermissionSet& api_permissions, | 837 bool LoadBackgroundPage(const APIPermissionSet& api_permissions, |
| 825 string16* error); | 838 string16* error); |
| 826 bool LoadBackgroundPage(const std::string& key, | 839 bool LoadBackgroundPage(const std::string& key, |
| 827 const APIPermissionSet& api_permissions, | 840 const APIPermissionSet& api_permissions, |
| 828 string16* error); | 841 string16* error); |
| (...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 939 std::string non_localized_name_; | 952 std::string non_localized_name_; |
| 940 | 953 |
| 941 // The version of this extension's manifest. We increase the manifest | 954 // The version of this extension's manifest. We increase the manifest |
| 942 // version when making breaking changes to the extension system. | 955 // version when making breaking changes to the extension system. |
| 943 // Version 1 was the first manifest version (implied by a lack of a | 956 // Version 1 was the first manifest version (implied by a lack of a |
| 944 // manifest_version attribute in the extension's manifest). We initialize | 957 // manifest_version attribute in the extension's manifest). We initialize |
| 945 // this member variable to 0 to distinguish the "uninitialized" case from | 958 // this member variable to 0 to distinguish the "uninitialized" case from |
| 946 // the case when we know the manifest version actually is 1. | 959 // the case when we know the manifest version actually is 1. |
| 947 int manifest_version_; | 960 int manifest_version_; |
| 948 | 961 |
| 962 // The requirements declared in the manifest. |
| 963 Requirements requirements_; |
| 964 |
| 949 // The absolute path to the directory the extension is stored in. | 965 // The absolute path to the directory the extension is stored in. |
| 950 FilePath path_; | 966 FilePath path_; |
| 951 | 967 |
| 952 // Default locale for fall back. Can be empty if extension is not localized. | 968 // Default locale for fall back. Can be empty if extension is not localized. |
| 953 std::string default_locale_; | 969 std::string default_locale_; |
| 954 | 970 |
| 955 // If true, a separate process will be used for the extension in incognito | 971 // If true, a separate process will be used for the extension in incognito |
| 956 // mode. | 972 // mode. |
| 957 bool incognito_split_mode_; | 973 bool incognito_split_mode_; |
| 958 | 974 |
| (...skipping 233 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1192 // only the permissions that have added, and for Reason::REMOVED, this would | 1208 // only the permissions that have added, and for Reason::REMOVED, this would |
| 1193 // only contain the removed permissions. | 1209 // only contain the removed permissions. |
| 1194 const PermissionSet* permissions; | 1210 const PermissionSet* permissions; |
| 1195 | 1211 |
| 1196 UpdatedExtensionPermissionsInfo( | 1212 UpdatedExtensionPermissionsInfo( |
| 1197 const Extension* extension, | 1213 const Extension* extension, |
| 1198 const PermissionSet* permissions, | 1214 const PermissionSet* permissions, |
| 1199 Reason reason); | 1215 Reason reason); |
| 1200 }; | 1216 }; |
| 1201 | 1217 |
| 1202 } // namespace extensions | 1218 } // namespace extensions |
| 1203 | 1219 |
| 1204 #endif // CHROME_COMMON_EXTENSIONS_EXTENSION_H_ | 1220 #endif // CHROME_COMMON_EXTENSIONS_EXTENSION_H_ |
| OLD | NEW |