Is this shipping in 98?

On Wednesday, December 15, 2021 at 9:02:09 AM UTC-8 hongchan wrote:

> Thank you all!
>
> 1. I'll land the metrics CL and follow up here.
> 2. The discussion in the WebKit mailing list is ongoing, so I'll report 
> back when it's done.
>
> Cheers,
> Hongchan
>
>
> On Wed, Dec 15, 2021 at 8:58 AM Chris Harrelson <chri...@chromium.org> 
> wrote:
>
>> LGTM3.
>>
>> On Wed, Dec 15, 2021 at 8:47 AM Mike Taylor <mike...@chromium.org> wrote:
>>
>>> LGTM2 w/ same condition.
>>>
>>> On 12/15/21 11:47 AM, Yoav Weiss wrote:
>>>
>>> LGTM1 conditional on those metrics landing (but no need to wait for data 
>>> from the metrics to come in).
>>>
>>> On Monday, December 6, 2021 at 3:22:26 PM UTC+1 Mike Taylor wrote:
>>>
>>>> To circle back - last week we (myself + some other privacy/anti-covert 
>>>> tracking reviewers) met with some folks working on this feature. We ended 
>>>> up with an AI for Hongchan to land metrics on the values that 
>>>> getOutputTimestamp would produce (if called, when a new AudioContext is 
>>>> created, IIRC) as a way to get some data on the utility for using either 
>>>> of 
>>>> these APIs for device fingerprinting.
>>>>
>>>> On 12/1/21 11:27 AM, Hongchan Choi wrote:
>>>>
>>>> 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 <yoav...@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 <
>>>>>> chcunn...@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+...@chromium.org.
>>> To view this discussion on the web visit 
>>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/936f3e2f-2001-0449-13fd-d3a0548b673c%40chromium.org
>>>  
>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/936f3e2f-2001-0449-13fd-d3a0548b673c%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 blink-dev+unsubscr...@chromium.org.
To view this discussion on the web visit 
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/e596e35f-e183-4e14-8e57-ae8cc52d2b43n%40chromium.org.

Reply via email to