Chromium Code Reviews| Index: content/common/sandbox_linux/bpf_gpu_policy_linux.cc |
| diff --git a/content/common/sandbox_linux/bpf_gpu_policy_linux.cc b/content/common/sandbox_linux/bpf_gpu_policy_linux.cc |
| index 81d389e2ea2962fe9cfa0bce5113a14e54eb4dc5..d6aa07108b6788f240bda717fee3fb959e119b91 100644 |
| --- a/content/common/sandbox_linux/bpf_gpu_policy_linux.cc |
| +++ b/content/common/sandbox_linux/bpf_gpu_policy_linux.cc |
| @@ -69,7 +69,15 @@ inline bool IsArchitectureI386() { |
| } |
| inline bool IsArchitectureArm() { |
| -#if defined(__arm__) |
| +#if defined(__arm__) || defined(__aarch64__) |
| + return true; |
| +#else |
| + return false; |
| +#endif |
| +} |
| + |
| +inline bool IsOzone() { |
| +#if defined(USE_OZONE) |
| return true; |
| #else |
| return false; |
| @@ -129,6 +137,19 @@ intptr_t GpuSIGSYS_Handler(const struct arch_seccomp_data& args, |
| } |
| } |
| +std::vector<BrokerFilePermission> GetV4L2GpuWhitelist() { |
|
wuchengli
2015/01/05 08:42:44
Better to pass vector as a function parameter to b
henryhsu
2015/01/05 09:15:30
Done.
|
| + std::vector<BrokerFilePermission> permissions; |
| + // Device nodes for V4L2 video decode accelerator drivers. |
| + static const char kDevVideoDecPath[] = "/dev/video-dec"; |
| + |
| + // Device nodes for V4L2 video encode accelerator drivers. |
| + static const char kDevVideoEncPath[] = "/dev/video-enc"; |
| + |
| + permissions.push_back(BrokerFilePermission::ReadWrite(kDevVideoDecPath)); |
| + permissions.push_back(BrokerFilePermission::ReadWrite(kDevVideoEncPath)); |
| + return permissions; |
| +} |
| + |
| class GpuBrokerProcessPolicy : public GpuProcessPolicy { |
| public: |
| static sandbox::bpf_dsl::Policy* Create() { |
| @@ -300,6 +321,11 @@ void GpuProcessPolicy::InitGpuBrokerProcess( |
| if (!IsChromeOS()) { |
| permissions.push_back( |
| BrokerFilePermission::ReadWriteCreateUnlinkRecursive(kDevShm)); |
| + } else if (IsArchitectureArm() || IsOzone()){ |
|
wuchengli
2015/01/05 08:42:44
This is incorrect. From GetGpuProcessSandbox in sa
henryhsu
2015/01/05 09:15:30
Arm only calls CrosArmGpuProcessPolicy. But it als
|
| + std::vector<BrokerFilePermission> v4l2_permissions = GetV4L2GpuWhitelist(); |
| + for (const auto& perm : v4l2_permissions) { |
| + permissions.push_back(perm); |
| + } |
| } |
| // Add eventual extra files from permissions_extra. |