Simplified Sliding Sync (#28515)
* Experimental SSS Working branch to get SSS functional on element-web. Requires https://github.com/matrix-org/matrix-js-sdk/pull/4400 * Adjust tests to use new behaviour * Remove well-known proxy URL lookup; always use native This is actually required for SSS because otherwise it would use the proxy over native support. * Linting * Debug logging * Control the race condition when swapping between rooms * Dont' filter by space as synapse doesn't support it * Remove SS code related to registering lists and managing ranges - Update the spidering code to spider all the relevant lists. - Add canonical alias to the required_state to allow room name calcs to work. Room sort order is busted because we don't yet look at `bump_stamp`. * User bumpStamp if it is present * Drop initial room load from 20 per list to 10 * Half the batch size to trickle more quickly * Prettier * prettier on tests too * Remove proxy URL & unused import * Hopefully fix tests to assert what the behaviour is supposed to be * Move the singleton to the manager tyo fix import loop * Very well, code, I will remove you Why were you there in the first place? * Strip out more unused stuff * Fix playwright test Seems like this lack of order updating unless a room is selected was just always a bug with both regular and non-sliding sync. I have no idea how the test passed on develop because it won't run. * Fix test to do maybe what it was supposed to do... possibly? * Remove test for old pre-simplified sliding sync behaviour * Unused import * Remove sliding sync proxy & test I was wrong about what this test was asserting, it was suposed to assert that notification dots aren't shown (because SS didn't support them somehow I guess) but they are fine in SSS so the test is just no longer relevant. * Remove now pointless credentials * Remove subscription removal as SSS doesn't do that * Update tests * add test * Switch to new labs flag & break if old labs flag is enabled * Remove unused import & fix test * Fix other test * Remove name & description from old labs flag as they're not displayed anywhere so not useful * Remove old sliding sync option by making it not a feature * Add back unread nindicator test but inverted and minus the bit about disabling notification which surely would have defeated the original point anyway? * Reinstate test for room_subscriptions ...and also make tests actually use sliding sync * Use UserFriendlyError * Remove empty constructor * Remove unrelated changes * Unused import * Fix import * Avoid moving import --------- Co-authored-by: Kegan Dougal <7190048+kegsay@users.noreply.github.com>
This commit is contained in:
co-authored by
Kegan Dougal
parent
4fa540962a
commit
f59af3786e
@@ -198,7 +198,8 @@ export interface Settings {
|
||||
"feature_html_topic": IFeature;
|
||||
"feature_bridge_state": IFeature;
|
||||
"feature_jump_to_date": IFeature;
|
||||
"feature_sliding_sync": IFeature;
|
||||
"feature_sliding_sync": IBaseSetting<boolean>;
|
||||
"feature_simplified_sliding_sync": IFeature;
|
||||
"feature_element_call_video_rooms": IFeature;
|
||||
"feature_group_calls": IFeature;
|
||||
"feature_disable_call_per_sender_encryption": IFeature;
|
||||
@@ -210,7 +211,6 @@ export interface Settings {
|
||||
"feature_ask_to_join": IFeature;
|
||||
"feature_notifications": IFeature;
|
||||
// These are in the feature namespace but aren't actually features
|
||||
"feature_sliding_sync_proxy_url": IBaseSetting<string>;
|
||||
"feature_hidebold": IBaseSetting<boolean>;
|
||||
|
||||
"useOnlyCurrentProfiles": IBaseSetting<boolean>;
|
||||
@@ -539,7 +539,14 @@ export const SETTINGS: Settings = {
|
||||
true,
|
||||
),
|
||||
},
|
||||
// legacy sliding sync flag: no longer works, will error for anyone who's still using it
|
||||
"feature_sliding_sync": {
|
||||
supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS_WITH_CONFIG_PRIORITISED,
|
||||
supportedLevelsAreOrdered: true,
|
||||
shouldWarn: true,
|
||||
default: false,
|
||||
},
|
||||
"feature_simplified_sliding_sync": {
|
||||
isFeature: true,
|
||||
labsGroup: LabGroup.Developer,
|
||||
supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS_WITH_CONFIG_PRIORITISED,
|
||||
@@ -550,11 +557,6 @@ export const SETTINGS: Settings = {
|
||||
default: false,
|
||||
controller: new SlidingSyncController(),
|
||||
},
|
||||
"feature_sliding_sync_proxy_url": {
|
||||
// This is not a distinct feature, it is a legacy setting for feature_sliding_sync above
|
||||
supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS_WITH_CONFIG,
|
||||
default: "",
|
||||
},
|
||||
"feature_element_call_video_rooms": {
|
||||
isFeature: true,
|
||||
labsGroup: LabGroup.VoiceAndVideo,
|
||||
|
||||
@@ -11,20 +11,19 @@ import SettingController from "./SettingController";
|
||||
import PlatformPeg from "../../PlatformPeg";
|
||||
import SettingsStore from "../SettingsStore";
|
||||
import { _t } from "../../languageHandler";
|
||||
import { SlidingSyncManager } from "../../SlidingSyncManager";
|
||||
|
||||
export default class SlidingSyncController extends SettingController {
|
||||
public static serverSupportsSlidingSync: boolean;
|
||||
|
||||
public async onChange(): Promise<void> {
|
||||
PlatformPeg.get()?.reload();
|
||||
}
|
||||
|
||||
public get settingDisabled(): boolean | string {
|
||||
// Cannot be disabled once enabled, user has been warned and must log out and back in.
|
||||
if (SettingsStore.getValue("feature_sliding_sync")) {
|
||||
if (SettingsStore.getValue("feature_simplified_sliding_sync")) {
|
||||
return _t("labs|sliding_sync_disabled_notice");
|
||||
}
|
||||
if (!SlidingSyncController.serverSupportsSlidingSync) {
|
||||
if (!SlidingSyncManager.serverSupportsSlidingSync) {
|
||||
return _t("labs|sliding_sync_server_no_support");
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user