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 363 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
374 | 374 |
375 // Adds an extension to the scripting whitelist. Used for testing only. | 375 // Adds an extension to the scripting whitelist. Used for testing only. |
376 static void SetScriptingWhitelist(const ScriptingWhitelist& whitelist); | 376 static void SetScriptingWhitelist(const ScriptingWhitelist& whitelist); |
377 static const ScriptingWhitelist* GetScriptingWhitelist(); | 377 static const ScriptingWhitelist* GetScriptingWhitelist(); |
378 | 378 |
379 // Parses the host and api permissions from the specified permission |key| | 379 // Parses the host and api permissions from the specified permission |key| |
380 // in the manifest |source|. | 380 // in the manifest |source|. |
381 bool ParsePermissions(const extensions::Manifest* source, | 381 bool ParsePermissions(const extensions::Manifest* source, |
382 const char* key, | 382 const char* key, |
383 int flags, | 383 int flags, |
384 std::string* error, | 384 string16* error, |
385 ExtensionAPIPermissionSet* api_permissions, | 385 ExtensionAPIPermissionSet* api_permissions, |
386 URLPatternSet* host_permissions); | 386 URLPatternSet* host_permissions); |
387 | 387 |
388 bool HasAPIPermission(ExtensionAPIPermission::ID permission) const; | 388 bool HasAPIPermission(ExtensionAPIPermission::ID permission) const; |
389 bool HasAPIPermission(const std::string& function_name) const; | 389 bool HasAPIPermission(const std::string& function_name) const; |
390 | 390 |
391 const URLPatternSet& GetEffectiveHostPermissions() const; | 391 const URLPatternSet& GetEffectiveHostPermissions() const; |
392 | 392 |
393 // Returns true if the extension can silently increase its permission level. | 393 // Returns true if the extension can silently increase its permission level. |
394 // Extensions that can silently increase permissions are installed through | 394 // Extensions that can silently increase permissions are installed through |
(...skipping 220 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
615 | 615 |
616 // Returns true if this extension id is from a trusted provider. | 616 // Returns true if this extension id is from a trusted provider. |
617 static bool IsTrustedId(const std::string& id); | 617 static bool IsTrustedId(const std::string& id); |
618 | 618 |
619 Extension(const FilePath& path, Location location); | 619 Extension(const FilePath& path, Location location); |
620 ~Extension(); | 620 ~Extension(); |
621 | 621 |
622 // Initialize the extension from a parsed manifest. | 622 // Initialize the extension from a parsed manifest. |
623 // Takes ownership of the manifest |value|. | 623 // Takes ownership of the manifest |value|. |
624 bool InitFromValue(extensions::Manifest* value, int flags, | 624 bool InitFromValue(extensions::Manifest* value, int flags, |
625 std::string* error); | 625 string16* error); |
626 | 626 |
627 // Helper function for implementing HasCachedImage/GetCachedImage. A return | 627 // Helper function for implementing HasCachedImage/GetCachedImage. A return |
628 // value of NULL means there is no matching image cached (we allow caching an | 628 // value of NULL means there is no matching image cached (we allow caching an |
629 // empty SkBitmap). | 629 // empty SkBitmap). |
630 SkBitmap* GetCachedImageImpl(const ExtensionResource& source, | 630 SkBitmap* GetCachedImageImpl(const ExtensionResource& source, |
631 const gfx::Size& max_size) const; | 631 const gfx::Size& max_size) const; |
632 | 632 |
633 // Helper method that loads a UserScript object from a | 633 // Helper method that loads a UserScript object from a |
634 // dictionary in the content_script list of the manifest. | 634 // dictionary in the content_script list of the manifest. |
635 bool LoadUserScriptHelper(const base::DictionaryValue* content_script, | 635 bool LoadUserScriptHelper(const base::DictionaryValue* content_script, |
636 int definition_index, | 636 int definition_index, |
637 int flags, | 637 int flags, |
638 std::string* error, | 638 string16* error, |
639 UserScript* result); | 639 UserScript* result); |
640 | 640 |
641 // Helper method that loads either the include_globs or exclude_globs list | 641 // Helper method that loads either the include_globs or exclude_globs list |
642 // from an entry in the content_script lists of the manifest. | 642 // from an entry in the content_script lists of the manifest. |
643 bool LoadGlobsHelper(const base::DictionaryValue* content_script, | 643 bool LoadGlobsHelper(const base::DictionaryValue* content_script, |
644 int content_script_index, | 644 int content_script_index, |
645 const char* globs_property_name, | 645 const char* globs_property_name, |
646 std::string* error, | 646 string16* error, |
647 void(UserScript::*add_method)(const std::string& glob), | 647 void(UserScript::*add_method)(const std::string& glob), |
648 UserScript *instance); | 648 UserScript *instance); |
649 | 649 |
650 // Helpers to load various chunks of the manifest. | 650 // Helpers to load various chunks of the manifest. |
651 bool LoadExtent(const extensions::Manifest* manifest, | 651 bool LoadExtent(const extensions::Manifest* manifest, |
652 const char* key, | 652 const char* key, |
653 URLPatternSet* extent, | 653 URLPatternSet* extent, |
654 const char* list_error, | 654 const char* list_error, |
655 const char* value_error, | 655 const char* value_error, |
656 URLPattern::ParseOption parse_option, | 656 URLPattern::ParseOption parse_option, |
657 std::string* error); | 657 string16* error); |
658 bool LoadLaunchContainer(const extensions::Manifest* manifest, | 658 bool LoadLaunchContainer(const extensions::Manifest* manifest, |
659 std::string* error); | 659 string16* error); |
660 bool LoadLaunchURL(const extensions::Manifest* manifest, | 660 bool LoadLaunchURL(const extensions::Manifest* manifest, |
661 std::string* error); | 661 string16* error); |
662 bool LoadAppIsolation(const extensions::Manifest* manifest, | 662 bool LoadAppIsolation(const extensions::Manifest* manifest, |
663 std::string* error); | 663 string16* error); |
664 bool LoadWebIntentServices(const extensions::Manifest* manifest, | 664 bool LoadWebIntentServices(const extensions::Manifest* manifest, |
665 std::string* error); | 665 string16* error); |
666 | 666 |
667 // Helper method to load an ExtensionAction from the page_action or | 667 // Helper method to load an ExtensionAction from the page_action or |
668 // browser_action entries in the manifest. | 668 // browser_action entries in the manifest. |
669 ExtensionAction* LoadExtensionActionHelper( | 669 ExtensionAction* LoadExtensionActionHelper( |
670 const base::DictionaryValue* extension_action, std::string* error); | 670 const base::DictionaryValue* extension_action, string16* error); |
671 | 671 |
672 // Helper method to load an FileBrowserHandlerList from the manifest. | 672 // Helper method to load an FileBrowserHandlerList from the manifest. |
673 FileBrowserHandlerList* LoadFileBrowserHandlers( | 673 FileBrowserHandlerList* LoadFileBrowserHandlers( |
674 const base::ListValue* extension_actions, std::string* error); | 674 const base::ListValue* extension_actions, string16* error); |
675 // Helper method to load an FileBrowserHandler from manifest. | 675 // Helper method to load an FileBrowserHandler from manifest. |
676 FileBrowserHandler* LoadFileBrowserHandler( | 676 FileBrowserHandler* LoadFileBrowserHandler( |
677 const base::DictionaryValue* file_browser_handlers, std::string* error); | 677 const base::DictionaryValue* file_browser_handlers, string16* error); |
678 | 678 |
679 // Helper method to load an ExtensionSidebarDefaults from the sidebar manifest | 679 // Helper method to load an ExtensionSidebarDefaults from the sidebar manifest |
680 // entry. | 680 // entry. |
681 ExtensionSidebarDefaults* LoadExtensionSidebarDefaults( | 681 ExtensionSidebarDefaults* LoadExtensionSidebarDefaults( |
682 const base::DictionaryValue* sidebar, std::string* error); | 682 const base::DictionaryValue* sidebar, string16* error); |
683 | 683 |
684 // Returns true if the extension has more than one "UI surface". For example, | 684 // Returns true if the extension has more than one "UI surface". For example, |
685 // an extension that has a browser action and a page action. | 685 // an extension that has a browser action and a page action. |
686 bool HasMultipleUISurfaces() const; | 686 bool HasMultipleUISurfaces() const; |
687 | 687 |
688 // Updates the launch URL and extents for the extension using the given | 688 // Updates the launch URL and extents for the extension using the given |
689 // |override_url|. | 689 // |override_url|. |
690 void OverrideLaunchUrl(const GURL& override_url); | 690 void OverrideLaunchUrl(const GURL& override_url); |
691 | 691 |
692 // Returns true if this extension can specify |api|. | 692 // Returns true if this extension can specify |api|. |
693 bool CanSpecifyAPIPermission(const ExtensionAPIPermission* api, | 693 bool CanSpecifyAPIPermission(const ExtensionAPIPermission* api, |
694 std::string* error) const; | 694 string16* error) const; |
695 bool CanSpecifyComponentOnlyPermission() const; | 695 bool CanSpecifyComponentOnlyPermission() const; |
696 bool CanSpecifyExperimentalPermission() const; | 696 bool CanSpecifyExperimentalPermission() const; |
697 | 697 |
698 // Checks whether the host |pattern| is allowed for this extension, given API | 698 // Checks whether the host |pattern| is allowed for this extension, given API |
699 // permissions |permissions|. | 699 // permissions |permissions|. |
700 bool CanSpecifyHostPermission(const URLPattern& pattern, | 700 bool CanSpecifyHostPermission(const URLPattern& pattern, |
701 const ExtensionAPIPermissionSet& permissions) const; | 701 const ExtensionAPIPermissionSet& permissions) const; |
702 | 702 |
703 // Cached images for this extension. This should only be touched on the UI | 703 // Cached images for this extension. This should only be touched on the UI |
704 // thread. | 704 // thread. |
(...skipping 230 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
935 // only contain the removed permissions. | 935 // only contain the removed permissions. |
936 const ExtensionPermissionSet* permissions; | 936 const ExtensionPermissionSet* permissions; |
937 | 937 |
938 UpdatedExtensionPermissionsInfo( | 938 UpdatedExtensionPermissionsInfo( |
939 const Extension* extension, | 939 const Extension* extension, |
940 const ExtensionPermissionSet* permissions, | 940 const ExtensionPermissionSet* permissions, |
941 Reason reason); | 941 Reason reason); |
942 }; | 942 }; |
943 | 943 |
944 #endif // CHROME_COMMON_EXTENSIONS_EXTENSION_H_ | 944 #endif // CHROME_COMMON_EXTENSIONS_EXTENSION_H_ |
OLD | NEW |