收口桌面运行时响应边界
将 Tauri host.getRuntime 成功响应包装收口到 runtime 模块 让桌面 dispatch 只委托运行时请求 同步桌面壳配置门禁和共享记忆
This commit is contained in:
@@ -1718,6 +1718,9 @@ if (!rustHostSource.includes('host_version: env!("CARGO_PKG_VERSION")')) {
|
||||
|
||||
for (const runtimeSnippet of [
|
||||
'pub(crate) fn desktop_runtime() -> HostBridgeRuntime',
|
||||
'pub(crate) fn desktop_host_bridge_runtime_response(',
|
||||
'request: &HostBridgeRequest',
|
||||
'ok(request.id.clone(), json!(desktop_runtime()))',
|
||||
'shell: "tauri_desktop"',
|
||||
'platform: desktop_platform()',
|
||||
'host_version: env!("CARGO_PKG_VERSION")',
|
||||
@@ -1731,8 +1734,10 @@ for (const runtimeSnippet of [
|
||||
|
||||
if (
|
||||
!desktopHostBridgeDispatchSource.includes(
|
||||
'"host.getRuntime" => ok(request.id, json!(desktop_runtime()))',
|
||||
'"host.getRuntime" => desktop_host_bridge_runtime_response(&request)',
|
||||
) ||
|
||||
desktopHostBridgeDispatchSource.includes('json!(desktop_runtime())') ||
|
||||
desktopHostBridgeDispatchSource.includes(' ok(') ||
|
||||
desktopHostBridgeDispatchSource.includes('HostBridgeRuntime') ||
|
||||
desktopHostBridgeDispatchSource.includes('HOST_BRIDGE_VERSION') ||
|
||||
desktopHostBridgeDispatchSource.includes('capabilities()') ||
|
||||
|
||||
@@ -16,14 +16,13 @@ use crate::host_bridge::navigation::{
|
||||
use crate::host_bridge::network::resolve_desktop_host_bridge_network_status;
|
||||
use crate::host_bridge::notifications::show_desktop_local_notification;
|
||||
use crate::host_bridge::protocol::{
|
||||
failed, ok, validate_request, HostBridgeRequest, HostBridgeResponse,
|
||||
failed, validate_request, HostBridgeRequest, HostBridgeResponse,
|
||||
};
|
||||
use crate::host_bridge::runtime::desktop_runtime;
|
||||
use crate::host_bridge::runtime::desktop_host_bridge_runtime_response;
|
||||
use crate::host_bridge::share::{
|
||||
open_desktop_host_bridge_share, set_desktop_host_bridge_share_target,
|
||||
};
|
||||
use crate::host_bridge::title::set_desktop_host_bridge_window_title;
|
||||
use serde_json::json;
|
||||
|
||||
pub(crate) fn resolve_host_bridge_request(request: HostBridgeRequest) -> HostBridgeResponse {
|
||||
if let Some(response) = validate_request(&request) {
|
||||
@@ -31,7 +30,7 @@ pub(crate) fn resolve_host_bridge_request(request: HostBridgeRequest) -> HostBri
|
||||
}
|
||||
|
||||
match request.method.as_str() {
|
||||
"host.getRuntime" => ok(request.id, json!(desktop_runtime())),
|
||||
"host.getRuntime" => desktop_host_bridge_runtime_response(&request),
|
||||
_ => failed(
|
||||
request.id,
|
||||
"unsupported_method",
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
use crate::host_bridge::capabilities::capabilities;
|
||||
use crate::host_bridge::protocol::{HostBridgeRuntime, HOST_BRIDGE_VERSION};
|
||||
use crate::host_bridge::protocol::{
|
||||
ok, HostBridgeRequest, HostBridgeResponse, HostBridgeRuntime, HOST_BRIDGE_VERSION,
|
||||
};
|
||||
use crate::shell::webview::desktop_platform;
|
||||
use serde_json::json;
|
||||
|
||||
pub(crate) fn desktop_runtime() -> HostBridgeRuntime {
|
||||
HostBridgeRuntime {
|
||||
@@ -12,6 +15,12 @@ pub(crate) fn desktop_runtime() -> HostBridgeRuntime {
|
||||
}
|
||||
}
|
||||
|
||||
pub(crate) fn desktop_host_bridge_runtime_response(
|
||||
request: &HostBridgeRequest,
|
||||
) -> HostBridgeResponse {
|
||||
ok(request.id.clone(), json!(desktop_runtime()))
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use super::*;
|
||||
|
||||
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user