Skip to content

Commit 5c784db

Browse files
committed
Add missing no-sandbox flag to fix build execution and clean code
1 parent 63ea4cc commit 5c784db

File tree

7 files changed

+102
-214
lines changed

7 files changed

+102
-214
lines changed

.github/workflows/CI.yml

+1-95
Original file line numberDiff line numberDiff line change
@@ -89,99 +89,5 @@ jobs:
8989
node-modules-
9090
- name: Install dependencies
9191
run: npm install
92-
- name: Install Chrome
93-
uses: browser-actions/setup-chrome@latest
94-
with:
95-
chrome-version: stable
9692
- name: Run tests
97-
env:
98-
CHROME_HEADLESS: 1
99-
CHROME_PATH: chrome
100-
CHROME_FLAGS: "--headless --disable-gpu --no-sandbox --enable-features=SharedArrayBuffer,CrossOriginIsolation"
101-
HEADERS: '{"Cross-Origin-Opener-Policy": "same-origin", "Cross-Origin-Embedder-Policy": "require-corp"}'
102-
run: |
103-
# Start test server with proper headers for all tests
104-
npm run serve -- --headers "$HEADERS" &
105-
106-
# Increase wait time to ensure server is ready
107-
sleep 15
108-
109-
# Verify headers and isolation status
110-
echo "Checking security headers and isolation status..."
111-
curl -v http://localhost:3000/tests/ffmpeg-core-st.test.html 2>&1 | grep -i "cross-origin"
112-
113-
# Run verification script first
114-
echo "Verifying browser environment..."
115-
cat << EOF > verify-browser.html
116-
<!DOCTYPE html>
117-
<html>
118-
<head>
119-
<meta http-equiv="Cross-Origin-Opener-Policy" content="same-origin">
120-
<meta http-equiv="Cross-Origin-Embedder-Policy" content="require-corp">
121-
</head>
122-
<body>
123-
<script>
124-
console.log('SharedArrayBuffer available:', typeof SharedArrayBuffer !== 'undefined');
125-
console.log('crossOriginIsolated:', window.crossOriginIsolated);
126-
if (!window.crossOriginIsolated || typeof SharedArrayBuffer === 'undefined') {
127-
throw new Error('Browser environment not properly configured for SharedArrayBuffer');
128-
}
129-
</script>
130-
</body>
131-
</html>
132-
EOF
133-
134-
# Run single-threaded tests first
135-
echo "Running single-threaded tests..."
136-
npx mocha-headless-chrome \
137-
--args="$CHROME_FLAGS" \
138-
-a no-sandbox \
139-
-f http://localhost:3000/tests/ffmpeg-core-st.test.html 2>&1 | tee st-core-test.log
140-
141-
npx mocha-headless-chrome \
142-
--args="$CHROME_FLAGS" \
143-
-a no-sandbox \
144-
-f http://localhost:3000/tests/ffmpeg-st.test.html 2>&1 | tee st-test.log
145-
146-
# Run multi-threaded tests
147-
echo "Running multi-threaded tests..."
148-
# Create a test script to verify browser environment
149-
cat << EOF > verify-browser.html
150-
<!DOCTYPE html>
151-
<html>
152-
<head>
153-
<title>Browser Environment Test</title>
154-
</head>
155-
<body>
156-
<script>
157-
console.log('SharedArrayBuffer available:', typeof SharedArrayBuffer !== 'undefined');
158-
console.log('crossOriginIsolated:', window.crossOriginIsolated);
159-
</script>
160-
</body>
161-
</html>
162-
EOF
163-
164-
# Run the verification in Chrome
165-
echo "Verifying browser environment..."
166-
npx mocha-headless-chrome \
167-
--args="$CHROME_FLAGS --enable-features=SharedArrayBuffer,CrossOriginIsolation" \
168-
-a no-sandbox \
169-
-f http://localhost:3000/verify-browser.html
170-
171-
# Run MT tests with verified configuration
172-
npx mocha-headless-chrome \
173-
--args="$CHROME_FLAGS --enable-features=SharedArrayBuffer,CrossOriginIsolation" \
174-
-a no-sandbox \
175-
-f http://localhost:3000/tests/ffmpeg-core-mt.test.html 2>&1 | tee mt-core-test.log
176-
177-
npx mocha-headless-chrome \
178-
--args="$CHROME_FLAGS --enable-features=SharedArrayBuffer,CrossOriginIsolation" \
179-
-a no-sandbox \
180-
-f http://localhost:3000/tests/ffmpeg-mt.test.html 2>&1 | tee mt-test.log
181-
182-
# Display all logs for debugging
183-
echo "=== Test Logs ==="
184-
for log in *-test.log; do
185-
echo "Contents of $log:"
186-
cat $log
187-
done
93+
run: npm test

