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

Side by Side Diff: extensions/common/manifest_handlers/shared_module_info.h

Issue 263703002: Allow shared modules to whitelist extensions that import them. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 7 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 | Annotate | Revision Log
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 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_HANDLERS_SHARED_MODULE_INFO_H_ 5 #ifndef EXTENSIONS_COMMON_MANIFEST_HANDLERS_SHARED_MODULE_INFO_H_
6 #define EXTENSIONS_COMMON_MANIFEST_HANDLERS_SHARED_MODULE_INFO_H_ 6 #define EXTENSIONS_COMMON_MANIFEST_HANDLERS_SHARED_MODULE_INFO_H_
7 7
8 #include <string> 8 #include <string>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 18 matching lines...) Expand all
29 // Utility functions. 29 // Utility functions.
30 static void ParseImportedPath(const std::string& path, 30 static void ParseImportedPath(const std::string& path,
31 std::string* import_id, 31 std::string* import_id,
32 std::string* import_relative_path); 32 std::string* import_relative_path);
33 static bool IsImportedPath(const std::string& path); 33 static bool IsImportedPath(const std::string& path);
34 34
35 // Functions relating to exporting resources. 35 // Functions relating to exporting resources.
36 static bool IsSharedModule(const Extension* extension); 36 static bool IsSharedModule(const Extension* extension);
37 static bool IsExportAllowed(const Extension* extension, 37 static bool IsExportAllowed(const Extension* extension,
38 const std::string& relative_path); 38 const std::string& relative_path);
39 static bool IsExportAllowedByWhitelist(const Extension* extension,
40 const std::string& other_id);
asargent_no_longer_on_chrome 2014/05/01 17:50:15 Can you add a comment here mentioning that in the
elijahtaylor1 2014/05/02 00:06:06 Done.
39 41
40 // Functions relating to importing resources. 42 // Functions relating to importing resources.
41 static bool ImportsExtensionById(const Extension* extension, 43 static bool ImportsExtensionById(const Extension* extension,
42 const std::string& other_id); 44 const std::string& other_id);
43 static bool ImportsModules(const Extension* extension); 45 static bool ImportsModules(const Extension* extension);
44 static const std::vector<ImportInfo>& GetImports(const Extension* extension); 46 static const std::vector<ImportInfo>& GetImports(const Extension* extension);
45 47
46 private: 48 private:
47 // This extension exports the following resources to other extensions. 49 // This extension exports the following resources to other extensions.
48 URLPatternSet exported_set_; 50 URLPatternSet exported_set_;
49 51
52 // Optional list of extensions from which importing is allowed. If no
53 // whitelist is specified, all extensions can import this extension.
asargent_no_longer_on_chrome 2014/05/01 17:50:15 Oh, ok, I guess you say that right here. Maybe jus
elijahtaylor1 2014/05/02 00:06:06 Done.
54 std::set<std::string> export_whitelist_;
55
50 // Optional list of module imports of other extensions. 56 // Optional list of module imports of other extensions.
51 std::vector<ImportInfo> imports_; 57 std::vector<ImportInfo> imports_;
52 }; 58 };
53 59
54 // Parses all import/export keys in the manifest. 60 // Parses all import/export keys in the manifest.
55 class SharedModuleHandler : public ManifestHandler { 61 class SharedModuleHandler : public ManifestHandler {
56 public: 62 public:
57 SharedModuleHandler(); 63 SharedModuleHandler();
58 virtual ~SharedModuleHandler(); 64 virtual ~SharedModuleHandler();
59 65
60 virtual bool Parse(Extension* extension, base::string16* error) OVERRIDE; 66 virtual bool Parse(Extension* extension, base::string16* error) OVERRIDE;
61 virtual bool Validate(const Extension* extension, 67 virtual bool Validate(const Extension* extension,
62 std::string* error, 68 std::string* error,
63 std::vector<InstallWarning>* warnings) const OVERRIDE; 69 std::vector<InstallWarning>* warnings) const OVERRIDE;
64 70
65 private: 71 private:
66 virtual const std::vector<std::string> Keys() const OVERRIDE; 72 virtual const std::vector<std::string> Keys() const OVERRIDE;
67 }; 73 };
68 74
69 } // namespace extensions 75 } // namespace extensions
70 76
71 #endif // EXTENSIONS_COMMON_MANIFEST_HANDLERS_SHARED_MODULE_INFO_H_ 77 #endif // EXTENSIONS_COMMON_MANIFEST_HANDLERS_SHARED_MODULE_INFO_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698