LGTM1 On Tue, Sep 29, 2026 at 10:20 AM Helmut Januschka <[email protected]> wrote:
> *Contact emails* > [email protected] > > *Explainer* > https://github.com/WebBluetoothCG/web-bluetooth/pull/672 > > *Specification* > > https://pr-preview.s3.amazonaws.com/hjanuschka/web-bluetooth/pull/672.html#bluetoothremotegattserver > > *Summary* > BluetoothRemoteGATTServer inherits from EventTarget, exposing the standard > addEventListener(), removeEventListener(), and dispatchEvent() methods. > This enables connection-level events to be dispatched directly on the GATT > server. > > *Blink component* > Blink>Bluetooth > <https://issues.chromium.org/issues?q=customfield1222907:%22Blink%3EBluetooth%22> > > *Web Feature ID* > web-bluetooth <https://webstatus.dev/features/web-bluetooth> > > *Motivation* > BluetoothRemoteGATTServer represents an active GATT connection and needs > to host connection-level events. Making it an EventTarget gives web > applications the standard event-listener API needed by events such as the > separately proposed maxwritewithoutresponsesizechanged event. > > *Initial public proposal* > https://github.com/WebBluetoothCG/web-bluetooth/pull/672 > > *Search tags* > web-bluetooth <https://chromestatus.com/features#tags:web-bluetooth>, > bluetooth <https://chromestatus.com/features#tags:bluetooth>, eventtarget > <https://chromestatus.com/features#tags:eventtarget> > > *TAG review* > *No information provided* > > *TAG review status* > Issues addressed > > *Goals for experimentation* > None > > *Risks* > > > *Interoperability and Compatibility* > This is a small but observable change to an existing interface. Existing > content could be affected if it relies on BluetoothRemoteGATTServer not > having addEventListener(), relies on an instance not being an instanceof > EventTarget, or enumerates inherited properties and does not expect > EventTarget members. The affected surface is limited to sites using Web > Bluetooth. Firefox and Safari do not currently implement Web Bluetooth. > > *Gecko*: Negative ( > https://github.com/mozilla/standards-positions/issues/95) Firefox does > not implement Web Bluetooth. The citation is Mozilla's position on the > overall Web Bluetooth API, not a separate position on this inheritance > change. > > *WebKit*: Oppose (https://github.com/WebKit/standards-positions/issues/570) > Safari > does not implement Web Bluetooth. The citation is WebKit's position on the > overall Web Bluetooth API, not a separate position on this inheritance > change. > > *Web developers*: Positive this is a small preparation feature for the > larger demanded: https://issues.chromium.org/issues/40265040 > > *Other signals*: The WebBluetoothCG specification change is approved in > https://github.com/WebBluetoothCG/web-bluetooth/pull/672 but has not yet > merged. > > *Ergonomics* > Low. EventTarget is the standard event-listener pattern used throughout > the web platform. The change does not add synchronous work, thread > constraints, or performance-sensitive behavior. It prepares > BluetoothRemoteGATTServer to expose connection-level events alongside the > existing Web Bluetooth APIs. > > *Activation* > Low. Developers use the standard addEventListener() API and need no > polyfill or library. This inheritance change alone does not require > application changes; developers use it when connection-level events are > exposed. > > *Security* > This exposes only the standard EventTarget methods on an existing Web > Bluetooth object. It does not grant access to additional devices, services, > characteristics, data, or operations. Existing Web Bluetooth permission, > secure-context, service allowlist, blocklist, and Permissions Policy > protections remain unchanged. > > *WebView application risks* > > Does this intent deprecate or change behavior of existing APIs, such that > it has potentially high risk for Android WebView-based applications? > None. Android WebView does not expose Web Bluetooth, so > BluetoothRemoteGATTServer is not available there. > > > *Debuggability* > The inherited EventTarget methods and registered listeners are inspectable > using the existing DevTools Console and event-listener tools. No dedicated > DevTools panel or protocol support is required. > > *Will this feature be supported on all six Blink platforms (Windows, Mac, > Linux, ChromeOS, Android, and Android WebView)?* > No > Supported on Windows, macOS, Linux, ChromeOS, and Android wherever Web > Bluetooth is available. Chrome on iOS and Android WebView do not expose Web > Bluetooth. > > *Is this feature fully tested by web-platform-tests > <https://chromium.googlesource.com/chromium/src/+/main/docs/testing/web_platform_tests.md>?* > No > Chromium's global interface listing tests verify that > BluetoothRemoteGATTServer inherits from EventTarget: > https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/web_tests/webexposed/global-interface-listing.html > The Web Bluetooth WPT IDL harness will cover the same inheritance after > specification PR 672 merges and the generated Web Bluetooth IDL snapshot is > updated: > https://github.com/web-platform-tests/wpt/blob/master/bluetooth/bidi/idl/idlharness.tentative.https.window.js > https://github.com/WebBluetoothCG/web-bluetooth/pull/672 > > *Flag name on about://flags* > *No information provided* > > *Finch feature name* > *No information provided* > > *Non-finch justification* > Blink cannot conditionally enable Web IDL inheritance. The inheritance > change has therefore been isolated into a standalone implementation CL and > shipping intent. > > *Rollout plan* > Will ship enabled for all users > > *Requires code in //chrome?* > False > > *Tracking bug* > https://issues.chromium.org/issues/40265040 > > *Measurement* > No dedicated UseCounter is added for the inheritance change. Exposure and > use remain associated with the existing web-bluetooth Web Feature ID. The > change is also covered by Chromium's global interface listing tests. > > *Estimated milestones* > > Shipping on desktop > 157 > Shipping on Android > 157 > Shipping on WebView > 157 > Shipping on iOS > 157 > > *Anticipated spec changes* > > Open questions about a feature may be a source of future web compat or > interop issues. Please list open issues (e.g. links to known github issues > in the project for the feature specification) whose resolution may > introduce web compat/interop risk (e.g., changing to naming or structure of > the API in a non-backward-compatible way). > The inheritance change is included in WebBluetoothCG PR 672. The PR is > approved and no further substantive changes to this inheritance are > anticipated, but it must merge before shipping. > > *Link to entry on the Chrome Platform Status* > https://chromestatus.com/feature/5138797158334464?gate=6155787868176384 > > This intent message was generated by Chrome Platform Status > <https://chromestatus.com/>. > > > this is a "formal" feature, its a formal necessity for proceeding with > https://chromestatus.com/feature/5177569273053184 > > to make this easier in the future, i prepared a issue/cl - to make > inheritance feature flaggable, and reduce similiar feature entry > requirements for changes like this! > > https://issues.chromium.org/issues/558254917 > > > > -- > You received this message because you are subscribed to the Google Groups > "blink-dev" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To view this discussion visit > https://groups.google.com/a/chromium.org/d/msgid/blink-dev/9c0d3b76-5d3d-4ff2-8537-131e89331e5cn%40chromium.org > <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/9c0d3b76-5d3d-4ff2-8537-131e89331e5cn%40chromium.org?utm_medium=email&utm_source=footer> > . > -- You received this message because you are subscribed to the Google Groups "blink-dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAOMQ%2Bw_iue9RNdYx2z9XdnfEte318vtKr1ue3nRUHZ8uaBVXug%40mail.gmail.com.
