Commit Graph

404 Commits

Author SHA1 Message Date
Rob Wu
4373d1977d Bug 1645598 - Vendor application-services for fix in webext-storage r=lina
To get this fix: https://github.com/mozilla/application-services/pull/3235

Updated as follows:

```
sed -i 's/e8d7530319fa6c20d9de78d031c9398630eca3cd/61dcc364ac0d6d0816ab88a494bbf20d824b009b/g' services/fxaccounts/rust-bridge/firefox-accounts-bridge/Cargo.toml services/sync/golden_gate/Cargo.toml toolkit/components/extensions/storage/webext_storage_bridge/Cargo.toml toolkit/components/glean/Cargo.toml toolkit/library/rust/shared/Cargo.toml
./mach vendor rust
```

Verified by running the new regression test that I added in the bug:

```
./mach test toolkit/components/extensions/test/xpcshell/test_ext_storage_{local,sync,sync_kinto}.js
```

Differential Revision: https://phabricator.services.mozilla.com/D79628
2020-06-15 12:56:58 +00:00
Thom Chiovoloni
f3ad318a53 Bug 1629127 - Add sync telemetry for storage.sync migration r=lina,extension-reviewers,mixedpuppy
Differential Revision: https://phabricator.services.mozilla.com/D78573
2020-06-10 22:29:02 +00:00
Paul Adenot
53154b04f7 Bug 1644362 - Update cubeb-coreaudio-rs to 4cdbceadae8. r=cubeb-reviewers,achronop
Differential Revision: https://phabricator.services.mozilla.com/D78897
2020-06-09 13:17:37 +00:00
Corentin Arnould
44e84fdae5 Bug 1644080 - Updated cubeb-pulse-rs r=cubeb-reviewers,padenot
Depends on D78663

Differential Revision: https://phabricator.services.mozilla.com/D78664
2020-06-08 13:14:18 +00:00
Corentin Arnould
7fcbe22d57 Bug 1644080 - Updated cubeb-coreaudio-rs repository r=cubeb-reviewers,padenot
Differential Revision: https://phabricator.services.mozilla.com/D78663
2020-06-08 13:14:16 +00:00
Mark Hammond
3a34ff6993 Bug 1639449 - Vendor new application-services to expose kinto migration and sync change notifications. r=lina
Differential Revision: https://phabricator.services.mozilla.com/D76092
2020-05-30 02:44:07 +00:00
Paul Adenot
bbe4439f4c Bug 1638801 - Update cubeb-coreaudio-rs to 23cce. r=cubeb-reviewers,achronop
Differential Revision: https://phabricator.services.mozilla.com/D75775
2020-05-28 09:54:04 +00:00
Valentin Gosu
95297b5a6f Bug 1636891 - Move logging specifics from toolkit/library/rust/shared/lib.rs to the gecko_logger crate r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D76669
2020-05-28 07:46:40 +00:00
Ryan Kelly
b9fb019d24 Bug 1640765 - only build the rust fxa-client crate on Nightly. r=lina
Differential Revision: https://phabricator.services.mozilla.com/D76771
2020-05-27 05:51:39 +00:00
Bogdan Tara
7359119e52 Backed out changeset 0d3f76ede294 (bug 1640765) for rust related bustage CLOSED TREE 2020-05-27 07:06:35 +03:00
Ryan Kelly
df40888a8c Bug 1640765 - only build the rust fxa-client crate on Nightly. r=lina
Differential Revision: https://phabricator.services.mozilla.com/D76771
2020-05-27 03:22:15 +00:00
Lina Cambridge
703e6f40ff Bug 1638438 - Don't link webext_storage_bridge on Android. r=eoger
We ship the `mozIExtensionStorageArea` interface on Android, so that
GeckoView can eventually provide its own implementation, but not the
C++ glue for the XPCOM class...so we shouldn't be linking the bridge
into gkrust, either.

This commit also removes Rusqlite linking, since it's now linked in
via webext_storage_bridge => webext_storage => rusqlite.

Differential Revision: https://phabricator.services.mozilla.com/D75619
2020-05-27 02:33:14 +00:00
Tarik Eshaq
42b533b3b7 Bug 1638440 - Don't compile viaduct on Andriod. r=eoger
Conditionally link viaduct if the os is not android

Differential Revision: https://phabricator.services.mozilla.com/D76741
2020-05-26 13:43:44 +00:00
Lina Cambridge
34ea5930a0 Bug 1638557 - Remove the MOZ_NEW_WEBEXT_STORAGE build flag. r=markh
Now that we've landed all the pieces for Rust `storage.sync`, and
intend to ship it for everyone in 78, we don't need to hide it behind a
build flag. Setting the `webextensions.storage.sync.kinto` pref to
false toggles the new Rust backend at runtime.

