Commit Graph

1355 Commits

Author SHA1 Message Date
Ingvar Stepanyan
e7d55bf903 Update lib/entry-data-plugin.js
Co-authored-by: Jake Archibald <jaffathecake@gmail.com>
2021-06-02 17:03:14 +01:00
Ingvar Stepanyan
687cf5aae2 Bundle URL assets as dependencies
I've added support for `new URL(..., import.meta.url)` pattern accepted by many bundlers to wasm-bindgen and Emscripten, both for Wasm files as well as for side Workers autogenerated to support multithreading.

On the apps side like Squoosh this means we no longer have to manually specify URLs to be passed to wasm-bindgen or Emscripten init functions. In this PR I'm primarily doing just that - removing all the manual Wasm URL locators, as well as the associated logic.

One notable change on the build system side is that, in order for Wasm and multithreading-related Workers to be detected as dependencies, I'm now walking over `referencedFiles` in addition to `imports` when collecting list of dependencies in `getDependencies` function (client-bundle-plugin.js).

As a side effect, it also included other linked assets - images and CSS - which simplified quite a few caching lists in to-cache.ts as well. Instead of having to manually specify each asset that needs to be included, the logic is inverted and only few extra assets had to be excluded to keep the list of in items cached on the first load as low as it was before the change.

