| 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) {
|
| + 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,
|
|
|