From 1488060c3832557f125ed21c2d688bb085d3c456 Mon Sep 17 00:00:00 2001 From: Frank3K <8014077+Frank3K@users.noreply.github.com> Date: Tue, 7 Jul 2026 22:54:11 +0200 Subject: [PATCH] fix: enable Quick Look AR in third-party iOS browsers without ios-src The AR button stopped appearing in Chrome (and Edge/Firefox/DuckDuckGo) on iOS unless an explicit `ios-src` was provided. Those browsers can launch Quick Look with model-viewer's auto-generated USDZ, so the `ios-src` requirement is unnecessary and regressed behavior that worked in 4.2.0. Drop the `(!IS_IOS_THIRDPARTY || this.iosSrc != null)` clause from the quick-look mode selection. Quick Look remains disabled in the Google Search App webview (`!IS_IOS_GSA`), where it is genuinely broken. Fixes #5185 --- packages/model-viewer/src/features/ar.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/model-viewer/src/features/ar.ts b/packages/model-viewer/src/features/ar.ts index 54f28d1c58..ef0f4d7cf4 100644 --- a/packages/model-viewer/src/features/ar.ts +++ b/packages/model-viewer/src/features/ar.ts @@ -17,7 +17,7 @@ import {property} from 'lit/decorators.js'; import {Object3D} from 'three'; import {USDZExporter} from 'three/examples/jsm/exporters/USDZExporter.js'; -import {IS_AR_QUICKLOOK_CANDIDATE, IS_IOS_GSA, IS_IOS_THIRDPARTY, IS_SCENEVIEWER_CANDIDATE, IS_WEBXR_AR_CANDIDATE} from '../constants.js'; +import {IS_AR_QUICKLOOK_CANDIDATE, IS_IOS_GSA, IS_SCENEVIEWER_CANDIDATE, IS_WEBXR_AR_CANDIDATE} from '../constants.js'; import ModelViewerElementBase, {$needsRender, $progressTracker, $renderer, $scene, $shouldAttemptPreload, $updateSource} from '../model-viewer-base.js'; import {enumerationDeserializer} from '../styles/deserializers.js'; import {ARStatus, ARTracking} from '../three-components/ARRenderer.js'; @@ -244,7 +244,7 @@ configuration or device capabilities'); break; } if (value === 'quick-look' && IS_AR_QUICKLOOK_CANDIDATE && - !IS_IOS_GSA && (!IS_IOS_THIRDPARTY || this.iosSrc != null)) { + !IS_IOS_GSA) { arMode = ARMode.QUICK_LOOK; break; }