| Index: components/nacl/browser/nacl_host_message_filter.cc
|
| diff --git a/components/nacl/browser/nacl_host_message_filter.cc b/components/nacl/browser/nacl_host_message_filter.cc
|
| index 4ae4623414b13ad6b088e1ee0f8761139d7a6930..982cd3ff1ca7556c7f90a9399e7bd622403b3cfc 100644
|
| --- a/components/nacl/browser/nacl_host_message_filter.cc
|
| +++ b/components/nacl/browser/nacl_host_message_filter.cc
|
| @@ -25,17 +25,6 @@ namespace nacl {
|
|
|
| namespace {
|
|
|
| -// The maximum number of resource file handles NaClProcessMsg_Start message
|
| -// can have. Currently IPC::MessageAttachmentSet::kMaxDescriptorsPerMessage
|
| -// is 128 and NaCl sends 5 handles for other purposes, hence 123.
|
| -const size_t kMaxPreOpenResourceFiles = 123;
|
| -
|
| -#if defined(OS_POSIX)
|
| -static_assert(kMaxPreOpenResourceFiles ==
|
| - IPC::MessageAttachmentSet::kMaxDescriptorsPerMessage - 5,
|
| - "kMaxPreOpenResourceFiles is not up to date");
|
| -#endif
|
| -
|
| ppapi::PpapiPermissions GetNaClPermissions(
|
| uint32 permission_bits,
|
| content::BrowserContext* browser_context,
|
| @@ -137,20 +126,19 @@ void NaClHostMessageFilter::OnLaunchNaCl(
|
| LaunchNaClContinuationOnIOThread(
|
| launch_params,
|
| reply_msg,
|
| - std::vector<NaClResourcePrefetchResult>(),
|
| ppapi::PpapiPermissions(perms));
|
| return;
|
| }
|
| content::BrowserThread::PostTask(
|
| content::BrowserThread::UI,
|
| FROM_HERE,
|
| - base::Bind(&NaClHostMessageFilter::LaunchNaClContinuation,
|
| + base::Bind(&NaClHostMessageFilter::LaunchNaClContinuationOnUIThread,
|
| this,
|
| launch_params,
|
| reply_msg));
|
| }
|
|
|
| -void NaClHostMessageFilter::LaunchNaClContinuation(
|
| +void NaClHostMessageFilter::LaunchNaClContinuationOnUIThread(
|
| const nacl::NaClLaunchParams& launch_params,
|
| IPC::Message* reply_msg) {
|
| DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
|
| @@ -187,63 +175,19 @@ void NaClHostMessageFilter::LaunchNaClContinuation(
|
| original_request_list[i]);
|
| }
|
|
|
| - // Process a list of resource file URLs in
|
| - // |launch_params.resource_files_to_prefetch|.
|
| - content::BrowserThread::PostBlockingPoolTask(
|
| - FROM_HERE,
|
| - base::Bind(&NaClHostMessageFilter::BatchOpenResourceFiles,
|
| - this,
|
| - safe_launch_params,
|
| - reply_msg,
|
| - permissions));
|
| -}
|
| -
|
| -void NaClHostMessageFilter::BatchOpenResourceFiles(
|
| - const nacl::NaClLaunchParams& launch_params,
|
| - IPC::Message* reply_msg,
|
| - ppapi::PpapiPermissions permissions) {
|
| - std::vector<NaClResourcePrefetchResult> prefetched_resource_files;
|
| - const std::vector<NaClResourcePrefetchRequest>& request_list =
|
| - launch_params.resource_prefetch_request_list;
|
| - for (size_t i = 0; request_list.size(); ++i) {
|
| - GURL gurl(request_list[i].resource_url);
|
| - base::FilePath file_path_metadata;
|
| - if (!nacl::NaClBrowser::GetDelegate()->MapUrlToLocalFilePath(
|
| - gurl,
|
| - true, // use_blocking_api
|
| - profile_directory_,
|
| - &file_path_metadata)) {
|
| - continue;
|
| - }
|
| - base::File file = nacl::OpenNaClReadExecImpl(
|
| - file_path_metadata, true /* is_executable */);
|
| - if (!file.IsValid())
|
| - continue;
|
| -
|
| - prefetched_resource_files.push_back(NaClResourcePrefetchResult(
|
| - IPC::TakeFileHandleForProcess(file.Pass(), PeerHandle()),
|
| - file_path_metadata,
|
| - request_list[i].file_key));
|
| -
|
| - if (prefetched_resource_files.size() >= kMaxPreOpenResourceFiles)
|
| - break;
|
| - }
|
| -
|
| content::BrowserThread::PostTask(
|
| content::BrowserThread::IO,
|
| FROM_HERE,
|
| base::Bind(&NaClHostMessageFilter::LaunchNaClContinuationOnIOThread,
|
| this,
|
| - launch_params,
|
| + safe_launch_params,
|
| reply_msg,
|
| - prefetched_resource_files,
|
| permissions));
|
| }
|
|
|
| void NaClHostMessageFilter::LaunchNaClContinuationOnIOThread(
|
| const nacl::NaClLaunchParams& launch_params,
|
| IPC::Message* reply_msg,
|
| - const std::vector<NaClResourcePrefetchResult>& prefetched_resource_files,
|
| ppapi::PpapiPermissions permissions) {
|
| DCHECK_CURRENTLY_ON(content::BrowserThread::IO);
|
|
|
| @@ -281,7 +225,7 @@ void NaClHostMessageFilter::LaunchNaClContinuationOnIOThread(
|
| GURL(launch_params.manifest_url),
|
| base::File(nexe_file),
|
| nexe_token,
|
| - prefetched_resource_files,
|
| + launch_params.resource_prefetch_request_list,
|
| permissions,
|
| launch_params.render_view_id,
|
| launch_params.permission_bits,
|
|
|