From c4fe0223ab3ecd57f51a21352982344290c16d43 Mon Sep 17 00:00:00 2001 From: Timo K Date: Tue, 16 Jun 2026 16:42:24 +0200 Subject: [PATCH 1/2] remove blur on mobile --- src/livekit/TrackProcessorContext.tsx | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/livekit/TrackProcessorContext.tsx b/src/livekit/TrackProcessorContext.tsx index 02888466d..21cd609ea 100644 --- a/src/livekit/TrackProcessorContext.tsx +++ b/src/livekit/TrackProcessorContext.tsx @@ -7,7 +7,7 @@ Please see LICENSE in the repository root for full details. import { ProcessorWrapper, - supportsBackgroundProcessors, + supportsBackgroundProcessors as supportsBackgroundProcessorsLivekitSdk, type BackgroundOptions, } from "@livekit/track-processors"; import { @@ -29,6 +29,7 @@ import { import { BlurBackgroundTransformer } from "./BlurBackgroundTransformer"; import { type Behavior } from "../state/Behavior"; import { type ObservableScope } from "../state/ObservableScope"; +import { platform } from "../Platform"; //TODO-MULTI-SFU: This is not yet fully there. // it is a combination of exposing observable and react hooks. @@ -106,6 +107,10 @@ interface Props { children: JSX.Element; } +function supportsBackgroundProcessors(): boolean { + return supportsBackgroundProcessorsLivekitSdk() && platform === "desktop"; +} + export const ProcessorProvider: FC = ({ children }) => { // The setting the user wants to have const [blurActivated] = useSetting(backgroundBlurSettings); From 374f56651c19d5c1e31b1c0263dc71a03bfba9f8 Mon Sep 17 00:00:00 2001 From: "Timo K." Date: Wed, 8 Jul 2026 13:19:23 +0200 Subject: [PATCH 2/2] Consider voice calls starting in pip for playwright tests --- playwright/widget/voice-call-dm.spec.ts | 27 +++++++++++-------------- 1 file changed, 12 insertions(+), 15 deletions(-) diff --git a/playwright/widget/voice-call-dm.spec.ts b/playwright/widget/voice-call-dm.spec.ts index acbad4221..a17f380fc 100644 --- a/playwright/widget/voice-call-dm.spec.ts +++ b/playwright/widget/voice-call-dm.spec.ts @@ -31,12 +31,10 @@ widgetTest( const brooksFrame = brooks.page .locator('iframe[title="Element Call"]') .contentFrame(); - // We should show a ringing tile, let's check for that await expect( brooksFrame .getByTestId("videoTile") - .filter({ has: brooksFrame.getByText(whistler.displayName) }) .filter({ has: brooksFrame.getByText("Calling…") }), ).toBeVisible(); @@ -83,23 +81,22 @@ widgetTest( }), ).toBeVisible(); - // In order to confirm that the call is disconnected we will check that the message composer is shown again. - // So first we need to confirm that it is hidden when in the call. - await expect( - whistler.page.locator(".mx_BasicMessageComposer"), - ).not.toBeVisible(); - await expect( - brooks.page.locator(".mx_BasicMessageComposer"), - ).not.toBeVisible(); - - // ASSERT hanging up on one side ends the call for both - await brooksFrame.getByRole("button", { name: "End call" }).click(); - - // The widget should be closed on both sides and the timeline should be back on screen + // We confirm that we started in Pip mode (voice call) and check that we still see the composer. await expect( whistler.page.locator(".mx_BasicMessageComposer"), ).toBeVisible(); await expect(brooks.page.locator(".mx_BasicMessageComposer")).toBeVisible(); + + // ASSERT hanging up on one side ends the call for both + await brooksFrame.getByRole("button", { name: "End call" }).click(); + + // The widget should be closed on both sides + await expect( + whistler.page.locator('iframe[title="Element Call"]'), + ).not.toBeVisible(); + await expect( + whistler.page.locator('iframe[title="Element Call"]'), + ).not.toBeVisible(); }, );