Multi-Account Container Helper 1.4.0
Excessive permissions, new package
“Import proxy lists, automate creation of containers, and manage Firefox Multi Account Containers with direct proxy routing.”
Extension can proxy all browser trafficArchive contains Mozilla COSE digest manifest
SHA-2563dba686e8e5a50537d8cb9f0a9e5a8530c3cfffa6b821a245c13f6f159522d90
Evidence
1{
2 "manifest_version": 2,
3 "name": "Multi-Account Container Helper",
4 "version": "1.4.0",
5 "description": "Creates and manages Firefox Multi-Account Containers.",
6 "icons": {
7 "48": "icon48.png",
8 "96": "icon96.png"
9 },
10 "permissions": [
11 "contextualIdentities",
12 "cookies",
13 "proxy",
14 "storage",
⋯9 lines
4:55… roxies");
5
6function setStatus(message, state = "") {
7 status.textContent = message;
8 status.dataset.state = state;
9}
10
11async function restoreState() {
12 const stored = await browser.storage.local.get(["pendingProxyFileName", "popupState"]);
13 if (stored.popupState && stored.popupState.proxyType) {
14 proxyType.value = stored.popupState.proxyType;
15 }
16 if (stored.pendingProxyFileName) {
17 setStatus(`Previ …
17:93… lace it.`);
18 }
19}
20
21if (extensionConfig.proxiesEnabled) {
22 importButton.addEventListener("click", async () => {
23 const file = fileInput.files[0];
24 if (!file) {
25 setStatus("Choose a proxy CSV file first.", "er …
54:33… er.storage.local.get("pendingProxyFileName");
55 proxyFileStatus.textContent = proxyState.pendingProxyFileName
56 ? `Ready to assign: ${proxyState.pendingProxyFileName}`
57 : "No proxy CSV imported."; …
211:38… & result.tested > 1
212 ? "WARNING: every proxy reported the same exit IP. Firefox may be reusing one authenticated " +
213 "connection across containers because they share the same proxy host and port. Try SOCKS5 " +
214 "if your provider supports it, or ask for a distinct host/port per session.\n"
215 : "") +
216 result.results
217 .map(row =>
218 `${row.group} (${row.host}:${row.port}): ${row.ok ? `OK - ${row.reportedIp || "IP not read"}` : `FAILED - ${row.reason}`}`
219 )
220 .join("\n"),
221 },
222];
223
224function createActionStatus(button) {
225 const card = button.closest(".card");
226 let message = card.querySelector(".action-status");
227 if (!message) {
228 message = document.createElement("div");
229 message.className = "action-status";
230 message.setAttribute("role", "status");
231 message.setAttribute("aria-live", "polite");
232 message.id = `${card.querySelector("h2").id}-status`; …
Showing the top 5 files — 2 more files (23 regions) not shown.
No evidence locations were recorded for this file. Raw result