The issue has been replaced with placeElement(), just underway.
https://github.com/WICG/canvas-place-element

There are also Text Metrics extensions landed in Chromium behind the
ExtendedTextMetrics blink flag (I think). See
https://blogs.igalia.com/schenney/canvas-text-editing/

Stephen.

On Thu, Sep 12, 2024 at 10:07 AM Mike Taylor <miketa...@chromium.org> wrote:

> According to https://issues.chromium.org/u/2/issues/40160099#comment20 -
> it is not being pursued.
> On 9/12/24 2:56 AM, Joe Lewis wrote:
>
> Is this initiative progressing. I'm writing a web-based word processor and
> this will save a lot of efforts.
> Curious to know if this is something that's still being pursued or should
> I write my own layouting engine?
>
> Thanks,
> Joe
> On Thursday 16 December, 2021 at 2:30:17 pm UTC+5:30 Frank Tang wrote:
>
>> I am proposing an enhancement of Intl.Segmenter API (adding line break
>> support) to TC39 for ECMA402 (see
>> https://github.com/tc39-transfer/proposal-intl-segmenter-v2 ) The API
>> expose "line break opportunity" of text which implement the
>> Unicode® Standard Annex #14
>> <https://github.com/w3c/css-houdini-drafts/issues/14> UNICODE LINE
>> BREAKING ALGORITHM (see https://www.unicode.org/reports/tr14/)
>> so it can be used for developer to use it with
>>
>>    1. multiple lines of text rendering in <CANVAS>
>>    2. jsPDF and other context which need to layout text into multiple
>>    lines
>>    3. SVG multiple lines of text
>>
>> During the stage advancement discussion, one delegate suggest me to reach
>> out to Houdini to see which one of the following is better
>>
>>    1. Instead of adding that to ECMA402 as a low level API, leave that
>>    part of job (breaking text into multiple lines of text) to Houdini to add
>>    such API to empower developers to use it on <CANVAS>, SVG , or for jsPDF
>>    and therefore there are no need to add them into ECMA402, OR
>>    2. TC39 add such low level API into ECMA402 to allow developers to
>>    use that with the currently defined Houdini APIs, OR
>>    3. TC39 add such low level API into ECMA402 to allow Houdini to
>>    depends on Intl.Segmenter for the job of finding out linguistic line break
>>    opportunity.
>>
>> Please comment so we can move forward better in TC39 / ECMA402. Thanks
>>
>>
>> Similar question to you- do you think the enhancement to Intl.Segmenter
>> will be conflict or redundant to your API? or will it complement the API
>> you intend to implement?
>>
>>
>>
>> On Mon, Dec 14, 2020 at 10:30 AM 'Sushanth Rajasankar' via blink-dev <
>> blin...@chromium.org> wrote:
>>
>>> Thanks, Ashley. I'm excited to see that we can help simplify code and
>>> address your use case. Looking forward to your feedback once we have a
>>> prototype in Chromium.
>>>
>>> ------------------------------
>>> *From:* Ashley Gullen <ash...@scirra.com>
>>> *Sent:* Wednesday, December 9, 2020 2:53 AM
>>> *To:* Sushanth Rajasankar <sushanth....@microsoft.com>
>>> *Cc:* blin...@chromium.org <blin...@chromium.org>; Travis Leithead <
>>> travis....@microsoft.com>
>>> *Subject:* [EXTERNAL] Re: [blink-dev] Re: Intent to Prototype: Canvas
>>> Formatted Text
>>>
>>> This would be good for our game engine Construct 3 (www.construct.net
>>> <https://nam06.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.construct.net%2F&data=04%7C01%7CSushanth.Rajasankar%40microsoft.com%7Caeae998363ce4e73f49108d89c30b767%7C72f988bf86f141af91ab2d7cd011db47%7C0%7C0%7C637431080336822305%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=nrKkgGSHQNxJMC724eJ30MgiN%2BitYpfjchzWnWELkLE%3D&reserved=0>)
>>> as well.
>>>
>>> Our engine renders entirely to a canvas, and for displaying text we use
>>> the canvas text APIs. Since ~2012 we've had to maintain our own custom word
>>> wrap engine in JavaScript to handle multi-line text, and I doubt it does
>>> everything this proposal does especially with regards to break
>>> opportunities and bidi text, so it would be great if the browser could
>>> handle that for us. I do think backwards compatibility would be tricky
>>> though, as switching existing content to a different word wrap engine will
>>> probably result in unwanted differences, but there's not much that can be
>>> done about that.
>>>
>>>
>>> On Tue, 8 Dec 2020 at 21:27, 'Sushanth Rajasankar' via blink-dev <
>>> blin...@chromium.org> wrote:
>>>
>>> Fixing the row for "Web Developer signals"
>>>
>>> We do have positive signals from web developers, they are interested in
>>> adopting this API for both performance and correctness reasons
>>>
>>> nhelfman · GitHub
>>> <https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnhelfman&data=04%7C01%7CSushanth.Rajasankar%40microsoft.com%7Caeae998363ce4e73f49108d89c30b767%7C72f988bf86f141af91ab2d7cd011db47%7C0%7C0%7C637431080336832260%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=VlWmi4gNHtCAdi7aNobH2oaJovJ651u7xOrrSbV%2BWXw%3D&reserved=0>
>>>  -
>>> Excel Online - Microsoft
>>> bonmotbot (Igor Kopylov) · GitHub
>>> <https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fbonmotbot&data=04%7C01%7CSushanth.Rajasankar%40microsoft.com%7Caeae998363ce4e73f49108d89c30b767%7C72f988bf86f141af91ab2d7cd011db47%7C0%7C0%7C637431080336832260%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=Inf8rhPrPgAJTtKtsvRokBOCrzK6Umn8pUo8apcIZaQ%3D&reserved=0>
>>>  -
>>> GSuite - Google
>>>
>>> Thanks,
>>> Sushanth
>>> ------------------------------
>>> *From:* 'Sushanth Rajasankar' via blink-dev <blin...@chromium.org>
>>> *Sent:* Friday, December 4, 2020 4:36 PM
>>> *To:* blin...@chromium.org <blin...@chromium.org>
>>> *Cc:* Travis Leithead <travis....@microsoft.com>
>>> *Subject:* [EXTERNAL] [blink-dev] Intent to Prototype: Canvas Formatted
>>> Text
>>>
>>>
>>> Contact emails
>>>
>>> sush...@microsoft.com, tra...@microsoft.com
>>>
>>> Explainer
>>>
>>>
>>> https://github.com/WICG/canvas-formatted-text/blob/main/README.md
>>>
>>>
>>> <https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FWICG%2Fcanvas-formatted-text%2Fblob%2Fmain%2FREADME.md&data=04%7C01%7CSushanth.Rajasankar%40microsoft.com%7Caeae998363ce4e73f49108d89c30b767%7C72f988bf86f141af91ab2d7cd011db47%7C0%7C0%7C637431080336842214%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=PPZGLccssO71KlyTUUcLwEjN8vDsssmTegWuKrZwHcM%3D&reserved=0>
>>> Specification
>>>
>>> None
>>>
>>>
>>> Summary
>>>
>>> Easily render multiline formatted text in Canvas, while letting the
>>> browser handle the hard parts of line-breaking and other language-specific
>>> constraints.
>>>
>>>
>>> Blink component
>>>
>>> Blink>Canvas
>>>
>>>
>>> <https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fbugs.chromium.org%2Fp%2Fchromium%2Fissues%2Flist%3Fq%3Dcomponent%3ABlink%253ECanvas&data=04%7C01%7CSushanth.Rajasankar%40microsoft.com%7Caeae998363ce4e73f49108d89c30b767%7C72f988bf86f141af91ab2d7cd011db47%7C0%7C0%7C637431080336842214%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=fuB5wSfM58VwIwKaDazVEKApWypB7hv6BzASfIumTG8%3D&reserved=0>
>>> Motivation
>>>
>>> You have a paragraph of text. You want to write it to the canvas. Canvas
>>> only supplies fill/strokeText -- only line of text at a time. Where do
>>> you break your paragraph up? Doing this is JavaScript is hard and error
>>> prone. For example, the author must consider: where are the break
>>> opportunities between words or Graphemes? Break opportunities are based
>>> primarily on the Unicode Spec but also use dictionaries for languages like
>>> Thai and French that dictate additional line breaking rules. Other
>>> consideration include identifying grapheme clusters, handling Bidi
>>> text, proper text shaping and kerning.
>>>
>>>
>>>
>>> Luckily, the browser already has a powerful line breaking, text shaping
>>> component used for regular HTML layout. This feature enables authors to tap
>>> into the browser's layout feature while maintaining control over the layout
>>> of multi-line formatted text.
>>>
>>>
>>>
>>> Initial public proposal
>>>
>>> https://github.com/WICG/proposals/issues/3
>>>
>>> <https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FWICG%2Fproposals%2Fissues%2F3&data=04%7C01%7CSushanth.Rajasankar%40microsoft.com%7Caeae998363ce4e73f49108d89c30b767%7C72f988bf86f141af91ab2d7cd011db47%7C0%7C0%7C637431080336852168%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=9D%2BBkgANFiTfpqRepnDofLhx6%2FvJoLGeoqfxajIuWrQ%3D&reserved=0>
>>>
>>>
>>> TAG review
>>>
>>> None
>>>
>>>
>>> TAG review status
>>>
>>> Pending
>>>
>>>
>>> Risks
>>>
>>> This feature exposes new functionality to the Canvas. Similar behavior
>>> is being exposed to the CSS Houdini Layout API. Our goal is to find a good
>>> balance in terms of design that harmonizes the two concepts.
>>>
>>>
>>>
>>> Interoperability and Compatibility
>>>
>>> None
>>>
>>>
>>>
>>> Gecko: No signal
>>>
>>> WebKit: No signal
>>>
>>> Web developers: No signals
>>>
>>>
>>>
>>>
>>> Is this feature fully tested by web-platform-tests
>>> <https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fchromium.googlesource.com%2Fchromium%2Fsrc%2F%2B%2Fmaster%2Fdocs%2Ftesting%2Fweb_platform_tests.md&data=04%7C01%7CSushanth.Rajasankar%40microsoft.com%7Caeae998363ce4e73f49108d89c30b767%7C72f988bf86f141af91ab2d7cd011db47%7C0%7C0%7C637431080336852168%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=oMOeWm4Qr8VRbyno8zhhfcHWpGI0j%2FnpiyMDfxDmmT0%3D&reserved=0>
>>> ?
>>>
>>> No
>>>
>>>
>>> Tracking bug
>>>
>>> https://bugs.chromium.org/p/chromium/issues/detail?id=1155764
>>>
>>> <https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fbugs.chromium.org%2Fp%2Fchromium%2Fissues%2Fdetail%3Fid%3D1155764&data=04%7C01%7CSushanth.Rajasankar%40microsoft.com%7Caeae998363ce4e73f49108d89c30b767%7C72f988bf86f141af91ab2d7cd011db47%7C0%7C0%7C637431080336852168%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=d00eqYe9gEumXTtPazSHYF2W1pFVwFh3%2F9uweStTAHE%3D&reserved=0>
>>>
>>>
>>> Link to entry on the Chrome Platform Status
>>>
>>> https://chromestatus.com/feature/5996048675766272
>>> <https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fchromestatus.com%2Ffeature%2F5996048675766272&data=04%7C01%7CSushanth.Rajasankar%40microsoft.com%7Caeae998363ce4e73f49108d89c30b767%7C72f988bf86f141af91ab2d7cd011db47%7C0%7C0%7C637431080336862132%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=Wwyn%2B8e79rgNyM811Mrex%2FONbesUdtHPlmBk7twA1%2FU%3D&reserved=0>
>>>
>>> <https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fchromestatus.com%2Ffeature%2F5996048675766272&data=04%7C01%7CSushanth.Rajasankar%40microsoft.com%7Caeae998363ce4e73f49108d89c30b767%7C72f988bf86f141af91ab2d7cd011db47%7C0%7C0%7C637431080336862132%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=Wwyn%2B8e79rgNyM811Mrex%2FONbesUdtHPlmBk7twA1%2FU%3D&reserved=0>
>>>
>>>
>>> <https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fchromestatus.com%2Ffeature%2F5996048675766272&data=04%7C01%7CSushanth.Rajasankar%40microsoft.com%7Caeae998363ce4e73f49108d89c30b767%7C72f988bf86f141af91ab2d7cd011db47%7C0%7C0%7C637431080336872084%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=p9vt7HKqtZJM3X3OUt5gqDeB1x6GYsJng7z57BIueEk%3D&reserved=0>
>>>
>>> --
>>> 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/MN2PR00MB060671AEFC6F81BCB9725037FDF09%40MN2PR00MB0606.namprd00.prod.outlook.com
>>> <https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgroups.google.com%2Fa%2Fchromium.org%2Fd%2Fmsgid%2Fblink-dev%2FMN2PR00MB060671AEFC6F81BCB9725037FDF09%2540MN2PR00MB0606.namprd00.prod.outlook.com%3Futm_medium%3Demail%26utm_source%3Dfooter&data=04%7C01%7CSushanth.Rajasankar%40microsoft.com%7Caeae998363ce4e73f49108d89c30b767%7C72f988bf86f141af91ab2d7cd011db47%7C0%7C0%7C637431080336872084%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=aVUDlLqL2GPMD5L7LcSWJ41UOe4EQjqXGFytpw%2FG0pw%3D&reserved=0>
>>> .
>>> --
>>> 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/DM6PR00MB060336F0695308E30C6499C8FDCD9%40DM6PR00MB0603.namprd00.prod.outlook.com
>>> <https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgroups.google.com%2Fa%2Fchromium.org%2Fd%2Fmsgid%2Fblink-dev%2FDM6PR00MB060336F0695308E30C6499C8FDCD9%2540DM6PR00MB0603.namprd00.prod.outlook.com%3Futm_medium%3Demail%26utm_source%3Dfooter&data=04%7C01%7CSushanth.Rajasankar%40microsoft.com%7Caeae998363ce4e73f49108d89c30b767%7C72f988bf86f141af91ab2d7cd011db47%7C0%7C0%7C637431080336882040%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=qg83LnHBlKSSgcJBwd2481nNfExU%2BYr3Hxy2AfsrM5Q%3D&reserved=0>
>>> .
>>>
>>> --
>>> 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/BYAPR00MB059824555DAD1801B8F6933AFDC79%40BYAPR00MB0598.namprd00.prod.outlook.com
>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/BYAPR00MB059824555DAD1801B8F6933AFDC79%40BYAPR00MB0598.namprd00.prod.outlook.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/92387448-12d8-43b7-baef-a8e97f032e2bn%40chromium.org
> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/92387448-12d8-43b7-baef-a8e97f032e2bn%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/4fc7b100-d613-43d3-b64d-8d29f912973f%40chromium.org
> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/4fc7b100-d613-43d3-b64d-8d29f912973f%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/CAGsbWzQq9HL42iOfj%3DRTBn14R4iDjZZ8tu5y8jnV8PrhAmFT5A%40mail.gmail.com.

Reply via email to