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

Unified Diff: ppapi/native_client/src/trusted/plugin/pnacl_coordinator.cc

Issue 12623004: Allow PNaCl NMF to set translator optimization options for experimentation. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Default to -O0 instead of the default for now Created 7 years, 9 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 side-by-side diff with in-line comments
Download patch
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 1fb30a3a00db42e970a88d5d4b0b1f1f70e2c744..cc2ea368ed1cf269459a63d97de3af18365537ee 100644
--- a/ppapi/native_client/src/trusted/plugin/pnacl_coordinator.cc
+++ b/ppapi/native_client/src/trusted/plugin/pnacl_coordinator.cc
@@ -48,14 +48,12 @@ class PnaclManifest : public Manifest {
virtual ~PnaclManifest() { }
virtual bool GetProgramURL(nacl::string* full_url,
- nacl::string* cache_identity,
- ErrorInfo* error_info,
- bool* pnacl_translate) const {
+ PnaclOptions* pnacl_options,
+ ErrorInfo* error_info) const {
// Does not contain program urls.
UNREFERENCED_PARAMETER(full_url);
- UNREFERENCED_PARAMETER(cache_identity);
+ UNREFERENCED_PARAMETER(pnacl_options);
UNREFERENCED_PARAMETER(error_info);
- UNREFERENCED_PARAMETER(pnacl_translate);
PLUGIN_PRINTF(("PnaclManifest does not contain a program\n"));
error_info->SetReport(ERROR_MANIFEST_GET_NEXE_URL,
"pnacl manifest does not contain a program.");
@@ -81,13 +79,10 @@ class PnaclManifest : public Manifest {
virtual bool ResolveKey(const nacl::string& key,
nacl::string* full_url,
- nacl::string* cache_identity,
- ErrorInfo* error_info,
- bool* pnacl_translate) const {
+ PnaclOptions* pnacl_options,
+ ErrorInfo* error_info) const {
// All of the extension files are native (do not require pnacl translate).
- *pnacl_translate = false;
- // Do not cache these entries.
- *cache_identity = "";
+ pnacl_options->set_translate(false);
// We can only resolve keys in the files/ namespace.
const nacl::string kFilesPrefix = "files/";
size_t files_prefix_pos = key.find(kFilesPrefix);
@@ -125,15 +120,14 @@ class PnaclLDManifest : public Manifest {
virtual ~PnaclLDManifest() { }
virtual bool GetProgramURL(nacl::string* full_url,
- nacl::string* cache_identity,
- ErrorInfo* error_info,
- bool* pnacl_translate) const {
- if (nexe_manifest_->GetProgramURL(full_url, cache_identity,
- error_info, pnacl_translate)) {
+ PnaclOptions* pnacl_options,
+ ErrorInfo* error_info) const {
+ if (nexe_manifest_->GetProgramURL(full_url, pnacl_options, error_info)) {
return true;
}
- return extension_manifest_->GetProgramURL(full_url, cache_identity,
- error_info, pnacl_translate);
+ return extension_manifest_->GetProgramURL(full_url,
+ pnacl_options,
+ error_info);
}
virtual bool ResolveURL(const nacl::string& relative_url,
@@ -154,15 +148,14 @@ class PnaclLDManifest : public Manifest {
virtual bool ResolveKey(const nacl::string& key,
nacl::string* full_url,
- nacl::string* cache_identity,
- ErrorInfo* error_info,
- bool* pnacl_translate) const {
- if (nexe_manifest_->ResolveKey(key, full_url, cache_identity,
- error_info, pnacl_translate)) {
+ PnaclOptions* pnacl_options,
+ ErrorInfo* error_info) const {
+ if (nexe_manifest_->ResolveKey(key, full_url, pnacl_options, error_info)) {
return true;
}
- return extension_manifest_->ResolveKey(key, full_url, cache_identity,
- error_info, pnacl_translate);
+ return extension_manifest_->ResolveKey(key, full_url,
+ pnacl_options,
+ error_info);
}
private:
@@ -273,13 +266,14 @@ CallbackSource<FileStreamData>::~CallbackSource() {}
PnaclCoordinator* PnaclCoordinator::BitcodeToNative(
Plugin* plugin,
const nacl::string& pexe_url,
- const nacl::string& cache_identity,
+ const PnaclOptions& pnacl_options,
const pp::CompletionCallback& translate_notify_callback) {
PLUGIN_PRINTF(("PnaclCoordinator::BitcodeToNative (plugin=%p, pexe=%s)\n",
static_cast<void*>(plugin), pexe_url.c_str()));
PnaclCoordinator* coordinator =
new PnaclCoordinator(plugin, pexe_url,
- cache_identity, translate_notify_callback);
+ pnacl_options,
+ translate_notify_callback);
coordinator->pnacl_init_time_ = NaClGetTimeOfDayMicroseconds();
coordinator->off_the_record_ =
plugin->nacl_interface()->IsOffTheRecord();
@@ -331,7 +325,7 @@ int32_t PnaclCoordinator::GetLoadedFileDesc(int32_t pp_error,
PnaclCoordinator::PnaclCoordinator(
Plugin* plugin,
const nacl::string& pexe_url,
- const nacl::string& cache_identity,
+ const PnaclOptions& pnacl_options,
const pp::CompletionCallback& translate_notify_callback)
: translate_finish_error_(PP_OK),
plugin_(plugin),
@@ -341,7 +335,7 @@ PnaclCoordinator::PnaclCoordinator(
plugin->url_util(),
plugin::PnaclUrls::UsePnaclExtension(plugin))),
pexe_url_(pexe_url),
- cache_identity_(cache_identity),
+ pnacl_options_(pnacl_options),
error_already_reported_(false),
off_the_record_(false),
pnacl_init_time_(0),
@@ -454,10 +448,10 @@ void PnaclCoordinator::TranslateFinished(int32_t pp_error) {
// pointer to be able to read it again from the beginning.
temp_nexe_file_->Reset();
- if (cache_identity_ != "" && cached_nexe_file_ != NULL) {
+ if (pnacl_options_.HasCacheKey() && cached_nexe_file_ != NULL) {
// We are using a cache, but had a cache miss, which is why we did the
// translation. Reset cached_nexe_file_ to have a random name,
- // for scratch purposes, before renaming to the final cache_identity_.
+ // for scratch purposes, before renaming to the final cache_identity.
cached_nexe_file_.reset(new LocalTempFile(plugin_, file_system_.get(),
nacl::string(kPnaclTempDir)));
pp::CompletionCallback cb = callback_factory_.NewCallback(
@@ -608,7 +602,7 @@ void PnaclCoordinator::NexeWasCopiedToCache(int32_t pp_error) {
// Rename the cached_nexe_file_ file to the cache id, to finalize.
pp::CompletionCallback cb =
callback_factory_.NewCallback(&PnaclCoordinator::NexeFileWasRenamed);
- cached_nexe_file_->Rename(cache_identity_, cb);
+ cached_nexe_file_->Rename(pnacl_options_.GetCacheKey(), cb);
}
void PnaclCoordinator::CorruptCacheFileWasDeleted(int32_t delete_pp_error,
@@ -809,10 +803,11 @@ void PnaclCoordinator::DirectoryWasCreated(int32_t pp_error) {
"PNaCl translation cache directory creation/check failed.");
return;
}
- if (cache_identity_ != "") {
- cached_nexe_file_.reset(new LocalTempFile(plugin_, file_system_.get(),
- nacl::string(kPnaclTempDir),
- cache_identity_));
+ if (pnacl_options_.HasCacheKey()) {
+ cached_nexe_file_.reset(new LocalTempFile(
+ plugin_, file_system_.get(),
+ nacl::string(kPnaclTempDir),
+ pnacl_options_.GetCacheKey()));
pp::CompletionCallback cb =
callback_factory_.NewCallback(&PnaclCoordinator::CachedFileDidOpen);
cached_nexe_file_->OpenRead(cb);
@@ -971,6 +966,7 @@ void PnaclCoordinator::RunTranslate(int32_t pp_error) {
temp_nexe_file_.get(),
&error_info_,
resources_.get(),
+ &pnacl_options_,
this,
plugin_);
}
« no previous file with comments | « ppapi/native_client/src/trusted/plugin/pnacl_coordinator.h ('k') | ppapi/native_client/src/trusted/plugin/pnacl_options.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698