- Added `--enable-uniffi-fixtures` flag. When set, we will compile in
the UniFFI test fixtures into our shared Rust crate and eventually
into `libxul`.
- Vendoring in the Rust crates needed for `uniffi-bindgen-gecko-js`
Differential Revision: https://phabricator.services.mozilla.com/D144467
- Added `--enable-uniffi-fixtures` flag. When set, we will compile in
the UniFFI test fixtures into our shared Rust crate and eventually
into `libxul`.
- Vendoring in the Rust crates needed for `uniffi-bindgen-gecko-js`
Differential Revision: https://phabricator.services.mozilla.com/D144467
- Added `--enable-uniffi-fixtures` flag. When set, we will compile in
the UniFFI test fixtures into our shared Rust crate and eventually
into `libxul`.
- Vendoring in the Rust crates needed for `uniffi-bindgen-gecko-js`
Differential Revision: https://phabricator.services.mozilla.com/D144467
Rust is required to use the external libprio-rs Rust library.
C++ XPCOM is added because writing XPCOM objects in Rust is still
difficult.
Differential Revision: https://phabricator.services.mozilla.com/D151805
We're gonna try our best to keep most of the JOG stuff in bindings/jog.
We won't always be able to. For example:
In order for the created metrics instances to be available to e.g. FFI,
we'll have to codegen them into the `fog` crate.
Differential Revision: https://phabricator.services.mozilla.com/D143047
This patch imports and implements all the infrastructure for origin
trial tokens, minus the crypto stuff / token verification.
We still don't hook it anywhere. The intended setup for now would be to
have the `OriginTrials` object hanging off the `Document` (or global
perhaps, not sure yet). That has a self-descriptive API to enable trials
(UpdateFromToken), and check enabledness status (IsEnabled).
There are some tests in the origin-trial-token crate
(third_party/rust/origin-trial-token/tests.rs). No test for the DOM code
yet because this isn't hooked into yet.
Differential Revision: https://phabricator.services.mozilla.com/D139033
This is as close to usptream as currently possibly. Only a few changes were
done to the dependencies: the wasm target was removed and the coremidi
dependency was updated to pick up a more recent version so that we don't need
to vendor separate versions of the core-foundation and core-foundation-sys
crates.
This vendors the following crates:
* alsa-sys
* alsa
* coremidi
* coremidi-sys
* memalloc
* midir
Overall this adds ~30K lines of code, over half of which is in the alsa
bindings alone.
Differential Revision: https://phabricator.services.mozilla.com/D124640
By implementing the command line handling and the
printing to stderr in the JS module of the Remote
Agent, the Rust implementation is no longer necessary.
This change allows the JS component to hold each detail
about the Remote Agent's status. Also it doesn't
require a full build anymore when changes are needed.
Differential Revision: https://phabricator.services.mozilla.com/D121096
By implementing the command line handling and the
printing to stderr in the JS module of the Remote
Agent, the Rust implementation is no longer necessary.
This change allows the JS component to hold each detail
about the Remote Agent's status. Also it doesn't
require a full build anymore when changes are needed.
Differential Revision: https://phabricator.services.mozilla.com/D121096
By implementing the command line handling and the
printing to stderr in the JS module of the Remote
Agent, the Rust implementation is no longer necessary.
This change allows the JS component to hold each detail
about the Remote Agent's status. Also it doesn't
require a full build anymore when changes are needed.
Differential Revision: https://phabricator.services.mozilla.com/D121096
We enable compilation of FOG/Glean on _all_ platforms.
We disable Glean initialization and metric recording on Android (GeckoView) by respecting MOZ_GLEAN_ANDROID.
This way GeckoView just works, consumers don't need to think about it (except in tests, these need to be disabled for Android builds).
Stubbing out the metric implementations will happen in the commits after
this one.
Differential Revision: https://phabricator.services.mozilla.com/D106766
The conversion was done with c2rust and then manually cleaned up some.
There's still lots of unsafe code remaining but I'd rather do the rest
of the cleanup in-tree so that it's easier to catch and revert
regressions.
I've dropped support for SSE1 (Firefox requires SSE2) and Altivec
(not wanting to deal with fixing Rust's Altivec support).
transform_neon.rs manually implements a bunch of intrinsics, this
can be fixed when we can depend on Rust 1.48.
The fuzz target is changed to a cargo-fuzz target.
Some of the gtests are moved to Rust.
Differential Revision: https://phabricator.services.mozilla.com/D90782
A small xpcom module implemented in Rust, designed to provide low-level tools to deal with processes
from JS. For the moment, the only notable feature is `kill()`, designed to be used from about:processes
Differential Revision: https://phabricator.services.mozilla.com/D82552