Differential Revision: https://phabricator.services.mozilla.com/D75872
2020-05-19 00:48:03 +00:00
Edouard Oger
5285c9fe15 Bug 1631630 p2 - Implement FxAccounts rust-bridge. r=lina,rfkelly
Differential Revision: https://phabricator.services.mozilla.com/D71852
2020-05-16 01:07:31 +00:00
Noemi Erli
9f50b4af56 Backed out 2 changesets (bug 1631630) for causing mass braoser chrome failures CLOSED TREE
Backed out changeset 9b8606a93c75 (bug 1631630)
Backed out changeset d57ea5d1921f (bug 1631630)
2020-05-16 02:16:33 +03:00
Noemi Erli
65e53347c8 Backed out changeset 22a66a638fe5 (bug 1638438) for causing hunk failed on another backout 2020-05-16 02:15:45 +03:00
Lina Cambridge
5de561622b Bug 1638438 - Don't link webext_storage_bridge on Android. r=eoger
We ship the `mozIExtensionStorageArea` interface on Android, so that
GeckoView can eventually provide its own implementation, but not the
C++ glue for the XPCOM class...so we shouldn't be linking the bridge
into gkrust, either.

This commit also removes Rusqlite linking, since it's now linked in
via webext_storage_bridge => webext_storage => rusqlite.

Differential Revision: https://phabricator.services.mozilla.com/D75619
2020-05-15 22:19:25 +00:00
Edouard Oger
7c9aa4b36f Bug 1631630 p2 - Implement FxAccounts rust-bridge. r=lina,rfkelly
Differential Revision: https://phabricator.services.mozilla.com/D71852
2020-05-15 20:13:36 +00:00
Edouard Oger
a21f3bf762 Bug 1637537 - Bump application-services and anyhow versions. r=vladikoff
Differential Revision: https://phabricator.services.mozilla.com/D75150
2020-05-13 18:36:56 +00:00
Edouard Oger
4d259ddf16 Bug 1628068 p1 - Vendor viaduct crate. r=lina
Differential Revision: https://phabricator.services.mozilla.com/D70256
2020-05-12 21:36:17 +00:00
Bogdan Tara
1878f745f6 Backed out 2 changesets (bug 1628068) for ViaductRequest.cpp related bustages CLOSED TREE
Backed out changeset 013a469557c1 (bug 1628068)
Backed out changeset dcda2ce7b7f9 (bug 1628068)
2020-05-12 00:44:58 +03:00
Edouard Oger
df2682bc0f Bug 1628068 p1 - Vendor viaduct crate. r=lina
Differential Revision: https://phabricator.services.mozilla.com/D70256
2020-05-11 21:01:17 +00:00
Bogdan Tara
a23924e05b Backed out 2 changesets (bug 1628068) for ViaductRequest.cpp related bustages CLOSED TREE
Backed out changeset 928a5891c55d (bug 1628068)
Backed out changeset b6fe5d357bed (bug 1628068)
2020-05-11 23:52:47 +03:00
Edouard Oger
8888918f76 Bug 1628068 p1 - Vendor viaduct crate. r=lina
Differential Revision: https://phabricator.services.mozilla.com/D70256
2020-05-11 20:19:11 +00:00
Bogdan Tara
7a03283ca2 Backed out 2 changesets (bug 1628068) for ViaductRequest.cpp related bustages CLOSED TREE
Backed out changeset 1ea8f742ca69 (bug 1628068)
Backed out changeset 3aa2f99843e0 (bug 1628068)
2020-05-11 23:06:31 +03:00
Edouard Oger
80f67cc084 Bug 1628068 p1 - Vendor viaduct crate. r=lina
Differential Revision: https://phabricator.services.mozilla.com/D70256
2020-05-11 19:14:21 +00:00
Valentin Gosu
1dea85554c Bug 1624090 - Make it possible to forward rust logging into the Gecko logger r=froydnj
This makes it possible to enable rust logging at runtime using about:networking

Differential Revision: https://phabricator.services.mozilla.com/D73146
2020-05-09 11:24:33 +00:00
Jon Bauman
c239660e8c Bug 1624056 - Properly vendor mp4parse-rust. r=kinetik
This requires --build-peers-said-large-imports-were-ok since
third_party/rust/mp4parse/src/lib.rs is 113KB. This code is just moving from
media/mp4parse-rust to third_party/rust, so it's not really adding to net code
size.

Differential Revision: https://phabricator.services.mozilla.com/D74488
2020-05-09 00:36:48 +00:00
Paul Adenot
44960df985 Bug 1635404 - Update cubeb-coreaudio-rs and cubeb-pulse-rs. r=achronop
Differential Revision: https://phabricator.services.mozilla.com/D73869
2020-05-05 13:37:23 +00:00
Lina Cambridge
6c9d607642 Bug 1634191 - Wire up Golden Gate to the new Rust extension storage interface. r=markh
This commit adds syncing support to the `StorageSyncArea` class, via
the Golden Gate library.

