[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

[tor-commits] [Git][tpo/applications/tor-browser-build][main] Bug 41702: Switch from uglifyjs to terser.



Title: GitLab

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:

Changes:

  • projects/browser/build.android
    ... ... @@ -3,12 +3,6 @@
    3 3
     
    
    4 4
     [% pc('android-sdk', 'var/setup', { sdk_tarfile => c("input_files_by_name/android-sdk") }) %]
    
    5 5
     
    
    6
    -[% IF c("var/android-x86_64") -%]
    
    7
    -  tar -C /var/tmp/dist -xf $rootdir/[% c('input_files_by_name/node') %]
    
    8
    -  export PATH=/var/tmp/dist/node/bin:$PATH
    
    9
    -  tar -C /var/tmp/dist -xf $rootdir/[% c('input_files_by_name/uglifyjs') %]
    
    10
    -[% END -%]
    
    11
    -
    
    12 6
     # Bundle our extension(s).
    
    13 7
     #
    
    14 8
     # NoScript will be copied over to the profile folder
    
    ... ... @@ -65,11 +59,6 @@ function generate_apk {
    65 59
       [% IF c("var/tor-browser") -%]
    
    66 60
         cp -a ../moat_countries.json ../tor/pluggable_transports/pt_config.json chrome/toolkit/content/global/
    
    67 61
       [% END -%]
    
    68
    -  [% IF c("var/android-x86_64") -%]
    
    69
    -    find actors chrome modules moz-src \
    
    70
    -      -name '*.js' -or -name '*.mjs' \
    
    71
    -      -exec /var/tmp/dist/uglifyjs/bin/uglifyjs --in-situ {} \;
    
    72
    -  [% END -%]
    
    73 62
       [% IF !c("var/android-armv7") -%]
    
    74 63
         rm -rf armeabi-v7a
    
    75 64
       [% END -%]
    

  • projects/browser/config
    ... ... @@ -160,9 +160,3 @@ input_files:
    160 160
         # tor-browser-build#40920
    
    161 161
       - filename: sort-baseline.py
    
    162 162
         enable: '[% c("var/android") %]'
    163
    -  - project: node
    
    164
    -    name: node
    
    165
    -    enable: '[% c("var/android-x86_64") %]'
    
    166
    -  - project: uglifyjs
    
    167
    -    name: uglifyjs
    
    168
    -    enable: '[% c("var/android-x86_64") %]'

  • projects/geckoview/build_common
    ... ... @@ -27,6 +27,8 @@ export NIMBUS_FML=/var/tmp/dist/application-services/nimbus-fml
    27 27
     
    
    28 28
     tar -C /var/tmp/build -xf [% project %]-[% c('version') %].tar.[% c('compress_tar') %]
    
    29 29
     
    
    30
    +tar -C /var/tmp/build/[% project %]-*/tools/terser -xf [% c("input_files_by_name/terser") %]
    
    31
    +
    
    30 32
     [% c("var/set_MOZ_BUILD_DATE") %]
    
    31 33
     
    
    32 34
     export JAVA_HOME=/usr/lib/jvm/java-1.17.0-openjdk-amd64
    

  • projects/geckoview/config
    ... ... @@ -132,6 +132,9 @@ steps:
    132 132
             name: glean-wheels
    
    133 133
             sha256sum: '[% pc("glean-parser", "var/glean_wheels_sha256sum") %]'
    
    134 134
             enable: '[% !c("var/generate_gradle_dependencies_list") %]'
    
    135
    +      - project: terser
    
    136
    +        name: terser
    
    137
    +        pkg_type: build
    
    135 138
           - name: tor-expert-bundle-aar
    
    136 139
             project: tor-expert-bundle-aar
    
    137 140
             pkg_type: build
    
    ... ... @@ -190,6 +193,8 @@ input_files:
    190 193
       - project: oss-licenses-plugin
    
    191 194
         name: oss-licenses-plugin
    
    192 195
         enable: '[% !c("var/generate_gradle_dependencies_list") %]'
    
    196
    +  - project: terser
    
    197
    +    name: terser
    
    193 198
       - name: tor-expert-bundle-aar
    
    194 199
         project: tor-expert-bundle-aar
    
    195 200
       - project: firefox-l10n
    

  • projects/geckoview/list_toolchain_updates_checks
    ... ... @@ -128,3 +128,9 @@ EOF
    128 128
     needed=$(ls third_party/python/glean_parser | perl -ne "$p")
    
    129 129
     current='[% pc("glean-parser", "version") %]'
    
    130 130
     check_update_needed glean-parser "$needed" "$current"
    
    131
    +
    
    132
    +# terser
    
    133
    +
    
    134
    +needed=$(jq -r '.dependencies.terser' tools/terser/package.json)
    
    135
    +current='[% pc("terser", "version") %]'
    
    136
    +check_update_needed terser "$needed" "$current"

  • projects/terser/README.md
    1
    +Mozilla switched from JSMin (which produced invalid JS under some circumstances)
    
    2
    +with to terser in
    
    3
    +[Bug 1967968](https://bugzilla.mozilla.org/show_bug.cgi?id=1967968).
    
    4
    +
    
    5
    +However, they did not version it.
    
    6
    +Instead, they create an archive in their CI starting from a `package-lock.json`.
    
    7
    +
    
    8
    +This project is the replacement for that archive.
    
    9
    +
    
    10
    +When updating Firefox, remember to update this project too, if needed.

  • projects/terser/build
    1
    +#!/bin/bash
    
    2
    +[% c("var/set_default_env") -%]
    
    3
    +
    
    4
    +mkdir -p /var/tmp/dist
    
    5
    +tar -C /var/tmp/dist -xf $rootdir/[% c('input_files_by_name/node') %]
    
    6
    +export PATH=/var/tmp/dist/node/bin:$PATH
    
    7
    +
    
    8
    +# See also taskcluster/scripts/misc/terser.sh.
    
    9
    +
    
    10
    +mkdir terser
    
    11
    +mv package*.json terser
    
    12
    +cd terser
    
    13
    +npm ci --loglevel=error
    
    14
    +
    
    15
    +[% c('tar', {
    
    16
    +    tar_src => [ 'node_modules' ],
    
    17
    +    tar_args => '-caf ' _ dest_dir _ '/' _ c('filename'),
    
    18
    +  }) %]

  • projects/terser/config
    1
    +version: '5.44.0'
    
    2
    +filename: '[% project %]-[% c("version") %]-[% c("var/build_id") %].tar.[% c("compress_tar") %]'
    
    3
    +container:
    
    4
    +  use_container: 1
    
    5
    +  disable_network:
    
    6
    +    build: 0
    
    7
    +input_files:
    
    8
    +  - project: container-image
    
    9
    +    name: container-image
    
    10
    +  - project: node
    
    11
    +    name: node
    
    12
    +  # These files are in tools/terser in Firefox's source tree
    
    13
    +  - filename: 'package.json'
    
    14
    +  - filename: 'package-lock.json'

  • projects/terser/package-lock.json
    1
    +{
    
    2
    +  "name": "terser",
    
    3
    +  "version": "1.0.0",
    
    4
    +  "lockfileVersion": 3,
    
    5
    +  "requires": true,
    
    6
    +  "packages": {
    
    7
    +    "": {
    
    8
    +      "version": "1.0.0",
    
    9
    +      "dependencies": {
    
    10
    +        "terser": "5.44.0"
    
    11
    +      }
    
    12
    +    },
    
    13
    +    "node_modules/@jridgewell/gen-mapping": {
    
    14
    +      "version": "0.3.13",
    
    15
    +      "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz",
    
    16
    +      "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==",
    
    17
    +      "license": "MIT",
    
    18
    +      "dependencies": {
    
    19
    +        "@jridgewell/sourcemap-codec": "^1.5.0",
    
    20
    +        "@jridgewell/trace-mapping": "^0.3.24"
    
    21
    +      }
    
    22
    +    },
    
    23
    +    "node_modules/@jridgewell/resolve-uri": {
    
    24
    +      "version": "3.1.2",
    
    25
    +      "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
    
    26
    +      "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
    
    27
    +      "license": "MIT",
    
    28
    +      "engines": {
    
    29
    +        "node": ">=6.0.0"
    
    30
    +      }
    
    31
    +    },
    
    32
    +    "node_modules/@jridgewell/source-map": {
    
    33
    +      "version": "0.3.11",
    
    34
    +      "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.11.tgz",
    
    35
    +      "integrity": "sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==",
    
    36
    +      "license": "MIT",
    
    37
    +      "dependencies": {
    
    38
    +        "@jridgewell/gen-mapping": "^0.3.5",
    
    39
    +        "@jridgewell/trace-mapping": "^0.3.25"
    
    40
    +      }
    
    41
    +    },
    
    42
    +    "node_modules/@jridgewell/sourcemap-codec": {
    
    43
    +      "version": "1.5.5",
    
    44
    +      "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz",
    
    45
    +      "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==",
    
    46
    +      "license": "MIT"
    
    47
    +    },
    
    48
    +    "node_modules/@jridgewell/trace-mapping": {
    
    49
    +      "version": "0.3.30",
    
    50
    +      "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.30.tgz",
    
    51
    +      "integrity": "sha512-GQ7Nw5G2lTu/BtHTKfXhKHok2WGetd4XYcVKGx00SjAk8GMwgJM3zr6zORiPGuOE+/vkc90KtTosSSvaCjKb2Q==",
    
    52
    +      "license": "MIT",
    
    53
    +      "dependencies": {
    
    54
    +        "@jridgewell/resolve-uri": "^3.1.0",
    
    55
    +        "@jridgewell/sourcemap-codec": "^1.4.14"
    
    56
    +      }
    
    57
    +    },
    
    58
    +    "node_modules/acorn": {
    
    59
    +      "version": "8.15.0",
    
    60
    +      "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz",
    
    61
    +      "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==",
    
    62
    +      "license": "MIT",
    
    63
    +      "bin": {
    
    64
    +        "acorn": "bin/acorn"
    
    65
    +      },
    
    66
    +      "engines": {
    
    67
    +        "node": ">=0.4.0"
    
    68
    +      }
    
    69
    +    },
    
    70
    +    "node_modules/buffer-from": {
    
    71
    +      "version": "1.1.2",
    
    72
    +      "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
    
    73
    +      "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==",
    
    74
    +      "license": "MIT"
    
    75
    +    },
    
    76
    +    "node_modules/commander": {
    
    77
    +      "version": "2.20.3",
    
    78
    +      "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
    
    79
    +      "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
    
    80
    +      "license": "MIT"
    
    81
    +    },
    
    82
    +    "node_modules/source-map": {
    
    83
    +      "version": "0.6.1",
    
    84
    +      "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
    
    85
    +      "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
    
    86
    +      "license": "BSD-3-Clause",
    
    87
    +      "engines": {
    
    88
    +        "node": ">=0.10.0"
    
    89
    +      }
    
    90
    +    },
    
    91
    +    "node_modules/source-map-support": {
    
    92
    +      "version": "0.5.21",
    
    93
    +      "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz",
    
    94
    +      "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==",
    
    95
    +      "license": "MIT",
    
    96
    +      "dependencies": {
    
    97
    +        "buffer-from": "^1.0.0",
    
    98
    +        "source-map": "^0.6.0"
    
    99
    +      }
    
    100
    +    },
    
    101
    +    "node_modules/terser": {
    
    102
    +      "version": "5.44.0",
    
    103
    +      "resolved": "https://registry.npmjs.org/terser/-/terser-5.44.0.tgz",
    
    104
    +      "integrity": "sha512-nIVck8DK+GM/0Frwd+nIhZ84pR/BX7rmXMfYwyg+Sri5oGVE99/E3KvXqpC2xHFxyqXyGHTKBSioxxplrO4I4w==",
    
    105
    +      "license": "BSD-2-Clause",
    
    106
    +      "dependencies": {
    
    107
    +        "@jridgewell/source-map": "^0.3.3",
    
    108
    +        "acorn": "^8.15.0",
    
    109
    +        "commander": "^2.20.0",
    
    110
    +        "source-map-support": "~0.5.20"
    
    111
    +      },
    
    112
    +      "bin": {
    
    113
    +        "terser": "bin/terser"
    
    114
    +      },
    
    115
    +      "engines": {
    
    116
    +        "node": ">=10"
    
    117
    +      }
    
    118
    +    }
    
    119
    +  }
    
    120
    +}

  • projects/terser/package.json
    1
    +{
    
    2
    +  "version": "1.0.0",
    
    3
    +  "description": "Terser _javascript_ minifier for Mozilla builds",
    
    4
    +  "private": true,
    
    5
    +  "dependencies": {
    
    6
    +    "terser": "5.44.0"
    
    7
    +  }
    
    8
    +}

  • projects/uglifyjs/README.md deleted
    1
    -This project fetches UglifyJS without any other changes.

  • projects/uglifyjs/build deleted
    1
    -#!/bin/bash
    
    2
    -tar -xf [% project %]-[% c('version') %].tar.[% c('compress_tar') %]
    
    3
    -mv [% project %]-[% c('version') %] [% project %]
    
    4
    -tar -caf [% dest_dir %]/[% c("filename") %] [% project %]

  • projects/uglifyjs/config deleted
    1
    -version: 3.19.3
    
    2
    -filename: 'uglifyjs-[% c("version") %]-[% c("var/build_id") %].tar.[% c("compress_tar") %]'
    
    3
    -git_hash: 3ea33afc72462a470466473208a33379b7204765
    
    4
    -git_url: https://github.com/mishoo/UglifyJS.git

  • _______________________________________________
    tor-commits mailing list -- tor-commits@xxxxxxxxxxxxxxxxxxxx
    To unsubscribe send an email to tor-commits-leave@xxxxxxxxxxxxxxxxxxxx