Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1868)

Unified Diff: chrome/browser/file_select_helper.cc

Issue 18129002: Update the child process security policy to use explicit permission grants. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Change RVH to use FileChooserParam mode Created 7 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/file_select_helper.h ('k') | chrome/browser/sessions/session_restore.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/file_select_helper.cc
diff --git a/chrome/browser/file_select_helper.cc b/chrome/browser/file_select_helper.cc
index 6c44527a61e2c2519f888a5d77c6f8c3bbe30556..86b40bcc40661e7461c09605c4389c5816705caf 100644
--- a/chrome/browser/file_select_helper.cc
+++ b/chrome/browser/file_select_helper.cc
@@ -9,7 +9,6 @@
#include "base/bind.h"
#include "base/file_util.h"
#include "base/files/file_enumerator.h"
-#include "base/platform_file.h"
#include "base/strings/string_split.h"
#include "base/strings/string_util.h"
#include "base/strings/utf_string_conversions.h"
@@ -46,27 +45,8 @@ const int kFileSelectEnumerationId = -1;
void NotifyRenderViewHost(RenderViewHost* render_view_host,
const std::vector<ui::SelectedFileInfo>& files,
- ui::SelectFileDialog::Type dialog_type) {
- const int kReadFilePermissions =
- base::PLATFORM_FILE_OPEN |
- base::PLATFORM_FILE_READ |
- base::PLATFORM_FILE_EXCLUSIVE_READ |
- base::PLATFORM_FILE_ASYNC;
-
- const int kWriteFilePermissions =
- base::PLATFORM_FILE_CREATE |
- base::PLATFORM_FILE_CREATE_ALWAYS |
- base::PLATFORM_FILE_OPEN |
- base::PLATFORM_FILE_OPEN_ALWAYS |
- base::PLATFORM_FILE_OPEN_TRUNCATED |
- base::PLATFORM_FILE_WRITE |
- base::PLATFORM_FILE_WRITE_ATTRIBUTES |
- base::PLATFORM_FILE_ASYNC;
-
- int permissions = kReadFilePermissions;
- if (dialog_type == ui::SelectFileDialog::SELECT_SAVEAS_FILE)
- permissions = kWriteFilePermissions;
- render_view_host->FilesSelectedInChooser(files, permissions);
+ FileChooserParams::Mode dialog_mode) {
+ render_view_host->FilesSelectedInChooser(files, dialog_mode);
}
// Converts a list of FilePaths to a list of ui::SelectedFileInfo.
@@ -97,7 +77,8 @@ FileSelectHelper::FileSelectHelper(Profile* profile)
web_contents_(NULL),
select_file_dialog_(),
select_file_types_(),
- dialog_type_(ui::SelectFileDialog::SELECT_OPEN_FILE) {
+ dialog_type_(ui::SelectFileDialog::SELECT_OPEN_FILE),
+ dialog_mode_(FileChooserParams::Open) {
}
FileSelectHelper::~FileSelectHelper() {
@@ -148,7 +129,7 @@ void FileSelectHelper::FileSelectedWithExtraInfo(
std::vector<ui::SelectedFileInfo> files;
files.push_back(file);
- NotifyRenderViewHost(render_view_host_, files, dialog_type_);
+ NotifyRenderViewHost(render_view_host_, files, dialog_mode_);
// No members should be accessed from here on.
RunFileChooserEnd();
@@ -171,7 +152,7 @@ void FileSelectHelper::MultiFilesSelectedWithExtraInfo(
if (!render_view_host_)
return;
- NotifyRenderViewHost(render_view_host_, files, dialog_type_);
+ NotifyRenderViewHost(render_view_host_, files, dialog_mode_);
// No members should be accessed from here on.
RunFileChooserEnd();
@@ -185,7 +166,7 @@ void FileSelectHelper::FileSelectionCanceled(void* params) {
// empty vector.
NotifyRenderViewHost(
render_view_host_, std::vector<ui::SelectedFileInfo>(),
- dialog_type_);
+ dialog_mode_);
// No members should be accessed from here on.
RunFileChooserEnd();
@@ -241,7 +222,7 @@ void FileSelectHelper::OnListDone(int id, int error) {
FilePathListToSelectedFileInfoList(entry->results_);
if (id == kFileSelectEnumerationId)
- NotifyRenderViewHost(entry->rvh_, selected_files, dialog_type_);
+ NotifyRenderViewHost(entry->rvh_, selected_files, dialog_mode_);
else
entry->rvh_->DirectoryEnumerationFinished(id, entry->results_);
@@ -387,6 +368,7 @@ void FileSelectHelper::RunFileChooserOnUIThread(
select_file_dialog_ = ui::SelectFileDialog::Create(
this, new ChromeSelectFilePolicy(web_contents_));
+ dialog_mode_ = params.mode;
switch (params.mode) {
case FileChooserParams::Open:
dialog_type_ = ui::SelectFileDialog::SELECT_OPEN_FILE;
« no previous file with comments | « chrome/browser/file_select_helper.h ('k') | chrome/browser/sessions/session_restore.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698