Repository navigation
Expand file tree
/
Copy pathCargo.toml
More file actions
59 lines (53 loc) · 3.15 KB
/
Copy pathCargo.toml
File metadata and controls
59 lines (53 loc) · 3.15 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
[package]
name = "browser"
version = "0.2.2"
edition = "2021"
[lib]
crate-type = ["cdylib", "rlib"]
[dependencies]
# The extension ABI wrapper — the ONLY RustCFML dependency.
rustcfml-module = { path = "../RustCFML/crates/rustcfml-module" }
# Obscura, from our fork, pinned to a tag. The render and CSSOM fixes this
# needs are still open upstream, and building against stock obscura gives you a
# broken flex layout, so the fork carries upstream plus those fixes rather than
# this repo waiting on a merge. No sibling checkout is required any more.
obscura-dom = { git = "https://github.com/alexskinner/obscura.git", tag = "v0.2.5-ri.1" }
obscura-net = { git = "https://github.com/alexskinner/obscura.git", tag = "v0.2.5-ri.1" }
obscura-js = { git = "https://github.com/alexskinner/obscura.git", tag = "v0.2.5-ri.1" }
obscura-browser = { git = "https://github.com/alexskinner/obscura.git", tag = "v0.2.5-ri.1", features = ["render"] }
obscura-render = { git = "https://github.com/alexskinner/obscura.git", tag = "v0.2.5-ri.1", features = ["paint"] }
# "render" is not optional in practice: without it the CDP server answers
# Page.captureScreenshot, Page.printToPDF and the whole screencast domain with
# "requires a build with the render feature". An agent connecting to us would
# find it could drive the page but never see it.
obscura-cdp = { git = "https://github.com/alexskinner/obscura.git", tag = "v0.2.5-ri.1", features = ["render"] }
tokio = { version = "1", features = ["rt", "sync", "time", "macros"] }
serde_json = "1"
# PNG decode only, for the ink-coverage post-condition.
image = { version = "0.25", default-features = false, features = ["png"] }
# mock() bodies are CFML text; obscura's InterceptResolution::Fulfill also wants
# the exact bytes as base64 (obscura #912) so a binary fulfill is not corrupted
# by a lossy UTF-8 round trip. Already in the tree via obscura-render.
base64 = "0.22"
url = "2"
htmd = "0.5.5"
[profile.release]
opt-level = 3
# REQUIRED by obscura's anti-panic protocol: ops wrap their bodies in
# catch_unwind so a panic degrades to an error instead of unwinding into V8's
# FFI frame and aborting. panic="abort" turns every catchable op panic into a
# hard crash.
panic = "unwind"
# MANDATORY. obscura-render does not build against stock crates.io taffy 0.12.1:
# it needs set_calc_resolver, item_aspect_ratio_is_intrinsic and
# AlignItemsKeyword::Normal, none of which exist upstream. Cargo SILENTLY IGNORES
# a patch whose version matches but whose features do not (it warns and moves
# on), and the failure surfaces as a wall of type errors inside obscura-render.
# obscura-render needs the vendored taffy and cosmic-text: stock taffy 0.12.1
# lacks `set_calc_resolver`, `item_aspect_ratio_is_intrinsic` and
# `AlignItemsKeyword::Normal`. A `[patch]` in a dependency's own manifest is
# ignored, so the top-level crate has to repeat obscura's -- from the same
# fork, so the patched crates and the crates using them stay in step.
[patch.crates-io]
taffy = { git = "https://github.com/alexskinner/obscura.git", tag = "v0.2.5-ri.1" }
cosmic-text = { git = "https://github.com/alexskinner/obscura.git", tag = "v0.2.5-ri.1" }