From b9f341e5798827b43e236237d356fd864681cc39 Mon Sep 17 00:00:00 2001 From: LynithDev <61880709+LynithDev@users.noreply.github.com> Date: Tue, 28 Jul 2026 21:26:17 +0200 Subject: [PATCH] chore: update to freya 0.4 (fixes browser freeze issue) --- Cargo.lock | 118 ++++++++++-------- Cargo.toml | 6 - .../oneclient_app/src/components/icons.rs | 3 +- .../src/components/navbar/app_navbar.rs | 5 +- .../src/components/navbar/mod.rs | 2 +- .../components/navbar/onboarding_navbar.rs | 3 +- .../src/components/overlay_popup.rs | 4 +- .../src/components/splash_curtain.rs | 3 +- .../src/components/status_bar.rs | 2 +- .../oneclient_app/src/components/toasts.rs | 2 +- .../src/view/app/cluster/logs.rs | 4 +- .../view/app/cluster/package_manager/views.rs | 4 +- packages/oneclient_app/src/view/startup.rs | 3 +- 13 files changed, 88 insertions(+), 71 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index a11570b0..f6bd9d24 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -517,7 +517,7 @@ version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "435a87a52755b8f27fcf321ac4f04b2802e337c8c4872923137471ec39c37532" dependencies = [ - "event-listener", + "event-listener 5.4.1", "event-listener-strategy", "futures-core", "pin-project-lite", @@ -586,7 +586,7 @@ version = "3.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "290f7f2596bd5b78a9fec8088ccd89180d7f9f55b94b0576823bbbdc72ee8311" dependencies = [ - "event-listener", + "event-listener 5.4.1", "event-listener-strategy", "pin-project-lite", ] @@ -604,7 +604,7 @@ dependencies = [ "async-task", "blocking", "cfg-if", - "event-listener", + "event-listener 5.4.1", "futures-lite", "rustix 1.1.4", ] @@ -704,6 +704,15 @@ dependencies = [ "tungstenite", ] +[[package]] +name = "async-watch" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a078faf4e27c0c6cc0efb20e5da59dcccc04968ebf2801d8e0b2195124cdcdb2" +dependencies = [ + "event-listener 2.5.3", +] + [[package]] name = "async_zip" version = "0.0.18" @@ -1949,6 +1958,12 @@ dependencies = [ "num-traits", ] +[[package]] +name = "event-listener" +version = "2.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" + [[package]] name = "event-listener" version = "5.4.1" @@ -1966,7 +1981,7 @@ version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8be9f3dfaaffdae2972880079a491a1a8bb7cbed0b8dd7a347f668b4150a3b93" dependencies = [ - "event-listener", + "event-listener 5.4.1", "pin-project-lite", ] @@ -2113,8 +2128,8 @@ dependencies = [ [[package]] name = "freya" -version = "0.4.0-rc.23" -source = "git+https://github.com/marc2332/freya.git?branch=fix%2Fblur#be57ee3184e047ac932057cd063f7858741d41d9" +version = "0.4.0" +source = "git+https://github.com/marc2332/freya.git?branch=fix%2Fblur#f3140a08462d907d607b91a8aba3b8f9fe3420e4" dependencies = [ "cfg-if", "freya-android", @@ -2136,8 +2151,8 @@ dependencies = [ [[package]] name = "freya-android" -version = "0.4.0-rc.23" -source = "git+https://github.com/marc2332/freya.git?branch=fix%2Fblur#be57ee3184e047ac932057cd063f7858741d41d9" +version = "0.4.0" +source = "git+https://github.com/marc2332/freya.git?branch=fix%2Fblur#f3140a08462d907d607b91a8aba3b8f9fe3420e4" dependencies = [ "freya-components", "freya-core", @@ -2149,8 +2164,8 @@ dependencies = [ [[package]] name = "freya-animation" -version = "0.4.0-rc.23" -source = "git+https://github.com/marc2332/freya.git?branch=fix%2Fblur#be57ee3184e047ac932057cd063f7858741d41d9" +version = "0.4.0" +source = "git+https://github.com/marc2332/freya.git?branch=fix%2Fblur#f3140a08462d907d607b91a8aba3b8f9fe3420e4" dependencies = [ "async-io", "easer", @@ -2159,8 +2174,8 @@ dependencies = [ [[package]] name = "freya-clipboard" -version = "0.4.0-rc.23" -source = "git+https://github.com/marc2332/freya.git?branch=fix%2Fblur#be57ee3184e047ac932057cd063f7858741d41d9" +version = "0.4.1" +source = "git+https://github.com/marc2332/freya.git?branch=fix%2Fblur#f3140a08462d907d607b91a8aba3b8f9fe3420e4" dependencies = [ "copypasta", "freya-core", @@ -2168,8 +2183,8 @@ dependencies = [ [[package]] name = "freya-components" -version = "0.4.0-rc.23" -source = "git+https://github.com/marc2332/freya.git?branch=fix%2Fblur#be57ee3184e047ac932057cd063f7858741d41d9" +version = "0.4.0" +source = "git+https://github.com/marc2332/freya.git?branch=fix%2Fblur#f3140a08462d907d607b91a8aba3b8f9fe3420e4" dependencies = [ "accesskit", "anyhow", @@ -2188,19 +2203,20 @@ dependencies = [ "freya-sdk", "open", "paste", + "reqwest 0.12.28", + "rustc-hash", "thiserror 2.0.18", "torin", "tracing", - "ureq", ] [[package]] name = "freya-core" -version = "0.4.0-rc.23" -source = "git+https://github.com/marc2332/freya.git?branch=fix%2Fblur#be57ee3184e047ac932057cd063f7858741d41d9" +version = "0.4.0" +source = "git+https://github.com/marc2332/freya.git?branch=fix%2Fblur#f3140a08462d907d607b91a8aba3b8f9fe3420e4" dependencies = [ "accesskit", - "async-broadcast", + "async-watch", "bitflags 2.12.1", "bytes 1.11.1", "cursor-icon", @@ -2224,8 +2240,8 @@ dependencies = [ [[package]] name = "freya-edit" -version = "0.4.0-rc.23" -source = "git+https://github.com/marc2332/freya.git?branch=fix%2Fblur#be57ee3184e047ac932057cd063f7858741d41d9" +version = "0.4.0" +source = "git+https://github.com/marc2332/freya.git?branch=fix%2Fblur#f3140a08462d907d607b91a8aba3b8f9fe3420e4" dependencies = [ "bitflags 2.12.1", "freya-clipboard", @@ -2238,24 +2254,24 @@ dependencies = [ [[package]] name = "freya-engine" -version = "0.4.0-rc.23" -source = "git+https://github.com/marc2332/freya.git?branch=fix%2Fblur#be57ee3184e047ac932057cd063f7858741d41d9" +version = "0.4.0" +source = "git+https://github.com/marc2332/freya.git?branch=fix%2Fblur#f3140a08462d907d607b91a8aba3b8f9fe3420e4" dependencies = [ "freya-skia-safe", ] [[package]] name = "freya-icons" -version = "0.4.0-rc.23" -source = "git+https://github.com/marc2332/freya.git?branch=fix%2Fblur#be57ee3184e047ac932057cd063f7858741d41d9" +version = "0.4.0" +source = "git+https://github.com/marc2332/freya.git?branch=fix%2Fblur#f3140a08462d907d607b91a8aba3b8f9fe3420e4" dependencies = [ "bytes 1.11.1", ] [[package]] name = "freya-markdown" -version = "0.4.0-rc.23" -source = "git+https://github.com/marc2332/freya.git?branch=fix%2Fblur#be57ee3184e047ac932057cd063f7858741d41d9" +version = "0.4.0" +source = "git+https://github.com/marc2332/freya.git?branch=fix%2Fblur#f3140a08462d907d607b91a8aba3b8f9fe3420e4" dependencies = [ "freya-components", "freya-core", @@ -2265,8 +2281,8 @@ dependencies = [ [[package]] name = "freya-performance-plugin" -version = "0.4.0-rc.23" -source = "git+https://github.com/marc2332/freya.git?branch=fix%2Fblur#be57ee3184e047ac932057cd063f7858741d41d9" +version = "0.4.0" +source = "git+https://github.com/marc2332/freya.git?branch=fix%2Fblur#f3140a08462d907d607b91a8aba3b8f9fe3420e4" dependencies = [ "freya-core", "freya-engine", @@ -2275,8 +2291,8 @@ dependencies = [ [[package]] name = "freya-query" -version = "0.4.0-rc.23" -source = "git+https://github.com/marc2332/freya.git?branch=fix%2Fblur#be57ee3184e047ac932057cd063f7858741d41d9" +version = "0.4.0" +source = "git+https://github.com/marc2332/freya.git?branch=fix%2Fblur#f3140a08462d907d607b91a8aba3b8f9fe3420e4" dependencies = [ "async-io", "freya-core", @@ -2285,16 +2301,16 @@ dependencies = [ [[package]] name = "freya-radio" -version = "0.4.0-rc.23" -source = "git+https://github.com/marc2332/freya.git?branch=fix%2Fblur#be57ee3184e047ac932057cd063f7858741d41d9" +version = "0.4.0" +source = "git+https://github.com/marc2332/freya.git?branch=fix%2Fblur#f3140a08462d907d607b91a8aba3b8f9fe3420e4" dependencies = [ "freya-core", ] [[package]] name = "freya-router" -version = "0.4.0-rc.23" -source = "git+https://github.com/marc2332/freya.git?branch=fix%2Fblur#be57ee3184e047ac932057cd063f7858741d41d9" +version = "0.4.0" +source = "git+https://github.com/marc2332/freya.git?branch=fix%2Fblur#f3140a08462d907d607b91a8aba3b8f9fe3420e4" dependencies = [ "freya-core", "freya-router-macro", @@ -2305,8 +2321,8 @@ dependencies = [ [[package]] name = "freya-router-macro" -version = "0.4.0-rc.23" -source = "git+https://github.com/marc2332/freya.git?branch=fix%2Fblur#be57ee3184e047ac932057cd063f7858741d41d9" +version = "0.4.0" +source = "git+https://github.com/marc2332/freya.git?branch=fix%2Fblur#f3140a08462d907d607b91a8aba3b8f9fe3420e4" dependencies = [ "proc-macro2", "quote", @@ -2316,8 +2332,8 @@ dependencies = [ [[package]] name = "freya-sdk" -version = "0.4.0-rc.23" -source = "git+https://github.com/marc2332/freya.git?branch=fix%2Fblur#be57ee3184e047ac932057cd063f7858741d41d9" +version = "0.4.0" +source = "git+https://github.com/marc2332/freya.git?branch=fix%2Fblur#f3140a08462d907d607b91a8aba3b8f9fe3420e4" dependencies = [ "async-io", "freya-core", @@ -2367,8 +2383,8 @@ dependencies = [ [[package]] name = "freya-winit" -version = "0.4.0-rc.23" -source = "git+https://github.com/marc2332/freya.git?branch=fix%2Fblur#be57ee3184e047ac932057cd063f7858741d41d9" +version = "0.4.0" +source = "git+https://github.com/marc2332/freya.git?branch=fix%2Fblur#f3140a08462d907d607b91a8aba3b8f9fe3420e4" dependencies = [ "accesskit", "accesskit_winit", @@ -3008,6 +3024,7 @@ dependencies = [ "tokio", "tokio-rustls", "tower-service", + "webpki-roots", ] [[package]] @@ -3045,7 +3062,7 @@ dependencies = [ "js-sys", "log", "wasm-bindgen", - "windows-core 0.62.2", + "windows-core 0.56.0", ] [[package]] @@ -4927,8 +4944,8 @@ checksum = "35fb2e5f958ec131621fdd531e9fc186ed768cbe395337403ae56c17a74c68ec" [[package]] name = "pathgraph" -version = "0.4.0-rc.23" -source = "git+https://github.com/marc2332/freya.git?branch=fix%2Fblur#be57ee3184e047ac932057cd063f7858741d41d9" +version = "0.4.0" +source = "git+https://github.com/marc2332/freya.git?branch=fix%2Fblur#f3140a08462d907d607b91a8aba3b8f9fe3420e4" [[package]] name = "percent-encoding" @@ -5352,8 +5369,8 @@ checksum = "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf" [[package]] name = "ragnarok" -version = "0.4.0-rc.23" -source = "git+https://github.com/marc2332/freya.git?branch=fix%2Fblur#be57ee3184e047ac932057cd063f7858741d41d9" +version = "0.4.0" +source = "git+https://github.com/marc2332/freya.git?branch=fix%2Fblur#f3140a08462d907d607b91a8aba3b8f9fe3420e4" dependencies = [ "euclid", "hotpath", @@ -5606,6 +5623,7 @@ dependencies = [ "futures-channel", "futures-core", "futures-util", + "h2", "http 1.4.1", "http-body", "http-body-util", @@ -5635,6 +5653,7 @@ dependencies = [ "wasm-bindgen-futures", "wasm-streams 0.4.2", "web-sys", + "webpki-roots", ] [[package]] @@ -6508,7 +6527,7 @@ dependencies = [ "crc", "crossbeam-queue", "either", - "event-listener", + "event-listener 5.4.1", "futures-core", "futures-intrusive", "futures-io", @@ -7122,8 +7141,8 @@ checksum = "756daf9b1013ebe47a8776667b466417e2d4c5679d441c26230efd9ef78692db" [[package]] name = "torin" -version = "0.4.0-rc.23" -source = "git+https://github.com/marc2332/freya.git?branch=fix%2Fblur#be57ee3184e047ac932057cd063f7858741d41d9" +version = "0.4.0" +source = "git+https://github.com/marc2332/freya.git?branch=fix%2Fblur#f3140a08462d907d607b91a8aba3b8f9fe3420e4" dependencies = [ "euclid", "itertools 0.14.0", @@ -7410,7 +7429,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dea7109cdcd5864d4eeb1b58a1648dc9bf520360d7af16ec26d0a9354bafcfc0" dependencies = [ "base64", - "flate2", "log", "percent-encoding", "rustls", @@ -8616,7 +8634,7 @@ dependencies = [ "async-trait", "blocking", "enumflags2", - "event-listener", + "event-listener 5.4.1", "futures-core", "futures-lite", "hex", diff --git a/Cargo.toml b/Cargo.toml index b46eb3cb..b4dbb9c7 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -147,12 +147,6 @@ freya = { git = "https://github.com/marc2332/freya.git", branch = "fix/blur" } opt-level = 3 lto = "fat" codegen-units = 1 -# Keep the *shipped* binary stripped and small, but still emit debug info into -# separate files (macOS: .dSYM, Linux: .dwp, Windows: .pdb) so Sentry can -# symbolicate crash reports. CI uploads those files with `sentry-cli debug-files -# upload`; they are never shipped to users. Without this, release stack traces -# are just raw addresses. Use "full" instead of "line-tables-only" if you also -# want inlined-frame / variable info (larger debug files, slower builds). strip = true panic = "abort" debug = "line-tables-only" diff --git a/packages/oneclient_app/src/components/icons.rs b/packages/oneclient_app/src/components/icons.rs index 1b79ac59..dd004183 100644 --- a/packages/oneclient_app/src/components/icons.rs +++ b/packages/oneclient_app/src/components/icons.rs @@ -42,7 +42,8 @@ impl Component for Icon { let path = self.icon.path(); let bytes = use_memo(move || AppAssets::get_bytes(path).unwrap_or_default()); - svg(bytes.read().cloned()) + SvgViewer::new((path, bytes.read().cloned())) + .show_loader(false) .width(Size::px(self.size_px)) .height(Size::px(self.size_px)) // .fill(color) diff --git a/packages/oneclient_app/src/components/navbar/app_navbar.rs b/packages/oneclient_app/src/components/navbar/app_navbar.rs index 258ddabc..4cafc524 100644 --- a/packages/oneclient_app/src/components/navbar/app_navbar.rs +++ b/packages/oneclient_app/src/components/navbar/app_navbar.rs @@ -32,7 +32,7 @@ impl Component for Navbar { .width(Size::fill()) .height(Size::px(theme::NAVBAR_HEIGHT_PX)) .position(Position::new_absolute().top(0.).left(0.)) - .layer(Layer::RelativeOverlay(2)) + .layer(Layer::OverlayLevel(2)) .child( rect() .width(Size::fill()) @@ -68,7 +68,8 @@ fn navbar_left() -> impl IntoElement { fn navbar_logo() -> impl IntoElement { let bytes = use_memo(|| crate::AppAssets::get_bytes("logo.svg").unwrap_or_default()); - svg(bytes.read().cloned()) + SvgViewer::new(("logo.svg", bytes.read().cloned())) + .show_loader(false) .height(Size::px(44.)) .width(Size::px(214.)) .color(theme::colors::fg_primary()) diff --git a/packages/oneclient_app/src/components/navbar/mod.rs b/packages/oneclient_app/src/components/navbar/mod.rs index 3138fa63..47e8eb07 100644 --- a/packages/oneclient_app/src/components/navbar/mod.rs +++ b/packages/oneclient_app/src/components/navbar/mod.rs @@ -41,7 +41,7 @@ pub fn window_controls() -> impl IntoElement { .main_align(Alignment::End) .cross_align(Alignment::Center) .spacing(8.) - .layer(Layer::RelativeOverlay(u8::MAX)) + .layer(Layer::OverlayLevel(u8::MAX)) .child( navbar_button() .child(Icon::new(IconType::Minus)) diff --git a/packages/oneclient_app/src/components/navbar/onboarding_navbar.rs b/packages/oneclient_app/src/components/navbar/onboarding_navbar.rs index 7118d727..d9c66235 100644 --- a/packages/oneclient_app/src/components/navbar/onboarding_navbar.rs +++ b/packages/oneclient_app/src/components/navbar/onboarding_navbar.rs @@ -36,7 +36,8 @@ impl Component for OnboardingNavbar { fn logo() -> impl IntoElement { let bytes = use_memo(|| crate::AppAssets::get_bytes("logo.svg").unwrap_or_default()); - svg(bytes.read().cloned()) + SvgViewer::new(("logo.svg", bytes.read().cloned())) + .show_loader(false) .height(Size::px(36.)) .width(Size::px(170.)) .color(colors::fg_primary()) diff --git a/packages/oneclient_app/src/components/overlay_popup.rs b/packages/oneclient_app/src/components/overlay_popup.rs index bbac7c6b..956b27a4 100644 --- a/packages/oneclient_app/src/components/overlay_popup.rs +++ b/packages/oneclient_app/src/components/overlay_popup.rs @@ -84,7 +84,7 @@ impl Component for OverlayPopup { .position(Position::new_global().top(0.).left(0.)) .width(Size::window_percent(100.)) .height(Size::window_percent(100.)) - .layer(Layer::RelativeOverlay(10)) + .layer(Layer::OverlayLevel(10)) .background(Color::from_argb(alpha, 0, 0, 0)) .on_press(move |_| { if let Some(on_close) = scrim_close.as_ref() { @@ -99,7 +99,7 @@ impl Component for OverlayPopup { .a11y_focusable(true) .a11y_auto_focus(true) .a11y_role(AccessibilityRole::Dialog) - .layer(Layer::RelativeOverlay(12)) + .layer(Layer::OverlayLevel(12)) .on_global_key_down(move |e: Event| { if e.key == Key::Named(NamedKey::Escape) && let Some(on_close) = key_close.as_ref() diff --git a/packages/oneclient_app/src/components/splash_curtain.rs b/packages/oneclient_app/src/components/splash_curtain.rs index 8435781b..bf04733c 100644 --- a/packages/oneclient_app/src/components/splash_curtain.rs +++ b/packages/oneclient_app/src/components/splash_curtain.rs @@ -89,7 +89,8 @@ impl Component for CurtainFade { .vertical() .spacing(14.) .child( - svg(logo.read().cloned()) + SvgViewer::new(("logo.svg", logo.read().cloned())) + .show_loader(false) .width(Size::px(288.)) .height(Size::px(60.)) .color(colors::fg_primary()), diff --git a/packages/oneclient_app/src/components/status_bar.rs b/packages/oneclient_app/src/components/status_bar.rs index a7786e50..89d33bd2 100644 --- a/packages/oneclient_app/src/components/status_bar.rs +++ b/packages/oneclient_app/src/components/status_bar.rs @@ -153,7 +153,7 @@ impl Component for StatusBanner { .width(Size::window_percent(100.)) .height(Size::px(BAR_HEIGHT)) .position(Position::new_global().bottom(0.).left(0.)) - .layer(Layer::RelativeOverlay(u8::MAX - 20)) + .layer(Layer::OverlayLevel(u8::MAX - 20)) .background(issue.background()) .opacity(p) .child( diff --git a/packages/oneclient_app/src/components/toasts.rs b/packages/oneclient_app/src/components/toasts.rs index 5ee98859..6454411d 100644 --- a/packages/oneclient_app/src/components/toasts.rs +++ b/packages/oneclient_app/src/components/toasts.rs @@ -74,7 +74,7 @@ impl Component for Toasts { .vertical() .spacing(12.) .position(Position::new_global().top(64.).right(24.)) - .layer(Layer::RelativeOverlay(3)); + .layer(Layer::OverlayLevel(3)); for entry in entries { let id = entry.id; diff --git a/packages/oneclient_app/src/view/app/cluster/logs.rs b/packages/oneclient_app/src/view/app/cluster/logs.rs index 3cdb9492..887fb50c 100644 --- a/packages/oneclient_app/src/view/app/cluster/logs.rs +++ b/packages/oneclient_app/src/view/app/cluster/logs.rs @@ -456,7 +456,7 @@ impl Component for LogPicker { .position(Position::new_global().top(0.).left(0.)) .width(Size::window_percent(100.)) .height(Size::window_percent(100.)) - .layer(Layer::RelativeOverlay(10)) + .layer(Layer::OverlayLevel(10)) .on_press(move |_| open.set(false)), ) .child( @@ -464,7 +464,7 @@ impl Component for LogPicker { .margin(Gaps::new(4., 0., 0., 0.)) .width(Size::px(320.)) .max_height(Size::px(360.)) - .layer(Layer::RelativeOverlay(12)) + .layer(Layer::OverlayLevel(12)) .vertical() .spacing(4.) .padding(6.) diff --git a/packages/oneclient_app/src/view/app/cluster/package_manager/views.rs b/packages/oneclient_app/src/view/app/cluster/package_manager/views.rs index 89037eee..483db3b4 100644 --- a/packages/oneclient_app/src/view/app/cluster/package_manager/views.rs +++ b/packages/oneclient_app/src/view/app/cluster/package_manager/views.rs @@ -313,7 +313,7 @@ impl Component for FilterPopover { .layer(Layer::Overlay) .child( rect() - .layer(Layer::RelativeOverlay(10)) + .layer(Layer::OverlayLevel(10)) .position(Position::new_global().top(0.).left(0.)) .width(Size::window_percent(100.)) .height(Size::window_percent(100.)) @@ -322,7 +322,7 @@ impl Component for FilterPopover { .child( rect() .width(Size::fill()) - .layer(Layer::RelativeOverlay(12)) + .layer(Layer::OverlayLevel(12)) .margin(Gaps::new(6., 0., 0., -(FILTER_PANEL_W - FILTER_BTN_W))) .child(panel), ) diff --git a/packages/oneclient_app/src/view/startup.rs b/packages/oneclient_app/src/view/startup.rs index ac3f44b9..68b30dd6 100644 --- a/packages/oneclient_app/src/view/startup.rs +++ b/packages/oneclient_app/src/view/startup.rs @@ -137,7 +137,8 @@ impl Component for Startup { .vertical() .spacing(14.) .child( - svg(logo.read().cloned()) + SvgViewer::new(("logo.svg", logo.read().cloned())) + .show_loader(false) .width(Size::px(288.)) .height(Size::px(60.)) .color(colors::fg_primary()),