Commit Graph

65 Commits

Author SHA1 Message Date
Adam Silverstein f94f194552 Media: enable AVIF support.
Add support for uploading, editing and saving AVIF images when supported by the server.

Add 'image/avif' to supported mime types. Correctly identify AVIF images and sizes even when PHP doesn't support AVIF. Resize uploaded AVIF files (when supported) and use for front end markup.

Props adamsilverstein, lukefiretoss, ayeshrajans, navjotjsingh, Tyrannous, jb510, gregbenz, nickpagz, JavierCasares, mukesh27, yguyon, swissspidy.
Fixes #51228.


Built from https://develop.svn.wordpress.org/trunk@57524


git-svn-id: http://core.svn.wordpress.org/trunk@57025 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-02-02 17:48:15 +00:00
Andrea Fercia 4388ba3a03 External Libraries: Accessibility: Clean up `clipboard.js` Copy buttons from focus management workaround.
`clipboard.js` used to suffer from a bug that triggered a focus loss when activating the Copy buttons. The bug was fixed a while ago with the `clipboard.js` 2.0.11 release so that the workaround implemented in WordPress is no longer necessary.

Props dhrumilk, paulkevan, afercia.
Fixes #60139.

Built from https://develop.svn.wordpress.org/trunk@57231


git-svn-id: http://core.svn.wordpress.org/trunk@56737 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2023-12-28 15:27:15 +00:00
Sergey Biryukov 1f002b93fe External Libraries: Further fix jQuery deprecations in WordPress core.
This replaces calls to the deprecated jQuery `.bind()` method with `.on()` in Plupload's `handlers.js`.

