Commit Graph

414 Commits

Author SHA1 Message Date
76f0cf10e6 FIX: Resolve short URLs after diffHTML was loaded (#14296)
Short URLs were resolved before diffHTML was loaded and content was
swapped by it, which meant that no URLs were found and the URLs remained
unsolved. This caused image elements to be blank.

* DEV: Updated diffHTML to 1.0.0-beta.20
2021-09-09 16:25:58 +03:00
f66217c0b3 DEV: updates popperjs 2.0.6 -> 2.9.3 (#14163) 2021-08-26 16:37:04 +02:00
c995b20ca4 Update translations (#14063) 2021-08-24 15:25:44 +02:00
d7c185bf3d DEV: updates chart.js to 3.5.1 (#14107) 2021-08-23 13:49:49 +02:00
8989c9e6c9 FIX: Use file.id instead of file.name for media-optimization resolvers (#14110)
This change only applies when uppy is calling the media-optimization-worker.

Since the old way of calling the worker via jQuery file uploader will
be removed soon, there is no point coming up with some random string
to use in place of the file name for the promise resolvers there, we
can live with this for now.
2021-08-23 12:10:33 +10:00
90ab520d06 FIX: Pass fileName to error handler for media optimization (#14058)
The file name is used to look up the promise to resolve; it
was being passed for the successful path but not for the
error path.
2021-08-17 09:33:16 +10:00
b626373b31 FEATURE: First pass of using uppy in the composer (#13935)
Adds uppy upload functionality behind a
enable_experimental_composer_uploader site setting (default false,
and hidden).

When enabled this site setting will make the composer-editor-uppy
component be used within composer.hbs, which in turn points to
a ComposerUploadUppy mixin which overrides the relevant
functions from ComposerUpload. This uppy uploader has parity
with all the features of jQuery file uploader in the original
composer-editor, including:

progress tracking
error handling
number of files validation
pasting files
dragging and dropping files
updating upload placeholders
upload markdown resolvers
processing actions (the only one we have so far is the media optimization
worker by falco, this works)
cancelling uploads
For now all uploads still go via the /uploads.json endpoint, direct
S3 support will be added later.

Also included in this PR are some changes to the media optimization
service, to support uppy's different file data structures, and also
to make the promise tracking and resolving more robust. Currently
it uses the file name to track promises, we can switch to something
more unique later if needed.

Does not include custom upload handlers, that will come
in a later PR, it is a tricky problem to handle.

Also, this new functionality will not be used in encrypted PMs because
encrypted PM uploads rely on custom upload handlers.
2021-08-13 09:14:34 +10:00
e951cb9aef Update translations (#13860) 2021-07-27 15:24:03 +02:00
29e71f8450 DEV: adds grinning_face_with_smiling_eyes.png to google-classic (#13856) 2021-07-27 13:27:13 +02:00
3667cc6447 Update translations (#13821) 2021-07-22 12:31:19 +02:00
5eb6e9281a FIX: manually adds frowning_face_with_open_mouth for apple (#13528) 2021-07-21 23:27:20 +02:00
28b5e6e47d Update translations (#13796) 2021-07-21 10:30:34 +02:00
53fe8b2e77 Update translations (#13647) 2021-07-13 20:30:09 +02:00
9b51b9bf4e FIX: Detect resize failures in the client size image optimization (#13589)
On iOS 15 beta, if you select the camera app when uploading an image
and try to upload a freshly taken picture, from the second picture
onwards the resize WASM operation will return an array filled with
zeroes.

Since every 4th byte is alpha, and at this step we are only dealing with
non-transparent images this a O(1) way to detect that the bug was hit.
(On normal images, all 4th bytes are 255 at this point)

Also adds a "catch-all" when the original image became too small to try
to accomodate other bugs of the same type. By default we only trigger
this whole operation on images over 1MB, so if the end result is <20KB
something weird did happen. Throwing here will let the upload continue
using the original file, so nothing is lost and the user can continue.
2021-06-30 16:01:17 -03:00
23930738a7 Update translations (#13565) 2021-06-29 16:02:02 +02:00
99da221034 FIX: Handle image decoding failure in composer image optimization (#13555)
There are some hard limits in browser Canvas implementations, that will
throw a runtime exception when crossed. Since those limits are platform
dependent, the best we can do is catch it and back off from trying to
optimize a problematic file.

For example, a 60MB PNG can be processed fine by Chrome but Firefox will
fail trying to extract the ImageData from the CanvasRenderingContext2D
with NS_ERROR_FAILURE.

Also cleans up the media-optimization-utils and add post-resize size logs
2021-06-28 18:21:39 -03:00
fa4a462517 FEATURE: Optimize images before upload (#13432)
Integrates [mozJPEG](https://github.com/mozilla/mozjpeg) and [Resize](https://github.com/PistonDevelopers/resize) using WebAssembly to optimize user uploads in the composer on the client-side.

NPM libraries are sourced from our [Squoosh fork](https://github.com/discourse/squoosh/tree/discourse), which was needed because we have an older asset pipeline.
2021-06-23 12:31:12 -03:00
252dd169a4 Update translations (#13476) 2021-06-22 15:21:20 +02:00
f941bbc147 Update translations (#13327) 2021-06-08 16:32:36 +02:00
9d6780f03d DEV: Remove emoji_one files (#13236)
And add a symlink so requests to those assets fallback to the default
emoji set (Twitter).
2021-06-02 09:18:25 -04:00
8ac184c636 Update translations (#13088) 2021-05-18 15:11:41 +02:00
b24270845f DEV: Update chart.js from 2.9.3 to 2.9.4 (#13026)
Release notes: https://github.com/chartjs/Chart.js/releases/tag/v2.9.4
2021-05-12 17:28:16 +02:00
21c301aa72 Update translations (#13030) 2021-05-11 19:01:59 +02:00
3b2f2b533f Update translations (#12851) 2021-04-27 16:01:06 +02:00
27eff709c4 Update translations (#12684) 2021-04-13 16:02:08 +02:00
abb0a4bae2 DEV: Add SCSS helper to replace asset-uri and image-uri (#12664) 2021-04-12 13:57:39 +10:00
93f74add7d Update translations (#12614) 2021-04-07 11:58:41 +02:00
598718a19d Update translations (#12556) 2021-03-30 15:44:13 +02:00
bc88ea5976 Update translations (#12412) 2021-03-16 15:49:29 +01:00
c21cba70f6 Update translations (#12258) 2021-03-02 15:28:30 +01:00
6809cccd88 DEV: Add experimental json_scheme site setting type (#12226) 2021-03-01 09:15:17 -05:00
2757003ef1 Update translations (#12186) 2021-02-23 15:10:04 +01:00
08acf51be0 FEATURE: Use diffhtml to update composer preview (#11237)
Displaying videos, animated GIFs or any kind of rich content in preview
used to refresh on every keystroke, which could cause performance
problems.
2021-02-18 16:07:26 +02:00
f283bde25a Update translations (#12097) 2021-02-16 15:24:37 +01:00
9d2eaec88f DEV: enable CORS to all CDN get requests from workbox. (#11896)
To prevent opaque cache files, now all the CDN files will be requested in 'cors' mode if the cdn_cors_enabled global setting is enabled. Before enabling the setting, should enable the cors in the CDN server by adding the response header `access-control-allow-origin: *` or `access-control-allow-origin: https://discourse.example.com.`

And other external file requests other than CDN will not be cached if the response type is opaque.
2021-02-02 11:38:29 +05:30
3c028cb67f Update translations (#11848) 2021-01-26 14:52:35 +01:00
0e8c155b70 Update translations (#11779) 2021-01-20 22:58:26 +01:00
440b63e833 Update translations (#11756) 2021-01-19 16:14:59 +01:00
0e8e3f4813 Update translations (#11689) 2021-01-12 14:29:05 +01:00
09f9d4b281 Update translations (#11601) 2020-12-29 19:44:53 +01:00
e113ddc73c Update translations (#11557) 2020-12-22 14:49:40 +01:00
abb89475a3 FIX: issues with frowning/grinning (#11235)
- frowning was using slighty_frowning
- slightly_frowning was using frowning
- grinning_face_with_smiling_eyes was not defined
- fronwing_face_with_open_mouth was not defined
2020-11-25 09:09:35 +01:00
7fecad41db Update translations (#11264) 2020-11-17 14:49:58 +01:00
9904a007c5 Update translations (#11182) 2020-11-10 15:23:06 +01:00
886d619d3f Update translations (#11108) 2020-11-03 18:08:07 +01:00
af4938baf1 Revert "DEV: enable cors to all cdn get requests from workbox. (#10684)" (#11076)
This reverts commit e3de45359f9bc7a71d9b8045a7e369fd0cf8f433.

We need to improve out strategy by adding a cache breaker with this change ... some assets on CDNs and clients may have incorrect CORS headers which can cause stuff to break.
2020-10-30 16:05:35 +11:00
79b414d2a1 FIX: The attribute is discourse-url not data-discourse-url 2020-10-28 17:12:29 -04:00
e3de45359f DEV: enable cors to all cdn get requests from workbox. (#10685)
Now all external requests from the service worker will be in CORS mode without credentials.
2020-10-28 23:36:19 +05:30
9648122b51 Update translations (#11042) 2020-10-27 15:36:21 +01:00
b5933e2b49 Update translations (#10970) 2020-10-20 15:34:57 +02:00