Pier Angelo Vendrame pushed to branch main at The Tor Project / Applications / tor-browser-build Commits: abe0cfdb by Pier Angelo Vendrame at 2026-01-28T10:05:12+01:00 Bug 41702: Switch from uglifyjs to terser. Mozilla is using terser, so follow them and use terser as well. - - - - - 13 changed files: - projects/browser/build.android - projects/browser/config - projects/geckoview/build_common - projects/geckoview/config - projects/geckoview/list_toolchain_updates_checks - + projects/terser/README.md - + projects/terser/build - + projects/terser/config - + projects/terser/package-lock.json - + projects/terser/package.json - − projects/uglifyjs/README.md - − projects/uglifyjs/build - − projects/uglifyjs/config Changes: ===================================== projects/browser/build.android ===================================== @@ -3,12 +3,6 @@ [% pc('android-sdk', 'var/setup', { sdk_tarfile => c("input_files_by_name/android-sdk") }) %] -[% IF c("var/android-x86_64") -%] - tar -C /var/tmp/dist -xf $rootdir/[% c('input_files_by_name/node') %] - export PATH=/var/tmp/dist/node/bin:$PATH - tar -C /var/tmp/dist -xf $rootdir/[% c('input_files_by_name/uglifyjs') %] -[% END -%] - # Bundle our extension(s). # # NoScript will be copied over to the profile folder @@ -65,11 +59,6 @@ function generate_apk { [% IF c("var/tor-browser") -%] cp -a ../moat_countries.json ../tor/pluggable_transports/pt_config.json chrome/toolkit/content/global/ [% END -%] - [% IF c("var/android-x86_64") -%] - find actors chrome modules moz-src \ - -name '*.js' -or -name '*.mjs' \ - -exec /var/tmp/dist/uglifyjs/bin/uglifyjs --in-situ {} \; - [% END -%] [% IF !c("var/android-armv7") -%] rm -rf armeabi-v7a [% END -%] ===================================== projects/browser/config ===================================== @@ -160,9 +160,3 @@ input_files: # tor-browser-build#40920 - filename: sort-baseline.py enable: '[% c("var/android") %]' - - project: node - name: node - enable: '[% c("var/android-x86_64") %]' - - project: uglifyjs - name: uglifyjs - enable: '[% c("var/android-x86_64") %]' ===================================== projects/geckoview/build_common ===================================== @@ -27,6 +27,8 @@ export NIMBUS_FML=/var/tmp/dist/application-services/nimbus-fml tar -C /var/tmp/build -xf [% project %]-[% c('version') %].tar.[% c('compress_tar') %] +tar -C /var/tmp/build/[% project %]-*/tools/terser -xf [% c("input_files_by_name/terser") %] + [% c("var/set_MOZ_BUILD_DATE") %] export JAVA_HOME=/usr/lib/jvm/java-1.17.0-openjdk-amd64 ===================================== projects/geckoview/config ===================================== @@ -132,6 +132,9 @@ steps: name: glean-wheels sha256sum: '[% pc("glean-parser", "var/glean_wheels_sha256sum") %]' enable: '[% !c("var/generate_gradle_dependencies_list") %]' + - project: terser + name: terser + pkg_type: build - name: tor-expert-bundle-aar project: tor-expert-bundle-aar pkg_type: build @@ -190,6 +193,8 @@ input_files: - project: oss-licenses-plugin name: oss-licenses-plugin enable: '[% !c("var/generate_gradle_dependencies_list") %]' + - project: terser + name: terser - name: tor-expert-bundle-aar project: tor-expert-bundle-aar - project: firefox-l10n ===================================== projects/geckoview/list_toolchain_updates_checks ===================================== @@ -128,3 +128,9 @@ EOF needed=$(ls third_party/python/glean_parser | perl -ne "$p") current='[% pc("glean-parser", "version") %]' check_update_needed glean-parser "$needed" "$current" + +# terser + +needed=$(jq -r '.dependencies.terser' tools/terser/package.json) +current='[% pc("terser", "version") %]' +check_update_needed terser "$needed" "$current" ===================================== projects/terser/README.md ===================================== @@ -0,0 +1,10 @@ +Mozilla switched from JSMin (which produced invalid JS under some circumstances) +with to terser in +[Bug 1967968](https://bugzilla.mozilla.org/show_bug.cgi?id=1967968). + +However, they did not version it. +Instead, they create an archive in their CI starting from a `package-lock.json`. + +This project is the replacement for that archive. + +When updating Firefox, remember to update this project too, if needed. ===================================== projects/terser/build ===================================== @@ -0,0 +1,18 @@ +#!/bin/bash +[% c("var/set_default_env") -%] + +mkdir -p /var/tmp/dist +tar -C /var/tmp/dist -xf $rootdir/[% c('input_files_by_name/node') %] +export PATH=/var/tmp/dist/node/bin:$PATH + +# See also taskcluster/scripts/misc/terser.sh. + +mkdir terser +mv package*.json terser +cd terser +npm ci --loglevel=error + +[% c('tar', { + tar_src => [ 'node_modules' ], + tar_args => '-caf ' _ dest_dir _ '/' _ c('filename'), + }) %] ===================================== projects/terser/config ===================================== @@ -0,0 +1,14 @@ +version: '5.44.0' +filename: '[% project %]-[% c("version") %]-[% c("var/build_id") %].tar.[% c("compress_tar") %]' +container: + use_container: 1 + disable_network: + build: 0 +input_files: + - project: container-image + name: container-image + - project: node + name: node + # These files are in tools/terser in Firefox's source tree + - filename: 'package.json' + - filename: 'package-lock.json' ===================================== projects/terser/package-lock.json ===================================== @@ -0,0 +1,120 @@ +{ + "name": "terser", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "version": "1.0.0", + "dependencies": { + "terser": "5.44.0" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.11", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.11.tgz", + "integrity": "sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==", + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5...", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.30", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.30....", + "integrity": "sha512-GQ7Nw5G2lTu/BtHTKfXhKHok2WGetd4XYcVKGx00SjAk8GMwgJM3zr6zORiPGuOE+/vkc90KtTosSSvaCjKb2Q==", + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/acorn": { + "version": "8.15.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", + "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "license": "MIT" + }, + "node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "license": "MIT" + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tg...", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/terser": { + "version": "5.44.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.44.0.tgz", + "integrity": "sha512-nIVck8DK+GM/0Frwd+nIhZ84pR/BX7rmXMfYwyg+Sri5oGVE99/E3KvXqpC2xHFxyqXyGHTKBSioxxplrO4I4w==", + "license": "BSD-2-Clause", + "dependencies": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.15.0", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + } + } +} ===================================== projects/terser/package.json ===================================== @@ -0,0 +1,8 @@ +{ + "version": "1.0.0", + "description": "Terser JavaScript minifier for Mozilla builds", + "private": true, + "dependencies": { + "terser": "5.44.0" + } +} ===================================== projects/uglifyjs/README.md deleted ===================================== @@ -1 +0,0 @@ -This project fetches UglifyJS without any other changes. ===================================== projects/uglifyjs/build deleted ===================================== @@ -1,4 +0,0 @@ -#!/bin/bash -tar -xf [% project %]-[% c('version') %].tar.[% c('compress_tar') %] -mv [% project %]-[% c('version') %] [% project %] -tar -caf [% dest_dir %]/[% c("filename") %] [% project %] ===================================== projects/uglifyjs/config deleted ===================================== @@ -1,4 +0,0 @@ -version: 3.19.3 -filename: 'uglifyjs-[% c("version") %]-[% c("var/build_id") %].tar.[% c("compress_tar") %]' -git_hash: 3ea33afc72462a470466473208a33379b7204765 -git_url: https://github.com/mishoo/UglifyJS.git View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/commit/ab... -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/commit/ab... You're receiving this email because of your account on gitlab.torproject.org.
participants (1)
-
Pier Angelo Vendrame (@pierov)