Thank you all for the feedback. I am going to open a ticket to discuss the 
expected behavior in shadow DOM and report the status back.

Thanks,
Siye

On Tuesday, January 23, 2024 at 1:45:44 PM UTC-8 dba...@chromium.org wrote:

> For what it's worth, some of the historical context around the 2009 
> changes is in WebApps TPAC 2009 minutes 
> <https://www.w3.org/2009/11/02-webapps-minutes.html#item04> and Anne's 
> folllowup email to www-style 
> <https://lists.w3.org/Archives/Public/www-style/2009Nov/0244.html>.
>
> -David
>
> On Tue, Jan 23, 2024 at 2:31 PM 'Dan Clark' via blink-dev <
> blin...@chromium.org> wrote:
>
>> For the shadow DOM scenario, have we started the spec conversation about 
>> what behavior we want to end up at? I find the Gecko behavior a bit 
>> suspicious since it's piercing into potentially-closed shadow trees without 
>> having a prior reference to them. Maybe caretPositionFromPoint should not 
>> pierce shadow DOMs and instead support shadows by being on 
>> DocumentOrShadowRoot. That said, since this is already shipped in Gecko it 
>> could be hard to reverse course.
>>
>> If the shadow DOM question hasn't been discussed in standards yet I think 
>> it's worth kicking that off in parallel with prototyping, so it doesn't end 
>> up being a barrier to shipping the full implementation later on. A lot of 
>> the developer feedback has been about how caretRangeFromPoint doesn't 
>> work with shadows so it seems like this is of central importance for the 
>> API.
>>
>> -- Dan
>>
>> On Thursday, January 18, 2024 at 6:13:48 AM UTC-8 Daniel Bratell wrote:
>>
>>> Sounds like something that should be reflected in the specs. Again, not 
>>> directly related to this Intent, but maybe something that should happen in 
>>> parallel.
>>>
>>> /Daniel
>>> On 2024-01-17 23:38, 'Siye Liu' via blink-dev wrote:
>>>
>>> Blink has similar concept called "affinity" when placing caret at 
>>> wrapped line. definition: 
>>> https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/core/editing/visible_position.h;l=39-54
>>>  
>>>
>>> Thanks,
>>> Siye
>>>
>>> On Wednesday, January 17, 2024 at 6:35:14 AM UTC-8 Daniel Bratell wrote:
>>>
>>>> This is not directly related to this one function but more to the whole 
>>>> API. I quickly skimmed the spec and I could not find out how it handles 
>>>> line breaks which make caret positions ambigious?
>>>>
>>>> When you press the END key at one line, and the HOME key at the 
>>>> following line your caret DOM position can be the same, but the visual 
>>>> caret positions should be different, and so should certain actions like 
>>>> arrow-down and arrow-up.
>>>>
>>>> When developing code to handle this in Opera, I solved it by letting 
>>>> carets know if they were connected forward or backwards (basically a bool) 
>>>> in the dom element, but maybe this is solved in some other way now?
>>>>
>>>> /Daniel
>>>> On 2024-01-16 18:31, 'Siye Liu' via blink-dev wrote:
>>>>
>>>> Hi Brian, 
>>>>
>>>> To answer your question,
>>>> 1. This prototype only covers the main dom scenario (
>>>> https://crbug.com/388976). Shadow dom scenario is tracked in 
>>>> https://crbug.com/1514810.
>>>> 2. The prototype should have similar behavior as caretRangeFromPoint's 
>>>> implementation in Blink (when the point is over an input element, the 
>>>> returned CaretPosition should be the nearest ancestor of the input 
>>>> element) 
>>>> because I expect both APIs share same hit testing logic under the hood.
>>>>
>>>> Once the prototype is ready for dev trial, we can discuss further about 
>>>> improving current implementation in both caretRangeFromPoint and 
>>>> caretPositionFromPoint in Blink.
>>>>
>>>>
>>>> Thanks,
>>>> Siye
>>>>
>>>> On Friday, January 12, 2024 at 5:23:25 PM UTC-8 Brian Birtles wrote:
>>>>
>>>> Hi,
>>>>
>>>> Will this also cover the behavioral differences between 
>>>> caretPositionFromPoint as implemented in Gecko and caretRangeFromPoint as 
>>>> implemented in Blink such as:
>>>>
>>>> 1. caretPositionFromPoint in Gecko digs into shadow DOM elements 
>>>> whereas caretRangeFromPoint in Blink does not.
>>>> 2. When the point is over a text input element, caretPositionFromPoint 
>>>> in Gecko returns the text input element and offset into it but 
>>>> caretRangeFromPoint in Blink returns the nearest ancestor of the text 
>>>> input 
>>>> element. (Note that caretRangeFromPoint in Webkit returns the text input 
>>>> element but always returns a zero offset into it.)
>>>>
>>>> Thanks,
>>>>
>>>> Brian
>>>>
>>>> 2024年1月13日土曜日 3:35:59 UTC+9 si...@microsoft.com:
>>>>
>>>> Contact emails 
>>>> si...@microsoft.com, sa...@microsoft.com
>>>>
>>>> Explainer
>>>> None
>>>>
>>>> Specification
>>>> https://www.w3.org/TR/cssom-view-1/#dom-document-caretpositionfrompoint
>>>>
>>>> Summary 
>>>>
>>>> This new API allows users to get current caret position from a given 
>>>> screen point. The API returns a CaretPosition object which represents the 
>>>> caret position indicating current text insertion point including the 
>>>> containing DOM node, caret's character offset, and the client rectangle of 
>>>> caret range. 
>>>>
>>>>
>>>> Blink component
>>>> Blink>CSS 
>>>> <https://bugs.chromium.org/p/chromium/issues/list?q=component:Blink%3ECSS>
>>>>
>>>> Motivation 
>>>>
>>>> document.caretPositionFromPoint API is in CSSOM View and is already 
>>>> implemented by Gecko. WebKit/Blink has similar 
>>>> document.caretRangeFromPoint 
>>>> API which returns a text range indicating the text insertion point. The 
>>>> existing API was in CSSOM View at the time it was implemented: 
>>>> https://bugs.webkit.org/show_bug.cgi?id=27046 
>>>> http://web.archive.org/web/20090708002518/http://dev.w3.org/csswg/cssom-view/#the-documentview-interface
>>>>  
>>>> The existing API was replaced by the new API later: 
>>>> https://hg.csswg.org/drafts/rev/4c7b6f843171. The switch happened 
>>>> around 2009 and we don't have the historical context about the decision. 
>>>> Given how long it has been since the spec was updated, we believe it's 
>>>> best 
>>>> that Blink complies with the spec so that future innovations with the API 
>>>> can be spec compliant and have lower interop/compat risk.
>>>>
>>>>
>>>> Initial public proposal
>>>> None
>>>>
>>>> TAG review
>>>> None
>>>>
>>>> TAG review status
>>>> Not applicable
>>>>
>>>> Risks 
>>>>
>>>>
>>>> Interoperability and Compatibility 
>>>>
>>>> Gecko already implemented the API. Webkit/Blink didn't implement it. 
>>>> The interop risk is that it's unclear at this moment about Webkit's 
>>>> position on this. We won't be able to achieve full interop with this API 
>>>> if 
>>>> Webkit isn't willing to support this API. There is a compat risk too if we 
>>>> decided to deprecate the old API: https://crbug.com/690599
>>>>
>>>>
>>>> *Gecko*: Shipped/Shipping
>>>>
>>>> *WebKit*: No signal (
>>>> https://github.com/WebKit/standards-positions/issues/301)
>>>>
>>>> *Web developers*: Positive (
>>>> https://bugs.chromium.org/p/chromium/issues/detail?id=388976#c34) Web 
>>>> developers are asking to have document.caretPositionFromPoint API 
>>>> implemented in Blink: 
>>>> https://bugs.chromium.org/p/chromium/issues/detail?id=388976#c28 
>>>> https://bugs.chromium.org/p/chromium/issues/detail?id=388976#c34
>>>>
>>>> *Other signals*:
>>>>
>>>> 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 
>>>>
>>>> None
>>>>
>>>>
>>>> Is this feature fully tested by web-platform-tests 
>>>> <https://chromium.googlesource.com/chromium/src/+/main/docs/testing/web_platform_tests.md>
>>>> ?
>>>> Yes 
>>>>
>>>> The API is tested in WPT: 
>>>> https://github.com/web-platform-tests/wpt/blob/c18cfd4eb319ca535db8c194941719598b3b6ea8/css/cssom/caretPositionFromPoint.html
>>>>
>>>>
>>>> Flag name on chrome://flags
>>>> None
>>>>
>>>> Finch feature name
>>>> None
>>>>
>>>> Non-finch justification
>>>> None
>>>>
>>>> Requires code in //chrome?
>>>> False
>>>>
>>>> Tracking bug
>>>> https://crbug.com/388976
>>>>
>>>> Estimated milestones 
>>>>
>>>> No milestones specified
>>>>
>>>>
>>>> Link to entry on the Chrome Platform Status
>>>> https://chromestatus.com/feature/5201014343073792
>>>>
>>>> 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+...@chromium.org.
>>>> To view this discussion on the web visit 
>>>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/0169dc69-72a5-46e4-b377-e682f8818a80n%40chromium.org
>>>>  
>>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/0169dc69-72a5-46e4-b377-e682f8818a80n%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+...@chromium.org.
>>>
>>> To view this discussion on the web visit 
>>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/7183ed6f-73e0-4858-a477-5469d764efc8n%40chromium.org
>>>  
>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/7183ed6f-73e0-4858-a477-5469d764efc8n%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+...@chromium.org.
>>
> To view this discussion on the web visit 
>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/f93cdcfd-9ed8-4695-ae03-4afdc5d93975n%40chromium.org
>>  
>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/f93cdcfd-9ed8-4695-ae03-4afdc5d93975n%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/c284e576-099b-48a8-b97b-534a65e0cd8cn%40chromium.org.

Reply via email to