Boris Zbarsky writes: > So if there is in fact a problem still remaining, convincing Alex > that it's there is pretty valuable. Having him convinced it > doesn't exist is actively harmful as far as getting it fixed goes.
Thank you. Alex sounds like a very valuable person to get on side. We may still have some time on our hands, but I'm not sure how long to pursue the WG about this before we aim to get Alex involved. Neither Chrome 66 nor current Chromium [[processor source code]] support AudioWorkletNodes with lifetimes based on input connections in a way that is compatible with the spec and so Chrome or the spec will change at some point. It would be nice, however, to resolve these issues before Chrome ships such changes. Hongchan has assigned himself to the [[AudioNode Lifetime]] spec bug, and so I'm happy for him to have a go, if he is planning to fix it. > If there is no difference in observable behavior, what would a > normative requirement mean? Good question. I will find that useful at some point. > Karl Tomlinson wrote: >> If the whole normative AudioNode lifetime section were dropped >> then this would clearly be an implementation issue rather than a >> spec issue. > > Assuming there is no observable behavior involved (other than > memory usage), right? Not sure I understand your question, but the observable behavior described by this section, or specifically "Before an AudioNode is deleted, it will disconnect itself from any other AudioNodes", is the source of observable behavior on GC. Removing this section would remove the core problem. The rest of the section describes conditions that would keep an AudioNode alive, and describes when AudioNodes are no longer required. These portions are not _necessary_, as nothing elsewhere indicates that AudioNodes should ever be removed, but there seem to be differing opinions on the importance of these clauses. (Compare e.g. [[PermissionStatus listeners]], [[WebSocket listeners]]) >> The history here is: > > Thank you for the summary. That was helpful. One thing I'm not > 100% clear on at this point: are there spec issues that can lead > to observable GC, or are we just talking about implementation bugs > that make GC observable now? Yes, the source of the observable GC problem is very much in the spec now, and tracked by the [[AudioNode Lifetime]] issue. Once that is resolved, I'm hoping that a spec change to support something like [[silence tracking]] can make AudioWorklet suitable for custom AudioNodes. [[processor source code]] https://chromium.googlesource.com/chromium/src/+blame/9d4a34cadf1b7d85f4ad0b709374aaaf59325a8d/third_party/WebKit/Source/modules/webaudio/AudioWorkletNode.cpp#110 [[PermissionStatus listeners]] https://github.com/w3c/permissions/issues/170 [[WebSocket listeners]] https://html.spec.whatwg.org/#garbage-collection-3 [[AudioNode Lifetime]] https://github.com/WebAudio/web-audio-api/issues/1471 [[silence tracking]] https://github.com/WebAudio/web-audio-api/issues/1453 _______________________________________________ dev-platform mailing list dev-platform@lists.mozilla.org https://lists.mozilla.org/listinfo/dev-platform