收口桌面壳通知诊断日志

桌面壳本地通知失败只记录固定阶段标签

扩展桌面壳配置门禁禁止通知日志输出插件错误细节

补充宿主壳方案和共享决策中的通知诊断边界
This commit is contained in:
2026-06-21 14:08:59 +08:00
parent 5fbec02ce2
commit 4d84d76092
4 changed files with 31 additions and 29 deletions
@@ -105,11 +105,8 @@ fn notification_delivery_unavailable_response(request: &HostBridgeRequest) -> Ho
)
}
fn log_desktop_notification_failure(label: &str, error: &str) -> bool {
if !error.is_empty() {
eprintln!("desktop notification failed for {label}: {error}");
}
fn log_desktop_notification_failure(label: &str) -> bool {
eprintln!("desktop notification failed for {label}");
false
}
@@ -124,8 +121,8 @@ pub(crate) fn show_desktop_local_notification(
let notification_manager = app.notification();
let permission_state = notification_manager
.permission_state()
.map_err(|error| {
log_desktop_notification_failure("permission.state", &error.to_string());
.map_err(|_error| {
log_desktop_notification_failure("permission.state");
notification_permission_unavailable_response(request)
});
let permission_state = match permission_state {
@@ -136,8 +133,8 @@ pub(crate) fn show_desktop_local_notification(
if permission_action == DesktopNotificationPermissionAction::Request {
let requested_state = notification_manager
.request_permission()
.map_err(|error| {
log_desktop_notification_failure("permission.request", &error.to_string());
.map_err(|_error| {
log_desktop_notification_failure("permission.request");
notification_permission_unavailable_response(request)
});
let requested_state = match requested_state {
@@ -164,8 +161,8 @@ pub(crate) fn show_desktop_local_notification(
request.id.clone(),
desktop_notification_delivered_to_system_result(),
),
Err(error) => {
log_desktop_notification_failure("delivery.show", &error.to_string());
Err(_error) => {
log_desktop_notification_failure("delivery.show");
notification_delivery_unavailable_response(request)
}
}
@@ -238,18 +235,14 @@ mod tests {
#[test]
fn notification_failures_are_logged_without_exposing_native_detail() {
assert!(!log_desktop_notification_failure(
"permission.state",
"private notification detail"
));
assert!(!log_desktop_notification_failure(
"permission.request",
"private notification detail"
));
assert!(!log_desktop_notification_failure(
"delivery.show",
"private notification detail"
));
assert!(!log_desktop_notification_failure("permission.state"));
assert!(!log_desktop_notification_failure("permission.request"));
assert!(!log_desktop_notification_failure("delivery.show"));
}
#[test]
fn notification_failures_log_stable_label_only() {
assert!(!log_desktop_notification_failure("delivery.show"));
}
#[test]