feat: add cross-browser builds and refresh project documentation
- add Chrome/Chromium Manifest V3 build with PAC proxy routing - keep Firefox Manifest V2 and Android compatibility - add Chromium API adapter and service worker - add Chrome build script and Makefile target - update README and add AGENT.md - document installation, signing, permissions, themes, and platform limitations
This commit is contained in:
1 parent
11508e6740
commit
d0c5fc5679
12 files changed
+256
-14
No files matched your search
@@ -0,0 +1,40 @@
|
||||
#!/usr/bin/env python3
|
||||
"""Build a Chrome/Chromium Manifest V3 zip without changing the Firefox tree."""
|
||||
from pathlib import Path
|
||||
import json
|
||||
import shutil
|
||||
import tempfile
|
||||
import zipfile
|
||||
|
||||
ROOT = Path(__file__).resolve().parent.parent
|
||||
OUTPUT = ROOT / "web-ext-artifacts" / "proxyswitcherforkbywt-chrome.zip"
|
||||
FILES = [
|
||||
"background-chrome.js",
|
||||
"background-service-worker.js",
|
||||
"browser-api.js",
|
||||
"config-manager.js",
|
||||
"options.css",
|
||||
"options.html",
|
||||
"options.js",
|
||||
"popup.css",
|
||||
"popup.html",
|
||||
"popup.js",
|
||||
]
|
||||
|
||||
def main():
|
||||
OUTPUT.parent.mkdir(exist_ok=True)
|
||||
with tempfile.TemporaryDirectory() as temp:
|
||||
staging = Path(temp)
|
||||
manifest = json.loads((ROOT / "manifest.chrome.json").read_text())
|
||||
(staging / "manifest.json").write_text(json.dumps(manifest, indent=2) + "\n")
|
||||
for name in FILES:
|
||||
shutil.copy2(ROOT / name, staging / name)
|
||||
shutil.copytree(ROOT / "icons", staging / "icons")
|
||||
if OUTPUT.exists(): OUTPUT.unlink()
|
||||
with zipfile.ZipFile(OUTPUT, "w", zipfile.ZIP_DEFLATED) as archive:
|
||||
for path in sorted(staging.rglob("*")):
|
||||
if path.is_file(): archive.write(path, path.relative_to(staging))
|
||||
print(OUTPUT)
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in new issue
Block a user