Safari is the web browser developed by Apple and built into all Apple devices.

Posts under Safari tag

200 Posts
Sort by:

Post

Replies

Boosts

Views

Activity

Significant Safari 17.2.1 animation slowdown on MacOS 12.7.2
https://www.kardland.com uses Javascript and animation for playing a could solitaire card games. Playing FreeCell for example (https://kardland.com/freecell.html), initially the animation is okay as cards are auto-put-away for the player. But as the game continues it gets more and more sluggish to the point it becomes nearly unplayable. I have a 92MB screen recording but am apparently unable to attach to this post.
1
0
255
Jan ’24
Immersive AR mode of WebXR in visionOS Safari
After enabling WebXR following instructions from https://developer.apple.com/forums/thread/732629, I can successfully run WebXR, but it is limited to VR. I cannot get AR running. If I try await navigator.xr.isSessionSupported("immersive-ar"), the result is false. But if I try await navigator.xr.isSessionSupported("immersive-vr"), the result is true. I double checked that I specifically checked the box "WebXR Augmented Reality Module" in the Safari feature flags. Any idea how to enable WebXR AR mode? Thanks in advance!
1
1
818
Dec ’23
WebGPU issue with unpack4x8unorm on Safari Technology Preview 185
Hi, With Safari Technology Preview Release 185 (Safari 17.4, WebKit 19618.1.9.8) the compiler seems to struggle with unpack4x8unorm() instruction (at least). https://www.w3.org/TR/WGSL/#unpack4x8unorm-builtin Repro code: https://skal65535.github.io/webgpu/bug_unpack.html This modified version of 'hello triangle' should display a single triangle but doesn't. Uncommenting line 51 makes the triangle appear. Actually, adding the instruction: _ = unpack4x8unorm(0xdeadbeef); anywhere in the code triggers the bug, no matter if the line is used or not. Tested on a MacBook Pro M1 Sonoma 14.2.1 (23C71) Works fine with Chrome 120.0.6099.109 (Official Build) (arm64)
1
0
310
Dec ’23
Safari iOS 17 layout issue
Safari on iOS 17, when entering characters into text input box after deleting characters, the layout is off. Here's the HTML: <body> <div id="J001" style="display: inline-block;"> <div id="J001__0" style="display: inline-block;"> <input id="J001__0__input" style="display: inline-block; height: 28px; padding:2px; border:1px solid gray;"></div> <div id="J003__0" style="display: inline-block;"> <button id="J003__0__btn" style="display: inline-block; height:34px;">a</button> </div> </div> </body> Enter "A" into text input box. Delete "A" with the backspace(x). Enter "A" into text input box, the button position will be shifted down. iOS 17 の Safari にて、テキスト入力ボックスで文字を削除した後、文字を入力するとレイアウトが崩れます。 テキスト入力ボックスに「A」と入力します。 バックスペース(x)で「A」を削除します。 テキスト入力ボックスに「A」と入力すると、ボタンの位置が下にずれます。
0
0
561
Dec ’23
Safari memory leak when webgl scene dipose and rebuid serval times
I have created a scene using THREEJS that loads GLTF files and image-format tile maps. When I repeatedly destroy and rebuild the scene, I notice that the memory keeps increasing in the Safari browser, but the same code performs normally in the Chrome browser. I have ensured that I properly dispose of all relevant resources when destroying the scene. THREEJS Version: r138 Google Chrome Version: 119.0.6045.200 Safari Version: 17.0(19616.1.27.211.1) Is there anyone who can give me some advice? Thanks!!!
1
0
347
Dec ’23
iOS 17 Safari dropped support for #canonicalWebPageURL links?
iOS 17 Safari will not successfully open .reality (Reality Composer) files from a weblink. For example, this code works fine on iOS 16: The same code generates this message on iOS 17 after clicking on the link: "Object requires a newer version of iOS." QuickLook fails to render anything. I validated that the .reality file works fine when opened from iOS 17 Files app, so it's not a damaged file.
0
1
464
Dec ’23
Safari 17 blocking my JavaScript SDK completely in Private Browsing Mode
Hi Safari team, I am a product manager working for a large content recommendation company. Our JavaScriot SDK is running on more than 9000 leading publishers worldwide and has been certified to be aligned with global legal and privacy regulations and guidelines. We have the following problem: Since the launch of Safari 17 (in iOS, iPadOS, and MacOS) - we can see our JavaScript SDK blocked when the user uses the private browsing mode Safari 17 sometimes identifies our loading and rendering JavaSctipt files as any request/action by our domain to be a tracking activity (we see the JavaScript files in the console tagged with “Blocked connection to known tracker” log) In previous Safari versions, we only got the tracking functionality blocked, allowing our content to render We have the following questions: Can JavaScript running in Safari detect the user has the privacy mode turned on? Was there something specific in Safari 17 “Tracking Protection” functionality that now blocks content rendering on the page in addition to tracking activity? Context: We can run our JavaScript without performing any form of tracking, either directly by my domain or any other 3rd party vendor we are working with. We will render our content without performing any form of tracking or fingerprinting We are already following Apple’s iOS IDFA guidelines. Our iOS SDK, for example, detects and respects when the user opts out from sharing the IDFA on an iOS app running our code. In that case, we show our content without breaching the App Tracking Transparency framework rules. Besides sponsored content, our JavaScript SDK also powers organic recommendations for our clients. With Safari 17 blocking anything in private browsing mode, we see unfair interference with organic engagement. Please let us know if you provide guidance to allow our JavaScript SDK to render content when the user uses the private browsing mode, adhering to the privacy requirements. Thank you for helping! Omri.
0
0
1.1k
Dec ’23
Safari Security Vulnerability - CSP policy bypassed script on Safari while chrome successfully blocking it.
on our web pages we have allowed certain sources of scripts though content-security-policy meta tag which is working fine as expected on Chrome browser and on Internet Edge. However there is a script called morosa.top when it inserted in our html page, safari is not able to block it while it was supposed to block. if this script gets executed it start taking screenshots of screen and post it to hacker. Please check this could be a potential issue. [Edited by Moderator]
1
0
583
Jan ’24
JavaScript engine quietly fails in Safari and WKWebView if certain function names are used
Any page that has a JavaScript function named "top()" in it causes JavaScript to fail. The function doesn't need to be called or even contain anything. eg. function top() { } JavaScript just locks up. This affects iOS17.2 and macOS 14.2 If occurs in Safari and any app using WKWebView This is a critical bug that affects sites and apps in the wild. I suggest there is something very wrong with the Javascript engine in general if certain function names can cause such a failure. Does anyone else have other function names that cause this failure?
1
0
541
Feb ’24
iOS and iPadOS date pickers ignores min/max date range when opening
In web-based apps we want date pickers to open to a previous month based on the min-max date range specified on the input. We do not want to set a specific day but want the user to select a date. Android devices and Windows OS (Chrome and Edge) all behave as expected, namely, when the calendar loads the first month specified as the min value displays. iOS devices always open the calendar showing the current month and ignore the min/max attributes on the input. Additionally, the current date is selected making it very easy for the use to accidentally choose the wrong date by accidentally closing the date picker. It appears that iOS is the only platform not supporting min/max on date inputs. Will this be fixed? Or is it this by design? For example, today is December 13, 2023, we expect that selecting the following input to open the native calendar displaying November 2023 and to not select a date. <input autocomplete="off" type="date" placeholder="M/d/yy" min="2023-11-01" max="2023-11-30">
0
1
819
Dec ’23
Safari 17+: Image file got automatically converted to HEIC extension
Issue: The image file mime type got converted to HEIC by Safari To reproduce: Create an HTML file with <input type="file" accept="image/*,image/heic" /> Try to upload a photo with .jpeg or .png Print out the file object The file name would be changed to some temporary name with .heic extension Expected: The conversion should not happen after adding the image/heic to the accept mime type. The accept mine type with image/heic should be allowed and cannot be removed for other modern browsers which do not support .heic. Otherwise, the system browse dialog would disable .heic type. Other findings: If image/heic is removed from the accept mime type, the file object would be printed out as its original extension. It only happens with Safari 17+. Original file object: File: { lastModified: 1702417372000, name: "leo2.jpeg", size: 170584, type: "image/jepg", webkitRelativePath: "" } Converted file object: File: { lastModified: 1702417636000, name: "tempImageHjyd3l.heic", size: 170429, type: "image/heic", webkitRelativePath: "" }
2
1
839
Dec ’23
How to influence 'Automatic' format selection of photos in iOS Safari photo picker?
In my app mobile web app, it is common for users to select lots of photos at once. One of the issues is that by default, it seems that iOS converts the photos selected before returning them, and doesn't have a good UX for indicating what it is doing. It just looks like nothing happens after you tap 'Add'. The more photos selected, the longer it takes as it is converting them in the background without an indication of what is happening. My app can handle unconverted, HEIC format, photos. So it is ideal if the photo picker from Safari just returns the images in their original format. In iOS 17, there is an 'Options' button in the picker that provides a 'FORMAT' selection which defaults to 'Automatic'. The other 2 options are 'Current' and 'Most Compatible'. The subtext indicates that 'Automatic' will use the 'best format for the destination'. Given that, is there a way for me to indicate to the photo picker from safari that 'Current' is the best format for my destination? I tried setting the 'accept' attribute on my file input field to be 'image/*' which I thought made the most sense. But it still seems to default to converting all the images. It is a pain to have to educate users to manually go and adjust the format option to be 'Current'. It would be great if I could indicate in my html file input field that I want the picker to return non converted files. I can't find a way to do this, or really any documentation about this for that matter. If anyone knows where documentation is, or how to do it, I would appreciate the help greatly :). Thank you! Josh
0
0
408
Dec ’23
Any way to keep a web extension alive to post messages to the page?
I am writing a midi polyfill, to bridge Core Midi with Safari. This, in itself, is not a problem. The problem is that the Web Extension will get suspended the moment it's no longer actively called. This means that no callbacks due to midi changes from core midi can be passed back to the web page. If I use a setInterval call in background.js, then this keeps the extension alive somewhat, but the setInterval self ping will get aborted eventually, making the Extension suspend itself. I know of a fairly contrived workaround using the container application over XPC, but I am hoping there is a way to keep the Web Extension alive - or at least keep a thread in the same process as the Web Extension alive. Or any such workaround. Setting background to "persistent": true does not seem to make any difference.
0
0
485
Dec ’23
iOS Web Apps - Notification.permission reports as "default", after tapping on a notification that uses clients.openWindow
One Line Summary Notification.permission is incorrectly reported as "default" on iOS App Webs, this happens when tapping on a notification that results in a new "window" being opened via clients.openWindow. Why this is is important to fix This is confusing to the end-user as sites will check Notification.permission and see it is "default" and then attempt to show the end-user a soft notification permission prompt again. Steps to reproduce the issue On a iOS 16.4 or newer device open https://ios-webapp-notification-new-window-permission-bug.glitch.me in Safari Tap share button Tap "Add to Home Screen" Open the iOS Web App you just added Tap "Prompt Notification permission" On the iOS native notification permission prompt press "Allow" Tap "Display notification" Tap on the notification [Safari/iOS Bug] Observe Notification.permission reports as "default" when it should be "granted" What devices are affected I have reproduce this issue on an iPhone 14 Pro on both iOS 16.7.2 & 17.1.2. However I would expect all iOS 16.4+ devices to be effected.
0
1
471
Dec ’23
BlockStoragePolicy on Safari
My team is attempting to use an an add-in for Outlook for Mac that stores a Microsoft account access credentials in safari, so that it can refresh the credentials in the background and not force users to manually re-login every time the credentials expire. The update to safari that prevents local storage has prevented this from working correctly. It appears that the local storage prevention policy can be disabled with this command: 'defaults write com.apple.Safari BlockStoragePolicy -bool false' This initially seemed to work but no long seems to be allowing the credentials to be stored. I was unable to find any documentation as to what exactly this command does. I wanted to see if anyone knew exactly what this command does and if there is a variation or alternative command that would make local storage in safari allowed again.
0
0
251
Dec ’23
network system extension + Safari 17.1.2 BREAKS protocol stack
Someone else may want to test this with their network system extension, but I found a nasty interaction with Apple's latest software update for Safari and my network system extension. Summary: When I had my network system extension installed and updated to Safari 17.1.2, all networking was lost. I first ran into this problem yesterday and documented in this thread. Today, I tried to pin it down on Ventura. This test Hardware: M1 Mac mini OS: macOS Ventura 13.6.1 (downloaded from Mac App Store) Safari version 16.6 Network system extension (mine) When I updated to Safari Version 17.1.2, I lost all networking! Furthermore, I could not uninstall my network extension. Deleting the app with the network system extension didn't help. Fix 1: Disabled SIP Removed my network system extension (at which point networking worked fine again) Reenabled SIP Reinstalled my network system extension Everything works fine. Fix 2 I re-ran the experiment (same initial set up) Hardware: M1 Mac mini OS: macOS Ventura 13.6.1 (downloaded from Mac App Store) Safari version 16.6 Network system extension (mine) This time: I removed my network system extension first I updated to Safari 17.1.2 (this time no problems) I reinstalled my network system extension Everything works fine Having the network system extension in place and then updating Safari to 17.1.2 broke things pretty badly for me. Was there something I did wrong with my network system extension design?
3
0
657
Dec ’23