Allow rule creation in sample.dnr-rule-manager when no rule exists (#1029)

The `functional-samples/sample.dnr-rule-manager` example allows the user to add and remove `chrome.declarativeNetRequest` rules on demand from the extension's options page.

Rules require to have a unique `id`, so the extension fetches the list of all the currently defined rules, takes the max and adds 1.

When no rule is defined, this results in `Math.max(...[]) + 1` => `Math.max() + 1` => `-Infinity + 1` => `-Infinity` and since the `id` should be an integer and not an number, the extension throws an error.

Ensuring that `0` is always a parameter of `Math.max` should solve the problem.
This commit is contained in:
Enrico Bacis
2023-11-13 14:27:09 +01:00
committed by GitHub
parent 5be3966b66
commit 38f60eb2d4

View File

@@ -5,7 +5,7 @@ const viewRuleButton = document.getElementById('viewRuleButton');
async function getNextRuleId() {
const rules = await chrome.declarativeNetRequest.getDynamicRules();
return Math.max(...rules.map((rule) => rule.id)) + 1;
return Math.max(0, ...rules.map((rule) => rule.id)) + 1;
}
async function refresh() {