snackbroken
5 months ago
Providing an OS feature only to first-party programs is a plainly anticompetitive practice. Using your privileged position in one market (cell phones/cell phone operating systems) to gain an advantage in another market (smart phone applications) that you withhold from your competitors is a textbook case.
integralid
5 months ago
I wanted to be outraged at apple, but I really can't. Read WinAPI documentation and try to count all "reserved" parameters for example. OS developers build features just for internal use all the time.
Granted, this is just UI tweak so I'm not convinced it has to be private, but they probably just don't want to have to maintain that forever.
snackbroken
5 months ago
The key distinction is the withholding from your competitors part. WinAPI may have a ton of features labelled "pls no use thx" but MS doesn't block you from distributing a program that uses them anyway.
slashink
5 months ago
That used to be true but they absolutely do this today :(
Spent so much time trying to repro some functionality only to realize that Windows has an allow list for what apps it listens to for certain APIs.
mrits
5 months ago
Did it? I worked on an EDR product for a decade and the window internal gurus were always talking about undocumented API parameters
com2kid
5 months ago
Microsoft considers documentation status and long term support status to be the same thing. If the behavior of a function / API is not going to remain stable, it isn't documented. If they don't want to pay maintenance/support costs for an API (more rigorous testing, sample code, etc) the API won't be documented.
Historically Microsoft had a 100% back compat guarantee for APIs, so the second an API was documented its external interface was frozen in stone forever. There are still APIs around to this day that have misspelled struct fields because someone made a typo 30+ years ago.
If an API isn't documented it is "use at your own risk", although if enough large software starts depending on it, the API may have to be frozen anyway (or compatibility shims put into place) to avoid breaking popular software programs.
miki123211
5 months ago
The "turn off Windows Defender PLS, I am an antivirus" API being a principal (and well-justified) example.
smileybarry
5 months ago
The only APIs that are locked this way AFAIK are PPL, Defender-disabling, and AV registration, all not exclusive to Microsoft, you just have to sign up to an antimalware developer program and sign an NDA.
anonymars
5 months ago
That's not the key distinction -- of course Windows will likely have internal-only APIs for its own internal use. The problem is when e.g. there are special internal Windows APIs that Office can use but Lotus/etc. can't, or that Edge can use but Firefox/Chrome/etc. can't.
snackbroken
5 months ago
Sorry, yes. To clarify, it's about withholding features of a product in one market from your competitors in the other market.
anonymars
5 months ago
Yeah, I wasn't trying to be snarky, rather there often seems to be a "private code shouldn't exist, code wants to be free!" ethos that makes my eyebrows twitch in PTSD from reading all of Raymond Chen's tales of depending on undocumented code, e.g.
*https://devblogs.microsoft.com/oldnewthing/20031015-00/?p=42...
*https://devblogs.microsoft.com/oldnewthing/20031223-00/?p=41...
*https://devblogs.microsoft.com/oldnewthing/20230113-00/?p=10...
*https://devblogs.microsoft.com/oldnewthing/20060109-27/?p=32...
oneplane
5 months ago
It's not withholding, it's just not part of the AppStore if you do it. There are plenty of other ways to distribute your software, and yes, Apple will also still co-sign it or provide entitlements if you need those. Just not in the AppStore.
kelnos
5 months ago
That seems like an unnecessary and unreasonable trade barrier. There isn't a technical or user-experience reason to exclude these sorts of apps.
oneplane
5 months ago
That's not the argument; the argument is that this would be some form of "there is only one method and it is being withheld", which simply isn't the case.
user
5 months ago
user
5 months ago
senkora
5 months ago
Yeah, this seems reasonable to me. The better thing to get annoyed at Apple for is being slow to implement web standards. I guess you could make the argument that they are choosing to work on stuff like this instead, but I think that’s a weak argument.
paradox460
5 months ago
And even then, they've made efforts to get better. Safari is starting to edge out Firefox for support of the features I actually want to use
move-on-by
5 months ago
I just want to use color SVGs as favicons. One file format- looks great on any screen at any size. But no, Safari isn’t interested in that feature.
Edit: I looked it up, and apparently its added in Safari 26!
reaperducer
5 months ago
The better thing to get annoyed at Apple for is being slow to implement web standards.
Now that Safari supports the HTML5 date picker (since iOS 14.1 - five years ago), this is more of a meme than fact-based reasoning. Unless you believe Google including something in Chrome automatically makes it a "standard."
I have a list (unfortunately on a device I can't access now) of web standards that are supported on Safari and Firefox, but not on Chrome. I need it because one web site I work on is 100% Safari users (about 800 people), and another is mostly Android (about 70%). So I need a cheat sheet of which does what.
leptons
5 months ago
>>The better thing to get annoyed at Apple for is being slow to implement web standards.
>Now that Safari supports the HTML5 date picker (since iOS 14.1 - five years ago), this is more of a meme than fact-based reasoning
Apple forces all browsers on iOS to use the Safari browser engine, which they intentionally hobble by not implementing APIs that other browser engines have had forever so that Apple can force developers to create native apps for iOS which Apple then can extract 30% (or whatever they decide it is today) revenue from, where they can't do that from a web application. This is one of many reasons Apple is being sued by the DOJ for antitrust violations, and one reason they got sued by the EU and lost.
nwienert
5 months ago
Maybe 5 years ago this was a true, they accelerated development and their standards support is pretty good now, better than FF. Again, not counting Chrome's "EEE" non-standard API's, they largely move fast and implement most modern ones. Some PWA stuff is missing which is valid, while Chrome is behind on a few nice design-focused standards Safari has.
Go here:
https://caniuse.com/?compare=chrome+143,safari+26.0&compareC...
Note the non-supported Safari API's, the vast majority are not web standards.
leptons
5 months ago
Maybe you should read the DOJ suit against Apple. It's pretty clear that one reason (among many) that Apple is getting sued is because of abusive business practices exactly as I described.
Apple forcing Safari on iOS is present day, today, not 5 years ago (but it was also 5 years ago too, ever since there was an iOS webview). If Apple doesn't want to implement it, then they shouldn't force other browser makers to use their hobbled browser engine.
nwienert
5 months ago
So you’re ignoring my entire comment and re-iterating the part I didn’t respond to.
leptons
5 months ago
Nothing in your comment makes any difference so long as Apple blocks other browser engines on iOS. I honestly don't give a fuck what they do with Safari as long as they allow real Chrome to exist on iOS, which I can then instruct my users to install because Safari is a piece of shit browser.
nwienert
5 months ago
Safari is better than Chrome imo, technically, UX and otherwise, but you're entitled to be mad about lock-in. I just wasn't responding to that part.
leptons
5 months ago
technically?? With all those modern and useful APIs they don't implement? That's how they're technically better by not having useful tech? Wow. Okay, you do you.
nwienert
5 months ago
I linked to my source, I think you haven’t updated your priors in >5 years or so.
leptons
5 months ago
Apple sez: We don't want to implement any of those APIs, and we forbid you to use a browser that implements them, because reasons.
Your comments are some Stockholm-syndrome level nonsense you're spouting to protect your favorite brand.
nwienert
5 months ago
Which API's did they not implement?
I really never commented on lock-in, even said it's fine to dislike it. You're fighting an imaginary opponent here.
I really just pointed out that Safari largely caught up on web standards. It's Google doing the whole "embrace, extend, extinguish" thing that IE pioneered by stuffing non-standards into their browser so they can lock people in.
leptons
5 months ago
>It's Apple doing the whole "extinguish" thing that Apple pioneered by forbidding other browsers so they can lock people in
FTFY
Without IE we wouldn't have XMLHTTPRequest, something used by practically every web developer in existence today. Innovation happens, and apparently so do walled gardens that outright forbid any competition.
It's one thing to not implement web bluetooth, web midi, and other APIs on your own browser, it's quite another to block anyone else from doing so with their web browsers. The EU thought so too and forced Apple to let other browsers use their own engines. But not in the US yet, until the DOJ completes the case against Apple.
nwienert
5 months ago
The only two APIs you listed aren’t web standards ;)
I’d love to debate you on the rest, but it’s a debate that’s been had here at least a thousand times.
leptons
4 months ago
I don't care that they aren't web standards, and I don't care if Apple ever implements them in Safari.
** What matters is that Apple is still blocking other browser vendors from using anything but Safari. **
The fact you can't or won't see how fucked up that is tells me everything I need to know about you.
AuthorizedCust
5 months ago
Relative privation fallacy.
“Timmy got away with it. I should get away with it, too.” -Elementary school students
lysace
5 months ago
Private/secret APIs in DOS/Windows were a prominent part of the US and EU antitrust lawsuits against Microsoft in the 90s/00s.
alwillis
5 months ago
> Private/secret APIs in Windows were a prominent part of the US and EU antitrust lawsuits against Microsoft in the 90s/00s.
It mattered because Microsoft had 95% of the operating system market at the time and was using its monopoly position to take over the web, even after signing a decent decree with the US government.
lysace
5 months ago
Edit: It can probably be argued that Apple is a acting like a monopolist in one or a few areas though?
The current web monopolist (Google) was coincidentally founded 2 months after the US antitrust lawsuit against Microsoft was decided (july - september 1998).
Similarly meh results with US vs Google two weeks ago.
alwillis
5 months ago
> It can probably be argued that Apple is a acting like a monopolist in one or a few areas though?
I don't think that's a credible argument. Apple, at best, has about 55% smartphone marketshare in the United States--and significantly less in most other countries.
Remember, having a monopoly isn't itself illegal; it's using the monopoly to disadvantage competitors, especially in emerging markets, which was what the Microsoft case was all about.
I don't think there's a legal justification for suggesting that Apple creating a private feature only they can use--for now--gives them unfair advantage in the market.
I wouldn't be surprised if Apple makes it a public feature in a future release of iOS 26.
leptons
5 months ago
Apple forces all browsers on iOS to use the Safari browser engine, which they intentionally hobble by not implementing APIs that other browser engines have had forever so that Apple can force developers to create native apps for iOS which Apple then can extract 30% (or whatever they decide it is today) revenue from, where they can't do that from a web application. This is one of many reasons Apple is being sued by the DOJ for antitrust violations, and one reason they got sued by the EU and lost.
blahyawnblah
5 months ago
Microsoft doesn't punish you for using those though.
HumblyTossed
5 months ago
> I wanted to be outraged at apple, but I really can't. Read WinAPI documentation
But this is exactly why you SHOULD be outraged.
brookst
5 months ago
Wait so are all non-standard CSS attributes "anticompetitive"? This seems like wild hyperbole.
Is Google's "-webkit-tap-highlight-color" also anticompetitive? Should we ban the current practice of shipping proprietary CSS attributes while sometimes also proposing them for standardization?
It's just really hard for me to read that as a legit complaint.
elaus
5 months ago
You can use `-webkit-tap-highlight-color` on your website or PWA and distribute it any way you want. It will just not work in non-webkit browsers like Firefox.
What apple does and what the article talks about: They have a CSS property that ONLY they can use, you can't put that in your PWA, it won't work (no matter the browser).
dmix
5 months ago
They just released this feature internally. We have no idea what their plans are for this. The web doesn't broadly and suddenly adopt features like this anyway. It's very likely Apple is working on something to allow 3rd party devs to start using it via safari.
This is much ado about nothing.
kuschku
5 months ago
If you use this CSS liquid glass effect in your app, Apple will reject it from the App Store.
If Apple uses this CSS liquid glass effect in their apps, it'll pass App Store review just fine.
Do you see the issue now?
user
5 months ago
charcircuit
5 months ago
>it'll pass App Store review just fine.
Do you have any evidence of this claim? It's possible that neither Apple or third party developers are able to ship apps through the app store with it.
jakelazaroff
5 months ago
Why would Apple go through the App Store review process for their first-party apps?
charcircuit
5 months ago
Because it's cheaper to maintain 1 ingestion pipeline than 2.
Draiken
5 months ago
And it's basically free to create a rule "if it's from apple, auto-approve" even if it's a manual process.
charcircuit
5 months ago
Well the automated parts of the process may still be useful to have the app package run through. Checks like "Does not use private APIs" are important to avoid accidental anticompetitive behavior. When working in large organizations communication is difficult and automatic checks that protect against mistakes are important.
ezfe
5 months ago
iOS has many private APIs, this one is no different. The fact it's implemented in WebKit is a red herring.
bigyabai
5 months ago
So when Google creates self-serving APIs in a web browser engine, it's anti-consumer and is killing the free web.
But when Apple creates self-serving APIs in a web browser engine, it's just another private entitlement, a red herring and their right as the proprietor of Safari.
The lady doth protest too much, methinks.
ezfe
5 months ago
It's literally not part of the web because it's not available in Safari or WebKit views in applications.
cosmic_cheese
5 months ago
The difference is that Google is by far in a much more dominant position and every dev who leverages Chrome-specific APIs further entrenches that dominance. In the browser space, Apple is the long-trailing runner-up and has far less impact.
It appears that this particular API is restricted to embedded webviews, too (doesn’t work in Safari), so it has no bearing on the open web, unlike APIs such as WebUSB in Chrome.
user
5 months ago
catsma21
5 months ago
[flagged]
reaperducer
5 months ago
If you use this CSS liquid glass effect in your app, Apple will reject it from the App Store.
Citation needed.
The blog article speculates this, but there is no proof.
pupatlas
5 months ago
Here you go:
> Apple App Review Guidelines: 2.5.1 Apps may only use public APIs and must run on the currently shipping OS.
https://developer.apple.com/app-store/review/guidelines/
And here's the (private) field that needs to be enabled on your webview to enable the CSS property. Otherwise (according to the author) it's just ignored: https://github.com/WebKit/WebKit/blob/613c42873c56e2b2073f91...
wahnfrieden
5 months ago
If you are ignorant to Apple rules and practices, please don't be obnoxious about it. Apple has developer guidelines for the App Store, and they say you cannot use private APIs!
They do not publish any "proof" to cite beyond what they write there. And they interpret and enforce the rules at their own whim.
The private API is here: https://github.com/WebKit/WebKit/blob/613c42873c56e2b2073f91... it's on WKWebView and resembles other private APIs they forbid access to
Apple absolutely does reject apps for using private APIs. Here is a famous case where they started rejecting Electron apps for private API use: https://9to5mac.com/2019/11/04/electron-app-rejections/ You are welcome to sit and wait for Apple to publish proof that this new private API is just like the others but you shouldn't bother others demanding they cite it for you when clarification will not come for this particular API and there is already precedence on how they handle it categorically. You also shouldn't spread false confidence that it's OK to use these APIs due to lack of "proof" which meets your own standards when it can and has resulted not only in apps being removed but also threat of developer accounts being terminated. (Even if this is rare.)
I understand it can be confusing: they don't do it consistently and they change their enforcement of it over time as they please. Even when it's not done automatically, they can and have inspected closely "by hand" if they are looking for a reason to punish. It is a liability.
brookst
5 months ago
Are you really asserting that a CSS selector is a private API? This is either a really wild misunderstanding about the difference between CSS and API, or somehow I totally misread your post. But I did re-read a few times and that seems to be the claim?
c-hendricks
5 months ago
The CSS isn't the issue, it's that the CSS can only be enabled using private platform code, which no app will get approval for.
wahnfrieden
5 months ago
Did you click my link or read the article? The private API is the WKWebView property.
phillipseamore
5 months ago
Bad example since "-webkit-tap-highlight-color" is initially from Apple, not Google
horsawlarway
5 months ago
[flagged]
rs186
5 months ago
I can install chrome on Windows, Linux and Mac, so I give them a pass. Not to mention that was ancient history.
leptons
5 months ago
But you can't install the Chrome browser engine on iOS, because Apple forces Google to use the Safari web browser engine, as well as any other web browser for iOS that isn't Safari - they all are forced to use Safari under the hood.
rs186
5 months ago
Looks like logic is lost here. My point is that the fact that Google used nonstandard feature so many years ago does not end up forcing users to choose a specific platform, which is the complaint there. And every browser has always done something special for itself. Whether "real" Chrome is available on iOS and how Apple comes into the question is completely irrelevant.
seanhunter
5 months ago
Not sure it is "plainly anticompetitive" in the legal sense. In the US, the laws on anti-competitive practices are the Sherman Act and the Clayton act. To be anticompetitive, the courts use the "per se" rule and the "rule of reason". "per se" rule covers things which are specifically listed in the laws as being anticompetitive (eg price fixing).
This isn't in the list of per se anticompetitive practises so it would need to be covered by the "rule of reason". That would require someone to demonstrate actual harm to competition that flowed directly from the illegal nature of the practise and was not compensated by some offsetting procompetitive benefit and there is no less restrictive alternative.
I don't see how a CSS property would meet the standard of actual harm to competition, especially since noone is stopping you from making your own liquid glass css if you want to (as far as I can see).
crazygringo
5 months ago
But there's no evidence yet that it's being used by first-party programs, e.g. by GarageBand or Pages or Mail.app.
It's also quite likely that it's a) not being used at all, and the private API is just for internal testing until it's ready to be made public, and/or b) used by certain OS components that aren't competing with third-party apps (e.g. somewhere in the Settings panel).
And while I agree with your assertion in theory, some cosmetic styling is probably about the least important, most trivial example you could come up with... can't really get myself worked up about this one.
galad87
5 months ago
Only if you consider making UI text unreadable an advantage.
snackbroken
5 months ago
I don't think it's an improvement, but having a GUI that matches user expectations is undeniably a business advantage.
tshaddox
5 months ago
What are your thoughts on computer hardware which is much more restrictive? Video game consoles, for example, require all code to be cryptographically signed, meaning that third parties can't publish any software whatsoever without the blessing of the console manufacturer.
sho_hn
5 months ago
I'm assuming they don't like that either.
Apple does plenty of bad things, and many are worse than this, but it doesn't mean it's not fair to point out this one is bad, too.
It all comes down to "the vendor can do things with your computer you can't do yourself" in the end.
Muromec
5 months ago
>It all comes down to "the vendor can do things with your computer you can't do yourself" in the end.
It's not even that. A console vendor that locks down everything behind the TPM helps to not deal with cheaters is arguably fine. A console vendor that is also a game develop and caps the FPS of all games that aren't their own is abusing their monopoly position in one market to gain unfair advantage on a different market.
snackbroken
5 months ago
I'm generally opposed to that as well. Agreeing with Muromec's reply, I don't think it is necessarily anticompetitive in the case where the console vendor doesn't favor its first party games, but of course all three do that in practice. The situation is somewhat mitigated by the existence of a flourishing open market alternative (PC games).
More broadly, and not based on antitrust grounds but on property rights grounds, I am opposed to every kind of DRM. First, it should be legal to circumvent any and all DRM/anti-copying measures. Second, it should be illegal to deprive the next owner of their property rights so that you can exert ownership control over a product past its sale.
If I buy a computer, do nothing but install a keylogging rootkit on it, and sell it on to someone else, I would rightly risk jail time. "The malware is part of the product" is not a valid excuse. DRM is also malware. It should be prosecuted as such, and if existing legislation is found wanting, more specific laws need to be written.
nashashmi
5 months ago
I think there is line that a company can cross: using a locked-down appearance setting to make an app look like it is from the company.
For example, if there was a glowing light on the edge of the phone that only lights up with stock apps and company apps, and that signfies for security that an app belongs to a company, that is ok.
I don't consider design/appearance to be a feature. YMD.
shuckles
5 months ago
True, this is killing innovation in badly written settings panes implemented with web technologies.
sitzkrieg
5 months ago
this comment is bringing out the apple blinders in force and i love it. do people really see apple as "the good guy"? tech has zero good guys left
as1mov
5 months ago
Hey stop bullying the trillion dollar corporation! They are my favourite corporation and their actions are beyond question >:(
brookst
5 months ago
Tech was always a business. What this comment is bringing out is the people who see preferred technical choices as some kind of morality play. They aren’t. They never were. It’s childish to believe such things.
sitzkrieg
5 months ago
not wanting to use something that looks like it was designed to appeal to ages 2-8 is a moral issue?
ivape
5 months ago
Shouldn’t this be easily available in Electron/Tauri and React Native apps?
jakelazaroff
5 months ago
Electron doesn't use WebKit, so definitely not. Not sure about Tauri desktop, but how would you use it for Tauri mobile and React Native?
ivape
5 months ago
Woah, TIL. Chromium apparently forked WebKit in 2013. wtf?
So, if you wanted webviews that could leverage this you’d basically need a native swift app with webviews to get access.
zamadatix
5 months ago
Even if you could get it you wouldn't be able to publish it on the App Store due to the permission it requires.
robertoandred
5 months ago
React Native / Expo apps can get liquid glass via the actual underlying native ui elements.
izacus
5 months ago
Based on other Chrome threads here, we do need to make sure that Apple maintains their exclusive monopoly on browser on iOS to prevent these things from happening. Right? Right?! :P
robertoandred
5 months ago
This isn't available in the Safari browser.
ericmcer
5 months ago
Its a toss up between anticompetitive being bad and unified standards being good.
Look at the m3/4 macs they are insane machines because even the hardware is unified.
dham
5 months ago
What do you mean by unified? Strix Halo is "unified". The M series platform isn't the only unified platform out there.
georgeburdell
5 months ago
The OS and hardware were developed in close collaboration
astrange
5 months ago
Somewhat overrated because the release cycle for an OS change can be as little as a day, but the release cycle for a CPU change is like 3-4 years.
mvdtnz
5 months ago
How would exposing this CSS extension impact unification of the platform?
MangoToupe
5 months ago
How does this give an advantage?
carlosjobim
5 months ago
How is Apple withholding Samsung from making applications for Android? What kind of textbooks are you reading?
creddit
5 months ago
HN has one of the largest online populations of amateur lawyers with some of the least correct legal opinions in the world. This is one of many, many examples.
jjtheblunt
5 months ago
Isn't the article saying they added a new css element, but it's not restricted to apple apps only really, just not in documentation yet? for example, this article is preview documentation, of a sort?
thefreeman
5 months ago
No, it says it is restricted. You need to set a private attribute on the webview to enable it. And if you interact with private APIs your app will be rejected in review.
jjtheblunt
5 months ago
I understand, though conjecture (worked at apple for years) this looks like an imminent "feature" that will become documented.
tgv
5 months ago
With whom is Apple competing on their own web pages and apps? And how much advantage does some shiny reflection (which, btw, could also be attained by writing the effect yourself) offer them over that competition? It must be something big and obvious, otherwise there's no way it's illegal, but I can't think of it.
If you mean "anti-competitive" without referring to monopolies, then, well, every company does that.
cududa
5 months ago
Google or any open source map product. And actually, if we use the SCOTUS approved DOJ v MSFT consent decree as precedent, any app that can't use this private API component would be an impacted party.
I'm an antitrust nerd - 20+ years since I made my first PACER account as a teenager to get documents from interesting cases..
95% of what people call "anticompetitive" or "monopolistic" has no legal bearing. People don't know the legal definition of those words and bandy them about based on vibes.
This however, is a very very clear case of violations of precedent. If we look at Microsoft's final judgement https://www.justice.gov/atr/case-document/final-judgment-133 see F(1)(a), H(2)(b), while these stipulations haven't been applied to Apple, if I were in a market dominant position, I'd be super careful about capricious restrictions like the example undocumented API, and behavior that mimics patterns of activity that were seen as actionably sanctionable to similar market dominant forces
layer8
5 months ago
It’s a way they can make their webview-based apps look “native” more easily than a third party can. If you try out a third-party app and it looks less well integrated visually than a similar first-party app, then the latter has a competitive advantage because of that.
saghm
5 months ago
Well for starters, no one else is allowed to publish a browser with their own engine on the AppStore, and they've hampered sideloading for years. In a vacuum, it might be reasonable to block any third-party browser engines, or to put something special in their own that no one else can use on the phone, but combining those is just intentional sabotage. And yes, I know that this specific CSS property isn't all that important, but having an argument about how much they're allowed to intentionally sabotage other browsers on their phones is at best a misguided distraction from the point that they shouldn't be doing it in the first place (and not a particularly good defense either; try arguing with a cop who pulls you over for speeding that the law you broke wasn't really that important and see if it gets you out of the ticket).
isodev
5 months ago
> With whom is Apple competing on their own web pages and apps?
With every other app using a web view.
> without referring to monopolies
Of course it’s about monopolies. Safari is still “privileged” to be forced default browser. Making an alternative, Apple ensured to be very hard and expensive. So gating any kind of first party feature is a big no.