Commit c23436ca authored by hirono's avatar hirono Committed by Commit bot

Grant read permission for the non-native files passed as a result of file chooser.

The property of FileChooserFileInfo#file_system_url is newly added for handling non-native files in Chrome OS.

BUG=126902
TEST=None

Review URL: https://codereview.chromium.org/655153002

Cr-Commit-Position: refs/heads/master@{#299847}
parent 6c29a291
...@@ -734,6 +734,10 @@ void RenderViewHostImpl::SetInitialFocus(bool reverse) { ...@@ -734,6 +734,10 @@ void RenderViewHostImpl::SetInitialFocus(bool reverse) {
void RenderViewHostImpl::FilesSelectedInChooser( void RenderViewHostImpl::FilesSelectedInChooser(
const std::vector<content::FileChooserFileInfo>& files, const std::vector<content::FileChooserFileInfo>& files,
FileChooserParams::Mode permissions) { FileChooserParams::Mode permissions) {
storage::FileSystemContext* const file_system_context =
BrowserContext::GetStoragePartition(GetProcess()->GetBrowserContext(),
GetSiteInstance())
->GetFileSystemContext();
// Grant the security access requested to the given files. // Grant the security access requested to the given files.
for (size_t i = 0; i < files.size(); ++i) { for (size_t i = 0; i < files.size(); ++i) {
const content::FileChooserFileInfo& file = files[i]; const content::FileChooserFileInfo& file = files[i];
...@@ -744,6 +748,12 @@ void RenderViewHostImpl::FilesSelectedInChooser( ...@@ -744,6 +748,12 @@ void RenderViewHostImpl::FilesSelectedInChooser(
ChildProcessSecurityPolicyImpl::GetInstance()->GrantReadFile( ChildProcessSecurityPolicyImpl::GetInstance()->GrantReadFile(
GetProcess()->GetID(), file.file_path); GetProcess()->GetID(), file.file_path);
} }
if (file.file_system_url.is_valid()) {
ChildProcessSecurityPolicyImpl::GetInstance()->GrantReadFileSystem(
GetProcess()->GetID(),
file_system_context->CrackURL(file.file_system_url)
.mount_filesystem_id());
}
} }
Send(new ViewMsg_RunFileChooserResponse(GetRoutingID(), files)); Send(new ViewMsg_RunFileChooserResponse(GetRoutingID(), files));
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment