This was largely done manually to try and bring app-services and
mozilla-central closer together. With this patch we can vendor
into mozilla-central, including when most of our mobile crates are
built into libxul in the Android monorepo, oak.
This patch also re-forks find-places-db to avoid using a now orhpaned
crate which no mozilla staff had access to update.
Replaces the email with more granular ownership emails, the sync team
crates are owned by <sync-team@mozilla.com> and the nimbus creates are
owned by <project-nimbus@mozilla.com>
Mostly mechanical, the one extra step was to add the `serde::derive`
feature to `remote_settings`. I guess it's not pulling that feature in
from `uniffi` anymore.
oneshot is a new dependency for UniFFI. It specifies its license in
Cargo.toml but doesn't include the file, so I linked to the official
Apache 2.0 license text.
When deleting a bookmark that has no visits, that origin will remain in
moz_origins until a complete history wipe is done. This is the same
behaviour as desktop, sadly considered a bug, and described in
bug 1650511.
- Switched to using workspace dependencies, this will make future
updates much simpler
- Updated code to work with the new UniFFI crate structure
- Updated the error-support integration tests to work with the workspace
dependencies, following this advice: https://stackoverflow.com/a/71461114.
When doing #5139 I tried to have a test-utils feature for sync15,
which didn't really work out for various reasons but it was left in.
Currently `cargo test -p sync15 --features=sync-client` fails, although
CI doesn't every run that (it runs with default and all features)
This PR kills that feature entirely.
Reworks how BSOs work in all syncable components.
This adopts some of the BridgedEngine model - specifically, there's now
an IncomingBso and OutgoingBso, each with a corresponding IncomingEnvelope
and OutgoingEnvelope. There's also a new formalized "content" mechanism
for serializing and deserializing payloads to and from some T, with a
sane and consistent procedure for handling tomebstones and malformed
records.
BridgedEngine and SyncEngine now work using these new types, getting us
closer to fully integrating these engines into a single trait.
This kills sync15::Payload entirely in favor of the new system.
Went through all the main app-services components and replaced the
old-style `log::error!` calls with `error_support::report_error!`.
Removed the `reporting` feature of `error-support` and made it
always-enabled.
Renamed the `report_error` function so that it's name doesn't clash with
the `report_error` macro
* Update rand and parking_lot.
I need this to update other Gecko dependencies.
* Update dependency_summary to account for various windows-rs crates.
I'm not sure why it wasn't failing to find the relevant licenses before,
it was likely a pre-existing issue.
* Update dependency summaries.
* Runs dependency summaries on a mac
Co-authored-by: Emilio Cobos Álvarez <emilio@crisal.io>
The query plan format is unstable, and new versions of SQLite, including
the version now used by Firefox, is different and incompatible. When I
wrote the support for it initially, I ported it by hand it from the
visualization used in the `sqlite3` command line shell.
In practice, it helped a little. I'd be unsurprised if nobody's used it
since -- it was not really very convenient to work with. The main reason
I added it was because I didn't know how to access the functionality
from the SQLite command line shell, because of how many custom functions
we use in our queries.
Since then, I've learned that if you SQLite was built with
[`-DSQLITE_ENABLE_UNKNOWN_SQL_FUNCTION`][doc] (my default one was not,
but compiling SQLite is straightforward), SQLite will substitute custom
functions inside `EXPLAIN` and `EXPLAIN QUERY PLAN` queries (and only
inside those -- this is the whole point of that flag) with a special
"`unknown()`" function allowing the query plan to still be generated.
This is a more convenient stable way to get this functionality, as it is
amenable to tweaking the query, adding indices, etc. and seeing how the
plan changes as a result -- avoiding the need to recompile a large Rust
codebase and rerun its test suite. But more importantly, it's stable,
and does not tie you to an old version of SQLite.
[doc]: https://www.sqlite.org/compile.html#enable_unknown_sql_function
* Prepare Nimbus for using uniffi Custom types
* Update places to use renamed Custom types
* Increment uniffi version number
* Update Cargo.lock
* Fixup ktlint
* initial conversion of errors for places uniffication
* Converted history metadata functions for places uniffication
* Converted kotlin history metadata functions
* Converted iOS history metadata functions
* [Places uniffication] Fix places error issues (#4687)
* remove uniffi-specific wrapper and updated error test
* Uniffi VisitObservation and apply_observation (#4689)
* uniffied VisitObservation, HistoryVisitInfo and methods using those structs
* Uniffi top frecent site info (#4711)
* Uniffi top frecent site info
* Uniffis FrecencyThresholdOption
* Uniffi Places Sync (#4714)
* uniffi places sync and sync15 functions
* Uniffi Search result and match url (#4720)
* Uniffi query autocomplete
* uniffi places_accept_result
* uniffi places_match_url
* cargo fmt
* cargo clippy
* remove accept_result from ffi crate
* Adds comment on the uniffi bug with varaint shadowing type
* Uniffi Places Interrupt methods (#4726)
* uniffi places interrupt functions
* Consolidate types (#4736)
* Updates the visit observation to use URL
* Uses VisitTransition for HistoryVisitInfo
* updates uniffi to 0.16
* Uniffied bookmarks
* switch to use uint in the apis for adding bookmarks (#4747)
* Remove the manual places FFI entirely.
* folders and separators now have non-nullable parents
* Always insert via Insertable items, and clarify separation between node types.
* Add json_tree module with all json-based types and implementation.
* Fix swift warnings re non-null parentGuid
* bookmarks: Remove public_node and introduce a fetch module
* Update swift code to make breaking changes fixes cleaner (#4766)
* rebased and added changelog entry
Co-authored-by: lougeniac64 <lougeniaC64@users.noreply.github.com>
Co-authored-by: Tarik Eshaq <teshaq@mozilla.com>
Co-authored-by: Mark Hammond <mhammond@skippinet.com.au>
This is intended to be a small but significant step on the road to uniffi-ing
places. It takes all the hard stuff from Ryan's #3900, but limits the scope to just
the new-ish history_metadata module.
Co-authored-by: Ryan Kelly <ryan@rfk.id.au>
Co-authored-by: Sammy Khamis <skhamis@mozilla.com>
- Updates components/support/error/src/lib.rs to have
its own backtrace rather than using failure::backtrace
- Changes all occurences of #[derive(failure::Fail)] with
#[derive(thiserror::Error)]
- Changes all occurences of failure::Error with anyhow::Error
- Replaces Result<T, failure::Error> with anyhow::Result<T>
- Bumps ece, find_places_db and hawk so that they don't use
failure either
- Modifies rc_crypto/ece_crypto to work with ece v1.2