diff options
author | teravest@chromium.org <teravest@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-06-25 22:01:20 +0000 |
---|---|---|
committer | teravest@chromium.org <teravest@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-06-25 22:01:20 +0000 |
commit | cbff16497e63fb3e6d9aed099dc75bf843b10d6e (patch) | |
tree | 80520df8fb83310f18dad7cb3752cf5f383d35b9 /ppapi/native_client | |
parent | 8fc44a9f0c97c5f2e61fc8125a4822a057c67446 (diff) | |
download | chromium_src-cbff16497e63fb3e6d9aed099dc75bf843b10d6e.zip chromium_src-cbff16497e63fb3e6d9aed099dc75bf843b10d6e.tar.gz chromium_src-cbff16497e63fb3e6d9aed099dc75bf843b10d6e.tar.bz2 |
Pepper: Refactor OpenManifestEntry.
This change pulls out more OpenManifestEntry code from service_runtime, making
PPB_NaCl_Private a smallter interface, and preparing for pulling all of that
logic out of the trusted plugin.
An earlier version of this change was reverted after breaking Non-SFI mode, but
the Non-SFI case no longer uses this codepath.
CQ_EXTRA_TRYBOTS=tryserver.chromium:linux_rel_precise32
BUG=239656
Review URL: https://codereview.chromium.org/357773002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@279832 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ppapi/native_client')
-rw-r--r-- | ppapi/native_client/src/trusted/plugin/service_runtime.cc | 51 | ||||
-rw-r--r-- | ppapi/native_client/src/untrusted/pnacl_irt_shim/pnacl_shim.c | 20 |
2 files changed, 13 insertions, 58 deletions
diff --git a/ppapi/native_client/src/trusted/plugin/service_runtime.cc b/ppapi/native_client/src/trusted/plugin/service_runtime.cc index 5235e23..7af9657 100644 --- a/ppapi/native_client/src/trusted/plugin/service_runtime.cc +++ b/ppapi/native_client/src/trusted/plugin/service_runtime.cc @@ -233,60 +233,21 @@ void PluginReverseInterface::OpenManifestEntry_MainThreadContinuation( NaClLog(4, "Entered OpenManifestEntry_MainThreadContinuation\n"); - PP_Var pp_mapped_url; - PP_PNaClOptions pnacl_options = {PP_FALSE, PP_FALSE, 2}; - if (!GetNaClInterface()->ManifestResolveKey( - plugin_->pp_instance(), - PP_FromBool(!service_runtime_->main_service_runtime()), - p->url.c_str(), - &pp_mapped_url, - &pnacl_options)) { - NaClLog(4, "OpenManifestEntry_MainThreadContinuation: ResolveKey failed\n"); - // Failed, and error_info has the details on what happened. Wake - // up requesting thread -- we are done. - { - nacl::MutexLocker take(&mu_); - *p->op_complete_ptr = true; // done... - p->file_info->desc = -1; // but failed. - NaClXCondVarBroadcast(&cv_); - } - return; - } - nacl::string mapped_url = pp::Var(pp_mapped_url).AsString(); - NaClLog(4, - "OpenManifestEntry_MainThreadContinuation: " - "ResolveKey: %s -> %s (pnacl_translate(%d))\n", - p->url.c_str(), mapped_url.c_str(), pnacl_options.translate); - - if (pnacl_options.translate) { - // Requires PNaCl translation, but that's not supported. - NaClLog(4, - "OpenManifestEntry_MainThreadContinuation: " - "Requires PNaCl translation -- not supported\n"); - { - nacl::MutexLocker take(&mu_); - *p->op_complete_ptr = true; // done... - p->file_info->desc = -1; // but failed. - NaClXCondVarBroadcast(&cv_); - } - return; - } - // Because p is owned by the callback of this invocation, so it is necessary // to create another instance. OpenManifestEntryResource* open_cont = new OpenManifestEntryResource(*p); - open_cont->url = mapped_url; - pp::CompletionCallback stream_cc = WeakRefNewCallback( anchor_, this, &PluginReverseInterface::StreamAsFile_MainThreadContinuation, open_cont); - GetNaClInterface()->DownloadFile(plugin_->pp_instance(), - mapped_url.c_str(), - &open_cont->pp_file_info, - stream_cc.pp_completion_callback()); + GetNaClInterface()->OpenManifestEntry( + plugin_->pp_instance(), + PP_FromBool(!service_runtime_->main_service_runtime()), + p->url.c_str(), + &open_cont->pp_file_info, + stream_cc.pp_completion_callback()); // p is deleted automatically. } diff --git a/ppapi/native_client/src/untrusted/pnacl_irt_shim/pnacl_shim.c b/ppapi/native_client/src/untrusted/pnacl_irt_shim/pnacl_shim.c index 7143236..6ae59d0 100644 --- a/ppapi/native_client/src/untrusted/pnacl_irt_shim/pnacl_shim.c +++ b/ppapi/native_client/src/untrusted/pnacl_irt_shim/pnacl_shim.c @@ -3439,11 +3439,6 @@ static PP_Bool Pnacl_M25_PPB_NaCl_Private_GetManifestProgramURL(PP_Instance inst return iface->GetManifestProgramURL(instance, full_url, pnacl_options, uses_nonsfi_mode); } -static PP_Bool Pnacl_M25_PPB_NaCl_Private_ManifestResolveKey(PP_Instance instance, PP_Bool helper_process, const char* key, struct PP_Var* full_url, struct PP_PNaClOptions* pnacl_options) { - const struct PPB_NaCl_Private_1_0 *iface = Pnacl_WrapperInfo_PPB_NaCl_Private_1_0.real_iface; - return iface->ManifestResolveKey(instance, helper_process, key, full_url, pnacl_options); -} - static PP_Bool Pnacl_M25_PPB_NaCl_Private_GetPnaclResourceInfo(PP_Instance instance, const char* filename, struct PP_Var* llc_tool_name, struct PP_Var* ld_tool_name) { const struct PPB_NaCl_Private_1_0 *iface = Pnacl_WrapperInfo_PPB_NaCl_Private_1_0.real_iface; return iface->GetPnaclResourceInfo(instance, filename, llc_tool_name, ld_tool_name); @@ -3464,11 +3459,6 @@ static void Pnacl_M25_PPB_NaCl_Private_DownloadNexe(PP_Instance instance, const iface->DownloadNexe(instance, url, file_info, *callback); } -static void Pnacl_M25_PPB_NaCl_Private_DownloadFile(PP_Instance instance, const char* url, struct PP_NaClFileInfo* file_info, struct PP_CompletionCallback* callback) { - const struct PPB_NaCl_Private_1_0 *iface = Pnacl_WrapperInfo_PPB_NaCl_Private_1_0.real_iface; - iface->DownloadFile(instance, url, file_info, *callback); -} - static void Pnacl_M25_PPB_NaCl_Private_ReportSelLdrStatus(PP_Instance instance, int32_t load_status, int32_t max_status) { const struct PPB_NaCl_Private_1_0 *iface = Pnacl_WrapperInfo_PPB_NaCl_Private_1_0.real_iface; iface->ReportSelLdrStatus(instance, load_status, max_status); @@ -3479,6 +3469,11 @@ static void Pnacl_M25_PPB_NaCl_Private_LogTranslateTime(const char* histogram_na iface->LogTranslateTime(histogram_name, time_us); } +static void Pnacl_M25_PPB_NaCl_Private_OpenManifestEntry(PP_Instance instance, PP_Bool is_helper_process, const char* key, struct PP_NaClFileInfo* file_info, struct PP_CompletionCallback* callback) { + const struct PPB_NaCl_Private_1_0 *iface = Pnacl_WrapperInfo_PPB_NaCl_Private_1_0.real_iface; + iface->OpenManifestEntry(instance, is_helper_process, key, file_info, *callback); +} + /* End wrapper methods for PPB_NaCl_Private_1_0 */ /* Begin wrapper methods for PPB_NetAddress_Private_0_1 */ @@ -5255,14 +5250,13 @@ static const struct PPB_NaCl_Private_1_0 Pnacl_Wrappers_PPB_NaCl_Private_1_0 = { .ProcessNaClManifest = (void (*)(PP_Instance instance, const char* program_url))&Pnacl_M25_PPB_NaCl_Private_ProcessNaClManifest, .DevInterfacesEnabled = (PP_Bool (*)(PP_Instance instance))&Pnacl_M25_PPB_NaCl_Private_DevInterfacesEnabled, .GetManifestProgramURL = (PP_Bool (*)(PP_Instance instance, struct PP_Var* full_url, struct PP_PNaClOptions* pnacl_options, PP_Bool* uses_nonsfi_mode))&Pnacl_M25_PPB_NaCl_Private_GetManifestProgramURL, - .ManifestResolveKey = (PP_Bool (*)(PP_Instance instance, PP_Bool helper_process, const char* key, struct PP_Var* full_url, struct PP_PNaClOptions* pnacl_options))&Pnacl_M25_PPB_NaCl_Private_ManifestResolveKey, .GetPnaclResourceInfo = (PP_Bool (*)(PP_Instance instance, const char* filename, struct PP_Var* llc_tool_name, struct PP_Var* ld_tool_name))&Pnacl_M25_PPB_NaCl_Private_GetPnaclResourceInfo, .GetCpuFeatureAttrs = (struct PP_Var (*)(void))&Pnacl_M25_PPB_NaCl_Private_GetCpuFeatureAttrs, .PostMessageToJavaScript = (void (*)(PP_Instance instance, const char* message))&Pnacl_M25_PPB_NaCl_Private_PostMessageToJavaScript, .DownloadNexe = (void (*)(PP_Instance instance, const char* url, struct PP_NaClFileInfo* file_info, struct PP_CompletionCallback callback))&Pnacl_M25_PPB_NaCl_Private_DownloadNexe, - .DownloadFile = (void (*)(PP_Instance instance, const char* url, struct PP_NaClFileInfo* file_info, struct PP_CompletionCallback callback))&Pnacl_M25_PPB_NaCl_Private_DownloadFile, .ReportSelLdrStatus = (void (*)(PP_Instance instance, int32_t load_status, int32_t max_status))&Pnacl_M25_PPB_NaCl_Private_ReportSelLdrStatus, - .LogTranslateTime = (void (*)(const char* histogram_name, int64_t time_us))&Pnacl_M25_PPB_NaCl_Private_LogTranslateTime + .LogTranslateTime = (void (*)(const char* histogram_name, int64_t time_us))&Pnacl_M25_PPB_NaCl_Private_LogTranslateTime, + .OpenManifestEntry = (void (*)(PP_Instance instance, PP_Bool is_helper_process, const char* key, struct PP_NaClFileInfo* file_info, struct PP_CompletionCallback callback))&Pnacl_M25_PPB_NaCl_Private_OpenManifestEntry }; static const struct PPB_NetAddress_Private_0_1 Pnacl_Wrappers_PPB_NetAddress_Private_0_1 = { |