aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAstraea Quinn S <52372765+PartiallyUntyped@users.noreply.github.com>2025-05-08 18:10:30 +0200
committerGitHub <noreply@github.com>2025-05-08 16:10:30 +0000
commit8473946d11cc183f4065dabf25aba60fc1c4038c (patch)
tree90ef48809e585f70f0f5d7f9332f49e75d1a9870
parentf58b0c6ad4f7c06088564434f2a4adc5b33206ec (diff)
downloadservo-8473946d11cc183f4065dabf25aba60fc1c4038c.tar.gz
servo-8473946d11cc183f4065dabf25aba60fc1c4038c.zip
[OH] allow setting `log_filter` via `prefs.json` (#36916)
This PR allows us to set the `log_filter` via `prefs.json` as well as commandline arguments. Priority goes commandline > prefs.json > compile-time default. Testing: I compiled and run servo on an OH device, and then checked the logs: ``` hdc hilog | tee log | rg 'Set log_filter to' ``` ``` 05-08 15:25:59.389 55824 55993 D A00000/org.servo.servo/servoshell::prefs: Set log_filter to: Some("debug,geometry=trace") ``` Signed-off-by: Astraea Quinn Skoutelli <astraea.quinn.skoutelli@huawei.com>
-rw-r--r--components/config/prefs.rs3
-rw-r--r--ports/servoshell/prefs.rs6
2 files changed, 8 insertions, 1 deletions
diff --git a/components/config/prefs.rs b/components/config/prefs.rs
index 96c40c91360..a9ec112e3eb 100644
--- a/components/config/prefs.rs
+++ b/components/config/prefs.rs
@@ -236,6 +236,8 @@ pub struct Preferences {
/// The user-agent to use for Servo. This can also be set via [`UserAgentPlatform`] in
/// order to set the value to the default value for the given platform.
pub user_agent: String,
+
+ pub log_filter: String,
}
impl Preferences {
@@ -398,6 +400,7 @@ impl Preferences {
threadpools_webrender_workers_max: 4,
webgl_testing_context_creation_error: false,
user_agent: String::new(),
+ log_filter: String::new(),
}
}
}
diff --git a/ports/servoshell/prefs.rs b/ports/servoshell/prefs.rs
index a2efe3bab3b..a3ebda231d0 100644
--- a/ports/servoshell/prefs.rs
+++ b/ports/servoshell/prefs.rs
@@ -428,7 +428,11 @@ pub(crate) fn parse_command_line_arguments(args: Vec<String>) -> ArgumentParsing
#[cfg(target_env = "ohos")]
let log_filter = {
let filters = opt_match.opt_strs("log-filter").join(",");
- (!filters.is_empty()).then_some(filters)
+ let log_filter = (!filters.is_empty()).then_some(filters).or_else(|| {
+ (!preferences.log_filter.is_empty()).then_some(preferences.log_filter.clone())
+ });
+ log::debug!("Set log_filter to: {:?}", log_filter);
+ log_filter
};
let mut debug_options = DebugOptions::default();