Chromium Code Reviews| 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 9da3fe51726b73a3082b190a47e3cf2ddb617f2f..4ae4623414b13ad6b088e1ee0f8761139d7a6930 100644 |
| --- a/components/nacl/browser/nacl_host_message_filter.cc |
| +++ b/components/nacl/browser/nacl_host_message_filter.cc |
| @@ -137,7 +137,7 @@ void NaClHostMessageFilter::OnLaunchNaCl( |
| LaunchNaClContinuationOnIOThread( |
| launch_params, |
| reply_msg, |
| - std::vector<nacl::NaClResourceFileInfo>(), |
| + std::vector<NaClResourcePrefetchResult>(), |
| ppapi::PpapiPermissions(perms)); |
| return; |
| } |
| @@ -168,11 +168,13 @@ void NaClHostMessageFilter::LaunchNaClContinuation( |
| } |
| nacl::NaClLaunchParams safe_launch_params(launch_params); |
| - safe_launch_params.resource_files_to_prefetch.clear(); |
| + safe_launch_params.resource_prefetch_request_list.clear(); |
| + const std::vector<NaClResourcePrefetchRequest>& original_request_list = |
| + launch_params.resource_prefetch_request_list; |
| content::SiteInstance* site_instance = rvh->GetSiteInstance(); |
| - for (size_t i = 0; i < launch_params.resource_files_to_prefetch.size(); ++i) { |
| - GURL gurl(launch_params.resource_files_to_prefetch[i].second); |
| + for (size_t i = 0; i < original_request_list.size(); ++i) { |
| + GURL gurl(original_request_list[i].resource_url); |
| // Important security check: Do the same check as OpenNaClExecutable() |
| // in nacl_file_host.cc. |
| if (!content::SiteInstance::IsSameWebSite( |
| @@ -181,8 +183,8 @@ void NaClHostMessageFilter::LaunchNaClContinuation( |
| gurl)) { |
| continue; |
| } |
| - safe_launch_params.resource_files_to_prefetch.push_back( |
| - launch_params.resource_files_to_prefetch[i]); |
| + safe_launch_params.resource_prefetch_request_list.push_back( |
| + original_request_list[i]); |
| } |
| // Process a list of resource file URLs in |
| @@ -200,30 +202,30 @@ void NaClHostMessageFilter::BatchOpenResourceFiles( |
| const nacl::NaClLaunchParams& launch_params, |
| IPC::Message* reply_msg, |
| ppapi::PpapiPermissions permissions) { |
| - std::vector<nacl::NaClResourceFileInfo> prefetched_resource_files_info; |
| - for (size_t i = 0; i < launch_params.resource_files_to_prefetch.size(); ++i) { |
| - nacl::NaClResourceFileInfo prefetched_resource_file; |
| - GURL gurl(launch_params.resource_files_to_prefetch[i].second); |
| + 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) { |
|
lpique
2015/05/01 21:45:10
crbug.com/483633
|
| + GURL gurl(request_list[i].resource_url); |
| + base::FilePath file_path_metadata; |
| if (!nacl::NaClBrowser::GetDelegate()->MapUrlToLocalFilePath( |
| gurl, |
| true, // use_blocking_api |
| profile_directory_, |
| - &prefetched_resource_file.file_path_metadata)) { |
| + &file_path_metadata)) { |
| continue; |
| } |
| base::File file = nacl::OpenNaClReadExecImpl( |
| - prefetched_resource_file.file_path_metadata, |
| - true /* is_executable */); |
| + file_path_metadata, true /* is_executable */); |
| if (!file.IsValid()) |
| continue; |
| - prefetched_resource_file.file = |
| - IPC::TakeFileHandleForProcess(file.Pass(), PeerHandle()); |
| - prefetched_resource_file.file_key = |
| - launch_params.resource_files_to_prefetch[i].first; |
| + prefetched_resource_files.push_back(NaClResourcePrefetchResult( |
| + IPC::TakeFileHandleForProcess(file.Pass(), PeerHandle()), |
| + file_path_metadata, |
| + request_list[i].file_key)); |
| - prefetched_resource_files_info.push_back(prefetched_resource_file); |
| - if (prefetched_resource_files_info.size() >= kMaxPreOpenResourceFiles) |
| + if (prefetched_resource_files.size() >= kMaxPreOpenResourceFiles) |
| break; |
| } |
| @@ -234,15 +236,14 @@ void NaClHostMessageFilter::BatchOpenResourceFiles( |
| this, |
| launch_params, |
| reply_msg, |
| - prefetched_resource_files_info, |
| + prefetched_resource_files, |
| permissions)); |
| } |
| void NaClHostMessageFilter::LaunchNaClContinuationOnIOThread( |
| const nacl::NaClLaunchParams& launch_params, |
| IPC::Message* reply_msg, |
| - const std::vector< |
| - nacl::NaClResourceFileInfo>& prefetched_resource_files_info, |
| + const std::vector<NaClResourcePrefetchResult>& prefetched_resource_files, |
| ppapi::PpapiPermissions permissions) { |
| DCHECK_CURRENTLY_ON(content::BrowserThread::IO); |
| @@ -280,7 +281,7 @@ void NaClHostMessageFilter::LaunchNaClContinuationOnIOThread( |
| GURL(launch_params.manifest_url), |
| base::File(nexe_file), |
| nexe_token, |
| - prefetched_resource_files_info, |
| + prefetched_resource_files, |
| permissions, |
| launch_params.render_view_id, |
| launch_params.permission_bits, |