On 4/17/26 22:37, Dave Townsend wrote:
Why should we do it though?

In general the event dispatch may not be the best example, but any sort of "derived" object should generally be created with the relevant global of the parent object.

Anyways, I looked and there aren't many uses of non-Node ownerGlobal usage, I think longer term we should try to unexpose that from JS.

But anyways, given the discussion here, for now I filed:

* Bug 2033242 to rename ownerDocGlobal to documentGlobal, and use it in relevant places. * Bug 2033243 to rename ownerGlobal to relevantGlobal (both in C++ and JS). * Bug 2033191 to remove some of the non-node ownerGlobal usage I've found (but more to come).

Hopefully that improves a bit the situation? I expect most current usage of ownerGlobal to go to documentGlobal, long term. We might want to even lint for .relevantGlobal usage (requiring a comment for why is it the right thing to do).

But anyways I don't want to snowball it, I think I'd like to get at least bug 2033242 in this cycle since I'm pretty sure it will fix some edge cases with child actors.

Thanks,

 -- Emilio

     >>
     >>     I do understand that for the front-end, having a convenient way
     >>     of getting to the global that the node is in (ownerDocGlobal,
     >>     currently)
     >>     is super handy and what 95+% of the code would want, tho...
     >>
     >>     If the non-Node EventTarget.ownerGlobal usage for bindings
    is minimal,
     >>     wdyt about renaming it from the bindings to something
    different / more
     >>     obviously not-what-you-usually want (or removing it even,
    perhaps)?
     >>
     >>
     >> If keeping the existing behaviour of `ownerGlobal` isn't an
    option then I think we should switch to better named alternatives,
    perhaps
     >> `currentGlobal` and `eventGlobal`.

    I couldn't guess what eventGlobal might mean.


