WebView-CG / Compatibility-Data-Project

We are driving an initiative to measure compatibility between WebViews across the ecosystem. This repository is used to track tasks and the current state of the project.
https://caniwebview.com/
18 stars 5 forks source link

Investigate possible BCD improvement for Android WebView #1

Open RupertBenWiser opened 6 months ago

RupertBenWiser commented 6 months ago

Android WebView disables a number of features at run time because it shares a build target with the Android target of Chromium: https://source.chromium.org/chromium/chromium/src/+/main:android_webview/browser/aw_field_trials.cc

We should investigate if we can improve this detection mechanism.

dontcallmedom commented 6 months ago

there is also the other way around (not specific to Android): seeing what would be need to make the automated tool used to detect support for features work for WebViews

(both are probably useful independently since feature detection may not always be accurate on WebViews either - it may be particularly useful to document these situations in BCD)

RupertBenWiser commented 6 months ago

At least speaking for Chromium, there is apparently this cool tool that starts a shell and can detect what web APIs are exposed at runtime: https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/web_tests/webexposed/?q=webexposed&ss=chromium

We will need a bit more investigation / support from someone who understands this better - but perhaps something in that space would be more generic and applicable to WebViews as a whole? Similar to WPTs but it just relies on detecting the feature availability rather than its compliance.

Elchi3 commented 6 months ago

I've been looking for hints at https://source.chromium.org/chromium/chromium/src/+/main:android_webview/tools/system_webview_shell/test/data/webexposed/not-webview-exposed.txt;bpv=0;bpt=0

there is also the other way around (not specific to Android): seeing what would be need to make the automated tool used to detect support for features work for WebViews

(both are probably useful independently since feature detection may not always be accurate on WebViews either - it may be particularly useful to document these situations in BCD)

Yes! I'd be very happy to investigate what we would need in the Open Web Docs BCD collector to collect correct support data for Android WebView.

Currently, if you checkout mdn/browser-compat-data and run the following command you get 874 features not supported in WebView Android.

npm run traverse -- -b webview_android -f false

Output

