Re: [whatwg/dom] Change add/remove event listener behavior for service workers (#653)

annevk commented on this pull request.

I wonder if we can say something simpler here. Something along the lines of adding/removing listeners after script evaluation might not give the expected result.

> @@ -1062,15 +1062,17 @@ and an <a>event listener</a> <var>listener</var>, run these steps:
 
 <ol>
  <li>
-  <p>If <var>eventTarget</var>'s <a>relevant global object</a> is a {{ServiceWorkerGlobalScope}}
-  object and its associated <a>service worker</a>'s <a for="service worker">script resource</a>'s
-  <a for="script resource">has ever been evaluated flag</a> is set, then <a>throw</a> a
-  <code>TypeError</code>.
-  [[!SERVICE-WORKERS]]
-
-  <p class="note no-backref">To optimize storing the event types allowed for the service worker and
-  to avoid non-deterministic changes to the event listeners, invocation of the method is allowed
-  only during the very first evaluation of the service worker script.
+  <p>If <var>eventTarget</var> is a {{ServiceWorkerGlobalScope}} object and its associated
+  <a>service worker</a>'s <a for="service worker">script resource</a>'s
+  <a for="script resource">has ever been evaluated flag</a> is set, then
+  <a>report a warning to the console</a> with a description explaining that the
+  <a>service worker event</a> is to be added synchronously, otherwise the user agent will not start
+  the <a>service worker</a> for the <a>event</a>. [[!SERVICE-WORKERS]]

Please use "might" instead as this is not a normative statement.

> @@ -1118,11 +1120,12 @@ and an <a>event listener</a> <var>listener</var>, set <var>listener</var>'s
 method, when invoked, must run these steps:
 
 <ol>
- <li><p>If the <a>context object</a>'s <a>relevant global object</a> is a
- {{ServiceWorkerGlobalScope}} object and its associated <a>service worker</a>'s
- <a for="service worker">script resource</a>'s
- <a for="script resource">has ever been evaluated flag</a> is set, then <a>throw</a> a
- <code>TypeError</code>. [[!SERVICE-WORKERS]]
+ <li><p>If the <a>context object</a> is a {{ServiceWorkerGlobalScope}} object and its associated
+ <a>service worker</a>'s <a for="service worker">script resource</a>'s
+ <a for="script resource">has ever been evaluated flag</a> is set, then
+ <a>report a warning to the console</a> with a description explaining that the user agent will still
+ start the <a>service worker</a> for the <a>service worker event</a> that was synchronously added.

The event yes, but not this specific listener.

> @@ -1062,15 +1062,19 @@ and an <a>event listener</a> <var>listener</var>, run these steps:
 
 <ol>
  <li>
-  <p>If <var>eventTarget</var>'s <a>relevant global object</a> is a {{ServiceWorkerGlobalScope}}
-  object and its associated <a>service worker</a>'s <a for="service worker">script resource</a>'s
-  <a for="script resource">has ever been evaluated flag</a> is set, then <a>throw</a> a
-  <code>TypeError</code>.
-  [[!SERVICE-WORKERS]]
-
-  <p class="note no-backref">To optimize storing the event types allowed for the service worker and
-  to avoid non-deterministic changes to the event listeners, invocation of the method is allowed
-  only during the very first evaluation of the service worker script.
+  <p>If <var>eventTarget</var> is a {{ServiceWorkerGlobalScope}} object and its associated
+  <a>service worker</a>'s <a for="service worker">script resource</a>'s
+  <a for="script resource">has ever been evaluated flag</a> is set, then
+  <a>report a warning to the console</a> with a description explaining that the
+  <a>service worker event</a> is to be added synchronously, otherwise the user agent may not start

We don't know that it's a service worker event.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/whatwg/dom/pull/653#pullrequestreview-298694835

Received on Tuesday, 8 October 2019 11:31:34 UTC