-
Notifications
You must be signed in to change notification settings - Fork 56
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Proposal: webRequest worklets #461
Comments
@Celsius273 @hackademix @carlosjeurissen @ghostwords |
Standard JS isn't the best choice for a worklet language probably as it's too flexible, it also has tons of built-in globals in globalThis that take time to initialize even with V8 snapshot technique, its interpreter is big as well. The usual choice for this task is something lua-based like LuaJIT or eLua, which consume ~1000 times less memory and are much faster to start, their interpreter is much smaller and simpler and the JIT version is very performant. |
Sounds like this would solve #302. |
Thanks for the suggestion. |
AFAIK none, because browser makers don't have worklets in a core performance-critical path, the currently existing use cases (audio processing or the Houdini project) have comparatively lax performance/memory restrictions. |
It has been discussed many times that DNR does not support many use cases that were possible using Blocking webRequest. Some of the use cases are summarized in this meta ticket.
Some solutions were suggested by the browser vendors, but they are far from achieving reasonable functionality. The fact that DNR is declarative, limits its functionality and any solution based on it would probably be too limited.
Therefore I would like to suggest a non-declarative alternative to DNR and Blocking webRequest. I call it "webRequest worklets".
"webRequest worklets" would provide the benefits of DNR: security and performance, but with lower impact to developers.
How it works?
Benefits of "webRequest worklets":
Happy to hear your thoughts on this.
The text was updated successfully, but these errors were encountered: