The iOS Simulator is incredibly useful for debugging. However, once a PWA has been saved to Home screen it is no longer possible to inspect in via Safari Web Inspector. Will this be addressed?
Explore the integration of web technologies within your app. Discuss building web-based apps, leveraging Safari functionalities, and integrating with web services.
Post
Replies
Boosts
Views
Activity
When I login to an account on a subdomain of a main domain, I want to be able to store a separate password for the same login id on the main domain account. This doesn't seem possible in the current Safari implementation.eg: domain.com is the main domain and is the general information site.my.domain.com is the subdomain that hosts the customer support.I want different passwords on each for the same login ID... Can't I do this?--marcel
webkitEnterFullScreen API is supported on iOS for video element, but not for a div element. Also as a fullscreen demo website shown, Safari on macOS supports div element but not on iOS. Is there any plan to add the support in iOS? If not is there any way to fullscreen a div element or make it run as fullscreen on Safari iOS?
::-webkit-scrollbar-thumb does not work in iOS 13 devices, Need to change thumb colour from black to white for dark background.
Tried below solution but not working.
::-webkit-scrollbar-thumb {
background: white;
}
Any suggestions.
Thanks
Hello,
I am in the process of converting a Web Extension to a Safari Extension. I need to use browser.downloads.onCreated.addListener in my extension but the browser.downloads API is not supported yet.
Do I have another way to do that?
Hi folks,
We're building a Safari web extension and experiencing an issue to see it among extensions in Safari after installing the container app to /Applications and launching it.
The app and extension is notarized and signed with Developer ID
After an extensive investigation, we found the following log records in the Console app (the extension ID is redacted):
Computing the code signing dictionary failed for extension with identifier com.youcompany.safariext Blocking extension with identifier: com.youcompany.safariext
To debug the issue, we've created a HelloWorld-like extension generated by Xcode 12.2 beta 4 (http s://sharedartifacts.s3.eu-central-1.amazonaws.com/safariext.app.zip contains a signed app bundle)
It also is under the same code signing issue.
According to https://developer.apple.com/documentation/xcode/notarizing_macos_software_before_distribution/resolving_common_notarization_issues, we've run a few checks to verify:
code signature
➜	Desktop codesign -vvv --deep --strict ./safariext.app					
...-prepared:/Users/nikolay/Desktop/safariext.app/Contents/PlugIns/safariext Extension.appex
...-validated:/Users/nikolay/Desktop/safariext.app/Contents/PlugIns/safariext Extension.appex
...
./safariext.app: valid on disk
./safariext.app: satisfies its Designated Requirement
signing certificate
➜	Desktop spctl -vvv --assess --type exec ./safariext.app		
./safariext.app: accepted
source=Notarized Developer ID
origin=Developer ID
secure timestamp
...
Timestamp=25 Nov 2020 at 22:23:54
...
We seemed to have all checks good, the extension can be installed only if Safari is allowed to run unsigned extensions.
Could anyone assist to debug/resolve this issue?
Thanks
Is there a way to offer a one click installation of a PWA or prompt the user to install it in Safari on iOS?
Hitting Share then Add to home page is pretty clunky for the user and means having to provide instructions within the app on how to install from Safari.
Hello,
I'm keeping on getting a failure when trying to install an App from Samsung Dex. The report says to "disconnect your phone to install" but NO phone is connected. I tried various command line and numerous troubleshooting to reset and refresh some KEXT but still issue exists.
Here is the install.log below.
What could be the work around this bug?
How to reset and proceed with installation?
Thank you
p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 16.0px 'Helvetica Neue'; color: #262626; -webkit-text-stroke: #262626; background-color: #ffffff}
span.s1 {font-kerning: none}
2021-07-08 19:33:08-04 KPs-iMac Installer[9137]: @(#)PROGRAM:Install PROJECT:Install-1000
2021-07-08 19:33:08-04 KPs-iMac Installer[9137]: @(#)PROGRAM:Installer PROJECT:Installer-1020
2021-07-08 19:33:08-04 KPs-iMac Installer[9137]: Hardware: iMac18,2 @ 3.00 GHz (x 4), 32768 MB RAM
2021-07-08 19:33:08-04 KPs-iMac Installer[9137]: Running OS Build: macOS 11.4 (20F71)
2021-07-08 19:33:08-04 KPs-iMac Installer[9137]: Env: USER=KP
2021-07-08 19:33:08-04 KPs-iMac Installer[9137]: Env: __CFBundleIdentifier=com.apple.installer
2021-07-08 19:33:08-04 KPs-iMac Installer[9137]: Env: COMMAND_MODE=unix2003
2021-07-08 19:33:08-04 KPs-iMac Installer[9137]: Env: LOGNAME=KP
2021-07-08 19:33:08-04 KPs-iMac Installer[9137]: Env: PATH=/usr/bin:/bin:/usr/sbin:/sbin
2021-07-08 19:33:08-04 KPs-iMac Installer[9137]: Env: SSH_AUTH_SOCK=/private/tmp/com.apple.launchd.LsIZhGSQv0/Listeners
2021-07-08 19:33:08-04 KPs-iMac Installer[9137]: Env: SHELL=/bin/zsh
2021-07-08 19:33:08-04 KPs-iMac Installer[9137]: Env: HOME=/Users/KP
2021-07-08 19:33:08-04 KPs-iMac Installer[9137]: Env: __CF_USER_TEXT_ENCODING=0x1F5:0x0:0x0
2021-07-08 19:33:08-04 KPs-iMac Installer[9137]: Env: TMPDIR=/var/folders/d_/hqzchb455m9ct55v66n3n2_w0000gn/T/
2021-07-08 19:33:08-04 KPs-iMac Installer[9137]: Env: XPC_SERVICE_NAME=application.com.apple.installer.1152921500312163432.1152921500312163437
2021-07-08 19:33:08-04 KPs-iMac Installer[9137]: Env: XPC_FLAGS=0x0
2021-07-08 19:33:08-04 KPs-iMac Installer[9137]: Samsung DeX Installation Log
2021-07-08 19:33:08-04 KPs-iMac Installer[9137]: Opened from: /Volumes/Samsung DeX/Install Samsung DeX.pkg
2021-07-08 19:33:09-04 KPs-iMac Installer[9137]: Package Authoring Error: <background_scaling> has an unsupported MIME type: X-NSObject/NSNumber
2021-07-08 19:33:09-04 KPs-iMac Installer[9137]: Package Authoring Error: <background_alignment> has an unsupported MIME type: X-NSObject/NSNumber
2021-07-08 19:33:09-04 KPs-iMac Installer[9137]: Package Authoring Error: has an unsupported MIME type: X-NSObject/NSNumber
2021-07-08 19:33:09-04 KPs-iMac Installer[9137]: Failed to load specified background image
2021-07-08 19:33:09-04 KPs-iMac Installer[9137]: Product archive /Volumes/Samsung DeX/Install Samsung DeX.pkg trustLevel=350
2021-07-08 19:33:09-04 KPs-iMac Installer[9137]: External component packages (2) trustLevel=350
2021-07-08 19:33:09-04 KPs-iMac Installer[9137]: Could not load resource readme: (null)
2021-07-08 19:33:16-04 KPs-iMac Installer[9137]: Installation checks failed.
2021-07-08 19:33:16-04 KPs-iMac Installer[9137]: Installation check failure. . Disconnect your phone to install..
My understanding is that the iOS service worker does not support background sync or a periodic sync. ( if this is not true please point me to the documentation that describes the support of these features... )
High level use case.
My users of my app will be filling out forms during the day while off line ( out of cell phone coverage )... then at the end of the day they will travel back into coverage at which point the WEB app would automatically send those POSTS without User interaction. How would you accomplish this on an iOS device... ( key is without having to relaunch the app )
thank you
Hi there - I am trying to port over Chrome extension over to Safari Web extension. Looks like Safari has a very aggressive permissions flow which isn't a great user experience but I get the privacy benefits.
I am trying to move some of my permissions like <all_urls> or tabs as optional permissions and build a flow where I can request the user for them in hopes that i can educate them as to why I need them similar to how Chrome/FF have it.
However when i use browser.permissions.request - i always end up getting true without invoking the prompt. The prompt seems to come up regardless when i start visiting a website.
Can someone help with this? Sounds more like a defect in Safari.
After iOS15.4 was released, we noticed the issue. It seems a system bug. It's waiting for the lock for a long time(dead lock).
Hardware Model: iPhone13,3
Process: app [9492]
Path: /private/var/containers/Bundle/Application/***/app.app/app
Identifier: com.aaa.app
AppStoreTools: 13C90b
AppVariant: 1:iPhone13,3:15
Code Type: ARM-64 (Native)
Role: Foreground
Parent Process: launchd [1]
Coalition: com.aaa.app [956]
Date/Time: 2022-03-17 18:04:46.2811 +0800
Launch Time: 2022-03-17 17:35:18.7389 +0800
OS Version: iPhone OS 15.4 (19E241)
Release Type: User
Baseband Version: 2.53.01
Report Version: 104
Exception Type: EXC_CRASH (SIGKILL)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Exception Note: EXC_CORPSE_NOTIFY
Termination Reason: FRONTBOARD 2343432205
<RBSTerminateContext| domain:10 code:0x8BADF00D explanation:scene-update watchdog transgression: application<com.aaa.app>:9492 exhausted real (wall clock) time allowance of 10.00 seconds
ProcessVisibility: Background
ProcessState: Running
WatchdogEvent: scene-update
WatchdogVisibility: Background
WatchdogCPUStatistics: (
"Elapsed total CPU time (seconds): 20.970 (user 13.070, system 7.900), 35% CPU",
"Elapsed application CPU time (seconds): 0.829, 1% CPU"
) reportType:CrashLog maxTerminationResistance:Interactive>
Triggered by Thread: 0
Kernel Triage:
VM - pmap_enter failed with resource shortage
VM - pmap_enter failed with resource shortage
Thread 0 name:
Thread 0 Crashed:
0 libsystem_kernel.dylib 0x00000001cddd1178 __ulock_wait + 8
1 libsystem_platform.dylib 0x0000000207a399ac _os_unfair_lock_lock_slow + 172 (lock.c:578)
2 JavaScriptCore 0x00000001a26f1c38 pas_page_sharing_pool_take_least_recently_used + 800 (lock_private.h:684)
3 JavaScriptCore 0x00000001a26f2cf4 pas_physical_page_sharing_pool_take + 248 (pas_page_sharing_pool.c:716)
4 JavaScriptCore 0x00000001a26ca2ec bmalloc_medium_bitfit_page_config_specialized_allocator_try_allocate + 260 (pas_page_sharing_pool.c:862)
5 JavaScriptCore 0x00000001a26cf48c bmalloc_heap_config_specialized_local_allocator_try_allocate_slow + 328 (pas_local_allocator_inlines.h:1595)
6 JavaScriptCore 0x00000001a26ba39c bmalloc_allocate_impl_casual_case + 888 (pas_local_allocator_inlines.h:1796)
7 JavaScriptCore 0x00000001a19d6fb8 ***::RobinHoodHashTable<***::RefPtr<***::UniquedStringImpl, ***::RawPtrTraits<***::UniquedStringImpl>, ***::DefaultRefDerefTraits<***::UniquedStringImpl> >, ***::KeyValuePair<***::RefPtr<***::Uniqu... + 52 (FastMalloc.h:219)
8 JavaScriptCore 0x00000001a19c6a2c ***::HashTableAddResult<***::HashTableIterator<***::RobinHoodHashTable<***::RefPtr<***::UniquedStringImpl, ***::RawPtrTraits<***::UniquedStringImpl>, ***::DefaultRefDerefTraits<***::UniquedStringIm... + 140 (RobinHoodHashTable.h:729)
9 JavaScriptCore 0x00000001a19c3dac JSC::BytecodeIntrinsicRegistry::BytecodeIntrinsicRegistry(JSC::VM&) + 33204 (BytecodeIntrinsicRegistry.cpp:59)
10 JavaScriptCore 0x00000001a23931fc JSC::VM::VM(JSC::VM::VMType, JSC::HeapType, ***::RunLoop*, bool*) + 11444 (unique_ptr.h:728)
11 JavaScriptCore 0x00000001a2395fd8 JSC::VM::createContextGroup(JSC::HeapType) + 52 (VM.cpp:241)
12 JavaScriptCore 0x00000001a1811dc0 JSContextGroupCreate + 32 (JSContextRef.cpp:70)
13 JavaScriptCore 0x00000001a14aa2a4 -[JSVirtualMachine init] + 24 (JSVirtualMachine.mm:94)
14 JavaScriptCore 0x00000001a14aa304 -[JSContext init] + 32 (JSContext.mm:71)
15 WebKit 0x00000001a5058b94 API::SharedJSContext::ensureContext() + 56 (APISerializedScriptValueCocoa.mm:51)
16 WebKit 0x00000001a5058ad4 API::SerializedScriptValue::deserialize(WebCore::SerializedScriptValue&, OpaqueJSValue const**) + 44 (APISerializedScriptValueCocoa.mm:78)
17 WebKit 0x00000001a50d7180 ScriptMessageHandlerDelegate::didPostMessage(WebKit::WebPageProxy&, WebKit::FrameInfoData&&, API::ContentWorld&, WebCore::SerializedScriptValue&) + 136 (WKUserContentController.mm:152)
18 WebKit 0x00000001a5424da4 WebKit::WebUserContentControllerProxy::didPostMessage(***::ObjectIdentifier<WebKit::WebPageProxyIdentifierType>, WebKit::FrameInfoData&&, unsigned long long, ***::Span<unsigned char const, 18446744... + 732 (WebUserContentControllerProxy.cpp:346)
19 WebKit 0x00000001a5708dcc WebKit::WebUserContentControllerProxy::didReceiveMessage(IPC::Connection&, IPC::Decoder&) + 2716 (HandleMessage.h:139)
20 WebKit 0x00000001a5159b60 IPC::MessageReceiverMap::dispatchMessage(IPC::Connection&, IPC::Decoder&) + 264 (MessageReceiverMap.cpp:129)
21 WebKit 0x00000001a5381dac WebKit::WebProcessProxy::didReceiveMessage(IPC::Connection&, IPC::Decoder&) + 40 (AuxiliaryProcessProxy.cpp:247)
22 WebKit 0x00000001a514e2ac IPC::Connection::dispatchMessage(std::__1::unique_ptr<IPC::Decoder, std::__1::default_delete<IPC::Decoder> >) + 788 (Connection.cpp:1080)
23 WebKit 0x00000001a514d960 IPC::Connection::dispatchIncomingMessages() + 508 (Connection.cpp:1229)
24 JavaScriptCore 0x00000001a265de10 ***::RunLoop::performWork() + 200 (Function.h:82)
25 JavaScriptCore 0x00000001a265ebac ***::RunLoop::performWork(void*) + 36 (RunLoopCF.cpp:46)
26 CoreFoundation 0x000000019632ff04 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 28 (CFRunLoop.c:1972)
27 CoreFoundation 0x0000000196340c90 __CFRunLoopDoSource0 + 208 (CFRunLoop.c:2016)
28 CoreFoundation 0x000000019627a184 __CFRunLoopDoSources0 + 268 (CFRunLoop.c:2053)
29 CoreFoundation 0x000000019627fb4c __CFRunLoopRun + 828 (CFRunLoop.c:2951)
30 CoreFoundation 0x00000001962936b8 CFRunLoopRunSpecific + 600 (CFRunLoop.c:3268)
31 GraphicsServices 0x00000001b232d374 GSEventRunModal + 164 (GSEvent.c:2200)
32 UIKitCore 0x0000000198bf8e88 -[UIApplication _run] + 1100 (UIApplication.m:3511)
33 UIKitCore 0x000000019897a5ec UIApplicationMain + 364 (UIApplication.m:5064)
34 app 0x0000000104cd277c main + 388 (main.mm:38)
35 dyld 0x0000000109919ce4 start + 520 (dyldMain.cpp:879)
I would like to create a web app where you can drag and drop emails from Apple Mail (on macOS).
When you drag emails to the desktop an .eml file is created, but when you drag emails to the browser no file is being transferred, I can only get the mail’s subject.
So is it possible to drag and drop emails from Apple Mail to browsers? And if yes, then how? So far I've tried chrome and safari, but neither got any files with the dragged element. On windows with outlook or thunderbird this wasn’t an issue, so I hope it can be done with apple mail as well.
Thanks in advance
Whenever I'm on this site on Safari and I log in, after a little while pages will load very very slow or not at all and reeplies to posts will fail over and over. In general this website becomes unusable under safari and upon restarting (i can't just log out because that won't work either) Safari, everything works again.
This affects the documentation pages too, not just the forums. So I'll quit, log in, try to put in my post as fast as possible before I can't anymore.
I usually copy and paste my post before hitting submit incase my time has ran out.
I have updated my web extension to use Manifest v3.
While trying to test, I get the error:
_The service_worker script failed to load due to an error.
_
I do not see details on the error, or a place where to find details. Any suggestions?
I'm not sure what is special about Gmail, but my declarativeNetRequest rules are totally ignored.
I make an web extension that blocks email trackers (1x1 pixel images embedded in emails to track if and when you open email sent to you). All images in Gmail are loaded through Google's proxy: googleusercontent.com/proxy/#originalURL
But no matter what I do, I can't block a single image that is loaded in an email. To try and prove it is a bug in Safari, I created a new template web extension in Xcode.
I block all resourceTypes (images and other should be all that is needed) and added two rules:
Block all images loaded through Google's proxy server (this should block all embedded images in all emails)
Block any image with copper in the URL (just in case the blocking doesn't apply to the proxy root url for some reason).
{
"id": 1,
"priority": 1,
"action": { "type": "block" },
"isUrlFilterCaseSensitive": false,
"condition": {
"regexFilter": "googleusercontent.com/proxy",
"resourceTypes": [
"image",
"media",
"main_frame",
"sub_frame",
"stylesheet",
"script",
"font",
"xmlhttprequest",
"ping",
"websocket",
"other"
]
}
},
{
"id": 2,
"priority": 1,
"action": { "type": "block" },
"isUrlFilterCaseSensitive": false,
"condition": {
"regexFilter": "copper",
"resourceTypes": [
"image",
"media",
"main_frame",
"sub_frame",
"stylesheet",
"script",
"font",
"xmlhttprequest",
"ping",
"websocket",
"other"
]
}
}
]
Even though I know this isn't needed, I also added the requester domain (mail.google.com) and the proxy domain (googleusercontent.com) to the permissions list in the manifest file:
...
"declarative_net_request": {
"rule_resources": [{
"id": "ruleset_1",
"enabled": true,
"path": "rules.json"
}]
},
"permissions": [
"declarativeNetRequest",
"*://mail.google.com/*",
"*://*.googleusercontent.com/proxy/*"
]
If I open an email from copper, the image still loads in Gmail
If I right click and select "Open Image in New Tab", the image will not load and I am told it was blocked
If I open a test page that has two images in it, one the image from the email, the image is blocked and the other image is not (as expected, the second image is from wikipedia and should not be blocked)
Running the same extension in Chrome DOES block the image in Gmail (and in all the other cases too)
We're having problems in iOS 15.0+ with WKWebView and this assertion:
[assertion] Error acquiring assertion: <Error Domain=RBSServiceErrorDomain Code=1 "target is not running or doesn't have entitlement com.apple.runningboard.assertions.webkit" UserInfo={NSLocalizedFailureReason=target is not running or doesn't have entitlement com.apple.runningboard.assertions.webkit}>
[ProcessSuspension] 0x116004e40 - ProcessAssertion: Failed to acquire RBS assertion 'ConnectionTerminationWatchdog' for process with PID=11505, error: Error Domain=RBSServiceErrorDomain Code=1 "target is not running or doesn't have entitlement com.apple.runningboard.assertions.webkit" UserInfo={NSLocalizedFailureReason=target is not running or doesn't have entitlement com.apple.runningboard.assertions.webkit}
No problems for iOS versions < 15, and disabling this feature fixed the issue for us. We are looking to understand if this feature is intended to be enabled as part of iOS 15's official release. Curious if there is any insight available.
I recently noticed that putting the app on background for some time, then switching back to it again causes the WKWebView to reload the current page, same with just hitting f5 on it. How do we disable this behavior?
When a WKWebView implements the WKNavigationDelegate protocol, clicking a link inside the webview gives back WKNavigationTypeLinkActivated as WKNavigationType in the decidePolicyForNavigationAction.
But clicking on a link inside an iframe gives back WKNavigationTypeOther, which makes it impossible to know if the url is requested on load or on click.
Context:
When a webview loads html (and embedded css, js, iframes, or XHR calls from JS ...), decidePolicyForNavigationAction gives back WKNavigationTypeOther as actionType , so I know content is loading and should be rendered in the webview. When a link is clicked, it gives back WKNavigationTypeLinkActivated so I know I need to show an in-app browser to show the content. This isn't the case with links clicked within an iframe (an <a> tag with href attribute); they return WKNavigationTypeOther
I'm using manifest v3 and working on a Safari extension. When I try to run a function within activeTab. I can not get the proper return from the the function.
For example:
browser.scripting.executeScript({
target:{tabId:tab.id},
func:()=>'test',
}).then(result=>{
console.log('result',result)
})
Here the result is always null. Is it a bug?
Nothing wrong with permission settings because if I use files instead of func, the return value works properly.
Safari: Version 16.1 (18614.2.3.1.1)
macOS 13.0 Beta
Xcode: Version 14.0 beta 5
Thanks
Hi,
We have PWA and we are loading it in WKWebViews but when we run it in simulator using xcode biometric login functionality is not working (Touch id) for which we have used webauthn.
Is there any way to resolve this issue while using WKWebviews?