Chromium Code Reviews| OLD | NEW |
|---|---|
| 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 EXTENSIONS_COMMON_MANIFEST_HANDLER_H_ | 5 #ifndef EXTENSIONS_COMMON_MANIFEST_HANDLER_H_ |
| 6 #define EXTENSIONS_COMMON_MANIFEST_HANDLER_H_ | 6 #define EXTENSIONS_COMMON_MANIFEST_HANDLER_H_ |
| 7 | 7 |
| 8 #include <set> | 8 #include <set> |
| 9 #include <string> | 9 #include <string> |
| 10 #include <vector> | 10 #include <vector> |
| (...skipping 11 matching lines...) Expand all Loading... | |
| 22 // An interface for clients that recognize and parse keys in extension | 22 // An interface for clients that recognize and parse keys in extension |
| 23 // manifests. | 23 // manifests. |
| 24 class ManifestHandler { | 24 class ManifestHandler { |
| 25 public: | 25 public: |
| 26 ManifestHandler(); | 26 ManifestHandler(); |
| 27 virtual ~ManifestHandler(); | 27 virtual ~ManifestHandler(); |
| 28 | 28 |
| 29 // Attempts to parse the extension's manifest. | 29 // Attempts to parse the extension's manifest. |
| 30 // Returns true on success or false on failure; if false, |error| will | 30 // Returns true on success or false on failure; if false, |error| will |
| 31 // be set to a failure message. | 31 // be set to a failure message. |
| 32 // This does not perform any IO operations. | |
|
lazyboy
2017/04/26 22:53:03
Thinking about it, this doesn't seem that helpful,
karandeepb
2017/04/26 22:57:38
We were doing IO for Validate as in the example I
| |
| 32 virtual bool Parse(Extension* extension, base::string16* error) = 0; | 33 virtual bool Parse(Extension* extension, base::string16* error) = 0; |
| 33 | 34 |
| 34 // Validate that files associated with this manifest key exist. | 35 // Validate that files associated with this manifest key exist. |
| 35 // Validation takes place after parsing. May also append a series of | 36 // Validation takes place after parsing. May also append a series of |
| 36 // warning messages to |warnings|. | 37 // warning messages to |warnings|. |
| 38 // This may perform IO operations. | |
| 37 // | 39 // |
| 38 // Otherwise, returns false, and a description of the error is | 40 // Otherwise, returns false, and a description of the error is |
| 39 // returned in |error|. | 41 // returned in |error|. |
| 40 // TODO(yoz): Change error to base::string16. See crbug.com/71980. | 42 // TODO(yoz): Change error to base::string16. See crbug.com/71980. |
| 41 virtual bool Validate(const Extension* extension, | 43 virtual bool Validate(const Extension* extension, |
| 42 std::string* error, | 44 std::string* error, |
| 43 std::vector<InstallWarning>* warnings) const; | 45 std::vector<InstallWarning>* warnings) const; |
| 44 | 46 |
| 45 // If false (the default), only parse the manifest if a registered | 47 // If false (the default), only parse the manifest if a registered |
| 46 // key is present in the manifest. If true, always attempt to parse | 48 // key is present in the manifest. If true, always attempt to parse |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 82 // Calling FinalizeRegistration indicates that there are no more | 84 // Calling FinalizeRegistration indicates that there are no more |
| 83 // manifest handlers to be registered. | 85 // manifest handlers to be registered. |
| 84 static void FinalizeRegistration(); | 86 static void FinalizeRegistration(); |
| 85 | 87 |
| 86 static bool IsRegistrationFinalized(); | 88 static bool IsRegistrationFinalized(); |
| 87 | 89 |
| 88 // Call Parse on all registered manifest handlers that should parse | 90 // Call Parse on all registered manifest handlers that should parse |
| 89 // this extension. | 91 // this extension. |
| 90 static bool ParseExtension(Extension* extension, base::string16* error); | 92 static bool ParseExtension(Extension* extension, base::string16* error); |
| 91 | 93 |
| 92 // Call Validate on all registered manifest handlers for this extension. | 94 // Call Validate on all registered manifest handlers for this extension. This |
| 95 // may perform IO operations. | |
| 93 static bool ValidateExtension(const Extension* extension, | 96 static bool ValidateExtension(const Extension* extension, |
| 94 std::string* error, | 97 std::string* error, |
| 95 std::vector<InstallWarning>* warnings); | 98 std::vector<InstallWarning>* warnings); |
| 96 | 99 |
| 97 // Calls |CreatePermission| on the manifest handler for |key|. Returns |NULL| | 100 // Calls |CreatePermission| on the manifest handler for |key|. Returns |NULL| |
| 98 // if there is no manifest handler for |key| or if the manifest handler for | 101 // if there is no manifest handler for |key| or if the manifest handler for |
| 99 // |key| does not support custom permissions. | 102 // |key| does not support custom permissions. |
| 100 static ManifestPermission* CreatePermission(const std::string& key); | 103 static ManifestPermission* CreatePermission(const std::string& key); |
| 101 | 104 |
| 102 // Calls |CreateInitialRequiredPermission| on all registered manifest handlers | 105 // Calls |CreateInitialRequiredPermission| on all registered manifest handlers |
| (...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 164 // The priority for each manifest handler. Handlers with lower priority | 167 // The priority for each manifest handler. Handlers with lower priority |
| 165 // values are evaluated first. | 168 // values are evaluated first. |
| 166 ManifestHandlerPriorityMap priority_map_; | 169 ManifestHandlerPriorityMap priority_map_; |
| 167 | 170 |
| 168 bool is_finalized_; | 171 bool is_finalized_; |
| 169 }; | 172 }; |
| 170 | 173 |
| 171 } // namespace extensions | 174 } // namespace extensions |
| 172 | 175 |
| 173 #endif // EXTENSIONS_COMMON_MANIFEST_HANDLER_H_ | 176 #endif // EXTENSIONS_COMMON_MANIFEST_HANDLER_H_ |
| OLD | NEW |