LGTM2 Thanks for sending the PR. Please make sure it lands, but it's not a blocker for shipping IMO.
On Tuesday, April 22, 2025 at 11:56:27 AM UTC+2 Antonio Sartori wrote: > Makes sense. I created a PR here https://github.com/w3c/push-api/pull/400. > > On Tue, Apr 22, 2025 at 11:32 AM Domenic Denicola <dome...@chromium.org> > wrote: > >> Sure, those values are in the possible value space. But it'd be good to >> see some text that explicitly fires an event with them both set to null. >> Right now no spec text does so, and thus it wouldn't be spec-conformant to >> fire such an event. (Just like there's no spec text for firing a hashchange >> event with oldURL = newURL = "asdf", even though that's in the value space >> of USVString.) >> >> On Tue, Apr 22, 2025 at 6:24 PM Antonio Sartori < >> antoniosart...@chromium.org> wrote: >> >>> (However, the spec does seem to allow both oldSubscription and >>> newSubscription to be null, at least that is what I would read out of >>> https://w3c.github.io/push-api/#pushsubscriptionchangeeventinit-interface >>> ) >>> >>> On Tue, Apr 22, 2025 at 11:17 AM Antonio Sartori < >>> antoniosart...@google.com> wrote: >>> >>>> That is correct, the spec never explicitly fires a >>>> pushsubscriptionchange event with "empty oldSubscription and >>>> newSubscription". The spec mandates ("MUST") firing the event on a >>>> subscription refresh (which chrome never does). In the security and >>>> privacy >>>> considerations, it allows ("MAY") firing the event on a permission >>>> revocation (When a permission is revoked, the user agent MAY fire the >>>> "pushsubscriptionchange" event). >>>> >>>> I was reading the explanation of the event itself: >>>> >>>> "The pushsubscriptionchange event indicates a change in a push >>>> subscription that was triggered outside of the application's control, for >>>> example because it has been refreshed, revoked or lost." >>>> >>>> together with the fact that the permission change happens outside of >>>> the application's control, as a justification for triggering the event. >>>> But >>>> I agree that this is probably stretching the interpretation a bit. I will >>>> try to explore clarifying this in the spec. >>>> >>>> On Tue, Apr 22, 2025 at 11:07 AM Domenic Denicola <dome...@chromium.org> >>>> wrote: >>>> >>>>> >>>>> >>>>> On Thursday, April 17, 2025 at 5:44:29 PM UTC+9 Chromestatus wrote: >>>>> >>>>> Contact emails antoniosart...@chromium.org >>>>> >>>>> Explainer None >>>>> >>>>> Specification https://w3c.github.io/push-api/#the- >>>>> pushsubscriptionchange-event >>>>> >>>>> Summary >>>>> >>>>> Fire the pushsubscriptionchange event in service workers when an >>>>> origin for which a push subscription existed in the past, but which was >>>>> revoked because of a permission change (from granted to deny/default), is >>>>> re-granted notification permission. The event will be fired with an empty >>>>> oldSubscription and newSubscription. >>>>> >>>>> >>>>> I can't find any spec text that ever fires a pushsubscriptionchange >>>>> event with "empty oldSubscription and newSubscription". (Does that mean >>>>> null? Or is there a special concept of an empty `PushSubscription` >>>>> object?) >>>>> >>>>> Can you help explain me find where this behavior is specified? >>>>> >>>>> >>>>> >>>>> >>>>> Blink component Blink>PushAPI >>>>> <https://issues.chromium.org/issues?q=customfield1222907:%22Blink%3EPushAPI%22> >>>>> >>>>> >>>>> TAG review None >>>>> >>>>> TAG review status Not applicable >>>>> >>>>> Risks >>>>> >>>>> >>>>> Interoperability and Compatibility >>>>> >>>>> None >>>>> >>>>> >>>>> *Gecko*: Shipped/Shipping (https://bugzilla.mozilla.org/ >>>>> show_bug.cgi?id=1497429) Firefox seems to already implement a similar >>>>> behavior, see https://bugzilla.mozilla.org/show_bug.cgi?id=1497429 >>>>> >>>>> *WebKit*: No signal Seems shipped, but couldn't figure out the exact >>>>> details. See https://developer.mozilla.org/en-US/docs/Web/API/ >>>>> ServiceWorkerGlobalScope/pushsubscriptionchange_event >>>>> >>>>> *Web developers*: No signals Likely positive, see for example >>>>> https://issues.chromium.org/issues/40129474 >>>>> >>>>> *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 >>>>> >>>>> >>>>> Will this feature be supported on all six Blink platforms (Windows, >>>>> Mac, Linux, ChromeOS, Android, and Android WebView)? No >>>>> >>>>> Is this feature fully tested by web-platform-tests >>>>> <https://chromium.googlesource.com/chromium/src/+/main/docs/testing/web_platform_tests.md> >>>>> ? No >>>>> >>>>> Flag name on about://flags None >>>>> >>>>> Finch feature name PushSubscriptionChangeEventOnResubscribe >>>>> >>>>> Rollout plan Will ship enabled for all users >>>>> >>>>> Requires code in //chrome? False >>>>> >>>>> Tracking bug https://issues.chromium.org/issues/407523313 >>>>> >>>>> Launch bug https://launch.corp.google.com/launch/4390563 >>>>> >>>>> Estimated milestones Shipping on desktop 137 Shipping on Android 137 >>>>> >>>>> 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). >>>>> None >>>>> >>>>> Link to entry on the Chrome Platform Status https://chromestatus.com/ >>>>> feature/5147683423256576?gate=5097638464323584 >>>>> >>>>> Links to previous Intent discussions Intent to Prototype: >>>>> https://groups.google.com/a/chromium.org/d/msgid/blink- >>>>> dev/CAOzWxF6xvYb-0qkPaZbhNFuS86__DEg8curFPGRtuDak8x%3D31g% >>>>> 40mail.gmail.com >>>>> >>>>> >>>>> 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 visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/055b7d47-4e6a-46e2-8443-3f5aeac973dcn%40chromium.org.