Re: [w3c/ServiceWorker] Add limits to the number of router rule registration (PR #1752)

@sisidovski commented on this pull request.



> @@ -3456,6 +3461,57 @@ spec: storage; urlPrefix: https://storage.spec.whatwg.org/
           1. Return true.
   </section>
 
+  <section algorithm>
+    <h3 id="check-router-registration-limit"><dfn>Check Router Registration Limit</dfn></h3>
+
+      : Input
+      :: |routerRules|, a [=list of router rules=]
+      : Output
+      :: a boolean
+
+      Note: Router conditions can be complex and nested using {{RouterCondition/_or}} and {{RouterCondition/not}}. To prevent excessive processing, this algorithm introduces two limits. First, the total number of conditions, counting all nested conditions, cannot exceed 1024. Second, the nesting depth is limited to 10 levels to avoid exponential computation.
+
+      1. Let |result| be a [=count router condition result=].
+      1. Set |result|'s [=count router condition result/total count=] to 0.

IIUC, this line is the initializing part for "total count". The actual condition node counting is done inside count-router-inner-conditions. We don't start counting yet, so starting from zero before calling count-router-inner-conditions makes sense to me. Also, I don't think incrementing in count-router-inner-conditions? is not omitted. The returned value was used in below step.

```
 Set |result|'s [=count router condition result/total count=] to |currentResult|'s [=count router condition result/total count=].
 ```

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

Message ID: <w3c/ServiceWorker/pull/1752/review/2588723743@github.com>

Received on Monday, 3 February 2025 01:17:02 UTC