OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "content/browser/child_process_security_policy_impl.h" | 5 #include "content/browser/child_process_security_policy_impl.h" |
6 | 6 |
7 #include "base/command_line.h" | 7 #include "base/command_line.h" |
8 #include "base/files/file_path.h" | 8 #include "base/files/file_path.h" |
9 #include "base/logging.h" | 9 #include "base/logging.h" |
10 #include "base/metrics/histogram.h" | 10 #include "base/metrics/histogram.h" |
(...skipping 460 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
471 void ChildProcessSecurityPolicyImpl::GrantWriteFileSystem( | 471 void ChildProcessSecurityPolicyImpl::GrantWriteFileSystem( |
472 int child_id, const std::string& filesystem_id) { | 472 int child_id, const std::string& filesystem_id) { |
473 GrantPermissionsForFileSystem(child_id, filesystem_id, WRITE_FILE_GRANT); | 473 GrantPermissionsForFileSystem(child_id, filesystem_id, WRITE_FILE_GRANT); |
474 } | 474 } |
475 | 475 |
476 void ChildProcessSecurityPolicyImpl::GrantCreateFileForFileSystem( | 476 void ChildProcessSecurityPolicyImpl::GrantCreateFileForFileSystem( |
477 int child_id, const std::string& filesystem_id) { | 477 int child_id, const std::string& filesystem_id) { |
478 GrantPermissionsForFileSystem(child_id, filesystem_id, CREATE_NEW_FILE_GRANT); | 478 GrantPermissionsForFileSystem(child_id, filesystem_id, CREATE_NEW_FILE_GRANT); |
479 } | 479 } |
480 | 480 |
| 481 void ChildProcessSecurityPolicyImpl::GrantCreateReadWriteFileSystem( |
| 482 int child_id, const std::string& filesystem_id) { |
| 483 GrantPermissionsForFileSystem( |
| 484 child_id, filesystem_id, CREATE_READ_WRITE_FILE_GRANT); |
| 485 } |
| 486 |
481 void ChildProcessSecurityPolicyImpl::GrantCopyIntoFileSystem( | 487 void ChildProcessSecurityPolicyImpl::GrantCopyIntoFileSystem( |
482 int child_id, const std::string& filesystem_id) { | 488 int child_id, const std::string& filesystem_id) { |
483 GrantPermissionsForFileSystem(child_id, filesystem_id, COPY_INTO_FILE_GRANT); | 489 GrantPermissionsForFileSystem(child_id, filesystem_id, COPY_INTO_FILE_GRANT); |
484 } | 490 } |
485 | 491 |
486 void ChildProcessSecurityPolicyImpl::GrantDeleteFromFileSystem( | 492 void ChildProcessSecurityPolicyImpl::GrantDeleteFromFileSystem( |
487 int child_id, const std::string& filesystem_id) { | 493 int child_id, const std::string& filesystem_id) { |
488 GrantPermissionsForFileSystem(child_id, filesystem_id, DELETE_FILE_GRANT); | 494 GrantPermissionsForFileSystem(child_id, filesystem_id, DELETE_FILE_GRANT); |
489 } | 495 } |
490 | 496 |
(...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
636 return HasPermissionsForFileSystem(child_id, filesystem_id, | 642 return HasPermissionsForFileSystem(child_id, filesystem_id, |
637 COPY_INTO_FILE_GRANT); | 643 COPY_INTO_FILE_GRANT); |
638 } | 644 } |
639 | 645 |
640 bool ChildProcessSecurityPolicyImpl::CanDeleteFromFileSystem( | 646 bool ChildProcessSecurityPolicyImpl::CanDeleteFromFileSystem( |
641 int child_id, const std::string& filesystem_id) { | 647 int child_id, const std::string& filesystem_id) { |
642 return HasPermissionsForFileSystem(child_id, filesystem_id, | 648 return HasPermissionsForFileSystem(child_id, filesystem_id, |
643 DELETE_FILE_GRANT); | 649 DELETE_FILE_GRANT); |
644 } | 650 } |
645 | 651 |
646 void ChildProcessSecurityPolicyImpl::GrantCreateReadWriteFileSystem( | |
647 int child_id, const std::string& filesystem_id) { | |
648 GrantPermissionsForFileSystem( | |
649 child_id, filesystem_id, CREATE_READ_WRITE_FILE_GRANT); | |
650 } | |
651 | |
652 bool ChildProcessSecurityPolicyImpl::HasPermissionsForFile( | 652 bool ChildProcessSecurityPolicyImpl::HasPermissionsForFile( |
653 int child_id, const base::FilePath& file, int permissions) { | 653 int child_id, const base::FilePath& file, int permissions) { |
654 base::AutoLock lock(lock_); | 654 base::AutoLock lock(lock_); |
655 bool result = ChildProcessHasPermissionsForFile(child_id, file, permissions); | 655 bool result = ChildProcessHasPermissionsForFile(child_id, file, permissions); |
656 if (!result) { | 656 if (!result) { |
657 // If this is a worker thread that has no access to a given file, | 657 // If this is a worker thread that has no access to a given file, |
658 // let's check that its renderer process has access to that file instead. | 658 // let's check that its renderer process has access to that file instead. |
659 WorkerToMainProcessMap::iterator iter = worker_map_.find(child_id); | 659 WorkerToMainProcessMap::iterator iter = worker_map_.find(child_id); |
660 if (iter != worker_map_.end() && iter->second != 0) { | 660 if (iter != worker_map_.end() && iter->second != 0) { |
661 result = ChildProcessHasPermissionsForFile(iter->second, | 661 result = ChildProcessHasPermissionsForFile(iter->second, |
(...skipping 193 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
855 base::AutoLock lock(lock_); | 855 base::AutoLock lock(lock_); |
856 | 856 |
857 SecurityStateMap::iterator state = security_state_.find(child_id); | 857 SecurityStateMap::iterator state = security_state_.find(child_id); |
858 if (state == security_state_.end()) | 858 if (state == security_state_.end()) |
859 return false; | 859 return false; |
860 | 860 |
861 return state->second->can_send_midi_sysex(); | 861 return state->second->can_send_midi_sysex(); |
862 } | 862 } |
863 | 863 |
864 } // namespace content | 864 } // namespace content |
OLD | NEW |