Highlights
🐛 serve-web: clipboard sync no longer drops content
The viewer remembered one fingerprint of the last content that crossed the bridge and skipped anything matching it. That memory went stale in two ways:
- A host copy pushed while the server was down (or restarting) was marked as shared even though the request failed, so it was never retried — start
serve-webagain with the tab still open and the host clipboard never reached the device. A failed push is now retried on the next focus or paste. - Copying the same thing on the device again was discarded when the host clipboard had changed in between without the page seeing it (the page was not focused). A device copy is now always delivered; the echo of host content is already filtered on the server side.
🐛 CDP bridge: awaitPromise follows any thenable, as Chrome does
Runtime.callFunctionOn with awaitPromise now resolves any thenable the way Promise.resolve does. WebKit awaits only a native promise, so a page that replaced the global Promise — as zone.js does on every Angular app — answered with the promise object instead of its value, and Playwright's page.screenshot() failed with "undefined" is not valid JSON (#1904).
What's Changed
- aeaf303 serve-web: Fix clipboard sync dropping content on a stale fingerprint (#1959) (@doronz88)
- 1abfec8 web_protocol: Await any thenable a client asks to await, as Chrome does (#1939) (@doronz88)
Full Changelog: v11.15.0...v11.15.1