PSA: there was a longstanding <https://b.corp.google.com/issues/40597381> bug for this API not being exposed on Android which is now being <https://chromium-review.git.corp.google.com/c/chromium/src/+/5708048> fixed <https://chromium-review.googlesource.com/c/chromium/src/+/5942536>. This seemed enough like a small bugfix to me that I didn't ask for an I2S thread when approving the CL, but others should chime in if they disagree.
Rick On Thu, Dec 1, 2016 at 7:08 AM Jochen Eisinger <joc...@chromium.org> wrote: > lgtm3 > > On Thu, Dec 1, 2016 at 1:04 PM Guido Urdaneta <gui...@chromium.org> wrote: > >> Hi API OWNERS, >> This needs one more LGTM. Any takers? >> >> >> On Mon, Nov 28, 2016 at 2:52 PM, Chris Harrelson <chris...@chromium.org> >> wrote: >> >>> LGTM2 >>> >>> On Mon, Nov 28, 2016 at 5:24 AM, guidou via blink-dev < >>> blink-dev@chromium.org> wrote: >>> >>>> Any comments from other API OWNERS? >>>> >>>> On Wednesday, November 23, 2016 at 11:23:33 AM UTC+1, Philip Jägenstedt >>>> wrote: >>>>> >>>>> The risk of later masking changes in enumerateDevices an thus >>>>> withholding devicechange events should be low, but even so I don't think >>>>> that changing enumerateDevices need block shipping the devicechange event. >>>>> Can you file a follow-up bug to track that it is eventually either >>>>> implemented or reverted from the spec? >>>>> >>>>> LGTM1 to ship the devicechange event as currently implemented. >>>>> >>>>> On Tue, Nov 22, 2016 at 7:28 PM guidou via blink-dev < >>>>> blin...@chromium.org> wrote: >>>>> >>>>>> The spec has changed so that the result of enumerateDevices is cached >>>>>> in a browsing session and never updated by device changes unless the user >>>>>> has permission. >>>>>> Therefore, a page without device permissions can no longer poll >>>>>> enumerateDevices to detect device changes. >>>>>> >>>>>> We can modify Chromium's implementation of both enumerateDevices and >>>>>> devicechange so that it matches the new spec, although it would break >>>>>> interoperability with Edge >>>>>> >>>>>> In order to finally ship this feature, should we aim for compliance >>>>>> with the spec or interoperability with Edge's current behavior? >>>>>> >>>>>> >>>>>> On Monday, November 21, 2016 at 8:03:51 PM UTC+1, Harald Alvestrand >>>>>> wrote: >>>>>> >>>>>>> The bug that Jan-Ivar filed on enumerateDevices being equivalently >>>>>>> dangerous (or not) with the devicechange event is here: >>>>>>> >>>>>>> https://github.com/w3c/mediacapture-main/issues/403 >>>>>>> >>>>>>> The original bug about the devicechange as fingerprint signal was >>>>>>> #402, but we closed that after landing the current text. >>>>>>> >>>>>>> On Mon, Nov 21, 2016 at 5:17 PM, Reilly Grant <rei...@chromium.org> >>>>>>> wrote: >>>>>>> >>>>>> We could avoid making the incognito session behavior consistently >>>>>>>> different by always delivering the event for the active session first >>>>>>>> and >>>>>>>> inactive sessions after the delay (and immediately if they are >>>>>>>> focused). >>>>>>>> >>>>>>>> Are "give me system configuration that changes occasionally" calls >>>>>>>> more or less dangerous than "give me system state that changes >>>>>>>> frequently" >>>>>>>> calls like DeviceOrientationEvent? Both by design have to provide the >>>>>>>> same >>>>>>>> data to regular and incognito sessions. >>>>>>>> >>>>>>>> On Mon, Nov 21, 2016 at 7:29 AM Martin Šrámek <msr...@chromium.org> >>>>>>>> wrote: >>>>>>>> >>>>>>> Chiming in from from Chrome Privacy side! >>>>>>>>> >>>>>>>>> Sorry for my delayed reply; I spent a while thinking about this. >>>>>>>>> >>>>>>>>> I agree with Philip's assessment that the equivalent can be done >>>>>>>>> by polling. The event is relatively rare (plugging/unplugging my >>>>>>>>> headphones >>>>>>>>> does not register as a device change, because the sound card is the >>>>>>>>> device; >>>>>>>>> I only occasionally manipulate my USB webcam), so if it is fired for >>>>>>>>> two >>>>>>>>> different sessions within a second, that's already a very strong >>>>>>>>> signal >>>>>>>>> that it's the same user. Polling once per second does show up on the >>>>>>>>> task >>>>>>>>> manager, but the CPU load would end up being negligible on any >>>>>>>>> JS-heavy >>>>>>>>> site. >>>>>>>>> >>>>>>>>> So I think that hiding `devicechange` behind a permission does not >>>>>>>>> offer a strong protection. To be consistent with other vendors, and >>>>>>>>> with >>>>>>>>> the fact that `enumerateDevices()` is available without a permission, >>>>>>>>> *I >>>>>>>>> think it makes sense to ship without a permission*. >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> On the other hand, the fact that there is no privacy delta between >>>>>>>>> `enumerateDevices()` and `devicechange` means that >>>>>>>>> `enumerateDevices()` is >>>>>>>>> the dangerous one. Not because of fingerprinting by device IDs (those >>>>>>>>> are >>>>>>>>> different for Incognito and after you delete cookies), but because >>>>>>>>> plugging >>>>>>>>> my webcam can tie my regular and incognito sessions of the same site >>>>>>>>> together. >>>>>>>>> >>>>>>>>> We could hide the new device for a small amount of time from >>>>>>>>> Incognito, i.e. neither `devicechange` nor `enumerateDevices()` would >>>>>>>>> report it. I would argue that this won't break anything, because the >>>>>>>>> valid >>>>>>>>> usecases for "`devicechange` without permission" that I read about in >>>>>>>>> the >>>>>>>>> past discussions are unlikely to happen in two separate sessions at >>>>>>>>> the >>>>>>>>> same time. But as I mentioned before, this would have to be orders of >>>>>>>>> magnitude longer than a second. Maybe wait for focus in incognito >>>>>>>>> instead? >>>>>>>>> The behavior cannot be too different either, because it will reveal >>>>>>>>> the >>>>>>>>> incognito session directly. I'll have to think about this more, and I >>>>>>>>> trust >>>>>>>>> that the WG does too :) >>>>>>>>> >>>>>>>>> But again, that's not a blocker from my side to ship; that's a >>>>>>>>> suggestion to revisit enumerateDevices(), or any other "give me system >>>>>>>>> configuration that changes occasionally" calls. I think this is >>>>>>>>> interesting >>>>>>>>> to discuss with the Bluetooth API owners as well. >>>>>>>>> >>>>>>>>> Best regards, >>>>>>>>> Martin >>>>>>>>> >>>>>>>> On Wed, Nov 16, 2016 at 10:56 AM, Philip Jägenstedt < >>>>>>>>> foo...@chromium.org> wrote: >>>>>>>>> >>>>>>>> Thanks Guido for testing on Edge, that's really important to guide >>>>>>>>>> us on issues like this. >>>>>>>>>> >>>>>>>>>> https://w3c.github.io/mediacapture-main/ isn't auto-updated to >>>>>>>>>> reflect the latest changes, so everyone take care to look at >>>>>>>>>> http://rawgit.com/w3c/mediacapture-main/master/getusermedia.html for >>>>>>>>>> the time being. >>>>>>>>>> >>>>>>>>>> The spec now has this as the condition for firing the event: >>>>>>>>>> 'When new media input and/or output devices are made available, if >>>>>>>>>> either >>>>>>>>>> the permission state of the "device-info" permission is "granted", >>>>>>>>>> or any >>>>>>>>>> of the local devices are attached to an active MediaStream in the >>>>>>>>>> current >>>>>>>>>> browsing context, or the active document in the current browsing >>>>>>>>>> context is >>>>>>>>>> fully active and has focus.' >>>>>>>>>> >>>>>>>>>> What you'd like to ship ignores the conditions, and I personally >>>>>>>>>> think this is the right call. However, to make sure we end up in a >>>>>>>>>> good >>>>>>>>>> place, maybe: >>>>>>>>>> >>>>>>>>>> - Ask for Chrome security/privacy feedback on this specific >>>>>>>>>> point, to check that they are also not concerned. >>>>>>>>>> - Write a PR for the spec for a change that would allow the >>>>>>>>>> behavior of Edge and what you'd like to ship. >>>>>>>>>> - Comment on the other relevant issues what you intend to >>>>>>>>>> ship, so that nobody is surprised. >>>>>>>>>> >>>>>>>>>> With that, if there's still disagreement in the WG and nothing >>>>>>>>>> obvious that could be done to resolve it, then I think we should go >>>>>>>>>> ahead >>>>>>>>>> and ship. >>>>>>>>>> >>>>>>>>> On Tue, Nov 15, 2016 at 7:21 PM guidou via blink-dev < >>>>>>>>>> blin...@chromium.org> wrote: >>>>>>>>>> >>>>>>>>> The implementation of the devicechange event in Blink has changed >>>>>>>>>>> and, like Edge, it fires the event even if the origin has no >>>>>>>>>>> permission to >>>>>>>>>>> access the devices. >>>>>>>>>>> This also makes the event match the way enumerateDevices works. >>>>>>>>>>> >>>>>>>>>>> With regards to the spec, the language has been updated >>>>>>>>>>> <https://github.com/w3c/mediacapture-main/pull/412/files> to >>>>>>>>>>> include firing the event to the document that has focus, although >>>>>>>>>>> Edge and >>>>>>>>>>> Chromium fire it for all documents listening to the event >>>>>>>>>>> regardless of >>>>>>>>>>> focus (tested on Edge 39.14959.1000) >>>>>>>>>>> The language of the spec is not 100% clear, so there are a >>>>>>>>>>> number of spec bugs open related to this: >>>>>>>>>>> - Polling enumerateDevices potentially being a fingerprint >>>>>>>>>>> <https://github.com/w3c/mediacapture-main/issues/403> >>>>>>>>>>> - Need rules for devicechange event when devices are removed. >>>>>>>>>>> <https://github.com/w3c/mediacapture-main/issues/413> >>>>>>>>>>> - Devicechange events when not focus - permitted or forbidden? >>>>>>>>>>> <https://github.com/w3c/mediacapture-main/issues/414> >>>>>>>>>>> >>>>>>>>>>> Should we ship now that Blink is interoperable with Edge or >>>>>>>>>>> should we wait until all the spec issues are resolved? >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> On Tuesday, October 4, 2016 at 1:32:25 PM UTC+2, PhistucK wrote: >>>>>>>>>>> >>>>>>>>>>>> Cool. Thank you for the clarification. >>>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> ☆*PhistucK* >>>>>>>>>>>> >>>>>>>>>>>> On Tue, Oct 4, 2016 at 2:26 PM, Guido Urdaneta < >>>>>>>>>>>> gui...@chromium.org> wrote: >>>>>>>>>>>> >>>>>>>>>>> Not sure I understand your question, but PPAPI uses enumerations >>>>>>>>>>>>> (which do not check for permissions to produce results) to learn >>>>>>>>>>>>> about >>>>>>>>>>>>> device changes, while the blink devicechange event is fired only >>>>>>>>>>>>> if the >>>>>>>>>>>>> origin has permission. >>>>>>>>>>>>> >>>>>>>>>>>> My previous comment referred to the fact that if the >>>>>>>>>>>>> devicechange event did not require permission checking, the same >>>>>>>>>>>>> mechanism >>>>>>>>>>>>> could be used by PPAPI too. >>>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> On Tuesday, October 4, 2016 at 12:30:33 PM UTC+2, PhistucK >>>>>>>>>>>>> wrote: >>>>>>>>>>>>> >>>>>>>>>>>> So can portable native client binaries (while not an open web >>>>>>>>>>>>>> platform feature, can be loaded without installation in Chrome) >>>>>>>>>>>>>> do things - >>>>>>>>>>>>>> for which open web platform features need permissions - without >>>>>>>>>>>>>> permissions? >>>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> ☆*PhistucK* >>>>>>>>>>>>>> >>>>>>>>>>>>>> On Tue, Oct 4, 2016 at 11:27 AM, Guido Urdaneta < >>>>>>>>>>>>>> gui...@chromium.org> wrote: >>>>>>>>>>>>>> >>>>>>>>>>>>> Removing the permission check is easy and it can provide >>>>>>>>>>>>>>> other practical advantages such as unifying the device >>>>>>>>>>>>>>> notification >>>>>>>>>>>>>>> mechanism for PPAPI, which is currently separate and does not >>>>>>>>>>>>>>> check for >>>>>>>>>>>>>>> permissions. >>>>>>>>>>>>>>> Should we wait until the spec discussion is finished, or is >>>>>>>>>>>>>>> it OK to remove the permission check and ship with >>>>>>>>>>>>>>> interoperability with >>>>>>>>>>>>>>> Edge? >>>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> On Monday, October 3, 2016 at 8:00:37 PM UTC+2, Rick Byers >>>>>>>>>>>>>>> wrote: >>>>>>>>>>>>>>> >>>>>>>>>>>>>> <div >>>>>>>>>>>>> class="m_3083624950843734075m_6934146904487140413gmail-m_-884175159304806755gmail_msg >>>>>>>>>>>>> m_308362495084373 >>>>>>>>>>>>> >>>>>>>>>>>> -- >>>> 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. >>>> >>> >>> >> -- 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/CAFUtAY8pX%3DGyMq3oFC_ZbgRECnMht-xvTvCO088-XzFPJZ63dQ%40mail.gmail.com.