host: run_app — the window, shell, tab webviews and generic commands for every app

The `app` feature (App / run_app, AppConfig, SiteHooks): registers the Tauri plugins every app
uses (single-instance, deep-link and updater opt-in, window-state, opener, process, notification,
dialog), makes app data, loads profiles and the language, builds the window (restore, lost-geometry
reset, helper-close routing, native resize follow) and the transparent shell, and serves tabs_sync,
tab_navigate, tab_action, open_external_url, shell_focus, shell_raise, window_system_menu,
profiles_get/set, i18n_get/set (shell-only) and tab_shortcut, tab_link_drag (tab-only). The tab
builder is generic; the app fills in SiteHooks. `commands` lists them (manifest() for build.rs),
`testkit` checks capability files and caller guards, i18n::page_script is origin-guarded.
check:tauri now checks the app feature.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
CRTkafa 2026-09-29 11:51:24 +07:00
parent 3c7415ce07
commit 52a35048bc
8 changed files with 1616 additions and 45 deletions

View file

@ -29,12 +29,18 @@
//! signed multi-app wayBetter Store (allow-list, caps, catalog signatures, staging, install records);
//! downloads with the `net` feature.
//!
//! - [`commands`]: the commands the host serves for every app and who may call them (for `build.rs`);
//! [`testkit`]: capability and caller-check assertions for an app's security tests.
//!
//! With the `tauri` feature, [`host`] adds the Tauri glue that does not depend on app state; with
//! `tauri` and `net`, [`updater`] runs signed native updates and the hotfix channel.
//! `tauri` and `net`, [`updater`] runs signed native updates and the hotfix channel. With `app`,
//! [`app`] is the whole app around a site: [`app::run_app`] makes the window, the shell and the tab
//! webviews, registers the plugins and serves the generic commands; the app adds its own.
pub mod alerts;
pub mod backup;
pub mod bridge;
pub mod commands;
pub mod devmode;
#[cfg(feature = "net")]
pub mod fonts;
@ -50,9 +56,12 @@ pub mod site;
pub mod store;
pub mod sync;
pub mod tabs;
pub mod testkit;
pub mod update;
pub mod workspaces;
#[cfg(feature = "app")]
pub mod app;
#[cfg(feature = "tauri")]
pub mod host;
#[cfg(all(feature = "tauri", feature = "net"))]