Red Titanium Google section: Obfuscation
Red Titanium: Obfuscated code
Reviewers must be able to read your code. Minification is allowed: whitespace removed, short variable names, files merged. Obfuscation is not: encoded strings, _0x identifier tables, Base64 that gets decoded and run.
The fix: rejected → fixed
module.exports = {Removed: mode: 'development',Removed: devtool: 'eval-source-map',Added: mode: 'production',Added: devtool: 'source-map', plugins: [Removed: new WebpackObfuscator({ rotateStringArray: true, stringArray: true }), ],};
Production mode with Terser gives ordinary minification, which is allowed. The obfuscator plugin and the eval-based dev build are gone.
Why you got Red Titanium
- Running
javascript-obfuscatoror a webpack obfuscator plugin to "protect" the code. - Shipping a webpack
developmentbuild that wraps every module in aneval("…")string. - Base64 or hex-escaped strings that are decoded at runtime and executed.
- A third-party SDK that is itself obfuscated.
Pre-resubmit checklist
Your ticks are saved in this browser.
Common mistake: Source maps are optional. Readable output is what the reviewer needs, so you don't have to ship your original source.
Appeal or resubmission note
Replace the [BRACKETS], then use the appeal link in your rejection email. Keep it short and factual, and list only changes you actually made.
Hello Chrome Web Store team, My item [EXTENSION NAME] (ID: [ITEM ID]) was rejected with reference Red Titanium. I have reviewed the policy and made the following changes in version [NEW VERSION]: - Removed the obfuscation step from the build; code is now only minified with Terser. - Replaced [SDK] with its non-obfuscated distribution. - Removed encoded strings that were decoded at runtime. [ONE SENTENCE ON WHAT THE EXTENSION DOES AND WHY IT NEEDS WHAT REMAINS.] I have resubmitted the updated package. If anything still does not comply, I would appreciate a pointer to the specific file or listing field so I can fix it. Thank you, [YOUR NAME]
Google's own wording for this code is on the Chrome Web Store troubleshooting page under "Obfuscation".