LGTM2

Thanks for pushing forward the discussions, and landing the spec in a good 
place from an interop perspective.

On Monday, May 9, 2022 at 7:20:53 PM UTC+2 Ajay Rahatekar wrote:

> Hello API Owners,
>
> Please let us know if there are any outstanding concerns apart from the 
> discussion on the Mozilla position 
> <https://github.com/mozilla/standards-positions/issues/401#issuecomment-1115057239>,
>  
> that we can address. The team is targeting M103 for shipping this api. 
>
> Thanks for all your help and guidance.
>
> -Ajay
>
> On Wednesday, May 4, 2022 at 8:37:03 AM UTC-7 sligh...@chromium.org wrote:
>
>> I LGTM'd in the tool but it didn't show up here, but y'all have my +1. 
>> Thanks for getting this done.
>>
>> On Thursday, April 28, 2022 at 5:01:51 PM UTC-7 Joshua Bell wrote:
>>
> FYI, non-normative note added. I also followed up on the questions in the 
>>> Moz standards position thread, added a few more notes to the spec as well.
>>>
>>> On Wed, Apr 27, 2022 at 9:01 AM Alex Russell <sligh...@chromium.org> 
>>> wrote:
>>>
>> A non-normative note in the spec sounds good. Wouldn't want to block 
>>>> shipping on it.
>>>>
>>>> On Wednesday, April 27, 2022 at 2:05:53 AM UTC-7 Yoav Weiss wrote:
>>>>
>>> If we're going with exposing byte-by-byte representation of the fonts on 
>>>>> the user's filesystem, we should make that slightly more explicit. Maybe 
>>>>> add a note to 
>>>>> https://wicg.github.io/local-font-access/#font-representation-data-bytes 
>>>>> clarifying that point?
>>>>>
>>>>> I *think* that lack of normalization should resolve the issues Anne 
>>>>> was concerned about in 
>>>>> https://github.com/WICG/local-font-access/issues/20, where different 
>>>>> normalization algorithms result in compatibility issues. I also *think* 
>>>>> it 
>>>>> should resolve Tess' concerns RE user assumptions of the fonts being 
>>>>> Open-Type. Can you clarify those points with them?
>>>>>
>>>>> On Monday, April 25, 2022 at 6:12:00 PM UTC+2 Alex Russell wrote:
>>>>>
>>>> Normalisation isn't usually a goal for users that want the actual bytes 
>>>>>> of the local font in order to do the rendering themselves and can be an 
>>>>>> active non-goal given the ways that folks want to do custom grouping, 
>>>>>> enumeration, and rendering. Partners have consistently asked us not to 
>>>>>> remove information and I've never heard of a request for normalisation 
>>>>>> from 
>>>>>> a partner.
>>>>>>
>>>>>> This is in line with not adding OTS sanitisation for these files  (we 
>>>>>> don't need to when the OS rendering pipeline isn't at potential risk), 
>>>>>> and 
>>>>>> highlights the way that the current design is isomorphic with local file 
>>>>>> access. 
>>>>>>
>>>>>> I've LGTM'd it in the tool as a result.
>>>>>>
>>>>>> Thanks to everyone at Google for continuing to push this forward.
>>>>>>
>>>>>> Best Regards,
>>>>>>
>>>>>> Alex
>>>>>>
>>>>>> On Thursday, April 21, 2022 at 9:46:15 AM UTC-7 Joshua Bell wrote:
>>>>>>
>>>>> On Wed, Apr 20, 2022 at 4:21 AM Yoav Weiss <yoav...@chromium.org> 
>>>>>>> wrote:
>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> On Wed, Apr 13, 2022 at 6:46 PM Joshua Bell <jsb...@google.com> 
>>>>>>>> wrote:
>>>>>>>>
>>>>>>>>> On Wed, Apr 13, 2022 at 6:36 AM Yoav Weiss <yoav...@chromium.org> 
>>>>>>>>> wrote:
>>>>>>>>>
>>>>>>>> Also, any learnings/feedback from the Origin Trial?
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>> Not distinct from the dev trial (i.e. developers trying the API 
>>>>>>>>> behind a flag). There was a feature request for additional metadata 
>>>>>>>>> which 
>>>>>>>>> was implemented, then the request was withdrawn so that code was 
>>>>>>>>> backed 
>>>>>>>>> out. Other requests are marked as "enhancements" in the issue 
>>>>>>>>> tracker, e.g. 
>>>>>>>>> font modification timestamps.
>>>>>>>>>  
>>>>>>>>>
>>>>>>>> On Wednesday, April 13, 2022 at 3:35:02 PM UTC+2 Yoav Weiss wrote:
>>>>>>>>>>
>>>>>>>>> On Friday, April 8, 2022 at 8:15:42 PM UTC+2 Ajay Rahatekar wrote:
>>>>>>>>>>>
>>>>>>>>>> Contact emails
>>>>>>>>>>>>
>>>>>>>>>>>> ds...@chromium.org, jsb...@chromium.org
>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>> Explainer
>>>>>>>>>>>>
>>>>>>>>>>>> https://github.com/WICG/local-font-access
>>>>>>>>>>>>
>>>>>>>>>>>> Specification
>>>>>>>>>>>>
>>>>>>>>>>>> https://wicg.github.io/local-font-access/
>>>>>>>>>>>>
>>>>>>>>>>>> Design docsDesign Doc: https://bit.ly/2HWBOLi 
>>>>>>>>>>>> <https://chromestatus.com/admin/features/launch/6234451761692672/Design%20Doc:%20https://bit.ly/2HWBOLi>
>>>>>>>>>>>>
>>>>>>>>>>>> Blog: https://web.dev/local-fonts/
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> Summary
>>>>>>>>>>>>
>>>>>>>>>>>> Gives web applications the ability to enumerate local fonts and 
>>>>>>>>>>>> some metadata about each. Today, no API exists to provide a list 
>>>>>>>>>>>> of local 
>>>>>>>>>>>> fonts to web applications.  
>>>>>>>>>>>>
>>>>>>>>>>>> Also gives web applications access to the font data as a binary 
>>>>>>>>>>>> blob, allowing those fonts to be rendered within their 
>>>>>>>>>>>> applications using 
>>>>>>>>>>>> custom text stacks.
>>>>>>>>>>>>
>>>>>>>>>>>> Blink component
>>>>>>>>>>>>
>>>>>>>>>>>> Blink>Fonts 
>>>>>>>>>>>> <https://bugs.chromium.org/p/chromium/issues/list?q=component:Blink%3EFonts>
>>>>>>>>>>>>
>>>>>>>>>>>> TAG review
>>>>>>>>>>>>
>>>>>>>>>>>> https://github.com/w3ctag/design-reviews/issues/400
>>>>>>>>>>>>
>>>>>>>>>>>> TAG review status
>>>>>>>>>>>>
>>>>>>>>>>>> Pending
>>>>>>>>>>>>
>>>>>>>>>>>> RisksInteroperability and Compatibility
>>>>>>>>>>>>
>>>>>>>>>>>> This API has been designed to support feature detection to 
>>>>>>>>>>>> allow applications to gracefully degrade based on the capabilities 
>>>>>>>>>>>> different user agents offer.
>>>>>>>>>>>>
>>>>>>>>>>>> We expect developers using this API to design their web 
>>>>>>>>>>>> applications to use web-based fonts as the primary set of font 
>>>>>>>>>>>> choices, but 
>>>>>>>>>>>> allow users to opt-in to take advantage of their local fonts for 
>>>>>>>>>>>> specific 
>>>>>>>>>>>> design needs.
>>>>>>>>>>>>
>>>>>>>>>>>> If this feature were removed from the platform, web 
>>>>>>>>>>>> applications would lose the ability to enumerate local fonts and 
>>>>>>>>>>>> retrieve 
>>>>>>>>>>>> font data but otherwise are expected to continue to function.
>>>>>>>>>>>>
>>>>>>>>>>>> Gecko: 
>>>>>>>>>>>> https://github.com/mozilla/standards-positions/issues/401
>>>>>>>>>>>>
>>>>>>>>>>> https://github.com/WICG/local-font-access/issues/20 and 
>>>>>>>>>>> https://github.com/WICG/local-font-access/issues/19 are still 
>>>>>>>>>>> open and seem to be increasing the interop risk here. Can you 
>>>>>>>>>>> expand on 
>>>>>>>>>>> plans to resolve them? 
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>> https://github.com/WICG/local-font-access/issues/81 is also 
>>>>>>>>> related and comes down to: how much do we shield the web app from the 
>>>>>>>>> contents of font files? At one extreme, the data is normalized into 
>>>>>>>>> some 
>>>>>>>>> strict subset, stripping features. At the other, they are treated 
>>>>>>>>> like 
>>>>>>>>> files. When we started exploring the API we started in the middle 
>>>>>>>>> exposing 
>>>>>>>>> the font data in a more structured way (e.g. tables), but this (1) 
>>>>>>>>> would 
>>>>>>>>> lock the API into current font formats/concepts and (2) all sites 
>>>>>>>>> planning 
>>>>>>>>> to use the API are using common libraries that consume entire files, 
>>>>>>>>> which 
>>>>>>>>> already have robust parsing. So we lean heavily into the "treat them 
>>>>>>>>> like 
>>>>>>>>> files" - provide the data and get out of the way of the 
>>>>>>>>> sites/libraries to 
>>>>>>>>> use the rich data, similar to uploading images.
>>>>>>>>>
>>>>>>>>
>>>>>>>> So, no normalization happens on the font files? Is that reflected 
>>>>>>>> in the spec? Did you get any feedback on that approach from the folks 
>>>>>>>> that 
>>>>>>>> chimed in on the issues?
>>>>>>>>
>>>>>>> That is correct. The spec text is currently agnostic about what 
>>>>>>> happens. It could be made more forceful, e.g. that UAs are not required 
>>>>>>> to 
>>>>>>> normalize data, and that consumers of the API should code defensively. 
>>>>>>>
>>>>>>> Folks that chimed in on the issues represented the spread of 
>>>>>>> thoughts, from not wanting to assume anything about fonts (which would 
>>>>>>> preclude future innovation) to considering a lack of normalization a 
>>>>>>> flaw, 
>>>>>>> even for image uploads. I haven't had a chance to respond in detail. 
>>>>>>> "Normalization" could imply many things, from rearranging elements 
>>>>>>> within 
>>>>>>> general container formats (e.g. JFIF marker segments for images, SNFT 
>>>>>>> tables for fonts, MP4 data streams and captioning for audio/video) to 
>>>>>>> dropping elements (e.g. EXIF metadata in images, COLRv1 or Variable 
>>>>>>> support 
>>>>>>> in fonts, text captions from video) attempting to transcode (e.g. 
>>>>>>> lossily 
>>>>>>> converting an SVG image to a PNG, or SVG font to OTF). The consumers of 
>>>>>>> the 
>>>>>>> API, on behalf of users, expressly do not want to lose fidelity of the 
>>>>>>> fonts, so that designers creating content have access to tools as 
>>>>>>> powerful 
>>>>>>> as native. 
>>>>>>>
>>>>>>
>>>>>>>>> The API shape takes an options object, which would allow adding a 
>>>>>>>>> filter for font file formats in the future, e.g. {accept: 
>>>>>>>>> ["font/ttf", 
>>>>>>>>> "font/off", "font/woff", "font/woff2"]}, so that sites could limit 
>>>>>>>>> what 
>>>>>>>>> types are provided. I could imagine us adding that and providing a 
>>>>>>>>> default 
>>>>>>>>> like the above if new formats become supported by the web but that 
>>>>>>>>> might 
>>>>>>>>> "surprise" sites. 
>>>>>>>>>  
>>>>>>>>>
>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>> WebKit: 
>>>>>>>>>>>> https://lists.webkit.org/pipermail/webkit-dev/2022-April/032176.html
>>>>>>>>>>>>
>>>>>>>>>>>> Web developers: Strongly positive (https://crbug.com/535764#c2) 
>>>>>>>>>>>> Very positive support from web applications that interact with 
>>>>>>>>>>>> local fonts, 
>>>>>>>>>>>> such as Figma.
>>>>>>>>>>>>
>>>>>>>>>>>> Adopted by: Boxy SVG <https://boxy-svg.com/app>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> Other signals:
>>>>>>>>>>>>
>>>>>>>>>>>> Ergonomics
>>>>>>>>>>>>
>>>>>>>>>>>> The feature builds both enumeration and data access into the 
>>>>>>>>>>>> same new API. Separation was considered but rejected. (See the 
>>>>>>>>>>>> Explainer 
>>>>>>>>>>>> for more details.) That may limit use. 
>>>>>>>>>>>>
>>>>>>>>>>>> Activation
>>>>>>>>>>>>
>>>>>>>>>>>> Developers will be able to take advantage of this feature 
>>>>>>>>>>>> immediately since it uses the same available local fonts that 
>>>>>>>>>>>> other native 
>>>>>>>>>>>> applications have access to.  The API makes it possible for web 
>>>>>>>>>>>> developers 
>>>>>>>>>>>> to implement a font picker (either UI-driven or algorithmic) and 
>>>>>>>>>>>> API usage 
>>>>>>>>>>>> will see more traction once popular UI libraries build font 
>>>>>>>>>>>> pickers on top 
>>>>>>>>>>>> of it.
>>>>>>>>>>>>
>>>>>>>>>>>> Content for this API is available immediately since the API 
>>>>>>>>>>>> uses locally-installed fonts that are already present on the 
>>>>>>>>>>>> user's 
>>>>>>>>>>>> system.  Usage of this API by an average web developer will 
>>>>>>>>>>>> require 
>>>>>>>>>>>> additional text shaping software that would render fonts based on 
>>>>>>>>>>>> data 
>>>>>>>>>>>> returned by this API.  (eg. a Harfbuzz-in-WASM library)
>>>>>>>>>>>>
>>>>>>>>>>>> The API is designed to support additional functionality in the 
>>>>>>>>>>>> future. Several such additions are under consideration:
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>    - 
>>>>>>>>>>>>    
>>>>>>>>>>>>    Querying for a "system UI" font, for web applications that 
>>>>>>>>>>>>    render text with their own text stack and need access to the 
>>>>>>>>>>>> full font 
>>>>>>>>>>>>    data, but wish to match the local system appearance. This would 
>>>>>>>>>>>> be 
>>>>>>>>>>>>    equivalent to the CSS "system-ui" generic font family 
>>>>>>>>>>>>    <https://chromestatus.com/feature/5640395337760768>.
>>>>>>>>>>>>    - 
>>>>>>>>>>>>    
>>>>>>>>>>>>    Querying for only "low entropy" fonts, i.e. fonts that are 
>>>>>>>>>>>>    part of the operating system base installation. 
>>>>>>>>>>>>    - 
>>>>>>>>>>>>    
>>>>>>>>>>>>    Querying font metadata in specific languages. Fonts often 
>>>>>>>>>>>>    contain metadata with language tags, but OS APIs for 
>>>>>>>>>>>> enumerating fonts 
>>>>>>>>>>>>    typically return only the metadata for the active language.
>>>>>>>>>>>>    - 
>>>>>>>>>>>>    
>>>>>>>>>>>>    Providing additional metadata or events to notify web apps 
>>>>>>>>>>>>    of changes to fonts, to refresh caches.
>>>>>>>>>>>>    
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> Security
>>>>>>>>>>>>
>>>>>>>>>>>> The API provides access to full font data in local fonts which 
>>>>>>>>>>>> can expose additional information about a user's installed 
>>>>>>>>>>>> configuration to 
>>>>>>>>>>>> a web application.  
>>>>>>>>>>>>
>>>>>>>>>>>> This new API is behind a permission prompt, making this an 
>>>>>>>>>>>> active fingerprinting target.  See the TAG review's security and 
>>>>>>>>>>>> privacy 
>>>>>>>>>>>> questionnaire for more info: 
>>>>>>>>>>>> https://github.com/wicg/local-font-access/blob/master/security-privacy.md
>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> Are we planning to monitor potential abuse of the API? (e.g. 
>>>>>>>>>>> random sites requesting access-to-fonts permissions)
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>> Mitigations to existing passive fingerprinting vectors using 
>>>>>>>>>>>> local fonts (i.e. via CSS and Canvas) 
>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> Aside, but I don't know that I'd consider those passive.
>>>>>>>>>>>
>>>>>>>>>> have been considered in non-Chromium-based browsers, and should 
>>>>>>>>>>>> be considered for Chrome as well, but are outside the scope of 
>>>>>>>>>>>> this I2S. In 
>>>>>>>>>>>> light of those existing vectors, we do not believe this new API 
>>>>>>>>>>>> contributes 
>>>>>>>>>>>> meaningfully to new fingerprintability, and we assert that future 
>>>>>>>>>>>> privacy 
>>>>>>>>>>>> enhancements should be applied equally across all font-based 
>>>>>>>>>>>> vectors.
>>>>>>>>>>>>
>>>>>>>>>>>> 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?
>>>>>>>>>>>>
>>>>>>>>>>>> This API does not change the behavior of any other existing 
>>>>>>>>>>>> APIs. 
>>>>>>>>>>>>
>>>>>>>>>>>> Debuggability
>>>>>>>>>>>>
>>>>>>>>>>>> No special considerations.
>>>>>>>>>>>>
>>>>>>>>>>>> Is this feature fully tested by web-platform-tests 
>>>>>>>>>>>> <https://chromium.googlesource.com/chromium/src/+/master/docs/testing/web_platform_tests.md>
>>>>>>>>>>>> ?
>>>>>>>>>>>>
>>>>>>>>>>>> No
>>>>>>>>>>>>
>>>>>>>>>>>> Flag name
>>>>>>>>>>>>
>>>>>>>>>>>> font-access
>>>>>>>>>>>>
>>>>>>>>>>>> Requires code in //chrome?
>>>>>>>>>>>>
>>>>>>>>>>>> False
>>>>>>>>>>>>
>>>>>>>>>>>> Tracking bug
>>>>>>>>>>>>
>>>>>>>>>>>> https://crbug.com/535764
>>>>>>>>>>>>
>>>>>>>>>>>> Estimated milestones
>>>>>>>>>>>> OriginTrial desktop  last       90
>>>>>>>>>>>> OriginTrial desktop first        87
>>>>>>>>>>>>
>>>>>>>>>>>> We aim to ship in 102
>>>>>>>>>>>> Link to entry on the Chrome Platform Status
>>>>>>>>>>>>
>>>>>>>>>>>> https://chromestatus.com/feature/6234451761692672
>>>>>>>>>>>>
>>>>>>>>>>>> Links to previous Intent discussions
>>>>>>>>>>>>
>>>>>>>>>>>> Intent to Experiment: 
>>>>>>>>>>>> https://groups.google.com/a/chromium.org/g/blink-dev/c/3MW3ngOsUOk/m/iE0Bvg-6AwAJ
>>>>>>>>>>>>
>>>>>>>>>>>> This intent message was generated by Chrome Platform Status 
>>>>>>>>>>>> <https://chromestatus.com/>.
>>>>>>>>>>>>
>>>>>>>>>>>> -- 
>>>>>>>>>>>>
>>>>>>>>>>> Ajay Rahatekar | Technical Program Manager | 
>>>>>>>>>>>> ajayra...@google.com | 650-797-1279 <(650)%20650-797-1279>
>>>>>>>>>>>>
>>>>>>>>>>>

-- 
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/f4786591-4aad-474f-9977-d2e2f796c659n%40chromium.org.

Reply via email to