package.json

+2-2
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,10 @@
77
"lint:root": "eslint tests",
88
"build": "npm run build --workspace=packages --if-present",
99
"pretest": "npm run build",
10-
"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\"}'",
10+
"serve": "http-server -c-1 -s -p 3000 .",
1111
"test": "server-test test:browser:server 3000 test:all",
1212
"test:all": "npm-run-all test:browser:*:*",
13-
"test:browser": "mocha-headless-chrome -a enable-features=SharedArrayBuffer",
13+
"test:browser": "mocha-headless-chrome -a enable-features=SharedArrayBuffer -a no-sandbox",
1414
"test:browser:core:mt": "npm run test:browser -- -f http://localhost:3000/tests/ffmpeg-core-mt.test.html",
1515
"test:browser:core:st": "npm run test:browser -- -f http://localhost:3000/tests/ffmpeg-core-st.test.html",
1616
"test:browser:ffmpeg:mt": "npm run test:browser -- -f http://localhost:3000/tests/ffmpeg-mt.test.html",

tests/ffmpeg-core-mt.test.html

+24-28
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,27 @@
11
<!DOCTYPE html>
22
<html lang="en">
3-
<head>
4-
<meta charset="UTF-8" />
5-
<meta http-equiv="Cross-Origin-Opener-Policy" content="same-origin" />
6-
<meta http-equiv="Cross-Origin-Embedder-Policy" content="require-corp" />
7-
<meta http-equiv="Cross-Origin-Resource-Policy" content="cross-origin" />
8-
<meta http-equiv="Origin-Agent-Cluster" content="?1" />
9-
<title>FFmpeg Unit Test</title>
10-
<link rel="stylesheet" href="../node_modules/mocha/mocha.css" />
11-
</head>
12-
<body>
13-
<div id="mocha"></div>
14-
<script src="../node_modules/mocha/mocha.js"></script>
15-
<script src="../node_modules/chai/chai.js"></script>
16-
<script src="../packages/core-mt/dist/umd/ffmpeg-core.js"></script>
17-
<script src="./test-helper-browser.js"></script>
18-
<script type="text/javascript">
19-
window.FFMPEG_TYPE = "mt";
20-
</script>
21-
<script>
22-
mocha.setup("bdd");
23-
mocha.timeout(60000);
24-
</script>
25-
<script src="./ffmpeg-core.test.js"></script>
26-
<script>
27-
window.expect = chai.expect;
28-
mocha.run();
29-
</script>
30-
</body>
3+
<head>
4+
<meta charset="UTF-8" />
5+
<title>FFmpeg Unit Test</title>
6+
<link rel="stylesheet" href="../node_modules/mocha/mocha.css" />
7+
</head>
8+
<body>
9+
<div id="mocha"></div>
10+
<script src="../node_modules/mocha/mocha.js"></script>
11+
<script src="../node_modules/chai/chai.js"></script>
12+
<script src="../packages/core-mt/dist/umd/ffmpeg-core.js"></script>
13+
<script src="./test-helper-browser.js"></script>
14+
<script type="text/javascript">
15+
window.FFMPEG_TYPE = "mt";
16+
</script>
17+
<script>
18+
mocha.setup('bdd');
19+
mocha.timeout(60000);
20+
</script>
21+
<script src="./ffmpeg-core.test.js"></script>
22+
<script>
23+
window.expect = chai.expect;
24+
mocha.run();
25+
</script>
26+
</body>
3127
</html>

