On Thu, May 1, 2025 at 12:17 AM Jeffrey Yasskin <jyass...@chromium.org>
wrote:

> The discussion in the API owners meeting raised the question of whether
> language detection has fewer fingerprinting risks than the other APIs
> covered by
> https://webmachinelearning.github.io/writing-assistance-apis/#privacy.
> Could you say something about that in
> https://webmachinelearning.github.io/translation-api/#privacy?
>

Although it's true that in our specific implementation, language detector
has fewer fingerprinting risks than others, that is not true in general. So
we don't think it's necessarily a good idea to update the specification,
beyond what is already called out
<https://webmachinelearning.github.io/writing-assistance-apis/#privacy-availability-alternatives:~:text=The%20reason%20for%20this%20is%20that%20it%E2%80%99s%20possible%20for%20implementations%20to%20use%20completely%20different%20strategies%20to%20preserve%20user%20privacy%2C%20especially%20for%20APIs%20that%20use%20small%20models.%20(For%20example%2C%20the%20language%20detector%20API.)>
as
a possibility.

To be more concrete, in Chrome's implementation, we use a single language
detection model that is downloaded on browser startup (since it is also
used for parts of Chrome's UI). So the maximum number of fingerprinting
bits is 1, and usually 0 since you can only distinguish between downloaded
vs. un-downloaded shortly after new browser installations. In our
implementation, the expectedInputLanguages constructor parameter does not
influence the downloading behavior: it just causes creation to fail if the
web developer includes an unsupported language in expectedInputLanguages.

Whereas, it's possible to imagine an implementation which has specialized
detection models for each human language, and downloads the languages on
demand in response to the expectedInputLanguages constructor option. Such a
design could have 1 bit per possibly-supported language, and thus be
subject to all of the myriad privacy considerations and mitigations
discussed in the specification.



>
> Thanks,
> Jeffrey
>
> On Fri, Apr 25, 2025 at 1:58 PM Deepti Bogadi <dbog...@chromium.org>
> wrote:
>
>> Contact emails
>>
>> dome...@chromium.org, fer...@chromium.org, kenjibah...@chromium.org,
>> a...@chromium.org, memm...@chromium.org, christin...@chromium.org,
>> dbog...@chromium.org
>>
>> Explainer
>>
>> https://github.com/WICG/translation-api/blob/main/README.md
>>
>> Specification
>>
>>
>> https://webmachinelearning.github.io/translation-api/#language-detector-api
>>
>> Note that although the translator API and language detector APIs both
>> live in a single specification, they can be implemented independently, and
>> this Intent is only for the language detector API.
>>
>> Summary
>>
>> A JavaScript API for detecting the language of text, with confidence
>> levels.
>>
>>
>> Blink component
>>
>> Blink>AI>Language Detection
>> <https://issues.chromium.org/issues?q=customfield1222907:%22Blink%3EAI%3ELanguage%20Detection%22>
>>
>> TAG review
>>
>> https://github.com/w3ctag/design-reviews/issues/948
>>
>> TAG review status
>>
>> Issues addressed
>>
>> The TAG had a number of questions and suggestions, particularly around
>> API shape, all of which were addressed and incorporated into the design.
>>
>> Origin Trial Name
>>
>> Language Detector API
>>
>> Chromium Trial Name
>>
>> LanguageDetectionAPI
>>
>> Origin Trial documentation link
>>
>> https://github.com/WICG/translation-api/blob/main/README.md
>>
>> WebFeature UseCounter name
>>
>> kV8LanguageDetector_Detect_Method
>>
>> Risks
>> Interoperability and Compatibility
>>
>> This feature, like all built-in AI features, has inherent
>> interoperability risks due to the use of AI models whose behavior is not
>> fully specified. See some general discussion in
>> https://www.w3.org/reports/ai-web-impact/#interop.
>>
>> By providing a high-level API with clear output formats, as well as a
>> capabilities API for detecting what a given browser supports, we believe we
>> can guide web developers toward using the API in an interoperable way that
>> does not depend on the specific models that a given browser or browser
>> version uses.
>>
>> Gecko: No signal (
>> https://github.com/mozilla/standards-positions/issues/1015)
>>
>> WebKit: No signal (
>> https://github.com/WebKit/standards-positions/issues/339)
>>
>> Web developers: Positive (https://github.com/WICG/proposals/issues/147)
>>
>> Other signals:
>>
>> Ergonomics
>>
>> This API will likely frequently be used in concert with the translator
>> API (https://chromestatus.com/feature/5172811302961152).
>>
>> The language detection is run on the main thread, the same as the
>> browser's built-in language detection. The inference is fast enough that it
>> is not a concern.
>>
>>
>> Activation
>>
>> This feature would definitely benefit from having polyfills, backed by
>> any of: cloud services, lazily-loaded on-device models using WebGPU, or the
>> web developer's own server. We anticipate seeing an ecosystem of such
>> polyfills grow as more developers experiment with this API.
>>
>>
>> WebView application risks
>>
>> Does this intent deprecate or change behavior of existing APIs, such that
>> it has potentially high risk for Android WebView-based applications?
>>
>> None
>>
>>
>> Debuggability
>>
>> Basic tooling suffices
>>
>>
>> Will this feature be supported on all six Blink platforms (Windows, Mac,
>> Linux, ChromeOS, Android, and Android WebView)?
>>
>> Yes
>> Is this feature fully tested by web-platform-tests
>> <https://chromium.googlesource.com/chromium/src/+/main/docs/testing/web_platform_tests.md>
>> ?
>>
>> The WPTs test the API surface, but since no specific language is
>> guaranteed to be supported, we cannot test the actual language detection.
>> Some tests will need to be marked as optional as they assume certain
>> language support. They also currently do not pass on wpt.fyi since it runs
>> without a language detection model, so creation of LanguageDetector fails.
>>
>> Flag name on about://flags
>>
>> language-detection-api
>>
>> Finch feature name
>>
>> LanguageDetectionAPI
>>
>> Rollout plan
>>
>> Will ship enabled for all users
>>
>> Requires code in //chrome?
>>
>> False
>>
>> Measurement
>>
>> kV8AILanguageDetector_Detect_Method
>>
>> Estimated milestones
>>
>> Shipping on desktop
>>
>> 137
>>
>> Origin trial desktop first
>>
>> 130
>>
>> Origin trial desktop last
>>
>> 135
>>
>> Origin trial extension 1 end milestone
>>
>> 138
>>
>> DevTrial on desktop
>>
>> 129
>>
>> Origin trial Android first
>>
>> 130
>>
>> Origin trial Android last
>>
>> 135
>>
>> DevTrial on Android
>>
>> 129
>>
>> Origin trial WebView first
>>
>> 130
>>
>> Origin trial WebView last
>>
>> 135
>>
>>
>> Anticipated spec changes
>>
>> None but the API shape is designed with extensibility in mind
>>
>> Link to entry on the Chrome Platform Status
>>
>> https://chromestatus.com/feature/6494349985841152?gate=5122129510268928
>>
>> Links to previous Intent discussions
>>
>> Intent to Prototype:
>> https://groups.google.com/a/chromium.org/g/blink-dev/c/Ie46tc6_8so/m/eY1huFmOAAAJ
>>
>> Intent to Experiment:
>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAM0wra-WvH-sxxWndwAWPLF3eEYqeLhXrz-VmZKH4Wxzbpse-Q%40mail.gmail.com
>> Intent to Extend Experiment 1:
>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAO4d-SsFc3ucbmasgZmWn4PE_TOMMnWZQCzrL%3DXbbo5tDxMSOg%40mail.gmail.com
>>
>> This intent message was generated by Chrome Platform Status
>> <https://chromestatus.com/>.
>>
>> --
>> 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 visit
>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAJcT_Zg_SDrGZ%3DnTFh4fAgzWSRmJ_5maON3rKHYjc6PWeeAkKA%40mail.gmail.com
>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAJcT_Zg_SDrGZ%3DnTFh4fAgzWSRmJ_5maON3rKHYjc6PWeeAkKA%40mail.gmail.com?utm_medium=email&utm_source=footer>
>> .
>>
> --
> You received this message because you are subscribed to the Google Groups
> "chrome-chia" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to chrome-chia+unsubscr...@google.com.
> To view this discussion visit
> https://groups.google.com/a/google.com/d/msgid/chrome-chia/CANh-dXnvqTU0k7dEKRy%2BYBCvjzrDFYFPza_D7%3DVvEdCCR9W9jA%40mail.gmail.com
> <https://groups.google.com/a/google.com/d/msgid/chrome-chia/CANh-dXnvqTU0k7dEKRy%2BYBCvjzrDFYFPza_D7%3DVvEdCCR9W9jA%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 visit 
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAM0wra9HT6JMz5QLQmKd%3DTpbvr7tdaroXGrB6okUmBLG3qdnog%40mail.gmail.com.

Reply via email to