tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

commit c1d856c56a37fd605fe53a1a68de327271f27f6f
parent 0252e7f7d9ccdbc61a323470a676f0520ad09bfb
Author: Nicolas Silva <nical@fastmail.com>
Date:   Tue, 14 Oct 2025 19:52:30 +0000

Bug 1992950 - Allow enabling the WR debugger without revendoring. r=supply-chain-reviewers

We currently have to re-vendor rust dependencies to enable the debugger because we would like to avoid vendoring the tiny_http dependency and because we don't want the hazards of having an HTTP server running in proper firefox builds.

To work around this, this patch replaces the tiny_http dependency with hyper which we already vendor, and conditionally adds the debugger feature via mozconfig (--enable-webrender-debugger).

Differential Revision: https://phabricator.services.mozilla.com/D267768

Diffstat:
MCargo.lock | 6++++++
Mgfx/wr/Cargo.lock | 309+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------
Mgfx/wr/webrender/Cargo.toml | 5+++--
Mgfx/wr/webrender/src/debugger.rs | 329++++++++++++++++++++++++++++++++++++++++++++++++-------------------------------
Mgfx/wr/webrender/src/render_api.rs | 5+++++
Msupply-chain/config.toml | 2++
Mthird_party/rust/bindgen/.cargo-checksum.json | 4++--
Mthird_party/rust/bindgen/Cargo.toml | 4++--
Mthird_party/rust/wgpu-core/.cargo-checksum.json | 4++--
Mthird_party/rust/wgpu-core/Cargo.toml | 6+++---
Mthird_party/rust/wgpu-hal/.cargo-checksum.json | 4++--
Mthird_party/rust/wgpu-hal/Cargo.toml | 6+++---
Mtoolkit/library/rust/shared/Cargo.toml | 1+
13 files changed, 511 insertions(+), 174 deletions(-)