tests/ffmpeg-core-st.test.html

+24-28
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,27 @@
11
<!DOCTYPE html>
22
<html lang="en">
3-
<head>
4-
<meta charset="UTF-8" />
5-
<meta http-equiv="Cross-Origin-Opener-Policy" content="same-origin" />
6-
<meta http-equiv="Cross-Origin-Embedder-Policy" content="require-corp" />
7-
<meta http-equiv="Cross-Origin-Resource-Policy" content="same-origin" />
8-
<meta http-equiv="Origin-Agent-Cluster" content="?1" />
9-
<title>FFmpeg Unit Test</title>
10-
<link rel="stylesheet" href="../node_modules/mocha/mocha.css" />
11-
</head>
12-
<body>
13-
<div id="mocha"></div>
14-
<script src="../node_modules/mocha/mocha.js"></script>
15-
<script src="../node_modules/chai/chai.js"></script>
16-
<script src="../packages/core/dist/umd/ffmpeg-core.js"></script>
17-
<script src="./test-helper-browser.js"></script>
18-
<script type="text/javascript">
19-
window.FFMPEG_TYPE = "st";
20-
</script>
21-
<script>
22-
mocha.setup("bdd");
23-
mocha.timeout(60000);
24-
</script>
25-
<script src="./ffmpeg-core.test.js"></script>
26-
<script>
27-
window.expect = chai.expect;
28-
mocha.run();
29-
</script>
30-
</body>
3+
<head>
4+
<meta charset="UTF-8" />
5+
<title>FFmpeg Unit Test</title>
6+
<link rel="stylesheet" href="../node_modules/mocha/mocha.css" />
7+
</head>
8+
<body>
9+
<div id="mocha"></div>
10+
<script src="../node_modules/mocha/mocha.js"></script>
11+
<script src="../node_modules/chai/chai.js"></script>
12+
<script src="../packages/core/dist/umd/ffmpeg-core.js"></script>
13+
<script src="./test-helper-browser.js"></script>
14+
<script type="text/javascript">
15+
window.FFMPEG_TYPE = "st";
16+
</script>
17+
<script>
18+
mocha.setup('bdd');
19+
mocha.timeout(60000);
20+
</script>
21+
<script src="./ffmpeg-core.test.js"></script>
22+
<script>
23+
window.expect = chai.expect;
24+
mocha.run();
25+
</script>
26+
</body>
3127
</html>

tests/ffmpeg-mt.test.html

+25-30
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,28 @@
11
<!DOCTYPE html>
22
<html lang="en">
3-
<head>
4-
<meta charset="UTF-8" />
5-
<meta http-equiv="Cross-Origin-Opener-Policy" content="same-origin" />
6-
<meta http-equiv="Cross-Origin-Embedder-Policy" content="require-corp" />
7-
<meta http-equiv="Cross-Origin-Resource-Policy" content="cross-origin" />
8-
<meta http-equiv="Origin-Agent-Cluster" content="?1" />
9-
<title>FFmpeg Unit Test</title>
10-
<link rel="stylesheet" href="../node_modules/mocha/mocha.css" />
11-
</head>
12-
<body>
13-
<div id="mocha"></div>
14-
<script src="../node_modules/mocha/mocha.js"></script>
15-
<script src="../node_modules/chai/chai.js"></script>
16-
<script src="../packages/ffmpeg/dist/umd/ffmpeg.js"></script>
17-
<script src="./test-helper-browser.js"></script>
18-
<script type="text/javascript">
19-
window.FFMPEG_TYPE = "mt";
20-
window.CORE_URL =
21-
"http://localhost:3000/packages/core-mt/dist/umd/ffmpeg-core.js";
22-
</script>
23-
<script>
24-
mocha.setup("bdd");
25-
mocha.timeout(60000);
26-
</script>
27-
<script src="./ffmpeg.test.js"></script>
28-
<script>
29-
window.expect = chai.expect;
30-
mocha.run();
31-
</script>
32-
</body>
3+
<head>
4+
<meta charset="UTF-8" />
5+
<title>FFmpeg Unit Test</title>
6+
<link rel="stylesheet" href="../node_modules/mocha/mocha.css" />
7+
</head>
8+
<body>
9+
<div id="mocha"></div>
10+
<script src="../node_modules/mocha/mocha.js"></script>
11+
<script src="../node_modules/chai/chai.js"></script>
12+
<script src="../packages/ffmpeg/dist/umd/ffmpeg.js"></script>
13+
<script src="./test-helper-browser.js"></script>
14+
<script type="text/javascript">
15+
window.FFMPEG_TYPE = "mt";
16+
window.CORE_URL = "http://localhost:3000/packages/core-mt/dist/umd/ffmpeg-core.js";
17+
</script>
18+
<script>
19+
mocha.setup('bdd');
20+
mocha.timeout(60000);
21+
</script>
22+
<script src="./ffmpeg.test.js"></script>
23+
<script>
24+
window.expect = chai.expect;
25+
mocha.run();
26+
</script>
27+
</body>
3328
</html>

