diff -r 34716fd837a4 -r be944660c56a wp/wp-includes/js/plupload/handlers.js --- a/wp/wp-includes/js/plupload/handlers.js Tue Dec 15 15:52:01 2020 +0100 +++ b/wp/wp-includes/js/plupload/handlers.js Wed Sep 21 18:19:35 2022 +0200 @@ -361,7 +361,41 @@ up.removeFile( file ); } +/** + * Copies the attachment URL to the clipboard. + * + * @since 5.8.0 + * + * @param {MouseEvent} event A click event. + * + * @return {void} + */ +function copyAttachmentUploadURLClipboard() { + var clipboard = new ClipboardJS( '.copy-attachment-url' ), + successTimeout; + + clipboard.on( 'success', function( event ) { + var triggerElement = jQuery( event.trigger ), + successElement = jQuery( '.success', triggerElement.closest( '.copy-to-clipboard-container' ) ); + + // Clear the selection and move focus back to the trigger. + event.clearSelection(); + // Handle ClipboardJS focus bug, see https://github.com/zenorocha/clipboard.js/issues/680 + triggerElement.trigger( 'focus' ); + // Show success visual feedback. + clearTimeout( successTimeout ); + successElement.removeClass( 'hidden' ); + // Hide success visual feedback after 3 seconds since last success. + successTimeout = setTimeout( function() { + successElement.addClass( 'hidden' ); + }, 3000 ); + // Handle success audible feedback. + wp.a11y.speak( pluploadL10n.file_url_copied ); + } ); +} + jQuery( document ).ready( function( $ ) { + copyAttachmentUploadURLClipboard(); var tryAgainCount = {}; var tryAgain; @@ -570,7 +604,12 @@ plupload.each( files, function( file ) { if ( file.type === 'image/heic' && up.settings.heic_upload_error ) { // Show error but do not block uploading. - wpQueueError( pluploadL10n.unsupported_image ) + wpQueueError( pluploadL10n.unsupported_image ); + } else if ( file.type === 'image/webp' && up.settings.webp_upload_error ) { + // Disallow uploading of WebP images if the server cannot edit them. + wpQueueError( pluploadL10n.noneditable_image ); + up.removeFile( file ); + return; } fileQueued( file );