Index: ppapi/native_client/src/trusted/plugin/pnacl_coordinator.cc |
diff --git a/ppapi/native_client/src/trusted/plugin/pnacl_coordinator.cc b/ppapi/native_client/src/trusted/plugin/pnacl_coordinator.cc |
index 93d2220a14d4477ce67accc413d9739445119991..626536afa888c54c816154b67bcb22e72eeedd21 100644 |
--- a/ppapi/native_client/src/trusted/plugin/pnacl_coordinator.cc |
+++ b/ppapi/native_client/src/trusted/plugin/pnacl_coordinator.cc |
@@ -16,7 +16,6 @@ |
#include "ppapi/c/pp_errors.h" |
#include "ppapi/c/private/ppb_uma_private.h" |
-#include "ppapi/native_client/src/trusted/plugin/manifest.h" |
#include "ppapi/native_client/src/trusted/plugin/plugin.h" |
#include "ppapi/native_client/src/trusted/plugin/plugin_error.h" |
#include "ppapi/native_client/src/trusted/plugin/pnacl_translate_thread.h" |
@@ -26,62 +25,6 @@ |
namespace plugin { |
////////////////////////////////////////////////////////////////////// |
-// Pnacl-specific manifest support. |
-////////////////////////////////////////////////////////////////////// |
- |
-// The PNaCl linker gets file descriptors via the service runtime's |
-// reverse service lookup. The reverse service lookup requires a manifest. |
-// Normally, that manifest is an NMF containing mappings for shared libraries. |
-// Here, we provide a manifest that redirects to PNaCl component files |
-// that are part of Chrome. |
-class PnaclManifest : public Manifest { |
- public: |
- PnaclManifest(const nacl::string& sandbox_arch) |
- : sandbox_arch_(sandbox_arch) { } |
- |
- virtual ~PnaclManifest() { } |
- |
- virtual bool GetProgramURL(nacl::string* full_url, |
- PP_PNaClOptions* pnacl_options, |
- bool* uses_nonsfi_mode, |
- ErrorInfo* error_info) const { |
- // Does not contain program urls. |
- UNREFERENCED_PARAMETER(full_url); |
- UNREFERENCED_PARAMETER(pnacl_options); |
- UNREFERENCED_PARAMETER(uses_nonsfi_mode); |
- UNREFERENCED_PARAMETER(error_info); |
- PLUGIN_PRINTF(("PnaclManifest does not contain a program\n")); |
- error_info->SetReport(PP_NACL_ERROR_MANIFEST_GET_NEXE_URL, |
- "pnacl manifest does not contain a program."); |
- return false; |
- } |
- |
- virtual bool ResolveKey(const nacl::string& key, |
- nacl::string* full_url, |
- PP_PNaClOptions* pnacl_options) const { |
- // All of the component files are native (do not require pnacl translate). |
- pnacl_options->translate = PP_FALSE; |
- // We can only resolve keys in the files/ namespace. |
- const nacl::string kFilesPrefix = "files/"; |
- size_t files_prefix_pos = key.find(kFilesPrefix); |
- if (files_prefix_pos == nacl::string::npos) { |
- PLUGIN_PRINTF(("key did not start with files/")); |
- return false; |
- } |
- // Resolve the full URL to the file. Provide it with a platform-specific |
- // prefix. |
- nacl::string key_basename = key.substr(kFilesPrefix.length()); |
- *full_url = PnaclUrls::GetBaseUrl() + sandbox_arch_ + "/" + key_basename; |
- return true; |
- } |
- |
- private: |
- NACL_DISALLOW_COPY_AND_ASSIGN(PnaclManifest); |
- |
- nacl::string sandbox_arch_; |
-}; |
- |
-////////////////////////////////////////////////////////////////////// |
// UMA stat helpers. |
////////////////////////////////////////////////////////////////////// |
@@ -180,10 +123,10 @@ PnaclCoordinator* PnaclCoordinator::BitcodeToNative( |
new PnaclCoordinator(plugin, pexe_url, |
pnacl_options, |
translate_notify_callback); |
- coordinator->pnacl_init_time_ = NaClGetTimeOfDayMicroseconds(); |
- PLUGIN_PRINTF(("PnaclCoordinator::BitcodeToNative (manifest=%p, ", |
- reinterpret_cast<const void*>(coordinator->manifest_.get()))); |
+ PLUGIN_PRINTF(("PnaclCoordinator::BitcodeToNative (manifest_id=%d)\n", |
+ coordinator->manifest_id_)); |
+ coordinator->pnacl_init_time_ = NaClGetTimeOfDayMicroseconds(); |
int cpus = plugin->nacl_interface()->GetNumberOfProcessors(); |
coordinator->split_module_count_ = std::min(4, std::max(1, cpus)); |
@@ -204,7 +147,8 @@ PnaclCoordinator::PnaclCoordinator( |
plugin_(plugin), |
translate_notify_callback_(translate_notify_callback), |
translation_finished_reported_(false), |
- manifest_(new PnaclManifest(plugin->nacl_interface()->GetSandboxArch())), |
+ manifest_id_( |
+ GetNaClInterface()->CreatePnaclManifest(plugin->pp_instance())), |
pexe_url_(pexe_url), |
pnacl_options_(pnacl_options), |
split_module_count_(1), |
@@ -668,7 +612,7 @@ void PnaclCoordinator::RunTranslate(int32_t pp_error) { |
CHECK(translate_thread_ != NULL); |
translate_thread_->RunTranslate(report_translate_finished, |
- manifest_.get(), |
+ manifest_id_, |
&obj_files_, |
temp_nexe_file_.get(), |
invalid_desc_wrapper_.get(), |