tests/ffmpeg-st.test.html

+25-30
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,28 @@
11
<!DOCTYPE html>
22
<html lang="en">
3-
<head>
4-
<meta charset="UTF-8" />
5-
<meta http-equiv="Cross-Origin-Opener-Policy" content="same-origin" />
6-
<meta http-equiv="Cross-Origin-Embedder-Policy" content="require-corp" />
7-
<meta http-equiv="Cross-Origin-Resource-Policy" content="same-origin" />
8-
<meta http-equiv="Origin-Agent-Cluster" content="?1" />
9-
<title>FFmpeg Unit Test</title>
10-
<link rel="stylesheet" href="../node_modules/mocha/mocha.css" />
11-
</head>
12-
<body>
13-
<div id="mocha"></div>
14-
<script src="../node_modules/mocha/mocha.js"></script>
15-
<script src="../node_modules/chai/chai.js"></script>
16-
<script src="../packages/ffmpeg/dist/umd/ffmpeg.js"></script>
17-
<script src="./test-helper-browser.js"></script>
18-
<script type="text/javascript">
19-
window.FFMPEG_TYPE = "st";
20-
window.CORE_URL =
21-
"http://localhost:3000/packages/core/dist/umd/ffmpeg-core.js";
22-
</script>
23-
<script>
24-
mocha.setup("bdd");
25-
mocha.timeout(60000);
26-
</script>
27-
<script src="./ffmpeg.test.js"></script>
28-
<script>
29-
window.expect = chai.expect;
30-
mocha.run();
31-
</script>
32-
</body>
3+
<head>
4+
<meta charset="UTF-8" />
5+
<title>FFmpeg Unit Test</title>
6+
<link rel="stylesheet" href="../node_modules/mocha/mocha.css" />
7+
</head>
8+
<body>
9+
<div id="mocha"></div>
10+
<script src="../node_modules/mocha/mocha.js"></script>
11+
<script src="../node_modules/chai/chai.js"></script>
12+
<script src="../packages/ffmpeg/dist/umd/ffmpeg.js"></script>
13+
<script src="./test-helper-browser.js"></script>
14+
<script type="text/javascript">
15+
window.FFMPEG_TYPE = "st";
16+
window.CORE_URL = "http://localhost:3000/packages/core/dist/umd/ffmpeg-core.js";
17+
</script>
18+
<script>
19+
mocha.setup('bdd');
20+
mocha.timeout(60000);
21+
</script>
22+
<script src="./ffmpeg.test.js"></script>
23+
<script>
24+
window.expect = chai.expect;
25+
mocha.run();
26+
</script>
27+
</body>
3328
</html>

tests/ffmpeg.test.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
const { FFmpeg } = window.FFmpegWASM;
1+
const { FFmpeg } = FFmpegWASM;
22

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

0 commit comments

Comments
 (0)