Also, can you tick the review boxes in your Chrome status entry to kick off security, privacy and other reviews?
On Wed, Nov 29, 2023 at 6:22 AM Yoav Weiss <yoavwe...@chromium.org> wrote: > I ran into a Chromium-internal case where having a `close` signal would've > helped me reduce complexity significantly. So I'm very excited about this > work. > > I also believe > <https://bugs.chromium.org/p/chromium/issues/detail?id=1487835> there's > an equivalent mechanism in Electron. Might be worthwhile to get those folks > involved and see if there are any learnings to be had. > > On Tue, Nov 28, 2023 at 9:34 PM Torne (Richard Coles) <to...@chromium.org> > wrote: > >> Android WebView exposes the ability to create and use MessagePorts to the >> host app through a Java API, and currently one of the limitations of this >> API is the lack of a signal about the channel being closed, which in some >> cases can lead to apps holding on to Java objects longer than intended. >> >> So, I'm very happy to see this proposed for the web API side, as this >> should hopefully also enable us to support the same thing in WebView's Java >> API. +Peter Birk Pakkenberg <pb...@google.com> has been tackling some >> issues here recently. >> >> On Tue, 28 Nov 2023 at 12:31, Nonoka Muraki <murakinon...@chromium.org> >> wrote: >> >>> Contact emails >>> >>> murakinon...@chromium.org, m...@chromium.org, rak...@chromium.org >>> >>> Explainer >>> >>> https://github.com/fergald/explainer-messageport-close >>> <https://github.com/fergald/explainer-messageport-close#exposing-that-cross-origin-navigation-has-occurred> >>> >>> Specification >>> >>> https://github.com/whatwg/html/pull/9933 >>> >>> Design docs >>> >>> >>> https://docs.google.com/document/d/1lXZU2Pk2ycitqj8aL9kxT2aauwXqpA0vJDUalkXA29Y >>> >>> Summary >>> >>> Notifies one of the MessagePorts that the other port has been >>> disentangled (i.e., close() is called, an owning document is destroyed, or >>> the port is garbage collected). >>> >>> Blink component >>> >>> Blink >>> <https://bugs.chromium.org/p/chromium/issues/list?q=component:Blink> >>> >>> Motivation >>> >>> Channel Messaging API enables two separate scripts running in different >>> browsing contexts to communicate directly. Once MessageChannel is created, >>> we can access two entangled MessagePorts (MessageChannel.port1 and >>> MessageChannel.port2), transfer port2 to the other browsing context, >>> allowing these two scripts to post and receive messages. >>> >>> The problem with this API is that there is currently no timely and >>> reliable way to detect when a MessagePort becomes disentangled. This makes >>> it difficult to release resources associated with ports. Some users have >>> used the unload event to detect disconnection, but it is unreliable >>> especially on mobile. Therefore, the approach available now is to hold a >>> MessagePort in WeakRef and periodically check if this port has been garbage >>> collected by using deref() or to make use of the pagehide event. However, >>> this event is also not an effective solution. The reasons are as follows: >>> >>> 1) It doesn't work when the document crashes. >>> >>> 2) The port must cooperate in signaling the port is going to be >>> disentangled.(i.e., the port must post the message which is "it is going to >>> be closed" to the entangled port.) >>> >>> 3) It fires even if the page is not being destroyed and just enters >>> BFCache. >>> >>> Adding a close event helps to detect timely and reliably that >>> MessagePort is disentangled and make it easier to release resources >>> associated with ports. >>> >>> Initial public proposal >>> >>> https://github.com/whatwg/html/issues/1766#issuecomment-1708027883 >>> >>> Search tags >>> >>> close <https://chromestatus.com/features#tags:close>, onclose >>> <https://chromestatus.com/features#tags:onclose> >>> >>> TAG review >>> >>> Not needed because This is a small feature where we just dispatch a new >>> event. >>> >> > Unfortunately that's not a criteria for skipping a TAG review. Can you > file one? > > >> >>> Risks >>> >>> Interoperability and Compatibility >>> >>> None >>> >>> >>> Gecko: Positive ( >>> https://github.com/mozilla/standards-positions/issues/914) >>> >> > There are definitely positive signals on that thread, but it's not yet > labeled as "positive" AFAICT. > > >> Mozilla people are already involved in the initial Github issue >>> <https://github.com/whatwg/html/issues/1766>. >>> >>> WebKit: No response ( >>> https://github.com/WebKit/standards-positions/issues/271) >>> >>> WebKit people are already involved in the initial Github issue >>> <https://github.com/whatwg/html/issues/1766>. >>> >>> Web developers: Positive (https://github.com/whatwg/html/issues/1766) >>> >>> 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. >>> >>> https://chromium-review.googlesource.com/c/chromium/src/+/5003089 >>> >>> Flag name on chrome://flags >>> >>> None >>> >>> Finch feature name >>> >>> None >>> >>> Non-finch justification >>> >>> This is a small feature (just dispatching a new event) that doesn’t need >>> experimentation. >>> >>> Requires code in //chrome? >>> >>> False >>> >>> Tracking bug >>> >>> https://bugs.chromium.org/p/chromium/issues/detail?id=1495616 >>> >>> Estimated milestones >>> >>> No milestones specified >>> >>> >>> Link to entry on the Chrome Platform Status >>> >>> https://chromestatus.com/feature/5086799659794432 >>> >>> 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+unsubscr...@chromium.org. >>> To view this discussion on the web visit >>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAA66OT2mWU9WJnkVzD2gm_%2Bk%2Bewag5Lhq_K39Vo9WGdtGW79cQ%40mail.gmail.com >>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAA66OT2mWU9WJnkVzD2gm_%2Bk%2Bewag5Lhq_K39Vo9WGdtGW79cQ%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/CAEV-rjcZL5YnizhWf0xA%3DBaSt4EmY32p1tjhYG%3DfEOP1B-Kk%2BQ%40mail.gmail.com >> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAEV-rjcZL5YnizhWf0xA%3DBaSt4EmY32p1tjhYG%3DfEOP1B-Kk%2BQ%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/CAL5BFfXrMiJSFke2%3DikGSOJAkAVLQhdXWTmUmPMdMHbg4NH5iw%40mail.gmail.com.