It also changes the `BridgedEngine` trait: `initialize` and `finalize`
haven't been useful in practice, since that's managed by the storage
service, and the `LazyStore` takes care of setting up the storage
connection on first use. But, what we do need is a way to signal a
sync is starting, so that the engine can set up temp tables. That's
handled by the new `sync_started`.

Finally, this commit changes `BridgedEngine::set_uploaded` to take a
`sync15_traits::Guid` instead of a `String`.

Differential Revision: https://phabricator.services.mozilla.com/D73415
2020-05-05 06:59:32 +00:00
Lina Cambridge
0971b45745 Bug 1634191 - Pass BSO fields along with Sync record payloads to bridged Rust engines. r=markh
This commit splits `CryptoWrapper` into a base `RawCryptoWrapper`
class, which only handles encryption and decryption without
parsing the cleartext's contents, and the existing `CryptoWrapper`
class, which works like before.

Our bridged engine subclasses `RawCryptoWrapper`, and
implements some methods to convert records to and from envelopes.
Envelopes are a concept we introduced in `sync15_traits` to pass
along metadata from the BSO wrapper (like the modified time from the
server, and ID, to ensure they match) in addition to the cleartext.
This lets us reuse `sync15_traits::Payload` to parse record payloads
in Rust, and avoids parsing the cleartext in JS, only to stringify it
again when we pass it to the bridged Rust engine.

Differential Revision: https://phabricator.services.mozilla.com/D73581
2020-05-04 22:25:00 +00:00
Mike Hommey
edcfa25154 Bug 1632723 - Update builders to rustc 1.43. r=firefox-build-system-reviewers,rstewart
Differential Revision: https://phabricator.services.mozilla.com/D72771
2020-04-29 21:21:36 +00:00
Lina Cambridge
b9aaa9175d Bug 1634626 - Refactor interruption in Golden Gate. r=markh,tcsc
This commit removes the `nsICancelable` return values from all
`mozIBridgedSyncEngine` methods, and replaces them with a
`mozIInterruptible` interface that can be implemented by store
classes that support interrupting.

The `nsICancelable` pattern was intended to make each operation
interruptible, without affecting the others. But we can't guarantee
that with SQLite, because it only has a way to interrupt all
running statements on a connection, not specific ones. Further,
this pattern doesn't match what we currently do in a-s, where we
create an internal "interrupt scope" for each operation, and hand
out an "interrupt handle" for interrupting all in-progress
operations.

Storage classes like `StorageSyncArea` can opt in to interruption
by implementing `mozIInterruptible`. It's a separate interface to
protect against accidental misuse: because it interrupts all
statements on the connection, it might lose writes if the current
operation is a `set`, for example. But it's useful for testing and
debugging, so we still expose it.

This commit also changes Golden Gate ferries to hold weak references to
the `BridgedEngine`, so that they don't block teardown.

Differential Revision: https://phabricator.services.mozilla.com/D73413
2020-05-04 21:32:29 +00:00
Rob Wu
b73d04e731 Bug 1620621 - Add XPCOM FFI for rust_cascade r=emilio,vporof
Differential Revision: https://phabricator.services.mozilla.com/D66166
2020-04-30 10:02:25 +00:00
Razvan Maries
cec16e692a Backed out 8 changesets (bug 1620621) for build bustages. CLOSED TREE
Backed out changeset 14a57e32c414 (bug 1620621)
Backed out changeset 56b2b19a9bc1 (bug 1620621)
Backed out changeset 6df42b7528ec (bug 1620621)
Backed out changeset c23703684254 (bug 1620621)
Backed out changeset 206ad824e1bc (bug 1620621)
Backed out changeset e0f3e057b311 (bug 1620621)
Backed out changeset 12817823a3c9 (bug 1620621)
Backed out changeset 80dcb089ce8e (bug 1620621)
2020-04-30 12:29:30 +03:00
Rob Wu
0f40924b9b Bug 1620621 - Add XPCOM FFI for rust_cascade r=emilio,vporof
Differential Revision: https://phabricator.services.mozilla.com/D66166
2020-04-30 02:48:42 +00:00
Mark Hammond
3ae86a33a9 Bug 1634257 - expose wipe_all to mozIExtensionStorageArea. r=lina
Differential Revision: https://phabricator.services.mozilla.com/D73191
2020-04-30 08:16:26 +00:00
Stefan Hindli
8dc300ce39 Backed out changeset 13bb4d7dde88 (bug 1634257) for spidermoney bustages CLOSED TREE 2020-04-30 10:56:43 +03:00
Mark Hammond
8074d6ea61 Bug 1634257 - expose wipe_all to mozIExtensionStorageArea. r=lina
Differential Revision: https://phabricator.services.mozilla.com/D73191
2020-04-30 07:08:38 +00:00
Dorel Luca
67675fba77 Backed out 8 changesets (bug 1620621) for XPCshell failures in xpcshell/rs-blocklist/test_blocklist_mlbf_fetch.js
Backed out changeset 06fccc75c09e (bug 1620621)
Backed out changeset 8b4e286967c0 (bug 1620621)
Backed out changeset cfde27a748fd (bug 1620621)
Backed out changeset 7abf836343be (bug 1620621)
Backed out changeset 1a28d1de8f76 (bug 1620621)
Backed out changeset 90c08438be0a (bug 1620621)
Backed out changeset 723a3b4e7bbf (bug 1620621)
Backed out changeset bbc991f09d5d (bug 1620621)
2020-04-30 05:44:28 +03:00
Rob Wu
3794c9f4a5 Bug 1620621 - Add XPCOM FFI for rust_cascade r=emilio,vporof
Differential Revision: https://phabricator.services.mozilla.com/D66166
2020-04-29 23:26:48 +00:00
Lina Cambridge
2a4864de64 Bug 1633943 - Support tearing down a Rust StorageSyncArea. r=markh
This commit wires up `StorageSyncArea::teardown()` to call the new
`webext_storage::Store::close()` method.

