Thomas Steiner reposted
Thomas Steiner
Thomas Steiner
@tomayac.com
Developer Relations Engineer at Google, focused on the Web, WebAssembly, and Project Fugu 🐡. Dad-of-3.
3.3K followers238 following237 posts
On my way to #w3cTPAC with a Chromium build with the entirety of the #CrossOriginStorage API:
* `navigator.crossOriginStorage.getFileHandle()` * `crossoriginstorage` attribute for HTML * `cross-origin-storage()` URL request modifier for CSS * `crossOriginStorage` import attribute for JS
* `crossOriginStorage` `RequestInit` option for fetch() * Strawman `browser.crossOriginStorage.*` for extensions * `chrome://settings/content/crossOriginStorage` Settings * DevTools support Try it: github.com/tomayac/Chro...!
Thomas Steiner reposted
Getting my TOTP data out of Twilio's Authy app thanks to the GDPR: blog.tomayac.com/2026/10/17/g.... New blog post in which I document how I used the sledgehammer 🔨 that is #GDPR to get my #TOTP #2FA 🔐 data out of #Authy and built myself a TOTP Vault PWA.
Getting my TOTP data out of Twilio's Authy app thanks to the GDPR: blog.tomayac.com/2026/10/17/g.... New blog post in which I document how I used the sledgehammer 🔨 that is #GDPR to get my #TOTP #2FA 🔐 data out of #Authy and built myself a TOTP Vault PWA.
Thomas Steiner reposted
Refueling an EV be like: blog.tomayac.com/2026/10/08/r.... New blog post in which I describe a worst case (but not too far from the average) public charging experience for people who never drove an electric vehicle. 🚗🪫 Despite the horrors, I'd never go back to another car. 🔋☀️ #EV #EVdriving #Solar
Refueling an EV be like: blog.tomayac.com/2026/10/08/r.... New blog post in which I describe a worst case (but not too far from the average) public charging experience for people who never drove an electric vehicle. 🚗🪫 Despite the horrors, I'd never go back to another car. 🔋☀️ #EV #EVdriving #Solar
📢 #CrossOriginStorage API update: we have renamed `navigator.crossOriginStorage.requestFileHandle()` to `getFileHandle()` for better symmetry with the OPFS API, so it's easier coming from OPFS's `getFileHandle()` (developer.mozilla.org/en-US/docs/W...). OPFS's `name` is COS's `hash`.
It's early days for the #CrossOriginStorage API, but because it works perfectly as a progressively enhancement, why not teach your agents already how to use it? Modern Web Guidance now has, well, guidance for using the COS API. ⤵️
v0.0.191 of Modern Web Guidance is out and it's a big one! *16* new guides covering: web components by @castastrophe.bsky.social Cross-Origin Storage by @tomayac.com security by @rowan.fyi UI and PWA by @jamessw.com and @sturobson.com Wasm by @sbc100.bsky.social github.com/GoogleChrome...
Friendly reminder that there's a way to go on-the-record with your project's or company's #CrossOriginStorage API use case and express support. This can be helpful when discussing with other vendors. 👉 Current supporters: github.com/WICG/cross-o... 👉 Add yours: github.com/WICG/cross-o...
You can additionally also comment on the #CrossOriginStorage API feature request bugs. (Please make your comment meaningful, don't just write "me too" or "+1".) 🧭 WebKit: bugs.webkit.org/show_bug.cgi... 🦊 Mozilla: bugzilla.mozilla.org/show_bug.cgi...
Another #CrossOriginStorage API DevTools exploration: showing some metadata for resources on the Public Hash List (github.com/WICG/cross-o...), so the entries in the table are more than opaque hash strings.
You can now download the macOS binary with this feature (☝️) enabled from github.com/tomayac/Chro.... (Launch Chromium, open `about://flags`, search for Cross-Origin Storage, set it to Enabled, and restart when prompted.) #CrossOriginStorage
Thomas Steiner reposted
I was on the @shoptalkshow.com with @chriscoyier.net and @davatron5000.bsky.social to chat about the #CrossOriginStorage API, see the quoted skeet ⤵️. If you bookmark just one link after the show, make it github.com/tomayac/awes....
732: Thomas Steiner on New Cross-Origin Storage APIs
I was on the @shoptalkshow.com with @chriscoyier.net and @davatron5000.bsky.social to chat about the #CrossOriginStorage API, see the quoted skeet ⤵️. If you bookmark just one link after the show, make it github.com/tomayac/awes....
732: Thomas Steiner on New Cross-Origin Storage APIs
Akaash Parthasarathy from the WebLLM team has filed WebKit and Mozilla feature request bugs asking for #CrossOriginStorage API support in Firefox and Safari: 🧭 bugs.webkit.org/show_bug.cgi... 🦊 bugzilla.mozilla.org/show_bug.cgi... (Chrome's implementation bug is crbug.com/547587764.)
🎧 I was a guest of @codepo8.bsky.social again for the @wearedevelopers.bsky.social podcast to talk about the #CrossOriginStorage API: www.wearedevelopers.com/videos/2162-.... Happy listening! (Find all related resources on the Awesome Cross-Origin Storage 😎 list: github.com/tomayac/awes...)
Thomas Steiner reposted
🤩 Fantastic article by @nucliweb.net on HTTP cache partitioning and the #CrossOriginStorage API: joanleon.dev/en/http-cach.... Try the embedded demos with the COS extension installed or in one of the experimental browser builds (see the Awesome Cross-Origin Storage list: github.com/tomayac/awes...).
Thomas Steiner reposted
I have a new unofficial macOS Chromium build out for you to test with #CrossOriginStorage API support and full DevTools integration: goo.gle/cos-chromium. Remember to set the Cross-Origin-Storage flag in `chrome://flags/#cross-origin-storage` and find Cross-origin storage on the Application tab.
I have a new unofficial macOS Chromium build out for you to test with #CrossOriginStorage API support and full DevTools integration: goo.gle/cos-chromium. Remember to set the Cross-Origin-Storage flag in `chrome://flags/#cross-origin-storage` and find Cross-origin storage on the Application tab.
Early Chrome DevTools exploration for debugging the #CrossOriginStorage API. This shows global stats first and then per-origin stats, here inspecting Three.js. - (WIP) backend CL: chromium-review.googlesource.com/c/chromium/s... - (WIP) frontend CL: chromium-review.googlesource.com/c/devtools/d...
macOS users interested in #CrossOriginStorage: you can now run a test build with the API behind a flag 🚩: github.com/tomayac/Chro.... In `about://flags`, search for Cross-Origin Storage, set it to Enabled, restart when prompted. To un-quarantine the app, see github.com/tomayac/Chro....
🤩 It's happening!!1! I just sent the "Intent to Prototype" email for the #CrossOriginStorage API: groups.google.com/a/chromium.o.... If you want to stay in the loop, star the ☂️ umbrella Chromium bug crbug.com/547587764 (and the subtask bugs: crbug.com/547587764/de...).
😎 Chromium (personal fork) passing all Web Platform Tests of the #CrossOriginStorage API. * WIP CL: chromium-review.googlesource.com/c/chromium/s... * Runnable binary: github.com/tomayac/Chro... (Linux x86_64)
Look, ma, that's WebKit 🧭 passing all Web Platform Tests for #CrossOriginStorage. And you can try it: github.com/tomayac/WebK... (personal fork)! That's now four prototype implementations of the API in four different browsers: github.com/tomayac/awes... (all of them with releases you can run).
For the first time you can try the #CrossOriginStorage API on a "real" browser—after the still in-development browsers [shells] Servo and Ladybird: I managed to implement the API in proper Firefox 🦊: github.com/tomayac/awes... (Note that all of those are personal experimental builds.)
More #CrossOriginStorage API updates: filed HTML issues (CSS already existed) toward better integration in the platform: * Add `crossoriginstorage` attribute to `<link>` and `<script>`: github.com/whatwg/html/... * Add `crossOriginStorage` JavaScript import attribute: github.com/whatwg/html/...
The CSS #CrossOriginStorage issue is: * Proposal for a new `<request-url-modifier>` called `<cross-origin-storage>`: github.com/w3c/csswg-dr...
See this progressively enhanced demo page for what these proposals would enable: web-ai-community.github.io/cross-origin...! (Try the demo without or with the #CrossOriginStorage extension installed: github.com/web-ai-commu...)
If you want to experience Cross-Origin Storage (COS) in two real browsers, I managed to add full imperative COS API support (`navigator.crossOriginStorage`) to both @servo.org and Ladybird (personal prototypes): github.com/tomayac/awes.... #CrossOriginStorage
I'm keeping track of the learnings in the implementation notes (github.com/WICG/cross-o...), which hopefully will be useful for other vendors. #CrossOriginStorage
You can find Web Platform Tests in github.com/web-platform....
Super happy to announce that I'll be presenting about the #CrossOriginStorage API at #JSNationUS 2026: gitnation.com/badges/jsnat.... Click this link to sign up for partial free streaming access! Here's the talk's abstract: gitnation.com/contents/cro....
Hope to see some of you at @jsnation.gitnation.org, physically or on streaming! 👋
I've now filed (or commented on existing) standards position requests from other browser vendors (WebKit & Mozilla) and the W3C TAG for the #CrossOriginStorage API: * Mozilla: github.com/mozilla/stan... * WebKit: github.com/WebKit/stand... 🆕 * W3C TAG: github.com/w3ctag/desig... 🆕
If you're interested in the Cross-Origin Storage API, I just created a new Bluesky feed, check it out and pin it if you like it: bsky.app/profile/did:... #CrossOriginStorage
I was once again a guest on the German-speaking 🇩🇪 @workingdraft.de podcast 🎙️ to talk about the Cross-Origin Storage API: workingdraft.de/723/. thoroughly enjoyed chatting about this exciting API proposal with @schepp.dev and @sirpepe.bsky.social. Track #CrossOriginStorage for more.
Thomas Steiner reposted
Cross-Origin Storage API: stop downloading twice. @morello.dev explains a proposed standard that stores large files by their SHA-256 hash, so origins share one device cache instead of downloading duplicates. #performance #browser morello.dev/blog/cro...
Thomas Steiner reposted
Nice to see this being worked on 🤩 You can already use `<input type="checkbox" switch>` today BTW, thanks to this polyfill by my colleague @tomayac.com: github.com/tomayac/inpu...
Blink: Intent to Prototype: <input type="checkbox" switch>
Cross-Origin Storage API: Stop Downloading Twice: dev.to/morellodev/c.... A great overview of our proposal for the #CrossOriginStorage API by Dennis Morello. 👏
Thomas Steiner reposted
Integrating Vite PWA Inspector with @vite.dev devtools, the inspector can run also as a seperated middleware (ala vite-plugin-inspect or UnoCSS inspector). @tomayac.com #PWA
👀 Look, ma! The Cross-Origin Storage extension running on Firefox! If you dare, install it via `about:debugging` from github.com/web-ai-commu.... Else, just wait for it to be approved on the Firefox Add-on Store. More background on #CrossOriginStorage: github.com/WICG/cross-o....
The Cross-Origin Storage extension was now approved for the Firefox Add-on Store: addons.mozilla.org/en-US/firefo.... 🦊 🧩 #CrossOriginStorage
Started an Awesome Cross-Origin Storage list: github.com/tomayac/awes... . Transformers.js, WebLLM, wllama, Flutter, Emscripten, Nuxt and Vite plugins, and a bunch of demos… #Awesome #CrossOriginStorage
Really great questions and comments on @danielroe.dev's posts on Nuxt's experiments with the Cross-Origin Storage API (github.com/WICG/cross-o...): 🐘 Mastodon: mastodon.roe.dev/@daniel/1168... 🦋 Bluesky: bsky.app/profile/dani... 💼 LinkedIn: www.linkedin.com/posts/daniel...
wouldn't it be nice if sites could share a cache of common js? ... stuff like react, or vue or svelte? 👉 there's an early stage proposal for cross-origin storage which enables exactly this. there are challenges but I think it's very interesting indeed