Commit Graph

11046 Commits

Author SHA1 Message Date
Jorge Martín
97d772dd05 test: reverse the logic behind test_focused_timeline_reacts so it checks no reactions are received 2025-02-17 09:47:23 +01:00
Jorge Martín
f28c64ba21 test: modify pinned event tests to make sure we don't add events from paginations or syncs to the timeline 2025-02-17 09:47:23 +01:00
Jorge Martín
20dd15e256 fix(timeline): Don't add events to the pinned events timeline when we receive them on paginations/syncs 2025-02-17 09:47:23 +01:00
Ivan Enderlin
f33d10468d refactor(base): Remove the sliding_sync::http re-export.
This patch removes the `pub use ruma::api::client::sync::sync_events::v5
as http` re-export in `matrix_sdk_base::sliding_sync`.
2025-02-14 14:00:39 +01:00
Ivan Enderlin
d3b3b4db10 chore(base): Remove the sliding_sync module.
This patch inlines `sliding_sync::http` inside `sliding_sync`. Then, the
`sliding_sync/mod.rs` file is renamed to `sliding_sync.rs`.
2025-02-14 14:00:39 +01:00
Ivan Enderlin
38e28643f1 fix: Remove support for MSC3575. 2025-02-14 14:00:39 +01:00
Valere
9de6d28270 logging(crypto): Add more logs when identity or devices change 2025-02-14 10:43:42 +01:00
Benjamin Bouvier
9f47201bab bench: add a profiling profile that doesn't enable LTO for quick rebuilds 2025-02-14 09:02:38 +01:00
Benjamin Bouvier
0b7140c123 bench: add a benchmark to measure how long it takes to fill a timeline with lots of initial items 2025-02-14 09:02:38 +01:00
Damir Jelić
28a4918ff6 chore(test): Increase the timeout for the sync service offline mode test 2025-02-13 17:00:42 +01:00
Benjamin Bouvier
534cd599f4 doc: remove internal links to macro
Those worked fine until now, but it seems they started to fail after
including the `testing` feature in the benchmark repository. Oh well.
2025-02-13 16:02:10 +01:00
Benjamin Bouvier
910a5ce90a ci: add a task to compile benchmarks
This adds a task to compile the benchmarks in CI, without running them,
and with the lowest level of optimization that's available (the `dev`
profile).
2025-02-13 16:02:10 +01:00
Benjamin Bouvier
dadd01a4ea chore: fix benchmarks and use the MatrixMockServer in there too 2025-02-13 16:02:10 +01:00
Damir Jelić
c4a9059814 Merge branch 'oidc_e2e' 2025-02-13 15:59:20 +01:00
Damir Jelić
51a1cd3c67 Merge pull request #4604 from zecakeh/qr-login-oauth2
refactor(auth-qrcode): Use oauth2 crate instead of openidconnect
2025-02-13 15:42:51 +01:00
Kévin Commaille
c6d2ab4637 chore: Fix changelog location
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2025-02-13 15:26:11 +01:00
Kévin Commaille
c6c7307d6e Merge branch 'main' into qr-login-oauth2 2025-02-13 15:20:10 +01:00
Kévin Commaille
9c9944aa0c chore: Update changelog for TLS 1.2
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2025-02-13 14:21:25 +01:00
Kévin Commaille
b311197d41 feat(sdk): Only allow TLS 1.2 or newer
As recommended by BCP 195.