It also changes `teardown` to drop the `LazyStore`, and thus close its
database connection, on the main thread if dispatching to the task
queue fails. Dispatch should only fail at shutdown, and putting the
owned reference back only adds indirection, since the `StorageSyncArea`
will still drop its `LazyStore` later in shutdown.

Finally, it includes an xpcshell test fix for
https://github.com/mozilla/application-services/pull/3050.

Differential Revision: https://phabricator.services.mozilla.com/D72992
2020-04-29 04:35:45 +00:00
Paul Adenot
ec39c29027 Bug 1633266 - Bump audio_thread_priority to 0.22.1. r=kinetik
Differential Revision: https://phabricator.services.mozilla.com/D72636
2020-04-28 07:54:54 +00:00
Noemi Erli
494caff9e1 Backed out changeset 36cb992cb56a (bug 1633266) for causing build bustages CLOSED TREE 2020-04-28 10:51:56 +03:00
Paul Adenot
b29cd72948 Bug 1633266 - Bump audio_thread_priority to 0.22.1. r=kinetik
Differential Revision: https://phabricator.services.mozilla.com/D72636
2020-04-27 22:41:47 +00:00
Lina Cambridge
fac317acc5 Bug 1626128 - Change Golden Gate to depend on sync15_traits. r=markh
Now that `BridgedEngine` has been moved to `sync15_traits`, we can
remove `golden_gate_traits` from the tree, and change Golden Gate to
depend on `sync15_traits` directly.

This commit also adds a Cargo feature, `services_sync`, which reflects
the `MOZ_SERVICES_SYNC` config option. In the future, we'll use this
feature to gate implementations of `mozIBridgedSyncEngine`.

Differential Revision: https://phabricator.services.mozilla.com/D72784
2020-04-28 04:13:04 +00:00
Alex Chronopoulos
6d31482e76 Bug 1632093 - Update cubeb-pulse-rs. r=padenot
Differential Revision: https://phabricator.services.mozilla.com/D72729
2020-04-27 19:11:25 +00:00
Lina Cambridge
a6ceb1ac24 Bug 1626506 - Add a binding for the new extension storage Rust component. r=markh
The `webext_storage_bridge` crate introduced in this commit bridges the
`mozIExtensionStorageArea` XPCOM interface to the `webext_storage` Rust
component from Application Services.

This commit factors out the following parts from bug 1623245, so that
we can land them piecemeal:

* The `mozIExtensionStorageArea` interfaces, which implement all the
  methods needed to support the `storage.sync` API.
* A Rust implementation of the above, in `StorageSyncArea`.
* A `StorageTask` type, for dispatching storage operations to a
  background task queue.
* A `LazyStore`, which wraps the Rust component's `Store` and lazily
  initializes it on the background queue the first time it's used.
* A `StorageSyncService`, which is our singleton. It holds on to a
  configured `StorageSyncArea`, and hands out references to it via
  `getInterface`. Eventually, we'll extend this to support syncing,
  too.

Differential Revision: https://phabricator.services.mozilla.com/D71897
2020-04-27 05:40:54 +00:00
Lina Cambridge
d8d6a3f4f4 Bug 1626506 - Vendor the webext_storage component. r=markh
Hooray, our first Application Services Rust component! This is a
mechanical run of `mach vendor rust`, split out into its own commit
to make reviewing the Firefox bindings easier.

Differential Revision: https://phabricator.services.mozilla.com/D71895
2020-04-27 05:40:52 +00:00