What's Changed
CDP, Protocol & Automation
- fix(cdp): generate complete discovery schema at build time by @neosun100 in #2294
- fix(protocol): let independent commands progress during local waits #2840
- fix(browser): keep omitted window bounds and add getWindowBounds by @lanyue-llk in #2772
- fix(cdp): settle attachment navigation waits in Playwright #2875
- refactor(cdp): share event names between senders and discovery #2855
- fix(cdp): preserve nested iframe identities and commit order #2878
- refactor(inspector): delegate CDP object ownership to native sessions #2857
- fix(cdp): publish child navigation starts before requests and commits #2901
- fix(cdp): keep WebSocket handshakes outside Fetch interception #2938
- fix(cdp): calibrate frame input and discover Chromium endpoints #2954
Fetch, XHR & Downloads
- fix(network): preserve Window referrers through Service Workers #2740
- feat(xhr): keep interception live during synchronous requests by @yepbro in #2729
- fix(fetch): follow fulfilled Window fetch redirects #2882
- refactor(network): share interception policy and response handling #2883
- refactor(fetch): derive interception admission from shared rules by @yepbro in #2704
- fix(fetch): preserve CDP authentication alongside network intercepts #2886
- fix(fetch): keep intercepted parser script Network ids stable #2885
- fix(fetch): apply effective request overrides before fulfillment #2902
- fix(fetch): advance intercepted redirects from response headers #2903
- fix(fetch): handle manual redirects before resolving Location #2905
- fix(download): stream child-frame attachments with sandbox checks #2939
- feat(fetch): add event-loop idle wait mode #2887
- refactor(download): share preparation for fetched responses #2952
- fix(fetch): keep manual preflight redirects opaque #2956
- fix(fetch): honor stylesheet interception before loading CSS #2957
- fix(fetch): preserve intercepted headers across redirect hops #2955
Navigation, Window & Origin Isolation
- fix(window): reject deleting live indexed children #2743
- fix(navigation): honor cancellation before revealing fragment targets #2755
- fix(renderer): retain Page window identity through target close #2839
- fix(policy): delegate opaque iframe src permissions #2834
- fix(dom): clear child Document handlers without author setters #2752
- fix(window): enforce frameElement origin checks #2736
- refactor(webapi): declare same-origin Window access policies #2849
- fix(page): stop parsing a streaming document after Page.stopLoading by @lanyue-llk in #2817
- refactor(renderer): capture Page window identity before document creation #2841
- fix(storage): use first-party keys for iframe-created blank popups #2852
- fix(window): preserve active auxiliary BarProp visibility during close #2907
- fix(navigation): preserve same-world history entry identities #2910
- fix(html): wire Document freeze and resume event handlers #2888
Service Workers & Workers
- fix(service-worker): use native Window containers for notifications #2828
- fix(service-worker): create register promises in the container realm #2833
- fix(workers): share module loads through the common module tree #2750
- fix(service-worker): share native ExtendableEvent waitUntil handling #2873
- feat(service-worker): implement native FetchEvent construction #2871
- fix(workers): reclaim retired Inspector session lifetimes #2950
Input, Editing, Selection & Accessibility
- fix(aria): resolve element references through native attribute state #2429
- fix(input): activate completed touch taps #2879
- fix(selection): share document selection across isolated worlds #2881
- fix(input): dispatch trusted legacy textInput events #2880
- fix(focus): resolve Document focus through native ancestors #2847
- fix(selection): notify Document listeners across isolated worlds #2890
- fix(aria): include detached roots in IDREF resolution #2899
- fix(input): replace selected text on empty IME commits #2891
- fix(input): capture IME caret before beforeinput callbacks #2892
- fix(input): share flat-tree mouse boundary transitions #2895
- fix(input): revalidate touch activation using frozen geometry #2897
- fix(selection): initialize editing focus at an editable caret #2893
- fix(input): preserve keyboard event location through dispatch #2967
- fix(forms): scope labels to their owning document #2948
DOM, HTML & Web APIs
- refactor(dom): name atomic move semantics consistently #2835
- fix(html): keep ping reflection in the null attribute namespace #2926
- fix(forms): ignore foreign namespace select mode attributes #2927
- fix(media): isolate reflected metadata attributes by namespace #2928
- fix(trusted-types): expose native policy prototypes through lazy realms #2918
- fix(blob): allocate borrowed read promises in the Blob realm #2909
HTML & Markdown Export
- refactor(html): serialize page exports without DOM copies #2836
- fix(dump): keep media sources and sanitized range/color values in markdown by @lanyue-llk in #2813
CSS, SVG, Canvas & Layout
- fix(svg): restore dynamically measured profile activity charts #2843
- fix(svg): preserve scene units and serialized template identities #2854
- fix(layout): apply frozen publication policy to SVG queries #2868
- fix(svg): convert rectangle values before readonly checks #2894
- feat(canvas): implement OffscreenCanvas.transferToImageBitmap by @jeanpfs in #2949
- fix(svg): avoid fallback painting for negative intrinsic lengths #2981
- fix(svg): prevent extreme arcs from stalling layout #2982
Renderer, Runtime & Internals
- perf(runtime): keep Inspector responses raw during handle registration #2837
- feat(core): expose renderer output transport sender by @Spxg in #2951
- refactor(types): group shared crates and remove parser's direct fetch dependency #2965
WPT, Testing & Reliability
- fix: resolve WPT regressions and refresh full release cases #2838
- test(fetch): cover cache states during request revalidation #2748
- fix(wpt): serve ServiceWorker scope redirect delegates #2851
- test(scripts): cover dynamic Function import provenance in the renderer #2848
- test(fetch): cover pending Request stream Blob MIME conversion #2869
- fix(tests): wake Service Worker fixtures on producer completion #2746
- test(cdp): lock down modifier shortcut parity with Chrome #2877
- test(dom): cover query result identity across realms #2915
- test(images): cover timing publication before decoded image load #2923
- test(cssom): cover native content alt counter validation and serialization #2924
- test(events): cover retained simple targets across listener realms #2922
- test(events): cover worker listener exception reporting and reentry #2921
- test(stylesheets): gate href mutation fetches on parser progress #2920
- test(blob): cover receiver validation across realms #2917
- test(indexeddb): cover connection queues across upgrades and realms #2914
- test(history): retain joint history across successive child frames #2916
- test(window): cover focus receivers and retired origin checks #2919
- test(automation): validate shared and frozen-geometry behavior #2906
- test(playwright): match fulfilled redirect routing to Chromium #2969
- test(fetch): guard fulfilled redirects with exact interception patterns #2977
- test(custom-elements): cover parser construction before body creation #2972
- fix(smoke): align WebSocket events and Chromium group overrides #2978
New Contributors
Full Changelog: v1.1.24...v1.1.25