OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 COMPONENTS_NACL_RENDERER_JSON_MANIFEST_H | 5 #ifndef COMPONENTS_NACL_RENDERER_JSON_MANIFEST_H |
6 #define COMPONENTS_NACL_RENDERER_JSON_MANIFEST_H | 6 #define COMPONENTS_NACL_RENDERER_JSON_MANIFEST_H |
7 | 7 |
8 #include <set> | 8 #include <set> |
9 #include <string> | 9 #include <string> |
10 #include <utility> | 10 #include <utility> |
11 | 11 |
12 #include "components/nacl/renderer/ppb_nacl_private.h" | 12 #include "components/nacl/renderer/ppb_nacl_private.h" |
13 #include "ppapi/c/pp_array_output.h" | 13 #include "ppapi/c/pp_array_output.h" |
14 #include "third_party/jsoncpp/source/include/json/value.h" | 14 #include "third_party/jsoncpp/source/include/json/value.h" |
15 | 15 |
16 namespace nacl { | 16 namespace nacl { |
17 class JsonManifest; | 17 class JsonManifest; |
18 class NexeLoadManager; | 18 class NexeLoadManager; |
| 19 struct NaClResourcePrefetchRequest; |
19 | 20 |
20 class JsonManifest { | 21 class JsonManifest { |
21 public: | 22 public: |
22 struct ErrorInfo { | 23 struct ErrorInfo { |
23 PP_NaClError error; | 24 PP_NaClError error; |
24 std::string string; | 25 std::string string; |
25 }; | 26 }; |
26 | 27 |
27 JsonManifest(const std::string& manifest_base_url, | 28 JsonManifest(const std::string& manifest_base_url, |
28 const std::string& sandbox_isa, | 29 const std::string& sandbox_isa, |
29 bool nonsfi_enabled, | 30 bool nonsfi_enabled, |
30 bool pnacl_debug); | 31 bool pnacl_debug); |
31 | 32 |
32 // Initialize the manifest object for use by later lookups. Returns | 33 // Initialize the manifest object for use by later lookups. Returns |
33 // true if the manifest parses correctly and matches the schema. | 34 // true if the manifest parses correctly and matches the schema. |
34 bool Init(const std::string& json_manifest, ErrorInfo* error_info); | 35 bool Init(const std::string& json_manifest, ErrorInfo* error_info); |
35 | 36 |
36 // Gets the full program URL for the current sandbox ISA from the | 37 // Gets the full program URL for the current sandbox ISA from the |
37 // manifest file. | 38 // manifest file. |
38 bool GetProgramURL(std::string* full_url, | 39 bool GetProgramURL(std::string* full_url, |
39 PP_PNaClOptions* pnacl_options, | 40 PP_PNaClOptions* pnacl_options, |
40 bool* uses_nonsfi_mode, | 41 bool* uses_nonsfi_mode, |
41 ErrorInfo* error_info) const; | 42 ErrorInfo* error_info) const; |
42 | 43 |
43 // Gets all the keys and their URLs in the "files" section that are | 44 // Gets all the keys and their URLs in the "files" section that are |
44 // prefetchable. | 45 // prefetchable. |
45 void GetPrefetchableFiles( | 46 void GetPrefetchableFiles( |
46 std::vector<std::pair<std::string, std::string> >* out_files) const; | 47 std::vector<NaClResourcePrefetchRequest>* out_files) const; |
47 | 48 |
48 // Resolves a key from the "files" section to a fully resolved URL, | 49 // Resolves a key from the "files" section to a fully resolved URL, |
49 // i.e., relative URL values are fully expanded relative to the | 50 // i.e., relative URL values are fully expanded relative to the |
50 // manifest's URL (via ResolveURL). | 51 // manifest's URL (via ResolveURL). |
51 // If there was an error, details are reported via error_info. | 52 // If there was an error, details are reported via error_info. |
52 bool ResolveKey(const std::string& key, | 53 bool ResolveKey(const std::string& key, |
53 std::string* full_url, | 54 std::string* full_url, |
54 PP_PNaClOptions* pnacl_options) const; | 55 PP_PNaClOptions* pnacl_options) const; |
55 | 56 |
56 private: | 57 private: |
(...skipping 14 matching lines...) Expand all Loading... |
71 bool nonsfi_enabled_; | 72 bool nonsfi_enabled_; |
72 bool pnacl_debug_; | 73 bool pnacl_debug_; |
73 | 74 |
74 // The dictionary of manifest information parsed in Init(). | 75 // The dictionary of manifest information parsed in Init(). |
75 Json::Value dictionary_; | 76 Json::Value dictionary_; |
76 }; | 77 }; |
77 | 78 |
78 } // namespace nacl | 79 } // namespace nacl |
79 | 80 |
80 #endif // COMPONENTS_NACL_RENDERER_JSON_MANIFEST_H | 81 #endif // COMPONENTS_NACL_RENDERER_JSON_MANIFEST_H |
OLD | NEW |