forked from icd/rentgen
Compare commits
No commits in common. "7f5c571c8601e4478b5de1e48a0ed269bf38ce62" and "b53aeccd8c3dad3dbee35c185eb381ae19b6b57e" have entirely different histories.
7f5c571c86
...
b53aeccd8c
37
Dockerfile
37
Dockerfile
@ -1,9 +1,34 @@
|
||||
# Rentgen Browser Extension - Docker Build
|
||||
# See README.md for detailed usage instructions
|
||||
#
|
||||
# Usage:
|
||||
# Build and extract artifacts directly:
|
||||
# docker buildx build . --output artifacts
|
||||
#
|
||||
# Build with tests (typecheck + lint):
|
||||
# docker build --build-arg RUN_TESTS=true -t rentgen .
|
||||
#
|
||||
# Or traditional build (creates full development environment):
|
||||
# docker build -t rentgen .
|
||||
# docker run --rm rentgen ls -lh /app/web-ext-artifacts/
|
||||
#
|
||||
# Run commands in the container:
|
||||
# docker run --rm rentgen npm run build:chrome
|
||||
# docker run --rm rentgen npm run typecheck
|
||||
#
|
||||
# Run extension in Firefox (headless):
|
||||
# docker build --target runtime -t rentgen-run .
|
||||
# docker run --rm -it rentgen-run
|
||||
#
|
||||
# Using docker-compose:
|
||||
# docker-compose up rentgen_check # Build only
|
||||
# docker-compose up rentgen_run # Run in Firefox
|
||||
|
||||
# Build stage
|
||||
FROM node:lts AS builder
|
||||
|
||||
# Optional: run tests during build (typecheck + lint)
|
||||
ARG RUN_TESTS=false
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
# Copy package files for dependency installation (better layer caching)
|
||||
@ -21,9 +46,13 @@ RUN npm run build
|
||||
# Create the package
|
||||
RUN npm run create-package
|
||||
|
||||
# Test stage - for running quality checks
|
||||
FROM builder AS test
|
||||
RUN npm run typecheck && npm run lint
|
||||
# Optional: run quality checks
|
||||
RUN if [ "$RUN_TESTS" = "true" ]; then \
|
||||
echo "Running TypeScript type checking..."; \
|
||||
npm run typecheck; \
|
||||
echo "Running web-ext lint..."; \
|
||||
npm run lint; \
|
||||
fi
|
||||
|
||||
# Artifacts stage - only contains the built artifacts (for --output)
|
||||
FROM scratch AS artifacts
|
||||
|
||||
44
README.md
44
README.md
@ -41,50 +41,6 @@ Firefox: https://addons.mozilla.org/en-US/firefox/addon/rentgen/
|
||||
3. Click _Load Temporary Add-on..._ button
|
||||
4. Pick the zip archive from last step of build process.
|
||||
|
||||
## Docker Usage
|
||||
|
||||
### Build and extract artifacts directly
|
||||
|
||||
```bash
|
||||
docker buildx build . --output artifacts
|
||||
```
|
||||
|
||||
This will build the extension and extract the `.zip` file to the `artifacts/` directory.
|
||||
|
||||
### Build with tests (typecheck + lint)
|
||||
|
||||
```bash
|
||||
docker build --target test -t rentgen-test .
|
||||
```
|
||||
|
||||
### Traditional build (creates full development environment)
|
||||
|
||||
```bash
|
||||
docker build -t rentgen .
|
||||
docker run --rm rentgen ls -lh /app/web-ext-artifacts/
|
||||
```
|
||||
|
||||
### Run commands in the container
|
||||
|
||||
```bash
|
||||
docker run --rm rentgen npm run build:chrome
|
||||
docker run --rm rentgen npm run typecheck
|
||||
```
|
||||
|
||||
### Run extension in Firefox (headless)
|
||||
|
||||
```bash
|
||||
docker build --target runtime -t rentgen-run .
|
||||
docker run --rm -it rentgen-run
|
||||
```
|
||||
|
||||
### Using docker-compose
|
||||
|
||||
```bash
|
||||
docker-compose up rentgen_check # Build only
|
||||
docker-compose up rentgen_run # Run in Firefox
|
||||
```
|
||||
|
||||
## Issue tracker
|
||||
|
||||
If you find a problem, please send us an email: kontakt@internet-czas-dzialac.pl
|
||||
|
||||
@ -1,18 +1,18 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# test_start_extension.sh - Starts Rentgen extension in headless Firefox with verification
|
||||
# test_start_extension.sh - Uruchamia rozszerzenie Rentgen w headless Firefox z weryfikacją
|
||||
#
|
||||
# This script is used by Docker runtime stage to:
|
||||
# 1. Start Xvfb (virtual X server) on display :99
|
||||
# 2. Run web-ext with verbose logging
|
||||
# 3. Verify extension was installed correctly
|
||||
# 4. Verify extension code executed (by checking ABSENCE of errors)
|
||||
# Ten skrypt jest używany przez Docker runtime stage do:
|
||||
# 1. Uruchomienia Xvfb (wirtualny X server) na display :99
|
||||
# 2. Uruchomienia web-ext run z verbose loggingiem
|
||||
# 3. Weryfikacji czy extension został poprawnie zainstalowany
|
||||
# 4. Weryfikacji czy kod extensiona się wykonał (przez sprawdzenie BRAKU błędów)
|
||||
#
|
||||
# IMPORTANT: console.error from background pages does NOT appear in web-ext stdout
|
||||
# (Firefox limitation). Verification works by:
|
||||
# - Checking that extension installed
|
||||
# - Checking NO JavaScript errors in logs
|
||||
# - No errors = code executed correctly
|
||||
# WAŻNE: console.error z background page NIE pojawia się w web-ext stdout
|
||||
# (to ograniczenie Firefoksa). Weryfikacja działa poprzez:
|
||||
# - Sprawdzenie czy extension się zainstalował
|
||||
# - Sprawdzenie czy NIE MA błędów JavaScript w logach
|
||||
# - Jeśli nie ma błędów = kod się wykonał poprawnie
|
||||
#
|
||||
|
||||
set -e
|
||||
@ -50,12 +50,12 @@ for i in {1..30}; do
|
||||
if grep -i "JavaScript error.*background.js\|SyntaxError.*background\|ReferenceError.*background" /tmp/web-ext.log 2>/dev/null | grep -v "BackupService\|RSLoader"; then
|
||||
echo ""
|
||||
echo "========================================"
|
||||
echo "✗✗✗ CRITICAL ERROR ✗✗✗"
|
||||
echo "✗✗✗ KRYTYCZNY BŁĄD ✗✗✗"
|
||||
echo "========================================"
|
||||
echo "Found JavaScript errors in background.js!"
|
||||
echo "Extension installed but CODE DID NOT EXECUTE!"
|
||||
echo "Znaleziono błędy JavaScript w background.js!"
|
||||
echo "Extension się zainstalował ale KOD SIĘ NIE WYKONAŁ!"
|
||||
echo ""
|
||||
echo "Errors:"
|
||||
echo "Błędy:"
|
||||
grep -i "JavaScript error.*background.js\|SyntaxError.*background\|ReferenceError.*background" /tmp/web-ext.log 2>/dev/null | head -10
|
||||
echo "========================================"
|
||||
exit 1
|
||||
|
||||
@ -1,13 +1,13 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# test_verify.sh - Verifies extension and exits (doesn't wait forever)
|
||||
# test_verify.sh - Weryfikuje extension i kończy (nie czeka nieskończenie)
|
||||
#
|
||||
# This script is a test version of test_start_extension.sh that:
|
||||
# - Starts Firefox with the extension
|
||||
# - Verifies extension loaded without errors
|
||||
# - EXITS after verification (instead of waiting forever)
|
||||
# Ten skrypt jest wersją testową test_start_extension.sh która:
|
||||
# - Uruchamia Firefox z extensionem
|
||||
# - Weryfikuje czy extension się załadował bez błędów
|
||||
# - KOŃCZY się po weryfikacji (zamiast czekać nieskończenie)
|
||||
#
|
||||
# Used for automated tests in CI/Docker.
|
||||
# Używany do automatycznych testów w CI/Docker.
|
||||
#
|
||||
|
||||
set -e
|
||||
@ -58,12 +58,12 @@ echo "Checking for JavaScript errors in extension code..."
|
||||
if grep -i "JavaScript error.*background.js\|SyntaxError.*background\|ReferenceError.*background" /tmp/web-ext.log 2>/dev/null | grep -v "BackupService\|RSLoader"; then
|
||||
echo ""
|
||||
echo "========================================"
|
||||
echo "✗✗✗ CRITICAL ERROR ✗✗✗"
|
||||
echo "✗✗✗ KRYTYCZNY BŁĄD ✗✗✗"
|
||||
echo "========================================"
|
||||
echo "Found JavaScript errors in background.js!"
|
||||
echo "Extension installed but CODE DID NOT EXECUTE!"
|
||||
echo "Znaleziono błędy JavaScript w background.js!"
|
||||
echo "Extension się zainstalował ale KOD SIĘ NIE WYKONAŁ!"
|
||||
echo ""
|
||||
echo "Errors:"
|
||||
echo "Błędy:"
|
||||
grep -i "JavaScript error.*background.js\|SyntaxError.*background\|ReferenceError.*background" /tmp/web-ext.log 2>/dev/null | head -10
|
||||
echo "========================================"
|
||||
|
||||
|
||||
@ -109,7 +109,11 @@ export class StolenDataEntry extends SaferEmitter {
|
||||
.map((kv) => kv.split('='))
|
||||
);
|
||||
} catch (e) {
|
||||
// failed to parse as query string, safe to ignore
|
||||
// failed to parse as query string
|
||||
console.log(
|
||||
'Failed attempt to parse hash location as query string, probably safe to ignore:',
|
||||
e
|
||||
);
|
||||
}
|
||||
}
|
||||
const searchParams = Object.fromEntries(
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user