As of Chrome 98 the Barcode Detection API will be available on Windows and Linux as well, making this API available on all supported Chrome platforms (including Chrome OS, which shipped support awhile ago without an announcement).
On Tuesday, February 18, 2020 at 11:50:56 AM UTC-8 Reilly Grant wrote: > An update, since this was delayed by last-minute polish work that took way > too long to find time for: This will be shipping in Chrome 82. > Reilly Grant | Software Engineer | reil...@chromium.org | Google Chrome > <https://www.google.com/chrome> > > > On Thu, Aug 8, 2019 at 3:13 PM Yoav Weiss <y...@yoav.ws> wrote: > >> Regarding the fingerprinting concerns raised in this thread and after >> talking to Reilly, my understanding is that the formats exposed clearly map >> to data already exposed by the browser (i.e. the OS part of the UA string). >> >> Given that, *LGTM3* >> >> At the same time, it would be good to add that to the spec's security and >> privacy section. >> >> >> On Thu, Aug 8, 2019 at 9:37 PM Chris Harrelson <chris...@chromium.org> >> wrote: >> >>> Make that LGTM2, since Alex already LGTM1'ed. >>> >>> On Thu, Aug 8, 2019 at 12:20 PM Chris Harrelson <chris...@chromium.org> >>> wrote: >>> >>>> LGTM1 >>>> >>>> On Wed, Aug 7, 2019 at 11:03 AM Reilly Grant <reil...@chromium.org> >>>> wrote: >>>> >>>>> On Fri, Aug 2, 2019 at 10:55 AM Chris Harrelson <chris...@chromium.org> >>>>> wrote: >>>>> >>>>>> >>>>>> >>>>>> On Fri, Aug 2, 2019 at 10:51 AM Reilly Grant <reil...@chromium.org> >>>>>> wrote: >>>>>> >>>>>>> On Thu, Aug 1, 2019 at 12:36 PM Chris Harrelson < >>>>>>> chris...@chromium.org> wrote: >>>>>>> >>>>>>>> One question regarding barcode formats >>>>>>>> <https://wicg.github.io/shape-detection-api/#barcodeformat-section>: >>>>>>>> it seems like a pretty big list of current and legacy formats. Is >>>>>>>> there any >>>>>>>> concern about implicitly depending on these side-specs in a >>>>>>>> web-exposed API? >>>>>>>> >>>>>>> >>>>>>> The format specifications themselves seem reasonably well-defined >>>>>>> and web-exposed APIs depend on plenty of other side-specifications >>>>>>> through >>>>>>> other means, for example encryption algorithms by way of HTTPS and TLS. >>>>>>> My >>>>>>> primary concern is that we may not be referring to them specifically >>>>>>> enough. As an example, what if encoding FOO as implemented by Chrome on >>>>>>> Android only really decodes some variant FOO_A. Would changes to the >>>>>>> specification be needed if another platform gained support for FOO but >>>>>>> only variant FOO_B? >>>>>>> >>>>>> >>>>>> That's a good question. Do you think this needs more discussion >>>>>> before shipping? >>>>>> >>>>> >>>>> I think we've done all the investigation we can on this. I just wanted >>>>> to mention that it as an inevitable concern when creating an enumeration >>>>> like this. >>>>> >>>>> >>>>>> Second question is regarding origin trial feedback: is there any >>>>>>>> summary of how useful this feature was from the origin trial? >>>>>>>> >>>>>>> >>>>>> (referring to your response below) This is excellent feedback! Sounds >>>>>> like the origin trial was quite useful. >>>>>> >>>>>> >>>>>>> >>>>>>> Feedback on the Origin Trial was overwhelmingly complaints about the >>>>>>> inconsistency in support across different platforms and how that was >>>>>>> communicated in a confusing way, which is why I have been focusing on >>>>>>> improving the ability to feature detect this capability. >>>>>>> >>>>>> >>>>>> Feature detecting whether a particular barcode format is supported on >>>>>> a particular platform, you mean? >>>>>> >>>>> >>>>> Yes. >>>>> >>>>> Outside of the Origin Trial I've received feedback from developers in >>>>>>> the commercial and industrial space who are interested in the >>>>>>> performance >>>>>>> advantage of this API over JS/WASM solutions. The API also gets a >>>>>>> mention >>>>>>> in eBay's recent blog post >>>>>>> <https://tech.ebayinc.com/engineering/webassembly-at-ebay-a-real-world-use-case/> >>>>>>> about >>>>>>> implementing a barcode scanner in their application. >>>>>>> >>>>>>> >>>>>>>> On Thu, Aug 1, 2019 at 12:28 PM 'Alex Russell' via blink-dev < >>>>>>>> blink-dev@chromium.org> wrote: >>>>>>>> >>>>>>>>> LGTM1 >>>>>>>>> >>>>>>>>> On Thursday, August 1, 2019 at 10:43:23 AM UTC-7, Reilly Grant >>>>>>>>> wrote: >>>>>>>>>> >>>>>>>>>> On Thu, Aug 1, 2019 at 3:08 AM rhalavati via blink-dev < >>>>>>>>>> blin...@chromium.org> wrote: >>>>>>>>>> >>>>>>>>>>> I have a privacy question. The design doc says the raw image >>>>>>>>>>> data nor the detection results are stored or transmitted by the >>>>>>>>>>> browser. >>>>>>>>>>> >>>>>>>>>>> - Does it mean that the webapp is supposed to get permission >>>>>>>>>>> to access camera and take the photo, then pass it to this API >>>>>>>>>>> for detection? >>>>>>>>>>> - Do we have any guarantee that the underlying mechanisms do >>>>>>>>>>> not keep a local history of the images? If not, can't it result >>>>>>>>>>> in local >>>>>>>>>>> storage of the image without user's consent? >>>>>>>>>>> - Is there a launch bug for this feature? >>>>>>>>>>> >>>>>>>>>>> The launch issue is https://crbug.com/728474. >>>>>>>>>> >>>>>>>>>> >>>>>>>>>>> On Friday, July 26, 2019 at 8:27:28 PM UTC+2, Reilly Grant wrote: >>>>>>>>>>>> >>>>>>>>>>>> Contact emails >>>>>>>>>>>> >>>>>>>>>>>> reil...@chromium.org, mca...@chromium.org >>>>>>>>>>>> >>>>>>>>>>>> Explainer >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> https://github.com/WICG/shape-detection-api/blob/master/README.md >>>>>>>>>>>> >>>>>>>>>>>> Spec >>>>>>>>>>>> >>>>>>>>>>>> https://wicg.github.io/shape-detection-api/ >>>>>>>>>>>> >>>>>>>>>>>> TAG review: https://github.com/w3ctag/design-reviews/issues/176 >>>>>>>>>>>> >>>>>>>>>>>> Summary >>>>>>>>>>>> >>>>>>>>>>>> The BarcodeDetector class gives web content access to the >>>>>>>>>>>> platform’s native support for recognizing barcodes in images. For >>>>>>>>>>>> example, >>>>>>>>>>>> the BarcodeDetector >>>>>>>>>>>> <https://developers.google.com/android/reference/com/google/android/gms/vision/barcode/BarcodeDetector> >>>>>>>>>>>> >>>>>>>>>>>> provided on Android devices by the Google Play services library or >>>>>>>>>>>> the Core >>>>>>>>>>>> Image >>>>>>>>>>>> <https://developer.apple.com/documentation/coreimage/cidetector> >>>>>>>>>>>> and Vision <https://developer.apple.com/documentation/vision> >>>>>>>>>>>> frameworks provided by macOS. This can provide faster results than >>>>>>>>>>>> solutions built with JavaScript or WebAssembly while also not >>>>>>>>>>>> requiring >>>>>>>>>>>> developers to ship additional code to their users to support a >>>>>>>>>>>> feature >>>>>>>>>>>> their device already provides. >>>>>>>>>>>> >>>>>>>>>>>> Link to “Intent to Implement” blink-dev discussion >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> https://groups.google.com/a/chromium.org/d/msg/blink-dev/JkdoxpINjxQ/CUWOBwc0AgAJ >>>>>>>>>>>> >>>>>>>>>>>> Origin Trial feedback summary >>>>>>>>>>>> >>>>>>>>>>>> The primary feedback during the Origin Trial was around the >>>>>>>>>>>> limited availability of barcode detection support across Blink >>>>>>>>>>>> platforms. >>>>>>>>>>>> In response to this feedback we added a getSupportedFormats() >>>>>>>>>>>> method to >>>>>>>>>>>> more easily allow developers to detect when the current platform >>>>>>>>>>>> supports >>>>>>>>>>>> the desired formats and when a polyfill is necessary. >>>>>>>>>>>> >>>>>>>>>>>> Is this feature supported on all six Blink platforms (Windows, >>>>>>>>>>>> Mac, Linux, Chrome OS, Android, and Android WebView)? >>>>>>>>>>>> >>>>>>>>>>>> This feature is supported on macOS, Android and Android >>>>>>>>>>>> WebView. The reason for this is that it depends on the platform >>>>>>>>>>>> providing >>>>>>>>>>>> built-in support for detecting barcodes in images. Sites are >>>>>>>>>>>> expected to >>>>>>>>>>>> provide a polyfill for this capability when running in a browser >>>>>>>>>>>> or on a >>>>>>>>>>>> platform that does not support it. >>>>>>>>>>>> >>>>>>>>>>>> Demo link >>>>>>>>>>>> >>>>>>>>>>>> https://qrsnapper.com/ >>>>>>>>>>>> >>>>>>>>>>>> Risks >>>>>>>>>>>> >>>>>>>>>>>> Interoperability and Compatibility >>>>>>>>>>>> >>>>>>>>>>>> This API has been designed to support robust feature detection >>>>>>>>>>>> because barcode detection capabilities are expected to vary across >>>>>>>>>>>> both >>>>>>>>>>>> browsers and platforms. This lessens the interoperability risk as >>>>>>>>>>>> sites are >>>>>>>>>>>> already incentivized to provide a backup polyfill library for the >>>>>>>>>>>> detection >>>>>>>>>>>> capability. If this feature were removed from the platform sites >>>>>>>>>>>> would lose >>>>>>>>>>>> the performance advantage of a native (potentially >>>>>>>>>>>> hardware-accelerated) >>>>>>>>>>>> detection capability but are expected to continue to function. >>>>>>>>>>>> >>>>>>>>>>>> Edge: No signals >>>>>>>>>>>> >>>>>>>>>>>> Firefox: Public support >>>>>>>>>>>> <https://discourse.wicg.io/t/rfc-proposal-for-face-detection-api/1642/3> >>>>>>>>>>>> >>>>>>>>>>>> Safari: No signals >>>>>>>>>>>> <https://bugs.webkit.org/show_bug.cgi?id=198174> >>>>>>>>>>>> >>>>>>>>>>>> Web / Framework developers: Positive >>>>>>>>>>>> >>>>>>>>>>>> Ergonomics >>>>>>>>>>>> >>>>>>>>>>>> This API is frequently used with the getUserMedia() API to >>>>>>>>>>>> perform detection on a live video stream. The API supports >>>>>>>>>>>> multiple types >>>>>>>>>>>> of HTML elements as image sources. >>>>>>>>>>>> >>>>>>>>>>>> Activation >>>>>>>>>>>> >>>>>>>>>>>> Given the lack of consistent both cross-vendor and >>>>>>>>>>>> cross-platform support this API benefits strongly from polyfill >>>>>>>>>>>> libraries >>>>>>>>>>>> such as the Web Perception Toolkit >>>>>>>>>>>> <https://perceptiontoolkit.dev/>. This is by design, as >>>>>>>>>>>> platform support is considered an optimization of a capability >>>>>>>>>>>> that sites >>>>>>>>>>>> can already implement using their own script. >>>>>>>>>>>> >>>>>>>>>>>> Is this feature fully tested by web-platform-tests >>>>>>>>>>>> <https://chromium.googlesource.com/chromium/src/+/master/docs/testing/web_platform_tests.md>? >>>>>>>>>>>> >>>>>>>>>>>> Link to test suite results from wpt.fyi. >>>>>>>>>>>> >>>>>>>>>>>> The interface exposed by this API is fully tested by a Web >>>>>>>>>>>> Platform Tests suite: >>>>>>>>>>>> https://github.com/web-platform-tests/wpt/tree/master/shape-detection >>>>>>>>>>>> >>>>>>>>>>>> These tests do not fully pass on wpt.fyi ( >>>>>>>>>>>> https://wpt.fyi/results/shape-detection) because they rely on >>>>>>>>>>>> running in a content_shell build that provides interfaces for >>>>>>>>>>>> injecting >>>>>>>>>>>> test data. web-platform-tests/results-collection#81 >>>>>>>>>>>> <https://github.com/web-platform-tests/results-collection/issues/81> >>>>>>>>>>>> >>>>>>>>>>>> has been filed to change the options passed to Chrome when running >>>>>>>>>>>> tests to >>>>>>>>>>>> enable these interfaces. >>>>>>>>>>>> >>>>>>>>>>>> Entry on the feature dashboard <http://www.chromestatus.com/> >>>>>>>>>>>> >>>>>>>>>>>> https://chromestatus.com/feature/4757990523535360 >>>>>>>>>>>> >>>>>>>>>>>> Note to jmedley@: This entry is for the Shape Detection API in >>>>>>>>>>>> general. Since I intend to ship each component of the Shape >>>>>>>>>>>> Detection API >>>>>>>>>>>> individually should I repurpose this entry for this intent and >>>>>>>>>>>> create new >>>>>>>>>>>> entries for FaceDetector and TextDetector? >>>>>>>>>>>> >>>>>>>>>>> -- >>>>>>>>>>> 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 blin...@chromium.org. >>>>>>>>>>> To view this discussion on the web visit >>>>>>>>>>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/c29126f2-52ab-4a5e-94ba-b3585b4c83e9%40chromium.org >>>>>>>>>>> >>>>>>>>>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/c29126f2-52ab-4a5e-94ba-b3585b4c83e9%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/0f15dadf-3100-44ca-8870-8a3286ad24b6%40chromium.org >>>>>>>>> >>>>>>>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/0f15dadf-3100-44ca-8870-8a3286ad24b6%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/CAOMQ%2Bw8mBj4UcZdoepdKwTnwEQS6nNA0ngoYA_HC3A8gQLeo7w%40mail.gmail.com >>>>>>>> >>>>>>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAOMQ%2Bw8mBj4UcZdoepdKwTnwEQS6nNA0ngoYA_HC3A8gQLeo7w%40mail.gmail.com?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/CAEmk%3DMYY%2BYaztaGGrzMaj%2BLLvp03BaLgRQaKv0-aOdw49ptLaA%40mail.gmail.com >>>>>>> >>>>>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAEmk%3DMYY%2BYaztaGGrzMaj%2BLLvp03BaLgRQaKv0-aOdw49ptLaA%40mail.gmail.com?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/CAEmk%3DMZQ%3DqWvnZ8qZdafQf1aHfVTUOF%2BMkt%3D4%3DOL8akAKRff_A%40mail.gmail.com >>>>> >>>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAEmk%3DMZQ%3DqWvnZ8qZdafQf1aHfVTUOF%2BMkt%3D4%3DOL8akAKRff_A%40mail.gmail.com?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/CAOMQ%2Bw9msXmCLbKSDDgH2tKLADJe8cnJ%2BmVman9gbLq7tqOfEw%40mail.gmail.com >>> >>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAOMQ%2Bw9msXmCLbKSDDgH2tKLADJe8cnJ%2BmVman9gbLq7tqOfEw%40mail.gmail.com?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/e4110d58-a2b3-4ae2-bf43-dea8fd6d8537n%40chromium.org.