diff --git a/Cargo.lock b/Cargo.lock @@ -7765,6 +7765,7 @@ name = "webrender" version = "0.62.0" dependencies = [ "allocator-api2", + "base64 0.22.1", "bincode", "bitflags 2.9.0", "build-parallel", @@ -7776,6 +7777,7 @@ dependencies = [ "gleam", "glean", "glslopt", + "hyper", "lazy_static", "log", "malloc_size_of_derive", @@ -7786,11 +7788,15 @@ dependencies = [ "ron", "rustc-hash 2.1.1", "serde", + "serde_json", + "sha1", "smallvec", "svg_fmt", "swgl", + "tokio", "topological-sort", "tracy-rs", + "url", "webrender_api", "webrender_build", "wr_glyph_rasterizer", diff --git a/gfx/wr/Cargo.lock b/gfx/wr/Cargo.lock @@ -3,12 +3,27 @@ version = 4 [[package]] +name = "addr2line" +version = "0.25.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b5d307320b3181d6d7954e663bd7c774a838b8220fe0593c86d9fb09f498b4b" +dependencies = [ + "gimli", +] + +[[package]] name = "adler" version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" [[package]] +name = "adler2" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa" + +[[package]] name = "adler32" version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -100,12 +115,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8da52d66c7071e2e3fa2a1e5c6d088fec47b593032b254f5e980de8ea54454d6" [[package]] -name = "ascii" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d92bec98840b8f03a5ff5413de5293bfcd8bf96467cf5452609f939ec6f5de16" - -[[package]] name = "ascii-canvas" version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -174,6 +183,21 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" [[package]] +name = "backtrace" +version = "0.3.76" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb531853791a215d7c62a30daf0dde835f381ab5de4589cfe7c649d2cbe92bd6" +dependencies = [ + "addr2line", + "cfg-if 1.0.0", + "libc", + "miniz_oxide 0.8.9", + "object", + "rustc-demangle", + "windows-link 0.2.1", +] + +[[package]] name = "base64" version = "0.22.1" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -394,16 +418,10 @@ dependencies = [ "num-traits", "serde", "wasm-bindgen", - "windows-link", + "windows-link 0.1.3", ] [[package]] -name = "chunked_transfer" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e4de3bc4ea267985becf712dc6d9eed8b04c953b3fcfb339ebc87acd9804901" - -[[package]] name = "clang-sys" version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -1002,7 +1020,7 @@ dependencies = [ "cfg-if 1.0.0", "crc32fast", "libc", - "miniz_oxide", + "miniz_oxide 0.5.1", ] [[package]] @@ -1121,6 +1139,39 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fed34cd105917e91daa4da6b3728c47b068749d6a62c59811f06ed2ac71d9da7" [[package]] +name = "futures-channel" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" +dependencies = [ + "futures-core", +] + +[[package]] +name = "futures-core" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" + +[[package]] +name = "futures-task" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" + +[[package]] +name = "futures-util" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" +dependencies = [ + "futures-core", + "futures-task", + "pin-project-lite", + "pin-utils", +] + +[[package]] name = "generic-array" version = "0.14.7" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -1154,6 +1205,12 @@ dependencies = [ ] [[package]] +name = "gimli" +version = "0.32.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e629b9b98ef3dd8afe6ca2bd0f89306cec16d43d907889945bc5d6687f2f13c7" + +[[package]] name = "gl_generator" version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -1435,12 +1492,63 @@ dependencies = [ ] [[package]] +name = "http" +version = "0.2.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" +dependencies = [ + "bytes", + "fnv", + "itoa", +] + +[[package]] +name = "http-body" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" +dependencies = [ + "bytes", + "http", + "pin-project-lite", +] + +[[package]] +name = "httparse" +version = "1.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87" + +[[package]] name = "httpdate" version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" [[package]] +name = "hyper" +version = "0.14.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41dfc780fdec9373c01bae43289ea34c972e40ee3c9f6b3c8801a35f35586ce7" +dependencies = [ + "bytes", + "futures-channel", + "futures-core", + "futures-util", + "http", + "http-body", + "httparse", + "httpdate", + "itoa", + "pin-project-lite", + "socket2 0.5.10", + "tokio", + "tower-service", + "tracing", + "want", +] + +[[package]] name = "iana-time-zone" version = "0.1.60" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -1649,6 +1757,17 @@ dependencies = [ ] [[package]] +name = "io-uring" +version = "0.7.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "046fa2d4d00aea763528b4950358d0ead425372445dc8ff86312b3c69ff7727b" +dependencies = [ + "bitflags 2.4.2", + "cfg-if 1.0.0", + "libc", +] + +[[package]] name = "itertools" version = "0.10.5" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -1981,6 +2100,15 @@ dependencies = [ ] [[package]] +name = "miniz_oxide" +version = "0.8.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316" +dependencies = [ + "adler2", +] + +[[package]] name = "mio" version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -1995,6 +2123,17 @@ dependencies = [ ] [[package]] +name = "mio" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78bed444cc8a2160f01cbcf811ef18cac863ad68ae8ca62092e8db51d51c761c" +dependencies = [ + "libc", + "wasi 0.11.0+wasi-snapshot-preview1", + "windows-sys 0.59.0", +] + +[[package]] name = "miow" version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -2202,6 +2341,15 @@ dependencies = [ ] [[package]] +name = "object" +version = "0.37.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff76201f031d8863c38aa7f905eca4f53abbfa15f609db4277d44cd8938f33fe" +dependencies = [ + "memchr", +] + +[[package]] name = "once_cell" version = "1.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -2355,6 +2503,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "db8bcd96cb740d03149cbad5518db9fd87126a10ab519c011893b1754134c468" [[package]] +name = "pin-project-lite" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" + +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + +[[package]] name = "pkg-config" version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -2655,6 +2815,12 @@ dependencies = [ ] [[package]] +name = "rustc-demangle" +version = "0.1.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56f7d92ca342cea22a06f2121d944b4fd82af56988c270852495420f961d4ace" + +[[package]] name = "rustc-hash" version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -2852,6 +3018,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7bd3e3206899af3f8b12af284fafc038cc1dc2b41d1b89dd17297221c5d225de" [[package]] +name = "slab" +version = "0.4.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a2ae44ef20feb57a68b23d846850f861394c2e02dc425a50098ae8c90267589" + +[[package]] name = "smallvec" version = "1.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -2895,6 +3067,26 @@ dependencies = [ ] [[package]] +name = "socket2" +version = "0.5.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e22376abed350d73dd1cd119b57ffccad95b4e585a7cda43e286245ce23c0678" +dependencies = [ + "libc", + "windows-sys 0.52.0", +] + +[[package]] +name = "socket2" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "233504af464074f9d066d7b5416c5f9b894a5862a6506e306f7b816cdd6f1807" +dependencies = [ + "libc", + "windows-sys 0.59.0", +] + +[[package]] name = "stable_deref_trait" version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -3096,18 +3288,6 @@ dependencies = [ ] [[package]] -name = "tiny_http" -version = "0.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "389915df6413a2e74fb181895f933386023c71110878cd0825588928e64cdc82" -dependencies = [ - "ascii", - "chunked_transfer", - "httpdate", - "log", -] - -[[package]] name = "tinystr" version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -3118,6 +3298,23 @@ dependencies = [ ] [[package]] +name = "tokio" +version = "1.47.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89e49afdadebb872d3145a5638b59eb0691ea23e46ca484037cfab3b76b95038" +dependencies = [ + "backtrace", + "bytes", + "io-uring", + "libc", + "mio 1.0.4", + "pin-project-lite", + "slab", + "socket2 0.6.0", + "windows-sys 0.59.0", +] + +[[package]] name = "toml" version = "0.5.9" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -3133,6 +3330,31 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aa7c7f42dea4b1b99439786f5633aeb9c14c1b53f75e282803c2ec2ad545873c" [[package]] +name = "tower-service" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" + +[[package]] +name = "tracing" +version = "0.1.41" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" +dependencies = [ + "pin-project-lite", + "tracing-core", +] + +[[package]] +name = "tracing-core" +version = "0.1.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9d12581f227e93f094d3af2ae690a574abb8a2b9b7a96e7cfe9647b2b617678" +dependencies = [ + "once_cell", +] + +[[package]] name = "tracy-rs" version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -3142,6 +3364,12 @@ dependencies = [ ] [[package]] +name = "try-lock" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" + +[[package]] name = "typenum" version = "1.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -3337,6 +3565,15 @@ dependencies = [ ] [[package]] +name = "want" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" +dependencies = [ + "try-lock", +] + +[[package]] name = "wasi" version = "0.10.0+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -3521,6 +3758,7 @@ dependencies = [ "gleam", "glean", "glslopt", + "hyper", "lazy_static", "log", "malloc_size_of_derive", @@ -3539,7 +3777,7 @@ dependencies = [ "smallvec", "svg_fmt", "swgl", - "tiny_http", + "tokio", "topological-sort", "tracy-rs", "url", @@ -3671,6 +3909,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5e6ad25900d524eaabdbbb96d20b4311e1e7ae1699af4fb28c17ae66c80d798a" [[package]] +name = "windows-link" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" + +[[package]] name = "windows-sys" version = "0.45.0" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -3689,6 +3933,15 @@ dependencies = [ ] [[package]] +name = "windows-sys" +version = "0.59.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] name = "windows-targets" version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -3825,7 +4078,7 @@ dependencies = [ "lazy_static", "libc", "log", - "mio", + "mio 0.8.2", "ndk", "ndk-glue", "ndk-sys", diff --git a/gfx/wr/webrender/Cargo.toml b/gfx/wr/webrender/Cargo.toml @@ -20,7 +20,7 @@ static_freetype = ["glyph_rasterizer/static_freetype"] leak_checks = [] gecko = ["firefox-on-glean", "glean", "glyph_rasterizer/gecko"] sw_compositor = ["swgl"] -debugger = ["tiny_http", "serde_json", "url", "sha1", "base64", "api/debugger"] +debugger = ["hyper", "tokio", "serde_json", "url", "sha1", "base64", "api/debugger"] [build-dependencies] build-parallel = "0.1.2" @@ -59,7 +59,8 @@ topological-sort = "0.1" peek-poke = { version = "0.3", path = "../peek-poke" } allocator-api2 = { version = "0.2.18", features = ["alloc", "serde"] } zeitstempel = "0.1.2" -tiny_http = { version = "0.12", optional=true } +hyper = { version = "0.14.32", optional = true, features = ["server", "http1", "tcp", "stream"] } +tokio = { version = "1", optional = true, features = ["rt-multi-thread", "net", "io-util"] } serde_json = { optional=true, version="1" } url = { optional=true, version="2.5" } sha1 = { optional=true, version="0.10" } diff --git a/gfx/wr/webrender/src/debugger.rs b/gfx/wr/webrender/src/debugger.rs @@ -1,21 +1,49 @@ /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ - -use crate::{DebugCommand, RenderApi}; + +use crate::{DebugCommand, RenderApi, ApiMsg}; use crate::profiler::Profiler; use crate::composite::CompositeState; use std::collections::HashMap; +use std::convert::Infallible; use api::crossbeam_channel; +use api::channel::{Sender, unbounded_channel}; use api::DebugFlags; use api::debugger::{DebuggerMessage, SetDebugFlagsMessage, ProfileCounterDescriptor}; use api::debugger::{UpdateProfileCountersMessage, InitProfileCountersMessage, ProfileCounterId}; use api::debugger::{CompositorDebugInfo, CompositorDebugTile}; use std::thread; -use tiny_http::{Server, Response, ReadWrite, Method}; use base64::prelude::*; -use api::channel::Sender; use sha1::{Sha1, Digest}; +use hyper::{Request, Response, Body, service::{make_service_fn, service_fn}, Server}; +use tokio::io::AsyncWriteExt; + +/// A minimal wrapper around RenderApi's channel that can be cloned. +#[derive(Clone)] +struct DebugRenderApi { + api_sender: Sender<ApiMsg>, +} + +impl DebugRenderApi { + fn new(api: &RenderApi) -> Self { + Self { + api_sender: api.get_api_sender(), + } + } + + fn get_debug_flags(&self) -> DebugFlags { + let (tx, rx) = unbounded_channel(); + let msg = ApiMsg::DebugCommand(DebugCommand::GetDebugFlags(tx)); + self.api_sender.send(msg).unwrap(); + rx.recv().unwrap() + } + + fn send_debug_cmd(&self, cmd: DebugCommand) { + let msg = ApiMsg::DebugCommand(cmd); + self.api_sender.send(msg).unwrap(); + } +} /// Implements the WR remote debugger interface, that the `wrshell` application /// can connect to when the cargo feature `debugger` is enabled. There are two @@ -23,9 +51,7 @@ use sha1::{Sha1, Digest}; /// for commands and can act on those and/or return query results about WR /// internal state. Second, a client can optionally connect to the /debugger-socket /// endpoint for real time updates. This will be upgraded to a websocket connection -/// allowing the WR instance to stream information to client(s) as appropriate. To -/// ensure that we take on minimal dependencies in to Gecko, we use the tiny_http -/// library, and manually perform the websocket connection upgrade below. +/// allowing the WR instance to stream information to client(s) as appropriate. /// Details about the type of debug query being requested #[derive(Clone)] @@ -50,7 +76,7 @@ pub struct DebugQuery { /// A remote debugging client. These are stored with a stream that can publish /// realtime events to (such as debug flag changes, profile counter updates etc). pub struct DebuggerClient { - stream: Box<dyn ReadWrite + Send>, + tx: tokio::sync::mpsc::UnboundedSender<Vec<u8>>, } impl DebuggerClient { @@ -62,13 +88,7 @@ impl DebuggerClient { let data = serde_json::to_string(&msg).expect("bug"); let data = construct_server_ws_frame(&data); - if let Ok(..) = self.stream.write(&data) { - if let Ok(..) = self.stream.flush() { - return true; - } - } - - false + self.tx.send(data).is_ok() } } @@ -137,7 +157,7 @@ impl Debugger { clients_to_keep.push(client); } } - } + } self.clients = clients_to_keep; } @@ -145,138 +165,187 @@ impl Debugger { /// Start the debugger thread that listens for requests from clients. pub fn start(api: RenderApi) { - let address = "localhost:3583"; - let base_url = url::Url::parse(&format!("http://{}", address)).expect("bad url"); + let address = "127.0.0.1:3583"; + + println!("Start WebRender debugger server on http://{}", address); - println!("Start debug server on {}", base_url); + let api = DebugRenderApi::new(&api); thread::spawn(move || { - let server = match Server::http(address) { - Ok(server) => server, - Err(..) => { - println!("\tUnable to bind WR debug server (another process may already be listening)"); + let runtime = match tokio::runtime::Runtime::new() { + Ok(rt) => rt, + Err(e) => { + println!("\tUnable to create tokio runtime for the webrender debugger: {}", e); return; } }; - for mut request in server.incoming_requests() { - let url = base_url.join(request.url()).expect("bad url"); - let args: HashMap<String, String> = url.query_pairs().into_owned().collect(); - - match url.path() { - "/ping" => { - // Client can check if server is online and accepting connections - request.respond(Response::from_string("pong")).ok(); - } - "/debug-flags" => { - // Get or set the current debug flags - match request.method() { - Method::Get => { - let debug_flags = api.get_debug_flags(); - let result = serde_json::to_string(&debug_flags).unwrap(); - request.respond(Response::from_string(result)).ok(); - } - Method::Post => { - let mut content = String::new(); - request.as_reader().read_to_string(&mut content).unwrap(); - - let flags = serde_json::from_str(&content).expect("bug"); - api.send_debug_cmd( - DebugCommand::SetFlags(flags) - ); - request.respond(Response::from_string(format!("flags = {:?}", flags))).ok(); - } - _ => { - request.respond(Response::empty(403)).ok(); - } - } + runtime.block_on(async { + let make_svc = make_service_fn(move |_conn| { + let api = api.clone(); + async move { + Ok::<_, Infallible>(service_fn(move |req| { + handle_request(req, api.clone()) + })) } - "/generate-frame" => { - // Force generate a frame-build and composite - api.send_debug_cmd( - DebugCommand::GenerateFrame - ); - request.respond(Response::empty(200)).ok(); + }); + + let addr = address.parse().unwrap(); + let server = match Server::try_bind(&addr) { + Ok(s) => s, + Err(e) => { + eprintln!("WebRender debugger could not bind: {addr}: {e:?}"); + return; } - "/query" => { - // Query internal state about WR. - let (tx, rx) = crossbeam_channel::unbounded(); - - let kind = match args.get("type").map(|s| s.as_str()) { - Some("spatial-tree") => DebugQueryKind::SpatialTree {}, - Some("composite-view") => DebugQueryKind::CompositorView {}, - Some("composite-config") => DebugQueryKind::CompositorConfig {}, - _ => { - request.respond(Response::from_string("Unknown query")).ok(); - return; - } - }; - - let query = DebugQuery { - result: tx, - kind, - }; - api.send_debug_cmd( - DebugCommand::Query(query) - ); - let result = match rx.recv() { - Ok(result) => result, - Err(..) => "No response received from WR".into(), - }; - request.respond(Response::from_string(result)).ok(); - } - "/debugger-socket" => { - // Connect to a realtime stream of events from WR. This is handled - // by upgrading the HTTP request to a websocket. - - match request - .headers() - .iter() - .find(|h| h.field.equiv(&"Upgrade")) { - Some(h) if h.value == "websocket" => {} - _ => { - request.respond(Response::empty(404)).ok(); - return; - } - } + }; - let key = match request - .headers() - .iter() - .find(|h| h.field.equiv(&"Sec-WebSocket-Key")) - .map(|h| &h.value) - { - Some(k) => k, - None => { - request.respond(Response::empty(400)).ok(); - return; - } - }; - - // 101 Switching Protocols response - let response = tiny_http::Response::new_empty(tiny_http::StatusCode(101)) - .with_header("Upgrade: websocket".parse::<tiny_http::Header>().unwrap()) - .with_header("Connection: Upgrade".parse::<tiny_http::Header>().unwrap()) - .with_header( - format!("Sec-WebSocket-Accept: {}", convert_ws_key(key.as_str())) - .parse::<tiny_http::Header>() - .unwrap(), - ); - let stream = request.upgrade("websocket", response); + if let Err(e) = server.serve(make_svc).await { + eprintln!("WebRender debugger error: {:?}", e); + } + }); + }); +} + +async fn request_to_string(request: Request<Body>) -> Result<String, hyper::Error> { + let body_bytes = hyper::body::to_bytes(request.into_body()).await?; + Ok(String::from_utf8_lossy(&body_bytes).to_string()) +} + +fn string_response<S: Into<String>>(string: S) -> Response<Body> { + Response::new(Body::from(string.into())) +} + +fn status_response(status: u16) -> Response<Body> { + Response::builder().status(status).body(Body::from("")).unwrap() +} - // Send the upgraded connection to WR so it can start streaming +async fn handle_request( + request: Request<Body>, + api: DebugRenderApi, +) -> Result<Response<Body>, Infallible> { + let path = request.uri().path(); + let query = request.uri().query().unwrap_or(""); + let args: HashMap<String, String> = url::form_urlencoded::parse(query.as_bytes()) + .into_owned() + .collect(); + + match path { + "/ping" => { + // Client can check if server is online and accepting connections + Ok(string_response("pong")) + } + "/debug-flags" => { + // Get or set the current debug flags + match request.method() { + &hyper::Method::GET => { + let debug_flags = api.get_debug_flags(); + let result = serde_json::to_string(&debug_flags).unwrap(); + Ok(string_response(result)) + } + &hyper::Method::POST => { + let content = request_to_string(request).await.unwrap(); + let flags = serde_json::from_str(&content).expect("bug"); api.send_debug_cmd( - DebugCommand::AddDebugClient(DebuggerClient { - stream, - }) + DebugCommand::SetFlags(flags) ); + Ok(string_response(format!("flags = {:?}", flags))) } _ => { - request.respond(Response::empty(404)).ok(); + Ok(status_response(403)) } } } - }); + "/generate-frame" => { + // Force generate a frame-build and composite + api.send_debug_cmd( + DebugCommand::GenerateFrame + ); + Ok(status_response(200)) + } + "/query" => { + // Query internal state about WR. + let (tx, rx) = crossbeam_channel::unbounded(); + + let kind = match args.get("type").map(|s| s.as_str()) { + Some("spatial-tree") => DebugQueryKind::SpatialTree {}, + Some("composite-view") => DebugQueryKind::CompositorView {}, + Some("composite-config") => DebugQueryKind::CompositorConfig {}, + _ => { + return Ok(string_response("Unknown query")); + } + }; + + let query = DebugQuery { + result: tx, + kind, + }; + api.send_debug_cmd( + DebugCommand::Query(query) + ); + let result = match rx.recv() { + Ok(result) => result, + Err(..) => "No response received from WR".into(), + }; + Ok(string_response(result)) + } + "/debugger-socket" => { + // Connect to a realtime stream of events from WR. This is handled + // by upgrading the HTTP request to a websocket. + + let upgrade_header = request.headers().get("upgrade"); + if upgrade_header.is_none() || upgrade_header.unwrap() != "websocket" { + return Ok(status_response(404)); + } + + let key = match request.headers().get("sec-websocket-key") { + Some(k) => k.to_str().unwrap_or(""), + None => { + return Ok(status_response(400)); + } + }; + + let accept_key = convert_ws_key(key); + + tokio::spawn(async move { + match hyper::upgrade::on(request).await { + Ok(upgraded) => { + let (tx, mut rx) = tokio::sync::mpsc::unbounded_channel::<Vec<u8>>(); + + // Spawn a task to handle writing to the WebSocket stream + tokio::spawn(async move { + let mut stream = upgraded; + while let Some(data) = rx.recv().await { + if stream.write_all(&data).await.is_err() { + break; + } + if stream.flush().await.is_err() { + break; + } + } + }); + + api.send_debug_cmd( + DebugCommand::AddDebugClient(DebuggerClient { + tx, + }) + ); + } + Err(e) => eprintln!("Upgrade error: {}", e), + } + }); + + Ok(Response::builder() + .status(101) + .header("upgrade", "websocket") + .header("connection", "upgrade") + .header("sec-websocket-accept", accept_key) + .body(Body::from("")) + .unwrap()) + } + _ => { + Ok(status_response(404)) + } + } } /// See https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Sec-WebSocket-Key diff --git a/gfx/wr/webrender/src/render_api.rs b/gfx/wr/webrender/src/render_api.rs @@ -1114,6 +1114,11 @@ impl RenderApi { self.namespace_id } + /// Returns a clone of the API message sender for internal use + pub(crate) fn get_api_sender(&self) -> Sender<ApiMsg> { + self.api_sender.clone() + } + /// pub fn create_sender(&self) -> RenderApiSender { RenderApiSender::new( diff --git a/supply-chain/config.toml b/supply-chain/config.toml @@ -270,6 +270,8 @@ notes = "This is a first-party crate which is also published to crates.io. We ce [policy.webrender] audit-as-crates-io = false +dependency-criteria = { hyper = "safe-to-run", tokio = "safe-to-run" } +notes = "the hyper and tokio dependencies are only enabled in local debug builds, and are not shipped to users" [policy.webrender_api] audit-as-crates-io = false diff --git a/third_party/rust/bindgen/.cargo-checksum.json b/third_party/rust/bindgen/.cargo-checksum.json @@ -1 +1 @@ -{"files":{"Cargo.toml":"a07e277ca0e2a5c37caed762a150075a651ed56a7c0a32b38f32669d2ac7c5d3","LICENSE":"c23953d9deb0a3312dbeaf6c128a657f3591acee45067612fa68405eaa4525db","build.rs":"f7a10af0a21662e104e0058da7e3471a20be328eef6c7c41988525be90fdfe92","callbacks.rs":"3f0ed344a4d27fc8f893f21b1f9cd742d85ccbc23441d745e8a147b6072469bd","clang.rs":"e991300ce9b1f0b9fb4a0b4bd32e899b6cfa546f034858f08bf57678b3d7044c","codegen/bitfield_unit.rs":"1d598b042a9ce6c2f8a2c6eb44c9ee6e2d41865f25fe34ce747a0376c4d9b951","codegen/bitfield_unit_tests.rs":"9915cb19bf37fc1013fc72753bae153f7c249280daec94b25fb461f9936dffa4","codegen/dyngen.rs":"1b42f7fa9fb65ff2fa898b289a3b934d7b21c5ba6c1b3e37aa97f0faa87769a0","codegen/error.rs":"67680c4d171d63848d9eb4ddd5f100be7463564e8c1c9203fefc0e61a19dfdec","codegen/helpers.rs":"9bcec3163826edc9b22256c9bf33dd2964809349b801fc6fa5e9158da4eb0458","codegen/impl_debug.rs":"3e55b361aa56d9b6ef2bdb96ede983385a3b1030aa0f46235cb4d218ad66b2a1","codegen/impl_partialeq.rs":"d4fb2ef354086c3dd5a4c4b69d5deab652fdef225725e28dc694e791c1573d0c","codegen/mod.rs":"b106576fce6df7a3933eaa112d805d42653c2d1287953a002a3bb70b38715f87","codegen/postprocessing/merge_extern_blocks.rs":"3e244fe62abcadcb6dae069c37d21220f5351dc7b8c33c5576a5193731933c4c","codegen/postprocessing/mod.rs":"160a6d6701cabf2514e23570df1bd1b648c909cc27b7c583f21d98fe0c16722e","codegen/postprocessing/sort_semantically.rs":"5099e8fc134a92cb72b585bd95854a52ff81e2f5307c3b83617d83e7408302ee","codegen/serialize.rs":"d57eb31ba0fda825241f886336279573050b396e52badf3886e0bc76a15110ad","codegen/struct_layout.rs":"b5f4a010d60586e5079284f7f02af53d961f02a8e6a2cf09dfab2127f20c3734","deps.rs":"297dcc2be53af1a3ea4f77e16902a641f3e6f0baad09c06a6ea26050a0281c18","diagnostics.rs":"9c80043ac9fa8f683019577f311853a0d5929e41a95b3255736f80105914cdfa","extra_assertions.rs":"1596b7e7f031714dc699ebda135e795f1ecfc971ce9de6861a3c00e77fcef011","features.rs":"cde8d530d03c2793cbbb257db3d64e345af26731b73f45b4b60a618d062443c3","ir/analysis/derive.rs":"42ef56b1adda1b4d2797c7845b909fde8c87e2bf51920b490b7129936d5c494c","ir/analysis/has_destructor.rs":"d75be0d349e744ef198d89f04274cc024e36eb255fe7fb7b660ce805c8977bae","ir/analysis/has_float.rs":"9fb88d05c5920e9000e5cb6e87775c0d1042a6b11205577e281ba281e6e6acdb","ir/analysis/has_type_param_in_array.rs":"0975d1ce43bcba97eb303635118e74d494d46ac67cf5ee53faf6f6584a556cef","ir/analysis/has_vtable.rs":"dcaf36d4d0148db3b5690166e32853a58eda7721c9ea5217723a5dba7d5295b8","ir/analysis/mod.rs":"93edca96d765dfa19ac231198027b0ba48c623502a8be1dbf799a241cd6b304b","ir/analysis/sizedness.rs":"0b78e70737e038ebdee2c3d195194a060c9287000b9059ded0686728a89b4ff2","ir/analysis/template_params.rs":"a8dfd3e02b1745a5b7c6faa16309bd0b8a88d76b7fedca27c322782cc9e77177","ir/annotations.rs":"8397ced62808fe99dfdde35792cd8b2389e7828d752a6c8aa3a70c1e14595e11","ir/comment.rs":"57863204d329ae82872ecc4829cc299969ff07da3a32a4a13d7d84429f55b84d","ir/comp.rs":"8df9d537b17994f85b3d506658c20b080d18b805ca8b73cc7af15f4d5397e8ef","ir/context.rs":"e9e1ed78f2258ff2556688d658ebf422308732924683c7860853f1c38a607066","ir/derive.rs":"09860cffec0ebecce31da0c6c9ea0cf9a0d4784262ff4eb16ea459c0d0782ac9","ir/dot.rs":"8b8f6dd13e662fcb4114949025cb43467b34fa4998a3371c101db5dd82688f44","ir/enum_ty.rs":"5d7ae2e3de172d9812425e8cc6e30d559b0743620b3b09f7d72f3b05a7e1ce98","ir/function.rs":"94bdc59bc39e043825d6cbbf5a461329462f0eb74c4c216002e1da86bf93e46b","ir/int.rs":"1bf1e4d87eca13ee2fc38ff4d56c266f303f188796f5c0d290f53162798d2d01","ir/item.rs":"6983232b2362f4d23261754f0ef242162ce66bbe9398a7707a88cb7bcee0f0fd","ir/item_kind.rs":"799fab994b5ed35045786a68003c2c12b6601cf3b07e8ccc0b9acd6f921217e0","ir/layout.rs":"7a7173efde2a9daed8562d657bad563922f798e44055e35899dd47badd46c52d","ir/mod.rs":"a3b98b1732111a980a795c72eaf1e09101e842ef2de76b4f2d4a7857f8d4cee4","ir/module.rs":"617867617ebd7e56157a9ba057441ce11a33c25138a1da64646f44ccaae7c762","ir/objc.rs":"092c7f32cec4191aa6235e4554420ab2053e0c7fec5ece016a7ed303763e8547","ir/template.rs":"1114c0924323f8b30bb32dbb3f6730dd7f5bc1f0771ad5099738e8e57111c07d","ir/traversal.rs":"3ebde94ead0fe69d51541ab61d700c7c1f6382574e4c110b8c7fe3e2c6218f19","ir/ty.rs":"6965a7678927a51c76c590aeb1d780412ad9f8cd4d11ea37e56e0a9669e5b06a","ir/var.rs":"2a94decd3adfdccd3bd0015b460d180838e3c92b122b632eed44032b80cad120","lib.rs":"805f7d4547f4e9e3ab024e98e39c6c3c2b74f2fd6cdd657915a5d0bbd7655dab","log_stubs.rs":"a636d59af2fd3745c2e416e1ab8a1e1a3888ea84cd4657a321ce22f15e0c5a87","options/as_args.rs":"a1a5e7f0dde82590371fc1a9ea5fde7f3e2252530ca74d98bb49a8ce06cc864f","options/cli.rs":"7712b6d4d3f8f4dc9a07e5e0fe21687b05c118e70e9c1952a2eebc34da20c2c4","options/helpers.rs":"f4a7681e29b2dcc3be9249478c499d685b9e29d4f4ca4ae8bff7a91668cd8f15","options/mod.rs":"2bedfdd6aa9817bdc8155ca8290e0d6055ef6d7a90353d6cb99ddc6121609693","parse.rs":"fce3616e0464aa7414888e5d00d4df18c83bb3034a1c807d36a07a3c586e475a","regex_set.rs":"d8995adb9e5cecc2d738e662a62d5081150bf967cb67e1206070e22b7265578a","time.rs":"1429af446b2b38c70ceec82c4202d4822c618cad47ba502dce72dbdc4cbb425e"},"package":null} -\ No newline at end of file +{"files":{"Cargo.toml":"188ef4c8e80b77bb2069881b0fadfdb71a72a7439a823a57862356a587ef0055","LICENSE":"c23953d9deb0a3312dbeaf6c128a657f3591acee45067612fa68405eaa4525db","build.rs":"f7a10af0a21662e104e0058da7e3471a20be328eef6c7c41988525be90fdfe92","callbacks.rs":"3f0ed344a4d27fc8f893f21b1f9cd742d85ccbc23441d745e8a147b6072469bd","clang.rs":"e991300ce9b1f0b9fb4a0b4bd32e899b6cfa546f034858f08bf57678b3d7044c","codegen/bitfield_unit.rs":"1d598b042a9ce6c2f8a2c6eb44c9ee6e2d41865f25fe34ce747a0376c4d9b951","codegen/bitfield_unit_tests.rs":"9915cb19bf37fc1013fc72753bae153f7c249280daec94b25fb461f9936dffa4","codegen/dyngen.rs":"1b42f7fa9fb65ff2fa898b289a3b934d7b21c5ba6c1b3e37aa97f0faa87769a0","codegen/error.rs":"67680c4d171d63848d9eb4ddd5f100be7463564e8c1c9203fefc0e61a19dfdec","codegen/helpers.rs":"9bcec3163826edc9b22256c9bf33dd2964809349b801fc6fa5e9158da4eb0458","codegen/impl_debug.rs":"3e55b361aa56d9b6ef2bdb96ede983385a3b1030aa0f46235cb4d218ad66b2a1","codegen/impl_partialeq.rs":"d4fb2ef354086c3dd5a4c4b69d5deab652fdef225725e28dc694e791c1573d0c","codegen/mod.rs":"b106576fce6df7a3933eaa112d805d42653c2d1287953a002a3bb70b38715f87","codegen/postprocessing/merge_extern_blocks.rs":"3e244fe62abcadcb6dae069c37d21220f5351dc7b8c33c5576a5193731933c4c","codegen/postprocessing/mod.rs":"160a6d6701cabf2514e23570df1bd1b648c909cc27b7c583f21d98fe0c16722e","codegen/postprocessing/sort_semantically.rs":"5099e8fc134a92cb72b585bd95854a52ff81e2f5307c3b83617d83e7408302ee","codegen/serialize.rs":"d57eb31ba0fda825241f886336279573050b396e52badf3886e0bc76a15110ad","codegen/struct_layout.rs":"b5f4a010d60586e5079284f7f02af53d961f02a8e6a2cf09dfab2127f20c3734","deps.rs":"297dcc2be53af1a3ea4f77e16902a641f3e6f0baad09c06a6ea26050a0281c18","diagnostics.rs":"9c80043ac9fa8f683019577f311853a0d5929e41a95b3255736f80105914cdfa","extra_assertions.rs":"1596b7e7f031714dc699ebda135e795f1ecfc971ce9de6861a3c00e77fcef011","features.rs":"cde8d530d03c2793cbbb257db3d64e345af26731b73f45b4b60a618d062443c3","ir/analysis/derive.rs":"42ef56b1adda1b4d2797c7845b909fde8c87e2bf51920b490b7129936d5c494c","ir/analysis/has_destructor.rs":"d75be0d349e744ef198d89f04274cc024e36eb255fe7fb7b660ce805c8977bae","ir/analysis/has_float.rs":"9fb88d05c5920e9000e5cb6e87775c0d1042a6b11205577e281ba281e6e6acdb","ir/analysis/has_type_param_in_array.rs":"0975d1ce43bcba97eb303635118e74d494d46ac67cf5ee53faf6f6584a556cef","ir/analysis/has_vtable.rs":"dcaf36d4d0148db3b5690166e32853a58eda7721c9ea5217723a5dba7d5295b8","ir/analysis/mod.rs":"93edca96d765dfa19ac231198027b0ba48c623502a8be1dbf799a241cd6b304b","ir/analysis/sizedness.rs":"0b78e70737e038ebdee2c3d195194a060c9287000b9059ded0686728a89b4ff2","ir/analysis/template_params.rs":"a8dfd3e02b1745a5b7c6faa16309bd0b8a88d76b7fedca27c322782cc9e77177","ir/annotations.rs":"8397ced62808fe99dfdde35792cd8b2389e7828d752a6c8aa3a70c1e14595e11","ir/comment.rs":"57863204d329ae82872ecc4829cc299969ff07da3a32a4a13d7d84429f55b84d","ir/comp.rs":"8df9d537b17994f85b3d506658c20b080d18b805ca8b73cc7af15f4d5397e8ef","ir/context.rs":"e9e1ed78f2258ff2556688d658ebf422308732924683c7860853f1c38a607066","ir/derive.rs":"09860cffec0ebecce31da0c6c9ea0cf9a0d4784262ff4eb16ea459c0d0782ac9","ir/dot.rs":"8b8f6dd13e662fcb4114949025cb43467b34fa4998a3371c101db5dd82688f44","ir/enum_ty.rs":"5d7ae2e3de172d9812425e8cc6e30d559b0743620b3b09f7d72f3b05a7e1ce98","ir/function.rs":"94bdc59bc39e043825d6cbbf5a461329462f0eb74c4c216002e1da86bf93e46b","ir/int.rs":"1bf1e4d87eca13ee2fc38ff4d56c266f303f188796f5c0d290f53162798d2d01","ir/item.rs":"6983232b2362f4d23261754f0ef242162ce66bbe9398a7707a88cb7bcee0f0fd","ir/item_kind.rs":"799fab994b5ed35045786a68003c2c12b6601cf3b07e8ccc0b9acd6f921217e0","ir/layout.rs":"7a7173efde2a9daed8562d657bad563922f798e44055e35899dd47badd46c52d","ir/mod.rs":"a3b98b1732111a980a795c72eaf1e09101e842ef2de76b4f2d4a7857f8d4cee4","ir/module.rs":"617867617ebd7e56157a9ba057441ce11a33c25138a1da64646f44ccaae7c762","ir/objc.rs":"092c7f32cec4191aa6235e4554420ab2053e0c7fec5ece016a7ed303763e8547","ir/template.rs":"1114c0924323f8b30bb32dbb3f6730dd7f5bc1f0771ad5099738e8e57111c07d","ir/traversal.rs":"3ebde94ead0fe69d51541ab61d700c7c1f6382574e4c110b8c7fe3e2c6218f19","ir/ty.rs":"6965a7678927a51c76c590aeb1d780412ad9f8cd4d11ea37e56e0a9669e5b06a","ir/var.rs":"2a94decd3adfdccd3bd0015b460d180838e3c92b122b632eed44032b80cad120","lib.rs":"805f7d4547f4e9e3ab024e98e39c6c3c2b74f2fd6cdd657915a5d0bbd7655dab","log_stubs.rs":"a636d59af2fd3745c2e416e1ab8a1e1a3888ea84cd4657a321ce22f15e0c5a87","options/as_args.rs":"a1a5e7f0dde82590371fc1a9ea5fde7f3e2252530ca74d98bb49a8ce06cc864f","options/cli.rs":"7712b6d4d3f8f4dc9a07e5e0fe21687b05c118e70e9c1952a2eebc34da20c2c4","options/helpers.rs":"f4a7681e29b2dcc3be9249478c499d685b9e29d4f4ca4ae8bff7a91668cd8f15","options/mod.rs":"2bedfdd6aa9817bdc8155ca8290e0d6055ef6d7a90353d6cb99ddc6121609693","parse.rs":"fce3616e0464aa7414888e5d00d4df18c83bb3034a1c807d36a07a3c586e475a","regex_set.rs":"d8995adb9e5cecc2d738e662a62d5081150bf967cb67e1206070e22b7265578a","time.rs":"1429af446b2b38c70ceec82c4202d4822c618cad47ba502dce72dbdc4cbb425e"},"package":null} +\ No newline at end of file diff --git a/third_party/rust/bindgen/Cargo.toml b/third_party/rust/bindgen/Cargo.toml @@ -46,14 +46,15 @@ repository = "https://github.com/rust-lang/rust-bindgen" features = ["experimental"] [package.metadata.release] +release = true pre-release-hook = [ "../node_modules/doctoc/doctoc.js", "../CHANGELOG.md", ] -release = true [[package.metadata.release.pre-release-replacements]] file = "../CHANGELOG.md" +search = "# Unreleased" replace = """ # Unreleased ## Added @@ -63,7 +64,6 @@ replace = """ ## Security # {{version}} ({{date}})""" -search = "# Unreleased" [features] __cli = [ diff --git a/third_party/rust/wgpu-core/.cargo-checksum.json b/third_party/rust/wgpu-core/.cargo-checksum.json @@ -1 +1 @@ -{"files":{"Cargo.toml":"14fc314e094524575e12773badac343c650bfd0c983d828539a4ac887a64bbf6","LICENSE.APACHE":"a6cba85bc92e0cff7a450b1d873c0eaa2e9fc96bf472df0247a26bec77bf3ff9","LICENSE.MIT":"dc0d97139e8205818c703741c7be7cb3b96888bd5917b8d6fc6133731e403c21","build.rs":"5e3619e28faeac243cbae1a5f739ad15035dc9e1254957b64fd1deed6f393c8a","src/as_hal.rs":"473936fe2c26563f9fea71bbafdb7eb3d8ff5f4fe9376052d18db3ea8e2908ff","src/binding_model.rs":"9943f0814b697f446ee374343a980e49ca2f8fae1bb1955ba889eb0bee4b1f3b","src/command/allocator.rs":"386cb6e60bd332a881dbbe57ff66a0fa83f35e3ee924559f1689418ac6c7273a","src/command/bind.rs":"c88aa87bf3052fe0993b79ff047339fac4557ead85973f4a37bf236fba401222","src/command/bundle.rs":"d078bb708cbdea42ebebc5c5a510bff3cad982b67be3682ed5956bfb212114f1","src/command/clear.rs":"932afc6e1858f8c93d3ecf721215a0bc584a8e613444641a98f5cb98e3061b4b","src/command/compute.rs":"3c2d8e6cf2ff53c94f7d25f42d1a74ea656ea6122f8022d90d0f43b0f82a29ed","src/command/compute_command.rs":"18aa0b8e389a5d345243b876b1abbacfc998a19d23069e092183fa7be10fa0ab","src/command/draw.rs":"e7bf195d33683a19b077e64d181cb27b8acde724732ac9af3c94d83c3f21559e","src/command/encoder.rs":"7655f8c248120f39e37f3ad0f84bd9816df78a75657790ab12d5aba144fef65f","src/command/encoder_command.rs":"4e1d28040d9330a803644e377bd7675ec503cd0396c31394658dc67d71a4b50f","src/command/ffi.rs":"1fb626579a7726a32d571a17a14f2656def0c170f4f6297e7e51772a6fc5a566","src/command/memory_init.rs":"f68a796c4262d261620cf85e5762e267dee013f4ef5d61f67fcb173b59048983","src/command/mod.rs":"8fa942354820b79c78040e4da0fd6e7f4423486f691f4545490c79857904f106","src/command/pass.rs":"5ee6e7a68329b716b5a5231b27794682b5b17a6ee2c237f658bb9b71dd2efeca","src/command/query.rs":"fa7cb51fbbaa50febe0e61c473891d4131125c290180a05d49b60f5138931fb4","src/command/ray_tracing.rs":"4768a6dba5f737d3550a90ca35fe75c39fe241fc2d41c3795eb329139c5e6ec6","src/command/render.rs":"4a5409a4ffe48252bd44061c96baa948cc8cd13912e2cc5dec6e40c8d7c259b6","src/command/render_command.rs":"3f1bc2fec688fa3f33052867eeb2e194020a643f7d16f6111b8b128594c38570","src/command/timestamp_writes.rs":"da06fb07b8d0917be3e7fb9212d0ffc6b16526e1c1df617213ef354c3e1fb446","src/command/transfer.rs":"28fdca903934d7e2e5d12d28f952ad3e9ef804c8452f9d020831b5e6aca7e19d","src/command/transition_resources.rs":"753cb02adfee4758404c403d19fd76e6c8de77de01435a2cbe2f60bdbe44bde1","src/conv.rs":"c3354002c8c69994692c923d3772744a0f634b760ca73d79634041190d06453a","src/device/bgl.rs":"fcb1d53b692970912781748379df675268981c97352872abf2e7bb0b1ebdd533","src/device/global.rs":"8911123058c91e2695c5712b4e106c6175060adf0c2c2ebd0a28c2751c91ec31","src/device/life.rs":"44bd34cf5ab1c1a21729f2188df6d2ca0238f11c5f723380c8a4a16fbbd90b88","src/device/mod.rs":"dc8271ae7b62e1096f1a9068f671e6ed8cf7a11b5f9987066d5c173c6e4c4ad8","src/device/queue.rs":"598048a8cf2597a9f737144193743e3a4290d92aeca7a9de21bd8ca38d8a65d1","src/device/ray_tracing.rs":"cb13bc0caf54113ca12ce5db147af339474ec4b2423f2556600b5ea936b408cc","src/device/resource.rs":"bbf63c260edbfdf3522c1c8cda41f447a4b00caec3c41cc66d8dabd282f6ec1b","src/device/trace.rs":"39e52ee5b220eb6a13d949582f1f87756189648bf2f05ea7148b0a67b73c226f","src/error.rs":"4f07a0b09b30b2d6cbc855d0091d724000f492018af3b41e80befbeccf2a6f4e","src/global.rs":"bd76f9552496996f9eba6502e5caf1bcd6ca33bf3d5008795b5335f74e56fd55","src/hash_utils.rs":"9f57a627fe3f00659391670141df62f68d67922c7b186f2a9a5958ab16fb576f","src/hub.rs":"308c53e05134e5a48294c61511e43077adfdb5c334237de2016ed4537d562382","src/id.rs":"134974aa304d1d0eb7349438b9660519886c513f01d5868cd4331d2bc78f2cb8","src/identity.rs":"712ccda267eb602655c53672a94346aa4c9f88c0044ae6edcd658a814c9a50cf","src/indirect_validation/dispatch.rs":"b15d926e0de732c3c39c965f168f99598fa508ca4b0883061993d99dd644b31a","src/indirect_validation/draw.rs":"6d8338f37f406c6e2cf89713e8493f167e1d8e999737f2976de298810c2ada76","src/indirect_validation/mod.rs":"79466e4f9a59386e833958b3537beed6ffb6a7ee62aaabcf35382c2683998e43","src/indirect_validation/utils.rs":"e6a3b636dd71ff6b01d5abd5a589a0136fb30aa1d517a43f45cf2e5ad54da245","src/indirect_validation/validate_draw.wgsl":"fa7bba5f28c6c181f2d55ecfe386a5e5cd276bcb3c36aa7f963f43c535a9bf9a","src/init_tracker/buffer.rs":"6167a400ab271ba857f1c507e60a46fbd318c185aff87eecf7eb05f7f09b6963","src/init_tracker/mod.rs":"aa87df3428e3b23507377c71eae92dc1dd9f5d5374aa0b03906fb81507fc6ce6","src/init_tracker/texture.rs":"ffdc67d4be23bcd48b22945de94ac0ea8ee571f91eb6d00323b9afe6fa91eef3","src/instance.rs":"ea7f8e9e1dff27c19e6ddfd0842d001e057e2cb856b1ec1443ab717ac13de276","src/lib.rs":"57d2562e33b04113cc6c2ca3bc9a215ec779a291be82b680ff037fac7d7a8a15","src/lock/mod.rs":"8d3ae3f8d004d7f7d8a3aefe9f30b35669cb8e2409f5fba27b1fcb116b2429c4","src/lock/observing.rs":"f2df071927940e34e808d718c890caea0c3b70c56c2499c98efbddc052eda46f","src/lock/rank.rs":"238e6a97c58ee1a804863c8011bb257864301170344d18596bdaab09f3f74b54","src/lock/ranked.rs":"a95d6bf7f2ef510047a4c33687076beccf38a0148aac3261bd29fa7555e3f488","src/lock/vanilla.rs":"ca8156d4c981473d437db1056487a44c714760d685819eaff8cf82fb0098a608","src/pipeline.rs":"b7aae46522bc6843b0f47dac7e73e33197c76e9724cfb4be3b949bfa27a99fb1","src/pipeline_cache.rs":"256bf8df58d8ab904afddc132349d03e4f659b6bd6882bc8df582dcfd05ae3d5","src/pool.rs":"e11bfdc73a66321d26715465fa74657dcd26a9b856b80b8369b4aac2132a4295","src/present.rs":"bf0c6c47e58496199955013170f41cbf10755c1572583d5af4b88686c28ffb66","src/ray_tracing.rs":"a4261ccd978e8fab1fef48a168d2d33f8a9f2dae89f285ecd9ec8a6d0894fa3b","src/registry.rs":"ecd457e8956e065050bb9c63ca404505e56ffed6d540b3f14f745d7c4010b205","src/resource.rs":"729534761eccf965758ed82a21c7ffd357d7378c9216b25d0649185ce714b8b2","src/scratch.rs":"ea5c40e4d18a12f09cc1038f2dcdddb69b13e99275ac987d826658229a39b326","src/snatch.rs":"bf422810afd952894e365cd397763d42d6365ce3c5a5b4c1170566432f462939","src/storage.rs":"29427dea035d03abc8b8abdebecc5591378f1366088d1468ab2beb8536e7d675","src/timestamp_normalization/common.wgsl":"9f65aef0526ff9dde945fae70cef064ad961b0aee4291759ae82974cd2ead0a7","src/timestamp_normalization/mod.rs":"89444ad79900c12c2dc44780f1525cd0554d6ed1d9038938dd0075e8173ae59d","src/timestamp_normalization/timestamp_normalization.wgsl":"4b2202b965e4c67482d03a546ac38c72a602d79ed9a60e6f7217393c49afad49","src/track/blas.rs":"18c7b5b89a60ab49bbc0f4f8b85a24502c1d968714ef4c586095e119848d902a","src/track/buffer.rs":"1ab5310367606fc74f0791733ea5ba2e09acc92ff7f4f4773f66bcfb3138c52f","src/track/metadata.rs":"04b8bcf8ded7c7c805d9336cfc874da9d8de7d12d99f7525f0540780a1dffc45","src/track/mod.rs":"a66ce12a4dc430a63bd6a3e05818695e407cfb079b320a5cd000bd1b45ceb6a3","src/track/range.rs":"2688b05a0c6e8510ff6ba3a9623e8b83f433a05ba743129928c56c93d9a9c233","src/track/stateless.rs":"3db699f5f48a319fa07fb16cdf51e1623d6ecac7a476467ee366e014ea665b89","src/track/texture.rs":"754c54f3051c8c780f3904c8c9213fc91ea1838ee14301731dd069a98c8c6695","src/validation.rs":"39a38eb27487d1510d883253539c68a45ecb1cfb8f2afb65ac065b84108b7b55","src/weak_vec.rs":"a4193add5912b91226a3155cc613365b7fafdf2e7929d21d68bc19d149696e85"},"package":null} -\ No newline at end of file +{"files":{"Cargo.toml":"b2da3947065bcb9c1f5dccad90bdcaea6fc8c564668a11c1efe2c4e4d8cfee28","LICENSE.APACHE":"a6cba85bc92e0cff7a450b1d873c0eaa2e9fc96bf472df0247a26bec77bf3ff9","LICENSE.MIT":"dc0d97139e8205818c703741c7be7cb3b96888bd5917b8d6fc6133731e403c21","build.rs":"5e3619e28faeac243cbae1a5f739ad15035dc9e1254957b64fd1deed6f393c8a","src/as_hal.rs":"473936fe2c26563f9fea71bbafdb7eb3d8ff5f4fe9376052d18db3ea8e2908ff","src/binding_model.rs":"9943f0814b697f446ee374343a980e49ca2f8fae1bb1955ba889eb0bee4b1f3b","src/command/allocator.rs":"386cb6e60bd332a881dbbe57ff66a0fa83f35e3ee924559f1689418ac6c7273a","src/command/bind.rs":"c88aa87bf3052fe0993b79ff047339fac4557ead85973f4a37bf236fba401222","src/command/bundle.rs":"d078bb708cbdea42ebebc5c5a510bff3cad982b67be3682ed5956bfb212114f1","src/command/clear.rs":"932afc6e1858f8c93d3ecf721215a0bc584a8e613444641a98f5cb98e3061b4b","src/command/compute.rs":"3c2d8e6cf2ff53c94f7d25f42d1a74ea656ea6122f8022d90d0f43b0f82a29ed","src/command/compute_command.rs":"18aa0b8e389a5d345243b876b1abbacfc998a19d23069e092183fa7be10fa0ab","src/command/draw.rs":"e7bf195d33683a19b077e64d181cb27b8acde724732ac9af3c94d83c3f21559e","src/command/encoder.rs":"7655f8c248120f39e37f3ad0f84bd9816df78a75657790ab12d5aba144fef65f","src/command/encoder_command.rs":"4e1d28040d9330a803644e377bd7675ec503cd0396c31394658dc67d71a4b50f","src/command/ffi.rs":"1fb626579a7726a32d571a17a14f2656def0c170f4f6297e7e51772a6fc5a566","src/command/memory_init.rs":"f68a796c4262d261620cf85e5762e267dee013f4ef5d61f67fcb173b59048983","src/command/mod.rs":"8fa942354820b79c78040e4da0fd6e7f4423486f691f4545490c79857904f106","src/command/pass.rs":"5ee6e7a68329b716b5a5231b27794682b5b17a6ee2c237f658bb9b71dd2efeca","src/command/query.rs":"fa7cb51fbbaa50febe0e61c473891d4131125c290180a05d49b60f5138931fb4","src/command/ray_tracing.rs":"4768a6dba5f737d3550a90ca35fe75c39fe241fc2d41c3795eb329139c5e6ec6","src/command/render.rs":"4a5409a4ffe48252bd44061c96baa948cc8cd13912e2cc5dec6e40c8d7c259b6","src/command/render_command.rs":"3f1bc2fec688fa3f33052867eeb2e194020a643f7d16f6111b8b128594c38570","src/command/timestamp_writes.rs":"da06fb07b8d0917be3e7fb9212d0ffc6b16526e1c1df617213ef354c3e1fb446","src/command/transfer.rs":"28fdca903934d7e2e5d12d28f952ad3e9ef804c8452f9d020831b5e6aca7e19d","src/command/transition_resources.rs":"753cb02adfee4758404c403d19fd76e6c8de77de01435a2cbe2f60bdbe44bde1","src/conv.rs":"c3354002c8c69994692c923d3772744a0f634b760ca73d79634041190d06453a","src/device/bgl.rs":"fcb1d53b692970912781748379df675268981c97352872abf2e7bb0b1ebdd533","src/device/global.rs":"8911123058c91e2695c5712b4e106c6175060adf0c2c2ebd0a28c2751c91ec31","src/device/life.rs":"44bd34cf5ab1c1a21729f2188df6d2ca0238f11c5f723380c8a4a16fbbd90b88","src/device/mod.rs":"dc8271ae7b62e1096f1a9068f671e6ed8cf7a11b5f9987066d5c173c6e4c4ad8","src/device/queue.rs":"598048a8cf2597a9f737144193743e3a4290d92aeca7a9de21bd8ca38d8a65d1","src/device/ray_tracing.rs":"cb13bc0caf54113ca12ce5db147af339474ec4b2423f2556600b5ea936b408cc","src/device/resource.rs":"bbf63c260edbfdf3522c1c8cda41f447a4b00caec3c41cc66d8dabd282f6ec1b","src/device/trace.rs":"39e52ee5b220eb6a13d949582f1f87756189648bf2f05ea7148b0a67b73c226f","src/error.rs":"4f07a0b09b30b2d6cbc855d0091d724000f492018af3b41e80befbeccf2a6f4e","src/global.rs":"bd76f9552496996f9eba6502e5caf1bcd6ca33bf3d5008795b5335f74e56fd55","src/hash_utils.rs":"9f57a627fe3f00659391670141df62f68d67922c7b186f2a9a5958ab16fb576f","src/hub.rs":"308c53e05134e5a48294c61511e43077adfdb5c334237de2016ed4537d562382","src/id.rs":"134974aa304d1d0eb7349438b9660519886c513f01d5868cd4331d2bc78f2cb8","src/identity.rs":"712ccda267eb602655c53672a94346aa4c9f88c0044ae6edcd658a814c9a50cf","src/indirect_validation/dispatch.rs":"b15d926e0de732c3c39c965f168f99598fa508ca4b0883061993d99dd644b31a","src/indirect_validation/draw.rs":"6d8338f37f406c6e2cf89713e8493f167e1d8e999737f2976de298810c2ada76","src/indirect_validation/mod.rs":"79466e4f9a59386e833958b3537beed6ffb6a7ee62aaabcf35382c2683998e43","src/indirect_validation/utils.rs":"e6a3b636dd71ff6b01d5abd5a589a0136fb30aa1d517a43f45cf2e5ad54da245","src/indirect_validation/validate_draw.wgsl":"fa7bba5f28c6c181f2d55ecfe386a5e5cd276bcb3c36aa7f963f43c535a9bf9a","src/init_tracker/buffer.rs":"6167a400ab271ba857f1c507e60a46fbd318c185aff87eecf7eb05f7f09b6963","src/init_tracker/mod.rs":"aa87df3428e3b23507377c71eae92dc1dd9f5d5374aa0b03906fb81507fc6ce6","src/init_tracker/texture.rs":"ffdc67d4be23bcd48b22945de94ac0ea8ee571f91eb6d00323b9afe6fa91eef3","src/instance.rs":"ea7f8e9e1dff27c19e6ddfd0842d001e057e2cb856b1ec1443ab717ac13de276","src/lib.rs":"57d2562e33b04113cc6c2ca3bc9a215ec779a291be82b680ff037fac7d7a8a15","src/lock/mod.rs":"8d3ae3f8d004d7f7d8a3aefe9f30b35669cb8e2409f5fba27b1fcb116b2429c4","src/lock/observing.rs":"f2df071927940e34e808d718c890caea0c3b70c56c2499c98efbddc052eda46f","src/lock/rank.rs":"238e6a97c58ee1a804863c8011bb257864301170344d18596bdaab09f3f74b54","src/lock/ranked.rs":"a95d6bf7f2ef510047a4c33687076beccf38a0148aac3261bd29fa7555e3f488","src/lock/vanilla.rs":"ca8156d4c981473d437db1056487a44c714760d685819eaff8cf82fb0098a608","src/pipeline.rs":"b7aae46522bc6843b0f47dac7e73e33197c76e9724cfb4be3b949bfa27a99fb1","src/pipeline_cache.rs":"256bf8df58d8ab904afddc132349d03e4f659b6bd6882bc8df582dcfd05ae3d5","src/pool.rs":"e11bfdc73a66321d26715465fa74657dcd26a9b856b80b8369b4aac2132a4295","src/present.rs":"bf0c6c47e58496199955013170f41cbf10755c1572583d5af4b88686c28ffb66","src/ray_tracing.rs":"a4261ccd978e8fab1fef48a168d2d33f8a9f2dae89f285ecd9ec8a6d0894fa3b","src/registry.rs":"ecd457e8956e065050bb9c63ca404505e56ffed6d540b3f14f745d7c4010b205","src/resource.rs":"729534761eccf965758ed82a21c7ffd357d7378c9216b25d0649185ce714b8b2","src/scratch.rs":"ea5c40e4d18a12f09cc1038f2dcdddb69b13e99275ac987d826658229a39b326","src/snatch.rs":"bf422810afd952894e365cd397763d42d6365ce3c5a5b4c1170566432f462939","src/storage.rs":"29427dea035d03abc8b8abdebecc5591378f1366088d1468ab2beb8536e7d675","src/timestamp_normalization/common.wgsl":"9f65aef0526ff9dde945fae70cef064ad961b0aee4291759ae82974cd2ead0a7","src/timestamp_normalization/mod.rs":"89444ad79900c12c2dc44780f1525cd0554d6ed1d9038938dd0075e8173ae59d","src/timestamp_normalization/timestamp_normalization.wgsl":"4b2202b965e4c67482d03a546ac38c72a602d79ed9a60e6f7217393c49afad49","src/track/blas.rs":"18c7b5b89a60ab49bbc0f4f8b85a24502c1d968714ef4c586095e119848d902a","src/track/buffer.rs":"1ab5310367606fc74f0791733ea5ba2e09acc92ff7f4f4773f66bcfb3138c52f","src/track/metadata.rs":"04b8bcf8ded7c7c805d9336cfc874da9d8de7d12d99f7525f0540780a1dffc45","src/track/mod.rs":"a66ce12a4dc430a63bd6a3e05818695e407cfb079b320a5cd000bd1b45ceb6a3","src/track/range.rs":"2688b05a0c6e8510ff6ba3a9623e8b83f433a05ba743129928c56c93d9a9c233","src/track/stateless.rs":"3db699f5f48a319fa07fb16cdf51e1623d6ecac7a476467ee366e014ea665b89","src/track/texture.rs":"754c54f3051c8c780f3904c8c9213fc91ea1838ee14301731dd069a98c8c6695","src/validation.rs":"39a38eb27487d1510d883253539c68a45ecb1cfb8f2afb65ac065b84108b7b55","src/weak_vec.rs":"a4193add5912b91226a3155cc613365b7fafdf2e7929d21d68bc19d149696e85"},"package":null} +\ No newline at end of file diff --git a/third_party/rust/wgpu-core/Cargo.toml b/third_party/rust/wgpu-core/Cargo.toml @@ -28,9 +28,6 @@ keywords = ["graphics"] license = "MIT OR Apache-2.0" repository = "https://github.com/gfx-rs/wgpu" -[package.metadata.cargo-machete] -ignored = ["cfg_aliases"] - [package.metadata.docs.rs] all-features = true rustdoc-args = [ @@ -44,6 +41,9 @@ targets = [ "wasm32-unknown-unknown", ] +[package.metadata.cargo-machete] +ignored = ["cfg_aliases"] + [features] angle = ["wgpu-core-deps-apple/angle"] api_log_info = [] diff --git a/third_party/rust/wgpu-hal/.cargo-checksum.json b/third_party/rust/wgpu-hal/.cargo-checksum.json @@ -1 +1 @@ -{"files":{"Cargo.toml":"e237617065b309c62aa46857a2429372e306e200e70250060b80056c6685e437","LICENSE.APACHE":"a6cba85bc92e0cff7a450b1d873c0eaa2e9fc96bf472df0247a26bec77bf3ff9","LICENSE.MIT":"dc0d97139e8205818c703741c7be7cb3b96888bd5917b8d6fc6133731e403c21","README.md":"cf9e84804a635e4a8a9fefc596be9da6bf7354dde0d105e27d56a12cb20dd8e3","build.rs":"e720cf033fecfdc7e4f34010af2a86340c99b8aaabf69559d32391521e25de6c","examples/halmark/main.rs":"3dbc158d925da6ef4450b9a1d335cb0d748c5d71ef517f110701d73aea185454","examples/halmark/shader.wgsl":"26c256ec36d6f0e9a1647431ca772766bee4382d64eaa718ba7b488dcfb6bcca","examples/raw-gles.em.html":"70fbe68394a1a4522192de1dcfaf7d399f60d7bdf5de70b708f9bb0417427546","examples/raw-gles.rs":"5f4cfa893e99dfec559803bc513457793dcc549154c604385fb287f99a3ea675","examples/ray-traced-triangle/main.rs":"8cbfdf3e4cd29d23e2c9fd543a36976d849a7161670e094baeda390db9306b57","examples/ray-traced-triangle/shader.wgsl":"cc10caf92746724a71f6dd0dbc3a71e57b37c7d1d83278556805a535c0728a9d","src/auxil/dxgi/conv.rs":"3ca856c93916c0be714924ff077aa1f366be5557cc164210154d252e7e49fb77","src/auxil/dxgi/exception.rs":"7138831914a59dc7cbb71512068e9134144b9bc8f43312682edccb0b3ee24a48","src/auxil/dxgi/factory.rs":"81e479e550a09127384d8080e43d5f5bae8e8dda6082fe41a87bea8f872eb0f1","src/auxil/dxgi/mod.rs":"e6c5cc3b73bb97742135d6f35308c42f0822304764978fb8dabb0e848863352a","src/auxil/dxgi/name.rs":"ff942da0da1a497ee4d2be21604f7ba9fae963588105b3d1f63aae1a0c536e82","src/auxil/dxgi/result.rs":"e7a9dfb48d8ef8cbe58b28b1ace5caf7818ee50505ba3220bb0509e66ae469b7","src/auxil/dxgi/time.rs":"b6911800be3873cbe277b2534b3839c6f005f3d9a09341aace4752e207d584a2","src/auxil/mod.rs":"540b9250d9f0e0af709245ce1e284eaca15b27d47550b0ebba2a512da1666c48","src/auxil/renderdoc.rs":"94898f747476e269b2910d42e769f2bbb6be0cb466ad92f9d381f55799d2756e","src/dx12/adapter.rs":"9923abf84344c9ec2719ce4a0829bbc9b78307721b485bfd65c2912062037fe5","src/dx12/command.rs":"c1882f684b2e2bdb659ced0b5a1e353825c7b220998009d07dafdd1841af3ecf","src/dx12/conv.rs":"ef5fa91bbe8b044b7f7949452a04eefbf4b0d3a97f6d89665e021efae8568643","src/dx12/dcomp.rs":"53bde57557d80e571257f76933d66475a765e063d8b635675f9dd2563039a4c5","src/dx12/descriptor.rs":"ccd4feb6bd3e0a0ffc26142f8a81fca26180d0f50146b6eb2f670cbc89ea7064","src/dx12/device.rs":"435427d5377c3d298c0dcbad46fb390b13e4448e3e74f24863d6a546b8e57307","src/dx12/instance.rs":"75bddc3807756c691ede3ff944915e443a8bb2b5ac6d0d99babd4ed50d1e3fb9","src/dx12/mod.rs":"60076d7b4afc45418bb7b0b2952b7766aaf785670822628cb2bf9f1d9fe08cf1","src/dx12/sampler.rs":"d18d243efe4fa667dbab5b75b5b91d47de94d441976d9f44a46a2b49ba38473d","src/dx12/shader_compilation.rs":"c901a797c69e08c8c0ec93ea37c5f31084eb21c26c7d703d7031f987f2243509","src/dx12/suballocation.rs":"014e9ec4a94519b877ad3adc2ea5d182aa6cdf502248009d28dc5833a9edb93c","src/dx12/types.rs":"3fc7619fc09303eb3c936d4ded6889f94ce9e8b9aa62742ce900baa1b1e1cca7","src/dx12/view.rs":"79b3f7331d9795e60f9b53023cbf0df46c3a05b1e8bd5c7bcca8acdd235b124f","src/dynamic/adapter.rs":"e93f7d082a3950c9e8ccff8a631d251c7598b4b25dda9fe6347dadfa3ba07829","src/dynamic/command.rs":"9635dea15d8a885011d2b8b6b9cc5ffe2126cc3f141f47f7aaf46e1f201abea9","src/dynamic/device.rs":"f77c2406f2c42fed77fce29d731b490ac615dae2c5ddb9e01fee4f8ece1b3a34","src/dynamic/instance.rs":"7b515c201e1ca24f24439544dbfa1d19ea1412a4f89bd803e009aed13b021e55","src/dynamic/mod.rs":"2577d3aef6441f5b42b427d80ba3cf7fee2a97b2fc12335a1fba383e8a79a9b2","src/dynamic/queue.rs":"d76abb4797e90253386d24584f186dbe1909e772560156b2e891fa043cfefbdc","src/dynamic/surface.rs":"4328c2fe86931f50aa00ac3d6982d0879b774eebf7a507903d1b1898c891fb4d","src/gles/adapter.rs":"7cbe1b3dda180d0eee69af3474308175dfb964db071ec9779baf21ffd641f679","src/gles/command.rs":"c13d50eeb1a4aaab367a3b4a7fe6c25c8c73377e68d0d8cc43791d1a7202d23b","src/gles/conv.rs":"de1ad6c07d26e8f9f3be8a7a51bca212e92fd5449aaa85c6ad9c37b91afa6994","src/gles/device.rs":"745d94da0eff6f580425932983b9182e52437b7fa1443c92c5d63f3a14bebb5b","src/gles/egl.rs":"2a336cd6bf3cc6660677ac2621f903c9dd72a1cf484d41c7b69c341b809844c4","src/gles/emscripten.rs":"316d2bb6f2a4bb126dbe68a223f7393399080d116b61c39504454acdf4f9cfaf","src/gles/fence.rs":"a2e7b6abd2fd4a438de90b9f58452c64cd8bba83999c90fd6390e3db128b9c6c","src/gles/mod.rs":"24a29ca8f7a5c3c7601d74b3fd8a9d4b402e7b794b6fd70bda36acf5960ae828","src/gles/queue.rs":"5152f5698a2998a55125d13f04788b960726fd4b49ae4d2ec8f9642c8825c7fd","src/gles/shaders/clear.frag":"9133ed8ed97d3641fbb6b5f5ea894a3554c629ccc1b80a5fc9221d7293aa1954","src/gles/shaders/clear.vert":"a543768725f4121ff2e9e1fb5b00644931e9d6f2f946c0ef01968afb5a135abd","src/gles/shaders/srgb_present.frag":"dd9a43c339a2fa4ccf7f6a1854c6f400cabf271a7d5e9230768e9f39d47f3ff5","src/gles/shaders/srgb_present.vert":"6e85d489403d80b81cc94790730bb53b309dfc5eeede8f1ea3412a660f31d357","src/gles/web.rs":"cb5940bf7b2381811675011b640040274f407a7d1908d0f82c813d6a9d3b00f7","src/gles/wgl.rs":"ed0cee8844447b461ed5340f81eb55bb051ceaac67a5768985318ceac133cbe4","src/lib.rs":"b3f23ecd0152da354d91ef01af558b3ad65f0040bbdfd8574c297071d3c97445","src/metal/adapter.rs":"9184c7658efe5dd43224d23294ebd3fe98a19b0290c41703496de276dad5f996","src/metal/command.rs":"20bf613b67ccc043de6e8ad3f3d332bbb678cc06c1593cf1880083de090574ba","src/metal/conv.rs":"85e8168be334ba24d109575a0a7e91b2ad3459403173e99e5cdd5d977cc5c18f","src/metal/device.rs":"5ff22c78a8ef905a2c265818bdb63e522ec6622becc20f1eee01adf8f0a6f77f","src/metal/layer_observer.rs":"8370a6e443d01739b951b8538ee719a03b69fc0cbac92c748db418fbcc8837b5","src/metal/mod.rs":"82d7e8b96ba04fab5b42722574e9f081def9e50c92dcc7d554d8111b9d0aa2a1","src/metal/surface.rs":"22dc6da86ac74b044b6498764920f0467bb5060f4dffb156b6c1e260db0c48b7","src/metal/time.rs":"c32d69f30e846dfcc0e39e01097fb80df63b2bebb6586143bb62494999850246","src/noop/buffer.rs":"b5edc5e2c52287dfbd4f619e36097ac233041eb9ab287b889b6ee477d740fa09","src/noop/command.rs":"3de99a1a260cfea2e6ca2e76797c1923cc26b069b08362c38798ce27cdc75543","src/noop/mod.rs":"f658892b80640c2061b0028013c23041a1b12033a928a347a02e40aeb9e819a6","src/validation_canary.rs":"2e8f84e5f85671b3e55ddd410476171c762e34cbea315b37921cbb6ff18bfb4f","src/vulkan/adapter.rs":"0c973c328064c509e2c05cf7d72fff881aad3d75234aa6040f09869e986eec17","src/vulkan/command.rs":"22fd05428c141ce58000c8f3541d39195023ffdfb72c4b00379a5c50a3ecea82","src/vulkan/conv.rs":"b89788f8f89283a80ee99b2d4231c4fe2ad36906f8743f6e9e1eaa974edd4816","src/vulkan/device.rs":"3ad27857637708fff85c52f9270e4e87b30408030c48092b2744cf229aaea287","src/vulkan/drm.rs":"45f7bf1dd854688a65261e4674d80f90c997b193a162fd2ae658acf4e2003552","src/vulkan/instance.rs":"6740bc9ca240aa512509520d2b5a9cd2129330c413d94fce786b8301fa5f2202","src/vulkan/mod.rs":"bff4adbad402e7bdaabe69b20425e250a2c1117154dbc365c3a12f59bf9034e3","src/vulkan/sampler.rs":"f65729d6df5cce681b7756b3e48074017f0c7f42da69ca55e26cc723cd14ad59","src/vulkan/semaphore_list.rs":"102266d8e1b9f2ec1decf681bcc9e1a4cbff29533a258f2699fb6c573c434771"},"package":null} -\ No newline at end of file +{"files":{"Cargo.toml":"3afcd07013dcb81729dd3de41dd0cbde59ccc98559cef43f9fd083e7566253f1","LICENSE.APACHE":"a6cba85bc92e0cff7a450b1d873c0eaa2e9fc96bf472df0247a26bec77bf3ff9","LICENSE.MIT":"dc0d97139e8205818c703741c7be7cb3b96888bd5917b8d6fc6133731e403c21","README.md":"cf9e84804a635e4a8a9fefc596be9da6bf7354dde0d105e27d56a12cb20dd8e3","build.rs":"e720cf033fecfdc7e4f34010af2a86340c99b8aaabf69559d32391521e25de6c","examples/halmark/main.rs":"3dbc158d925da6ef4450b9a1d335cb0d748c5d71ef517f110701d73aea185454","examples/halmark/shader.wgsl":"26c256ec36d6f0e9a1647431ca772766bee4382d64eaa718ba7b488dcfb6bcca","examples/raw-gles.em.html":"70fbe68394a1a4522192de1dcfaf7d399f60d7bdf5de70b708f9bb0417427546","examples/raw-gles.rs":"5f4cfa893e99dfec559803bc513457793dcc549154c604385fb287f99a3ea675","examples/ray-traced-triangle/main.rs":"8cbfdf3e4cd29d23e2c9fd543a36976d849a7161670e094baeda390db9306b57","examples/ray-traced-triangle/shader.wgsl":"cc10caf92746724a71f6dd0dbc3a71e57b37c7d1d83278556805a535c0728a9d","src/auxil/dxgi/conv.rs":"3ca856c93916c0be714924ff077aa1f366be5557cc164210154d252e7e49fb77","src/auxil/dxgi/exception.rs":"7138831914a59dc7cbb71512068e9134144b9bc8f43312682edccb0b3ee24a48","src/auxil/dxgi/factory.rs":"81e479e550a09127384d8080e43d5f5bae8e8dda6082fe41a87bea8f872eb0f1","src/auxil/dxgi/mod.rs":"e6c5cc3b73bb97742135d6f35308c42f0822304764978fb8dabb0e848863352a","src/auxil/dxgi/name.rs":"ff942da0da1a497ee4d2be21604f7ba9fae963588105b3d1f63aae1a0c536e82","src/auxil/dxgi/result.rs":"e7a9dfb48d8ef8cbe58b28b1ace5caf7818ee50505ba3220bb0509e66ae469b7","src/auxil/dxgi/time.rs":"b6911800be3873cbe277b2534b3839c6f005f3d9a09341aace4752e207d584a2","src/auxil/mod.rs":"540b9250d9f0e0af709245ce1e284eaca15b27d47550b0ebba2a512da1666c48","src/auxil/renderdoc.rs":"94898f747476e269b2910d42e769f2bbb6be0cb466ad92f9d381f55799d2756e","src/dx12/adapter.rs":"9923abf84344c9ec2719ce4a0829bbc9b78307721b485bfd65c2912062037fe5","src/dx12/command.rs":"c1882f684b2e2bdb659ced0b5a1e353825c7b220998009d07dafdd1841af3ecf","src/dx12/conv.rs":"ef5fa91bbe8b044b7f7949452a04eefbf4b0d3a97f6d89665e021efae8568643","src/dx12/dcomp.rs":"53bde57557d80e571257f76933d66475a765e063d8b635675f9dd2563039a4c5","src/dx12/descriptor.rs":"ccd4feb6bd3e0a0ffc26142f8a81fca26180d0f50146b6eb2f670cbc89ea7064","src/dx12/device.rs":"435427d5377c3d298c0dcbad46fb390b13e4448e3e74f24863d6a546b8e57307","src/dx12/instance.rs":"75bddc3807756c691ede3ff944915e443a8bb2b5ac6d0d99babd4ed50d1e3fb9","src/dx12/mod.rs":"60076d7b4afc45418bb7b0b2952b7766aaf785670822628cb2bf9f1d9fe08cf1","src/dx12/sampler.rs":"d18d243efe4fa667dbab5b75b5b91d47de94d441976d9f44a46a2b49ba38473d","src/dx12/shader_compilation.rs":"c901a797c69e08c8c0ec93ea37c5f31084eb21c26c7d703d7031f987f2243509","src/dx12/suballocation.rs":"014e9ec4a94519b877ad3adc2ea5d182aa6cdf502248009d28dc5833a9edb93c","src/dx12/types.rs":"3fc7619fc09303eb3c936d4ded6889f94ce9e8b9aa62742ce900baa1b1e1cca7","src/dx12/view.rs":"79b3f7331d9795e60f9b53023cbf0df46c3a05b1e8bd5c7bcca8acdd235b124f","src/dynamic/adapter.rs":"e93f7d082a3950c9e8ccff8a631d251c7598b4b25dda9fe6347dadfa3ba07829","src/dynamic/command.rs":"9635dea15d8a885011d2b8b6b9cc5ffe2126cc3f141f47f7aaf46e1f201abea9","src/dynamic/device.rs":"f77c2406f2c42fed77fce29d731b490ac615dae2c5ddb9e01fee4f8ece1b3a34","src/dynamic/instance.rs":"7b515c201e1ca24f24439544dbfa1d19ea1412a4f89bd803e009aed13b021e55","src/dynamic/mod.rs":"2577d3aef6441f5b42b427d80ba3cf7fee2a97b2fc12335a1fba383e8a79a9b2","src/dynamic/queue.rs":"d76abb4797e90253386d24584f186dbe1909e772560156b2e891fa043cfefbdc","src/dynamic/surface.rs":"4328c2fe86931f50aa00ac3d6982d0879b774eebf7a507903d1b1898c891fb4d","src/gles/adapter.rs":"7cbe1b3dda180d0eee69af3474308175dfb964db071ec9779baf21ffd641f679","src/gles/command.rs":"c13d50eeb1a4aaab367a3b4a7fe6c25c8c73377e68d0d8cc43791d1a7202d23b","src/gles/conv.rs":"de1ad6c07d26e8f9f3be8a7a51bca212e92fd5449aaa85c6ad9c37b91afa6994","src/gles/device.rs":"745d94da0eff6f580425932983b9182e52437b7fa1443c92c5d63f3a14bebb5b","src/gles/egl.rs":"2a336cd6bf3cc6660677ac2621f903c9dd72a1cf484d41c7b69c341b809844c4","src/gles/emscripten.rs":"316d2bb6f2a4bb126dbe68a223f7393399080d116b61c39504454acdf4f9cfaf","src/gles/fence.rs":"a2e7b6abd2fd4a438de90b9f58452c64cd8bba83999c90fd6390e3db128b9c6c","src/gles/mod.rs":"24a29ca8f7a5c3c7601d74b3fd8a9d4b402e7b794b6fd70bda36acf5960ae828","src/gles/queue.rs":"5152f5698a2998a55125d13f04788b960726fd4b49ae4d2ec8f9642c8825c7fd","src/gles/shaders/clear.frag":"9133ed8ed97d3641fbb6b5f5ea894a3554c629ccc1b80a5fc9221d7293aa1954","src/gles/shaders/clear.vert":"a543768725f4121ff2e9e1fb5b00644931e9d6f2f946c0ef01968afb5a135abd","src/gles/shaders/srgb_present.frag":"dd9a43c339a2fa4ccf7f6a1854c6f400cabf271a7d5e9230768e9f39d47f3ff5","src/gles/shaders/srgb_present.vert":"6e85d489403d80b81cc94790730bb53b309dfc5eeede8f1ea3412a660f31d357","src/gles/web.rs":"cb5940bf7b2381811675011b640040274f407a7d1908d0f82c813d6a9d3b00f7","src/gles/wgl.rs":"ed0cee8844447b461ed5340f81eb55bb051ceaac67a5768985318ceac133cbe4","src/lib.rs":"b3f23ecd0152da354d91ef01af558b3ad65f0040bbdfd8574c297071d3c97445","src/metal/adapter.rs":"9184c7658efe5dd43224d23294ebd3fe98a19b0290c41703496de276dad5f996","src/metal/command.rs":"20bf613b67ccc043de6e8ad3f3d332bbb678cc06c1593cf1880083de090574ba","src/metal/conv.rs":"85e8168be334ba24d109575a0a7e91b2ad3459403173e99e5cdd5d977cc5c18f","src/metal/device.rs":"5ff22c78a8ef905a2c265818bdb63e522ec6622becc20f1eee01adf8f0a6f77f","src/metal/layer_observer.rs":"8370a6e443d01739b951b8538ee719a03b69fc0cbac92c748db418fbcc8837b5","src/metal/mod.rs":"82d7e8b96ba04fab5b42722574e9f081def9e50c92dcc7d554d8111b9d0aa2a1","src/metal/surface.rs":"22dc6da86ac74b044b6498764920f0467bb5060f4dffb156b6c1e260db0c48b7","src/metal/time.rs":"c32d69f30e846dfcc0e39e01097fb80df63b2bebb6586143bb62494999850246","src/noop/buffer.rs":"b5edc5e2c52287dfbd4f619e36097ac233041eb9ab287b889b6ee477d740fa09","src/noop/command.rs":"3de99a1a260cfea2e6ca2e76797c1923cc26b069b08362c38798ce27cdc75543","src/noop/mod.rs":"f658892b80640c2061b0028013c23041a1b12033a928a347a02e40aeb9e819a6","src/validation_canary.rs":"2e8f84e5f85671b3e55ddd410476171c762e34cbea315b37921cbb6ff18bfb4f","src/vulkan/adapter.rs":"0c973c328064c509e2c05cf7d72fff881aad3d75234aa6040f09869e986eec17","src/vulkan/command.rs":"22fd05428c141ce58000c8f3541d39195023ffdfb72c4b00379a5c50a3ecea82","src/vulkan/conv.rs":"b89788f8f89283a80ee99b2d4231c4fe2ad36906f8743f6e9e1eaa974edd4816","src/vulkan/device.rs":"3ad27857637708fff85c52f9270e4e87b30408030c48092b2744cf229aaea287","src/vulkan/drm.rs":"45f7bf1dd854688a65261e4674d80f90c997b193a162fd2ae658acf4e2003552","src/vulkan/instance.rs":"6740bc9ca240aa512509520d2b5a9cd2129330c413d94fce786b8301fa5f2202","src/vulkan/mod.rs":"bff4adbad402e7bdaabe69b20425e250a2c1117154dbc365c3a12f59bf9034e3","src/vulkan/sampler.rs":"f65729d6df5cce681b7756b3e48074017f0c7f42da69ca55e26cc723cd14ad59","src/vulkan/semaphore_list.rs":"102266d8e1b9f2ec1decf681bcc9e1a4cbff29533a258f2699fb6c573c434771"},"package":null} +\ No newline at end of file diff --git a/third_party/rust/wgpu-hal/Cargo.toml b/third_party/rust/wgpu-hal/Cargo.toml @@ -28,9 +28,6 @@ keywords = ["graphics"] license = "MIT OR Apache-2.0" repository = "https://github.com/gfx-rs/wgpu" -[package.metadata.cargo-machete] -ignored = ["cfg_aliases"] - [package.metadata.docs.rs] features = [ "vulkan", @@ -48,6 +45,9 @@ targets = [ "wasm32-unknown-unknown", ] +[package.metadata.cargo-machete] +ignored = ["cfg_aliases"] + [features] cargo-clippy = [] device_lost_panic = [] diff --git a/toolkit/library/rust/shared/Cargo.toml b/toolkit/library/rust/shared/Cargo.toml @@ -160,6 +160,7 @@ for_xul = [ # `libmozsqlite` that we distribute. "rusqlite/in_gecko" ] +webrender_debugger = ["webrender_bindings/debugger"] [lib] path = "lib.rs"