Reference: [https://api.jquery.com/bind/ jQuery API Documentation: .bind()]

Follow-up to [18482], [19266], [50001], [50270], [50367], [50383], [50410], [50420], [50429], [50627], [51947], [52429].

Props eclev91, ipajen, sarahricker.
See #51812.
Built from https://develop.svn.wordpress.org/trunk@54495


git-svn-id: http://core.svn.wordpress.org/trunk@54054 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2022-10-11 17:37:12 +00:00
Adam Silverstein 4b5968aa9b Media: revert the multi-mime feature.
This feature isn't quite ready to land.

Reverts r53786, r53848, r53847, r53845, r53751.

Props flixos90, azaozz, dd32.
See #55443.


Built from https://develop.svn.wordpress.org/trunk@54085


git-svn-id: http://core.svn.wordpress.org/trunk@53644 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2022-09-06 21:13:12 +00:00
Adam Silverstein 71ca314193 Media: enable generating multiple mime types for image uploads; specifically WebP versions for JPEG images by default.
This changeset adds the capability for core media uploads to generate sub sized images in more than a single mime type. The output formats for each mime type can be controlled through a filter. WebP is used as an additional output format for JPEG images by default to improve front end performance.

When generating additional mime types, only images which are smaller than the respective original are retained. By default, additional mime type images are only generated for the built-in core image sizes and any custom sizes that have opted in.

Image meta is updated with a new 'sources' array containing file details for each mime type. Each image size in the 'sizes' array also gets a new 'sources' array that contains the image file details for each mime type.

This change also increases image upload retries to accommodate additional image sizes. It also adds a `$mime_type` parameter to the `wp_get_missing_image_subsizes` function and filter.

This change adds three new filters to enable full control of secondary mime image generation and output:

* A new filter `wp_image_sizes_with_additional_mime_type_support` that filters the sizes that support secondary mime type output. Developers can use this to control the output of additional mime type sub-sized images on a per size basis.
* A new filter `wp_upload_image_mime_transforms` that filters the output mime types for a given input mime type. Developers can use this to control generation of additional mime types for a given input mime type or even override the original mime type.
* A new filter `wp_content_image_mimes` which controls image mime type output selection and order for frontend content. Developers can use this to control the mime type output preference order for content images. Content images inserted from the media library will use the available image versions based on the order from this filter.

Thanks to the many contributors who helped develop, test and give feedback on this feature.

A haiku to summarize:

Upload a JPEG
Images of all sizes
Output as WebPs

Props flixos90, MatthiasReinholz, studiolxv, markhowellsmead, eatingrules, pbiron, mukesh27, joegrainger, mehulkaklotar, tweetythierry, akshitsethi, peterwilsoncc, eugenemanuilov, mitogh, shetheliving, clarkeemily, codekraft, mikeschroder, clorith, kasparsd, spacedmonkey, trevorpfromsandee, jb510, scofennellgmailcom, seedsca, cagsmith, karinclimber, dainemawer, baxbridge, grapplerulrich, sobatkras, chynnabenton, tonylocalword, barneydavey, kwillmorth, garymatthews919, olliejones, imarkinteractive, jeffpaul, feastdesignco, webbeetle, masteradhoc.

See #55443.


Built from https://develop.svn.wordpress.org/trunk@53751


git-svn-id: http://core.svn.wordpress.org/trunk@53310 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2022-07-21 18:03:13 +00:00
joedolson 2f3b779563 Media: Remove deprecated click function in media uploader.
Replace the call to jQuery's deprecated click handler.

Props kapilpaul.
Fixes #53261.
Built from https://develop.svn.wordpress.org/trunk@51947


git-svn-id: http://core.svn.wordpress.org/trunk@51536 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2021-10-28 17:50:58 +00:00
Andrew Ozz 936a38255b Media: Prevent uploading and show an error message when the server doesn't support editing of WebP images, take II. Add new, better error message for it.
Props antpb, joedolson, iandunn, azaozz.
Fixes #53475.
Built from https://develop.svn.wordpress.org/trunk@51227


git-svn-id: http://core.svn.wordpress.org/trunk@50836 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2021-06-24 19:12:00 +00:00
Sergey Biryukov b1666e78fb Media: Replace `basename()` usage on media upload screen with `wp_basename()` for better multibyte filenames support.
Includes minor code layout fixes for better readability.

Follow-up to [44785], [51023].

See #51754.
Built from https://develop.svn.wordpress.org/trunk@51030


git-svn-id: http://core.svn.wordpress.org/trunk@50639 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2021-05-26 14:24:57 +00:00
antpb e2e8120fa6 Media: Add button in media upload page for copying the media url.
Adds a button to the media upload page to make copying the url possible on the same page when a media item upload is successful.

Props anotia, ryokuhi, Mista-Flo, lukecarbis, antpb, claytoncollie, shaunandrews, joedolson.
Fixes #51754.


Built from https://develop.svn.wordpress.org/trunk@51023


git-svn-id: http://core.svn.wordpress.org/trunk@50632 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2021-05-26 01:40:58 +00:00
Andrew Ozz 86317e3e85 Media: Show an error message when a `.heic` file is uploaded that this type of files cannot be displayed in a web browser and suggesting to convert to JPEG. The message is shown by using filters, plugins that want to handle uploading of `.heic` files can remove it.
Props mattheweppelsheimer, mikeschroder, jeffr0, andraganescu, desrosj, azaozz.
Fixes #42775.
Built from https://develop.svn.wordpress.org/trunk@48288


git-svn-id: http://core.svn.wordpress.org/trunk@48057 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2020-07-03 23:15:03 +00:00
Sergey Biryukov 56342b8e8f Docs: Replace "AJAX" with "Ajax" in DocBlocks and comments, per the spelling glossary.
Props mukesh27, sabernhardt, SergeyBiryukov.
Fixes #50064.
Built from https://develop.svn.wordpress.org/trunk@48168


git-svn-id: http://core.svn.wordpress.org/trunk@47937 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2020-06-25 12:43:07 +00:00
Sergey Biryukov 001ffe81fb Docs: Improve inline comments per the documentation standards.
Includes minor code layout fixes for better readability.

See #48303.
Built from https://develop.svn.wordpress.org/trunk@47122


git-svn-id: http://core.svn.wordpress.org/trunk@46922 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2020-01-29 00:45:18 +00:00
desrosj 44db7e4f6f External Libraries: Revert [46634-46635].
On further investigation, Plupload changed it’s license to a non-GPL compatible license. The newest, GPL compatible version is being used already in Core.

Unprops desrosj.
See #48277.
Built from https://develop.svn.wordpress.org/trunk@46638


git-svn-id: http://core.svn.wordpress.org/trunk@46438 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2019-11-03 17:09:02 +00:00
desrosj d825155631 External Libraries: Update Plupload from 2.1.9 to 2.3.6.
This change also updates the MoxieJS dependency from 1.3.5 to 1.5.7, converts Plupload to a dependency in NPM, and integrates all relevant parts into the build process.

For a full list of upstream changes, see https://github.com/moxiecode/plupload/compare/v2.1.9...v2.3.6.

Props desrosj, hareesh-pillai.
Fixes #48277.
Built from https://develop.svn.wordpress.org/trunk@46634


git-svn-id: http://core.svn.wordpress.org/trunk@46434 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2019-11-03 15:31:02 +00:00
Andrew Ozz 5013b45775 Upload: Expand error codes to include all 5xx HTTP errors when retrying to create image sub-sizes. Some servers may be configured to set HTTP 508 or 504, or possibly other `5` errors.
Porps mikeschroder, azaozz.
Fixes #48379.
Built from https://develop.svn.wordpress.org/trunk@46566


git-svn-id: http://core.svn.wordpress.org/trunk@46363 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2019-10-21 22:44:03 +00:00
Andrew Ozz 49686be2ab Uploads: Retry to post-process images after HTTP 500 and HTTP 502 errors.
Props mikeschroder, azaozz.
Fixes #47872.
Built from https://develop.svn.wordpress.org/trunk@46506


git-svn-id: http://core.svn.wordpress.org/trunk@46303 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2019-10-14 19:56:06 +00:00
Andrew Ozz ff225c8bfc Upload: Fix the method used to create image sub-sizes when uploading fails with a PHP fatal error. Use a custom header to send the new attachment post ID even in HTTP 500 responses instead of an upload reference sent by the client. Also add another cap check and remove the action when deleting an attachment post during a failed upload cleanup.
Props timothyblynjacobs, clorith, azaozz.
Fixes #48200.
Built from https://develop.svn.wordpress.org/trunk@46382


git-svn-id: http://core.svn.wordpress.org/trunk@46181 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2019-10-03 21:02:00 +00:00
Andrew Ozz 463e050b25 Uploads: add helper functions for setting, getting, and deleting the temp upload reference used to the attachment_id when retrying to make image sub-sizes.
See #47872.
Built from https://develop.svn.wordpress.org/trunk@46174


git-svn-id: http://core.svn.wordpress.org/trunk@45986 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2019-09-19 01:26:55 +00:00
Andrew Ozz c0b5127683 Upload: Reset the temp upload reference in Plupload when the file is not an image.
See #47872.
Built from https://develop.svn.wordpress.org/trunk@46081


git-svn-id: http://core.svn.wordpress.org/trunk@45893 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2019-09-08 02:28:55 +00:00
Andrew Ozz e313498193 Uploads: After an image is uploaded and PHP times out or runs out of memory during post-processing (the server response is HTTP 500 error), try to resize it three more times. Then, if all attempts fail, do a cleanup of any sub-sizes that may have been created and show an error message asking the user to scale the image and upload it again.
See #47872.
Built from https://develop.svn.wordpress.org/trunk@45934


git-svn-id: http://core.svn.wordpress.org/trunk@45745 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2019-09-04 01:11:54 +00:00
Pascal Birchler 8c7ea71edb Media: Simplify upload error message construction.
Built from https://develop.svn.wordpress.org/trunk@40736


git-svn-id: http://core.svn.wordpress.org/trunk@40594 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2017-05-16 17:58:41 +00:00
Dominik Schilling 0756d8bec7 Media: Use the correct variable for the file object.
See #14244.
Built from https://develop.svn.wordpress.org/trunk@37728


git-svn-id: http://core.svn.wordpress.org/trunk@37694 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-06-16 16:15:31 +00:00
Dominik Schilling 4e403b2752 Media: Pass allowed file extensions to Plupload.
Plupload's `mime_types` filter (http://www.plupload.com/docs/Options#filters.mime_types) allows us to inform a user about an unsupported file before the file gets uploaded.

Props polevaultweb.
Fixes #14244.
Built from https://develop.svn.wordpress.org/trunk@37727


git-svn-id: http://core.svn.wordpress.org/trunk@37693 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-06-16 15:39:28 +00:00
Andrew Ozz e983399136 Media: properly refresh the position of the Plupload shim so it moves over the Select Files button or off the screen. Fixes selecting files in MS Edge on the Media grid and Media -> Add New screens.
Fixes #37039.
Built from https://develop.svn.wordpress.org/trunk@37722


git-svn-id: http://core.svn.wordpress.org/trunk@37688 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-06-16 04:54:29 +00:00
Scott Taylor 6ffa051689 Replace flagrant instances of `.html('')` with `.empty()`.
Props OriginalEXE, SergeyBiryukov.
Fixes #27034.

Built from https://develop.svn.wordpress.org/trunk@31690


git-svn-id: http://core.svn.wordpress.org/trunk@31671 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-03-09 19:44:26 +00:00
Scott Taylor d85ac5b841 Let us pass `jshint:core`.
Built from https://develop.svn.wordpress.org/trunk@27693


git-svn-id: http://core.svn.wordpress.org/trunk@27532 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-03-24 23:02:13 +00:00
Andrew Ozz 69b74a75cd Plupload: switch to urlstream upload method when the 'flash' runtime is used in non IE browsers. This ensures cookies are sent but limits the maximum file size that flash can handle.
By default only IE9 and older use flash so this change is mostly for completeness. It would affect only the (extremely rare) cases where a plugin disables the html5 runtime.
Built from https://develop.svn.wordpress.org/trunk@27662


git-svn-id: http://core.svn.wordpress.org/trunk@27505 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-03-23 23:45:19 +00:00
Andrew Ozz 21b74a037d Remove debugging cruft, see #25663
Built from https://develop.svn.wordpress.org/trunk@27318


git-svn-id: http://core.svn.wordpress.org/trunk@27170 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-02-27 20:15:16 +00:00
Andrew Ozz d896fa2487 Upgrade Plupload to 2.1.1, props kovshenin, see #25663
Built from https://develop.svn.wordpress.org/trunk@27316


git-svn-id: http://core.svn.wordpress.org/trunk@27168 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-02-27 20:01:16 +00:00
Scott Taylor 4b66e01e6d Remove a few unnecessary jQuery selectors added in [27239]. Playlists don't exist in some older contexts that galleries do.
See #26631.


Built from https://develop.svn.wordpress.org/trunk@27243


git-svn-id: http://core.svn.wordpress.org/trunk@27100 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-02-24 20:49:14 +00:00
Scott Taylor 943f295d2e Add core support for Playlists and Video Playlists.
* Playlists operate like galleries in the admin. 
* Provide default UI and JS support in themes using MediaElement and Backbone. 
* The shortcodes are clickable, editable, and configurable using the media modal. 
* Playlists support images for each item, whether or not the current theme supports images for `attachment:audio` and `attachment:video`
* Playlists respond to `$content_width` and resize videos accordingly.
* All playlist data is included inline, using a script tag with `type="application/json"`, allowing anyone to unenqueue the WP playlist JS and roll their own.
* Playlist styles are minimal and work out of the box in the last 5 default themes. They inherit and adapt to the current theme's font styles, and their rules are easily overrideable.

See #26631.


Built from https://develop.svn.wordpress.org/trunk@27239


git-svn-id: http://core.svn.wordpress.org/trunk@27096 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-02-24 18:08:16 +00:00
Andrew Nacin eb1151b590 Fix JSHint errors in plupload handlers.js.
props mdbitz.
fixes #26041.

Built from https://develop.svn.wordpress.org/trunk@26205


git-svn-id: http://core.svn.wordpress.org/trunk@26113 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-11-15 05:56:09 +00:00
Andrew Nacin 25a7b3291a Build the media item HTML in a clearer manner in the legacy Plupload handler JS. Also update the retired SWFUpload handler JS.
git-svn-id: http://core.svn.wordpress.org/trunk@24472 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-06-21 03:44:48 +00:00
Andrew Nacin e276fc44be Have media-new.php return simple rows of basic attachment data, with an 'Edit' link next to each taking them to post.php (in a new window). Not ideal, but this is largely a fallback screen at this point.
This is bolted on to existing code, the vast majority of which is destined to be ripped out in 3.6 once things settle.

see #22083.



git-svn-id: http://core.svn.wordpress.org/trunk@22755 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-11-21 13:05:44 +00:00
Andrew Ozz bcb040f1e0 Hide the "You are using the multi-file uploader. Problems? Try the browser uploader instead." when Plupload falls back to "html4" runtime, fixes #19496
git-svn-id: http://core.svn.wordpress.org/trunk@22305 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-10-25 20:53:38 +00:00
Andrew Nacin 2710bcade1 Switch to .min for compressed JS and CSS files.
* This moves our "development" versions from .dev.js to .js (same for css).
 * The compressed version then moves from .js to .min.js (same for css).

By switching to the standard .min convention, it sets expectations for developers,
and works nicely with existing tools such as ack.

fixes #21633.



git-svn-id: http://core.svn.wordpress.org/trunk@21592 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-08-23 00:04:18 +00:00
bumpbot 9b23e86b63 Compress scripts/styles: 3.4-RC1-20979.
git-svn-id: http://core.svn.wordpress.org/trunk@20979 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-06-02 01:58:27 +00:00
bumpbot 103ecdf368 Compress scripts/styles: 3.4-beta3-20582.
git-svn-id: http://svn.automattic.com/wordpress/trunk@20582 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-04-24 22:58:22 +00:00
bumpbot 3c61b207ac Compress scripts/styles: 3.4-beta2-20468.
git-svn-id: http://svn.automattic.com/wordpress/trunk@20468 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-04-14 19:58:19 +00:00
bumpbot 0706af654a Compress scripts/styles: 3.4-beta2-20464.
git-svn-id: http://svn.automattic.com/wordpress/trunk@20464 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-04-13 23:58:20 +00:00
bumpbot af84dbcf93 Compress scripts/styles: 3.4-alpha-20192.
git-svn-id: http://svn.automattic.com/wordpress/trunk@20192 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-03-15 13:58:27 +00:00
bumpbot 769e6a9a39 Compress scripts/styles: 3.4-alpha-20115.
git-svn-id: http://svn.automattic.com/wordpress/trunk@20115 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-03-05 07:45:20 +00:00
bumpbot a24bfc4d47 Compress scripts/styles: 3.4-alpha-19983.
git-svn-id: http://svn.automattic.com/wordpress/trunk@19983 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-02-24 02:00:58 +00:00
azaozz 3287ef6d9c Change the drop target border color, props ocean90, fixes #19298
git-svn-id: http://svn.automattic.com/wordpress/trunk@19367 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2011-11-20 19:16:35 +00:00
azaozz 5866295242 Fix return value in Plupload when using the html4 runtime, fixes #19302
git-svn-id: http://svn.automattic.com/wordpress/trunk@19362 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2011-11-20 01:10:50 +00:00
azaozz 2dd43e3337 Remove old styling for rtl progress bar, see #19042
git-svn-id: http://svn.automattic.com/wordpress/trunk@19360 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2011-11-19 21:50:33 +00:00
azaozz 78341014f3 Uploader: show the progress bars as soon as files are queued, attempt to make the progress bar more precise, see #19228
git-svn-id: http://svn.automattic.com/wordpress/trunk@19346 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2011-11-19 03:15:42 +00:00
azaozz e72a2a2917 When queueing too large files in the multi-file uploader in IE or Opera, show error message and remove the file from the queue, fixes #19228
git-svn-id: http://svn.automattic.com/wordpress/trunk@19329 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2011-11-18 01:10:25 +00:00
azaozz 28ec7872a2 Make the Save All Changes initially hidden on Media -> Add New screen, improve the progress bar "progress" to 1px ticks, see #19190
git-svn-id: http://svn.automattic.com/wordpress/trunk@19306 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2011-11-15 21:22:27 +00:00
azaozz 8f4fd39550 Add big-file-upload-warning for IE and Opera, left-align the percentage in the progress bar, see #19228
git-svn-id: http://svn.automattic.com/wordpress/trunk@19286 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2011-11-14 23:21:16 +00:00