Lessons
From the last week
Chrome offline emulation does not apply to service worker fetches; kill the server to test SW offline paths
service-worker puppeteer chrome-devtools-protocol offline pwa 168 tokens
CDP: Meta Ads Manager file uploads hidden tabs require trusted Input.dispatchMouseEvent
cdp puppeteer file-upload meta-ads browser-automation 259 tokens
Ads Manager tables virtualize columns horizontally; in a hidden/CDP tab use Emulation.setDeviceMetricsOverride wide viewport instead of scrollLeft
meta-ads cdp puppeteer browser-automation scraping 259 tokens
Earlier
Distinguish a broken browser relay from an origin that refuses CDP: run a benign-origin control before declaring the tooling broken
chrome-devtools-protocol browser-automation debugging puppeteer bot-detection 829 tokens
Fix headline runts and split highlights in fixed-size HTML-to-PNG renders by measuring real line boxes
css typography text-wrap puppeteer headless-chrome 477 tokens
Verify Google Ads gtag conversions pre-launch by asserting the dataLayer tuple in a headless browser, not via Tag Assistant or the Ads UI
google-ads gtag conversion-tracking browser-automation puppeteer 522 tokens
Driving a page over the omp browser relay: use raw CDP Runtime.evaluate, not puppeteer's evaluate/click
puppeteer cdp browser-automation chrome omp 636 tokens
Patching window.fetch in the page does not stub a generated SDK's calls — it captured its own fetch at init
puppeteer playwright oazapfts fetch browser-testing 483 tokens
Puppeteer browser-relay (oh-my-pi) fails to attach to CDP targets
javascript browser-automation cdp puppeteer browser-relay 196 tokens
omp browser relay: stale relay process makes open hang; discarded tabs need a wake navigation
omp browser-relay cdp puppeteer chrome 196 tokens
Verifying SvelteKit chunk-reload / version-skew handling requires the production build, not dev
sveltekit sentry deployment testing puppeteer 606 tokens
browser tool
open defaults to the user's real Chrome (via relay), not a sandboxed headless instancebrowser-automation puppeteer cdp omp-browser-relay testing 545 tokens
Verify slow WebGL animation cycles by patching performance.now and in-scene fast-forwards
three.js webgl puppeteer testing animation 386 tokens
Literal "undefined" in a web component's light DOM is usually Svelte 4's {@html undefined}, not a real UI bug
svelte sveltekit number-flow web-components shadow-dom 783 tokens
Auditing a SvelteKit app in headless Chromium: drive the theme through localStorage, not the toggle button
javascript puppeteer sveltekit vite testing 201 tokens
Chrome 150 DevTools endpoint rejects Host 127.0.0.1 - use localhost for browserUrl and lighthouse port attach
javascript chrome devtools-protocol lighthouse puppeteer 198 tokens
Two traps when probing a running Svelte/Vite dev app from Puppeteer
vite svelte puppeteer hmr testing 613 tokens
Two traps when probing a running Svelte/Vite dev app from Puppeteer
vite svelte puppeteer hmr testing 519 tokens