The build system is updated to generate two CSS outputs:
A legacy stylesheet (.css) where CSS custom properties are flattened
using postcss-custom-properties for compatibility with older browsers. A
modern stylesheet (.modern.css) that preserves CSS custom properties for
modern browsers.
Both outputs are generated from the same LESS source and processed
through Autoprefixer and cssnano, ensuring consistent styling while
supporting different browser capabilities. This enables a gradual
migration path between legacy and modern UI styling without breaking
existing consumers.
Close https://github.com/shaka-project/shaka-player/issues/10145
- Add postcss-cli, autoprefixer, and cssnano to the build pipeline.
- Remove legacy '--clean-css' minification from the lessc step.
- Configure BROWSERSLIST env var for Chrome 38, Safari 8 and Firefox 42.
- Clean up redundant vendor prefixes (-webkit-, -moz-, etc.) from LESS
files.
Related to https://github.com/shaka-project/shaka-player/issues/10145
Two patches:
- Fix warning in base.js triggered by the latest compiler update
- Revert default setting of ENABLE_DEBUG_LOADER to previous value to fix
uncompiled mode
- Bump to Java 21 to support the new compiler.
- Removes externs now included in the compiler.
- Removes compiler flag no longer supported.
- Adds onkeystatuseschange to MediaKeySession polyfills (now in compiler
externs).
- This new compiler now triggers a warning in the Closure Library, which
will get fixed in a follow-up to update the library.
This PR adds LCEVC SEI tests to Shaka Player. It plays an LCEVC SEI
content for 6 seconds and checks LCEVCdec public APIs to verify that
LCEVC is enabled and LCEVC data was found in SEI.
Fixes#8278
Migrates deprecated rules from `eslint-config-google` and our rules as
well to stylistic.
Additionally removes broken `eslint-disable` python check and replaces
with eslint `reportUnusedDisableDirectives` option.
Adds a replacement for removed JSDoc checks from ESLint v9.
Additionally fixes lots of issues found in the JSDoc, such as:
- missing `@param`/`@return` annotations
- bad formatting
- params order
- param name in the same line as type definition (tried to disable it,
but it was causing other issues and we didn't have lots of places with
such formatting)
Minor fixes in code found by Closure Compiler after fixing JSDoc are
also included.
Migrates old config file to new flat config recommended by ESLint now.
Removes jsdoc rules, as they are not available anymore in ESLint.
Instead, if we want to have them, we should use `eslint-jsdoc-plugin`.
This upgrades the compiler and reworks the AbortSignal polyfill to match
the new compiler externs for that class. This is important to make Shaka
Player compatible with the latest compilers in use inside Google.
Note that the Closure compiler is deprecated, so this should be our
final upgrade. We will some day move to TypeScript.
This does _not_ update the Closure library, because the latest version
causes failures we don't understand in the loading mechanism in
test/test/boot.js.
- Upgrade the encryption scheme polyfill to a version that is resilient
against multiple copies (one in compiled shaka library, one in source
form).
---------
Co-authored-by: Álvaro Velad Galván <ladvan91@hotmail.com>