Index: content/browser/child_process_security_policy.cc |
=================================================================== |
--- content/browser/child_process_security_policy.cc (revision 79702) |
+++ content/browser/child_process_security_policy.cc (working copy) |
@@ -20,6 +20,10 @@ |
base::PLATFORM_FILE_EXCLUSIVE_READ | |
base::PLATFORM_FILE_ASYNC; |
+static const int kEnumerateDirectoryPermissions = |
+ kReadFilePermissions | |
+ base::PLATFORM_FILE_ENUMERATE; |
+ |
// The SecurityState class is used to maintain per-child process security state |
// information. |
class ChildProcessSecurityPolicy::SecurityState { |
@@ -241,6 +245,11 @@ |
GrantPermissionsForFile(child_id, file, kReadFilePermissions); |
} |
+void ChildProcessSecurityPolicy::GrantReadDirectory(int child_id, |
+ const FilePath& directory) { |
+ GrantPermissionsForFile(child_id, directory, kEnumerateDirectoryPermissions); |
+} |
+ |
void ChildProcessSecurityPolicy::GrantPermissionsForFile( |
int child_id, const FilePath& file, int permissions) { |
base::AutoLock lock(lock_); |
@@ -372,6 +381,13 @@ |
return HasPermissionsForFile(child_id, file, kReadFilePermissions); |
} |
+bool ChildProcessSecurityPolicy::CanReadDirectory(int child_id, |
+ const FilePath& directory) { |
+ return HasPermissionsForFile(child_id, |
+ directory, |
+ kEnumerateDirectoryPermissions); |
+} |
+ |
bool ChildProcessSecurityPolicy::HasPermissionsForFile( |
int child_id, const FilePath& file, int permissions) { |
base::AutoLock lock(lock_); |