This is part 1 of 3 and vendors the [suggest component](https://github.com/mozilla/application-services/tree/main/components/suggest) from
application-services into m-c. `suggest` depends on `remote_settings`, so it was
also vendored. Part 2 will generate JS bindings with uniffi.
This is my first time doing this so I'll explain how I generated this patch in
case I did something wrong:
1. I manually added `suggest` to the following files:
* Top-level `Cargo.toml`
* `toolkit/library/rust/shared/Cargo.toml`
* `toolkit/library/rust/shared/lib.rs` -- I followed the example of `tabs`,
not sure if `suggest::uniffi_reexport_scaffolding!()` is necessary
2. I ran `./mach vendor rust`
That's it, there were no errors or problems.
Differential Revision: https://phabricator.services.mozilla.com/D187323
This avoids numerical stability problems when computing the
miter pointer intersection when the lines are nearly parallel.
Differential Revision: https://phabricator.services.mozilla.com/D187057
This updates aa-stroke to c7bc7190f6d3115bc81640c0433649c1fce9491c
which fixes some degenerate behaviour when mitering parallel lines.
Differential Revision: https://phabricator.services.mozilla.com/D186859
This updates aa-stroke to fef8702c4c8afd7d47e7a5aafb6fa347c96b50be
which fixes some degenerate behaviour when mitering parallel lines.
Differential Revision: https://phabricator.services.mozilla.com/D186859
We need to use libvorbis both from libavcodec and libxul during a transition
period while re-architecturing things, so this moves libvorbis and libogg (a
dependency) to a separate shared lib, linked when needed.
Differential Revision: https://phabricator.services.mozilla.com/D173458
ICU4X will be used by ECMA-402 implementation at future. So we should link it
to SpiderMonkey instead of libxul only.
Depends on D178157
Differential Revision: https://phabricator.services.mozilla.com/D167673
ICU4X will be used by ECMA-402 implementation at future. So we should link it
to SpiderMonkey instead of libxul only.
Depends on D178157
Differential Revision: https://phabricator.services.mozilla.com/D167673
We need to use libvorbis both from libavcodec and libxul during a transition
period while re-architecturing things, so this moves libvorbis and libogg (a
dependency) to a separate shared lib, linked when needed.
Differential Revision: https://phabricator.services.mozilla.com/D173458
Update:
- Glean to v53.1.0
- UniFFI to v0.24.1
- application-services to a recent nightly that uses the above
versions
- Updated `rusqlite` in toolkit/library/rust/shared/Cargo.toml
- Updated `uniffi-bindgen-gecko-js` to work with the new UniFFI. Also
updated it's askama version.
- Vetted new cargo dependencies
Ran `mach uniffi generate` to regenerate the code.
Differential Revision: https://phabricator.services.mozilla.com/D181872
Update:
- Glean to v53.1.0
- UniFFI to v0.24.1
- application-services to a recent nightly that uses the above
versions
- Updated `rusqlite` in toolkit/library/rust/shared/Cargo.toml
- Updated `uniffi-bindgen-gecko-js` to work with the new UniFFI. Also
updated it's askama version.
- Vetted new cargo dependencies
Ran `mach uniffi generate` to regenerate the code.
Differential Revision: https://phabricator.services.mozilla.com/D181872
First, instead of using a path, use a version, which is more convenient
(via a patch in the top-level Cargo.toml).
Second, we make the build system itself enforce its presence for any
crate that is hooked to the build system as a program or library.
Finally, for each crate depending on the workspace hack, we add a
feature named after it, and make the build system enforce that the
feature is set. For now, this remains unused, but the end goal is to
have each of those features enable the dependencies each of these
crates need, so that if crate A and B need dependency D, but crate C
doesn't, building crate C doesn't build D.
Differential Revision: https://phabricator.services.mozilla.com/D180910
Better control of the ABI has its own merit, but in that case, we
significantly shrink the amount of dynamic symbol, which in turns
reduces the size of the binary.
As this limits the exported symbol to one, there's no longer a risk to
conflict with libjs, so just remove the symbol versioning.
On linux64 opt build, this saves ~2.5MB on the installer size libxul.so
Do not apply this on Android as it's using some extra symbols from
libxul.
Exclude Android from the targets as it requires some extra symbols.
Differential Revision: https://phabricator.services.mozilla.com/D179806
There is a corner case that triggers an assert in wpf-gpu-raster if an empty sub-path
starts off a path. Just avoid the problem by eliding the sub-path, but at least handle
close correctly as per the Canvas2D closePath spec:
"The closePath() method, when invoked, must do nothing if the object's path has no subpaths.
Otherwise, it must mark the last subpath as closed, create a new subpath whose first point
is the same as the previous subpath's first point, and finally add this new subpath to the path."
Differential Revision: https://phabricator.services.mozilla.com/D181543
Better control of the ABI has its own merit, but in that case, we
significantly shrink the amount of dynamic symbol, which in turns
reduces the size of the binary.
As this limits the exported symbol to one, there's no longer a risk to
conflict with libjs, so just remove the symbol versioning.
On linux64 opt build, this saves ~2.5MB on the installer size libxul.so
Do not apply this on Android as it's using some extra symbols from
libxul.
Differential Revision: https://phabricator.services.mozilla.com/D179806
wpf-gpu-raster would blindly modify the last point type in a path when call was closed, even
if move_to preceded it directly and outputted no actual point type. In this case, we need to
ensure that we emit a start point if close is called immediately after move_to.
Differential Revision: https://phabricator.services.mozilla.com/D181358
Better control of the ABI has its own merit, but in that case, we
significantly shrink the amount of dynamic symbol, which in turns
reduces the size of the binary.
As this limits the exported symbol to one, there's no longer a risk to
conflict with libjs, so just remove the symbol versioning.
On linux64 opt build, this saves ~2.5MB on the installer size libxul.so
Do not apply this on Android as it's using some extra symbols from
libxul.
Differential Revision: https://phabricator.services.mozilla.com/D179806
Better control of the ABI has its own merit, but in that case, we
significantly shrink the amount of dynamic symbol, which in turns
reduces the size of the binary.
As this limits the exported symbol to one, there's no longer a risk to
conflict with libjs, so just remove the symbol versioning.
On linux64 opt build, this saves ~2.5MB on the installer size libxul.so
Differential Revision: https://phabricator.services.mozilla.com/D179806
Better control of the ABI has its own merit, but in that case, we
significantly shrink the amount of dynamic symbol, which in turns
reduces the size of the binary.
As this limits the exported symbol to one, there's no longer a risk to
conflict with libjs, so just remove the symbol versioning.
On linux64 opt build, this saves ~2.5MB on the installer size libxul.so
Differential Revision: https://phabricator.services.mozilla.com/D179806
This crate contains the required bits to store annotations in a process and
let the mozannotation_server crate find them and pull them out. Functionally
there's not much happening here as all the actual functionality is in
mozannotation_server.
Differential Revision: https://phabricator.services.mozilla.com/D173697