Providing a little more context for the benefit of this API - the
complexity that editors (Google Docs, Adobe tools, MS Office, etc) have to
deal with for providing a good user experience is substantial and multiple
engineer years worth of work to get close to correct. They typically have
to create a hidden contenteditable element then trap + mutate all sorts of
inputs to correctly (across different OSes, user locales, user input
methods) to provide an experience inline with what the user expects - then
render all that to an entirely different surface (canvas, svg, parallel
dom, etc). Even with this amount of effort there are typically lots of
issues/bugs
<https://github.com/w3c/edit-context/blob/gh-pages/explainer.md#real-world-examples-of-text-input-issues-in-top-sites-and-frameworks>
due to this approach. This API reduces the complexity this style of editors
have to deal with substantially.
I personally hope we'll see more high quality editors from smaller teams as
a result of this API given for most web developers providing a good
experience to most users is an insurmountable task.

Ian

On Thu, Nov 9, 2023 at 8:31 AM Rick Byers <rby...@chromium.org> wrote:

> On Wed, Nov 8, 2023 at 5:56 PM Gregg Tavares <g...@chromium.org> wrote:
>
>> Changing the event order seems like something you'd be opting into since
>> this API has not shipped yet.
>>
>> Don't use the API, get the existing order, Do use the API, get the more
>> useful order.
>>
>
> Web compat is almost always more complicated than that. Many real websites
> are a collection of scripts from a variety of authors and often served by
> different origins (eg. think of RUM analytics providers). So it would be
> super weird and confusing if simply using a new API in one script caused
> DOM event order to change for all other scripts on the page (and what about
> 3p iframes?). I'd expect this to cause adoption-blocking issues for
> EditContext since anyone starting to use the API couldn't reason about how
> doing so might break unrelated scripts on the same page. More pragmatic, I
> think, would be a document policy a page can opt into which changes the
> event order, not coupled to any other API. That could potentially be a good
> thing to do independently.
>
> I'm skeptical this API actually fixes the real issues. The examples are
>> incomplete and therefore unconvincing (to me)
>>
>> Maybe I can find a way into the docs trial and test. If I find issues
>> will that change shipping vs not shipping? If it's going to ship regardless
>> of what I find then there's no reason for me to check.
>>
>
> Given that this feature is designed for major platforms like MS Office,
> Google Docs and Adobe tools, I think it's their feedback which I'd want to
> most rely on for a shipping decision. I certainly don't trust my own
> understanding of this API over that of experts working on products like
> that. Dan, do you have public OT feedback somewhere? The OT feedback link
> in the e-mail is just to the repo <https://github.com/w3c/edit-context/>.
> Or maybe we could take this off list and reach out to one of our partners
> to ask specifically how they feel about this concern? Regardless, we should
> be tracking the debate in detail on a github issue, and coming back to
> blink-dev with a summary when it's concluded.
>
>
>> On Thu, Nov 9, 2023 at 5:15 AM Daniel Bratell <bratel...@gmail.com>
>> wrote:
>>
>>> LGTM4 (yes, a bonus LGTM since I felt ninja'd by Mike and I think this
>>> will be a nice addition to the web platform)
>>>
>>> /Daniel
>>> On 2023-11-08 20:42, Mike Taylor wrote:
>>>
>>> LGTM3
>>> On 11/8/23 12:13 PM, Alex Russell wrote:
>>>
>>> +1 to the evidence from OT being persuasive.
>>>
>>> LGTM2
>>>
>>> On Wednesday, November 8, 2023 at 8:56:24 AM UTC-8 Rick Byers wrote:
>>>
>>>> It certainly sounds to me that there's additional work to be done here,
>>>> but I agree with Daniel that changing event order is not something we can
>>>> do lightly. Gregg, could you please file an issue
>>>> <https://github.com/w3c/edit-context/issues> on the spec so the
>>>> discussion can continue there?
>>>>
>>>> Given the positive feedback we have from major real-world deployments
>>>> in OT and the 3+ years of design work that's gone into this API via the
>>>> editing WG, I personally don't think this concern is sufficient to block
>>>> shipping at this stage. Editing is going to continue to be an area to work
>>>> on improving rationality and interop and shipping this API now seems like
>>>> the right pragmatic next step to me. Since fundamentally fixing this issue
>>>> is going to need breaking changes anyway, and EditContext is most likely to
>>>> be eagerly adopted just by a few large applications, I'm reasonably
>>>> confident that we can continue to improve over time as driven by real-world
>>>> deployment experience. LGTM1
>>>>
>>>> Rick
>>>>
>>>> On Wed, Nov 1, 2023 at 2:55 PM 'Daniel Clark' via blink-dev <
>>>> blink-dev@chromium.org> wrote:
>>>>
>>>>> To the extent that firing keydown before compositionstart is a problem
>>>>> for apps, that’s an issue that equally affects contenteditable. Changing
>>>>> the order may be a good improvement, but it will be a breaking change for
>>>>> the web that should be carefully considered and hopefully done in tandem
>>>>> with Firefox and Webkit so that browsers can arrive at matching behavior. 
>>>>> I
>>>>> think tying EditContext to this is not necessary, as EditContext aims to
>>>>> solve a variety of problems around receiving text input aside from how
>>>>> keydown specifically is handled. Since EditContext does not make any
>>>>> changes around the order of keydown relative to other events, shipping
>>>>> EditContext should not add any additional complications to changing that
>>>>> event order if the Editing Working group decides to go that route.
>>>>>
>>>>>
>>>>>
>>>>> The API is supported on Mac as well. If the sample you tried didn’t
>>>>> work it may be because we failed to update it in response to breaking
>>>>> changes. This sample is up-to-date and should serve to show simple text
>>>>> input and composition: https://magic-organic-yam.glitch.me/. Note
>>>>> that a lot of basic editing functionality isn’t implemented here, and the
>>>>> text formatting for compositions is with highlights rather than underlines
>>>>> -- this was built for testing the API, not real-world editing.
>>>>>
>>>>>
>>>>>
>>>>> As part of the Origin Trial, developers at Google Docs and Adobe
>>>>> included Mac in their testing and reported several Mac-specific issues 
>>>>> that
>>>>> we’ve since fixed. If you’d like to try with the Docs implementation, let
>>>>> me know and I can ask about getting you opted in to that rollout.
>>>>>
>>>>>
>>>>>
>>>>> For reconversions, when a page is using EditContext the same UI will
>>>>> still be available to the user via the menu or hotkeys. The page keeps the
>>>>> platform informed about which text is selected by the user by calling
>>>>> EditContext.updateSelection()
>>>>> <https://w3c.github.io/edit-context/#dom-editcontext-updateselection>.
>>>>> When the user triggers a reconversion, Blink will send the page another
>>>>> TextUpdateEvent
>>>>> <https://w3c.github.io/edit-context/#dom-textupdateevent> indicating
>>>>> to it that it should change the text in the specified range to the new
>>>>> value.
>>>>>
>>>>>
>>>>>
>>>>> -- Dan
>>>>>
>>>>>
>>>>>
>>>>> *From:* Gregg Tavares <g...@chromium.org>
>>>>> *Sent:* Tuesday, October 31, 2023 5:19 PM
>>>>> *To:* Daniel Clark <dan...@microsoft.com>
>>>>> *Cc:* Gregg Tavares <g...@chromium.org>; blink-dev <
>>>>> blink-dev@chromium.org>; Alex Keng <shih...@microsoft.com>; Anupam
>>>>> Snigdha <sni...@microsoft.com>; ko...@chromium.org
>>>>> *Subject:* Re: [blink-dev] Intent to Ship: EditContext API
>>>>>
>>>>>
>>>>>
>>>>> You don't often get email from g...@chromium.org. Learn why this is
>>>>> important <https://aka.ms/LearnAboutSenderIdentification>
>>>>>
>>>>> I don't think the keydown issue should be ignored until after shipping
>>>>> this API. I think it's essential for this API to actually function.
>>>>>
>>>>>
>>>>>
>>>>> Consider an app that responds to Control-Shift-J for say "jump to
>>>>> definition".
>>>>>
>>>>>
>>>>>
>>>>> keydown = key = 'Control'
>>>>>
>>>>> keydown = key = 'Shift' (CtrlKey = true)
>>>>>
>>>>> keydown = key = 'K' (CtrlKey = true, Shift = true)  And the app would
>>>>> trigger it's jump-to-definition command  But what should have happened is
>>>>> the IME switched to Japanese mode (on Mac) and nothing happened in the 
>>>>> app.
>>>>>
>>>>>
>>>>>
>>>>> It seems like this API is supposed to solve these issues but if
>>>>> keydown happens first then it seems like it fails at it's actual goal.
>>>>>
>>>>>
>>>>>
>>>>> The same issue but for different keys exists because of the difference
>>>>> in Firefox vs Chrome where in Chrome the app will mistakenly respond to
>>>>> keys it shouldn't and in Firefox it won't since Firefox hides those keys 
>>>>> as
>>>>> 'Process'.
>>>>>
>>>>>
>>>>>
>>>>> Other questions:
>>>>>
>>>>>
>>>>>
>>>>> (*) Are we sure this API matches all platforms? It appears to be only
>>>>> implemented on Windows so far. The concern being, without implementing on
>>>>> other platforms before shipping, we may run into design issues that 
>>>>> require
>>>>> changes to the API. I'm not remotely an expert in IME APIs but I know in 
>>>>> my
>>>>> own domain, GPUs, if we didn't actually implement across APIs we'd
>>>>> have that issue.
>>>>>
>>>>>
>>>>>
>>>>> I wanted to test some things but I don't currently have access to a
>>>>> windows device and the sample didn't seem to work on my Mac with the
>>>>> EditContext API enabled.
>>>>>
>>>>>
>>>>>
>>>>> (*) How is recoversion handled in the canvas example? In a normal text
>>>>> editing area the user can select a portion of the text and pick 
>>>>> "reconvert"
>>>>> either from menus or via hotkeys
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> On Wed, Nov 1, 2023 at 8:09 AM Daniel Clark <dan...@microsoft.com>
>>>>> wrote:
>>>>>
>>>>> EditContext is not meant to be an interchangeable replacement for
>>>>> <input type=”text”>, contenteditable, etc, and most sites that want to
>>>>> receive simple text input will want to continue using the existing set of
>>>>> editing features.
>>>>>
>>>>>
>>>>>
>>>>> The target user of EditContext is one that has already reimplemented a
>>>>> lot of the editing stack, such that the browser’s built-in editing
>>>>> functionality is more of a hindrance than a help – the typical case here 
>>>>> is
>>>>> something like Google Docs (where the entire editor view is reimplemented
>>>>> in a <canvas>). EditContext replaces hacks that sites like these often 
>>>>> have
>>>>> to resort to such as hidden contenteditable elements that are floated
>>>>> around the page to position the IME window.
>>>>>
>>>>>
>>>>>
>>>>> A site that just wants to receive text input without building out
>>>>> their own fully-featured editing experience can and should continue using
>>>>> the existing “batteries-included” tools like <textarea> or 
>>>>> contenteditable.
>>>>>
>>>>>
>>>>>
>>>>> The keydown event coming before compositionstart seems to be
>>>>> consistent with the existing contenteditable behavior in both Chromium and
>>>>> Firefox.  While EditContext changes how some editing-related events are
>>>>> fired, some of the existing orderings like this were left in place for
>>>>> consistency’s sake when there wasn’t a strong reason to change them.
>>>>>
>>>>>
>>>>>
>>>>> The keydownevent.key interop difference is a good one to note, but I
>>>>> think it should be resolved orthogonally to EditContext. Since that
>>>>> behavior difference is present for both EditContext and contenteditable,
>>>>> the ideal outcome would be to bring this behavior in line across browsers
>>>>> for all editable fields.  It looks like there are some stale issues in the
>>>>> EditingWG in that area, e.g. this one
>>>>> <https://github.com/w3c/uievents/issues/75> from before Gecko started
>>>>> firing keydown/keyup events during composition; maybe this should be taken
>>>>> back up by the WG to try to drive further interoperability in the area. If
>>>>> we end up making a change there it would apply both to EditContext and to
>>>>> other types of editable fields.
>>>>>
>>>>>
>>>>>
>>>>> -- Dan
>>>>>
>>>>>
>>>>>
>>>>> *From:* Gregg Tavares <g...@chromium.org>
>>>>> *Sent:* Monday, October 30, 2023 10:19 PM
>>>>> *To:* Daniel Clark <dan...@microsoft.com>
>>>>> *Cc:* blink-dev <blink-dev@chromium.org>; Alex Keng <
>>>>> shih...@microsoft.com>; Anupam Snigdha <sni...@microsoft.com>;
>>>>> ko...@chromium.org
>>>>> *Subject:* Re: [blink-dev] Intent to Ship: EditContext API
>>>>>
>>>>>
>>>>>
>>>>> You don't often get email from g...@chromium.org. Learn why this is
>>>>> important <https://aka.ms/LearnAboutSenderIdentification>
>>>>>
>>>>> Not a decider but one that sees the IME on many sites that try to roll
>>>>> their own text input.
>>>>>
>>>>>
>>>>>
>>>>> This sounds like a "if you do all of these 30 things perfectly, then
>>>>> maybe your site will work with most IME issues but you won't know unless
>>>>> you get someone experienced with IME users to test for you" solution
>>>>>
>>>>>
>>>>>
>>>>> Vs. some other solution which is "do nothing and it just works".  The
>>>>> current "do nothing and it just works" is, use <input type="text"> or
>>>>> <textarea> or contenteditable.
>>>>>
>>>>>
>>>>>
>>>>> Is this API just giving developers lots of rope to hang themselves?
>>>>>
>>>>>
>>>>>
>>>>> Also, how does it align with other browsers? For example the explainer
>>>>> shows a sequence of events
>>>>>
>>>>>
>>>>>
>>>>> *Event*
>>>>>
>>>>> *EventTarget*
>>>>>
>>>>> *key code*
>>>>>
>>>>> *event.text*
>>>>>
>>>>> keydown
>>>>>
>>>>> focused element
>>>>>
>>>>> 'S'
>>>>>
>>>>> compositionstart
>>>>>
>>>>> active EditContext
>>>>>
>>>>>
>>>>> textupdate
>>>>>
>>>>> active EditContext
>>>>>
>>>>> 'S'
>>>>>
>>>>> textformatupdate
>>>>>
>>>>> active EditContext
>>>>>
>>>>>
>>>>> keyup
>>>>>
>>>>> focused element
>>>>>
>>>>> 'S'
>>>>>
>>>>> keydown
>>>>>
>>>>> focused element
>>>>>
>>>>> 'U'
>>>>>
>>>>> textupdate
>>>>>
>>>>> active EditContext
>>>>>
>>>>> 'す'
>>>>>
>>>>> textformatupdate
>>>>>
>>>>> active EditContext
>>>>>
>>>>>
>>>>> keyup
>>>>>
>>>>> focused element
>>>>>
>>>>> 'U'
>>>>>
>>>>> keydown
>>>>>
>>>>> focused element
>>>>>
>>>>> 'Space'
>>>>>
>>>>> textupdate
>>>>>
>>>>> active EditContext
>>>>>
>>>>> '巣'
>>>>>
>>>>> textformatupdate
>>>>>
>>>>> active EditContext
>>>>>
>>>>>
>>>>> compositionend
>>>>>
>>>>> active EditContext
>>>>>
>>>>>
>>>>> keyup
>>>>>
>>>>> focused element
>>>>>
>>>>> 'Space'
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> That seems non-intuitive to me. I get a keydown first, at which point
>>>>> my app reacts when it wasn't supposed to as the key was meant for the IME.
>>>>>
>>>>>
>>>>>
>>>>> Also, this table doesn't seem to match Firefox for example, pressing
>>>>> 's' when in Japanese input mode pops up the IME and in firefox it produces
>>>>> event.key = 'Process', not event.key = 's' which at least makes more sense
>>>>> since the input should be going to the IME, not the page.
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> On Tue, Oct 31, 2023 at 2:52 AM 'Daniel Clark' via blink-dev <
>>>>> blink-dev@chromium.org> wrote:
>>>>>
>>>>> Contact emails
>>>>>
>>>>> dan...@microsoft.com, sni...@microsoft.com, shih...@microsoft.com
>>>>>
>>>>> Explainer
>>>>>
>>>>> https://github.com/w3c/edit-context/blob/gh-pages/explainer.md
>>>>>
>>>>> Specification
>>>>>
>>>>> https://w3c.github.io/edit-context
>>>>>
>>>>> Design docs
>>>>>
>>>>> https://github.com/w3c/edit-context/blob/gh-pages/dev-design.md
>>>>>
>>>>> Summary
>>>>>
>>>>> The EditContext API simplifies the process of integrating a web app
>>>>> with advanced text input methods such as IME Compositions and speech
>>>>> recognition, and unlocks new capabilities for web-based editors.
>>>>>
>>>>>
>>>>>
>>>>> Blink component
>>>>>
>>>>> Blink>Editing
>>>>> <https://bugs.chromium.org/p/chromium/issues/list?q=component:Blink%3EEditing>
>>>>>
>>>>> Search tags
>>>>>
>>>>> editing <https://chromestatus.com/features#tags:editing>,
>>>>> contenteditable
>>>>> <https://chromestatus.com/features#tags:contenteditable>, input
>>>>> <https://chromestatus.com/features#tags:input>, rawinput
>>>>> <https://chromestatus.com/features#tags:rawinput>, ime
>>>>> <https://chromestatus.com/features#tags:ime>
>>>>>
>>>>> TAG review
>>>>>
>>>>> Completed (Resolution: satisifed) at
>>>>> https://github.com/w3ctag/design-reviews/issues/416
>>>>>
>>>>> TAG review status
>>>>>
>>>>> Issues addressed
>>>>>
>>>>> Chromium Trial Name
>>>>>
>>>>> EditContext
>>>>>
>>>>> Link to origin trial feedback summary
>>>>>
>>>>> https://github.com/w3c/edit-context/
>>>>>
>>>>> Origin Trial documentation link
>>>>>
>>>>> https://github.com/w3c/edit-context/blob/gh-pages/explainer.md
>>>>>
>>>>> In the Origin Trial the Google Docs team used EditContext to receive
>>>>> IME input and position the IME window for Docs, replacing the current
>>>>> approach of manually positioning a hidden contenteditable element over the
>>>>> document when composing text. The new EditContext approach is more
>>>>> performant and supports a wider range of IME interactions.
>>>>>
>>>>>
>>>>>
>>>>> We received similar feedback from Adobe, who are also using
>>>>> EditContext to replace a hidden text input element for triggering the IME.
>>>>>
>>>>>
>>>>>
>>>>> Risks
>>>>>
>>>>> Interoperability and Compatibility
>>>>>
>>>>> There are no known interop or compat risks.
>>>>>
>>>>>
>>>>>
>>>>> *Gecko*: Under consideration (
>>>>> https://github.com/mozilla/standards-positions/issues/199)
>>>>>
>>>>> *WebKit*: No signal (
>>>>> https://github.com/WebKit/standards-positions/issues/243)
>>>>>
>>>>> *Web developers*: Strongly positive Positive feedback from Word
>>>>> online, Adobe and Figma, Google Docs
>>>>>
>>>>> *Other signals*:
>>>>>
>>>>> Ergonomics
>>>>>
>>>>> None.
>>>>>
>>>>>
>>>>>
>>>>> Activation
>>>>>
>>>>> Developers interested in this feature will typically have their own
>>>>> polyfill for text input using hidden textarea or contenteditable elements.
>>>>> Feature detecting and using new API to avoid side effects of previous
>>>>> approaches is intended to be easily adoptable.
>>>>>
>>>>>
>>>>>
>>>>> Security
>>>>>
>>>>> No particular security risks. See
>>>>> https://github.com/w3c/edit-context/blob/gh-pages/security-privacy.md.
>>>>>
>>>>>
>>>>>
>>>>> 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
>>>>>
>>>>> Existing DevTools features should be sufficient for debugging
>>>>> EditContext.
>>>>>
>>>>>
>>>>>
>>>>> Will this feature be supported on all six Blink platforms (Windows,
>>>>> Mac, Linux, Chrome OS, Android, and Android WebView)?
>>>>>
>>>>> Yes. This is a core web platform feature that is not limited to any
>>>>> particular underlying platform.
>>>>>
>>>>>
>>>>>
>>>>> Is this feature fully tested by *web-platform-tests*
>>>>> <https://chromium.googlesource.com/chromium/src/+/main/docs/testing/web_platform_tests.md>
>>>>> ?
>>>>>
>>>>> Yes.
>>>>>
>>>>> Tests are available at
>>>>> https://wpt.fyi/results/editing/edit-context?label=experimental&label=master&aligned
>>>>> Note that some composition scenarios are not yet testable in WPT due to a
>>>>> dependency on content_shell-only test APIs. Work is underway to add
>>>>> functionality for mocking IME input in WPTs such that these tests can be
>>>>> moved to WPT.
>>>>>
>>>>>
>>>>>
>>>>> Flag name on chrome://flags
>>>>>
>>>>> edit-context
>>>>>
>>>>> Finch feature name
>>>>>
>>>>> EditContext
>>>>>
>>>>> Requires code in //chrome?
>>>>>
>>>>> False
>>>>>
>>>>> Tracking bug
>>>>>
>>>>> https://bugs.chromium.org/p/chromium/issues/detail?id=999184
>>>>>
>>>>> Measurement
>>>>>
>>>>> The UseCounter WebFeature::kEditContext tracks instantiation of
>>>>> EditContext.
>>>>>
>>>>> Availability expectation
>>>>>
>>>>> We expect other browser vendors to be interested in implementing this
>>>>> feature, though we cannot comment on specific timelines.
>>>>>
>>>>> Adoption expectation
>>>>>
>>>>> Feature will be used by Google Docs upon launch in Chrome.
>>>>>
>>>>> Adoption plan
>>>>>
>>>>> We are already working with the Docs team as a partner in the
>>>>> feature's Origin Trial, where they have implemented composition using
>>>>> EditContext.
>>>>>
>>>>> Non-OSS dependencies
>>>>>
>>>>> *Does the feature depend on any code or APIs outside the Chromium open
>>>>> source repository and its open-source dependencies to function?*
>>>>>
>>>>> None.
>>>>>
>>>>> Estimated milestones
>>>>>
>>>>> Shipping on desktop
>>>>>
>>>>> 121
>>>>>
>>>>> OriginTrial desktop last
>>>>>
>>>>> 120
>>>>>
>>>>> OriginTrial desktop first
>>>>>
>>>>> 116
>>>>>
>>>>>
>>>>>
>>>>> OriginTrial Android last
>>>>>
>>>>> 120
>>>>>
>>>>> OriginTrial Android first
>>>>>
>>>>> 116
>>>>>
>>>>>
>>>>>
>>>>> OriginTrial webView last
>>>>>
>>>>> 120
>>>>>
>>>>> OriginTrial webView first
>>>>>
>>>>> 116
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> Anticipated spec changes
>>>>>
>>>>> *Open questions about a feature may be a source of future web compat
>>>>> or interop issues. Please list open issues (e.g. links to known github
>>>>> issues in the project for the feature specification) whose resolution may
>>>>> introduce web compat/interop risk (e.g., changing to naming or structure 
>>>>> of
>>>>> the API in a non-backward-compatible way).*
>>>>>
>>>>> Open spec issues can be found here:
>>>>> https://github.com/w3c/edit-context/issues We expect these issues to
>>>>> be resolved in a forward-compatible way and/or to only affect rare
>>>>> corner-cases. Many of these discuss potential additions to the feature 
>>>>> that
>>>>> will be considered based on ongoing developer feedback as EditContext is
>>>>> adopted more widely.
>>>>>
>>>>> Link to entry on the Chrome Platform Status
>>>>>
>>>>> https://chromestatus.com/feature/5041440373604352
>>>>>
>>>>> Links to previous Intent discussions
>>>>>
>>>>> Intent to Implement:
>>>>> https://groups.google.com/u/1/a/chromium.org/g/blink-dev/c/OHqvPx9mFww/m/1za_qdEHDwAJ
>>>>>
>>>>> Intent to Experiment:
>>>>> https://groups.google.com/u/1/a/chromium.org/g/blink-dev/c/QZQrESwcK3o/m/k3pfYBcRBAAJ
>>>>>
>>>>>
>>>>> --
>>>>> 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/MW4PR00MB1654118011BA087BA5058967C5A1A%40MW4PR00MB1654.namprd00.prod.outlook.com
>>>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/MW4PR00MB1654118011BA087BA5058967C5A1A%40MW4PR00MB1654.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/PH7PR00MB1637386167B3A830D5D06D0AC5A7A%40PH7PR00MB1637.namprd00.prod.outlook.com
>>>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/PH7PR00MB1637386167B3A830D5D06D0AC5A7A%40PH7PR00MB1637.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/6707471d-651b-482d-9047-a5fb0f493680n%40chromium.org
>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/6707471d-651b-482d-9047-a5fb0f493680n%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/4c6eed01-7341-41d9-87ee-fae9876a4752%40chromium.org
>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/4c6eed01-7341-41d9-87ee-fae9876a4752%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/CAFUtAY_pZEbTFxFCSMO_zUJ8%2B3mrGT5zH%2B-wg1kNF-VjBS5BHA%40mail.gmail.com
> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAFUtAY_pZEbTFxFCSMO_zUJ8%2B3mrGT5zH%2B-wg1kNF-VjBS5BHA%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/CAJL3UpSNCMkMMs6Sbnq9KP-v4aa0xONAvZ-%2BTzX1PYzTqpgZeQ%40mail.gmail.com.

Reply via email to