Window/BOM Completeness – Missing Browser APIs #124
Labels
No labels
bug
docs
feature
housekeeping
html-spec
performance
react-compat
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
glow-all/true-headless-browser#124
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Gap
Unser OwnWindow hat die wichtigsten APIs (location, navigator, history, timers, crypto, performance). Aber viele Browser APIs fehlen komplett - Seiten die sie feature-detected bekommen undefiniertes Verhalten.
Was fehlt (nach Wichtigkeit)
Kritisch (brechen Seiten wenn nicht vorhanden)
window.postMessage()/window.addEventListener('message', ...)/MessageEvent- Cross-Origin-Kommunikationwindow.open()/window.close()/window.closed- Fenster-Managementwindow.frames/window.length/window[i]- Frame-Indexed-Zugriffwindow.name- Fenster-Name (wird von manchen Frameworks als State genutzt)window.status- Status-Leiste (legacy, aber oft gelesen)window.opener- Verweis auf oeffnendes Fenster (wichtig für window.opener !== null checks)window.locationbar/window.menubar/window.personalbar/window.scrollbars/window.statusbar/window.toolbar- Chrome-APIs (müssen existieren als Objekte mit .visible getter)Hoch (Frameworks/APIs nutzen sie)
window.caches/window.Cache/window.CacheStorage- Cache API (haben einen Shim, muss spec-konformer)window.scheduler/Scheduler/TaskController/TaskSignal- Prioritized Task Schedulingwindow.crossOriginIsolated- Cross-Origin-Opener-Policywindow.isSecureContext- HTTPS Detection (return true/"https" je nach location.protocol)window.origin- Origin (return location.origin)window.originAgentCluster- Origin Keyed Agent Clusteringwindow.screenLeft/window.screenTop/window.screenX/window.screenY- Screen Position (return 0)window.moveTo()/window.moveBy()/window.resizeTo()/window.resizeBy()- noopwindow.print()- noop (muss existieren als Funktion)window.getComputedStyle()/window.matchMedia()- existieren, aber muessen auf windowwindow.getSelection()- Selection API (zurueck zu Selection-Objekt mit noop-Methoden)Mittel (Feature-Detection)
window.showDirectoryPicker()/window.showOpenFilePicker()/window.showSaveFilePicker()- File System Access (noop, reject mit AbortError)window.navigator- alle navigator.* APIs (mediaDevices, bluetooth, usb, serial, etc.) muessen als Objekte existierenwindow.navigator.connection- Network Information (return {effectiveType: '4g', ...})window.navigator.storage/navigator.storage.persist()/navigator.storage.persisted()- Storage APIwindow.BroadcastChannel- Cross-Tab Kommunikationwindow.Notification/Notification.permission/Notification.requestPermission()- Notification API (return 'default', noop)window.ServiceWorker/navigator.serviceWorker- Service Worker (registered: none)Niedrig
window.speechSynthesis- Speech API (leeres Objekt)window.navigator.share()/navigator.canShare()- Web Share API (noop)window.navigator.credentials/navigator.credentials.create()/navigator.credentials.get()- Credential Management (noop)window.navigator.locks/navigator.locks.request()- Web Locks APIwindow.navigator.mediaSession- Media Sessionwindow.navigator.geolocation- Geolocation (noop, error callback)window.navigator.permissions/navigator.permissions.query()- Permissions API (return 'granted' fuer einfache, 'denied' fuer sensitive)window.PaymentRequest/window.PaymentResponse- Payment API (throw NotSupportedError)window.XRSystem/navigator.xr- WebXR (noop)Labels
feature, html-spec
Architektur
Tests