comedy 0.2.0 no longer impls Fail itself. By reenabling the default features
(including std) of failure, the blanket impl will cover that. These features
were disabled to remove a dependency on backtrace, but since bug 1608157 we
are using a version of failure without backtrace by default so that is no
longer needed.
Differential Revision: https://phabricator.services.mozilla.com/D99969
I'm keeping the --enable-update-agent config option and the corresponding
MOZ_UPDATE_AGENT config flag and define, as these should still be useful.
As we never shipped this there is no need to keep anything around to
clean up the scheduled tasks.
Differential Revision: https://phabricator.services.mozilla.com/D99574
Import the improvements made in mp4parse-rust repo. The changes would
save some redundant copy when calling avif related APIs and provide the
ability to get the alpha data of the parsed avif image.
Differential Revision: https://phabricator.services.mozilla.com/D98950
Import the improvements made in mp4parse-rust repo. The changes would
save some redundant copy when calling avif related APIs and provide the
ability to get the alpha data of the parsed avif image.
Differential Revision: https://phabricator.services.mozilla.com/D98950
This touches multiple parts at once, including:
* Remove usage of `this->` in C++ code
* Use `nsACString` across the FFI (no need for `ffi-support` anymore)
* Use `AUTF8String` in the IDL definition, so we can pass it on unmodified.
Differential Revision: https://phabricator.services.mozilla.com/D99034
Events are special in that they are generic over the type of extra keys
they can handle.
This makes them unsuitable to store in simple hashmaps, as (nearly) every event metric is its own type.
To still keep the nice and statically-checked Rust API, but also have
C++ and JS APIs we defer it all to a big ol' lookup table using `match`
at `record()` time.
Note:
While passing `extras` works it's not yet perfect.
The C++ API is hard to use.
The JavaScript API works, but is not documented.
Additionally `testGetValue` doesn't work yet for events in either language.
Differential Revision: https://phabricator.services.mozilla.com/D97450
Instantiating a wasm library duplicates a file descriptor for /dev/null 3 times to be used as input, output and error streams for the wasm sandboxed code. When a lot of sandboxes are created and destroyed, a lot of descriptors are duplicated and closed. While this should be fine, POSIX does not seem to happy with the opening and closing of many file descriptors --- this could perhaps be some strange interaction with Firefox's seccomp filters and cross-process file descriptor handling as it is difficult to repro this outside of firefox.
However, the simpler fix here was to just eliminate the duplication of /dev/null and return an error when input, output or error streams are accessed by wasm sandboxed code. This means calls to printf will fail, but no code I know off actually checks the int error code returned by printf and this change is certainly compatible with existing sandboxed components.
Differential Revision: https://phabricator.services.mozilla.com/D99160
Revendor Cranelift to 3b01b4b850bafb981a04383198c0b50d041dc5ef
from https://github.com/mozilla-spidermonkey/wasmtime branch firefox85.
The (only) purpose is to pull in this:
commit 31bac3eafbfda8f1ffb504cdeb75505d48537336
Merge: 93c199363 34d9931ed
Author: Nick Fitzgerald <fitzgen@gmail.com>
Date: Wed Nov 25 13:09:05 2020 -0800
Merge pull request #2450 from bytecodealliance/cfallin/fix-wasm-reachable
Fix Wasm translator bug: end of toplevel frame is branched-to only for fallthrough returns.
Differential Revision: https://phabricator.services.mozilla.com/D99204
This touches multiple parts at once, including:
* Remove usage of `this->` in C++ code
* Use `nsACString` across the FFI (no need for `ffi-support` anymore)
* Use `AUTF8String` in the IDL definition, so we can pass it on unmodified.
Differential Revision: https://phabricator.services.mozilla.com/D99034
Events are special in that they are generic over the type of extra keys
they can handle.
This makes them unsuitable to store in simple hashmaps, as (nearly) every event metric is its own type.
To still keep the nice and statically-checked Rust API, but also have
C++ and JS APIs we defer it all to a big ol' lookup table using `match`
at `record()` time.
Note:
While passing `extras` works it's not yet perfect.
The C++ API is hard to use.
The JavaScript API works, but is not documented.
Additionally `testGetValue` doesn't work yet for events in either language.
Differential Revision: https://phabricator.services.mozilla.com/D97450
The changes should be trivial.
The third_party changes are up for review in
https://github.com/servo/rust-cssparser/pull/277 (and of course I'll
land with a bump to 0.28 rather than the override after that gets r+'d).
The basic idea is that with this we have the actual start offset of the
rule, so we wouldn't include html comments or other invalid stuff we
discard during sanitization in bug 1680084. But that's a separate
change.
Differential Revision: https://phabricator.services.mozilla.com/D98677
The changes should be trivial.
The third_party changes are up for review in
https://github.com/servo/rust-cssparser/pull/277 (and of course I'll
land with a bump to 0.28 rather than the override after that gets r+'d).
The basic idea is that with this we have the actual start offset of the
rule, so we wouldn't include html comments or other invalid stuff we
discard during sanitization in bug 1680084. But that's a separate
change.
Differential Revision: https://phabricator.services.mozilla.com/D98677
js/src/wasm/cranelift/Cargo.toml lists wasmparser as a dependency, but this is
(confusingly) not necessary, since we use the version re-exported by Cranelift
(IIUC). So let's remove the dependency.
Differential Revision: https://phabricator.services.mozilla.com/D98372