It shouldn't be a problem with rustls that only supports TLS 1.2 and 1.3, but with native-tls it depends on the implementation.

Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2025-02-13 14:21:25 +01:00
Benjamin Bouvier
1068d88c3e fix(event cache store): shortcut when there's no duplicate events to check at all
Otherwise this causes a panic when repeating the events variable, when
generating the SQL query below.
2025-02-13 13:43:49 +01:00
Damir Jelić
861078a95e feat: Add a memoized variant of Oidc::fetch_account_management_url 2025-02-13 12:32:42 +01:00
Damir Jelić
aa9aef44f7 refactor: Rename Oidc::account_management_url to fetch_account_management_url 2025-02-13 12:32:42 +01:00
Damir Jelić
f2ad11a56a refactor(client): Create a common struct for client caches 2025-02-13 12:32:42 +01:00
Damir Jelić
12c327292f feat(common): Add a simple TTL cache implementation 2025-02-13 12:32:42 +01:00
Kévin Commaille
31e78c2a1b refactor(oidc): Only support public clients (#4634)
This should be the most common case, and is already the only case
supported by the higher level APIs like `url_for_oidc` and
`login_with_qr_code`. It simplifies the API because we can call
`restore_registered_client` directly from `register_client`, which was a
TODO.

- [x] Public API changes documented in changelogs (optional)

---------

Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2025-02-13 11:40:17 +01:00
Benjamin Bouvier
8a64922130 test(event cache): address review comments and add a test for storage deduplication 2025-02-13 10:53:20 +01:00
Benjamin Bouvier
2ae142f257 refactor(event cache): get rid of a few generics
The YAGNI crew strikes again.
2025-02-13 10:53:20 +01:00
Benjamin Bouvier
faa0e6e554 feat(event cache): allow using the bloom filter OR the store to deduplicate events 2025-02-13 10:53:20 +01:00
Benjamin Bouvier
b95cf79a6d refactor(event cache): move the gist of deduplication into BloomFilterDeduplicator 2025-02-13 10:53:20 +01:00
Benjamin Bouvier
28cd8beb77 refactor(event cache): rename Deduplicator to BloomFilterDeduplicator 2025-02-13 10:53:20 +01:00
Ivan Enderlin
1918bd5f6b chore(base): Rename variables. 2025-02-12 16:50:14 +01:00
Ivan Enderlin
d45addee10 feat(base): Add EventCacheStore::filter_duplicated_events.
This patch adds and implements the
`EventCacheStore::filter_duplicated_events` method. It is implemented on
the `MemoryStore` and the `SqliteEventCacheStore`.

This method remove the unique events and reutrn the duplicated events.
2025-02-12 16:50:14 +01:00
Ivan Enderlin
ed16e91aed fix: RoomEventCache::subscribe is now infallible.
This patch updates `RoomEventCache::subscribe` to be infallible. This
method wasn't able to return something else than an `Ok`. The return
type has been updated from `Result<T>` to `T`.
2025-02-12 16:35:03 +01:00
Ivan Enderlin
714caae545 chore(sqlite): Remove a useless indentation.
This patch removes a useless indentation.
2025-02-12 16:13:40 +01:00
Andy Balaam
25bb607b27 feat(crypto): Allow fetching encryption info using session ID 2025-02-12 14:00:14 +00:00
Andy Balaam
c9a6ae9549 fix(tests): Prevent test flake by using different names for the test stores 2025-02-12 13:45:20 +00:00
Benjamin Bouvier
58099fd6b5 test(timeline): add new tests for fetching replies that are UTD or sticker or polls 2025-02-12 14:28:17 +01:00
Benjamin Bouvier
c5856a33f0 test(timeline): rewrite and comment fetch_details() test 2025-02-12 14:28:17 +01:00
Benjamin Bouvier
a5f115f21f test(timeline): use the MatrixMockServer in integration/timeline/replies 2025-02-12 14:28:17 +01:00
Benjamin Bouvier
ddd84e231b feat(timeline): support more timeline item content kinds in replied-to details 2025-02-12 14:28:17 +01:00
Benjamin Bouvier
51e9df87f5 chore(timeline): add some logs when fetching a reply details 2025-02-12 14:28:17 +01:00
Benjamin Bouvier
aec4d37a2e refactor(event cache): fold all_deduplicated computation into collect_valid_and_duplicated_events 2025-02-12 14:10:14 +01:00
Benjamin Bouvier
ceafc2155f refactor(event cache): move the Deduplicator instance to RoomEventCacheState
The `RoomEvents` doesn't hold the `Deduplicator` instance now, it's the
role of the `RoomEventCacheState`. This slightly simplifies the code, in
a few cases.
2025-02-12 14:10:14 +01:00
Benjamin Bouvier
4a37d6ebe2 refactor(event cache): move remove_events_and_update_insert_position to the public impl block
Only code motion.
2025-02-12 14:10:14 +01:00
Benjamin Bouvier
10095f8627 refactor(event cache): rename RoomEvents::remove_events to remove_events_by_id
And move it to the public implementation.

Only code motion and renaming, no changes in functionality.
2025-02-12 14:10:14 +01:00
Benjamin Bouvier
84bb1ab595 refactor(event cache): extract deduplication outside the RoomEvents events methods 2025-02-12 14:10:14 +01:00
Ivan Enderlin
fce7999890 chore(common) Split the test_insert_items_at tests.
This patch splits the `test_insert_items_at` test into 5 tests.
2025-02-11 17:32:20 +01:00
Ivan Enderlin
10b72ef4b4 test(common): Update test_replace_item.
This patch updates the `test_replace_item` test to ensure
`Update::ReplaceItem` is correct.
2025-02-11 17:32:20 +01:00
Ivan Enderlin
bfbb354c39 chore(common): Split a test into 3 tests.
This patch splits the `test_replace_at` test into 3 smaller tests.
2025-02-11 17:32:20 +01:00
Ivan Enderlin
9db137af44 refactor(common): LinkedChunk can start by a gap.
This patch removes the invariant stating that a `LinkedChunk` must start
by a chunk of type items. This has never been really useful but it's now
annoying to have this (with iterative loading of a `LinkedChunk` via the
`EventCache`, it's now possible to get a gap as the first chunk). Let's
remove this invariant.
2025-02-11 17:32:20 +01:00