This is me not really understanding why we need to use the original global for creating events.

     >
     > I think currentGlobal is a bit unclear on what it is. And the
    HTML spec actually defines that term which would make it confusing
    for platform
     > engineers IMHO.
     >
     > ownerDocGlobal is pretty clear if it wasn't for ownerGlobal existing.
     >
     > WDYT of:
     >
     >   * For now, I land the tweaks in [1].
     >   * I investigate removing ownerGlobal from JS. Basically, push
    to try with .ownerGlobal crashing for stuff that isn't a node and
    audit the results.
     >   * Based on that we can decide whether to remove stuff or rename
    the two accessors.
     >

    I assume we do need to have ownerGlobal on EventTarget, possibly
    renamed to relevantGlobal. But perhaps I'm wrong :)


     > I'd like Olli's input on the names, as ideally we make C++ match
    those names too. The HTML spec has "relevant global" for our current
    ownerGlobal[2].
     > For the ownerDocGlobal that'd be something like "node document's
    relevant global" or so.
     >
     > Would something like relevantGlobal / documentGlobal work for you?
     >



    I do like relevantGlobal and documentGlobal.
    Not sure they will help too much, since the setup just is confusing
    when there are multiple globals around. We can't do much about that,
    since that is
    what the web relies on.


    -Olli



     > Thanks,
     >
     >   -- Emilio
     >
     > [1]: https://phabricator.services.mozilla.com/D294805 <https://
    phabricator.services.mozilla.com/D294805>
     > [2]: https://html.spec.whatwg.org/#relevant <https://
    html.spec.whatwg.org/#relevant>
     >
     >>
     >>
     >>     Thanks,
     >>
     >>        --Emilio
     >>
     >>     On 4/17/26 2:09 PM, Dave Townsend wrote:
     >>      > Hi Emilio. I'm concerned that this change in behaviour
    will cause
     >>     subtle
     >>      > bugs in existing or future code we write. In my mind and
    I'm sure
     >>     in the
     >>      > minds of many developers, `ownerGlobal` means the window the
     >>     element is
     >>      > in and that will be a hard perception to shift. Because
    it will
     >>     now mean
     >>      > something different only in rare cases we are likely to
    use the
     >>     wrong
     >>      > thing without noticing. Additionally the naming of
    `ownerGlobal` and
     >>      > `ownerDocGlobal` makes it very unclear that they mean
    different
     >>     things.
     >>      >
     >>      > Since `ownerGlobal` is not part of the web spec can we
    keep the same
     >>      > behaviour for `ownerGlobal` and introduce a new property
    for the
     >>     node's
     >>      > original window?
     >>      >
     >>      > On Thu, 16 Apr 2026 at 23:22, 'Emilio Cobos Álvarez' via
    firefox-
     >>      > [email protected] <mailto:[email protected]>
    <mailto:[email protected] <mailto:[email protected]>> <mailto:firefox-
    <mailto:firefox->
     >> [email protected] <mailto:[email protected]> <mailto:firefox-
    [email protected] <mailto:[email protected]>>> <firefox-
     >>      > [email protected] <mailto:[email protected]>
    <mailto:[email protected] <mailto:[email protected]>> <mailto:firefox-
    <mailto:firefox->
     >> [email protected] <mailto:[email protected]> <mailto:firefox-
    [email protected] <mailto:[email protected]>>>> wrote:
     >>      >
     >>      >     Hey,
     >>      >
     >>      >     Once I get bug 1470017 <https://bugzil.la/1470017
    <https://bugzil.la/1470017> <https://
     >> bugzil.la/1470017 <http://bugzil.la/1470017>>> to stick, the
     >>      >     `EventTarget.ownerGlobal` property on nodes will
    change behavior
     >>      >     slightly.
     >>      >
     >>      >     This will allow fixing long-standing web components
    issues
     >>      >     (prototypes getting lost on adopt) and some other subtler
     >>     webcompat
     >>      >     issues, like bug 2022763 <https://bugzil.la/2022763
    <https://bugzil.la/2022763> <https://
     >> bugzil.la/2022763 <http://bugzil.la/2022763>>>.
     >>      >
     >>      >     In most cases it should be fine to keep using it in the
     >>     front-end,
     >>      >     but there are two subtle behavior changes that might need
     >>     code to be
     >>      >     adjusted:
     >>      >
     >>      >       * If you're dealing with nodes that might have been
    adopted,
     >>      >         `ownerGlobal` might point to the original window
    of the node,
     >>      >         not the one that's currently in.
     >>      >       * .ownerGlobal might also now return non-null a bit
    more often
     >>      >         (after the docshell is gone).
     >>      >
     >>      >     If you need the old behavior, you can use the new
     >>      >     `Node.ownerDocGlobal` property. I don't expect much
    fallout,
     >>     and I
     >>      >     want to proactively change some more code to use
    `ownerDocGlobal`
     >>      >     (e.g. child actors almost always want to look at the
    window
     >>     the node
     >>      >     is in), but I thought it might be worth a PSA, reach
    out if
     >>     you see
     >>      >     issues that might be caused by it on the chrome.
     >>      >
     >>      >     Let me know if there are any questions.
     >>      >
     >>      >     Thanks,
     >>      >       -- Emilio
     >>      >
     >>      >     --
     >>      >     You received this message because you are subscribed
    to the
     >>     Google
     >>      >     Groups "[email protected] <mailto:firefox-
    [email protected]> <mailto:firefox- <mailto:firefox->
     >> [email protected] <mailto:[email protected]>> <mailto:firefox-
    [email protected] <mailto:[email protected]> <mailto:firefox-
    <mailto:firefox->
     >> [email protected] <mailto:[email protected]>>>" group.
     >>      >     To unsubscribe from this group and stop receiving
    emails from it,
     >>      >     send an email to [email protected]
    <mailto:firefox-dev%[email protected]>
     >>     <mailto:firefox-dev%[email protected]
    <mailto:firefox-dev%[email protected]>>
     >>      >     <mailto:[email protected]
    <mailto:firefox-dev%[email protected]> <mailto:firefox-
    <mailto:firefox->
     >> dev%[email protected]
    <mailto:dev%[email protected]>>>.
     >>      >     To view this discussion visit https://
    groups.google.com/a/ <https://groups.google.com/a/>
     >>     <https://groups.google.com/a/ <https://groups.google.com/a/>>
     >>      > mozilla.org/d/msgid/firefox-dev/CAFhp-qcR_%3Dc- <http://
    mozilla.org/d/msgid/firefox-dev/CAFhp-qcR_%3Dc-> <http://
     >> mozilla.org/d/msgid/firefox-dev/CAFhp-qcR_%3Dc- <http://
    mozilla.org/d/msgid/firefox-dev/CAFhp-qcR_%3Dc->>
>>      >  QMRqFPYVyK1v3p67ViNaeLRr1emN%3DaXJRs7jBg%40mail.gmail.com
    <http://40mail.gmail.com>
     >>     <http://40mail.gmail.com <http://40mail.gmail.com>> <https://
     >>      > groups.google.com/a/mozilla.org/d/msgid/firefox-dev/
    CAFhp- <http://groups.google.com/a/mozilla.org/d/msgid/firefox-dev/
    CAFhp->
     >>     qcR_%3Dc- <http://groups.google.com/a/mozilla.org/d/msgid/
    firefox- <http://groups.google.com/a/mozilla.org/d/msgid/firefox->
     >>     dev/CAFhp-qcR_%3Dc->
>>      >  QMRqFPYVyK1v3p67ViNaeLRr1emN%3DaXJRs7jBg%40mail.gmail.com
    <http://40mail.gmail.com>
     >>     <http://40mail.gmail.com <http://40mail.gmail.com>>?
     >>      >     utm_medium=email&utm_source=footer>.
     >>      >
     >>
     >



--
You received this message because you are subscribed to the Google Groups 
"[email protected]" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion visit 
https://groups.google.com/a/mozilla.org/d/msgid/dev-platform/98318fe6-76b8-4e91-a985-b387b58f34a9%40mozilla.com.

Reply via email to