Bringing Adobe's Creative Cloud to the web: Starting with Photoshop
summary
Photoshop runs in the browser by compiling decades-old C++ into WebAssembly via Emscripten and shipping multiple Wasm builds (pthreads with SharedArrayBuffer using COOP/COEP, -fwasm-exceptions for Wasm-level C++ exceptions, -msimd128 for SIMD) with runtime feature detection. DevTools uses DWARF for source-level Wasm debugging. Large state uses origin-private files and access handles for swap-style paging. UI is Spectrum Web Components built with Lit, colors use CSS color(display-p3), and an 80 MB Wasm cached by Service Worker/workbox makes it usable. Support is broad but evolving.
AI-written summary · about
chapters (4)
- 0:00Start
- 3:29Multithreading Dynamic multitasking with pthreads
- 5:16C++ exception handling Bringing C++ exceptions to WebAssembly
- 6:07SIMD instructions Single instruction, multiple data
related talks
30mWasm Beyond the Browser: Use Cases at Scale
29mWeb Assembly, the Future of JS, and a multi-language web
52mWebAssembly: Taking Your C++ and Going Places
16mWhy WebAssembly
28mWebAssembly: Of Portability, and Performance
28mWasm + Kubernetes: Beyond Containers
28mFlutter, Dart, and WASM-GC: A new model for Web applications
27mHow WebAssembly is changing the Web and what it means for you
