Skip to content

Commit

Permalink
Add missing no-sandbox flag to fix build execution and clean code
Browse files Browse the repository at this point in the history
  • Loading branch information
Scarabol committed Feb 24, 2025
1 parent ce64818 commit 536f19f
Show file tree
Hide file tree
Showing 7 changed files with 102 additions and 214 deletions.
96 changes: 1 addition & 95 deletions .github/workflows/CI.yml
Original file line number Diff line number Diff line change
Expand Up @@ -89,99 +89,5 @@ jobs:
node-modules-
- name: Install dependencies
run: npm install
- name: Install Chrome
uses: browser-actions/setup-chrome@latest
with:
chrome-version: stable
- name: Run tests
env:
CHROME_HEADLESS: 1
CHROME_PATH: chrome
CHROME_FLAGS: "--headless --disable-gpu --no-sandbox --enable-features=SharedArrayBuffer,CrossOriginIsolation"
HEADERS: '{"Cross-Origin-Opener-Policy": "same-origin", "Cross-Origin-Embedder-Policy": "require-corp"}'
run: |
# Start test server with proper headers for all tests
npm run serve -- --headers "$HEADERS" &
# Increase wait time to ensure server is ready
sleep 15
# Verify headers and isolation status
echo "Checking security headers and isolation status..."
curl -v http://localhost:3000/tests/ffmpeg-core-st.test.html 2>&1 | grep -i "cross-origin"
# Run verification script first
echo "Verifying browser environment..."
cat << EOF > verify-browser.html
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Cross-Origin-Opener-Policy" content="same-origin">
<meta http-equiv="Cross-Origin-Embedder-Policy" content="require-corp">
</head>
<body>
<script>
console.log('SharedArrayBuffer available:', typeof SharedArrayBuffer !== 'undefined');
console.log('crossOriginIsolated:', window.crossOriginIsolated);
if (!window.crossOriginIsolated || typeof SharedArrayBuffer === 'undefined') {
throw new Error('Browser environment not properly configured for SharedArrayBuffer');
}
</script>
</body>
</html>
EOF
# Run single-threaded tests first
echo "Running single-threaded tests..."
npx mocha-headless-chrome \
--args="$CHROME_FLAGS" \
-a no-sandbox \
-f http://localhost:3000/tests/ffmpeg-core-st.test.html 2>&1 | tee st-core-test.log
npx mocha-headless-chrome \
--args="$CHROME_FLAGS" \
-a no-sandbox \
-f http://localhost:3000/tests/ffmpeg-st.test.html 2>&1 | tee st-test.log
# Run multi-threaded tests
echo "Running multi-threaded tests..."
# Create a test script to verify browser environment
cat << EOF > verify-browser.html
<!DOCTYPE html>
<html>
<head>
<title>Browser Environment Test</title>
</head>
<body>
<script>
console.log('SharedArrayBuffer available:', typeof SharedArrayBuffer !== 'undefined');
console.log('crossOriginIsolated:', window.crossOriginIsolated);
</script>
</body>
</html>
EOF
# Run the verification in Chrome
echo "Verifying browser environment..."
npx mocha-headless-chrome \
--args="$CHROME_FLAGS --enable-features=SharedArrayBuffer,CrossOriginIsolation" \
-a no-sandbox \
-f http://localhost:3000/verify-browser.html
# Run MT tests with verified configuration
npx mocha-headless-chrome \
--args="$CHROME_FLAGS --enable-features=SharedArrayBuffer,CrossOriginIsolation" \
-a no-sandbox \
-f http://localhost:3000/tests/ffmpeg-core-mt.test.html 2>&1 | tee mt-core-test.log
npx mocha-headless-chrome \
--args="$CHROME_FLAGS --enable-features=SharedArrayBuffer,CrossOriginIsolation" \
-a no-sandbox \
-f http://localhost:3000/tests/ffmpeg-mt.test.html 2>&1 | tee mt-test.log
# Display all logs for debugging
echo "=== Test Logs ==="
for log in *-test.log; do
echo "Contents of $log:"
cat $log
done
run: npm test
4 changes: 2 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,10 @@
"lint:root": "eslint tests",
"build": "npm run build --workspace=packages --if-present",
"pretest": "npm run build",
"serve": "http-server -c-1 -s -p 3000 . --cors --headers '{\"Cross-Origin-Embedder-Policy\":\"require-corp\",\"Cross-Origin-Opener-Policy\":\"same-origin\",\"Cross-Origin-Resource-Policy\":\"cross-origin\",\"Origin-Agent-Cluster\":\"?1\"}'",
"serve": "http-server -c-1 -s -p 3000 .",
"test": "server-test test:browser:server 3000 test:all",
"test:all": "npm-run-all test:browser:*:*",
"test:browser": "mocha-headless-chrome -a enable-features=SharedArrayBuffer",
"test:browser": "mocha-headless-chrome -a enable-features=SharedArrayBuffer -a no-sandbox",
"test:browser:core:mt": "npm run test:browser -- -f http://localhost:3000/tests/ffmpeg-core-mt.test.html",
"test:browser:core:st": "npm run test:browser -- -f http://localhost:3000/tests/ffmpeg-core-st.test.html",
"test:browser:ffmpeg:mt": "npm run test:browser -- -f http://localhost:3000/tests/ffmpeg-mt.test.html",
Expand Down
52 changes: 24 additions & 28 deletions tests/ffmpeg-core-mt.test.html
Original file line number Diff line number Diff line change
@@ -1,31 +1,27 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="Cross-Origin-Opener-Policy" content="same-origin" />
<meta http-equiv="Cross-Origin-Embedder-Policy" content="require-corp" />
<meta http-equiv="Cross-Origin-Resource-Policy" content="cross-origin" />
<meta http-equiv="Origin-Agent-Cluster" content="?1" />
<title>FFmpeg Unit Test</title>
<link rel="stylesheet" href="../node_modules/mocha/mocha.css" />
</head>
<body>
<div id="mocha"></div>
<script src="../node_modules/mocha/mocha.js"></script>
<script src="../node_modules/chai/chai.js"></script>
<script src="../packages/core-mt/dist/umd/ffmpeg-core.js"></script>
<script src="./test-helper-browser.js"></script>
<script type="text/javascript">
window.FFMPEG_TYPE = "mt";
</script>
<script>
mocha.setup("bdd");
mocha.timeout(60000);
</script>
<script src="./ffmpeg-core.test.js"></script>
<script>
window.expect = chai.expect;
mocha.run();
</script>
</body>
<head>
<meta charset="UTF-8" />
<title>FFmpeg Unit Test</title>
<link rel="stylesheet" href="../node_modules/mocha/mocha.css" />
</head>
<body>
<div id="mocha"></div>
<script src="../node_modules/mocha/mocha.js"></script>
<script src="../node_modules/chai/chai.js"></script>
<script src="../packages/core-mt/dist/umd/ffmpeg-core.js"></script>
<script src="./test-helper-browser.js"></script>
<script type="text/javascript">
window.FFMPEG_TYPE = "mt";
</script>
<script>
mocha.setup('bdd');
mocha.timeout(60000);
</script>
<script src="./ffmpeg-core.test.js"></script>
<script>
window.expect = chai.expect;
mocha.run();
</script>
</body>
</html>
52 changes: 24 additions & 28 deletions tests/ffmpeg-core-st.test.html
Original file line number Diff line number Diff line change
@@ -1,31 +1,27 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="Cross-Origin-Opener-Policy" content="same-origin" />
<meta http-equiv="Cross-Origin-Embedder-Policy" content="require-corp" />
<meta http-equiv="Cross-Origin-Resource-Policy" content="same-origin" />
<meta http-equiv="Origin-Agent-Cluster" content="?1" />
<title>FFmpeg Unit Test</title>
<link rel="stylesheet" href="../node_modules/mocha/mocha.css" />
</head>
<body>
<div id="mocha"></div>
<script src="../node_modules/mocha/mocha.js"></script>
<script src="../node_modules/chai/chai.js"></script>
<script src="../packages/core/dist/umd/ffmpeg-core.js"></script>
<script src="./test-helper-browser.js"></script>
<script type="text/javascript">
window.FFMPEG_TYPE = "st";
</script>
<script>
mocha.setup("bdd");
mocha.timeout(60000);
</script>
<script src="./ffmpeg-core.test.js"></script>
<script>
window.expect = chai.expect;
mocha.run();
</script>
</body>
<head>
<meta charset="UTF-8" />
<title>FFmpeg Unit Test</title>
<link rel="stylesheet" href="../node_modules/mocha/mocha.css" />
</head>
<body>
<div id="mocha"></div>
<script src="../node_modules/mocha/mocha.js"></script>
<script src="../node_modules/chai/chai.js"></script>
<script src="../packages/core/dist/umd/ffmpeg-core.js"></script>
<script src="./test-helper-browser.js"></script>
<script type="text/javascript">
window.FFMPEG_TYPE = "st";
</script>
<script>
mocha.setup('bdd');
mocha.timeout(60000);
</script>
<script src="./ffmpeg-core.test.js"></script>
<script>
window.expect = chai.expect;
mocha.run();
</script>
</body>
</html>
55 changes: 25 additions & 30 deletions tests/ffmpeg-mt.test.html
Original file line number Diff line number Diff line change
@@ -1,33 +1,28 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="Cross-Origin-Opener-Policy" content="same-origin" />
<meta http-equiv="Cross-Origin-Embedder-Policy" content="require-corp" />
<meta http-equiv="Cross-Origin-Resource-Policy" content="cross-origin" />
<meta http-equiv="Origin-Agent-Cluster" content="?1" />
<title>FFmpeg Unit Test</title>
<link rel="stylesheet" href="../node_modules/mocha/mocha.css" />
</head>
<body>
<div id="mocha"></div>
<script src="../node_modules/mocha/mocha.js"></script>
<script src="../node_modules/chai/chai.js"></script>
<script src="../packages/ffmpeg/dist/umd/ffmpeg.js"></script>
<script src="./test-helper-browser.js"></script>
<script type="text/javascript">
window.FFMPEG_TYPE = "mt";
window.CORE_URL =
"http://localhost:3000/packages/core-mt/dist/umd/ffmpeg-core.js";
</script>
<script>
mocha.setup("bdd");
mocha.timeout(60000);
</script>
<script src="./ffmpeg.test.js"></script>
<script>
window.expect = chai.expect;
mocha.run();
</script>
</body>
<head>
<meta charset="UTF-8" />
<title>FFmpeg Unit Test</title>
<link rel="stylesheet" href="../node_modules/mocha/mocha.css" />
</head>
<body>
<div id="mocha"></div>
<script src="../node_modules/mocha/mocha.js"></script>
<script src="../node_modules/chai/chai.js"></script>
<script src="../packages/ffmpeg/dist/umd/ffmpeg.js"></script>
<script src="./test-helper-browser.js"></script>
<script type="text/javascript">
window.FFMPEG_TYPE = "mt";
window.CORE_URL = "http://localhost:3000/packages/core-mt/dist/umd/ffmpeg-core.js";
</script>
<script>
mocha.setup('bdd');
mocha.timeout(60000);
</script>
<script src="./ffmpeg.test.js"></script>
<script>
window.expect = chai.expect;
mocha.run();
</script>
</body>
</html>
55 changes: 25 additions & 30 deletions tests/ffmpeg-st.test.html
Original file line number Diff line number Diff line change
@@ -1,33 +1,28 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="Cross-Origin-Opener-Policy" content="same-origin" />
<meta http-equiv="Cross-Origin-Embedder-Policy" content="require-corp" />
<meta http-equiv="Cross-Origin-Resource-Policy" content="same-origin" />
<meta http-equiv="Origin-Agent-Cluster" content="?1" />
<title>FFmpeg Unit Test</title>
<link rel="stylesheet" href="../node_modules/mocha/mocha.css" />
</head>
<body>
<div id="mocha"></div>
<script src="../node_modules/mocha/mocha.js"></script>
<script src="../node_modules/chai/chai.js"></script>
<script src="../packages/ffmpeg/dist/umd/ffmpeg.js"></script>
<script src="./test-helper-browser.js"></script>
<script type="text/javascript">
window.FFMPEG_TYPE = "st";
window.CORE_URL =
"http://localhost:3000/packages/core/dist/umd/ffmpeg-core.js";
</script>
<script>
mocha.setup("bdd");
mocha.timeout(60000);
</script>
<script src="./ffmpeg.test.js"></script>
<script>
window.expect = chai.expect;
mocha.run();
</script>
</body>
<head>
<meta charset="UTF-8" />
<title>FFmpeg Unit Test</title>
<link rel="stylesheet" href="../node_modules/mocha/mocha.css" />
</head>
<body>
<div id="mocha"></div>
<script src="../node_modules/mocha/mocha.js"></script>
<script src="../node_modules/chai/chai.js"></script>
<script src="../packages/ffmpeg/dist/umd/ffmpeg.js"></script>
<script src="./test-helper-browser.js"></script>
<script type="text/javascript">
window.FFMPEG_TYPE = "st";
window.CORE_URL = "http://localhost:3000/packages/core/dist/umd/ffmpeg-core.js";
</script>
<script>
mocha.setup('bdd');
mocha.timeout(60000);
</script>
<script src="./ffmpeg.test.js"></script>
<script>
window.expect = chai.expect;
mocha.run();
</script>
</body>
</html>
2 changes: 1 addition & 1 deletion tests/ffmpeg.test.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
const { FFmpeg } = window.FFmpegWASM;
const { FFmpeg } = FFmpegWASM;

const genName = (name) => `[ffmpeg][${FFMPEG_TYPE}] ${name}`;

Expand Down

0 comments on commit 536f19f

Please sign in to comment.