Skip to content

[Feature Request]: Support CSP/Chrome Extension Safe Build Without Base64 Blob Worker #1699

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

Open
1 task done
hasgaloyan opened this issue May 30, 2025 · 0 comments
Open
1 task done
Labels
feature request Things want to be added

Comments

@hasgaloyan
Copy link

Preflight Checklist

  • I have searched the issue tracker for a feature request that matches the one I want to file, without success.

What package is this feature request for?

rrweb

Problem Description

Hi rrweb team, thanks for the great work on rrweb — it’s an amazing tool for session recording.

I’m building a Chrome extension that uses rrweb as a core dependency. However, the extension was rejected from the Chrome Web Store due to a "Red Titanium" violation, which flags base64-encoded scripts that are decoded at runtime (e.g., via atob + Blob + new Worker(...)).

This appears to come from the use of a base64-encoded Web Worker bundled into rrweb's distribution (e.g., rrweb.js, rrweb.umd.cjs, etc.). Chrome reviewers are very strict about this kind of logic, even when it’s harmless, because it makes the code difficult to audit.

❌ Problem
Base64-encoded strings with Uint8Array.from(atob(...)) create decoded Blob scripts at runtime.

Chrome Store considers this obfuscation and blocks extensions that use them.

Proposed Solution

✅ Request

Would it be possible to provide
A CSP-compliant / Chrome Extension-safe build of rrweb that does not inline the base64 worker?

This would make rrweb immediately usable in extensions and strict CSP environments.

Alternatives Considered

An official build flag or ES module export that uses a separately loaded worker file (e.g., new Worker(chrome.runtime.getURL('rrweb-worker.js'))) is also an option to allow extensions to pass Chrome review.

Additional Information

I found a similar feature request here that didn't have any solution for almost 2 years: #1308

Please prioritize this, as extensions are a great way to use rrweb.

@hasgaloyan hasgaloyan added the feature request Things want to be added label May 30, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature request Things want to be added
Projects
None yet
Development

No branches or pull requests

1 participant