[wpt-sync] Sync PR 23303 - bluetooth: implement writeValueWith[out]Response()
Categories
(Core :: DOM: Device Interfaces, task, P4)
Tracking
()
Tracking | Status | |
---|---|---|
firefox79 | --- | fixed |
People
(Reporter: wpt-sync, Unassigned)
References
()
Details
(Whiteboard: [wptsync downstream])
Sync web-platform-tests PR 23303 into mozilla-central (this bug is closed when the sync is complete).
PR: https://github.com/web-platform-tests/wpt/pull/23303
Details from upstream follow.
David Lechner <david@pybricks.com> wrote:
bluetooth: implement writeValueWith[out]Response()
This implements the Web Bluetooth BluetoothRemoteGATTCharacteristic
writeValueWithResponse() and writeValueWithoutResponse() methods.https://webbluetoothcg.github.io/web-bluetooth/#writecharacteristicvalue
The writeValue() method now prefers write with response if a remote
characteristic has both WRITE and WRITE_WITHOUT_RESPONSE properties.
This is a potentially breaking change on Android devices as the OS
default there seems to be to write without response. All other platforms
already defaulted to write with response when both properties are
present.All implemented platforms now check the requested write type against
the reported properties before sending a message and throw
ERROR_NOT_SUPPORTED if the requested write is not possible. This is
done to match the Web Bluetooth specification but could be a breaking
change since some platforms previously threw ERROR_NOT_PERMITTED
instead.Android, bluez, mac and winrt have been implemented and tested on real
hardware. (Chrome)cast and win32 have been implemented but not tested.Also fixed spelling of "already" while we are touching this code.
Bug: 672648
Change-Id: I0d8032fded0028eaa78a55afe3336f253c85c590
Reviewed-on: https://chromium-review.googlesource.com/2159770
WPT-Export-Revision: 8ad8c8d437dba4e4b5b4b85319119be7de1e61da
Assignee | ||
Updated•5 years ago
|
Assignee | ||
Comment 1•4 years ago
|
||
Assignee | ||
Comment 2•4 years ago
|
||
CI Results
Ran 12 Firefox configurations based on mozilla-central, and Firefox, Chrome, and Safari on GitHub CI
Total 90 tests
Status Summary
Firefox
OK : 11
PASS : 78
FAIL : 11
TIMEOUT: 1
Chrome
OK : 11
FAIL : 11
Safari
OK : 11
FAIL : 11
Links
Gecko CI (Treeherder)
GitHub PR Head
GitHub PR Base
Details
New Tests That Don't Pass
/bluetooth/characteristic/writeValueWithoutResponse/service-is-removed.https.window.html: OK [GitHub
], SKIP [Gecko-android-em-7.0-x86_64-debug-geckoview
, Gecko-android-em-7.0-x86_64-opt-geckoview
, Gecko-linux1804-64-debug
, Gecko-linux1804-64-opt
, Gecko-linux1804-64-qr-debug
, Gecko-linux1804-64-qr-opt
, Gecko-windows10-64-debug
, Gecko-windows10-64-opt
, Gecko-windows10-64-qr-debug
, Gecko-windows10-64-qr-opt
, Gecko-windows7-32-debug
, Gecko-windows7-32-opt
] (Chrome: OK, Safari: OK)
Service gets removed. Reject with InvalidStateError.: FAIL (Chrome: FAIL, Safari: FAIL)
/bluetooth/characteristic/writeValueWithResponse/write-succeeds.https.window.html: OK [GitHub
], SKIP [Gecko-android-em-7.0-x86_64-debug-geckoview
, Gecko-android-em-7.0-x86_64-opt-geckoview
, Gecko-linux1804-64-debug
, Gecko-linux1804-64-opt
, Gecko-linux1804-64-qr-debug
, Gecko-linux1804-64-qr-opt
, Gecko-windows10-64-debug
, Gecko-windows10-64-opt
, Gecko-windows10-64-qr-debug
, Gecko-windows10-64-qr-opt
, Gecko-windows7-32-debug
, Gecko-windows7-32-opt
] (Chrome: OK, Safari: OK)
A regular write request to a writable characteristic should succeed.: FAIL (Chrome: FAIL, Safari: FAIL)
/bluetooth/characteristic/writeValueWithResponse/gen-characteristic-is-removed.https.window.html: OK [GitHub
], SKIP [Gecko-android-em-7.0-x86_64-debug-geckoview
, Gecko-android-em-7.0-x86_64-opt-geckoview
, Gecko-linux1804-64-debug
, Gecko-linux1804-64-opt
, Gecko-linux1804-64-qr-debug
, Gecko-linux1804-64-qr-opt
, Gecko-windows10-64-debug
, Gecko-windows10-64-opt
, Gecko-windows10-64-qr-debug
, Gecko-windows10-64-qr-opt
, Gecko-windows7-32-debug
, Gecko-windows7-32-opt
] (Chrome: OK, Safari: OK)
Characteristic gets removed. Reject with InvalidStateError.: FAIL (Chrome: FAIL, Safari: FAIL)
/css/css-scroll-anchoring/fullscreen-crash.html: TIMEOUT
/bluetooth/characteristic/writeValueWithoutResponse/write-succeeds.https.window.html: OK [GitHub
], SKIP [Gecko-android-em-7.0-x86_64-debug-geckoview
, Gecko-android-em-7.0-x86_64-opt-geckoview
, Gecko-linux1804-64-debug
, Gecko-linux1804-64-opt
, Gecko-linux1804-64-qr-debug
, Gecko-linux1804-64-qr-opt
, Gecko-windows10-64-debug
, Gecko-windows10-64-opt
, Gecko-windows10-64-qr-debug
, Gecko-windows10-64-qr-opt
, Gecko-windows7-32-debug
, Gecko-windows7-32-opt
] (Chrome: OK, Safari: OK)
A regular write request to a writable characteristic should succeed.: FAIL (Chrome: FAIL, Safari: FAIL)
/bluetooth/characteristic/writeValueWithResponse/service-is-removed.https.window.html: OK [GitHub
], SKIP [Gecko-android-em-7.0-x86_64-debug-geckoview
, Gecko-android-em-7.0-x86_64-opt-geckoview
, Gecko-linux1804-64-debug
, Gecko-linux1804-64-opt
, Gecko-linux1804-64-qr-debug
, Gecko-linux1804-64-qr-opt
, Gecko-windows10-64-debug
, Gecko-windows10-64-opt
, Gecko-windows10-64-qr-debug
, Gecko-windows10-64-qr-opt
, Gecko-windows7-32-debug
, Gecko-windows7-32-opt
] (Chrome: OK, Safari: OK)
Service gets removed. Reject with InvalidStateError.: FAIL (Chrome: FAIL, Safari: FAIL)
/bluetooth/characteristic/writeValue/write-succeeds.https.window.html: OK [GitHub
], SKIP [Gecko-android-em-7.0-x86_64-debug-geckoview
, Gecko-android-em-7.0-x86_64-opt-geckoview
, Gecko-linux1804-64-debug
, Gecko-linux1804-64-opt
, Gecko-linux1804-64-qr-debug
, Gecko-linux1804-64-qr-opt
, Gecko-windows10-64-debug
, Gecko-windows10-64-opt
, Gecko-windows10-64-qr-debug
, Gecko-windows10-64-qr-opt
, Gecko-windows7-32-debug
, Gecko-windows7-32-opt
] (Chrome: OK, Safari: OK)
A regular write request to a writable characteristic should succeed.: FAIL (Chrome: FAIL, Safari: FAIL)
/bluetooth/characteristic/writeValueWithoutResponse/characteristic-is-removed.https.window.html: OK [GitHub
], SKIP [Gecko-android-em-7.0-x86_64-debug-geckoview
, Gecko-android-em-7.0-x86_64-opt-geckoview
, Gecko-linux1804-64-debug
, Gecko-linux1804-64-opt
, Gecko-linux1804-64-qr-debug
, Gecko-linux1804-64-qr-opt
, Gecko-windows10-64-debug
, Gecko-windows10-64-opt
, Gecko-windows10-64-qr-debug
, Gecko-windows10-64-qr-opt
, Gecko-windows7-32-debug
, Gecko-windows7-32-opt
] (Chrome: OK, Safari: OK)
Characteristic gets removed. Reject with InvalidStateError.: FAIL (Chrome: FAIL, Safari: FAIL)
/bluetooth/characteristic/writeValueWithoutResponse/buffer-is-detached.https.window.html: OK [GitHub
], SKIP [Gecko-android-em-7.0-x86_64-debug-geckoview
, Gecko-android-em-7.0-x86_64-opt-geckoview
, Gecko-linux1804-64-debug
, Gecko-linux1804-64-opt
, Gecko-linux1804-64-qr-debug
, Gecko-linux1804-64-qr-opt
, Gecko-windows10-64-debug
, Gecko-windows10-64-opt
, Gecko-windows10-64-qr-debug
, Gecko-windows10-64-qr-opt
, Gecko-windows7-32-debug
, Gecko-windows7-32-opt
] (Chrome: OK, Safari: OK)
writeValueWithoutResponse() fails when passed a detached buffer: FAIL (Chrome: FAIL, Safari: FAIL)
/bluetooth/characteristic/writeValueWithResponse/characteristic-is-removed.https.window.html: OK [GitHub
], SKIP [Gecko-android-em-7.0-x86_64-debug-geckoview
, Gecko-android-em-7.0-x86_64-opt-geckoview
, Gecko-linux1804-64-debug
, Gecko-linux1804-64-opt
, Gecko-linux1804-64-qr-debug
, Gecko-linux1804-64-qr-opt
, Gecko-windows10-64-debug
, Gecko-windows10-64-opt
, Gecko-windows10-64-qr-debug
, Gecko-windows10-64-qr-opt
, Gecko-windows7-32-debug
, Gecko-windows7-32-opt
] (Chrome: OK, Safari: OK)
Characteristic gets removed. Reject with InvalidStateError.: FAIL (Chrome: FAIL, Safari: FAIL)
/bluetooth/characteristic/writeValueWithoutResponse/gen-characteristic-is-removed.https.window.html: OK [GitHub
], SKIP [Gecko-android-em-7.0-x86_64-debug-geckoview
, Gecko-android-em-7.0-x86_64-opt-geckoview
, Gecko-linux1804-64-debug
, Gecko-linux1804-64-opt
, Gecko-linux1804-64-qr-debug
, Gecko-linux1804-64-qr-opt
, Gecko-windows10-64-debug
, Gecko-windows10-64-opt
, Gecko-windows10-64-qr-debug
, Gecko-windows10-64-qr-opt
, Gecko-windows7-32-debug
, Gecko-windows7-32-opt
] (Chrome: OK, Safari: OK)
Characteristic gets removed. Reject with InvalidStateError.: FAIL (Chrome: FAIL, Safari: FAIL)
/bluetooth/characteristic/writeValueWithResponse/buffer-is-detached.https.window.html: OK [GitHub
], SKIP [Gecko-android-em-7.0-x86_64-debug-geckoview
, Gecko-android-em-7.0-x86_64-opt-geckoview
, Gecko-linux1804-64-debug
, Gecko-linux1804-64-opt
, Gecko-linux1804-64-qr-debug
, Gecko-linux1804-64-qr-opt
, Gecko-windows10-64-debug
, Gecko-windows10-64-opt
, Gecko-windows10-64-qr-debug
, Gecko-windows10-64-qr-opt
, Gecko-windows7-32-debug
, Gecko-windows7-32-opt
] (Chrome: OK, Safari: OK)
writeValueWithResponse() fails when passed a detached buffer: FAIL (Chrome: FAIL, Safari: FAIL)
Tests Disabled in Gecko Infrastructure
/bluetooth/characteristic/writeValueWithoutResponse/service-is-removed.https.window.html: OK [GitHub
], SKIP [Gecko-android-em-7.0-x86_64-debug-geckoview
, Gecko-android-em-7.0-x86_64-opt-geckoview
, Gecko-linux1804-64-debug
, Gecko-linux1804-64-opt
, Gecko-linux1804-64-qr-debug
, Gecko-linux1804-64-qr-opt
, Gecko-windows10-64-debug
, Gecko-windows10-64-opt
, Gecko-windows10-64-qr-debug
, Gecko-windows10-64-qr-opt
, Gecko-windows7-32-debug
, Gecko-windows7-32-opt
] (Chrome: OK, Safari: OK)
/bluetooth/characteristic/writeValueWithResponse/write-succeeds.https.window.html: OK [GitHub
], SKIP [Gecko-android-em-7.0-x86_64-debug-geckoview
, Gecko-android-em-7.0-x86_64-opt-geckoview
, Gecko-linux1804-64-debug
, Gecko-linux1804-64-opt
, Gecko-linux1804-64-qr-debug
, Gecko-linux1804-64-qr-opt
, Gecko-windows10-64-debug
, Gecko-windows10-64-opt
, Gecko-windows10-64-qr-debug
, Gecko-windows10-64-qr-opt
, Gecko-windows7-32-debug
, Gecko-windows7-32-opt
] (Chrome: OK, Safari: OK)
/bluetooth/characteristic/writeValueWithResponse/gen-characteristic-is-removed.https.window.html: OK [GitHub
], SKIP [Gecko-android-em-7.0-x86_64-debug-geckoview
, Gecko-android-em-7.0-x86_64-opt-geckoview
, Gecko-linux1804-64-debug
, Gecko-linux1804-64-opt
, Gecko-linux1804-64-qr-debug
, Gecko-linux1804-64-qr-opt
, Gecko-windows10-64-debug
, Gecko-windows10-64-opt
, Gecko-windows10-64-qr-debug
, Gecko-windows10-64-qr-opt
, Gecko-windows7-32-debug
, Gecko-windows7-32-opt
] (Chrome: OK, Safari: OK)
/bluetooth/characteristic/writeValueWithoutResponse/write-succeeds.https.window.html: OK [GitHub
], SKIP [Gecko-android-em-7.0-x86_64-debug-geckoview
, Gecko-android-em-7.0-x86_64-opt-geckoview
, Gecko-linux1804-64-debug
, Gecko-linux1804-64-opt
, Gecko-linux1804-64-qr-debug
, Gecko-linux1804-64-qr-opt
, Gecko-windows10-64-debug
, Gecko-windows10-64-opt
, Gecko-windows10-64-qr-debug
, Gecko-windows10-64-qr-opt
, Gecko-windows7-32-debug
, Gecko-windows7-32-opt
] (Chrome: OK, Safari: OK)
/bluetooth/characteristic/writeValueWithResponse/service-is-removed.https.window.html: OK [GitHub
], SKIP [Gecko-android-em-7.0-x86_64-debug-geckoview
, Gecko-android-em-7.0-x86_64-opt-geckoview
, Gecko-linux1804-64-debug
, Gecko-linux1804-64-opt
, Gecko-linux1804-64-qr-debug
, Gecko-linux1804-64-qr-opt
, Gecko-windows10-64-debug
, Gecko-windows10-64-opt
, Gecko-windows10-64-qr-debug
, Gecko-windows10-64-qr-opt
, Gecko-windows7-32-debug
, Gecko-windows7-32-opt
] (Chrome: OK, Safari: OK)
/bluetooth/characteristic/writeValue/write-succeeds.https.window.html: OK [GitHub
], SKIP [Gecko-android-em-7.0-x86_64-debug-geckoview
, Gecko-android-em-7.0-x86_64-opt-geckoview
, Gecko-linux1804-64-debug
, Gecko-linux1804-64-opt
, Gecko-linux1804-64-qr-debug
, Gecko-linux1804-64-qr-opt
, Gecko-windows10-64-debug
, Gecko-windows10-64-opt
, Gecko-windows10-64-qr-debug
, Gecko-windows10-64-qr-opt
, Gecko-windows7-32-debug
, Gecko-windows7-32-opt
] (Chrome: OK, Safari: OK)
/bluetooth/characteristic/writeValueWithoutResponse/characteristic-is-removed.https.window.html: OK [GitHub
], SKIP [Gecko-android-em-7.0-x86_64-debug-geckoview
, Gecko-android-em-7.0-x86_64-opt-geckoview
, Gecko-linux1804-64-debug
, Gecko-linux1804-64-opt
, Gecko-linux1804-64-qr-debug
, Gecko-linux1804-64-qr-opt
, Gecko-windows10-64-debug
, Gecko-windows10-64-opt
, Gecko-windows10-64-qr-debug
, Gecko-windows10-64-qr-opt
, Gecko-windows7-32-debug
, Gecko-windows7-32-opt
] (Chrome: OK, Safari: OK)
/bluetooth/characteristic/writeValueWithoutResponse/buffer-is-detached.https.window.html: OK [GitHub
], SKIP [Gecko-android-em-7.0-x86_64-debug-geckoview
, Gecko-android-em-7.0-x86_64-opt-geckoview
, Gecko-linux1804-64-debug
, Gecko-linux1804-64-opt
, Gecko-linux1804-64-qr-debug
, Gecko-linux1804-64-qr-opt
, Gecko-windows10-64-debug
, Gecko-windows10-64-opt
, Gecko-windows10-64-qr-debug
, Gecko-windows10-64-qr-opt
, Gecko-windows7-32-debug
, Gecko-windows7-32-opt
] (Chrome: OK, Safari: OK)
/bluetooth/characteristic/writeValueWithResponse/characteristic-is-removed.https.window.html: OK [GitHub
], SKIP [Gecko-android-em-7.0-x86_64-debug-geckoview
, Gecko-android-em-7.0-x86_64-opt-geckoview
, Gecko-linux1804-64-debug
, Gecko-linux1804-64-opt
, Gecko-linux1804-64-qr-debug
, Gecko-linux1804-64-qr-opt
, Gecko-windows10-64-debug
, Gecko-windows10-64-opt
, Gecko-windows10-64-qr-debug
, Gecko-windows10-64-qr-opt
, Gecko-windows7-32-debug
, Gecko-windows7-32-opt
] (Chrome: OK, Safari: OK)
/bluetooth/characteristic/writeValueWithoutResponse/gen-characteristic-is-removed.https.window.html: OK [GitHub
], SKIP [Gecko-android-em-7.0-x86_64-debug-geckoview
, Gecko-android-em-7.0-x86_64-opt-geckoview
, Gecko-linux1804-64-debug
, Gecko-linux1804-64-opt
, Gecko-linux1804-64-qr-debug
, Gecko-linux1804-64-qr-opt
, Gecko-windows10-64-debug
, Gecko-windows10-64-opt
, Gecko-windows10-64-qr-debug
, Gecko-windows10-64-qr-opt
, Gecko-windows7-32-debug
, Gecko-windows7-32-opt
] (Chrome: OK, Safari: OK)
/bluetooth/characteristic/writeValueWithResponse/buffer-is-detached.https.window.html: OK [GitHub
], SKIP [Gecko-android-em-7.0-x86_64-debug-geckoview
, Gecko-android-em-7.0-x86_64-opt-geckoview
, Gecko-linux1804-64-debug
, Gecko-linux1804-64-opt
, Gecko-linux1804-64-qr-debug
, Gecko-linux1804-64-qr-opt
, Gecko-windows10-64-debug
, Gecko-windows10-64-opt
, Gecko-windows10-64-qr-debug
, Gecko-windows10-64-qr-opt
, Gecko-windows7-32-debug
, Gecko-windows7-32-opt
] (Chrome: OK, Safari: OK)
Comment 4•4 years ago
|
||
bugherder |
Updated•4 years ago
|
Description
•