//! wayBetter native host. //! //! A wayBetter app is one native window with a trusted local **shell** webview (tab strip, address //! bars, split panes, settings) and one native child webview per browser tab, positioned over the //! pane rectangles the shell reports. One site (x.com, web.whatsapp.com, kick.com, ...) is the //! app's *site*: its tabs get the app's page runtime and may call a small set of site-only commands. //! //! This crate holds the site-agnostic parts, all headless-testable: //! - [`site`]: the site adapter ([`site::SiteSpec`], [`site::AccountRules`]). //! - [`policy`]: webview labels, origin checks and the tab rectangle clamp (security boundary). //! - [`profiles`]: account profiles, one WebView data directory each, with the account seen inside. //! - [`plugins`]: owner-installed `*.plugin.js` files, custom CSS and bundled-plugin upgrades; //! [`plugins::commands`]: the palette commands site tabs report and the script that runs one. //! - [`hotfix`]: the signed, data-only hotfix channel. //! - [`update`]: silent-update scheduling and the crash handshake. //! - [`tabs`]: tab layout/state payloads, link routing and tab-chrome validation. //! - [`layout`]: native placement bookkeeping (unchanged bounds skipped, window-resize follow). //! - [`i18n`]: the strings native UI and site tabs get in the owner's language (validated data), OS locale. //! - [`backup`]: the settings backup envelope, secret scrubbing and the plugin/account sections. //! - [`sync`]: encrypted settings sync through a folder the owner syncs (Argon2id + XChaCha20-Poly1305). //! - [`workspaces`]: saved tab/pane/deck layouts, bounded and well-formed (never evaluated). //! - [`devmode`]: developer mode's debounced watcher of plugins, custom CSS and a theme file. //! - [`alerts`]: local keyword alerts (keywords, snippets, per-item/per-keyword rate limits). //! - [`media`]: gallery folders (path containment) and the opt-in clipboard history (private copies skipped). //! - [`gfonts`]: self-hosted Google Fonts: CSS parsing, URL/woff2 checks, the cache format, the page script; //! [`fonts`] (`net` feature) downloads and caches them. //! - [`store`]: installing themes and plugins from `waybetter://install` links, dropped files and the //! signed multi-app wayBetter Store (allow-list, caps, catalog signatures, staging, install records); //! downloads with the `net` feature. //! //! 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. pub mod alerts; pub mod backup; pub mod devmode; #[cfg(feature = "net")] pub mod fonts; pub mod gfonts; pub mod hotfix; pub mod i18n; pub mod layout; pub mod media; pub mod plugins; pub mod policy; pub mod profiles; pub mod site; pub mod store; pub mod sync; pub mod tabs; pub mod update; pub mod workspaces; #[cfg(feature = "tauri")] pub mod host; #[cfg(all(feature = "tauri", feature = "net"))] pub mod updater;