Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Investigate possible BCD improvement for Android WebView #1

Open
RupertBenWiser opened this issue Feb 22, 2024 · 5 comments
Open

Investigate possible BCD improvement for Android WebView #1

RupertBenWiser opened this issue Feb 22, 2024 · 5 comments

Comments

@RupertBenWiser
Copy link
Contributor

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
Copy link

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
Copy link
Contributor Author

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
Copy link

Elchi3 commented Feb 23, 2024

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
Copy link

Elchi3 commented Feb 23, 2024

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
Copy link

Elchi3 commented Feb 27, 2024

Updated the list above. Privacy sandbox related APIs aren't supported, see mdn/browser-compat-data#22294.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants