feat: native extension install UX + VirusTotal pre-install hash scanner#3
feat: native extension install UX + VirusTotal pre-install hash scanner#3JasonWilder117 wants to merge 4 commits into
Conversation
…te, ExtensionsToolbarCoordinator, CWS JS gate suppression
Adds privacy-preserving VT API v3 hash lookup before any CRX install. Only the SHA-256 hash is transmitted — no file bytes leave the device. New files: - patches/helium/core/add-extension-virustotal-scan.patch - chrome/browser/extensions/vt_extension_scanner.h - chrome/browser/extensions/vt_extension_scanner.cc - android/java/src/org/chromium/chrome/browser/extensions/VtExtensionScanner.java Step 2 (pref registration) is included as a source comment in vt_extension_scanner.cc with the exact line to add to browser_prefs.cc. See HOW_TO.md in helium-vt-scan/ for full build integration steps.
|
Hey thanks for the PR! Liked the Desktop UA patch for web store. We aim to stay lightweight with strictly zero telemetry so not so sure about the VT stuff. Will have a look in greater detail over the weekend |
The PR clearly looks vibe-coded, so I wouldn't recommend it to be merge as-is. |
|
Heya, I have question, would be possible to implement custom search engine and wallpaper like on firefox based android apk, or is it just works diffrently on chrome android? |
|
Both are supported (via extensions). We also rolled out mv2 and dev tools support last week. A future update should allow you to edit search engines. |
|
Hello dev i want to say a bug, There a small bug with extension icon in search bar when disable the extension icon in toolbar, still appears when open the browser again even the option is enabled, It's not a big problem, but it needs to be fixed I also recommend enabling extensions from the extension menu, because pinned more extension you have in toolbar, the search bar be smaller and smaller |
|
@NENO756 Ah thank you so much for noticing, this will be fixed in next update! Also feel free to switch to uBlock Origin (mv2) now that it's supported |
i edit my comment for the recommend |
|
@NENO756 No worries! Just pushed an update here. Should be fixed now. |
|
Dear Developer |
|
Hi Helium Developer, First of all, thank you for releasing Helium on Android. I really appreciate your work on this project. I have a small feature request, similar to what others have mentioned regarding extensions. It would be great if, in a future update, we could use extensions without having to pin them to the toolbar. Thank you for your time and consideration. |
|
@whxxyu Ah I got what you mean! Yeah this definitely should come in a future update. There is currently some progress on this from upstream but can add it myself too. |
|
Please add the option to open a custom home page by default in a new tab. I would also be very grateful if you added an option to open a new tab by long-pressing the tab switch button, like it's done in the Kiwi browser, instead of opening the drop-down menu like it does now. |
|
As previously noted, page language translation doesn't work in the latest current version — it would be great if the developer fixed this. I don't often need access to extensions, but other users on other platforms are complaining that you can only open an extension's menu by tapping its pinned icon on the toolbar. If you have three extensions on the toolbar, there's no space left at all. It would be nice if the developer made it possible to open an extension's menu from the browser menu — this doesn't work right now (when tapping the extension name) — and also added the ability to group extensions into a single icon button, which when tapped would open a list of extensions with the option to access each extension's menu, like it's done in the Elixir browser, for example. If the developer does this, it will be the best browser, unlike Elixir which doesn't support MV2, and the buggy Ultimatum. Sorry for writing here — the issues section is disabled. |
3ca1840 to
23b9be5
Compare
…nsion patches fail loudly - shim.js here-doc opened with <<'JSEOF' but closed with JSONEOF, so the rest of build.sh (allowlist patch, BUILD.gn grit, args.gn, gn gen, autoninja, signing) was swallowed as heredoc content and never ran. Corrected the terminator to JSEOF. - UA / toolbar-stub / ExtensionsToolbarCoordinator / allowlist patches previously printed 'skipping' or used '|| true' on a missing anchor, silently producing a mobile-UA APK with no extensions UI. They now distinguish 'already applied' (skip) from 'anchor missing' (die).

Overview
This PR contains two independent improvements to extension handling on Android Helium Browser:
Both are additive and can be reviewed/accepted independently if preferred.
Feature 1 — Native Extension Install UX
Problem
Extension installation previously required a manual workaround: the user had to switch to Desktop site mode before the Chrome Web Store would present the install button. This was a 3-4 step friction point for every new extension install.
Fix (
build.sh+251 lines)Four coordinated patches that make the CWS treat the Android browser as a fully capable desktop-class extension host:
Before vs After
README.md(+17 / -6)Feature 2 — VirusTotal Pre-Install Hash Scanner
Problem
There is no security check on CRX files before they are unpacked and installed. Extension-based malware is a common attack vector on Android Chromium browsers.
Fix (4 new files — all additive, no existing files modified)
A lightweight scan that runs before any CRX is unpacked. Only the SHA-256 hash of the extension file is transmitted — no file content ever leaves the device.
patches/helium/core/add-extension-virustotal-scan.patchCrxInstallerchrome/browser/extensions/vt_extension_scanner.hVtRiskLevelenum,VtScanResultstructchrome/browser/extensions/vt_extension_scanner.ccandroid/java/src/org/chromium/chrome/browser/extensions/VtExtensionScanner.javaScan Outcome Logic
Privacy & Safety Design
helium_vt_api_keyGN build arg. Without a key every install is silent fail-openBuild Integration Required (one-time)
git apply patches/helium/core/add-extension-virustotal-scan.patchchrome/browser/extensions/BUILD.gn:vt_extension_scanner.cc/.hbrowser_prefs.cc:registry->RegisterDictionaryPref("helium.vt_scan_cache");helium_vt_api_key = "YOUR_KEY"inargs.gnA free VirusTotal API key supports 4 lookups/minute — well within typical extension install usage.
Happy to split these into separate PRs, adjust thresholds, or provide any additional detail based on feedback.