All in all, I think this simplification is worth it and even helped to accidentally uncover & fix one caching bug where WP2 regular JS was cached in addition to WP2 multithreaded JS simultaneously.
2021-06-02 17:03:14 +01:00
Ingvar Stepanyan
d63823d196 Add @web/rollup-plugin-import-meta-assets 2021-06-02 17:03:14 +01:00
Ingvar Stepanyan
7d111b6a43 Update wasm-bindgen 2021-06-02 17:03:14 +01:00
Ingvar Stepanyan
426f31e548 Upgrade Emscripten to 2.0.21
Few notes:
 - Lots of deprecated SIMD intrinsic warnings & errors in JPEG-XL -> Highway; had to suppress erorrs to make project build.
 - Moved couple of common link flags to cpp.Dockerfile (note: can't move `EXPORT_ES6` otherwise `configure` will fail).
 - MODULARIZE=1 is no longer necessary and implied by EXPORT_ES6.
 - EXPORT_NAME=... is no longer necessary in EXPORT_ES6.
 - Changed visdif to also use EXPORT_ES6 and ENVIRONMENT=node instead of generic JS.
2021-06-02 17:03:14 +01:00
Ingvar Stepanyan
dd0adba6b1 Revert "Remove SIMD for now (#1025)"
This reverts commit f779e13bc8.
2021-06-02 17:03:14 +01:00
ergunsh
30445927ea Add initial ts setup for libsquoosh
Convert `image_data` to typescript as an example
2021-05-31 21:45:28 +02:00
Surma
31b263fc27 Merge pull request #1035 from JustTestCode/patch-1
Update README.md
2021-05-30 10:06:01 +01:00
JustTestCode
fc590918ed Update README.md
I check 2 hours, why can't run...
2021-05-30 12:16:58 +08:00
Surma
c4783b03df Merge pull request #1031 from GoogleChromeLabs/defensive-web-codec 2021-05-27 10:30:38 +01:00
Jake Archibald
8f9c0ff0e7 More defensive use of isTypeSupported 2021-05-27 09:14:13 +01:00
Jake Archibald
40c81ef782 Remove circular dependency 2021-05-27 09:13:17 +01:00
Howard Chiam
397193a5f5 <title> to indicate progress/error (#1023)
Fixes #644
2021-05-25 14:29:42 +01:00
Surma
f91c7a267d libsquoosh v0.2.3 2021-05-25 11:49:54 +01:00
Surma
99f2286a73 Better error handling for libSquoosh 2021-05-25 11:46:30 +01:00
Surma
f414092ea9 libsquoosh v0.2.2 2021-05-24 23:58:15 +01:00
Surma
c683dfaaed Merge branch 'libsquoosh-kinks' into dev 2021-05-24 23:57:33 +01:00
Surma
12fb647fde Fix JXL in libsquoosh 2021-05-24 23:57:24 +01:00
Surma
2ee1dfa867 Fix AVIF in libsquoosh 2021-05-24 23:54:26 +01:00
Surma
fa331586d7 Handle more input types gracefully 2021-05-24 17:56:53 +01:00
Surma
4192c607f1 Merge pull request #1018 from GoogleChromeLabs/web-codecs
Add a call-out to Web Codecs API during decoding
2021-05-24 17:08:54 +01:00
Surma
128096afd9 Make TS happy 2021-05-24 16:29:12 +01:00
Surma
58661078e2 Update src/client/lazy-app/util/index.ts
Co-authored-by: Jake Archibald <jaffathecake@gmail.com>
2021-05-24 16:26:20 +01:00
Surma
cbfa503fcb Update src/client/lazy-app/util/index.ts
Co-authored-by: Jake Archibald <jaffathecake@gmail.com>
2021-05-24 16:26:05 +01:00
Jake Archibald
96b6dc8e6e Merge branch 'dev' into web-codecs 2021-05-24 16:06:09 +01:00
Surma
4033d1c965 Move logic to builtinDecode 2021-05-24 15:39:38 +01:00
Ingvar Stepanyan
f779e13bc8 Remove SIMD for now (#1025)
This is by no means a proper fix, but Chrome 91 (stable tomorrow) brings some breaking changes to SIMD, and I'd rather disable SIMD for now to avoid breaking Squoosh altogether once it hits stable, and work on a proper fix in a separate branch.
2021-05-24 12:50:48 +01:00
Surma
2f00fe2b1b I’m an idiot 2021-05-21 15:14:22 +01:00
Surma
118885cd26 Fall through to built-in decoding 2021-05-21 15:13:00 +01:00
Jake Archibald
af80643809 Remove redundant code (#1024) 2021-05-21 11:16:47 +01:00
Surma
1aba7b51ee Merge pull request #1021 from atjn/documentation-fixes 2021-05-20 10:08:27 +01:00
Surma
b0a7b21b0b Merge branch 'dev' into documentation-fixes 2021-05-20 10:00:36 +01:00
Surma
8dfe35aa77 Merge pull request #1019 from atjn/readdir-fix-rebase 2021-05-20 09:59:08 +01:00
atjn
1a891072c0 Fix broken links after libsquoosh release 2021-05-20 09:36:37 +02:00
atjn
720cb98872 [CLI] Handle subdirectories without failing 2021-05-20 09:12:29 +02:00
Surma
4e1dcb819c Release v0.2.1 of libSquoosh 2021-05-19 12:30:05 +01:00
Surma
c36f4bebb8 Update libSquoosh README after rename 2021-05-19 12:28:35 +01:00
Surma
c04bb54f0d Merge branch 'API' into dev 2021-05-19 12:23:07 +01:00
Surma
4890c56abb Publish v0.2.0 of @squoosh/lib 2021-05-19 12:22:50 +01:00
Surma
392aced394 Introduce libSquoosh 2021-05-19 12:15:00 +01:00
Surma
8bcaeb2f78 Simplify types a bit 2021-05-18 20:04:35 +01:00
Surma
c417bd0a7a Its working now 2021-05-18 20:02:43 +01:00
Surma
eb8204d69b Add a call-out to Web Codecs API 2021-05-18 19:53:39 +01:00
atjn
25754b91b7 Change 'encodedAs' to 'encodedWith' 2021-05-13 19:34:50 +02:00
atjn
875c24525b Upgrade commander to v7 2021-05-13 19:07:42 +02:00
atjn
50ed5febd3 Stick to the term 'preprocessor' 2021-05-13 16:53:15 +02:00
Ingvar Stepanyan
10c5082499 Add back a loader customization for full URL (#1016)
Emscripten uses dynamic `import(fullUrlOfTheMainJS)` in generated Workers.

It appears that upstream rollup-plugin-off-main-thread never handled this correctly, but we had a customization in Squoosh loader template that allowed those anyway, which I removed together with most other customizations in #1007, thus breaking Emscripten codecs.

This adds a hotfix back, but we need to fix this properly upstream too (TBD separately).
2021-05-13 15:48:23 +01:00
Jake Archibald
f0fb891498 Updating oxi, adding interlace option (#1014) 2021-05-13 14:22:19 +01:00
Ingvar Stepanyan
b9b6e57581 wasm-bindgen-rayon and new OMT plugin (#1007)
* WIP: wasm-bindgen-rayon and new OMT plugin

* Bump package-lock

* Make OMT work again

* Update year

* Restore accidental change

* Prevent minification of `nextDefineUri`

* Delay loading external deps

This gives inline `define` calls a chance to define dependencies for earlier `define` calls on the same page.

* Add comment
2021-05-13 13:50:31 +01:00
Jake Archibald
ff9dea465f Updating AVIF, and 'auto' SSIM option (#1008) 2021-05-10 18:56:33 +01:00