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 8ebfed40115abf896cf2b98e6b50ccfa1f22ff6c..5e3570a51d3d4b81f8789e6fef0a7df0610d8d37 100644 |
--- a/components/nacl/browser/nacl_host_message_filter.cc |
+++ b/components/nacl/browser/nacl_host_message_filter.cc |
@@ -24,11 +24,6 @@ namespace nacl { |
namespace { |
-// The maximum number of resource file handles the browser process accepts. Use |
-// 200 because ARC's nmf has ~128 resource files as of May 2015. This prevents |
-// untrusted code filling the FD/handle table. |
-const size_t kMaxPreOpenResourceFiles = 200; |
- |
ppapi::PpapiPermissions GetNaClPermissions( |
uint32 permission_bits, |
content::BrowserContext* browser_context, |
@@ -130,20 +125,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); |
@@ -163,9 +157,6 @@ void NaClHostMessageFilter::LaunchNaClContinuation( |
nacl::NaClLaunchParams safe_launch_params(launch_params); |
safe_launch_params.resource_prefetch_request_list.clear(); |
- // TODO(yusukes): Fix NaClProcessHost::~NaClProcessHost() and remove the |
- // ifdef. |
-#if !defined(OS_WIN) |
const std::vector<NaClResourcePrefetchRequest>& original_request_list = |
launch_params.resource_prefetch_request_list; |
content::SiteInstance* site_instance = rvh->GetSiteInstance(); |
@@ -182,65 +173,20 @@ void NaClHostMessageFilter::LaunchNaClContinuation( |
safe_launch_params.resource_prefetch_request_list.push_back( |
original_request_list[i]); |
} |
-#endif |
- |
- // 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; i < 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); |
@@ -278,7 +224,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, |