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
Add Oblivious HTTP (OHTTP) client for iOS [ci full] #5749
Conversation
Codecov ReportPatch and project coverage have no change.
Additional details and impacted files@@ Coverage Diff @@
## main #5749 +/- ##
=======================================
Coverage 89.86% 89.86%
=======================================
Files 1 1
Lines 148 148
=======================================
Hits 133 133
Misses 15 15 ☔ View full report in Codecov by Sentry. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is awesome 🚀 🚀 !! I mostly had nits - generally, I'm happy with getting this out so iOS has their hands on it and we can iterate from there
Only requesting changes because we'll need to add this component to https://github.com/mozilla/application-services/blob/main/taskcluster/scripts/build-and-test-swift.py so the new taskcluster-based process can get this to iOS in the next nightly without any rust-component-swift
changes at all. I'll update the docs to include that step!
Once we do that, we can test it out by adding [ci full]
in the PR title, then closing and re-opening the PR
components/as-ohttp-client/ios/ASOhttpClient/OhttpManager.swift
Outdated
Show resolved
Hide resolved
components/as-ohttp-client/ios/ASOhttpClient/OhttpManager.swift
Outdated
Show resolved
Hide resolved
megazords/ios-rust/MozillaTestServices/MozillaTestServicesTests/OhttpTests.swift
Outdated
Show resolved
Hide resolved
For the dependency check job, we might need a fix up in
Then running |
Opened #5753 for updating the docs, sorry it wasn't up to date! |
The pull request has been modified, dismissing previous reviews.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
A couple of tiny comments then we can land!
After fixing that comments tried to build Firefox iOS locally by running the taskcluster scripts and verified that the app builds and that it has access to OhttpManager
, its constructor and the data
function
components/as-ohttp-client/ios/ASOhttpClient/OhttpManager.swift
Outdated
Show resolved
Hide resolved
components/as-ohttp-client/ios/ASOhttpClient/OhttpManager.swift
Outdated
Show resolved
Hide resolved
components/as-ohttp-client/ios/ASOhttpClient/OhttpManager.swift
Outdated
Show resolved
Hide resolved
components/as-ohttp-client/ios/ASOhttpClient/OhttpManager.swift
Outdated
Show resolved
Hide resolved
The pull request has been modified, dismissing previous reviews.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Awesome 🚀 thank you!
I verified this builds okay with iOS and should be available for iOS engineers tomorrow (or we can expedite it to later today with a manual run!)
Do you mind adding a short entry to the changelog in https://github.com/mozilla/application-services/blob/main/CHANGELOG.md under the current (118) release?
(I'll also give you the permissions needed to land approved PR and so reviews don't go stale)
Using the ohttp-rs and bhttp-rs Rust libraries to perform underlying encoding and encryption. This is exposed to Swift using URLRequest/Response types that are typical for the platform. Note that only iOS is targetted since Gecko projects have a builtin OHTTP solution within Necko. This use currently using the Rust Crypto libraries for underlying HPKE support, but this should be changed to NSS or OpenSSL in future.
The pull request has been modified, dismissing previous reviews.
Rebased onto v118 and added changelog entry. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🚢 🚢 🚢
Using the ohttp-rs and bhttp-rs Rust libraries to perform underlying encoding and encryption. This is exposed to Swift using URLRequest/Response types that are typical for the platform.
Note that only iOS is targetted since Gecko projects have a builtin OHTTP solution within Necko.
This use currently using the Rust Crypto libraries for underlying HPKE support, but this should be changed to NSS or OpenSSL in future.
Pull Request checklist
[ci full]
to the PR title.Branch builds: add
[firefox-android: branch-name]
to the PR title.