| Index: components/nacl/renderer/pnacl_translation_resource_host.cc
|
| diff --git a/components/nacl/renderer/pnacl_translation_resource_host.cc b/components/nacl/renderer/pnacl_translation_resource_host.cc
|
| index 5ac1e8a63c9c72b3ad48daa5dbfaebebe206ddf1..4e9225912ec83ef5cbfab2009f9d782d82343a77 100644
|
| --- a/components/nacl/renderer/pnacl_translation_resource_host.cc
|
| +++ b/components/nacl/renderer/pnacl_translation_resource_host.cc
|
| @@ -8,17 +8,8 @@
|
| #include "ppapi/c/pp_errors.h"
|
| #include "ppapi/shared_impl/ppapi_globals.h"
|
|
|
| -using ppapi::TrackedCallback;
|
| using ppapi::PpapiGlobals;
|
|
|
| -PnaclTranslationResourceHost::CacheRequestInfo::CacheRequestInfo(
|
| - PP_Bool* hit,
|
| - PP_FileHandle* handle,
|
| - scoped_refptr<TrackedCallback> cb)
|
| - : is_hit(hit), file_handle(handle), callback(cb) {}
|
| -
|
| -PnaclTranslationResourceHost::CacheRequestInfo::~CacheRequestInfo() {}
|
| -
|
| PnaclTranslationResourceHost::PnaclTranslationResourceHost(
|
| const scoped_refptr<base::MessageLoopProxy>& io_message_loop)
|
| : io_message_loop_(io_message_loop), sender_(NULL) {}
|
| @@ -58,9 +49,7 @@ void PnaclTranslationResourceHost::RequestNexeFd(
|
| int render_view_id,
|
| PP_Instance instance,
|
| const nacl::PnaclCacheInfo& cache_info,
|
| - PP_Bool* is_hit,
|
| - PP_FileHandle* file_handle,
|
| - scoped_refptr<TrackedCallback> callback) {
|
| + RequestNexeFdCallback callback) {
|
| DCHECK(PpapiGlobals::Get()->
|
| GetMainThreadMessageLoop()->BelongsToCurrentThread());
|
| io_message_loop_->PostTask(
|
| @@ -70,8 +59,6 @@ void PnaclTranslationResourceHost::RequestNexeFd(
|
| render_view_id,
|
| instance,
|
| cache_info,
|
| - is_hit,
|
| - file_handle,
|
| callback));
|
| return;
|
| }
|
| @@ -80,21 +67,19 @@ void PnaclTranslationResourceHost::SendRequestNexeFd(
|
| int render_view_id,
|
| PP_Instance instance,
|
| const nacl::PnaclCacheInfo& cache_info,
|
| - PP_Bool* is_hit,
|
| - PP_FileHandle* file_handle,
|
| - scoped_refptr<TrackedCallback> callback) {
|
| + RequestNexeFdCallback callback) {
|
| DCHECK(io_message_loop_->BelongsToCurrentThread());
|
| if (!sender_ || !sender_->Send(new NaClHostMsg_NexeTempFileRequest(
|
| render_view_id, instance, cache_info))) {
|
| - PpapiGlobals::Get()->GetMainThreadMessageLoop()
|
| - ->PostTask(FROM_HERE,
|
| - base::Bind(&TrackedCallback::Run,
|
| - callback,
|
| - static_cast<int32_t>(PP_ERROR_FAILED)));
|
| + PpapiGlobals::Get()->GetMainThreadMessageLoop()->PostTask(
|
| + FROM_HERE,
|
| + base::Bind(callback,
|
| + static_cast<int32_t>(PP_ERROR_FAILED),
|
| + false,
|
| + PP_kInvalidFileHandle));
|
| return;
|
| }
|
| - pending_cache_requests_.insert(std::make_pair(
|
| - instance, CacheRequestInfo(is_hit, file_handle, callback)));
|
| + pending_cache_requests_.insert(std::make_pair(instance, callback));
|
| }
|
|
|
| void PnaclTranslationResourceHost::ReportTranslationFinished(
|
| @@ -133,10 +118,9 @@ void PnaclTranslationResourceHost::OnNexeTempFileReply(
|
| CacheRequestInfoMap::iterator it = pending_cache_requests_.find(instance);
|
| int32_t status = PP_ERROR_FAILED;
|
| // Handle the expected successful case first.
|
| - if (it != pending_cache_requests_.end() && base_file.IsValid() &&
|
| - TrackedCallback::IsPending(it->second.callback)) {
|
| - *it->second.is_hit = PP_FromBool(is_hit);
|
| - *it->second.file_handle = base_file.TakePlatformFile();
|
| + PP_FileHandle file_handle = PP_kInvalidFileHandle;
|
| + if (it != pending_cache_requests_.end() && base_file.IsValid()) {
|
| + file_handle = base_file.TakePlatformFile();
|
| status = PP_OK;
|
| }
|
| if (it == pending_cache_requests_.end()) {
|
| @@ -144,7 +128,7 @@ void PnaclTranslationResourceHost::OnNexeTempFileReply(
|
| } else {
|
| PpapiGlobals::Get()->GetMainThreadMessageLoop()->PostTask(
|
| FROM_HERE,
|
| - base::Bind(&TrackedCallback::Run, it->second.callback, status));
|
| + base::Bind(it->second, status, is_hit, file_handle));
|
| pending_cache_requests_.erase(it);
|
| }
|
| if (!base_file.IsValid()) {
|
| @@ -157,7 +141,12 @@ void PnaclTranslationResourceHost::CleanupCacheRequests() {
|
| for (CacheRequestInfoMap::iterator it = pending_cache_requests_.begin();
|
| it != pending_cache_requests_.end();
|
| ++it) {
|
| - it->second.callback->PostAbort();
|
| + PpapiGlobals::Get()->GetMainThreadMessageLoop()->PostTask(
|
| + FROM_HERE,
|
| + base::Bind(it->second,
|
| + static_cast<int32_t>(PP_ERROR_ABORTED),
|
| + false,
|
| + PP_kInvalidFileHandle));
|
| }
|
| pending_cache_requests_.clear();
|
| }
|
|
|