Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 #pragma once | 7 #pragma once |
| 8 | 8 |
| 9 #include <map> | 9 #include <map> |
| 10 #include <set> | 10 #include <set> |
| (...skipping 187 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 198 | 198 |
| 199 // |FROM_BOOKMARK| indicates the extension was created using a mock App | 199 // |FROM_BOOKMARK| indicates the extension was created using a mock App |
| 200 // created from a bookmark. | 200 // created from a bookmark. |
| 201 FROM_BOOKMARK = 1 << 5, | 201 FROM_BOOKMARK = 1 << 5, |
| 202 }; | 202 }; |
| 203 | 203 |
| 204 static scoped_refptr<Extension> Create(const FilePath& path, | 204 static scoped_refptr<Extension> Create(const FilePath& path, |
| 205 Location location, | 205 Location location, |
| 206 const base::DictionaryValue& value, | 206 const base::DictionaryValue& value, |
| 207 int flags, | 207 int flags, |
| 208 std::string* error); | 208 std::string* std_error); |
|
Aaron Boodman
2011/12/15 02:25:36
No need to change this. If it makes implementation
| |
| 209 | 209 |
| 210 // In a few special circumstances, we want to create an Extension and give it | 210 // In a few special circumstances, we want to create an Extension and give it |
| 211 // an explicit id. Most consumers should just use the plain Create() method. | 211 // an explicit id. Most consumers should just use the plain Create() method. |
| 212 static scoped_refptr<Extension> CreateWithId( | 212 static scoped_refptr<Extension> CreateWithId( |
| 213 const FilePath& path, | 213 const FilePath& path, |
| 214 Location location, | 214 Location location, |
| 215 const base::DictionaryValue& value, | 215 const base::DictionaryValue& value, |
| 216 int flags, | 216 int flags, |
| 217 const std::string& explicit_id, | 217 const std::string& explicit_id, |
| 218 std::string* error); | 218 std::string* error); |
| (...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 371 | 371 |
| 372 // Adds an extension to the scripting whitelist. Used for testing only. | 372 // Adds an extension to the scripting whitelist. Used for testing only. |
| 373 static void SetScriptingWhitelist(const ScriptingWhitelist& whitelist); | 373 static void SetScriptingWhitelist(const ScriptingWhitelist& whitelist); |
| 374 static const ScriptingWhitelist* GetScriptingWhitelist(); | 374 static const ScriptingWhitelist* GetScriptingWhitelist(); |
| 375 | 375 |
| 376 // Parses the host and api permissions from the specified permission |key| | 376 // Parses the host and api permissions from the specified permission |key| |
| 377 // in the manifest |source|. | 377 // in the manifest |source|. |
| 378 bool ParsePermissions(const extensions::Manifest* source, | 378 bool ParsePermissions(const extensions::Manifest* source, |
| 379 const char* key, | 379 const char* key, |
| 380 int flags, | 380 int flags, |
| 381 std::string* error, | 381 string16* error, |
| 382 ExtensionAPIPermissionSet* api_permissions, | 382 ExtensionAPIPermissionSet* api_permissions, |
| 383 URLPatternSet* host_permissions); | 383 URLPatternSet* host_permissions); |
| 384 | 384 |
| 385 bool HasAPIPermission(ExtensionAPIPermission::ID permission) const; | 385 bool HasAPIPermission(ExtensionAPIPermission::ID permission) const; |
| 386 bool HasAPIPermission(const std::string& function_name) const; | 386 bool HasAPIPermission(const std::string& function_name) const; |
| 387 | 387 |
| 388 const URLPatternSet& GetEffectiveHostPermissions() const; | 388 const URLPatternSet& GetEffectiveHostPermissions() const; |
| 389 | 389 |
| 390 // Returns true if the extension can silently increase its permission level. | 390 // Returns true if the extension can silently increase its permission level. |
| 391 // Extensions that can silently increase permissions are installed through | 391 // Extensions that can silently increase permissions are installed through |
| (...skipping 220 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 612 | 612 |
| 613 // Returns true if this extension id is from a trusted provider. | 613 // Returns true if this extension id is from a trusted provider. |
| 614 static bool IsTrustedId(const std::string& id); | 614 static bool IsTrustedId(const std::string& id); |
| 615 | 615 |
| 616 Extension(const FilePath& path, Location location); | 616 Extension(const FilePath& path, Location location); |
| 617 ~Extension(); | 617 ~Extension(); |
| 618 | 618 |
| 619 // Initialize the extension from a parsed manifest. | 619 // Initialize the extension from a parsed manifest. |
| 620 // Takes ownership of the manifest |value|. | 620 // Takes ownership of the manifest |value|. |
| 621 bool InitFromValue(extensions::Manifest* value, int flags, | 621 bool InitFromValue(extensions::Manifest* value, int flags, |
| 622 std::string* error); | 622 string16* error); |
| 623 | 623 |
| 624 // Helper function for implementing HasCachedImage/GetCachedImage. A return | 624 // Helper function for implementing HasCachedImage/GetCachedImage. A return |
| 625 // value of NULL means there is no matching image cached (we allow caching an | 625 // value of NULL means there is no matching image cached (we allow caching an |
| 626 // empty SkBitmap). | 626 // empty SkBitmap). |
| 627 SkBitmap* GetCachedImageImpl(const ExtensionResource& source, | 627 SkBitmap* GetCachedImageImpl(const ExtensionResource& source, |
| 628 const gfx::Size& max_size) const; | 628 const gfx::Size& max_size) const; |
| 629 | 629 |
| 630 // Helper method that loads a UserScript object from a | 630 // Helper method that loads a UserScript object from a |
| 631 // dictionary in the content_script list of the manifest. | 631 // dictionary in the content_script list of the manifest. |
| 632 bool LoadUserScriptHelper(const base::DictionaryValue* content_script, | 632 bool LoadUserScriptHelper(const base::DictionaryValue* content_script, |
| 633 int definition_index, | 633 int definition_index, |
| 634 int flags, | 634 int flags, |
| 635 std::string* error, | 635 string16* error, |
| 636 UserScript* result); | 636 UserScript* result); |
| 637 | 637 |
| 638 // Helper method that loads either the include_globs or exclude_globs list | 638 // Helper method that loads either the include_globs or exclude_globs list |
| 639 // from an entry in the content_script lists of the manifest. | 639 // from an entry in the content_script lists of the manifest. |
| 640 bool LoadGlobsHelper(const base::DictionaryValue* content_script, | 640 bool LoadGlobsHelper(const base::DictionaryValue* content_script, |
| 641 int content_script_index, | 641 int content_script_index, |
| 642 const char* globs_property_name, | 642 const char* globs_property_name, |
| 643 std::string* error, | 643 string16* error, |
| 644 void(UserScript::*add_method)(const std::string& glob), | 644 void(UserScript::*add_method)(const std::string& glob), |
| 645 UserScript *instance); | 645 UserScript *instance); |
| 646 | 646 |
| 647 // Helpers to load various chunks of the manifest. | 647 // Helpers to load various chunks of the manifest. |
| 648 bool LoadExtent(const extensions::Manifest* manifest, | 648 bool LoadExtent(const extensions::Manifest* manifest, |
| 649 const char* key, | 649 const char* key, |
| 650 URLPatternSet* extent, | 650 URLPatternSet* extent, |
| 651 const char* list_error, | 651 const char* list_error, |
| 652 const char* value_error, | 652 const char* value_error, |
| 653 URLPattern::ParseOption parse_option, | 653 URLPattern::ParseOption parse_option, |
| 654 std::string* error); | 654 string16* error); |
| 655 bool LoadLaunchContainer(const extensions::Manifest* manifest, | 655 bool LoadLaunchContainer(const extensions::Manifest* manifest, |
| 656 std::string* error); | 656 string16* error); |
| 657 bool LoadLaunchURL(const extensions::Manifest* manifest, | 657 bool LoadLaunchURL(const extensions::Manifest* manifest, |
| 658 std::string* error); | 658 string16* error); |
| 659 bool LoadAppIsolation(const extensions::Manifest* manifest, | 659 bool LoadAppIsolation(const extensions::Manifest* manifest, |
| 660 std::string* error); | 660 string16* error); |
| 661 bool LoadWebIntentServices(const extensions::Manifest* manifest, | 661 bool LoadWebIntentServices(const extensions::Manifest* manifest, |
| 662 std::string* error); | 662 string16* error); |
| 663 | 663 |
| 664 // Helper method to load an ExtensionAction from the page_action or | 664 // Helper method to load an ExtensionAction from the page_action or |
| 665 // browser_action entries in the manifest. | 665 // browser_action entries in the manifest. |
| 666 ExtensionAction* LoadExtensionActionHelper( | 666 ExtensionAction* LoadExtensionActionHelper( |
| 667 const base::DictionaryValue* extension_action, std::string* error); | 667 const base::DictionaryValue* extension_action, string16* error); |
| 668 | 668 |
| 669 // Helper method to load an FileBrowserHandlerList from the manifest. | 669 // Helper method to load an FileBrowserHandlerList from the manifest. |
| 670 FileBrowserHandlerList* LoadFileBrowserHandlers( | 670 FileBrowserHandlerList* LoadFileBrowserHandlers( |
| 671 const base::ListValue* extension_actions, std::string* error); | 671 const base::ListValue* extension_actions, string16* error); |
| 672 // Helper method to load an FileBrowserHandler from manifest. | 672 // Helper method to load an FileBrowserHandler from manifest. |
| 673 FileBrowserHandler* LoadFileBrowserHandler( | 673 FileBrowserHandler* LoadFileBrowserHandler( |
| 674 const base::DictionaryValue* file_browser_handlers, std::string* error); | 674 const base::DictionaryValue* file_browser_handlers, string16* error); |
| 675 | 675 |
| 676 // Helper method to load an ExtensionSidebarDefaults from the sidebar manifest | 676 // Helper method to load an ExtensionSidebarDefaults from the sidebar manifest |
| 677 // entry. | 677 // entry. |
| 678 ExtensionSidebarDefaults* LoadExtensionSidebarDefaults( | 678 ExtensionSidebarDefaults* LoadExtensionSidebarDefaults( |
| 679 const base::DictionaryValue* sidebar, std::string* error); | 679 const base::DictionaryValue* sidebar, string16* error); |
| 680 | 680 |
| 681 // Returns true if the extension has more than one "UI surface". For example, | 681 // Returns true if the extension has more than one "UI surface". For example, |
| 682 // an extension that has a browser action and a page action. | 682 // an extension that has a browser action and a page action. |
| 683 bool HasMultipleUISurfaces() const; | 683 bool HasMultipleUISurfaces() const; |
| 684 | 684 |
| 685 // Updates the launch URL and extents for the extension using the given | 685 // Updates the launch URL and extents for the extension using the given |
| 686 // |override_url|. | 686 // |override_url|. |
| 687 void OverrideLaunchUrl(const GURL& override_url); | 687 void OverrideLaunchUrl(const GURL& override_url); |
| 688 | 688 |
| 689 // Returns true if this extension can specify |api|. | 689 // Returns true if this extension can specify |api|. |
| 690 bool CanSpecifyAPIPermission(const ExtensionAPIPermission* api, | 690 bool CanSpecifyAPIPermission(const ExtensionAPIPermission* api, |
| 691 std::string* error) const; | 691 string16* error) const; |
| 692 bool CanSpecifyComponentOnlyPermission() const; | 692 bool CanSpecifyComponentOnlyPermission() const; |
| 693 bool CanSpecifyExperimentalPermission() const; | 693 bool CanSpecifyExperimentalPermission() const; |
| 694 | 694 |
| 695 // Checks whether the host |pattern| is allowed for this extension, given API | 695 // Checks whether the host |pattern| is allowed for this extension, given API |
| 696 // permissions |permissions|. | 696 // permissions |permissions|. |
| 697 bool CanSpecifyHostPermission(const URLPattern& pattern, | 697 bool CanSpecifyHostPermission(const URLPattern& pattern, |
| 698 const ExtensionAPIPermissionSet& permissions) const; | 698 const ExtensionAPIPermissionSet& permissions) const; |
| 699 | 699 |
| 700 // Cached images for this extension. This should only be touched on the UI | 700 // Cached images for this extension. This should only be touched on the UI |
| 701 // thread. | 701 // thread. |
| (...skipping 230 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 932 // only contain the removed permissions. | 932 // only contain the removed permissions. |
| 933 const ExtensionPermissionSet* permissions; | 933 const ExtensionPermissionSet* permissions; |
| 934 | 934 |
| 935 UpdatedExtensionPermissionsInfo( | 935 UpdatedExtensionPermissionsInfo( |
| 936 const Extension* extension, | 936 const Extension* extension, |
| 937 const ExtensionPermissionSet* permissions, | 937 const ExtensionPermissionSet* permissions, |
| 938 Reason reason); | 938 Reason reason); |
| 939 }; | 939 }; |
| 940 | 940 |
| 941 #endif // CHROME_COMMON_EXTENSIONS_EXTENSION_H_ | 941 #endif // CHROME_COMMON_EXTENSIONS_EXTENSION_H_ |
| OLD | NEW |