WebInspectorKit v0.3.0
Breaking Changes
- Replaced the public SDK product split:
WebInspectorCore,WebInspectorTransport,WebInspectorNativeBridge,WebInspectorNativeSymbols, andWebInspectorUIare no longer public library products. - Introduced
WebInspectorProxyKit,WebInspectorDataKit, andWebInspectorProxyKitTestingas the supported SDK layers.WebInspectorKitremains the built-in UIKit inspector product. - Moved native bridge, symbol resolution, and transport internals behind
WebInspectorProxyKit; SDK consumers should no longer import those implementation targets directly.
New Features
- Added
WebInspectorProxyKitwithWebInspectorProxy,WebInspectorTarget, typed DOM/CSS/Network/Console/Runtime/Page command clients, and domain event streams. - Added
WebInspectorDataKitwithWebInspectorContainer,WebInspectorContext, observable DOM, Network, Console, Runtime, and CSS models, fetched results APIs, and typed domain controllers. - Added
WebInspectorProxyKitTestingfor exercising ProxyKit/DataKit consumers without the native WebKit bridge. - Added DataKit-backed DOM tree snapshots, DOM editing operations, CSS style sections/property editing, Runtime object models, Console messages, Network request queries, redirects, body fetch state, and WebSocket lifecycle state.
Improvements
- Rebuilt the built-in UIKit inspector on top of DataKit while keeping the app-facing
WebInspectorViewController/WebInspectorSessionfacade. - Improved DOM rendering and updates with streamed tree snapshots, mutation deltas, selection reveal handling, picker highlight restoration, and undo/redo handling.
- Improved Network list performance and correctness with fetched-results-driven updates, off-main request diffing, stable filtering/searching, redirect preservation, and body preview fetch lifecycle handling.
- Hardened ProxyKit target routing, current-page retargeting, event stream closure, command reply decoding, and navigation lifecycle recovery.
- Hardened native inspector symbol resolution on older iOS runtimes.
Bug Fixes
- Fixed stale async Network request updates from mutating retired request identities.
- Fixed selection and content cache invalidation across filters, context changes, detach, retarget, and presentation lifecycle changes.
- Fixed CSS hydration, stale style refreshes, hidden CSS protocol payload exposure, and selected-style invalidation after DOM/CSS changes.
- Fixed DOM picker selection highlighting, frame document projection, keyboard commands, multi-delete undo behavior, and stale undo/redo actions.
- Fixed target-scoped Console, DOM, Runtime, Network, and CSS protocol state across page/frame retargeting.
Documentation
- Updated README and architecture docs for the new
WebInspectorProxyKit/WebInspectorDataKit/WebInspectorKitSDK split. - Added ProxyKit and DataKit package READMEs.
- Added WebKit runtime version mapping notes.
Migration Notes
- Use
WebInspectorKitfor the built-in UIKit inspector UI. - Use
WebInspectorDataKitfor custom UIs that want observable inspector models. - Use
WebInspectorProxyKitfor custom UIs that want typed protocol commands/events directly over an inspectedWKWebView. - Remove imports of
WebInspectorCore,WebInspectorTransport,WebInspectorNativeBridge,WebInspectorNativeSymbols, andWebInspectorUIfrom SDK consumer code.
Full Changelog: v0.2.0...v0.3.0