about things notes.zzstoatzz.io
notes
README.md

web #

the browser as a platform: what its graphics, media, and network layers actually do, measured from inside a page.

these notes are about browser behaviour itself. patterns for building services live in systems/, and shipping them in operations/.

topics #

graphics #

  • webgl-shader-linking — linking is synchronous unless you poll for it; only chromium caches linked programs
  • webgl-drawing-buffer-copies — an alpha: false canvas is RGB, and a copy may not ask for more than that
  • webgl-call-instrumentation — count and attribute GL calls by wrapping the context prototype; firefox stops warning after 32
  • canvas-2d-glow — shadowBlur costs 2 ms in one engine and 73 ms in another; cached sprites are flat, and overlapping translucency needs a bounded layer
  • godot-web-exports — batching versus culling, startup shader links, mesh reads as GPU readbacks, engine-owned console warnings, and the engine binary as the memory floor

media #

  • media-time-and-decoded-time — a media element's clock and decodeAudioData's samples disagree, by a different amount in each browser and after each seek
  • mediarecorder-containers — each browser records something different, and a bare audio/mp4 can hold opus that safari will not play

mobile #

  • home-screen-web-app-scope — without a manifest the installing page decides the scope, and the home link can land outside it
  • ios-input-zoom — inputs under 16px zoom the page, and font: inherit quietly undoes the fix
  • webkit-page-memory — a killed page reloads while a lost GPU leaves a black canvas; compiled wasm costs several times its size, and embedded frames share the page's process

network #

  • cors-modes-and-the-http-cache — one URL fetched in two CORS modes shares one cache entry unless the server varies on origin for every response