mirror of
https://github.com/servo/servo
synced 2026-04-25 17:15:48 +02:00
When reporting an exception attempt to extract `ErrorInfo` from the stack of the exception. Testing: Covered by existing tests, expectations updated. Signed-off-by: Gae24 <96017547+Gae24@users.noreply.github.com>
405 lines
18 KiB
TOML
405 lines
18 KiB
TOML
[workspace]
|
|
resolver = "2"
|
|
members = [
|
|
"components/media/examples",
|
|
"components/xpath",
|
|
"ports/servoshell",
|
|
"tests/unit/*",
|
|
]
|
|
default-members = ["ports/servoshell"]
|
|
exclude = [".cargo", "support/crown"]
|
|
|
|
[workspace.package]
|
|
version = "0.1.0"
|
|
authors = ["The Servo Project Developers"]
|
|
repository = "https://github.com/servo/servo"
|
|
# A generic description for packages that don't have a meaningful description yet.
|
|
description = "A component of the servo web-engine."
|
|
license = "MPL-2.0"
|
|
edition = "2024"
|
|
publish = false
|
|
# We have yet to decide on a policy for updating the minimum supported Rust version.
|
|
# Before increasing this, please open a discussion on Zulip explaining the reason
|
|
# why we should consider increasing our minimum supported Rust version.
|
|
# Please also note, that the **default** Rust version in rust-toolchain.toml may be
|
|
# bumped freely.
|
|
# Skip 1.90 which causes mis-compilation: https://github.com/rust-lang/rust/issues/147265
|
|
rust-version = "1.86.0"
|
|
|
|
[workspace.dependencies]
|
|
accesskit = { version = "0.24.0", features = ["serde"] }
|
|
accountable-refcell = "0.2.2"
|
|
aes = "0.8.4"
|
|
aes-gcm = "0.10.3"
|
|
aes-kw = { version = "0.2.1", features = ["alloc"] }
|
|
app_units = "0.7"
|
|
arboard = "3"
|
|
argon2 = { version = "0.5", features = ["alloc"] }
|
|
arrayvec = "0.7"
|
|
async-tungstenite = { version = "0.34", features = ["tokio-rustls-webpki-roots"] }
|
|
atomic_refcell = "0.1.14"
|
|
aws-lc-rs = { version = "1.16", default-features = false, features = ["aws-lc-sys"] }
|
|
backtrace = "0.3"
|
|
base64 = "0.22.1"
|
|
base64ct = { version = "1.8", features = ["alloc"] }
|
|
bitflags = "2.11"
|
|
brotli = "8.0.2"
|
|
bytemuck = "1"
|
|
byteorder = "1.5"
|
|
bytes = "1.0"
|
|
byte-slice-cast = "1.2.3"
|
|
cbc = "0.1.2"
|
|
cfg-if = "1.0.4"
|
|
chacha20poly1305 = "0.10"
|
|
chardetng = "0.1"
|
|
chrono = { version = "0.4", features = ["serde"] }
|
|
cipher = { version = "0.4.4", features = ["alloc"] }
|
|
content-security-policy = { version = "0.8.0", features = ["serde"] }
|
|
cookie = { package = "cookie", version = "0.18" }
|
|
crossbeam-channel = "0.5"
|
|
cssparser = { version = "0.36", features = ["serde"] }
|
|
ctr = "0.9.2"
|
|
data-url = "0.3"
|
|
der = { version = "0.7", features = ["alloc", "derive"] }
|
|
digest = "0.10"
|
|
dpi = "0.1"
|
|
dwrote = "0.11.5"
|
|
ecdsa = "0.16"
|
|
elliptic-curve = "0.13"
|
|
encoding_rs = { version = "0.8", features = ["serde"] }
|
|
env_logger = "0.11"
|
|
euclid = "0.22"
|
|
flate2 = "1.1"
|
|
freetype-sys = "0.20"
|
|
futures = { version = "0.3", default-features = false }
|
|
futures-core = { version = "0.3", default-features = false }
|
|
futures-util = { version = "0.3", default-features = false }
|
|
gleam = "0.15"
|
|
glib = "0.22"
|
|
glib-sys = "0.22"
|
|
glow = "0.17.0"
|
|
gstreamer = { version = "0.25", features = ["v1_18"] }
|
|
gstreamer-app = "0.25"
|
|
gstreamer-audio = "0.25"
|
|
gstreamer-base = "0.25"
|
|
gstreamer-gl = "0.25"
|
|
gstreamer-gl-egl = "0.25"
|
|
gstreamer-gl-sys = "0.25"
|
|
gstreamer-gl-wayland = "0.25"
|
|
gstreamer-gl-x11 = "0.25"
|
|
gstreamer-play = "0.25"
|
|
gstreamer-sdp = "0.25"
|
|
gstreamer-sys = "0.25"
|
|
gstreamer-video = "0.25"
|
|
gstreamer-webrtc = { version = "0.25", features = ["v1_18"] }
|
|
harfbuzz-sys = "0.6.1"
|
|
headers = "0.4"
|
|
hitrace = { version = "0.1.6", features = ["api-19", "tracing-rs"] }
|
|
hkdf = "0.12"
|
|
html5ever = "0.39"
|
|
http = "1.4"
|
|
http-body-util = "0.1"
|
|
hyper = "1.9"
|
|
hyper-rustls = { version = "0.27", default-features = false, features = ["http1", "http2", "logging", "tls12", "webpki-tokio"] }
|
|
hyper-util = { version = "0.1", features = ["client-legacy", "http2", "tokio", "client-proxy"] }
|
|
icu_locid = "1.5.0"
|
|
icu_properties = "1.5.0"
|
|
icu_segmenter = "1.5.0"
|
|
image = { version = "0.25", default-features = false, features = ["avif", "rayon", "bmp", "gif", "ico", "jpeg", "png", "webp"] }
|
|
imsz = "0.4"
|
|
indexmap = { version = "2.14.0", features = ["std"] }
|
|
inventory = { version = "0.3.24" }
|
|
ipc-channel = "0.21"
|
|
itertools = "0.14"
|
|
js = { package = "mozjs", version = "=0.15.11", default-features = false, features = ["libz-sys", "intl"] }
|
|
keyboard-types = { version = "0.8.3", features = ["serde", "webdriver"] }
|
|
kurbo = { version = "0.12", features = ["euclid"] }
|
|
libc = "0.2"
|
|
lru = "0.17"
|
|
log = "0.4.29"
|
|
mach2 = "0.6"
|
|
malloc_size_of_derive = "0.1"
|
|
markup5ever = "0.39"
|
|
memmap2 = "0.9.10"
|
|
mime = "0.3.13"
|
|
mime-multipart-hyper1 = "0.10.0"
|
|
mime_guess = "2.0.5"
|
|
ml-dsa = "0.0.4"
|
|
ml-kem = { version = "0.2", features = ["deterministic"] }
|
|
mozangle = "0.5.5"
|
|
nix = "0.30"
|
|
nom = "8.0.0"
|
|
nom-rfc8288 = "0.4.0"
|
|
num-bigint-dig = "0.8"
|
|
num-complex = "0.4.6"
|
|
num-derive = "0.4.2"
|
|
num-traits = "0.2"
|
|
num_cpus = "1.17.0"
|
|
objc2 = "0.6.4"
|
|
objc2-core-foundation = "0.3.2"
|
|
objc2-core-graphics = "0.3.2"
|
|
objc2-core-text = "0.3.2"
|
|
ocb3 = "0.1.0"
|
|
openxr = "0.20"
|
|
p256 = { version = "0.13", features = ["ecdh"] }
|
|
p384 = { version = "0.13", features = ["ecdh"] }
|
|
p521 = { version = "0.13", features = ["ecdh"] }
|
|
parking_lot = { version = "0.12", features = ["serde"] }
|
|
peniko = "0.5"
|
|
percent-encoding = "2.3"
|
|
pkcs8 = { version = "0.10", features = ["rand_core"] }
|
|
postcard = { version = "1.1.3", default-features = false, features = ["use-std"] }
|
|
proc-macro2 = "1"
|
|
quote = "1"
|
|
rand = "0.9"
|
|
rangemap = "1.7.1"
|
|
raw-window-handle = "0.6"
|
|
rayon = "1"
|
|
read-fonts = "0.35.0"
|
|
regex = "1.12"
|
|
resvg = "0.45.0"
|
|
rsa = { version = "0.9.10", features = ["sha1", "sha2"] }
|
|
rustc-hash = "2.1.2"
|
|
rustls = { version = "0.23", default-features = false, features = ["logging", "std", "tls12"] }
|
|
rustls-pki-types = "1.14"
|
|
rustls-platform-verifier = "0.7.0"
|
|
sea-query = { version = "=1.0.0-rc.31", default-features = false, features = ["backend-sqlite", "derive"] }
|
|
sea-query-rusqlite = { version = "=0.8.0-rc.15" }
|
|
sec1 = "0.7"
|
|
selectors = { git = "https://github.com/servo/stylo", rev = "a556f4cbd15fc289039261661b049a5dc845cd80" }
|
|
serde = "1.0.228"
|
|
serde_bytes = "0.11"
|
|
serde_core = "1.0.226"
|
|
serde_json = "1.0"
|
|
servo_arc = { git = "https://github.com/servo/stylo", rev = "a556f4cbd15fc289039261661b049a5dc845cd80" }
|
|
sha1 = "0.10"
|
|
sha2 = "0.10"
|
|
sha3 = "0.10"
|
|
speexdsp-resampler = "0.1.0"
|
|
skrifa = "0.37.0"
|
|
smallvec = { version = "1.15", features = ["serde", "union"] }
|
|
string_cache = "0.9"
|
|
strum = { version = "0.28", features = ["derive"] }
|
|
stylo = { git = "https://github.com/servo/stylo", rev = "a556f4cbd15fc289039261661b049a5dc845cd80" }
|
|
stylo_atoms = { git = "https://github.com/servo/stylo", rev = "a556f4cbd15fc289039261661b049a5dc845cd80" }
|
|
stylo_dom = { git = "https://github.com/servo/stylo", rev = "a556f4cbd15fc289039261661b049a5dc845cd80" }
|
|
stylo_malloc_size_of = { git = "https://github.com/servo/stylo", rev = "a556f4cbd15fc289039261661b049a5dc845cd80" }
|
|
stylo_static_prefs = { git = "https://github.com/servo/stylo", rev = "a556f4cbd15fc289039261661b049a5dc845cd80" }
|
|
stylo_traits = { git = "https://github.com/servo/stylo", rev = "a556f4cbd15fc289039261661b049a5dc845cd80" }
|
|
surfman = { version = "0.12.0", features = ["chains"] }
|
|
syn = { version = "2", default-features = false, features = ["clone-impls", "derive", "parsing"] }
|
|
synstructure = "0.13"
|
|
taffy = { version = "0.10.1", default-features = false, features = ["calc", "detailed_layout_info", "grid", "std"] }
|
|
tendril = { version = "0.5", features = ["encoding_rs"] }
|
|
tikv-jemalloc-sys = "0.6.1"
|
|
tikv-jemallocator = "0.6.1"
|
|
time = { package = "time", version = "0.3", features = ["large-dates", "local-offset", "serde"] }
|
|
tokio = "1"
|
|
tokio-rustls = { version = "0.26", default-features = false, features = ["logging"] }
|
|
tokio-stream = "0.1"
|
|
tokio-util = { version = "0.7.18", default-features = false }
|
|
tower = { version = "0.5", default-features = false, features = ["util"] }
|
|
tracing = "0.1.44"
|
|
tracing-perfetto = "0.1.5"
|
|
tracing-subscriber = "0.3.23"
|
|
tungstenite = "0.29"
|
|
unicode-bidi = "0.3.18"
|
|
unicode_categories = "0.1.1"
|
|
unicode-properties = { version = "0.1.4", features = ["emoji"] }
|
|
unicode-script = "0.5"
|
|
unicode-segmentation = "1.13.2"
|
|
url = "2.5"
|
|
urlpattern = "0.3"
|
|
utf-8 = "0.7"
|
|
uuid = { version = "1.23.1", features = ["v4", "v5"] }
|
|
vello = "0.6"
|
|
vello_cpu = "0.0.4"
|
|
webdriver = { version = "0.53.0", default-features = false }
|
|
webpki-roots = "1.0"
|
|
webrender = { version = "0.68", features = ["capture"] }
|
|
webrender_api = "0.68"
|
|
web_atoms = "0.2"
|
|
wgpu-core = "26"
|
|
wgpu-types = "26"
|
|
winapi = "0.3"
|
|
windows-sys = "0.61"
|
|
winit = "0.30.13"
|
|
wio = "0.2"
|
|
wr_malloc_size_of = "0.2.2"
|
|
x25519-dalek = { version = "2.0.1", features = ["static_secrets"] }
|
|
xml5ever = "0.39"
|
|
yuv = { version = "0.8.13", features = ["rayon"] }
|
|
|
|
############################################################################################
|
|
## Workspace-local dependencies
|
|
############################################################################################
|
|
# All local path dependencies in the servo workspace, that use the workspace version, should
|
|
# be listed here, between the `Begin` and `End` comments, so that we can easily find and
|
|
# update the version requirements when bumping the workspace version.
|
|
# Begin workspace-version dependencies - Don't change this comment, we grep for it in scripts!
|
|
deny_public_fields = { package = "servo-deny-public-fields", version = "0.1.0", path = "components/deny_public_fields" }
|
|
devtools = { package = "servo-devtools", version = "0.1.0", path = "components/devtools" }
|
|
devtools_traits = { package = "servo-devtools-traits", version = "0.1.0", path = "components/shared/devtools" }
|
|
dom_struct = { package = "servo-dom-struct", version = "0.1.0", path = "components/dom_struct" }
|
|
embedder_traits = { package = "servo-embedder-traits", version = "0.1.0", path = "components/shared/embedder" }
|
|
fonts = { package = "servo-fonts", version = "0.1.0", path = "components/fonts" }
|
|
fonts_traits = { package = "servo-fonts-traits", version = "0.1.0", path = "components/shared/fonts" }
|
|
hyper_serde = { package = "servo-hyper-serde", version = "0.1.0", path = "components/hyper_serde" }
|
|
jstraceable_derive = { package = "servo-jstraceable-derive", version = "0.1.0", path = "components/jstraceable_derive" }
|
|
layout = { package = "servo-layout", version = "0.1.0", path = "components/layout" }
|
|
layout_api = { package = "servo-layout-api", version = "0.1.0", path = "components/shared/layout" }
|
|
malloc_size_of = { package = "servo-malloc-size-of", version = "0.1.0", path = "components/malloc_size_of" }
|
|
media = { package = "servo-media-thread", version = "0.1.0", path = "components/media/media-thread" }
|
|
metrics = { package = "servo-metrics", version = "0.1.0", path = "components/metrics" }
|
|
net = { package = "servo-net", version = "0.1.0", path = "components/net" }
|
|
net_traits = { package = "servo-net-traits", version = "0.1.0", path = "components/shared/net" }
|
|
paint = { package = "servo-paint", version = "0.1.0", path = "components/paint" }
|
|
paint_api = { package = "servo-paint-api", version = "0.1.0", path = "components/shared/paint" }
|
|
pixels = { package = "servo-pixels", version = "0.1.0", path = "components/pixels" }
|
|
profile = { package = "servo-profile", version = "0.1.0", path = "components/profile" }
|
|
profile_traits = { package = "servo-profile-traits", version = "0.1.0", path = "components/shared/profile" }
|
|
script = { package = "servo-script", version = "0.1.0", path = "components/script" }
|
|
script_bindings = { package = "servo-script-bindings", version = "0.1.0", path = "components/script_bindings" }
|
|
script_traits = { package = "servo-script-traits", version = "0.1.0", path = "components/shared/script" }
|
|
servo = { version = "0.1.0", path = "components/servo", default-features = false }
|
|
servo-allocator = { version = "0.1.0", path = "components/allocator" }
|
|
servo-background-hang-monitor = { version = "0.1.0", path = "components/background_hang_monitor" }
|
|
servo-background-hang-monitor-api = { version = "0.1.0", path = "components/shared/background_hang_monitor" }
|
|
servo-base = { version = "0.1.0", path = "components/shared/base" }
|
|
servo-bluetooth = { version = "0.1.0", path = "components/bluetooth" }
|
|
servo-bluetooth-traits = { version = "0.1.0", path = "components/shared/bluetooth" }
|
|
servo-canvas = { version = "0.1.0", path = "components/canvas" }
|
|
servo-canvas-traits = { version = "0.1.0", path = "components/shared/canvas" }
|
|
servo-config = { version = "0.1.0", path = "components/config" }
|
|
servo-config-macro = { version = "0.1.0", path = "components/config/macro" }
|
|
servo-constellation = { version = "0.1.0", path = "components/constellation" }
|
|
servo-constellation-traits = { version = "0.1.0", path = "components/shared/constellation" }
|
|
servo-default-resources = { version = "0.1.0", path = "components/default-resources" }
|
|
servo-geometry = { version = "0.1.0", path = "components/geometry" }
|
|
servo-media = { version = "0.1.0", path = "components/media/servo-media" }
|
|
servo-media-audio = { version = "0.1.0", path = "components/media/audio" }
|
|
servo-media-auto = { version = "0.1.0", path = "components/media/backends/auto" }
|
|
servo-media-derive = { version = "0.1.0", path = "components/media/servo-media-derive" }
|
|
servo-media-dummy = { version = "0.1.0", path = "components/media/backends/dummy" }
|
|
servo-media-gstreamer = { version = "0.1.0", path = "components/media/backends/gstreamer" }
|
|
servo-media-gstreamer-render = { version = "0.1.0", path = "components/media/backends/gstreamer/render" }
|
|
servo-media-gstreamer-render-android = { version = "0.1.0", path = "components/media/backends/gstreamer/render-android" }
|
|
servo-media-gstreamer-render-unix = { version = "0.1.0", path = "components/media/backends/gstreamer/render-unix" }
|
|
servo-media-ohos = { version = "0.1.0", path = "components/media/backends/ohos" }
|
|
servo-media-player = { version = "0.1.0", path = "components/media/player" }
|
|
servo-media-streams = { version = "0.1.0", path = "components/media/streams" }
|
|
servo-media-traits = { version = "0.1.0", path = "components/media/traits" }
|
|
servo-media-webrtc = { version = "0.1.0", path = "components/media/webrtc" }
|
|
servo-tracing = { version = "0.1.0", path = "components/servo_tracing" }
|
|
servo-url = { version = "0.1.0", path = "components/url" }
|
|
servo-wakelock = { version = "0.1.0", path = "components/wakelock" }
|
|
storage = { package = "servo-storage", version = "0.1.0", path = "components/storage" }
|
|
storage_traits = { package = "servo-storage-traits", version = "0.1.0", path = "components/shared/storage" }
|
|
timers = { package = "servo-timers", version = "0.1.0", path = "components/timers" }
|
|
webdriver_server = { package = "servo-webdriver-server", version = "0.1.0", path = "components/webdriver_server" }
|
|
webgl = { package = "servo-webgl", version = "0.1.0", path = "components/webgl", default-features = false }
|
|
webgpu = { package = "servo-webgpu", version = "0.1.0", path = "components/webgpu" }
|
|
webgpu_traits = { package = "servo-webgpu-traits", version = "0.1.0", path = "components/shared/webgpu" }
|
|
webxr = { package = "servo-webxr", version = "0.1.0", path = "components/webxr" }
|
|
webxr-api = { package = "servo-webxr-api", version = "0.1.0", path = "components/shared/webxr" }
|
|
xpath = { package = "servo-xpath", version = "0.1.0", path = "components/xpath" }
|
|
# End workspace-version dependencies - Don't change this comment, we grep for it in scripts!
|
|
|
|
# RSA key generation could be very slow without compilation
|
|
# optimizations, in development mode. Without optimizations, WPT might
|
|
# consider RSA key generation tests fail due to timeout.
|
|
# Building with higher optimization levels can speed up the key
|
|
# generation process to avoid false negative result in those tests.
|
|
# More details: <https://docs.rs/rsa/0.9.8/rsa/index.html#example>
|
|
[profile.dev.package.num-bigint-dig]
|
|
opt-level = 3
|
|
|
|
# Force tikv-jemalloc-sys to build with at least -O1.
|
|
# This can help with build environments that force _FORTIFY_SOURCE, such as Nix.
|
|
# More details: <https://github.com/tikv/jemallocator/issues/108>
|
|
[profile.dev.package.tikv-jemalloc-sys]
|
|
opt-level = 1
|
|
|
|
[profile.release]
|
|
opt-level = 3
|
|
debug-assertions = true
|
|
|
|
# Disk-space is limited in CI, so we disabled features that are not needed for code coverage.
|
|
# Locally using the default `dev` profile is perfectly fine.
|
|
[profile.coverage]
|
|
inherits = "dev"
|
|
incremental = false
|
|
debug = false
|
|
|
|
# A profile between `dev` and `release` which aims to offer a compromise between
|
|
# fast incremental rebuilds and runtime speed.
|
|
[profile.medium]
|
|
inherits = "release"
|
|
opt-level = 2
|
|
incremental = true
|
|
debug = "line-tables-only"
|
|
|
|
[profile.production]
|
|
inherits = "release"
|
|
debug-assertions = false
|
|
lto = true
|
|
codegen-units = 1
|
|
opt-level = "s"
|
|
|
|
[profile.production-stripped]
|
|
inherits = "production"
|
|
strip = true
|
|
|
|
[profile.profiling]
|
|
inherits = "release"
|
|
debug-assertions = false
|
|
debug = true
|
|
lto = "thin"
|
|
codegen-units = 1
|
|
|
|
[patch.crates-io]
|
|
# If you need to temporarily test Servo with a local fork of some upstream
|
|
# crate, add that here. Use the form:
|
|
#
|
|
# <crate> = { path = "/path/to/local/checkout" }
|
|
#
|
|
# For html5ever:
|
|
#
|
|
# html5ever = { path = "../html5ever/html5ever" }
|
|
# markup5ever = { path = "../html5ever/markup5ever" }
|
|
# web_atoms = { path = "../html5ever/web_atoms" }
|
|
# xml5ever = { path = "../html5ever/xml5ever" }
|
|
# tendril = { path = "../html5ever/tendril" }
|
|
#
|
|
# For WebRender:
|
|
#
|
|
# webrender = { path = "../webrender/webrender" }
|
|
# webrender_api = { path = "../webrender/webrender_api" }
|
|
# wr_malloc_size_of = { path = "../webrender/wr_malloc_size_of" }
|
|
#
|
|
# Or for mozjs:
|
|
#
|
|
# mozjs = { path = "../mozjs/mozjs" }
|
|
# mozjs_sys = { path = "../mozjs/mozjs-sys" }
|
|
#
|
|
# Or for CSP crate:
|
|
# content-security-policy = { path = "../rust-content-security-policy" }
|
|
#
|
|
# Or for Stylo:
|
|
#
|
|
# [patch."https://github.com/servo/stylo"]
|
|
# selectors = { path = "../stylo/selectors" }
|
|
# servo_arc = { path = "../stylo/servo_arc" }
|
|
# stylo = { path = "../stylo/style" }
|
|
# stylo_atoms = { path = "../stylo/stylo_atoms" }
|
|
# stylo_dom = { path = "../stylo/stylo_dom" }
|
|
# stylo_malloc_size_of = { path = "../stylo/malloc_size_of" }
|
|
# stylo_static_prefs = { path = "../stylo/stylo_static_prefs" }
|
|
# stylo_traits = { path = "../stylo/style_traits" }
|
|
#
|
|
# Or for another Git dependency:
|
|
#
|
|
# [patch."https://github.com/servo/<repository>"]
|
|
# <crate> = { path = "/path/to/local/checkout" }
|
|
#
|