1. api.AbortPaymentEvent 2. api.AbortPaymentEvent.AbortPaymentEvent 3. api.AbortPaymentEvent.respondWith 4. api.AuthenticatorAssertionResponse 5. api.AuthenticatorAssertionResponse.authenticatorData 6. api.AuthenticatorAssertionResponse.signature 7. api.AuthenticatorAssertionResponse.userHandle 8. api.AuthenticatorAttestationResponse 9. api.AuthenticatorAttestationResponse.attestationObject 10. api.AuthenticatorAttestationResponse.getAuthenticatorData 11. api.AuthenticatorAttestationResponse.getPublicKey 12. api.AuthenticatorAttestationResponse.getPublicKeyAlgorithm 13. api.AuthenticatorAttestationResponse.getTransports 14. api.AuthenticatorResponse 15. api.AuthenticatorResponse.clientDataJSON 16. api.BackgroundFetchEvent 17. api.BackgroundFetchEvent.BackgroundFetchEvent 18. api.BackgroundFetchEvent.registration 19. api.BackgroundFetchManager 20. api.BackgroundFetchManager.fetch 21. api.BackgroundFetchManager.get 22. api.BackgroundFetchManager.getIds 23. api.BackgroundFetchRecord 24. api.BackgroundFetchRecord.request 25. api.BackgroundFetchRecord.responseReady 26. api.BackgroundFetchRegistration 27. api.BackgroundFetchRegistration.abort 28. api.BackgroundFetchRegistration.downloaded 29. api.BackgroundFetchRegistration.downloadTotal 30. api.BackgroundFetchRegistration.failureReason 31. api.BackgroundFetchRegistration.id 32. api.BackgroundFetchRegistration.match 33. api.BackgroundFetchRegistration.matchAll 34. api.BackgroundFetchRegistration.progress_event 35. api.BackgroundFetchRegistration.recordsAvailable 36. api.BackgroundFetchRegistration.result 37. api.BackgroundFetchRegistration.uploaded 38. api.BackgroundFetchRegistration.uploadTotal 39. api.BackgroundFetchUpdateUIEvent 40. api.BackgroundFetchUpdateUIEvent.BackgroundFetchUpdateUIEvent 41. api.BackgroundFetchUpdateUIEvent.updateUI 42. api.Bluetooth 43. api.Bluetooth.getAvailability 44. api.Bluetooth.requestDevice 45. api.Bluetooth.requestDevice.options_exclusionFilters_parameter 46. api.Bluetooth.requestDevice.options_filter_manufacturerData_parameter 47. api.BluetoothCharacteristicProperties 48. api.BluetoothCharacteristicProperties.authenticatedSignedWrites 49. api.BluetoothCharacteristicProperties.broadcast 50. api.BluetoothCharacteristicProperties.indicate 51. api.BluetoothCharacteristicProperties.notify 52. api.BluetoothCharacteristicProperties.read 53. api.BluetoothCharacteristicProperties.reliableWrite 54. api.BluetoothCharacteristicProperties.writableAuxiliaries 55. api.BluetoothCharacteristicProperties.write 56. api.BluetoothCharacteristicProperties.writeWithoutResponse 57. api.BluetoothDevice 58. api.BluetoothDevice.gatt 59. api.BluetoothDevice.gattserverdisconnected_event 60. api.BluetoothDevice.id 61. api.BluetoothDevice.name 62. api.BluetoothRemoteGATTCharacteristic 63. api.BluetoothRemoteGATTCharacteristic.characteristicvaluechanged_event 64. api.BluetoothRemoteGATTCharacteristic.getDescriptor 65. api.BluetoothRemoteGATTCharacteristic.getDescriptors 66. api.BluetoothRemoteGATTCharacteristic.properties 67. api.BluetoothRemoteGATTCharacteristic.readValue 68. api.BluetoothRemoteGATTCharacteristic.service 69. api.BluetoothRemoteGATTCharacteristic.startNotifications 70. api.BluetoothRemoteGATTCharacteristic.stopNotifications 71. api.BluetoothRemoteGATTCharacteristic.uuid 72. api.BluetoothRemoteGATTCharacteristic.value 73. api.BluetoothRemoteGATTCharacteristic.writeValue 74. api.BluetoothRemoteGATTCharacteristic.writeValueWithoutResponse 75. api.BluetoothRemoteGATTCharacteristic.writeValueWithResponse 76. api.BluetoothRemoteGATTDescriptor 77. api.BluetoothRemoteGATTDescriptor.characteristic 78. api.BluetoothRemoteGATTDescriptor.readValue 79. api.BluetoothRemoteGATTDescriptor.uuid 80. api.BluetoothRemoteGATTDescriptor.value 81. api.BluetoothRemoteGATTDescriptor.writeValue 82. api.BluetoothRemoteGATTServer 83. api.BluetoothRemoteGATTServer.connect 84. api.BluetoothRemoteGATTServer.connected 85. api.BluetoothRemoteGATTServer.device 86. api.BluetoothRemoteGATTServer.disconnect 87. api.BluetoothRemoteGATTServer.getPrimaryService 88. api.BluetoothRemoteGATTServer.getPrimaryServices 89. api.BluetoothRemoteGATTService 90. api.BluetoothRemoteGATTService.device 91. api.BluetoothRemoteGATTService.getCharacteristic 92. api.BluetoothRemoteGATTService.getCharacteristics 93. api.BluetoothRemoteGATTService.isPrimary 94. api.BluetoothRemoteGATTService.uuid 95. api.BluetoothUUID 96. api.BluetoothUUID.canonicalUUID_static 97. api.BluetoothUUID.getCharacteristic_static 98. api.BluetoothUUID.getDescriptor_static 99. api.BluetoothUUID.getService_static 100. api.CanMakePaymentEvent 101. api.CanMakePaymentEvent.CanMakePaymentEvent 102. api.CanMakePaymentEvent.methodData 103. api.CanMakePaymentEvent.modifiers 104. api.CanMakePaymentEvent.paymentRequestOrigin 105. api.CanMakePaymentEvent.respondWith 106. api.CanMakePaymentEvent.topOrigin 107. api.CredentialsContainer.create.publicKey_option 108. api.CredentialsContainer.create.publicKey_option.extensions 109. api.CredentialsContainer.create.publicKey_option.extensions.appidExclude 110. api.CredentialsContainer.create.publicKey_option.extensions.credProps 111. api.CredentialsContainer.create.publicKey_option.extensions.credProtect 112. api.CredentialsContainer.create.publicKey_option.extensions.largeBlob 113. api.CredentialsContainer.create.publicKey_option.extensions.minPinLength 114. api.CredentialsContainer.create.publicKey_option.extensions.payment 115. api.CredentialsContainer.create.publicKey_option.requireResidentKey 116. api.CredentialsContainer.create.publicKey_option.residentKey 117. api.CredentialsContainer.get.identity_option 118. api.CredentialsContainer.get.identity_option.context_option 119. api.CredentialsContainer.get.identity_option.error_api 120. api.CredentialsContainer.get.identity_option.loginHint 121. api.CredentialsContainer.get.otp_option 122. api.CredentialsContainer.get.publicKey_option 123. api.CredentialsContainer.get.publicKey_option.extensions 124. api.CredentialsContainer.get.publicKey_option.extensions.appid 125. api.CredentialsContainer.get.publicKey_option.extensions.largeBlob 126. api.Document.exitPictureInPicture 127. api.Document.pictureInPictureElement 128. api.Document.pictureInPictureEnabled 129. api.Document.requestStorageAccess 130. api.Document.requestStorageAccess.types_parameter 131. api.Document.requestStorageAccess.types_parameter.types_all_parameter 132. api.Document.requestStorageAccess.types_parameter.types_BroadcastChannel_parameter 133. api.Document.requestStorageAccess.types_parameter.types_caches_parameter 134. api.Document.requestStorageAccess.types_parameter.types_cookies_parameter 135. api.Document.requestStorageAccess.types_parameter.types_createObjectURL_parameter 136. api.Document.requestStorageAccess.types_parameter.types_estimate_parameter 137. api.Document.requestStorageAccess.types_parameter.types_getDirectory_parameter 138. api.Document.requestStorageAccess.types_parameter.types_indexedDB_parameter 139. api.Document.requestStorageAccess.types_parameter.types_localStorage_parameter 140. api.Document.requestStorageAccess.types_parameter.types_locks_parameter 141. api.Document.requestStorageAccess.types_parameter.types_revokeObjectURL_parameter 142. api.Document.requestStorageAccess.types_parameter.types_sessionStorage_parameter 143. api.Document.requestStorageAccessFor 144. api.FileSystemDirectoryHandle 145. api.FileSystemDirectoryHandle.entries 146. api.FileSystemDirectoryHandle.getDirectoryHandle 147. api.FileSystemDirectoryHandle.getFileHandle 148. api.FileSystemDirectoryHandle.keys 149. api.FileSystemDirectoryHandle.removeEntry 150. api.FileSystemDirectoryHandle.resolve 151. api.FileSystemDirectoryHandle.values 152. api.FileSystemDirectoryHandle.@@asyncIterator 153. api.FileSystemFileHandle.createWritable 154. api.FileSystemFileHandle.getFile 155. api.FileSystemHandle 156. api.FileSystemHandle.isSameEntry 157. api.FileSystemHandle.kind 158. api.FileSystemHandle.name 159. api.FileSystemHandle.queryPermission 160. api.FileSystemHandle.remove 161. api.FileSystemHandle.requestPermission 162. api.FontFaceSetLoadEvent.worker_support 163. api.Gamepad.displayId 164. api.Gamepad.vibrationActuator 165. api.GeolocationCoordinates.secure_context_required 166. api.HTMLIFrameElement.allowPaymentRequest 167. api.HTMLInputElement.webkitEntries 168. api.HTMLMediaElement.disableRemotePlayback 169. api.HTMLMediaElement.remote 170. api.HTMLVideoElement.disablePictureInPicture 171. api.HTMLVideoElement.enterpictureinpicture_event 172. api.HTMLVideoElement.leavepictureinpicture_event 173. api.HTMLVideoElement.requestPictureInPicture 174. api.IdentityCredential 175. api.IdentityCredential.disconnect_static 176. api.IdentityCredential.isAutoSelected 177. api.IdentityCredential.token 178. api.IdentityProvider 179. api.IdentityProvider.close_static 180. api.IdentityProvider.getUserInfo_static 181. api.MediaMetadata 182. api.MediaMetadata.MediaMetadata 183. api.MediaMetadata.album 184. api.MediaMetadata.artist 185. api.MediaMetadata.artwork 186. api.MediaMetadata.chapterInfo 187. api.MediaMetadata.title 188. api.MediaSession 189. api.MediaSession.metadata 190. api.MediaSession.playbackState 191. api.MediaSession.setActionHandler 192. api.MediaSession.setActionHandler.hangup_type 193. api.MediaSession.setActionHandler.nextslide_type 194. api.MediaSession.setActionHandler.nexttrack_type 195. api.MediaSession.setActionHandler.pause_type 196. api.MediaSession.setActionHandler.play_type 197. api.MediaSession.setActionHandler.previousslide_type 198. api.MediaSession.setActionHandler.previoustrack_type 199. api.MediaSession.setActionHandler.seekbackward_type 200. api.MediaSession.setActionHandler.seekforward_type 201. api.MediaSession.setActionHandler.seekto_type 202. api.MediaSession.setActionHandler.stop_type 203. api.MediaSession.setActionHandler.togglecamera_type 204. api.MediaSession.setActionHandler.togglemicrophone_type 205. api.MediaSession.setCameraActive 206. api.MediaSession.setMicrophoneActive 207. api.MediaSession.setPositionState 208. api.Metadata 209. api.Metadata.modificationTime 210. api.Metadata.size 211. api.Navigator.activeVRDisplays 212. api.Navigator.bluetooth 213. api.Navigator.canShare 214. api.Navigator.canShare.data_files_parameter 215. api.Navigator.canShare.data_text_parameter 216. api.Navigator.getInstalledRelatedApps 217. api.Navigator.getVRDisplays 218. api.Navigator.login 219. api.Navigator.mediaSession 220. api.Navigator.permissions 221. api.Navigator.presentation 222. api.Navigator.share 223. api.Navigator.share.data_files_parameter 224. api.Navigator.share.data_text_parameter 225. api.Navigator.usb 226. api.Navigator.xr 227. api.NavigatorLogin 228. api.NavigatorLogin.setStatus 229. api.NavigatorUAData 230. api.NavigatorUAData.brands 231. api.NavigatorUAData.getHighEntropyValues 232. api.NavigatorUAData.mobile 233. api.NavigatorUAData.platform 234. api.NavigatorUAData.toJSON 235. api.Notification 236. api.Notification.secure_context_required 237. api.Notification.worker_support 238. api.Notification.actions 239. api.Notification.badge 240. api.Notification.body 241. api.Notification.click_event 242. api.Notification.close 243. api.Notification.close_event 244. api.Notification.data 245. api.Notification.dir 246. api.Notification.error_event 247. api.Notification.icon 248. api.Notification.image 249. api.Notification.lang 250. api.Notification.maxActions_static 251. api.Notification.permission_static 252. api.Notification.renotify 253. api.Notification.requestPermission_static 254. api.Notification.requireInteraction 255. api.Notification.show_event 256. api.Notification.silent 257. api.Notification.tag 258. api.Notification.timestamp 259. api.Notification.title 260. api.Notification.vibrate 261. api.NotificationEvent 262. api.NotificationEvent.NotificationEvent 263. api.NotificationEvent.action 264. api.NotificationEvent.notification 265. api.OTPCredential 266. api.OTPCredential.code 267. api.OffscreenCanvas.convertToBlob.option_type_parameter_webp 268. api.OffscreenCanvas.getContext.bitmaprenderer_context 269. api.OffscreenCanvas.getContext.webgl_context 270. api.OffscreenCanvas.getContext.webgl2_context 271. api.OffscreenCanvas.getContext.2d_context 272. api.PaymentAddress 273. api.PaymentAddress.addressLine 274. api.PaymentAddress.city 275. api.PaymentAddress.country 276. api.PaymentAddress.dependentLocality 277. api.PaymentAddress.organization 278. api.PaymentAddress.phone 279. api.PaymentAddress.postalCode 280. api.PaymentAddress.recipient 281. api.PaymentAddress.region 282. api.PaymentAddress.sortingCode 283. api.PaymentAddress.toJSON 284. api.PaymentInstruments 285. api.PaymentInstruments.clear 286. api.PaymentInstruments.delete 287. api.PaymentInstruments.get 288. api.PaymentInstruments.has 289. api.PaymentInstruments.keys 290. api.PaymentInstruments.set 291. api.PaymentManager 292. api.PaymentManager.enableDelegations 293. api.PaymentManager.instruments 294. api.PaymentManager.userHint 295. api.PaymentMethodChangeEvent 296. api.PaymentMethodChangeEvent.PaymentMethodChangeEvent 297. api.PaymentMethodChangeEvent.methodDetails 298. api.PaymentMethodChangeEvent.methodName 299. api.PaymentRequest 300. api.PaymentRequest.PaymentRequest 301. api.PaymentRequest.PaymentRequest.secure_payment_confirmation_method 302. api.PaymentRequest.abort 303. api.PaymentRequest.canMakePayment 304. api.PaymentRequest.id 305. api.PaymentRequest.paymentmethodchange_event 306. api.PaymentRequest.shippingAddress 307. api.PaymentRequest.shippingaddresschange_event 308. api.PaymentRequest.shippingOption 309. api.PaymentRequest.shippingoptionchange_event 310. api.PaymentRequest.shippingType 311. api.PaymentRequest.show 312. api.PaymentRequestEvent 313. api.PaymentRequestEvent.PaymentRequestEvent 314. api.PaymentRequestEvent.changePaymentMethod 315. api.PaymentRequestEvent.changeShippingAddress 316. api.PaymentRequestEvent.changeShippingOption 317. api.PaymentRequestEvent.instrumentKey 318. api.PaymentRequestEvent.methodData 319. api.PaymentRequestEvent.modifiers 320. api.PaymentRequestEvent.openWindow 321. api.PaymentRequestEvent.paymentOptions 322. api.PaymentRequestEvent.paymentRequestId 323. api.PaymentRequestEvent.paymentRequestOrigin 324. api.PaymentRequestEvent.respondWith 325. api.PaymentRequestEvent.shippingOptions 326. api.PaymentRequestEvent.topOrigin 327. api.PaymentRequestEvent.total 328. api.PaymentRequestUpdateEvent 329. api.PaymentRequestUpdateEvent.PaymentRequestUpdateEvent 330. api.PaymentRequestUpdateEvent.updateWith 331. api.PaymentResponse 332. api.PaymentResponse.complete 333. api.PaymentResponse.details 334. api.PaymentResponse.methodName 335. api.PaymentResponse.payerdetailchange_event 336. api.PaymentResponse.payerEmail 337. api.PaymentResponse.payerName 338. api.PaymentResponse.payerPhone 339. api.PaymentResponse.requestId 340. api.PaymentResponse.retry 341. api.PaymentResponse.shippingAddress 342. api.PaymentResponse.shippingOption 343. api.PaymentResponse.toJSON 344. api.PeriodicSyncEvent 345. api.PeriodicSyncEvent.PeriodicSyncEvent 346. api.PeriodicSyncEvent.tag 347. api.PeriodicSyncManager 348. api.PeriodicSyncManager.getTags 349. api.PeriodicSyncManager.register 350. api.PeriodicSyncManager.unregister 351. api.PermissionStatus 352. api.PermissionStatus.change_event 353. api.PermissionStatus.name 354. api.PermissionStatus.state 355. api.Permissions 356. api.Permissions.permission_accelerometer 357. api.Permissions.permission_accessibility-events 358. api.Permissions.permission_background-sync 359. api.Permissions.permission_bluetooth 360. api.Permissions.permission_camera 361. api.Permissions.permission_clipboard-read 362. api.Permissions.permission_clipboard-write 363. api.Permissions.permission_geolocation 364. api.Permissions.permission_gyroscope 365. api.Permissions.permission_magnetometer 366. api.Permissions.permission_microphone 367. api.Permissions.permission_midi 368. api.Permissions.permission_notifications 369. api.Permissions.permission_payment-handler 370. api.Permissions.permission_persistent-storage 371. api.Permissions.permission_push 372. api.Permissions.permission_screen-wake-lock 373. api.Permissions.permission_storage-access 374. api.Permissions.permission_top-level-storage-access 375. api.Permissions.query 376. api.PictureInPictureEvent 377. api.PictureInPictureEvent.PictureInPictureEvent 378. api.PictureInPictureEvent.pictureInPictureWindow 379. api.PictureInPictureWindow 380. api.PictureInPictureWindow.height 381. api.PictureInPictureWindow.resize_event 382. api.PictureInPictureWindow.width 383. api.Presentation 384. api.Presentation.defaultRequest 385. api.Presentation.receiver 386. api.PresentationAvailability 387. api.PresentationAvailability.change_event 388. api.PresentationAvailability.value 389. api.PresentationConnection 390. api.PresentationConnection.binaryType 391. api.PresentationConnection.close 392. api.PresentationConnection.close_event 393. api.PresentationConnection.connect_event 394. api.PresentationConnection.id 395. api.PresentationConnection.message_event 396. api.PresentationConnection.send 397. api.PresentationConnection.state 398. api.PresentationConnection.terminate 399. api.PresentationConnection.terminate_event 400. api.PresentationConnection.url 401. api.PresentationConnectionAvailableEvent 402. api.PresentationConnectionAvailableEvent.PresentationConnectionAvailableEvent 403. api.PresentationConnectionAvailableEvent.connection 404. api.PresentationConnectionCloseEvent 405. api.PresentationConnectionCloseEvent.PresentationConnectionCloseEvent 406. api.PresentationConnectionCloseEvent.message 407. api.PresentationConnectionCloseEvent.reason 408. api.PresentationConnectionList 409. api.PresentationConnectionList.connectionavailable_event 410. api.PresentationConnectionList.connections 411. api.PresentationReceiver 412. api.PresentationReceiver.connectionList 413. api.PresentationRequest 414. api.PresentationRequest.PresentationRequest 415. api.PresentationRequest.secure_context_required 416. api.PresentationRequest.connectionavailable_event 417. api.PresentationRequest.getAvailability 418. api.PresentationRequest.reconnect 419. api.PresentationRequest.start 420. api.PublicKeyCredential 421. api.PublicKeyCredential.authenticatorAttachment 422. api.PublicKeyCredential.getClientExtensionResults 423. api.PublicKeyCredential.isConditionalMediationAvailable_static 424. api.PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable_static 425. api.PublicKeyCredential.rawId 426. api.PublicKeyCredential.response 427. api.PushEvent 428. api.PushEvent.PushEvent 429. api.PushEvent.data 430. api.PushManager 431. api.PushManager.getSubscription 432. api.PushManager.hasPermission 433. api.PushManager.permissionState 434. api.PushManager.register 435. api.PushManager.registrations 436. api.PushManager.subscribe 437. api.PushManager.supportedContentEncodings_static 438. api.PushManager.unregister 439. api.PushMessageData 440. api.PushMessageData.arrayBuffer 441. api.PushMessageData.blob 442. api.PushMessageData.json 443. api.PushMessageData.text 444. api.PushSubscription 445. api.PushSubscription.endpoint 446. api.PushSubscription.expirationTime 447. api.PushSubscription.getKey 448. api.PushSubscription.options 449. api.PushSubscription.subscriptionId 450. api.PushSubscription.toJSON 451. api.PushSubscription.unsubscribe 452. api.PushSubscriptionOptions 453. api.PushSubscriptionOptions.applicationServerKey 454. api.PushSubscriptionOptions.userVisibleOnly 455. api.RTCPeerConnection.RTCPeerConnection.configuration_iceServers_parameter.credential_parameter 456. api.RTCPeerConnection.RTCPeerConnection.configuration_iceServers_parameter.url_parameter 457. api.RTCPeerConnection.RTCPeerConnection.configuration_iceServers_parameter.urls_parameter 458. api.RTCPeerConnection.RTCPeerConnection.configuration_iceServers_parameter.username_parameter 459. api.RemotePlayback 460. api.RemotePlayback.cancelWatchAvailability 461. api.RemotePlayback.connect_event 462. api.RemotePlayback.connecting_event 463. api.RemotePlayback.disconnect_event 464. api.RemotePlayback.prompt 465. api.RemotePlayback.state 466. api.RemotePlayback.watchAvailability 467. api.Request.mode.navigate_mode 468. api.ServiceWorkerGlobalScope.abortpayment_event 469. api.ServiceWorkerGlobalScope.backgroundfetchabort_event 470. api.ServiceWorkerGlobalScope.backgroundfetchclick_event 471. api.ServiceWorkerGlobalScope.backgroundfetchfail_event 472. api.ServiceWorkerGlobalScope.backgroundfetchsuccess_event 473. api.ServiceWorkerGlobalScope.canmakepayment_event 474. api.ServiceWorkerGlobalScope.paymentrequest_event 475. api.ServiceWorkerGlobalScope.periodicsync_event 476. api.ServiceWorkerRegistration.backgroundFetch 477. api.ServiceWorkerRegistration.getNotifications 478. api.ServiceWorkerRegistration.paymentManager 479. api.ServiceWorkerRegistration.pushManager 480. api.ServiceWorkerRegistration.showNotification 481. api.ServiceWorkerRegistration.showNotification.options_actions_parameter 482. api.ServiceWorkerRegistration.showNotification.options_badge_parameter 483. api.ServiceWorkerRegistration.showNotification.options_data_parameter 484. api.ServiceWorkerRegistration.showNotification.options_image_parameter 485. api.ServiceWorkerRegistration.showNotification.options_renotify_parameter 486. api.ServiceWorkerRegistration.showNotification.options_requireInteraction_parameter 487. api.ServiceWorkerRegistration.showNotification.options_vibrate_parameter 488. api.SpeechGrammar 489. api.SpeechGrammar.SpeechGrammar 490. api.SpeechGrammar.src 491. api.SpeechGrammar.weight 492. api.SpeechSynthesis 493. api.SpeechSynthesis.cancel 494. api.SpeechSynthesis.getVoices 495. api.SpeechSynthesis.pause 496. api.SpeechSynthesis.paused 497. api.SpeechSynthesis.pending 498. api.SpeechSynthesis.resume 499. api.SpeechSynthesis.speak 500. api.SpeechSynthesis.speaking 501. api.SpeechSynthesis.voiceschanged_event 502. api.SpeechSynthesisErrorEvent 503. api.SpeechSynthesisErrorEvent.SpeechSynthesisErrorEvent 504. api.SpeechSynthesisErrorEvent.error 505. api.SpeechSynthesisEvent 506. api.SpeechSynthesisEvent.SpeechSynthesisEvent 507. api.SpeechSynthesisEvent.charIndex 508. api.SpeechSynthesisEvent.charLength 509. api.SpeechSynthesisEvent.elapsedTime 510. api.SpeechSynthesisEvent.elapsedTime.milliseconds 511. api.SpeechSynthesisEvent.name 512. api.SpeechSynthesisEvent.utterance 513. api.SpeechSynthesisUtterance 514. api.SpeechSynthesisUtterance.SpeechSynthesisUtterance 515. api.SpeechSynthesisUtterance.boundary_event 516. api.SpeechSynthesisUtterance.end_event 517. api.SpeechSynthesisUtterance.error_event 518. api.SpeechSynthesisUtterance.lang 519. api.SpeechSynthesisUtterance.mark_event 520. api.SpeechSynthesisUtterance.pause_event 521. api.SpeechSynthesisUtterance.pitch 522. api.SpeechSynthesisUtterance.rate 523. api.SpeechSynthesisUtterance.resume_event 524. api.SpeechSynthesisUtterance.start_event 525. api.SpeechSynthesisUtterance.text 526. api.SpeechSynthesisUtterance.voice 527. api.SpeechSynthesisUtterance.volume 528. api.SpeechSynthesisVoice 529. api.SpeechSynthesisVoice.default 530. api.SpeechSynthesisVoice.lang 531. api.SpeechSynthesisVoice.localService 532. api.SpeechSynthesisVoice.name 533. api.SpeechSynthesisVoice.voiceURI 534. api.StorageAccessHandle 535. api.StorageAccessHandle.BroadcastChannel 536. api.StorageAccessHandle.caches 537. api.StorageAccessHandle.createObjectURL 538. api.StorageAccessHandle.estimate 539. api.StorageAccessHandle.getDirectory 540. api.StorageAccessHandle.indexedDB 541. api.StorageAccessHandle.localStorage 542. api.StorageAccessHandle.locks 543. api.StorageAccessHandle.revokeObjectURL 544. api.StorageAccessHandle.sessionStorage 545. api.USB 546. api.USB.connect_event 547. api.USB.disconnect_event 548. api.USB.getDevices 549. api.USB.requestDevice 550. api.USBAlternateInterface 551. api.USBAlternateInterface.USBAlternateInterface 552. api.USBAlternateInterface.alternateSetting 553. api.USBAlternateInterface.endpoints 554. api.USBAlternateInterface.interfaceClass 555. api.USBAlternateInterface.interfaceName 556. api.USBAlternateInterface.interfaceProtocol 557. api.USBAlternateInterface.interfaceSubclass 558. api.USBConfiguration 559. api.USBConfiguration.USBConfiguration 560. api.USBConfiguration.configurationName 561. api.USBConfiguration.configurationValue 562. api.USBConfiguration.interfaces 563. api.USBConnectionEvent 564. api.USBConnectionEvent.USBConnectionEvent 565. api.USBConnectionEvent.device 566. api.USBDevice 567. api.USBDevice.claimInterface 568. api.USBDevice.clearHalt 569. api.USBDevice.close 570. api.USBDevice.configuration 571. api.USBDevice.configurations 572. api.USBDevice.controlTransferIn 573. api.USBDevice.controlTransferOut 574. api.USBDevice.deviceClass 575. api.USBDevice.deviceProtocol 576. api.USBDevice.deviceSubclass 577. api.USBDevice.deviceVersionMajor 578. api.USBDevice.deviceVersionMinor 579. api.USBDevice.deviceVersionSubminor 580. api.USBDevice.forget 581. api.USBDevice.isochronousTransferIn 582. api.USBDevice.isochronousTransferOut 583. api.USBDevice.manufacturerName 584. api.USBDevice.open 585. api.USBDevice.opened 586. api.USBDevice.productId 587. api.USBDevice.productName 588. api.USBDevice.releaseInterface 589. api.USBDevice.reset 590. api.USBDevice.selectAlternateInterface 591. api.USBDevice.selectConfiguration 592. api.USBDevice.serialNumber 593. api.USBDevice.transferIn 594. api.USBDevice.transferOut 595. api.USBDevice.usbVersionMajor 596. api.USBDevice.usbVersionMinor 597. api.USBDevice.usbVersionSubminor 598. api.USBDevice.vendorId 599. api.USBEndpoint 600. api.USBEndpoint.USBEndpoint 601. api.USBEndpoint.direction 602. api.USBEndpoint.endpointNumber 603. api.USBEndpoint.packetSize 604. api.USBEndpoint.type 605. api.USBInTransferResult 606. api.USBInTransferResult.USBInTransferResult 607. api.USBInTransferResult.data 608. api.USBInTransferResult.status 609. api.USBInterface 610. api.USBInterface.USBInterface 611. api.USBInterface.alternate 612. api.USBInterface.alternates 613. api.USBInterface.claimed 614. api.USBInterface.interfaceNumber 615. api.USBIsochronousInTransferPacket 616. api.USBIsochronousInTransferPacket.USBIsochronousInTransferPacket 617. api.USBIsochronousInTransferPacket.data 618. api.USBIsochronousInTransferPacket.status 619. api.USBIsochronousInTransferResult 620. api.USBIsochronousInTransferResult.USBIsochronousInTransferResult 621. api.USBIsochronousInTransferResult.data 622. api.USBIsochronousInTransferResult.packets 623. api.USBIsochronousOutTransferPacket 624. api.USBIsochronousOutTransferPacket.USBIsochronousOutTransferPacket 625. api.USBIsochronousOutTransferPacket.bytesWritten 626. api.USBIsochronousOutTransferPacket.status 627. api.USBIsochronousOutTransferResult 628. api.USBIsochronousOutTransferResult.USBIsochronousOutTransferResult 629. api.USBIsochronousOutTransferResult.packets 630. api.USBOutTransferResult 631. api.USBOutTransferResult.USBOutTransferResult 632. api.USBOutTransferResult.bytesWritten 633. api.USBOutTransferResult.status 634. api.WebGL2RenderingContext.makeXRCompatible 635. api.WebGLRenderingContext.makeXRCompatible 636. api.Window.getDigitalGoodsService 637. api.Window.speechSynthesis 638. api.Window.vrdisplaydisconnect_event 639. api.Window.vrdisplaypresentchange_event 640. api.WorkerNavigator.permissions 641. api.WorkerNavigator.usb 642. api.WorkerNavigator.userAgentData 643. api.XRAnchor 644. api.XRAnchor.anchorSpace 645. api.XRAnchor.delete 646. api.XRAnchorSet 647. api.XRAnchorSet.entries 648. api.XRAnchorSet.forEach 649. api.XRAnchorSet.has 650. api.XRAnchorSet.keys 651. api.XRAnchorSet.size 652. api.XRAnchorSet.values 653. api.XRAnchorSet.@@iterator 654. api.XRBoundedReferenceSpace 655. api.XRBoundedReferenceSpace.boundsGeometry 656. api.XRCPUDepthInformation 657. api.XRCPUDepthInformation.data 658. api.XRCPUDepthInformation.getDepthInMeters 659. api.XRCamera 660. api.XRCamera.height 661. api.XRCamera.width 662. api.XRDepthInformation 663. api.XRDepthInformation.height 664. api.XRDepthInformation.normDepthBufferFromNormView 665. api.XRDepthInformation.rawValueToMeters 666. api.XRDepthInformation.width 667. api.XRFrame 668. api.XRFrame.createAnchor 669. api.XRFrame.getDepthInformation 670. api.XRFrame.getHitTestResults 671. api.XRFrame.getHitTestResultsForTransientInput 672. api.XRFrame.getLightEstimate 673. api.XRFrame.getPose 674. api.XRFrame.getViewerPose 675. api.XRFrame.session 676. api.XRFrame.trackedAnchors 677. api.XRHitTestResult 678. api.XRHitTestResult.createAnchor 679. api.XRHitTestResult.getPose 680. api.XRHitTestSource 681. api.XRHitTestSource.cancel 682. api.XRInputSource 683. api.XRInputSource.gamepad 684. api.XRInputSource.gripSpace 685. api.XRInputSource.handedness 686. api.XRInputSource.profiles 687. api.XRInputSource.targetRayMode 688. api.XRInputSource.targetRaySpace 689. api.XRInputSourceArray 690. api.XRInputSourceArray.entries 691. api.XRInputSourceArray.forEach 692. api.XRInputSourceArray.keys 693. api.XRInputSourceArray.length 694. api.XRInputSourceArray.values 695. api.XRInputSourceArray.@@iterator 696. api.XRInputSourceEvent 697. api.XRInputSourceEvent.XRInputSourceEvent 698. api.XRInputSourceEvent.frame 699. api.XRInputSourceEvent.inputSource 700. api.XRInputSourcesChangeEvent 701. api.XRInputSourcesChangeEvent.XRInputSourcesChangeEvent 702. api.XRInputSourcesChangeEvent.added 703. api.XRInputSourcesChangeEvent.removed 704. api.XRInputSourcesChangeEvent.session 705. api.XRLightEstimate 706. api.XRLightEstimate.primaryLightDirection 707. api.XRLightEstimate.primaryLightIntensity 708. api.XRLightEstimate.sphericalHarmonicsCoefficients 709. api.XRLightProbe 710. api.XRLightProbe.probeSpace 711. api.XRLightProbe.reflectionchange_event 712. api.XRPose 713. api.XRPose.angularVelocity 714. api.XRPose.emulatedPosition 715. api.XRPose.linearVelocity 716. api.XRPose.transform 717. api.XRRay 718. api.XRRay.XRRay 719. api.XRRay.direction 720. api.XRRay.matrix 721. api.XRRay.origin 722. api.XRReferenceSpace 723. api.XRReferenceSpace.getOffsetReferenceSpace 724. api.XRReferenceSpace.reset_event 725. api.XRReferenceSpaceEvent 726. api.XRReferenceSpaceEvent.XRReferenceSpaceEvent 727. api.XRReferenceSpaceEvent.referenceSpace 728. api.XRReferenceSpaceEvent.transform 729. api.XRRenderState 730. api.XRRenderState.baseLayer 731. api.XRRenderState.depthFar 732. api.XRRenderState.depthNear 733. api.XRRenderState.inlineVerticalFieldOfView 734. api.XRRigidTransform 735. api.XRRigidTransform.XRRigidTransform 736. api.XRRigidTransform.inverse 737. api.XRRigidTransform.matrix 738. api.XRRigidTransform.orientation 739. api.XRRigidTransform.position 740. api.XRSession 741. api.XRSession.cancelAnimationFrame 742. api.XRSession.depthDataFormat 743. api.XRSession.depthUsage 744. api.XRSession.domOverlayState 745. api.XRSession.enabledFeatures 746. api.XRSession.end 747. api.XRSession.end_event 748. api.XRSession.environmentBlendMode 749. api.XRSession.inputSources 750. api.XRSession.inputsourceschange_event 751. api.XRSession.interactionMode 752. api.XRSession.preferredReflectionFormat 753. api.XRSession.renderState 754. api.XRSession.requestAnimationFrame 755. api.XRSession.requestHitTestSource 756. api.XRSession.requestHitTestSourceForTransientInput 757. api.XRSession.requestLightProbe 758. api.XRSession.requestReferenceSpace 759. api.XRSession.select_event 760. api.XRSession.selectend_event 761. api.XRSession.selectstart_event 762. api.XRSession.squeeze_event 763. api.XRSession.squeezeend_event 764. api.XRSession.squeezestart_event 765. api.XRSession.updateRenderState 766. api.XRSession.visibilitychange_event 767. api.XRSession.visibilityState 768. api.XRSessionEvent 769. api.XRSessionEvent.XRSessionEvent 770. api.XRSessionEvent.session 771. api.XRSpace 772. api.XRSystem 773. api.XRSystem.devicechange_event 774. api.XRSystem.isSessionSupported 775. api.XRSystem.requestSession 776. api.XRTransientInputHitTestResult 777. api.XRTransientInputHitTestResult.inputSource 778. api.XRTransientInputHitTestResult.results 779. api.XRTransientInputHitTestSource 780. api.XRTransientInputHitTestSource.cancel 781. api.XRView 782. api.XRView.camera 783. api.XRView.eye 784. api.XRView.isFirstPersonObserver 785. api.XRView.projectionMatrix 786. api.XRView.recommendedViewportScale 787. api.XRView.requestViewportScale 788. api.XRView.transform 789. api.XRViewerPose 790. api.XRViewerPose.views 791. api.XRViewport 792. api.XRViewport.height 793. api.XRViewport.width 794. api.XRViewport.x 795. api.XRViewport.y 796. api.XRWebGLBinding.getCameraImage 797. api.XRWebGLBinding.getDepthInformation 798. api.XRWebGLBinding.getReflectionCubeMap 799. api.XRWebGLDepthInformation 800. api.XRWebGLDepthInformation.texture 801. api.XRWebGLLayer 802. api.XRWebGLLayer.XRWebGLLayer 803. api.XRWebGLLayer.antialias 804. api.XRWebGLLayer.framebuffer 805. api.XRWebGLLayer.framebufferHeight 806. api.XRWebGLLayer.framebufferWidth 807. api.XRWebGLLayer.getNativeFramebufferScaleFactor_static 808. api.XRWebGLLayer.getViewport 809. api.XRWebGLLayer.ignoreDepthValues 810. css.at-rules.media.prefers-reduced-data 811. css.properties.align-content.flex_context.last_baseline 812. css.properties.custom-property.env.titlebar-area-height 813. css.properties.custom-property.env.titlebar-area-width 814. css.properties.custom-property.env.titlebar-area-x 815. css.properties.custom-property.env.titlebar-area-y 816. css.properties.font-variant.greek_accented_characters 817. css.properties.scrollbar-color 818. css.properties.scrollbar-color.auto 819. css.properties.scrollbar-width 820. css.properties.scrollbar-width.auto 821. css.properties.scrollbar-width.none 822. css.properties.scrollbar-width.thin 823. html.elements.area.implicit_noopener 824. html.elements.audio.disableremoteplayback 825. html.elements.form.autocomplete.one-time-code 826. html.elements.iframe.sandbox.allow-presentation 827. html.elements.meta.name.theme-color 828. html.elements.meter 829. html.elements.meter.high 830. html.elements.meter.low 831. html.elements.meter.max 832. html.elements.meter.min 833. html.elements.meter.optimum 834. html.elements.meter.value 835. html.elements.textarea.autocomplete.one-time-code 836. html.elements.video.disablepictureinpicture 837. html.elements.video.disableremoteplayback 838. html.manifest.display_override 839. html.manifest.display_override.tabbed 840. html.manifest.protocol_handlers 841. html.manifest.protocol_handlers.protocol 842. html.manifest.protocol_handlers.url 843. html.manifest.serviceworker 844. html.manifest.serviceworker.scope 845. html.manifest.serviceworker.src 846. html.manifest.serviceworker.use_cache 847. html.manifest.share_target 848. http.data-url.top_level_navigation_blocked 849. http.headers.Cross-Origin-Opener-Policy 850. http.headers.Expect-CT 851. http.headers.Permissions-Policy.identity-credentials-get 852. http.headers.Permissions-Policy.magnetometer 853. http.headers.Permissions-Policy.otp-credentials 854. http.headers.Permissions-Policy.usb 855. http.headers.Permissions-Policy.window-management 856. http.headers.Permissions-Policy.xr-spatial-tracking 857. http.headers.Set-Cookie.Partitioned 858. http.headers.Set-Cookie.SameSite.schemeful 859. http.headers.Set-Login 860. http.headers.X-XSS-Protection 861. javascript.builtins.SharedArrayBuffer 862. javascript.builtins.SharedArrayBuffer.SharedArrayBuffer 863. javascript.builtins.SharedArrayBuffer.SharedArrayBuffer.maxByteLength_option 864. javascript.builtins.SharedArrayBuffer.byteLength 865. javascript.builtins.SharedArrayBuffer.grow 866. javascript.builtins.SharedArrayBuffer.growable 867. javascript.builtins.SharedArrayBuffer.maxByteLength 868. javascript.builtins.SharedArrayBuffer.slice 869. javascript.builtins.SharedArrayBuffer.@@species 870. javascript.builtins.String.localeCompare.locales_parameter 871. javascript.builtins.String.localeCompare.options_parameter 872. svg.global_attributes.paint-order 873. webassembly.api.Memory.Memory.shared 874. webassembly.threads-and-atomics

Elchi3 commented 6 months ago

Also, we have a few open PRs that are in need of review (for me or anyone who likes) https://github.com/mdn/browser-compat-data/pulls?q=is%3Apr+is%3Aopen+webview

(issues too: https://github.com/mdn/browser-compat-data/issues?q=is%3Aissue+is%3Aopen+webview)

Elchi3 commented 6 months ago

Updated the list above. Privacy sandbox related APIs aren't supported, see https://github.com/mdn/browser-compat-data/pull/22294.