So far we have not discussed the deprecation plan, but I believe that's
reasonable as well.

I registered myself to the webkit-dev list to post a question, but somehow
I am getting 403 forbidden. The email is sent to the list, I am not seeing
the message is getting posted on the list. Not sure what to do there.

On Wed, Dec 1, 2021 at 3:18 AM Yoav Weiss <yoavwe...@chromium.org> wrote:

> So are y'all planning to deprecate and remove `getOutputTimestamp` once
> this ships? If so, that sounds reasonable.
>
> I note Chris asked y'all to file for a webkit signal upthread. Did that
> happen?
>
> On Tuesday, November 30, 2021 at 12:54:17 AM UTC+1 hongchan wrote:
>
>> I agree that outputLatency is better in terms of both usability and
>> interoperability.
>>
>> FYI, the counter shows getOutputTimestamp is about 0.001% and there are
>> no partners who are using this API:
>>
>> https://chromestatus.com/metrics/feature/popularity#AudioContextGetOutputTimestamp
>>
>>
>> On Mon, Nov 22, 2021 at 3:00 PM Chris Cunningham <chcunning...@google.com>
>> wrote:
>>
>>> Re: privacy discussion, Hongchan and I scheduled to meet with Paul
>>> Jensen next week.
>>>
>>> Also, I recently determined that this new WebAudio API (outputLatency)
>>> is largely redundant with an existing API (getOutputTimestamp()).
>>> https://github.com/WebAudio/web-audio-api/issues/2461
>>>
>>> Chrome has already shipped the latter API, so I believe this new API
>>> doesn't add potential for additional fingerprinting. Shipping both APIs is
>>> still a good idea for the sake of inter-op.
>>>
>>> On Friday, November 19, 2021 at 8:45:28 AM UTC-8 hongchan wrote:
>>>
>>>> Thanks for the clarification, Yoav!
>>>>
>>>> I hope the mitigation approach in the previous comment makes sense from
>>>> the privacy perspective, but it will hurt the usability/value of this API
>>>> significantly.
>>>> For the privacy-focused discussion, should I use other venues rather
>>>> than this I2S thread?
>>>>
>>>> Cheers,
>>>> Hongchan
>>>>
>>>>
>>>> On Thu, Nov 18, 2021 at 10:35 PM Yoav Weiss <yoav...@chromium.org>
>>>> wrote:
>>>>
>>>>> Apologies, I misread the discussion. A spec issue is indeed not
>>>>> needed, as this is already covered.
>>>>>
>>>>> From my perspective, since this exposes active entropy, the fact that
>>>>> it exposes more data than the (passively exposed) platform is not
>>>>> prohibitive on its own.
>>>>> At the same time, it'd be good to work with privacy-focused folks to
>>>>> make sure we expose as little information as needed to maintain the API's
>>>>> functionality, but not more.
>>>>>
>>>>> On Fri, Nov 19, 2021 at 4:57 AM Chris Cunningham <
>>>>> chcunn...@chromium.org> wrote:
>>>>>
>>>>>> > If the reported value is incorrect, the A/V synchronization won't
>>>>>> be possible. (Perhaps chcunningham@ can say more about this use
>>>>>> case.)
>>>>>>
>>>>>> The typical video player design drives the clock with audio. In
>>>>>> short, you send buffers of audio to the OS, use the latency value to know
>>>>>> when those buffers actually reach the user's ears, and choose a video 
>>>>>> frame
>>>>>> accordingly. Apps using WebCodecs will design apps this way (example
>>>>>> here
>>>>>> <https://github.com/chcunningham/wc-talk#simple_video_playerhtml>).
>>>>>>
>>>>>> As Mike notes, the latency value can vary by quite a lot depending on
>>>>>> the device (huge differences for bluetooth vs wired), so it's critical to
>>>>>> have the platform tell you when this changes. In terms of precision, we 
>>>>>> can
>>>>>> _probably_ do some rounding like to the nearest millisecond. Higher 
>>>>>> values
>>>>>> may lead to issues; user studies
>>>>>> <https://en.wikipedia.org/wiki/Audio-to-video_synchronization#Recommendations>
>>>>>> have shown sensitivity to fairly low values of drift.
>>>>>>
>>>>>> Aside: we may eventually desire a display latency value for similar
>>>>>> reasons.
>>>>>>
>>>>>> On Thu, Nov 18, 2021 at 12:45 PM Hongchan Choi <hong...@chromium.org>
>>>>>> wrote:
>>>>>>
>>>>>>> Hi Yoav,
>>>>>>>
>>>>>>> Could you clarify what needs to be discussed from the spec side? The
>>>>>>> feature (and its behavior) is properly specified, and its privacy 
>>>>>>> aspect is
>>>>>>> already reviewed by W3C:
>>>>>>> https://github.com/WebAudio/web-audio-api/issues/1498
>>>>>>> (outputLatency)
>>>>>>> https://github.com/WebAudio/web-audio-api/issues/1495 (general
>>>>>>> security/privacy consideration)
>>>>>>>
>>>>>>> I thought the request from this thread is to devise a
>>>>>>> Chrome-specific mitigation, not reopening the spec discussion. Please
>>>>>>> correct me if I'm mistaken.
>>>>>>>
>>>>>>> Cheers,
>>>>>>> Hongchan
>>>>>>>
>>>>>>>
>>>>>>> On Thu, Nov 18, 2021 at 12:37 PM Yoav Weiss <yoav...@chromium.org>
>>>>>>> wrote:
>>>>>>>
>>>>>>>> Hey folks!
>>>>>>>>
>>>>>>>> It seems like there are some things to figure out here before
>>>>>>>> shipping. Could y'all file a spec issue to discuss this with the 
>>>>>>>> broader
>>>>>>>> community?
>>>>>>>>
>>>>>>>> On Tuesday, November 16, 2021 at 6:16:14 PM UTC+1 hongchan wrote:
>>>>>>>>
>>>>>>>>> Thanks for the feedback, Mike. This is really helpful!
>>>>>>>>>
>>>>>>>>> Mitigation strategies include adding jitter (dithering) and
>>>>>>>>>> quantization so that the exact skew is incorrectly reported
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>> This bit refers to the randomization mechanism deployed by other
>>>>>>>>> browsers, but this approach defeats the purpose of this specific API 
>>>>>>>>> and it
>>>>>>>>> is also argued in the spec:
>>>>>>>>>
>>>>>>>>> Note however that most audio systems aim for low latency, to
>>>>>>>>>> synchronise the audio generated by WebAudio to other audio or video 
>>>>>>>>>> sources
>>>>>>>>>> or to visual cues (for example in a game, or an audio recording or 
>>>>>>>>>> music
>>>>>>>>>> making environment). Excessive latency decreases usability and may 
>>>>>>>>>> be an
>>>>>>>>>> accessibility issue.
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> If the reported value is incorrect, the A/V synchronization won't
>>>>>>>>> be possible. (Perhaps chcunningham@ can say more about this use
>>>>>>>>> case.)
>>>>>>>>>
>>>>>>>>> One mitigation idea: we can do some research to collect values
>>>>>>>>> reported by major platforms/devices and devise a reasonable "bucket 
>>>>>>>>> system"
>>>>>>>>> for them.
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On Tue, Nov 16, 2021 at 8:14 AM Mike Taylor <mike...@chromium.org>
>>>>>>>>> wrote:
>>>>>>>>>
>>>>>>>>>> I suppose it would be nice to do some testing to verify the idea
>>>>>>>>>> that there's a small number of platform + audio device pairs. I was 
>>>>>>>>>> hoping Mozilla's
>>>>>>>>>> hardware survey <https://data.firefox.com/dashboard/hardware>
>>>>>>>>>> might have something on that, but it doesn't track speakers.
>>>>>>>>>>
>>>>>>>>>> Just from some simple testing with the following script (thanks
>>>>>>>>>> dmcardle@ for the snippet) in Firefox on macOS by 3 people, we
>>>>>>>>>> have very different values that change dramatically when you unplug a
>>>>>>>>>> headset:
>>>>>>>>>>
>>>>>>>>>> ```
>>>>>>>>>> (function getNextSample() {
>>>>>>>>>>     console.log((new AudioContext).outputLatency);
>>>>>>>>>>     setTimeout(getNextSample, 10);
>>>>>>>>>> })();
>>>>>>>>>> ```
>>>>>>>>>> Here's the values on my macbook, using Firefox Nightly:
>>>>>>>>>> bose headset plugged in: 0.005895833
>>>>>>>>>> take headset out: 0.013083333
>>>>>>>>>> plug bose headset back in: 0.005875 (different, but stable)
>>>>>>>>>>
>>>>>>>>>> https://www.w3.org/TR/webaudio/#priv-sec mentions some
>>>>>>>>>> mitigation strategies - do we have a plan to apply any of them?
>>>>>>>>>>
>>>>>>>>>> On 11/15/21 11:53 AM, Ajay Rahatekar wrote:
>>>>>>>>>>
>>>>>>>>>> The small number of platform + audio output device combination
>>>>>>>>>> i.e. a large number of users with the same platform and output
>>>>>>>>>> device  (users on macOS using airpods) would likely be a natural
>>>>>>>>>> obfuscator. Not sure if we have data about the distribution.
>>>>>>>>>>
>>>>>>>>>> On Mon, Nov 15, 2021 at 8:05 AM Mike Taylor <mike...@chromium.org>
>>>>>>>>>> wrote:
>>>>>>>>>>
>>>>>>>>>>> On 11/15/21 10:56 AM, Hongchan Choi wrote:
>>>>>>>>>>>
>>>>>>>>>>> On Mon, Nov 15, 2021 at 6:49 AM Mike Taylor <
>>>>>>>>>>> mike...@chromium.org> wrote:
>>>>>>>>>>>
>>>>>>>>>>>> On 11/15/21 1:47 AM, Yoav Weiss wrote:
>>>>>>>>>>>>
>>>>>>>>>>>> On Fri, Nov 12, 2021 at 5:33 PM 'Ajay Rahatekar' via blink-dev <
>>>>>>>>>>>> blin...@chromium.org> wrote:
>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>> TAG review status
>>>>>>>>>>>>>
>>>>>>>>>>>>> Completed: Web Audio API specification is W3C Recommendation.
>>>>>>>>>>>>>
>>>>>>>>>>>>> Risks
>>>>>>>>>>>>>
>>>>>>>>>>>>> There is a risk of the feature being used for fingerprinting.
>>>>>>>>>>>>> However outputLatency is the buffer size of the
>>>>>>>>>>>>> platform-provided audio callback, so the value is inherently
>>>>>>>>>>>>> platform-specific. That said, the majority of the platform audio 
>>>>>>>>>>>>> buffer
>>>>>>>>>>>>> size is widely known. (MacOS = 128 frames, Windows = 10ms, 
>>>>>>>>>>>>> Android = 96
>>>>>>>>>>>>> frames, etc)
>>>>>>>>>>>>>
>>>>>>>>>>>>> This feature  does not expose more than what you can
>>>>>>>>>>>>> query/infer from the UA string.
>>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> Would that exposure map cleanly to UA-Platform
>>>>>>>>>>>> <https://wicg.github.io/ua-client-hints/#sec-ch-ua-platform>,
>>>>>>>>>>>> which is considered low-entropy and exposed by default? Or would 
>>>>>>>>>>>> it add
>>>>>>>>>>>> more than that?
>>>>>>>>>>>>
>>>>>>>>>>>> /cc +Mike Taylor
>>>>>>>>>>>>
>>>>>>>>>>>>> Looking at
>>>>>>>>>>>> https://www.w3.org/TR/webaudio/#dom-audiocontext-outputlatency,
>>>>>>>>>>>> it states that it depends on the platform _and_ the hardware 
>>>>>>>>>>>> output device.
>>>>>>>>>>>> If I use an app using outputLatency with speaker A, then switch to 
>>>>>>>>>>>> speaker
>>>>>>>>>>>> B, will the outputLatency remain the same?
>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> The specification says: If the audio output device is changed
>>>>>>>>>>> the outputLatency attribute value will be updated accordingly.
>>>>>>>>>>>
>>>>>>>>>>> So the answer is no. The value will change accordingly.
>>>>>>>>>>>
>>>>>>>>>>> If that's the case, then outputLatency can reveal more entropy
>>>>>>>>>>> than just platform alone, right? It would be useful to know what 
>>>>>>>>>>> this looks
>>>>>>>>>>> like in practice, or what mitigations we might be able to apply 
>>>>>>>>>>> depending
>>>>>>>>>>> on the size of these latency differences.
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>

-- 
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 blink-dev+unsubscr...@chromium.org.
To view this discussion on the web visit 
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAGJqXNurUNB5qoNFQnm-xSrfzuPXy_HZTZ_AR-5d5SDGNwOt0Q%40mail.gmail.com.

Reply via email to