Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

HTTP/3 support shipped in Safari 14.0 #6664

Merged
merged 7 commits into from
Apr 5, 2023
Merged

HTTP/3 support shipped in Safari 14.0 #6664

merged 7 commits into from
Apr 5, 2023

Conversation

jensimmons
Copy link
Contributor

Support for HTTP/3 shipped in Safari 14.0.
https://developer.apple.com/documentation/safari-release-notes/safari-14-release-notes

I don't know where the information about it being experimental only or for certain macOS versions only came from, but it's incorrect.

Support for HTTP/3 shipped in Safari 14.0. 
https://developer.apple.com/documentation/safari-release-notes/safari-14-release-notes

I don't know where the information about it being experimental only or for certain macOS versions only came from, but it's incorrect.
@Schweinepriester
Copy link
Contributor

I took the time to dig up the history:

CC @kiding @tunetheweb

Esp. because of this comment

Safari 14 has just been released for macOS 10.15 Catalina and 10.14 Mojave, and can confirm the two features are indeed os-dependent.

and Fyrd even confirming I'm very skeptical if on by default for all macOS versions is true.

Starting with at the latest Safari 16 it's probably true, because no older macOS version than 11 is supported.

Not sure what was tested in #5836 causing the revert.

But speaking of testing - would you consider any of the tests linked on https://tests.caniuse.com/http3 to be a valid test?
(WPT doesn't seem to have tests for HTTP/3 or does it?)

Once we have a proper test we can naturally double check.

(If I had to guess what eventually turns out to be correct, it would be a d #4 with the note stating macOS 11 Big Sur and later for 14 - 15 and y for 16+.)

@tunetheweb
Copy link
Contributor

I've just tested this on my iPhone (iOS 16.3.1) and it is not using HTTP/3:

image

It's also showing as disabled by default In Settings->Safari->Advanced->Experimental Features->HTTP/3 (enabling it and restarting Safari does show HTTP/3 is used, but when I reset these settings back to Default it is again not used).

On my Mac (16.3 on Ventura 13.2.1) it is showing as using HTTP/3:

image

However in the Develop->Experimental features it's showing as unticked by default - which is very confusing!

image

I don't see that menu option in Safari Technical Preview so maybe this option is not needed any more on desktop?

I'm updating both to 16.4 to see it it's any different but that could take a bit of time...

@tunetheweb
Copy link
Contributor

Confirmed that on Mobile 16.4 (iOS 16.4) that HTTP/3 no longer exists in the Develop->Experimental Features but it does NOT appear to be enabled when looking at an H3 site through Web Inspector, nor does https://cloudflare-quic.com/ say HTTP/3 is being used.

Confirmed that on Desktop 16.4 (Ventura 13.3) that HTTP/3 no longer exists in the Develop->Experimental Features but is enabled. No idea what version it was enabled from. I did test it when I raised #5836 and it did not appear to be working then despite that being raised well after Safari 14 was released.

@radum
Copy link

radum commented Mar 28, 2023

Ventura 13.2 Safari Version 16.3 (18614.4.6.1.5) it is not enabled by default and I have an option under Experimental features, but it is disabled by default.

If I enable it works just fine.

@jensimmons
Copy link
Contributor Author

jensimmons commented Apr 2, 2023

HTTP/3 is enabled for ~50% users at any given time, and not for 100% of users. Testing for one user and finding it off by default doesn't represent all users. It depends. Which is what is causing the confusion.

The presence or absence of the feature flag doesn't signal anything about whether/not HTTP/3 is enabled. I believe it shipped with a flag, and then the flag was later removed since it didn't fully represent the state of testing underway.

HTTP/3 does require macOS 11 Big Sur or later — which impacted Safari 14.0–15.6 on macOS. Since Safari 16.0, this is no longer a consideration.

Let me create a new PR with correct information.

@jensimmons
Copy link
Contributor Author

I'm still gathering information about when the feature flag was removed from Safari.

@Schweinepriester
Copy link
Contributor

@jensimmons Thank you for looking into this! :)

For the future: How will we eventually know that Safari has turned HTTP/3 full on, i.e. 100 % of users get HTTP/3?
Is there any bug we can follow? Or will it be mentioned in the changelog, or…?
Please make it in some way or another transparent 🙏

jensimmons and others added 5 commits April 4, 2023 14:11
Co-authored-by: Kai <2644614+Schweinepriester@users.noreply.github.com>
Co-authored-by: Kai <2644614+Schweinepriester@users.noreply.github.com>
@jensimmons
Copy link
Contributor Author

This PR should be correct now.

It does the following:

  1. Corrects support for Safari 14+ on both macOS and iOS from none to partial. With a new note (Note 5) stating it's only enabled for a portion of users.
  2. Simplifies the note (Note 4) about the requirement for macOS 11 Big Sur or later, and removes that note from Safari 16+, since Safari 16 can only exist on macOS Big Sur (therefore all Safari 16 users are on a version of macOS that has support).
  3. Updates the feature flag designation to show that the flag existed on both macOS and iOS from Safari 14–16.3. The flag was removed in Safari 16.4+.

@jensimmons
Copy link
Contributor Author

I don't have any information to share at the moment about when HTTP/3 will be turned on for all users. Or when the feature flag might return. Investigations are still underway regarding performance — we want to make sure this feature in fact does improve the experience of users. I expect when either change is made, we will list the change in Safari release notes.

@Fyrd
Copy link
Owner

Fyrd commented Apr 5, 2023

Many thanks!

@Fyrd Fyrd merged commit cbbabab into Fyrd:main Apr 5, 2023
@x2q
Copy link

x2q commented Sep 18, 2023

With Safari version 17 now released it seems like HTTP3 is now enabled by default.

@jensimmons jensimmons deleted the patch-42 branch September 19, 2023 18:45
@jensimmons
Copy link
Contributor Author

jensimmons commented Sep 19, 2023

I don't believe anything changed in our HTTP3 support. We did not announce a change in our Safari 17.0 release notes or article. I am looking into it.

@Schweinepriester
Copy link
Contributor

@jensimmons As the topic came up again (#7114), are there any news regarding HTTP3 support (by default), were you able to find something? :)

@jensimmons
Copy link
Contributor Author

Currently, HTTP3 is on for a very large portion of users, but not all. It depends.
I don't have new news yet. Perhaps soon.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants