Linux: Load additional binaries from DIR_ASSETS (fixes issue #1936)
This adds *.pak, locales/*.pak , chrome-sandbox, libGLESv2.so, libEGL.so and swiftshader/*.so to the list of binaries that will be loaded from the libcef.so directory instead of the executable directory by default.
This commit is contained in:
parent
48f7c67587
commit
b3468451f5
|
@ -139,7 +139,7 @@ void OverrideChildProcessPath() {
|
|||
|
||||
base::FilePath GetResourcesFilePath() {
|
||||
base::FilePath pak_dir;
|
||||
base::PathService::Get(base::DIR_MODULE, &pak_dir);
|
||||
base::PathService::Get(base::DIR_ASSETS, &pak_dir);
|
||||
return pak_dir;
|
||||
}
|
||||
|
||||
|
@ -265,8 +265,9 @@ bool IsScaleFactorSupported(ui::ScaleFactor scale_factor) {
|
|||
}
|
||||
|
||||
#if defined(OS_LINUX)
|
||||
// Look for the *.dat and *.bin files next to libcef instead of the exe on
|
||||
// Linux. This is already the default on Windows.
|
||||
// Look for binary files (*.bin, *.dat, *.pak, chrome-sandbox, libGLESv2.so,
|
||||
// libEGL.so, locales/*.pak, swiftshader/*.so) next to libcef instead of the exe
|
||||
// on Linux. This is already the default on Windows.
|
||||
void OverrideAssetPath() {
|
||||
Dl_info dl_info;
|
||||
if (dladdr(reinterpret_cast<const void*>(&OverrideAssetPath), &dl_info)) {
|
||||
|
|
|
@ -418,6 +418,11 @@ patches = [
|
|||
# https://bitbucket.org/chromiumembedded/cef/issues/2495
|
||||
'name': 'message_pump_mac_2495',
|
||||
},
|
||||
{
|
||||
# Linux: Load binaries from DIR_ASSETS.
|
||||
# https://bitbucket.org/chromiumembedded/cef/issues/1936
|
||||
'name': 'linux_assets_path_1936',
|
||||
},
|
||||
{
|
||||
# Windows: Fix jumbo build error in AccessibilityTreeFormatterWin
|
||||
# https://bugs.chromium.org/p/chromium/issues/detail?id=939668
|
||||
|
|
|
@ -0,0 +1,35 @@
|
|||
diff --git sandbox/linux/suid/client/setuid_sandbox_host.cc sandbox/linux/suid/client/setuid_sandbox_host.cc
|
||||
index 7a103bf7f13c..cd3167ebed09 100644
|
||||
--- sandbox/linux/suid/client/setuid_sandbox_host.cc
|
||||
+++ sandbox/linux/suid/client/setuid_sandbox_host.cc
|
||||
@@ -120,7 +120,7 @@ bool SetuidSandboxHost::IsDisabledViaEnvironment() {
|
||||
base::FilePath SetuidSandboxHost::GetSandboxBinaryPath() {
|
||||
base::FilePath sandbox_binary;
|
||||
base::FilePath exe_dir;
|
||||
- if (base::PathService::Get(base::DIR_EXE, &exe_dir)) {
|
||||
+ if (base::PathService::Get(base::DIR_ASSETS, &exe_dir)) {
|
||||
base::FilePath sandbox_candidate = exe_dir.AppendASCII("chrome-sandbox");
|
||||
if (base::PathExists(sandbox_candidate))
|
||||
sandbox_binary = sandbox_candidate;
|
||||
diff --git ui/gl/init/gl_initializer_x11.cc ui/gl/init/gl_initializer_x11.cc
|
||||
index e3c481b97d89..5fde4a0bb388 100644
|
||||
--- ui/gl/init/gl_initializer_x11.cc
|
||||
+++ ui/gl/init/gl_initializer_x11.cc
|
||||
@@ -88,7 +88,7 @@ bool InitializeStaticEGLInternal(GLImplementation implementation) {
|
||||
if (implementation == kGLImplementationSwiftShaderGL) {
|
||||
#if BUILDFLAG(ENABLE_SWIFTSHADER)
|
||||
base::FilePath module_path;
|
||||
- if (!base::PathService::Get(base::DIR_MODULE, &module_path))
|
||||
+ if (!base::PathService::Get(base::DIR_ASSETS, &module_path))
|
||||
return false;
|
||||
module_path = module_path.Append("swiftshader/");
|
||||
|
||||
@@ -100,7 +100,7 @@ bool InitializeStaticEGLInternal(GLImplementation implementation) {
|
||||
} else if (cmd->GetSwitchValueASCII(switches::kUseGL) ==
|
||||
kGLImplementationANGLEName) {
|
||||
base::FilePath module_path;
|
||||
- if (!base::PathService::Get(base::DIR_MODULE, &module_path))
|
||||
+ if (!base::PathService::Get(base::DIR_ASSETS, &module_path))
|
||||
return false;
|
||||
|
||||
glesv2_path = module_path.Append(kGLESv2ANGLELibraryName);
|
|
@ -5,8 +5,8 @@ cmake Contains CMake configuration files shared by all targets.
|
|||
|
||||
Debug Contains libcef.so and other components required to run the debug
|
||||
version of CEF-based applications. By default these files should be
|
||||
placed in the same directory as the executable and will be copied
|
||||
there as part of the build process.
|
||||
placed in the same directory as libcef.so and will be copied there
|
||||
as part of the build process.
|
||||
|
||||
include Contains all required CEF header files.
|
||||
|
||||
|
@ -15,8 +15,8 @@ libcef_dll Contains the source code for the libcef_dll_wrapper static library
|
|||
|
||||
Release Contains libcef.so and other components required to run the release
|
||||
version of CEF-based applications. By default these files should be
|
||||
placed in the same directory as the executable and will be copied
|
||||
there as part of the build process.
|
||||
placed in the same directory as libcef.so and will be copied there
|
||||
as part of the build process.
|
||||
|
||||
Resources Contains resources required by libcef.so. By default these files
|
||||
should be placed in the same directory as libcef.so and will be
|
||||
|
|
Loading…
Reference in New Issue