Re: [w3c/ServiceWorker] Skip executing fetch handlers if it is no-op. (PR #1672)

@domenic commented on this pull request.



> @@ -62,6 +64,8 @@ spec: ecma-262; urlPrefix: http://tc39.github.io/ecma262/
     type: abstract-op
         text: NormalCompletion; url: sec-normalcompletion
         text: ThrowCompletion; url: sec-throwcompletion
+        text: IsCallable; url: sec-iscallable
+        text: Get; url: sec-get-o-p

These should not be necessary these days. But, maybe they are; if removing them breaks then ignore my advice :)

>            1. Run the <a>responsible event loop</a> specified by |settingsObject| until it is destroyed.
           1. [=map/Clear=] |workerGlobalScope|'s [=map of active timers=].
       1. Wait for |serviceWorker| to be [=running=], or for |startFailed| to be true.
       1. If |startFailed| is true, then return *failure*.
       1. Return |serviceWorker|'s [=start status=].
   </section>
 
+  <section algorithm>
+    <h3 id="empty-handler-identification-algorithm"><dfn>Empty Handler identification</dfn></h3>
+
+      : Input
+      :: |workerGlobalScope|, a [=service worker/global object=].
+      : Output
+      :: a boolean
+
+      1. If |workerGlobalScope|'s <a>set of event types to handle</a> does not [=set/contain=] <code>fetch</code>, then returns false.
+      1. set |eventListenerList| to [=map/value=] whose [=map/key=] is <code>fetch</code> in |workerGlobalScope|'s <a>set of event types to handle</a>.

The inner loop below this line now looks great.

This step doesn't seem correct though. |eventListenerList| should be https://dom.spec.whatwg.org/#eventtarget-event-listener-list . And then you need to filter out the ones where https://dom.spec.whatwg.org/#event-listener-type is not "fetch".

-- 
Reply to this email directly or view it on GitHub:
https://github.com/w3c/ServiceWorker/pull/1672#pullrequestreview-1306819321
You are receiving this because you are subscribed to this thread.

Message ID: <w3c/ServiceWorker/pull/1672/review/1306819321@github.com>

Received on Tuesday, 21 February 2023 07:17:06 UTC