I created a Xcode project to test the DNR updateDynamicRules API performances on Safari (MacOS).
https://github.com/radiolondra/TestUpdateDynamicRules
Following the instructions in the README file, it's possible to test the extension on Chromium and Firefox browsers (on Windows).
The project uses 2 json files containing static rules, enabled by default in the manifest file. These static rules are automatically installed in the browser when the extension is installed.
Using the extension popup it is possible to add/remove just one very simple dynamic rule in the browser, a rule that acts on a predefined test domain (https://iana.org).
What we want to measure is the time it takes for each browser to add/remove that one dynamic rule.
The results for Safari are unacceptable to say the least:
Safari: from 6000 to 8000 MILLISECONDS (6/8 seconds!) <<<<<<<<<
Chrome: from 5 to 6 MILLISECONDS
Firefox: from 5 to 7 MILLISECONDS
Notice the time needed by Safari... It would be a good idea to take a look at this monstrosity. Thanks.