diff --git a/recipes/wip/web/servo/recipe.toml b/recipes/wip/web/servo/recipe.toml index 50568e30e..92dbc12f1 100644 --- a/recipes/wip/web/servo/recipe.toml +++ b/recipes/wip/web/servo/recipe.toml @@ -1,16 +1,24 @@ [source] -git = "https://gitlab.redox-os.org/njskalski/servo.git" -branch = "redox_mods" +git = "github.com/servo/servo.git" +rev = "25fea1e086c46d611cf87db439430994e4f56cd5" +patches = [ + "redox.patch" +] +script = """ +cp ../.servobuild ./ +""" [build] template = "custom" dependencies = [ "freetype2", + "expat", "gettext", "glib", "gstreamer", "harfbuzz", "libffi", + "libpng", "libiconv", "libx11", "libxcb", @@ -26,49 +34,34 @@ dependencies = [ "libpthread-stubs", "fontconfig", "expat", - "relibc", - "gcc13", ] script = """ -cp "${COOKBOOK_RECIPE}/.servobuild" "${COOKBOOK_SOURCE}/.servobuild" - -# Add wrapper to PATH -export PATH="${COOKBOOK_RECIPE}:${PATH}" -export TARGET=${TARGET} - -# Force cargo to use the correct build target -export CARGO_BUILD_TARGET=${TARGET} +DYNAMIC_INIT # jemalloc specific configuration export JEMALLOC_SYS_WITH_LG_PAGE=16 -export TARGET_CC=${TARGET}-gcc -export TARGET_CXX=${TARGET}-g++ -export TARGET_AR=${TARGET}-ar +export TARGET_CC="$CC" +export TARGET_CXX="$CXX" +export TARGET_AR="$AR" -export PKG_CONFIG_ALLOW_CROSS=1 - -# this /usr/share/pkgconfig comes from x11proto, that stages pc files in wrong dir. -export PKG_CONFIG_PATH="${COOKBOOK_SYSROOT}/lib/pkgconfig" -#:${COOKBOOK_SYSROOT}/usr/lib/pkgconfig:${COOKBOOK_SYSROOT}/usr/share/pkgconfig" -export PKG_CONFIG_LIBDIR="${COOKBOOK_SYSROOT}/lib/pkgconfig" -#:${COOKBOOK_SYSROOT}/usr/lib/pkgconfig" -export PKG_CONFIG_SYSROOT_DIR="${COOKBOOK_SYSROOT}" - -export RUSTFLAGS="-C target-feature=-crt-static -C link-args=-lpng -C link-args=-lxcb -C link-args=-lexpat -C link-args=-lgcc_s -C link-args=-lz -C link-args=-lXau -C link-args=-no-pie" - -rsync -a --delete "${COOKBOOK_SOURCE}/" ./ - - -# I'm tired trying figure out why multiple pkgconfig paths are ignored by cargo building stuff +export PKG_CONFIG_PATH_x86_64_unknown_redox="${COOKBOOK_SYSROOT}/lib/pkgconfig" +export PKG_CONFIG_SYSROOT_DIR_x86_64_unknown_redox="${COOKBOOK_SYSROOT}/lib/pkgconfig" rsync -a -v ${COOKBOOK_SYSROOT}/usr/share/pkgconfig/*.pc ${COOKBOOK_SYSROOT}/lib/pkgconfig/ -rsync -a -v ${COOKBOOK_SYSROOT}/usr/lib/pkgconfig/*.pc ${COOKBOOK_SYSROOT}/lib/pkgconfig/ -echo "listing ${COOKBOOK_SYSROOT}/lib/pkgconfig" -ls -al ${COOKBOOK_SYSROOT}/lib/pkgconfig +export RUSTFLAGS="$RUSTFLAGS -L native=${COOKBOOK_SYSROOT}/lib -C link-arg=-Wl,-rpath-link,${COOKBOOK_SYSROOT}/lib" -# -j 1 to lock down "which crate fails", because cargo tree -i doesn't work for gaol -cargo build --target ${TARGET} --release +#TODO: mozjs-sys and mozangle uses clang, it won't know our prefix C libraries, so here's the workaround +PREFIX_INCLUDE=$(realpath "$COOKBOOK_ROOT/../prefix/$TARGET/sysroot/x86_64-unknown-redox/include") +export CLANGFLAGS="-I $PREFIX_INCLUDE/c++/13.2.0 -I $PREFIX_INCLUDE/c++/13.2.0/$TARGET -I $PREFIX_INCLUDE/c++/13.2.0/backward -I $PREFIX_INCLUDE" -mkdir -pv "${COOKBOOK_STAGE}/usr/servo" -cp -r -v "target/${TARGET}/release/servo" "${COOKBOOK_STAGE}/usr/servo" +#Mozjs specifics +export CARGO_MAKEFLAGS="-j $COOKBOOK_MAKE_JOBS" CCACHE="sccache" + +PACKAGE_PATH="ports/servoshell" cookbook_cargo """ + +[package] +dependencies = [ + "libxcursor", + "libxkbcommon-x11", +] diff --git a/recipes/wip/web/servo/redox.patch b/recipes/wip/web/servo/redox.patch new file mode 100644 index 000000000..3a0c804f2 --- /dev/null +++ b/recipes/wip/web/servo/redox.patch @@ -0,0 +1,955 @@ +diff --git a/Cargo.toml b/Cargo.toml +index 2dcb622934f..0d5f41924c0 100644 +--- a/Cargo.toml ++++ b/Cargo.toml +@@ -55,14 +55,14 @@ ctr = "0.9.2" + darling = { version = "0.20", default-features = false } + data-url = "0.3" + devtools_traits = { path = "components/shared/devtools" } +-dpi = "0.1" ++dpi = { git = "https://gitlab.redox-os.org/njskalski/winit.git", branch = "redox_mods2"} + embedder_traits = { path = "components/shared/embedder" } + encoding_rs = "0.8" + env_logger = "0.11" + euclid = "0.22" + fnv = "1.0" + fonts_traits = { path = "components/shared/fonts" } +-freetype-sys = "0.20" ++freetype-sys = { version ="0.20.1", default-features = false} + fxhash = "0.2" + getopts = "0.2.11" + gleam = "0.15" +@@ -91,7 +91,7 @@ imsz = "0.2" + indexmap = { version = "2.10.0", features = ["std"] } + ipc-channel = "0.20" + itertools = "0.14" +-js = { package = "mozjs", git = "https://github.com/servo/mozjs" } ++js = { package = "mozjs", git = "https://gitlab.redox-os.org/willnode/mozjs.git", branch = "redox_mods" } + keyboard-types = { version = "0.8.1", features = ["serde", "webdriver"] } + kurbo = { version = "0.11.3", features = ["euclid"] } + layout_api = { path = "components/shared/layout" } +@@ -151,7 +151,7 @@ stylo_config = { git = "https://github.com/servo/stylo", branch = "2025-08-01" } + stylo_dom = { git = "https://github.com/servo/stylo", branch = "2025-08-01" } + stylo_malloc_size_of = { git = "https://github.com/servo/stylo", branch = "2025-08-01" } + stylo_traits = { git = "https://github.com/servo/stylo", branch = "2025-08-01" } +-surfman = { git = "https://github.com/servo/surfman", rev = "f7688b4585f9e0b5d4bf8ee8e4a91e82349610b1", features = ["chains"] } ++surfman = { git = "https://gitlab.redox-os.org/njskalski/surfman.git", branch = "redox_mods", features = ["sm-x11"] } + syn = { version = "2", default-features = false, features = ["clone-impls", "derive", "parsing"] } + synstructure = "0.13" + taffy = { version = "0.9", default-features = false, features = ["calc", "detailed_layout_info", "grid", "std"] } +@@ -178,14 +178,14 @@ vello_cpu = { git = "https://github.com/linebender/vello", rev = "b0e2e598ac62c7 + webdriver = "0.53.0" + webgpu_traits = { path = "components/shared/webgpu" } + webpki-roots = "1.0" +-webrender = { git = "https://github.com/servo/webrender", branch = "0.67", features = ["capture"] } +-webrender_api = { git = "https://github.com/servo/webrender", branch = "0.67" } ++webrender = { git = "https://gitlab.redox-os.org/njskalski/webrender.git", branch = "redox_mods" } ++webrender_api = { git = "https://gitlab.redox-os.org/njskalski/webrender.git", branch = "redox_mods" } + webxr-api = { path = "components/shared/webxr" } + wgpu-core = "25" + wgpu-types = "25" + winapi = "0.3" + windows-sys = "0.59" +-winit = "0.30.12" ++winit = { git = "https://gitlab.redox-os.org/njskalski/winit.git", branch = "redox_mods2"} + wio = "0.2" + wr_malloc_size_of = { git = "https://github.com/servo/webrender", branch = "0.67" } + xi-unicode = "0.3.0" +@@ -222,6 +222,20 @@ lto = "thin" + codegen-units = 1 + + [patch.crates-io] ++ipc-channel = { git = "https://gitlab.redox-os.org/njskalski/ipc-channel.git", branch="redox_mods" } ++servo_malloc_size_of = { path = "./components/malloc_size_of" } ++wr_malloc_size_of = { git = "https://gitlab.redox-os.org/njskalski/webrender.git", branch = "redox_mods"} ++tikv-jemalloc-sys = { version = "0.6.0", git = "https://gitlab.redox-os.org/njskalski/jemallocator.git", branch = "redox_mods" } ++tikv-jemallocator = { version = "0.6.0", git = "https://gitlab.redox-os.org/njskalski/jemallocator.git", branch = "redox_mods" } ++mozangle = { git = "https://gitlab.redox-os.org/willnode/mozangle.git", branch = "redox_mods"} ++# gaol = { git = "https://gitlab.redox-os.org/njskalski/gaol.git", branch = "redox_mods" } ++aws-lc-rs = { git = "https://gitlab.redox-os.org/njskalski/aws-lc-rs.git", branch = "redox_mods" } ++# mozjs_sys = { git = "https://gitlab.redox-os.org/njskalski/mozjs.git", rev = "e2ee9c77148c3af4f11fdff9a2cbd7e449d48d33"} ++# mozjs = { git = "https://gitlab.redox-os.org/njskalski/mozjs.git", branch = "redox_mods"} ++x11rb = { git = "https://gitlab.redox-os.org/njskalski/x11rb.git", branch = "redox_mods"} ++libz-sys = { git = "https://github.com/willnode/libz-sys.git", branch = "servo"} ++winit = { git = "https://gitlab.redox-os.org/njskalski/winit.git", branch = "redox_mods2"} ++# freetype-sys = { git = "https://github.com/PistonDevelopers/freetype-sys.git", branch = "master" } + # If you need to temporarily test Servo with a local fork of some upstream + # crate, add that here. Use the form: + # +@@ -250,7 +264,7 @@ codegen-units = 1 + # + # [patch."https://github.com/servo/webrender"] + # webrender = { path = "../webrender/webrender" } +-# webrender_api = { path = "../webrender/webrender_api" } ++# webrender_api = { git = "https://gitlab.redox-os.org/njskalski/webrender.git", branch = "redox_mods" } = { path = "../webrender/webrender_api = { git = "https://gitlab.redox-os.org/njskalski/webrender.git", branch = "redox_mods" }" } + # wr_malloc_size_of = { path = "../webrender/wr_malloc_size_of" } + # + # Or for another Git dependency: +diff --git a/components/canvas/Cargo.toml b/components/canvas/Cargo.toml +index ef0c84977f2..4edb129dd97 100644 +--- a/components/canvas/Cargo.toml ++++ b/components/canvas/Cargo.toml +@@ -38,7 +38,7 @@ raqote = { version = "0.8.5", optional = true } + servo_arc = { workspace = true } + stylo = { workspace = true } + unicode-script = { workspace = true } +-webrender_api = { workspace = true } ++webrender_api = { git = "https://gitlab.redox-os.org/njskalski/webrender.git", branch = "redox_mods" } + servo_config = { path = "../config" } + vello = { workspace = true, optional = true } + vello_cpu = { workspace = true, optional = true } +diff --git a/components/compositing/Cargo.toml b/components/compositing/Cargo.toml +index d5792b858db..38132ba0f2c 100644 +--- a/components/compositing/Cargo.toml ++++ b/components/compositing/Cargo.toml +@@ -44,10 +44,10 @@ servo-tracing = { workspace = true } + stylo_traits = { workspace = true } + timers = { path = "../timers" } + tracing = { workspace = true, optional = true } +-webrender = { workspace = true } +-webrender_api = { workspace = true } ++webrender = { git = "https://gitlab.redox-os.org/njskalski/webrender.git", branch = "redox_mods" } ++webrender_api = { git = "https://gitlab.redox-os.org/njskalski/webrender.git", branch = "redox_mods" } + webxr = { path = "../webxr", optional = true } +-wr_malloc_size_of = { workspace = true } ++wr_malloc_size_of = { git = "https://gitlab.redox-os.org/njskalski/webrender.git", branch = "redox_mods" } + + [dev-dependencies] + surfman = { workspace = true } +diff --git a/components/constellation/Cargo.toml b/components/constellation/Cargo.toml +index a982bcbfe73..cb519367edd 100644 +--- a/components/constellation/Cargo.toml ++++ b/components/constellation/Cargo.toml +@@ -58,10 +58,10 @@ stylo_traits = { workspace = true } + tracing = { workspace = true, optional = true } + webgpu = { path = "../webgpu" } + webgpu_traits = { workspace = true } +-webrender = { workspace = true } +-webrender_api = { workspace = true } ++webrender = { git = "https://gitlab.redox-os.org/njskalski/webrender.git", branch = "redox_mods", features = ["capture"] } ++webrender_api = { git = "https://gitlab.redox-os.org/njskalski/webrender.git", branch = "redox_mods" } + webxr-api = { workspace = true, features = ["ipc"] } + servo-tracing = { workspace = true } + +-[target.'cfg(any(target_os="macos", all(not(target_os = "windows"), not(target_os = "ios"), not(target_os="android"), not(target_env="ohos"), not(target_arch="arm"), not(target_arch="aarch64"))))'.dependencies] ++[target.'cfg(any(target_os="macos", all(not(target_os = "windows"), not(target_os = "ios"), not(target_os="android"), not(target_os="redox"), not(target_env="ohos"), not(target_arch="arm"), not(target_arch="aarch64"))))'.dependencies] + gaol = "0.2.1" +diff --git a/components/constellation/sandboxing.rs b/components/constellation/sandboxing.rs +index 02a6f4ed6f6..81dae2503e8 100644 +--- a/components/constellation/sandboxing.rs ++++ b/components/constellation/sandboxing.rs +@@ -11,6 +11,7 @@ use std::{env, process}; + not(target_os = "windows"), + not(target_os = "ios"), + not(target_os = "android"), ++ not(target_os = "redox"), + not(target_env = "ohos"), + not(target_arch = "arm"), + not(target_arch = "aarch64") +@@ -99,7 +100,8 @@ pub fn content_process_sandbox_profile() -> Profile { + not(target_os = "android"), + not(target_env = "ohos"), + not(target_arch = "arm"), +- not(target_arch = "aarch64") ++ not(target_arch = "aarch64"), ++ not(target_os = "redox"), + ))] + pub fn content_process_sandbox_profile() -> Profile { + use std::path::PathBuf; +@@ -128,6 +130,7 @@ pub fn content_process_sandbox_profile() -> Profile { + target_os = "windows", + target_os = "ios", + target_os = "android", ++ target_os = "redox", + target_env = "ohos", + target_arch = "arm", + +@@ -175,7 +178,8 @@ pub fn spawn_multiprocess(content: UnprivilegedContent) -> Result Result { + use gaol::sandbox::{self, Sandbox, SandboxMethods}; +@@ -243,6 +247,12 @@ pub fn spawn_multiprocess(_content: UnprivilegedContent) -> Result Result { ++ log::error!("Multiprocess is not supported on Redox."); ++ process::exit(1); ++} ++ + fn setup_common(command: &mut C, token: String) { + C::arg(command, "--content-process"); + C::arg(command, token); +diff --git a/components/fonts/Cargo.toml b/components/fonts/Cargo.toml +index e4c27ca6c6f..acf5335e922 100644 +--- a/components/fonts/Cargo.toml ++++ b/components/fonts/Cargo.toml +@@ -53,7 +53,7 @@ tracing = { workspace = true, optional = true } + unicode-properties = { workspace = true } + unicode-script = { workspace = true } + url = { workspace = true } +-webrender_api = { workspace = true } ++webrender_api = { git = "https://gitlab.redox-os.org/njskalski/webrender.git", branch = "redox_mods" } + servo-tracing = { workspace = true } + + [target.'cfg(target_os = "macos")'.dependencies] +@@ -62,11 +62,11 @@ core-foundation = "0.9" + core-graphics = "0.23" + core-text = "20.1" + +-[target.'cfg(any(target_os = "linux", target_os = "android"))'.dependencies] ++[target.'cfg(any(target_os = "linux", target_os = "android", target_os = "redox"))'.dependencies] + freetype-sys = { workspace = true } + servo_allocator = { path = "../allocator" } + +-[target.'cfg(all(target_os = "linux", not(target_env = "ohos")))'.dependencies] ++[target.'cfg(all(any(target_os = "linux", target_os = "redox"), not(target_env = "ohos")))'.dependencies] + fontconfig_sys = { package = "yeslogic-fontconfig-sys", version = "6" } + + [target.'cfg(target_os = "android")'.dependencies] +diff --git a/components/fonts/font.rs b/components/fonts/font.rs +index 751aeecdba7..1b62cba5851 100644 +--- a/components/fonts/font.rs ++++ b/components/fonts/font.rs +@@ -947,7 +947,7 @@ pub struct FontBaseline { + /// let mapped_weight = apply_font_config_to_style_mapping(&mapping, weight as f64); + /// ``` + #[cfg(all( +- any(target_os = "linux", target_os = "macos"), ++ any(target_os = "linux", target_os = "macos", target_os="redox"), + not(target_env = "ohos") + ))] + pub(crate) fn map_platform_values_to_style_values(mapping: &[(f64, f64)], value: f64) -> f64 { +diff --git a/components/fonts/platform/freetype/mod.rs b/components/fonts/platform/freetype/mod.rs +index feea468008e..24f59a276d4 100644 +--- a/components/fonts/platform/freetype/mod.rs ++++ b/components/fonts/platform/freetype/mod.rs +@@ -16,7 +16,7 @@ use webrender_api::NativeFontHandle; + pub mod font; + mod freetype_face; + +-#[cfg(all(target_os = "linux", not(target_env = "ohos"), not(ohos_mock)))] ++#[cfg(all(any(target_os = "linux", target_os = "redox"), not(target_env = "ohos"), not(ohos_mock)))] + pub mod font_list; + + #[cfg(target_os = "android")] +diff --git a/components/fonts/platform/mod.rs b/components/fonts/platform/mod.rs +index 2c77d17d5d5..3138343feb2 100644 +--- a/components/fonts/platform/mod.rs ++++ b/components/fonts/platform/mod.rs +@@ -3,25 +3,25 @@ + * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ + + #[cfg(all( +- any(target_os = "linux", target_os = "macos"), ++ any(target_os = "linux", target_os = "macos", target_os="redox"), + not(target_os = "android"), + not(target_env = "ohos") + ))] + use base::text::{UnicodeBlock, UnicodeBlockMethod}; + #[cfg(all( +- any(target_os = "linux", target_os = "macos"), ++ any(target_os = "linux", target_os = "macos", target_os="redox"), + not(target_os = "android"), + not(target_env = "ohos") + ))] + use unicode_script::Script; + + #[cfg(all( +- any(target_os = "linux", target_os = "macos"), ++ any(target_os = "linux", target_os = "macos", target_os="redox"), + not(target_os = "android"), + not(target_env = "ohos") + ))] + use crate::FallbackFontSelectionOptions; +-#[cfg(any(target_os = "linux", target_os = "android"))] ++#[cfg(any(target_os = "linux", target_os = "android", target_os="redox"))] + pub use crate::platform::freetype::{LocalFontIdentifier, font, font_list}; + #[cfg(target_os = "macos")] + pub use crate::platform::macos::{ +@@ -30,7 +30,7 @@ pub use crate::platform::macos::{ + #[cfg(target_os = "windows")] + pub use crate::platform::windows::{font, font_list, font_list::LocalFontIdentifier}; + +-#[cfg(any(target_os = "linux", target_os = "android"))] ++#[cfg(any(target_os = "linux", target_os = "android", target_os="redox"))] + pub mod freetype; + + #[cfg(target_os = "macos")] +@@ -47,7 +47,7 @@ mod windows { + } + + #[cfg(all( +- any(target_os = "linux", target_os = "macos"), ++ any(target_os = "linux", target_os = "macos", target_os="redox"), + not(target_os = "android"), + not(target_env = "ohos") + ))] +diff --git a/components/geometry/Cargo.toml b/components/geometry/Cargo.toml +index 8634bc1d18c..a4115f6bf90 100644 +--- a/components/geometry/Cargo.toml ++++ b/components/geometry/Cargo.toml +@@ -16,5 +16,5 @@ app_units = { workspace = true } + euclid = { workspace = true } + malloc_size_of = { workspace = true } + malloc_size_of_derive = { workspace = true } +-webrender = { workspace = true } +-webrender_api = { workspace = true } ++webrender = { git = "https://gitlab.redox-os.org/njskalski/webrender.git", branch = "redox_mods" } ++webrender_api = { git = "https://gitlab.redox-os.org/njskalski/webrender.git", branch = "redox_mods" } +diff --git a/components/layout/Cargo.toml b/components/layout/Cargo.toml +index 139f2ce3dba..0196a3f15e0 100644 +--- a/components/layout/Cargo.toml ++++ b/components/layout/Cargo.toml +@@ -62,7 +62,7 @@ tracing = { workspace = true, optional = true } + unicode-bidi = { workspace = true } + unicode-script = { workspace = true } + url = { workspace = true } +-webrender_api = { workspace = true } ++webrender_api = { git = "https://gitlab.redox-os.org/njskalski/webrender.git", branch = "redox_mods" } + xi-unicode = { workspace = true } + servo-tracing = { workspace = true } + +diff --git a/components/malloc_size_of/Cargo.toml b/components/malloc_size_of/Cargo.toml +index 6e5e45a4e35..8de32d2c798 100644 +--- a/components/malloc_size_of/Cargo.toml ++++ b/components/malloc_size_of/Cargo.toml +@@ -39,5 +39,5 @@ unicode-script = { workspace = true } + url = { workspace = true } + urlpattern = { workspace = true } + uuid = { workspace = true } +-webrender_api = { workspace = true } +-wr_malloc_size_of = { workspace = true } ++webrender_api = { git = "https://gitlab.redox-os.org/njskalski/webrender.git", branch = "redox_mods" } ++wr_malloc_size_of = { git = "https://gitlab.redox-os.org/njskalski/webrender.git", branch = "redox_mods"} +diff --git a/components/media/Cargo.toml b/components/media/Cargo.toml +index cf51080ec7a..effa64922f8 100644 +--- a/components/media/Cargo.toml ++++ b/components/media/Cargo.toml +@@ -20,4 +20,4 @@ log = { workspace = true } + serde = { workspace = true } + servo-media = { workspace = true } + servo_config = { path = "../config" } +-webrender_api = { workspace = true } ++webrender_api = { git = "https://gitlab.redox-os.org/njskalski/webrender.git", branch = "redox_mods" } +diff --git a/components/net/Cargo.toml b/components/net/Cargo.toml +index 7556a1bf81f..38252d09b54 100644 +--- a/components/net/Cargo.toml ++++ b/components/net/Cargo.toml +@@ -77,8 +77,7 @@ tungstenite = { workspace = true } + url = { workspace = true } + uuid = { workspace = true } + webpki-roots = { workspace = true } +-webrender_api = { workspace = true } +- ++webrender_api = { git = "https://gitlab.redox-os.org/njskalski/webrender.git", branch = "redox_mods" } + [dev-dependencies] + embedder_traits = { workspace = true, features = ["baked-default-resources"] } + flate2 = "1" +diff --git a/components/pixels/Cargo.toml b/components/pixels/Cargo.toml +index 9ba20db80c0..fe33d20b88b 100644 +--- a/components/pixels/Cargo.toml ++++ b/components/pixels/Cargo.toml +@@ -19,8 +19,7 @@ log = { workspace = true } + malloc_size_of = { workspace = true } + malloc_size_of_derive = { workspace = true } + serde = { workspace = true, features = ["derive"] } +-webrender_api = { workspace = true } +- ++webrender_api = { git = "https://gitlab.redox-os.org/njskalski/webrender.git", branch = "redox_mods" } + [dev-dependencies] + criterion = { version = "0.5", features = ["html_reports"] } + +diff --git a/components/script/Cargo.toml b/components/script/Cargo.toml +index 51e81f6c085..fb85b1ea6b1 100644 +--- a/components/script/Cargo.toml ++++ b/components/script/Cargo.toml +@@ -136,7 +136,7 @@ utf-8 = "0.7" + uuid = { workspace = true, features = ["serde"] } + webdriver = { workspace = true } + webgpu_traits = { workspace = true } +-webrender_api = { workspace = true } ++webrender_api = { git = "https://gitlab.redox-os.org/njskalski/webrender.git", branch = "redox_mods" } + webxr-api = { workspace = true, features = ["ipc"], optional = true } + wgpu-core = { workspace = true } + wgpu-types = { workspace = true } +diff --git a/components/script/dom/navigatorinfo.rs b/components/script/dom/navigatorinfo.rs +index f3e6ddc109b..ee83d327df9 100644 +--- a/components/script/dom/navigatorinfo.rs ++++ b/components/script/dom/navigatorinfo.rs +@@ -46,7 +46,7 @@ pub(crate) fn Platform() -> DOMString { + } + + #[allow(non_snake_case)] +-#[cfg(any(target_os = "android", target_os = "linux"))] ++#[cfg(any(target_os = "android", target_os = "linux", target_os = "redox"))] + pub(crate) fn Platform() -> DOMString { + DOMString::from("Linux") + } +diff --git a/components/script_bindings/build.rs b/components/script_bindings/build.rs +index c28f900f6ce..2445c2ec9e4 100644 +--- a/components/script_bindings/build.rs ++++ b/components/script_bindings/build.rs +@@ -86,12 +86,12 @@ impl phf_shared::PhfHash for Bytes<'_> { + /// + /// Note: This function should be kept in sync with the version in `components/script/build.rs` + fn find_python() -> Command { +- let mut command = Command::new("uv"); +- command.args(["run", "--no-project", "python"]); ++ let mut command = Command::new("python3"); ++ // command.args(["run", "--no-project", "python"]); + + if command.output().is_ok_and(|out| out.status.success()) { + return command; + } + +- panic!("Can't find python (tried `{command:?}`)! Is uv installed and in PATH?") ++ panic!("Can't find python (tried `{command:?}`)!") + } +diff --git a/components/servo/Cargo.toml b/components/servo/Cargo.toml +index 2c1f75dca13..03bb5596dc1 100644 +--- a/components/servo/Cargo.toml ++++ b/components/servo/Cargo.toml +@@ -25,7 +25,7 @@ default = ["clipboard", "raqote"] + clipboard = ["dep:arboard"] + crown = ["script/crown"] + debugmozjs = ["script/debugmozjs"] +-background_hang_monitor = ["background_hang_monitor/sampler"] ++# background_hang_monitor = ["background_hang_monitor/sampler"] + jitspew = ["script/jitspew"] + js_backtrace = ["script/js_backtrace"] + media-gstreamer = ["servo-media-gstreamer", "gstreamer"] +@@ -117,8 +117,8 @@ surfman = { workspace = true } + tracing = { workspace = true, optional = true } + url = { workspace = true } + webgpu = { path = "../webgpu" } +-webrender = { workspace = true } +-webrender_api = { workspace = true } ++webrender = { git = "https://gitlab.redox-os.org/njskalski/webrender.git", branch = "redox_mods", features = ["capture"] } ++webrender_api = { git = "https://gitlab.redox-os.org/njskalski/webrender.git", branch = "redox_mods" } + webxr-api = { workspace = true, optional = true } + + [target.'cfg(any(target_os = "android", target_env = "ohos"))'.dependencies] +@@ -128,7 +128,7 @@ webxr = { path = "../webxr", optional = true } + arboard = { workspace = true, optional = true } + webxr = { path = "../webxr", features = ["ipc", "glwindow", "headless"] } + +-[target.'cfg(all(not(target_os = "windows"), not(target_os = "ios"), not(target_os = "android"), not(target_env = "ohos"), not(target_arch = "arm"), not(target_arch = "aarch64")))'.dependencies] ++[target.'cfg(all(not(target_os = "windows"), not(target_os = "ios"), not(target_os = "android"), not(target_env = "ohos"), not(target_arch = "arm"), not(target_arch = "aarch64"), not(target_os = "redox")))'.dependencies] + gaol = "0.2.1" + + [target.'cfg(target_os = "windows")'.dependencies] +diff --git a/components/servo/lib.rs b/components/servo/lib.rs +index 37ce2019c7a..35e64e30c0d 100644 +--- a/components/servo/lib.rs ++++ b/components/servo/lib.rs +@@ -77,6 +77,7 @@ use fonts::SystemFontService; + not(target_arch = "arm"), + not(target_arch = "aarch64"), + not(target_env = "ohos"), ++ not(target_os = "redox"), + ))] + use gaol::sandbox::{ChildSandbox, ChildSandboxMethods}; + pub use gleam::gl; +@@ -1305,6 +1306,7 @@ pub fn run_content_process(token: String) { + not(target_arch = "arm"), + not(target_arch = "aarch64"), + not(target_env = "ohos"), ++ not(target_os = "redox"), + ))] + fn create_sandbox() { + ChildSandbox::new(content_process_sandbox_profile()) +@@ -1319,6 +1321,7 @@ fn create_sandbox() { + target_arch = "arm", + target_arch = "aarch64", + target_env = "ohos", ++ target_os = "redox", + ))] + fn create_sandbox() { + panic!("Sandboxing is not supported on Windows, iOS, ARM targets and android."); +diff --git a/components/shared/base/Cargo.toml b/components/shared/base/Cargo.toml +index b293fa0faf3..eead0fb12e3 100644 +--- a/components/shared/base/Cargo.toml ++++ b/components/shared/base/Cargo.toml +@@ -21,8 +21,7 @@ malloc_size_of_derive = { workspace = true } + parking_lot = { workspace = true } + serde = { workspace = true } + time = { workspace = true } +-webrender_api = { workspace = true } +- ++webrender_api = { git = "https://gitlab.redox-os.org/njskalski/webrender.git", branch = "redox_mods" } + [target.'cfg(any(target_os = "macos", target_os = "ios"))'.dependencies] + mach2 = { workspace = true } + +diff --git a/components/shared/canvas/Cargo.toml b/components/shared/canvas/Cargo.toml +index 36711c0f83a..474c7722812 100644 +--- a/components/shared/canvas/Cargo.toml ++++ b/components/shared/canvas/Cargo.toml +@@ -28,5 +28,5 @@ serde = { workspace = true } + servo_config = { path = "../../config" } + strum = { workspace = true } + stylo = { workspace = true } +-webrender_api = { workspace = true } ++webrender_api = { git = "https://gitlab.redox-os.org/njskalski/webrender.git", branch = "redox_mods" } + webxr-api = { workspace = true, features = ["ipc"] } +diff --git a/components/shared/compositing/Cargo.toml b/components/shared/compositing/Cargo.toml +index 11ac6223766..98fe1417013 100644 +--- a/components/shared/compositing/Cargo.toml ++++ b/components/shared/compositing/Cargo.toml +@@ -19,7 +19,7 @@ base = { workspace = true } + bincode = { workspace = true } + bitflags = { workspace = true } + crossbeam-channel = { workspace = true } +-dpi = { version = "0.1" } ++dpi = { workspace = true } + embedder_traits = { workspace = true } + euclid = { workspace = true } + gleam = { workspace = true } +@@ -38,4 +38,4 @@ strum_macros = { workspace = true } + stylo = { workspace = true } + stylo_traits = { workspace = true } + surfman = { workspace = true, features = ["sm-x11"] } +-webrender_api = { workspace = true } ++webrender_api = { git = "https://gitlab.redox-os.org/njskalski/webrender.git", branch = "redox_mods" } +diff --git a/components/shared/compositing/rendering_context.rs b/components/shared/compositing/rendering_context.rs +index 0596210430b..c85c84618ae 100644 +--- a/components/shared/compositing/rendering_context.rs ++++ b/components/shared/compositing/rendering_context.rs +@@ -105,7 +105,12 @@ impl Drop for SurfmanRenderingContext { + + impl SurfmanRenderingContext { + fn new(connection: &Connection, adapter: &Adapter) -> Result { ++ eprintln!(" SurfmanRenderingContext::new - Starting"); ++ eprintln!(" GL API: {:?}", connection.gl_api()); ++ ++ eprintln!(" Creating device..."); + let mut device = connection.create_device(adapter)?; ++ eprintln!(" Device created"); + + let flags = ContextAttributeFlags::ALPHA | + ContextAttributeFlags::DEPTH | +@@ -115,9 +120,16 @@ impl SurfmanRenderingContext { + GLApi::GLES => surfman::GLVersion { major: 3, minor: 0 }, + GLApi::GL => surfman::GLVersion { major: 3, minor: 2 }, + }; ++ eprintln!(" GL Version requested: {}.{}", version.major, version.minor); ++ ++ eprintln!(" Creating context descriptor..."); + let context_descriptor = + device.create_context_descriptor(&ContextAttributes { flags, version })?; ++ eprintln!(" Context descriptor created"); ++ ++ eprintln!(" Creating context..."); + let context = device.create_context(&context_descriptor, None)?; ++ eprintln!(" Context created"); + + #[allow(unsafe_code)] + let gleam_gl = { +@@ -392,20 +404,41 @@ impl WindowRenderingContext { + window_handle: WindowHandle, + size: PhysicalSize, + ) -> Result { ++ eprintln!("WindowRenderingContext::new - Starting creation"); ++ eprintln!(" Size: {}x{}", size.width, size.height); ++ ++ eprintln!(" Creating connection from display_handle..."); + let connection = Connection::from_display_handle(display_handle)?; ++ eprintln!(" Connection created successfully"); ++ ++ eprintln!(" Creating adapter..."); + let adapter = connection.create_adapter()?; ++ eprintln!(" Adapter created successfully"); ++ ++ eprintln!(" Creating SurfmanRenderingContext..."); + let surfman_context = SurfmanRenderingContext::new(&connection, &adapter)?; ++ eprintln!(" SurfmanRenderingContext created successfully"); + ++ eprintln!(" Creating native widget from window handle..."); + let native_widget = connection + .create_native_widget_from_window_handle( + window_handle, + Size2D::new(size.width as i32, size.height as i32), + ) + .expect("Failed to create native widget"); ++ eprintln!(" Native widget created successfully"); + ++ eprintln!(" Creating surface..."); + let surface = surfman_context.create_surface(SurfaceType::Widget { native_widget })?; ++ eprintln!(" Surface created successfully"); ++ ++ eprintln!(" Binding surface..."); + surfman_context.bind_surface(surface)?; ++ eprintln!(" Surface bound successfully"); ++ ++ eprintln!(" Making context current..."); + surfman_context.make_current()?; ++ eprintln!(" Context made current successfully"); + + Ok(Self { + size: Cell::new(size), +diff --git a/components/shared/constellation/Cargo.toml b/components/shared/constellation/Cargo.toml +index 7a1132ecd63..954c002d7f9 100644 +--- a/components/shared/constellation/Cargo.toml ++++ b/components/shared/constellation/Cargo.toml +@@ -37,5 +37,5 @@ strum_macros = { workspace = true } + stylo_traits = { workspace = true } + uuid = { workspace = true } + webgpu_traits = { workspace = true } +-webrender_api = { workspace = true } ++webrender_api = { git = "https://gitlab.redox-os.org/njskalski/webrender.git", branch = "redox_mods" } + wgpu-core = { workspace = true, optional = true } +diff --git a/components/shared/embedder/Cargo.toml b/components/shared/embedder/Cargo.toml +index 2ff427a4057..bc611d67da4 100644 +--- a/components/shared/embedder/Cargo.toml ++++ b/components/shared/embedder/Cargo.toml +@@ -38,5 +38,5 @@ stylo = { workspace = true } + url = { workspace = true } + uuid = { workspace = true } + webdriver = { workspace = true } +-webrender_api = { workspace = true } ++webrender_api = { git = "https://gitlab.redox-os.org/njskalski/webrender.git", branch = "redox_mods" } + servo_geometry = { path = "../../geometry" } +diff --git a/components/shared/layout/Cargo.toml b/components/shared/layout/Cargo.toml +index ae5d005d103..b24976e9da6 100644 +--- a/components/shared/layout/Cargo.toml ++++ b/components/shared/layout/Cargo.toml +@@ -41,4 +41,4 @@ servo_arc = { workspace = true } + servo_url = { path = "../../url" } + stylo_traits = { workspace = true } + stylo = { workspace = true } +-webrender_api = { workspace = true } ++webrender_api = { git = "https://gitlab.redox-os.org/njskalski/webrender.git", branch = "redox_mods" } +diff --git a/components/shared/net/Cargo.toml b/components/shared/net/Cargo.toml +index 044b2658c4e..0a36fc291ca 100644 +--- a/components/shared/net/Cargo.toml ++++ b/components/shared/net/Cargo.toml +@@ -41,7 +41,6 @@ servo_rand = { path = "../../rand" } + servo_url = { path = "../../url" } + url = { workspace = true } + uuid = { workspace = true } +-webrender_api = { workspace = true } +- ++webrender_api = { git = "https://gitlab.redox-os.org/njskalski/webrender.git", branch = "redox_mods" } + [dev-dependencies] + embedder_traits = { workspace = true, features = ["baked-default-resources"] } +diff --git a/components/shared/script/Cargo.toml b/components/shared/script/Cargo.toml +index 69438867cc0..e65648a60b5 100644 +--- a/components/shared/script/Cargo.toml ++++ b/components/shared/script/Cargo.toml +@@ -41,5 +41,5 @@ strum_macros = { workspace = true } + stylo_atoms = { workspace = true } + stylo_traits = { workspace = true } + webgpu_traits = { workspace = true, optional = true } +-webrender_api = { workspace = true } ++webrender_api = { git = "https://gitlab.redox-os.org/njskalski/webrender.git", branch = "redox_mods" } + webxr-api = { workspace = true, features = ["ipc"] } +diff --git a/components/shared/webgpu/Cargo.toml b/components/shared/webgpu/Cargo.toml +index 5fb042dfb78..d41af6398d7 100644 +--- a/components/shared/webgpu/Cargo.toml ++++ b/components/shared/webgpu/Cargo.toml +@@ -18,6 +18,6 @@ ipc-channel = { workspace = true } + malloc_size_of = { workspace = true } + pixels = { path = "../../pixels" } + serde = { workspace = true } +-webrender_api = { workspace = true } ++webrender_api = { git = "https://gitlab.redox-os.org/njskalski/webrender.git", branch = "redox_mods" } + wgpu-core = { workspace = true, features = ["serde", "wgsl"] } + wgpu-types = { workspace = true } +diff --git a/components/webgl/Cargo.toml b/components/webgl/Cargo.toml +index 46fe7381959..017cf68eba7 100644 +--- a/components/webgl/Cargo.toml ++++ b/components/webgl/Cargo.toml +@@ -30,7 +30,7 @@ itertools = { workspace = true } + log = { workspace = true } + pixels = { path = "../pixels" } + surfman = { workspace = true } +-webrender = { workspace = true } +-webrender_api = { workspace = true } ++webrender = { git = "https://gitlab.redox-os.org/njskalski/webrender.git", branch = "redox_mods", features = ["capture"] } ++webrender_api = { git = "https://gitlab.redox-os.org/njskalski/webrender.git", branch = "redox_mods" } + webxr = { path = "../webxr", features = ["ipc"], optional = true } + webxr-api = { workspace = true, features = ["ipc"], optional = true } +diff --git a/components/webgpu/Cargo.toml b/components/webgpu/Cargo.toml +index a2119f4c83c..308ab3772fb 100644 +--- a/components/webgpu/Cargo.toml ++++ b/components/webgpu/Cargo.toml +@@ -22,7 +22,7 @@ pixels = { path = "../pixels" } + serde = { workspace = true, features = ["serde_derive"] } + servo_config = { path = "../config" } + webgpu_traits = { workspace = true } +-webrender_api = { workspace = true } ++webrender_api = { git = "https://gitlab.redox-os.org/njskalski/webrender.git", branch = "redox_mods" } + wgpu-core = { workspace = true, features = ["serde", "wgsl"] } + wgpu-types = { workspace = true } + +diff --git a/ports/servoshell/Cargo.toml b/ports/servoshell/Cargo.toml +index 06304184929..fb77b7099b0 100644 +--- a/ports/servoshell/Cargo.toml ++++ b/ports/servoshell/Cargo.toml +@@ -37,7 +37,8 @@ ProductName = "Servo" + [features] + crown = ["libservo/crown"] + debugmozjs = ["libservo/debugmozjs"] +-default = ["max_log_level", "webgpu", "webxr"] ++# cutting , "webxr" for redox ++default = ["max_log_level", "webgpu"] + jitspew = ["libservo/jitspew"] + js_backtrace = ["libservo/js_backtrace"] + max_log_level = ["log/release_max_level_info"] +@@ -68,7 +69,8 @@ image = { workspace = true } + ipc-channel = { workspace = true } + keyboard-types = { workspace = true } + libc = { workspace = true } +-libservo = { path = "../../components/servo", features = ["background_hang_monitor", "bluetooth", "testbinding"] } ++# removed "background_hang_monitor", ++libservo = { path = "../../components/servo", features = [ "bluetooth", "testbinding"] } + log = { workspace = true } + mime_guess = { workspace = true } + raw-window-handle = { workspace = true } +@@ -108,13 +110,32 @@ nix = { workspace = true, features = ["fs"] } + serde_json = { workspace = true } + surfman = { workspace = true, features = ["sm-angle-default"] } + +-[target.'cfg(not(any(target_os = "android", target_env = "ohos")))'.dependencies] +-accesskit_winit = "0.27" ++# I removed the problematic dependencies from everywhere even though they should not be pulled for redox. The thing is that cargo is still complaining about them, even ++# though they should be ignored. ++[target.'cfg(not(any(target_os = "android", target_env = "ohos", target_os = "redox")))'.dependencies] ++# accesskit_winit = "0.27" + dirs = "6.0" +-egui = { version = "0.32.1", features = ["accesskit"] } ++# egui = { version = "0.32.1", features = ["accesskit"] } ++# egui-file-dialog = "0.11.0" ++# egui-winit = { version = "0.32.1", default-features = false, features = ["accesskit", "clipboard", "wayland"] } ++# egui_glow = { version = "0.32.1", features = ["winit"] } ++gilrs = "0.11.0" ++# glow = "0.16.0" ++headers = { workspace = true } ++net = { path = "../../components/net" } ++net_traits = { workspace = true } ++serde_json = { workspace = true } ++# For optional feature servo_allocator/use-system-allocator ++servo_allocator = { path = "../../components/allocator" } ++surfman = { workspace = true, features = ["sm-raw-window-handle-06", "sm-x11"] } ++winit = { workspace = true } ++ ++[target.'cfg(target_os = "redox")'.dependencies] ++dirs = "6.0" ++egui = { version = "0.32.1", default-features = false } + egui-file-dialog = "0.11.0" +-egui-winit = { version = "0.32.1", default-features = false, features = ["accesskit", "clipboard", "wayland"] } +-egui_glow = { version = "0.32.1", features = ["winit"] } ++egui-winit = { version = "0.32.1", default-features = false, features = ["clipboard"] } #<-here ++egui_glow = { version = "0.32.1", default-features = false, features = [] } + gilrs = "0.11.0" + glow = "0.16.0" + headers = { workspace = true } +diff --git a/ports/servoshell/desktop/app.rs b/ports/servoshell/desktop/app.rs +index 08c943b2829..61d20de8bc3 100644 +--- a/ports/servoshell/desktop/app.rs ++++ b/ports/servoshell/desktop/app.rs +@@ -766,18 +766,18 @@ impl ApplicationHandler for App { + } + + fn user_event(&mut self, event_loop: &ActiveEventLoop, event: AppEvent) { +- if let AppEvent::Accessibility(ref event) = event { +- let Some(ref mut minibrowser) = self.minibrowser else { +- return; +- }; +- if !minibrowser.handle_accesskit_event(&event.window_event) { +- return; +- } +- if let Some(window) = self.windows.get(&event.window_id) { +- window.winit_window().unwrap().request_redraw(); +- } +- return; +- } ++ // if let AppEvent::Accessibility(ref event) = event { ++ // let Some(ref mut minibrowser) = self.minibrowser else { ++ // return; ++ // }; ++ // if !minibrowser.handle_accesskit_event(&event.window_event) { ++ // return; ++ // } ++ // if let Some(window) = self.windows.get(&event.window_id) { ++ // window.winit_window().unwrap().request_redraw(); ++ // } ++ // return; ++ // } + + let now = Instant::now(); + let event = winit::event::Event::UserEvent(event); +diff --git a/ports/servoshell/desktop/egui_glue.rs b/ports/servoshell/desktop/egui_glue.rs +index 797ea3c5a91..d658563edc1 100644 +--- a/ports/servoshell/desktop/egui_glue.rs ++++ b/ports/servoshell/desktop/egui_glue.rs +@@ -81,7 +81,7 @@ impl EguiGlow { + None, + ); + let window = window.winit_window().unwrap(); +- egui_winit.init_accesskit(event_loop, window, event_loop_proxy); ++ // egui_winit.init_accesskit(event_loop, window, event_loop_proxy); + window.set_visible(true); + Self { + egui_winit, +diff --git a/ports/servoshell/desktop/events_loop.rs b/ports/servoshell/desktop/events_loop.rs +index 4137001e4eb..b24757b9ad2 100644 +--- a/ports/servoshell/desktop/events_loop.rs ++++ b/ports/servoshell/desktop/events_loop.rs +@@ -22,14 +22,14 @@ pub type EventLoopProxy = winit::event_loop::EventLoopProxy; + pub enum AppEvent { + /// Another process or thread has kicked the OS event loop with EventLoopWaker. + Waker, +- Accessibility(accesskit_winit::Event), ++ // Accessibility(accesskit_winit::Event), + } + +-impl From for AppEvent { +- fn from(event: accesskit_winit::Event) -> AppEvent { +- AppEvent::Accessibility(event) +- } +-} ++// impl From for AppEvent { ++// fn from(event: accesskit_winit::Event) -> AppEvent { ++// AppEvent::Accessibility(event) ++// } ++// } + + /// The real or fake OS event loop. + #[allow(dead_code)] +diff --git a/ports/servoshell/desktop/headed_window.rs b/ports/servoshell/desktop/headed_window.rs +index eef657f2062..7054a201792 100644 +--- a/ports/servoshell/desktop/headed_window.rs ++++ b/ports/servoshell/desktop/headed_window.rs +@@ -144,10 +144,24 @@ impl Window { + let window_handle = winit_window + .window_handle() + .expect("could not get window handle from window"); +- let window_rendering_context = Rc::new( +- WindowRenderingContext::new(display_handle, window_handle, inner_size) +- .expect("Could not create RenderingContext for Window"), +- ); ++ ++ eprintln!("headed_window: Creating WindowRenderingContext..."); ++ eprintln!(" DISPLAY env var: {:?}", std::env::var("DISPLAY")); ++ eprintln!(" Display handle obtained: {:?}", display_handle); ++ eprintln!(" Window handle obtained: {:?}", window_handle); ++ eprintln!(" Inner size: {}x{}", inner_size.width, inner_size.height); ++ ++ let window_rendering_context = match WindowRenderingContext::new(display_handle, window_handle, inner_size) { ++ Ok(context) => { ++ eprintln!(" WindowRenderingContext created successfully!"); ++ Rc::new(context) ++ }, ++ Err(e) => { ++ eprintln!(" Failed to create WindowRenderingContext!"); ++ eprintln!(" Error: {:?}", e); ++ panic!("Could not create RenderingContext for Window: {:?}", e); ++ } ++ }; + + // Setup for GL accelerated media handling. This is only active on certain Linux platforms + // and Windows. +diff --git a/ports/servoshell/desktop/headless_window.rs b/ports/servoshell/desktop/headless_window.rs +index e17e09a5218..24beb102919 100644 +--- a/ports/servoshell/desktop/headless_window.rs ++++ b/ports/servoshell/desktop/headless_window.rs +@@ -179,7 +179,7 @@ impl WindowPortsMethods for Window { + // notification (such as from the display manager) that it has changed size, so we + // must notify the compositor here. + webview.move_resize(self.screen_size.to_f32().into()); +- webview.resize(PhysicalSize::new( ++ webview.resize(PhysicalSize::::new( + self.screen_size.width as u32, + self.screen_size.height as u32, + )); +diff --git a/ports/servoshell/desktop/minibrowser.rs b/ports/servoshell/desktop/minibrowser.rs +index 460e639c15b..3146f73d213 100644 +--- a/ports/servoshell/desktop/minibrowser.rs ++++ b/ports/servoshell/desktop/minibrowser.rs +@@ -522,23 +522,23 @@ impl Minibrowser { + self.update_status_text(state) + } + +- /// Returns true if a redraw is required after handling the provided event. +- pub(crate) fn handle_accesskit_event(&mut self, event: &accesskit_winit::WindowEvent) -> bool { +- match event { +- accesskit_winit::WindowEvent::InitialTreeRequested => { +- self.context.egui_ctx.enable_accesskit(); +- true +- }, +- accesskit_winit::WindowEvent::ActionRequested(req) => { +- self.context +- .egui_winit +- .on_accesskit_action_request(req.clone()); +- true +- }, +- accesskit_winit::WindowEvent::AccessibilityDeactivated => { +- self.context.egui_ctx.disable_accesskit(); +- false +- }, +- } +- } ++ // Returns true if a redraw is required after handling the provided event. ++ // pub(crate) fn handle_accesskit_event(&mut self, event: &accesskit_winit::WindowEvent) -> bool { ++ // match event { ++ // accesskit_winit::WindowEvent::InitialTreeRequested => { ++ // self.context.egui_ctx.enable_accesskit(); ++ // true ++ // }, ++ // accesskit_winit::WindowEvent::ActionRequested(req) => { ++ // self.context ++ // .egui_winit ++ // .on_accesskit_action_request(req.clone()); ++ // true ++ // }, ++ // accesskit_winit::WindowEvent::AccessibilityDeactivated => { ++ // self.context.egui_ctx.disable_accesskit(); ++ // false ++ // }, ++ // } ++ // } + } +diff --git a/ports/servoshell/desktop/tracing.rs b/ports/servoshell/desktop/tracing.rs +index b1f0b1d742e..046b016a2e2 100644 +--- a/ports/servoshell/desktop/tracing.rs ++++ b/ports/servoshell/desktop/tracing.rs +@@ -52,7 +52,7 @@ mod from_winit { + Self::WindowEvent { event, .. } => event.log_target(), + Self::DeviceEvent { .. } => target!("DeviceEvent"), + Self::UserEvent(AppEvent::Waker) => target!("UserEvent(Waker)"), +- Self::UserEvent(AppEvent::Accessibility(..)) => target!("UserEvent(Accessibility)"), ++ // Self::UserEvent(AppEvent::Accessibility(..)) => target!("UserEvent(Accessibility)"), + Self::Suspended => target!("Suspended"), + Self::Resumed => target!("Resumed"), + Self::AboutToWait => target!("AboutToWait"), +diff --git a/rust-toolchain.toml b/rust-toolchain.toml +deleted file mode 100644 +index 09d8bc760c6..00000000000 +--- a/rust-toolchain.toml ++++ /dev/null +@@ -1,17 +0,0 @@ +-[toolchain] +-# Be sure to update the 'rust-overlay' module's url in shell.nix to point to a +-# commit which supports the required rustc version and also update the version +-# in support/crown/rust-toolchain.toml when bumping this! +-channel = "1.85.0" +- +-components = [ +- "clippy", +- # For support/crown +- "llvm-tools", +- # For support/crown +- "rustc-dev", +- "rustfmt", +- "rustc-dev", +- # For rust-analyzer +- "rust-src", +-] diff --git a/recipes/wip/x11/libxkbcommon-x11/recipe.toml b/recipes/wip/x11/libxkbcommon-x11/recipe.toml new file mode 100644 index 000000000..4e33e5d2c --- /dev/null +++ b/recipes/wip/x11/libxkbcommon-x11/recipe.toml @@ -0,0 +1,24 @@ +# TODO: Conflict with libxkbcommon-x11 +[source] +tar = "https://xkbcommon.org/download/libxkbcommon-1.7.0.tar.xz" +b3sum = "5001ca0b8562feeef2010bf16c05657e3875fda3ed5fdedbf48b9135e5cdfcbc" +patches = [ "redox.patch" ] + +[build] +template = "custom" +dependencies = [ + "libxml2", + "xz", + "zlib", + "libpthread-stubs", + "libxau", + "x11proto", + "xcb-proto", + "libxcb", +] +script = """ +DYNAMIC_INIT +cookbook_meson \ + -Denable-wayland=false \ + -Denable-x11=true +""" diff --git a/recipes/wip/x11/libxkbcommon-x11/redox.patch b/recipes/wip/x11/libxkbcommon-x11/redox.patch new file mode 100644 index 000000000..f942f22f6 --- /dev/null +++ b/recipes/wip/x11/libxkbcommon-x11/redox.patch @@ -0,0 +1,33 @@ +diff -ruwN source/meson.build source-new/meson.build +--- source/meson.build 2024-03-24 04:23:43.000000000 +0700 ++++ source-new/meson.build 2025-09-30 17:40:34.433925985 +0700 +@@ -637,8 +637,6 @@ + libxkbcommon_x11_test_internal = static_library( + 'xkbcommon-x11-internal', + libxkbcommon_x11_sources, +- 'test/xvfb-wrapper.c', +- 'test/xvfb-wrapper.h', + include_directories: include_directories('src', 'include'), + link_with: libxkbcommon_test_internal, + dependencies: [ +@@ -768,20 +766,6 @@ + dependencies: test_dep), + env: test_env, + ) +-if get_option('enable-x11') +- test( +- 'x11', +- executable('test-x11', 'test/x11.c', dependencies: x11_test_dep), +- env: test_env, +- is_parallel : false, +- ) +- test( +- 'x11comp', +- executable('test-x11comp', 'test/x11comp.c', dependencies: x11_test_dep), +- env: test_env, +- is_parallel : false, +- ) +-endif + if get_option('enable-xkbregistry') + test( + 'registry',