Skip to content

Commit 7f3765b

Browse files
committed
fix(cli): validate macOS sandbox dylib during setup
1 parent 4742c2c commit 7f3765b

2 files changed

Lines changed: 16 additions & 1 deletion

File tree

cli/cef/cef_platform.mbt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -236,6 +236,9 @@ fn installed_cef_relative_files(platform : ProtonPlatform) -> Array[String] {
236236
let libraries_root = "Release/Chromium Embedded Framework.framework/Libraries"
237237
files.push(@fsutil.path_join(libraries_root, "libEGL.dylib"))
238238
files.push(@fsutil.path_join(libraries_root, "libGLESv2.dylib"))
239+
// Packaging signs every nested CEF Mach-O before sealing the framework.
240+
// Reject incomplete archives during setup instead of failing at signing.
241+
files.push(@fsutil.path_join(libraries_root, "libcef_sandbox.dylib"))
239242
files.push(@fsutil.path_join(libraries_root, "libvk_swiftshader.dylib"))
240243
}
241244
files
@@ -281,6 +284,7 @@ fn runtime_required_relative_files(platform : ProtonPlatform) -> Array[String] {
281284
[
282285
"bin/cef_process", "lib/libproton.dylib", "bin/libEGL.dylib", "bin/libGLESv2.dylib",
283286
"bin/libvk_swiftshader.dylib", "Frameworks/Chromium Embedded Framework.framework/Chromium Embedded Framework",
287+
"Frameworks/Chromium Embedded Framework.framework/Libraries/libcef_sandbox.dylib",
284288
"Resources/icudtl.dat",
285289
]
286290
} else {

cli/cef/cef_platform_wbtest.mbt

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,16 @@
11
///|
2-
test "darwin arm64 platform has proton and runtime artifact lists" {
2+
test "darwin arm64 platform has complete CEF and Proton runtime artifact lists" {
33
let platform = darwin_arm64_platform()
44
let prebuilt = proton_prebuilt_relative_files(platform)
55
assert_true(prebuilt.contains("bin/cef_process"))
66
assert_true(prebuilt.contains("lib/libproton.dylib"))
77
assert_true(prebuilt.contains("include/proton_native.h"))
8+
let cef = installed_cef_relative_files(platform)
9+
assert_true(
10+
cef.contains(
11+
"Release/Chromium Embedded Framework.framework/Libraries/libcef_sandbox.dylib",
12+
),
13+
)
814
let runtime = runtime_required_relative_files(platform)
915
assert_true(runtime.contains("bin/cef_process"))
1016
assert_true(runtime.contains("lib/libproton.dylib"))
@@ -13,6 +19,11 @@ test "darwin arm64 platform has proton and runtime artifact lists" {
1319
"Frameworks/Chromium Embedded Framework.framework/Chromium Embedded Framework",
1420
),
1521
)
22+
assert_true(
23+
runtime.contains(
24+
"Frameworks/Chromium Embedded Framework.framework/Libraries/libcef_sandbox.dylib",
25+
),
26+
)
1627
assert_true(runtime.contains("Resources/icudtl.dat"))
1728
}
1829

0 commit comments

Comments
 (0)