summaryrefslogtreecommitdiffstats
path: root/ppapi/native_client
diff options
context:
space:
mode:
authorteravest@chromium.org <teravest@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-06-25 22:01:20 +0000
committerteravest@chromium.org <teravest@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-06-25 22:01:20 +0000
commitcbff16497e63fb3e6d9aed099dc75bf843b10d6e (patch)
tree80520df8fb83310f18dad7cb3752cf5f383d35b9 /ppapi/native_client
parent8fc44a9f0c97c5f2e61fc8125a4822a057c67446 (diff)
downloadchromium_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.cc51
-rw-r--r--ppapi/native_client/src/untrusted/pnacl_irt_shim/pnacl_shim.c20
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 = {