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

Unified Diff: content/browser/child_process_security_policy_impl.cc

Issue 19599006: ChildProcessSecurityPolicy: Deprecate bitmask-based permissions checks for files. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fix test on win 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
Index: content/browser/child_process_security_policy_impl.cc
diff --git a/content/browser/child_process_security_policy_impl.cc b/content/browser/child_process_security_policy_impl.cc
index ecdff0cba365bbdc3213fdecc5374bfcf6406479..d7640d344dffc65e89eb078e36892afdd7390fbe 100644
--- a/content/browser/child_process_security_policy_impl.cc
+++ b/content/browser/child_process_security_policy_impl.cc
@@ -49,29 +49,22 @@ const int kEnumerateDirectoryPermissions =
kReadFilePermissions |
base::PLATFORM_FILE_ENUMERATE;
-const int kReadWriteFilePermissions =
- base::PLATFORM_FILE_OPEN |
- base::PLATFORM_FILE_CREATE |
+// TODO(tommycli): These flag sets need some work to make more obvious.
+// Why for instance, does Create|Write != Create|Write? http://crbug.com/263150
+const int kCreateReadWriteFilePermissions =
+ kReadFilePermissions |
+ kWriteFilePermissions |
+ kCreateFilePermissions |
base::PLATFORM_FILE_OPEN_ALWAYS |
base::PLATFORM_FILE_CREATE_ALWAYS |
- base::PLATFORM_FILE_OPEN_TRUNCATED |
- base::PLATFORM_FILE_READ |
- base::PLATFORM_FILE_WRITE |
- base::PLATFORM_FILE_EXCLUSIVE_READ |
- base::PLATFORM_FILE_EXCLUSIVE_WRITE |
- base::PLATFORM_FILE_ASYNC |
- base::PLATFORM_FILE_WRITE_ATTRIBUTES;
+ base::PLATFORM_FILE_OPEN_TRUNCATED;
const int kCreateWriteFilePermissions =
- 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;
- // need EXCLUSIVE_WRITE in this mix?
+ kWriteFilePermissions |
+ kCreateFilePermissions |
+ base::PLATFORM_FILE_OPEN_ALWAYS |
+ base::PLATFORM_FILE_CREATE_ALWAYS |
+ base::PLATFORM_FILE_OPEN_TRUNCATED;
} // namespace
@@ -434,7 +427,7 @@ void ChildProcessSecurityPolicyImpl::GrantReadFile(int child_id,
void ChildProcessSecurityPolicyImpl::GrantCreateReadWriteFile(
int child_id, const base::FilePath& file) {
- GrantPermissionsForFile(child_id, file, kReadWriteFilePermissions);
+ GrantPermissionsForFile(child_id, file, kCreateReadWriteFilePermissions);
}
void ChildProcessSecurityPolicyImpl::GrantCreateWriteFile(
@@ -609,6 +602,22 @@ bool ChildProcessSecurityPolicyImpl::CanReadFile(int child_id,
return HasPermissionsForFile(child_id, file, kReadFilePermissions);
}
+bool ChildProcessSecurityPolicyImpl::CanWriteFile(int child_id,
+ const base::FilePath& file) {
+ return HasPermissionsForFile(child_id, file, kWriteFilePermissions);
+}
+
+bool ChildProcessSecurityPolicyImpl::CanCreateFile(int child_id,
+ const base::FilePath& file) {
+ return HasPermissionsForFile(child_id, file, kCreateFilePermissions);
+}
+
+bool ChildProcessSecurityPolicyImpl::CanCreateWriteFile(
+ int child_id,
+ const base::FilePath& file) {
+ return HasPermissionsForFile(child_id, file, kCreateWriteFilePermissions);
+}
+
bool ChildProcessSecurityPolicyImpl::CanReadDirectory(
int child_id, const base::FilePath& directory) {
return HasPermissionsForFile(child_id,
@@ -698,6 +707,31 @@ bool ChildProcessSecurityPolicyImpl::HasPermissionsForFileSystemFile(
return false;
}
+bool ChildProcessSecurityPolicyImpl::CanReadFileSystemFile(
+ int child_id,
+ const fileapi::FileSystemURL& url) {
+ return HasPermissionsForFileSystemFile(child_id, url, kReadFilePermissions);
+}
+
+bool ChildProcessSecurityPolicyImpl::CanWriteFileSystemFile(
+ int child_id,
+ const fileapi::FileSystemURL& url) {
+ return HasPermissionsForFileSystemFile(child_id, url, kWriteFilePermissions);
+}
+
+bool ChildProcessSecurityPolicyImpl::CanCreateFileSystemFile(
+ int child_id,
+ const fileapi::FileSystemURL& url) {
+ return HasPermissionsForFileSystemFile(child_id, url, kCreateFilePermissions);
+}
+
+bool ChildProcessSecurityPolicyImpl::CanCreateWriteFileSystemFile(
+ int child_id,
+ const fileapi::FileSystemURL& url) {
+ return HasPermissionsForFileSystemFile(child_id, url,
+ kCreateWriteFilePermissions);
+}
+
bool ChildProcessSecurityPolicyImpl::HasWebUIBindings(int child_id) {
base::AutoLock lock(lock_);
« no previous file with comments | « content/browser/child_process_security_policy_impl.h ('k') | content/browser/child_process_security_policy_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698