From 8d232d95610746684f8014130592af7f560b33eb Mon Sep 17 00:00:00 2001 From: MBR-0001 <55142207+MBR-0001@users.noreply.github.com> Date: Fri, 25 Sep 2026 10:47:03 -0400 Subject: [PATCH] Backport pull request #8493 from jellyfin-web/release-12.z Fix Samsung Browser detection Original-merge: 351f87be322c2a0e5a03043b6e1b0d519c76d420 Merged-by: thornbill Backported-by: thornbill --- src/scripts/browser.js | 4 ---- src/scripts/browser.test.ts | 18 ++++++++++++++++++ 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/src/scripts/browser.js b/src/scripts/browser.js index b020d197db..0baa0644e1 100644 --- a/src/scripts/browser.js +++ b/src/scripts/browser.js @@ -10,10 +10,6 @@ function isTv(userAgent) { return true; } - if (userAgent.includes('samsungbrowser')) { - return true; - } - if (userAgent.includes('viera')) { return true; } diff --git a/src/scripts/browser.test.ts b/src/scripts/browser.test.ts index a86f473618..20f5e76db7 100644 --- a/src/scripts/browser.test.ts +++ b/src/scripts/browser.test.ts @@ -35,4 +35,22 @@ describe('Browser', () => { expect(browser.xboxOne).toBe(true); expect(browser.tv).toBe(true); }); + + it('should identify Samsung Tizen TV devices', () => { + // 2024 Samsung TV (Tizen 8.0) + const browser = detectBrowser('Mozilla/5.0 (SMART-TV; Linux; Tizen 8.0) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/7.0 Chrome/108.0.5359.1 TV Safari/537.36'); + expect(browser.tizen).toBe(true); + expect(browser.tizenVersion).toBe(8); + expect(browser.tv).toBe(true); + expect(browser.mobile).toBeFalsy(); + }); + + it('should not identify Samsung Browser (Android) as a TV', () => { + // Ref: https://developer.samsung.com/browser/user-agent-string-format.html + const browser = detectBrowser('Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/24.0 Chrome/117.0.0.0 Mobile Safari/537.36'); + expect(browser.android).toBe(true); + expect(browser.mobile).toBe(true); + expect(browser.tizen).toBeFalsy(); + expect(browser.tv).toBeFalsy(); + }); });