From 97b36a769c833094ebe4842c24b82cbfe9ca76c9 Mon Sep 17 00:00:00 2001 From: Emily KL <4672118+emilykl@users.noreply.github.com> Date: Tue, 27 Jan 2026 17:29:14 -0500 Subject: [PATCH 01/12] pin chrome version in noCI tests to 146.0.7649.0 --- .github/workflows/test.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 5db9c2d67d8..2f450b9e530 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -16,6 +16,8 @@ jobs: steps: - uses: browser-actions/setup-chrome@v1 + with: + chrome-version: 146.0.7649.0 - uses: actions/checkout@v4 - name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@v4 From c41b4e9982cd3ab073012a82a216b4b3e607e336 Mon Sep 17 00:00:00 2001 From: Emily KL <4672118+emilykl@users.noreply.github.com> Date: Tue, 27 Jan 2026 18:05:08 -0500 Subject: [PATCH 02/12] use setup-chrome@v2 --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 2f450b9e530..fee603ee027 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -15,7 +15,7 @@ jobs: node-version: [18.x] steps: - - uses: browser-actions/setup-chrome@v1 + - uses: browser-actions/setup-chrome@v2 with: chrome-version: 146.0.7649.0 - uses: actions/checkout@v4 From 1a072b31f829e43f6048651ed8ca57e79a360730 Mon Sep 17 00:00:00 2001 From: Emily KL <4672118+emilykl@users.noreply.github.com> Date: Tue, 27 Jan 2026 18:07:05 -0500 Subject: [PATCH 03/12] install chromedriver --- .github/workflows/test.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index fee603ee027..544f48923c3 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -18,6 +18,7 @@ jobs: - uses: browser-actions/setup-chrome@v2 with: chrome-version: 146.0.7649.0 + install-chromedriver: true - uses: actions/checkout@v4 - name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@v4 From 0007298af16147e859bd4a851cecc7533efd440f Mon Sep 17 00:00:00 2001 From: Emily KL <4672118+emilykl@users.noreply.github.com> Date: Tue, 27 Jan 2026 18:17:21 -0500 Subject: [PATCH 04/12] set CHROME_BIN env var so that Chrome version installed by setup-chrome is actually used by karma --- .github/workflows/test.yml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 544f48923c3..d8a74415395 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -16,6 +16,7 @@ jobs: steps: - uses: browser-actions/setup-chrome@v2 + id: setup-chrome with: chrome-version: 146.0.7649.0 install-chromedriver: true @@ -25,7 +26,12 @@ jobs: with: node-version: ${{ matrix.node-version }} cache: 'npm' - - run: chrome --version + - name: Set Chrome binary path + run: echo "CHROME_BIN=${{ steps.setup-chrome.outputs.chrome-path }}" >> $GITHUB_ENV + - name: Verify Chrome version + run: | + echo "Chrome path: $CHROME_BIN" + $CHROME_BIN --version - run: ls - run: npm run pretest - run: npm ci From 4bca1d892a6d6201571a42d30ee0a748b8baca79 Mon Sep 17 00:00:00 2001 From: Emily KL <4672118+emilykl@users.noreply.github.com> Date: Wed, 28 Jan 2026 12:02:51 -0500 Subject: [PATCH 05/12] launch chrome with --no-sandbox in CI --- test/jasmine/karma.conf.js | 1 + 1 file changed, 1 insertion(+) diff --git a/test/jasmine/karma.conf.js b/test/jasmine/karma.conf.js index c82cc9bfba6..9ed3588b7e1 100644 --- a/test/jasmine/karma.conf.js +++ b/test/jasmine/karma.conf.js @@ -261,6 +261,7 @@ func.defaultConfig = { '--touch-events', '--window-size=' + argv.width + ',' + argv.height, isCI ? '--ignore-gpu-blacklist' : '', + isCI ? '--no-sandbox' : '', isBundleTest && basename(testFileGlob) === 'no_webgl' ? '--disable-webgl' : '' ] }, From 88bc352b1b4ec9365fdc4e44578e71e51dae2ee0 Mon Sep 17 00:00:00 2001 From: Emily KL <4672118+emilykl@users.noreply.github.com> Date: Wed, 28 Jan 2026 14:28:16 -0500 Subject: [PATCH 06/12] add --use-gl=desktop flag for Chrome in CI --- test/jasmine/karma.conf.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/test/jasmine/karma.conf.js b/test/jasmine/karma.conf.js index 9ed3588b7e1..9f3eab599f0 100644 --- a/test/jasmine/karma.conf.js +++ b/test/jasmine/karma.conf.js @@ -253,14 +253,15 @@ func.defaultConfig = { // // window-size values came from observing default size // - // '--ignore-gpu-blacklist' allow to test WebGL on CI (!!!) + // '--ignore-gpu-blocklist' allow to test WebGL on CI (!!!) customLaunchers: { _Chrome: { base: 'Chrome', flags: [ '--touch-events', '--window-size=' + argv.width + ',' + argv.height, - isCI ? '--ignore-gpu-blacklist' : '', + isCI ? '--ignore-gpu-blocklist' : '', + isCI ? '--use-gl=desktop' : '', isCI ? '--no-sandbox' : '', isBundleTest && basename(testFileGlob) === 'no_webgl' ? '--disable-webgl' : '' ] From 2f947c4d45f4848cd2325f4d12b16f6c7e3041a7 Mon Sep 17 00:00:00 2001 From: Emily KL <4672118+emilykl@users.noreply.github.com> Date: Wed, 28 Jan 2026 14:57:43 -0500 Subject: [PATCH 07/12] different combination of Chrome flags --- test/jasmine/karma.conf.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/test/jasmine/karma.conf.js b/test/jasmine/karma.conf.js index 9f3eab599f0..bc8506bddf1 100644 --- a/test/jasmine/karma.conf.js +++ b/test/jasmine/karma.conf.js @@ -261,7 +261,8 @@ func.defaultConfig = { '--touch-events', '--window-size=' + argv.width + ',' + argv.height, isCI ? '--ignore-gpu-blocklist' : '', - isCI ? '--use-gl=desktop' : '', + isCI ? '--use-gl=angle' : '', + isCI ? '--use-angle=swiftshader' : '', isCI ? '--no-sandbox' : '', isBundleTest && basename(testFileGlob) === 'no_webgl' ? '--disable-webgl' : '' ] From 76562663c59a99a8715d0fae78ae66157c1feb35 Mon Sep 17 00:00:00 2001 From: Emily KL <4672118+emilykl@users.noreply.github.com> Date: Wed, 28 Jan 2026 15:54:38 -0500 Subject: [PATCH 08/12] remove exact chrome version pin --- .github/workflows/test.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index d8a74415395..93caad4a454 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -17,9 +17,6 @@ jobs: steps: - uses: browser-actions/setup-chrome@v2 id: setup-chrome - with: - chrome-version: 146.0.7649.0 - install-chromedriver: true - uses: actions/checkout@v4 - name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@v4 From 6b00e452417dda36d0ed43093404f63a2d2cb92a Mon Sep 17 00:00:00 2001 From: Emily KL <4672118+emilykl@users.noreply.github.com> Date: Wed, 28 Jan 2026 16:14:50 -0500 Subject: [PATCH 09/12] use swiftshader ONLY for github actions tests --- test/jasmine/karma.conf.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/test/jasmine/karma.conf.js b/test/jasmine/karma.conf.js index bc8506bddf1..aa6636017a3 100644 --- a/test/jasmine/karma.conf.js +++ b/test/jasmine/karma.conf.js @@ -261,8 +261,10 @@ func.defaultConfig = { '--touch-events', '--window-size=' + argv.width + ',' + argv.height, isCI ? '--ignore-gpu-blocklist' : '', - isCI ? '--use-gl=angle' : '', - isCI ? '--use-angle=swiftshader' : '', + // The following two flags are needed only for the "NoCI" tests which run in GitHub Actions, + // since the GPU is not available to those runners and therefore we need to use SwiftShader instead. + isCI && process.env.GITHUB_ACTIONS ? '--use-gl=angle' : '', + isCI && process.env.GITHUB_ACTIONS ? '--use-angle=swiftshader' : '', isCI ? '--no-sandbox' : '', isBundleTest && basename(testFileGlob) === 'no_webgl' ? '--disable-webgl' : '' ] From 880f838242ae2ebdd1406dd684fe7851dadfa200 Mon Sep 17 00:00:00 2001 From: Emily KL <4672118+emilykl@users.noreply.github.com> Date: Wed, 28 Jan 2026 19:57:50 -0500 Subject: [PATCH 10/12] adjust conditional Chrome flags --- test/jasmine/karma.conf.js | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/test/jasmine/karma.conf.js b/test/jasmine/karma.conf.js index aa6636017a3..6a7d08554e7 100644 --- a/test/jasmine/karma.conf.js +++ b/test/jasmine/karma.conf.js @@ -261,11 +261,14 @@ func.defaultConfig = { '--touch-events', '--window-size=' + argv.width + ',' + argv.height, isCI ? '--ignore-gpu-blocklist' : '', - // The following two flags are needed only for the "NoCI" tests which run in GitHub Actions, - // since the GPU is not available to those runners and therefore we need to use SwiftShader instead. + // The following three flags are needed only for the "NoCI" tests which run in GitHub Actions. + // The first two are needed because the GPU is not available to those runners, + // and therefore we need to use SwiftShader instead. + // The third flag is needed because the Chrome browser installed by the CI job runner + // fails without it. isCI && process.env.GITHUB_ACTIONS ? '--use-gl=angle' : '', isCI && process.env.GITHUB_ACTIONS ? '--use-angle=swiftshader' : '', - isCI ? '--no-sandbox' : '', + isCI && process.env.GITHUB_ACTIONS ? '--no-sandbox' : '', isBundleTest && basename(testFileGlob) === 'no_webgl' ? '--disable-webgl' : '' ] }, From 7653cf08fad32b3fe23bce093aa3512997a5b1e3 Mon Sep 17 00:00:00 2001 From: Emily KL <4672118+emilykl@users.noreply.github.com> Date: Thu, 29 Jan 2026 15:55:27 -0500 Subject: [PATCH 11/12] Try simply --enable-unsafe-swiftshader flag instead Co-authored-by: Cameron DeCoster --- test/jasmine/karma.conf.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/test/jasmine/karma.conf.js b/test/jasmine/karma.conf.js index 6a7d08554e7..6f46d409c1c 100644 --- a/test/jasmine/karma.conf.js +++ b/test/jasmine/karma.conf.js @@ -266,8 +266,7 @@ func.defaultConfig = { // and therefore we need to use SwiftShader instead. // The third flag is needed because the Chrome browser installed by the CI job runner // fails without it. - isCI && process.env.GITHUB_ACTIONS ? '--use-gl=angle' : '', - isCI && process.env.GITHUB_ACTIONS ? '--use-angle=swiftshader' : '', + isCI && process.env.GITHUB_ACTIONS ? '--enable-unsafe-swiftshader' : '', isCI && process.env.GITHUB_ACTIONS ? '--no-sandbox' : '', isBundleTest && basename(testFileGlob) === 'no_webgl' ? '--disable-webgl' : '' ] From e22bfd21562c1dc6311d6b792584d7dfaf27cf40 Mon Sep 17 00:00:00 2001 From: Emily KL <4672118+emilykl@users.noreply.github.com> Date: Thu, 29 Jan 2026 17:14:07 -0500 Subject: [PATCH 12/12] update comment --- test/jasmine/karma.conf.js | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/test/jasmine/karma.conf.js b/test/jasmine/karma.conf.js index 6f46d409c1c..2c7f075c3ee 100644 --- a/test/jasmine/karma.conf.js +++ b/test/jasmine/karma.conf.js @@ -261,10 +261,11 @@ func.defaultConfig = { '--touch-events', '--window-size=' + argv.width + ',' + argv.height, isCI ? '--ignore-gpu-blocklist' : '', - // The following three flags are needed only for the "NoCI" tests which run in GitHub Actions. - // The first two are needed because the GPU is not available to those runners, - // and therefore we need to use SwiftShader instead. - // The third flag is needed because the Chrome browser installed by the CI job runner + // The following two flags are needed only for the "NoCI" tests which run in GitHub Actions. + // The first is needed because the GPU is not available to those runners, + // and therefore we need to use SwiftShader instead (which is disabled by default as of Jan 2026, + // hence the need for a flag to manually enable it). + // The second flag is needed because the Chrome browser installed by the CI job runner // fails without it. isCI && process.env.GITHUB_ACTIONS ? '--enable-unsafe-swiftshader' : '', isCI && process.env.GITHUB_ACTIONS ? '--no-sandbox' : '',