Skip to content

Commit

Permalink
Allow rule creation in sample.dnr-rule-manager when no rule exists (G…
Browse files Browse the repository at this point in the history
…oogleChrome#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.
  • Loading branch information
enricobacis authored Nov 13, 2023
1 parent 5be3966 commit 38f60eb
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion functional-samples/sample.dnr-rule-manager/manager.js
Original file line number Diff line number Diff line change
Expand Up @@ -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() {
Expand Down

0 comments on commit 38f60eb

Please sign in to comment.