Friday, March 15, 2024

Default Handler 1.0

Edovia (Mastodon):

We were encouraged to find that approximately 80% of respondents expressed a positive inclination towards adopting Screens 5 as the default [vnc: URL] handler. However, we also acknowledge and respect the opinions of the remaining 20% who expressed a preference for maintaining the existing setup.

[…]

Although APIs exist for setting default handlers at runtime, Apple has opted not to extend access to these APIs for sandboxed applications, a stipulation essential for approval on the Mac App Store.

[…]

So the solution we came up with is an app, called Default Handler. Given that this app operates outside the constraints of sandboxing, it can freely utilize the APIs mentioned earlier.

The URL handler settings are less potentially dangerous than other things that Apple has allowed in sandboxed apps and sometimes gated with TCC or an entitlement. So I don’t see why they aren’t allowed in the Mac App Store. Any API can be abused, and App Review should be able to do something if an app ends up misbehaving.

Another option would have been to provide an Internet Config–style system settings pane. It would be more reasonable to block this functionality from apps if there were a way for the user to set it on their own. This would also be useful in its own right, as users could see the settings and adjust them as needed all in one place.

Instead, Apple just blocked the API, so the user needs to download an app that’s totally unsandboxed. Edovia is a reputable developer, so I don’t have any qualms about Default Handler in particular, but the big picture of Apple’s decisions here makes little sense.

Previously:

7 Comments RSS · Twitter · Mastodon

I've been using this pref pane for years to do the same thing. It still works in Sonoma.

https://github.com/Lord-Kamina/SwiftDefaultApps

Corentin Cras-Méneur

RCDefaultApp:
https://www.rubicode.com/Software/RCDefaultApp/
It’s old, not signed, but it works great!! I’ve been using it for ever…

Corentin Cras-Méneur

Actually, I see that SwiftDefaultApp is a replacement for the venerable RCDefaultApp!
The old one still works for me in Sonoma :-)

The first bit of Cocoa code that I ever released (god knows how long ago, maybe first half of the 2000's) was a pref pane called 'More Internet' that did this. I abandoned it about the time that prefpanes switched to 64-bit only...

It is a bit ironic, that you have to download and install a random "insecure" app from GitHub to fix how your "secure" app from the App Store is working.

>We were encouraged to find that approximately 80% of respondents expressed a positive inclination towards adopting Screens 5 as the default [vnc: URL] handler.

80% of people who want to buy a third-party VNC client also want that VNC client to be their default? One would think it's closer to 100%.

> Actually, I see that SwiftDefaultApp is a replacement for the venerable RCDefaultApp!
The old one still works for me in Sonoma :-)

That is quite lucky indeed. I have not been able to make RCDefaultApp work in Ventura and while SwiftDefaultApp tries, Apple has probably broken, moved, or done other jiggery-pokey stuff to make RCDefaultApp's / SwiftDefaultApp's features not work correctly. It is another in a long list of loss of functionality of MacOS (neé OS X).

Leave a Comment