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/745f266b-caf5-4ba1-8429-9c289b4209b0n%40chromium.org.

Reply via email to