mirror of
https://github.com/servo/servo.git
synced 2025-08-24 14:48:21 +01:00
The crash when loading servo.org happens in the JIT code emitted by SM's CacheIRCompiler to invoke the VM function `ProxyGetPropertyByValue`. To disable this code path, it is not sufficient to disable just the baseline JIT (which exposed in servo under the pref `js.baseline.enabled`) but also the baseline interpreter which is controlled by a different flag in SM. This PR disables renames the `js.baseline.enabled` pref in Servo to `js.baseline_jit.enabled` and introduces a new pref `js.baseline_interpreter.enabled` that controls the baseline interpreter. Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>
This commit is contained in:
parent
64116eff20
commit
d8958f9693
4 changed files with 23 additions and 6 deletions
|
@ -7,6 +7,7 @@
|
|||
mod gl_glue;
|
||||
mod simpleservo;
|
||||
|
||||
use std::collections::HashMap;
|
||||
use std::os::raw::{c_char, c_int, c_void};
|
||||
use std::sync::Arc;
|
||||
use std::thread;
|
||||
|
@ -845,13 +846,20 @@ fn get_options(
|
|||
};
|
||||
|
||||
let native_window = unsafe { ANativeWindow_fromSurface(env.get_native_interface(), surface) };
|
||||
|
||||
// FIXME: enable JIT compilation on Android after the startup crash issue (#31134) is fixed.
|
||||
let mut prefs = HashMap::new();
|
||||
prefs.insert("js.baseline_interpreter.enabled".to_string(), false.into());
|
||||
prefs.insert("js.baseline_jit.enabled".to_string(), false.into());
|
||||
prefs.insert("js.ion.enabled".to_string(), false.into());
|
||||
|
||||
let opts = InitOptions {
|
||||
args: args.unwrap_or(vec![]),
|
||||
coordinates,
|
||||
density,
|
||||
xr_discovery: None,
|
||||
surfman_integration: simpleservo::SurfmanIntegration::Widget(native_window),
|
||||
prefs: None,
|
||||
prefs: Some(prefs),
|
||||
};
|
||||
Ok((opts, log, log_str, gst_debug_str))
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue