Skip to content

bit Butil improvements #12393

@msynk

Description

@msynk

bit Butil improvements:

Batch 1 - Cookie bugs (Parse drops values with =, RFC 1123 date format wrong, URL-encoding missing, empty-cookie junk entry)
Batch 2 - Navigator: SendBeacon / SetAppBadge / CanShare signatures broken
Batch 3 - Crypto: AES-GCM additionalData, RSA-OAEP key import, importKey usages, utils.arrayToBuffer
Batch 4 - IsJsRuntimeInvalid reflection cleanup
Batch 5 - FastInvoke: stop swallowing real failures
Batch 6 - Window.GetSelection returning more than toString()
Batch 7 - MatchMedia change events
Batch 8 - Page Visibility (visibilitychange) & Document.visibilityState / hasFocus()
Batch 9 - Geolocation API (completely new)
Batch 10 - crypto.getRandomValues, crypto.randomUUID, and SubtleCrypto.digest
Batch 11 - Generic typed Storage (GetItem, SetItem)
Batch 12 - Generic typed History.GetState()
Batch 13 - Permissions API
Batch 14 - DI lifetimes → Scoped
Batch 15 - ButilSubscription (IAsyncDisposable subscription primitive)
Batch 16 - Massively expanded typed DOM events
Batch 17 - Performance API
Batch 18 - IntersectionObserver
Batch 19 - ResizeObserver
Batch 20 - Document fullscreen / pointerlock change events + Storage storage event
Batch 21 - DomEventDispatcher returns the listener id; Document & Window track per-instance
Batch 22 - Battery Status, Network Information, Wake Lock
Batch 23 - Crypto HMAC Sign / Verify
Batch 24 - Web Share Level 2 (files)
Batch 25 - Register the new services
Batch 26 - Document typed Subscribe* helpers
Batch 27 - ElementReference event subscriptions
Batch 28 - Element-scoped Keyboard subscriptions
Batch 29 - Speech Synthesis API
Batch 30 - CookieStore API
Batch 31 - User-Agent Client Hints
Batch 32 - Register the new services
Batch 33 - BroadcastChannel
Batch 34 - Web Locks API
Batch 35 - Idle Detection
Batch 36 - Page Lifecycle + typed BeforeUnload
Batch 37 - Selection API extensions
Batch 38 - SubtleCrypto: generateKey / deriveBits / sign-verify (RSA-PSS, ECDSA) / wrap-unwrap
Batch 39 - Register the new services
Batch 40 - MutationObserver
Batch 41 - PerformanceObserver
Batch 42 - Web Animations (element.animate)
Batch 43 - Storage Manager
Batch 44 - Page Lifecycle: wasDiscarded
Batch 45 - Register the new services
Batch 46 - Service Worker
Batch 47 - File / Blob / FileReader basics + URL utilities
Batch 48 - MediaDevices basics
Batch 49 - Fetch wrapper with progress + abort
Batch 50 - Register the new services
Batch 51 - IndexedDB
Batch 52 - Push Subscriptions
Batch 53 - Notification click/show/close/error handlers
Batch 54 - Wake Lock auto-reacquire
Batch 55 - Register the new services
Batch 56 - Cache API
Batch 57 - Background Sync (regular + periodic)
Batch 58 - Speech Recognition
Batch 59 - Web Audio basics
Batch 60 - Register the new services
Batch 61 - EyeDropper
Batch 62 - Contact Picker
Batch 63 - Web NFC (NDEF)
Batch 64 - Reporting API
Batch 65 - Register the new services
Batch 66 - E2E test page on the demo app
Batch 67 - Playwright test project
Batch 68 - Expand the E2E harness page
Batch 69 - Test classes for the observers harness
Batch 70 - GitHub Actions CI workflow

Metadata

Metadata

Assignees

Labels

area / butilBlazor utils for browser APIs
No fields configured for Feature.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions