FIX: Ignore allowlistgeneric Onebox image sizes (#13240)

* FIX: Ignore `allowlistgeneric` Onebox image sizes

The size of an image contained within the preview pane of a Composer window may vary depending on the configuration of the browser displaying the Composer (e.g., dimension of browser window, zoom level, etc.).

Presently, the dimensions of the images from the browser creating the post containing the Onebox will be used to render the Onebox to anyone who views the post. It is safer to let the backend figure out the dimensions of the images. Therefore, exclude `.onebox.allowlistedgeneric` images from the list of `image_sizes` sent to the backend.

* DEV: Replace jQuery selector with pure JS

* DEV: remove more jQuery
This commit is contained in:
jbrw 2021-06-02 20:02:13 -04:00 committed by GitHub
parent 188ac1c51f
commit abac614492
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -770,14 +770,15 @@ export default Controller.extend({
// TODO: This should not happen in model
const imageSizes = {};
$("#reply-control .d-editor-preview img").each((i, e) => {
const $img = $(e);
const src = $img.prop("src");
document
.querySelectorAll("#reply-control .d-editor-preview img:not(.onebox img)")
.forEach((e) => {
const src = e.src;
if (src && src.length) {
imageSizes[src] = { width: $img.width(), height: $img.height() };
}
});
if (src && src.length) {
imageSizes[src] = { width: e.width, height: e.height };
}
});
const promise = composer
.save({ imageSizes, editReason: this.editReason })