diff options
-rw-r--r-- | content/common/gpu/media/vaapi_wrapper.cc | 12 | ||||
-rw-r--r-- | content/common/gpu/media/vaapi_wrapper.h | 3 | ||||
-rw-r--r-- | content/common/gpu/media/video_decode_accelerator_unittest.cc | 4 | ||||
-rw-r--r-- | content/common/sandbox_seccomp_bpf_linux.cc | 6 | ||||
-rw-r--r-- | content/gpu/gpu_main.cc | 4 |
5 files changed, 6 insertions, 23 deletions
diff --git a/content/common/gpu/media/vaapi_wrapper.cc b/content/common/gpu/media/vaapi_wrapper.cc index 6c201aa..53e8b69 100644 --- a/content/common/gpu/media/vaapi_wrapper.cc +++ b/content/common/gpu/media/vaapi_wrapper.cc @@ -434,19 +434,11 @@ bool VaapiWrapper::PutSurfaceIntoPixmap(VASurfaceID va_surface_id, } // static -bool VaapiWrapper::pre_sandbox_init_done_ = false; - -// static -void VaapiWrapper::PreSandboxInitialization() { - DCHECK(!pre_sandbox_init_done_); +bool VaapiWrapper::PostSandboxInitialization() { vaapi_handle = dlopen("libva.so.1", RTLD_NOW); vaapi_x11_handle = dlopen("libva-x11.so.1", RTLD_NOW); - pre_sandbox_init_done_ = vaapi_handle && vaapi_x11_handle; -} -// static -bool VaapiWrapper::PostSandboxInitialization() { - if (!pre_sandbox_init_done_) + if (!vaapi_handle || !vaapi_x11_handle) return false; #define VAAPI_DLSYM_OR_RETURN_ON_ERROR(name, handle) \ do { \ diff --git a/content/common/gpu/media/vaapi_wrapper.h b/content/common/gpu/media/vaapi_wrapper.h index 82bae94..850bebd 100644 --- a/content/common/gpu/media/vaapi_wrapper.h +++ b/content/common/gpu/media/vaapi_wrapper.h @@ -78,9 +78,6 @@ class CONTENT_EXPORT VaapiWrapper { Pixmap x_pixmap, gfx::Size dest_size); - // Do any necessary initialization before the sandbox is enabled. - static void PreSandboxInitialization(); - // Returns true if the VAAPI version is less than the specified version. bool VAAPIVersionLessThan(int major, int minor); diff --git a/content/common/gpu/media/video_decode_accelerator_unittest.cc b/content/common/gpu/media/video_decode_accelerator_unittest.cc index cb458eb..2d1b006 100644 --- a/content/common/gpu/media/video_decode_accelerator_unittest.cc +++ b/content/common/gpu/media/video_decode_accelerator_unittest.cc @@ -1518,9 +1518,5 @@ int main(int argc, char **argv) { base::ShadowingAtExitManager at_exit_manager; -#if defined(OS_CHROMEOS) && defined(ARCH_CPU_X86_FAMILY) - content::VaapiWrapper::PreSandboxInitialization(); -#endif // OS_CHROMEOS && ARCH_CPU_X86_FAMILY - return RUN_ALL_TESTS(); } diff --git a/content/common/sandbox_seccomp_bpf_linux.cc b/content/common/sandbox_seccomp_bpf_linux.cc index d4643e0..fea84bf 100644 --- a/content/common/sandbox_seccomp_bpf_linux.cc +++ b/content/common/sandbox_seccomp_bpf_linux.cc @@ -1901,8 +1901,8 @@ void WarmupPolicy(Sandbox::EvaluateSyscall policy, InitGpuBrokerProcess(policy, broker_process); if (IsArchitectureX86_64() || IsArchitectureI386()) { - // Accelerated video decode dlopen()'s a shared object - // inside the sandbox, so preload it now. + // Accelerated video decode dlopen()'s some shared objects + // inside the sandbox, so preload them now. if (IsAcceleratedVideoDecodeEnabled()) { const char* I965DrvVideoPath = NULL; @@ -1913,6 +1913,8 @@ void WarmupPolicy(Sandbox::EvaluateSyscall policy, } dlopen(I965DrvVideoPath, RTLD_NOW|RTLD_GLOBAL|RTLD_NODELETE); + dlopen("libva.so.1", RTLD_NOW|RTLD_GLOBAL|RTLD_NODELETE); + dlopen("libva-x11.so.1", RTLD_NOW|RTLD_GLOBAL|RTLD_NODELETE); } } } else if (policy == ArmGpuProcessPolicy || diff --git a/content/gpu/gpu_main.cc b/content/gpu/gpu_main.cc index 224c85af..82c1bff 100644 --- a/content/gpu/gpu_main.cc +++ b/content/gpu/gpu_main.cc @@ -360,10 +360,6 @@ bool WarmUpSandbox(const CommandLine& command_line) { } } -#if defined(OS_CHROMEOS) && defined(ARCH_CPU_X86_FAMILY) && defined(USE_X11) - VaapiWrapper::PreSandboxInitialization(); -#endif - #if defined(OS_WIN) { TRACE_EVENT0("gpu", "Preload setupapi.dll"); |