Index: content/browser/frame_host/render_frame_host_impl.cc |
diff --git a/content/browser/frame_host/render_frame_host_impl.cc b/content/browser/frame_host/render_frame_host_impl.cc |
index 7e28d332730e878e86e9e13aa5603db59d315a56..c5c6b04749a9de5743278470bc877171e85f9b35 100644 |
--- a/content/browser/frame_host/render_frame_host_impl.cc |
+++ b/content/browser/frame_host/render_frame_host_impl.cc |
@@ -2208,7 +2208,8 @@ void RenderFrameHostImpl::OnBeginNavigation( |
BeginNavigationParams validated_begin_params = begin_params; |
GetProcess()->FilterURL(true, &validated_begin_params.searchable_form_url); |
- if (!ValidateUploadParams(validated_params)) { |
+ if (!ChildProcessSecurityPolicyImpl::GetInstance()->CanReadRequestBody( |
+ GetSiteInstance(), validated_params.post_data)) { |
bad_message::ReceivedBadMessage(GetProcess(), |
bad_message::RFH_ILLEGAL_UPLOAD_PARAMS); |
return; |
@@ -4007,36 +4008,6 @@ void RenderFrameHostImpl::SetLastCommittedSiteUrl(const GURL& url) { |
} |
} |
-bool RenderFrameHostImpl::ValidateUploadParams( |
- const CommonNavigationParams& common_params) { |
- if (!common_params.post_data.get()) |
- return true; |
- |
- // Check if the renderer is permitted to upload the requested files. |
- const std::vector<ResourceRequestBodyImpl::Element>* uploads = |
- common_params.post_data->elements(); |
- std::vector<ResourceRequestBodyImpl::Element>::const_iterator iter; |
- ChildProcessSecurityPolicyImpl* security_policy = |
- ChildProcessSecurityPolicyImpl::GetInstance(); |
- for (iter = uploads->begin(); iter != uploads->end(); ++iter) { |
- if (iter->type() == ResourceRequestBodyImpl::Element::TYPE_FILE && |
- !security_policy->CanReadFile(GetProcess()->GetID(), iter->path())) { |
- return false; |
- } |
- if (iter->type() == |
- ResourceRequestBodyImpl::Element::TYPE_FILE_FILESYSTEM) { |
- StoragePartition* storage_partition = BrowserContext::GetStoragePartition( |
- GetSiteInstance()->GetBrowserContext(), GetSiteInstance()); |
- storage::FileSystemURL url = |
- storage_partition->GetFileSystemContext()->CrackURL( |
- iter->filesystem_url()); |
- if (!security_policy->CanReadFileSystemFile(GetProcess()->GetID(), url)) |
- return false; |
- } |
- } |
- return true; |
-} |
- |
#if defined(OS_ANDROID) |
class RenderFrameHostImpl::JavaInterfaceProvider |