= 0.19.0 = *(released: 13 Nov 2020)* * New convertion method: ffmpeg * Fixed problem in Bulk Convert when files had special characters in their filename * Prevented problems if the plugin gets included twice (can anybody enlighten me on how this might happen?) For more info, see the closed issues on the [0.19.0 milestone on the github repository](https://github.com/rosell-dk/webp-express/milestone/36?closed=1) = 0.18.3 = *(released: 5 Nov 2020)* * Bugfix: WebP Express uses live tests to determine the capabilities of the server in respect to .htaccess files (using the htaccess-capability-tester library). The results are used for warnings and also for optimizing the rules in the .htaccess files. However, HTTP Requests can fail due to other reasons than the feature not working (ie timeout). Such failures should lead to an indeterminate result, but it was interpreted as if the feature was not working. * The Live test now displays a bit more information if the HTTP request failed. * Changed default value for "destination structure" to "Image roots", as "Document root" doesn't work on hosts that have defined DOCUMENT_ROOT in an unusual way. * Added possibility to change "%{DOCUMENT_ROOT}" part of RewriteCond by adding a line to wp-config.php. THIS IS A BETA FEATURE AND MIGHT BE REVOKED IF NOBODY ACTUALLY NEEDS IT. * Got rid of PHP notice Constant WEBPEXPRESS_MIGRATION_VERSION already defined * Fixed donation link. It now points to https://ko-fi.com/rosell again For more info, see the closed issues on the [0.18.3 milestone on the github repository](https://github.com/rosell-dk/webp-express/milestone/34?closed=1) = 0.18.2 = *(released: 28 Sep 2020)* * Bugfix: Fixed error on the settings page on a handful of setups. = 0.18.1 = *(released: 24 Sep 2020)* * Bugfix: Bulk Convert failed to show list on systems that did not have the [utf8-encode()](https://www.php.net/manual/en/function.utf8-encode.php) function. = 0.18.0 = *(released: 24 Sep 2020)* * You can now set cache control header in CDN friendly mode too * The code for testing what actually works in .htaccess files on the server setup has been moved to a new library: [htaccess-capability-tester](https://github.com/rosell-dk/htaccess-capability-tester). It has been strengthened in the process. * Improved diagnosing in the "Live test" buttons * Simplified the logic for adding "Vary header" in the .htaccess residing in the cache dir. The logic no longer depends on the Apache module "mod_envif" being installed. mod_envif has Apache "Base" status, which means it is very rarely missing, so I decided not to trigger automatically updating of the .htaccess rules. To apply the change, you must click the button that forces .htaccess regeneration * The plugin has a folder called "wod" which contains php scripts for converting an image to webp. This is used for the function that rely on redirect magic to trigger conversion ("Enable redirection to converter?" and "Create webp files upon request?"). The .htaccess file in the "wod" folder in the plugin dir contains directives for modifying access (in order to counterfight rules placed by security plugins for disallows scripts to be run directly). However if these directives has been disallowed in the server setup, any request to a file in the folder will result in a 500 internal server error. To circumvent this, a "wod2" folder has been added, which contains the same scripts, but without the .htaccess. Upon saving, WebP Express now automatically checks which one works, and points to that in the .htaccess rules. * Bugfix: webp mime type was not registred in .htaccess in "CDN friendly" mode. This is a minor fix so I decided not to update the .htaccess automatically. To apply it, you must click the button that forces .htaccess regeneration. * Bugfix: Bulk convert failed to load the list when there were filenames containing non-unicode characters * Added a new way to support me. I'm on [GitHub Sponsors](https://github.com/sponsors/rosell-dk)! For more info, see the closed issues on the 0.18.0 milestone on the github repository: https://github.com/rosell-dk/webp-express/milestone/33?closed=1 = 0.17.5 = *(released: 11 Aug 2020)* * Fixed "Path is outside resolved document root" in a certain symlinked configuration. Thanks to @spiderPan on github for providing the fix. * Added content filtering hooks for several third party plugins including ACF and WooCommerce Product Images. With this change, the "Use content filtering hooks" in Alter HTML works in more scenarios, which means there are fewer scenarios where you have to resort to the slower "The complete page" option. Thanks to alextuan for providing the contribution * Fixed problems with Alter HTML when migrating: Absolute paths were cached in the database and the cache was only updated upon saving settings. The paths are not cached anymore (recalculating these on each page load is not a performance problem) For more info, see the closed issues on the 0.17.5 milestone on the github repository: https://github.com/rosell-dk/webp-express/milestone/30?closed=1 = 0.17.4 = *(released: 26 Jun 2020)* * Hopefully fixed that configuration was resetting for some users * Fixed "Path is outside resolved document root" on file conversion attempts in Windows. Thanks to @Ruzgfpegk from Japan for providing the fix. * Fix errors not caught in the selftest. Thanks to Benji Bilheimer from Germany providing the fix. * Fix errors not caught in the selftest with unverified certificates. Thanks to Rikesh Ramlochund from Mauritius for providing the fix. * Fixed errors with filenames containing encoded symbols. Thanks to Eddie Zhou from Canada for the fix. = 0.17.3 = *(released: 3 Feb 2020)* * Fixed critical bug: Fatal error after updating plugin (if one had been postponing updating WebP Express for a while and then updated Wordpress and THEN updated WebP Express) * A critical bug was fixed in the webp-convert library (PHP 7.4 related) * A critical bug was fixed in dom-util-for-webp library (PHP 7.4 related) * Alter HTML now processes the "poster" attribute in Video tags. Thanks to @MikhailRoot from Russia for the PR on github. * On some Litespeed hosts, WebP Express reported that mod_headers was not available even though it was. Thanks to @lubieowoce from Poland for the PR on github) = 0.17.2 = *(released: 5 Oct 2019)* * Fixed bug: Updating plugin failed on a few hosts (in the unzip phase). Problem was introduced in 0.17.0 with the updated binaries. * Fixed bug: Alter HTML used the protocol (http/https) for the site for generated links (rather than keeping the protocol for the link). Thanks to Jacob Gullberg from Sweden for discovering this bug. If you experienced update problems due to the update bug, you will probably be left with an incomplete installation. Some of the plugin files are there, but not all. Especially, the main plugin file (webp-express.php) is missing, which means that Wordpress don't "see" the plugin (it is missing from the list). Trying to install WebP Express again will probably not work, because the "webp-express" folder is already there. You will then have to remove the "webp-express" folder in "plugins" manually (via ftp or a plugin, such as File Manager). For more info, see the closed issues on the 0.17.2 milestone on the github repository: https://github.com/rosell-dk/webp-express/milestone/29?closed=1 = 0.17.1 = *(released: 3 Oct 2019)* * Fixed NGINX rules in FAQ (added xdestination for the create webp upon request functionality) * Fixed issue with Alter HTML. Thanks to @jonathanernst for discovering issue and supplying the patch. * WebP Express now works on WP Engine. Check out the new "I am on WP Engine" section in the FAQ * Miscellaneous bug fixes For more info, see the closed issues on the 0.17.1 milestone on the github repository: https://github.com/rosell-dk/webp-express/milestone/27?closed=1 = 0.17.0 = *(released: 27 sep 2019)* * Cwebp conversion method runs on more systems (not subject to open_basedir restrictions and also tries "pure" cwebp command). Thanks to cng11 for reaching out so I spotted this. * Ewww conversion method no longer does a remote api-key check for each conversion - so it is faster. If an ewww conversions fails due to a non-functional key, the key will not be tried again (until next time the options are saved) * Updated cwebp binaries to version 1.0.3 = 0.16.0 = *(released: 24 sep 2019)* * Added option to specify CDN urls in Alter HTML. Thanks to Gunnar Peipman from Estonia for suggesting this. * Direct Nginx users to Nginx FAQ section on welcome page * Fixed Bulk Conversion halting due to nonce expiry * Fixed unexpected output upon reactivation * Added affiliate link to [Optimole](https://optimole.pxf.io/20b0M) in the "Don't despair - You have options!" message = 0.15.3 = *(released: 19 sep 2019)* * Fixed fatal error upon activation for systems which cannot use document root for structuring (rare) = 0.15.2 = * Fixed the bug when File extension was set to "Set to .webp". It was buggy when file extension contained uppercase letters. = 0.15.1 = *(released: 17 sep 2019)* * Bug alert: Added alert about a bug when destination folder is set to "mingled" and File extension is set to "Set to .webp" * Bugfix: Plugin URL pointed to webpexpress - it should point to parent. This gave trouble with images located in plugins. Thanks to Guillaume Meyer from Switzerland for discovering and reporting. * Bugfix: Images with uppercase chars in extension did not get Vary:Accept * Bugfix: There were issues with "All content" and destination:document-root when webp-realizer is activated = 0.15.0 = *(released: 17 sep 2019)* * Provided test-buttons for checking if the redirects works. * You can now choose which folders WebP Express is active in. Ie "Uploads and Themes". * You can now choose an alternative file structure for the webps which does not rely on DOCUMENT_ROOT being available. * WebP Express can now handle when wp-content is symlinked. * The .htaccess rules are now divided across folders. Some rules are needed where the source files are located, some where the webp files are located. * Added option to convert only PNG files * And a couple of bugfixes. For more info, see the closed issues on the 0.15.0 milestone on the github repository: https://github.com/rosell-dk/webp-express/milestone/22?closed=1 = 0.14.22 = *(released: 4 aug 2019)* * Fixed bug in Nginx rules in the FAQ (they did not take into account that the webp images outside upload folder are never stored "mingled") * Fixed bug: The extension setting was not respected - it was always appending ".webp", never setting. Thanks to Florian from Germany and Derrick Hammer from USA for reporting. * Fixed bug: It turns out that Imagick gives up quality detection for some images and returns 0. This resulted in very poor quality webps when the quality was set to same as jpeg. The 0 is now treated as a failure and the max-quality will be used for such images. Thanks to @sanjayojha303 from India for reporting that there were quality problems on some images. * Fixed bug-like behavior: The conversion scripts no longer requires that the respective setting is on for Nginx. Thanks to Mike from Russia for reporting this. * Fixed bug: The error handler in webp-convert for handling warnings could in some cases result in endless recursion. For some the result was that they could no longer upload images. Thanks to Tobias Keller from Germany for reporting this bug. * Fixed minor bug: Attempt to call private method in a rare scenario (when accessing one of the php scripts in the "wod" folder directly - which is not allowed). Thanks to Giacomo Lawrance from the U.K. for providing input that led to this discovery. * Fixed minor bug: It was not tested whether a corresponding webp existed before trying to deleting it when an image was deleted. This produced warnings in debug.log. * Security related: Added sanitizing of paths to avoid false positives on coderisk.com (there where no risk because already test the paths for sanity - but this is not detected by coderisk, as the variable is not modified). This was simply done in order get rid of the warnings at coderisk. * Security fix: Paths were not sanitized on Windows. = 0.14.21 = *(released: 30 jun 2019)* * Hopefully fixed WebP Express Error: "png" option is Object = 0.14.20 = *(released: 29 jun 2019)* * Fixed bug: Ewww api-key was forgot upon saving options = 0.14.19 = *(released: 28 jun 2019)* * Removed a line that might course Sanity Check to fail ("path not within document root") = 0.14.18 = *(released: 28 jun 2019)* * Fixed Sanity Error: Path is outside allowed path on systems using symlinked folders * Updated cache breaking token for javascript in order for the last fix for changing password with Remote WebP Express to take effect * Fixed undefined variable error in image_make_intermediate_size hook, which prevented webps thumbnails to be generated upon upload * Minor bug fix in cwebp converter (updated to webp-convert v.2.1.4) = 0.14.17 = *(released: 28 jun 2019)* * Relaxed abspath sanity check on Windows * Fixed updating password for Remote WebP Express = 0.14.16 = *(released: 26 jun 2019)* * Fixed conversion errors using Bulk convert or Test convert on systems with symlinked folders = 0.14.15 = *(released: 26 jun 2019)* * Fixed errors with "redirect to conversion script" on systems with symlinked folders * Fixed errors with "redirect to conversion script" on systems where the filename cannot be passed through an environment variable = 0.14.14 = *(released: 26 jun 2019)* * Fixed errors on systems with symlinked folders = 0.14.13 = *(released: 26 jun 2019)* * Fixed errors in conversion scripts = 0.14.12 = *(released: 26 jun 2019)* * Fixed critical bug = 0.14.11 = *(released: 24 jun 2019)* The following security fixes has been applied in 0.14.0 - 0.14.11: It is urged that you upgrade all of you WebP Express installations! – Security fix: Closed a security hole that could be used to view the content of any file on the server (provided that the full path is known or guessed). This is a very serious flaw, which unfortunately has been around for quite a while. – Security fix: Added capability checks to options page. – Security fix: Sanitized user input. – Security fix: Added checks for file paths and directories. – Security fix: Nonces and capability checks for AJAX calls. = 0.14.10 = *(released: 24 jun 2019)* * Security related = 0.14.9 = *(released: 22 jun 2019)* * Security related = 0.14.8 = *(released: 21 jun 2019)* * Security related = 0.14.7 = *(released: 20 jun 2019)* * Security related: Removed unneccesary files from webp-convert library = 0.14.6 = *(released: 20 jun 2019)* * Security related = 0.14.5 = *(released: 20 jun 2019)* * Security related = 0.14.4 = *(released: 18 jun 2019)* * Now bundles with multiple cwebp binaries for linux for systems where 1.0.2 fails. = 0.14.3 = *(released: 18 jun 2019)* * Fixed filename of supplied cwebp for linux (bug was introduced in 0.14.2) = 0.14.2 = *(released: 17 jun 2019)* * Fixed problem with older versions of cwebp * Fixed that images was not deleted * Fixed cache problem on options page on systems that disables cache busting (it resulted in "SyntaxError: JSON.parse") = 0.14.1 = *(released: 15 jun 2019)* * Security related = 0.14.0 = *(released: 15 jun 2019)* * Security fix: Closed a security hole that could be used to view the content of any file on the server (provided that the full path is known or guessed). This is a very serious flaw, which has been around for quite a while. I urge you to upgrade to 0.14.0. * Added new "encoding" option, which can be set to auto. This can in some cases dramatically reduce the size of the webp. It is supported by all converters except ewww and gd. * Added new "near-lossless" option (only for cwebp and vips). Using this is a good idea for reducing size of lossless webps with an acceptable loss of quality * Added new "alpha-quality" option (all converters, except ewww and gd). Using this is a good idea when images with transparency are converted to lossy webp - it has the potential to reduce the size up to 50% (depending on the source material) while keeping an acceptable level of quality * Added new conversion methods: Vips and GraphicsMagick * Imagick conversion method now supports webp options (finally cracked it!) * Using MimeType detection instead of relying on file extensions * In "test" converter you now change options and also test PNG files * Added conversion logs * PNGs are now enabled by default (with the new conversion features especially PNGs are compressed much better) For more info, see the closed issues on the 0.14.0 milestone on the github repository: https://github.com/rosell-dk/webp-express/milestone/9?closed=1 = 0.13.0 = *(released: 21 mar 2019)* * Bulk Conversion * Fixed problems with Gd converter and PNG * Optinally auto convert upon media upload * Windows fix (thanks, lwxbr!) = 0.12.2 = *(released 8 mar 2019)* * Fixed bug: On some nginx configurations, the newly added protection against directly calling the converter scripts were triggering also when it should not. = 0.12.1 = *(released 7 mar 2019)* * Fixed bug: Alter HTML crashed when HTML was larger than 600kb and "image urls" where selected = 0.12.0 = *(released 5 mar 2019)* * Multisite support (!) * A new operation mode: "No conversion", if you do not want to use WebP Express for converting. Replaces the old "Just redirect" mode * Added capability testing of .htaccess. The .htaccess rules are now tailored to the capabilities on the system. For example, on some platforms the filename of a requested image is passed to the converter script through the query string, but on platforms that supports passing it through an environment variable, that method is used instead * Picturefill.js is now optional (alter html, picture tag) * A great bunch more! For more info, see the closed issues on the 0.12.0 milestone on the github repository: https://github.com/rosell-dk/webp-express/milestone/12?closed=1 = 0.11.3 = *(released 18 feb 2019)* * Fixed bug: Alter HTML caused media library not to display images on some systems. Alter HTML is now disabled in admin mode. * Alter HTML (picture tags) could produce the source tags with "src" attribute. But source tags inside picture tags must use "srcset" attribute. Fixed. * Alter HTML (image urls): srcsets containing "x" descriptors wasn't handled (ie, srcset="image.jpg 1x") * Fixed rewrite rules when placed in root so they are confined to wp-content and uploads. In particular, they no longer apply in wp-admin area, which might have caused problems, ie with media library. * Added warning when rules are placed in root and "Convert non-existing webp-files upon request" feature is enabled and WebP Express rules are to be placed below Wordpress rules * Fixed bug: The code that determined if WebP Express had placed rules in a .htaccess failed in "CDN friendly" mode. The effect was that these rules was not cleaned up upon plugin deactivation = 0.11.2 = *(released 14 feb 2019)* * Fixed bug which caused Alter HTML to fail miserably on some setups * AlterHTML now also looks for lazy load attributes in DIV and LI tags. = 0.11.1 = *(released 6 feb 2019)* * Fixed bug which caused the new "Convert non-existing webp-files upon request" not to work on all setups = 0.11.0 = *(released 6 feb 2019)* * Alter HTML to point to webp files (choose between picture tags or simply altering all image urls) * Convert non-existing webp-files upon request (means you can reference the converted webp files before they are actually converted!) For more info, see the closed issues on the 0.11.0 milestone on the github repository: https://github.com/rosell-dk/webp-express/milestone/14?closed=1 = 0.10.0 = *(released 7 jan 2019)* * Introduced "Operation modes" in order to keep setting screens simple but still allow tweaking * WebP Express can now be used in conjunction with Cache Enabler and ShortPixel * Cache-Control header is now added in *.htaccess*, when redirecting directly to existing webp For more info, see the closed issues on the 0.10.0 milestone on the github repository: https://github.com/rosell-dk/webp-express/milestone/7?closed=1 = 0.9.1 = *(released 28 dec 2018)* * Fixed critical bug causing blank page on options page = 0.9.0 = *(released 27 dec 2018)* * Optionally make .htaccess redirect directly to existing webp (improves performance) * Optionally do not send filename from *.htaccess* to the PHP in Querystring, but use other means (improves security and reduces risks of problems due to firewall rules) * Fixed some bugs For more info, see the closed issues on the 0.9.0 milestone on the github repository: https://github.com/rosell-dk/webp-express/issues?q=is%3Aclosed+milestone%3A0.9.0 = 0.8.1 = *(released 11 dec 2018)* * Fixed javascript bug = 0.8.0 = *(released 11 dec 2018)* * New conversion method, which calls imagick binary directly. This will make WebP express work out of the box on more systems * Made sure not to trigger LFI warning i Wordfence (to activate, click the force .htaccess button) * Imagick can now be configured to set quality to auto on systems where the auto option isn't generally available * Added Last-Modified header to images. This makes image caching work better * Added condition in .htaccess that checks that source file exists before handing over to converter * On some systems, converted files where stored in ie *..doc-rootwp-content..* rather than *..doc-root/wp-content..*. This is fixed, a clean-up script corrects the file structure upon upgrade. For more info, see the closed issues on the 0.8.0 milestone on the github repository: https://github.com/rosell-dk/webp-express/issues?q=is%3Aclosed+milestone%3A0.8.0 = 0.7.2 = *(released 21 nov 2018)* Fixed a critical bug which generated an error message which caused corrupt images. It was not the bug itself, but the error message it generated, that caused the images to be corrupted. It only happened when debugging was enabled in php.ini = 0.7.1 = *(released 9 nov 2018)* Fixed minor "bug". The Api version combobox in Remote WebP Express converter was showing on new sites, but I only want it to show when old api is being used. = 0.7.0 = *(released 9 nov 2018)* This version added option to provide conversion service to other sites! For more info, see the closed issues on the 0.7.0 milestone on the github repository: https://github.com/rosell-dk/webp-express/issues?q=is%3Aclosed+milestone%3A0.7.0 = 0.6.0 = *(released 4 okt 2018)* This version added option for setting caching header, fixed a serious issue with *Imagick*, added a new converter, *Gmagick*, added a great deal of options to *Cwebp* and generally improved the interface. * Added option for caching * Fixed long standing and serious issue with Imagick converter. It no longer generates webp images in poor quality * Added gmagick as a new conversion method * WebPExpress now runs on newly released WebP-Convert 1.2.0 * Added many new options for *cwebp* * You can now quickly see converter status by hovering over a converter * You can now choose between having quality auto-detected or not (if the server supports detecting quality). * If the server does not support detecting quality, the WPC converter will display a quality "auto" option * Added special intro message for those who has no working conversion methods * Added help texts for options * Settings are now saved, when changing converter options. Too many times, I found myself forgetting to save... For more info, see the closed issues on the 0.6.0 milestone on our github repository: https://github.com/rosell-dk/webp-express/issues?q=is%3Aclosed+milestone%3A0.6.0 = 0.5.0 = This version works on many more setups than the previous. Also uses less resources and handles when images are changed. * Configuration is now stored in a separate configuration file instead of storing directly in the *.htaccess* file and passing it on via query string. When updating, these settings are migrated automatically. * Handles setups where Wordpress has been given its own directory (both methods mentioned [here](https://codex.wordpress.org/Giving_WordPress_Its_Own_Directory)) * Handles setups where *wp-content* has been moved, even out of Wordpress root. * Handles setups where Uploads folder has been moved, even out of *wp-content*. * Handles setups where Plugins folder has been moved, even out of *wp-content* or out of Wordpress root * Is not as likely to be subject to firewalls blocking requests (in 0.4.0, we passed all options in a querystring, and that could trigger firewalls under some circumstances) * Is not as likely to be subject to rewrite rules from other plugins interfering. WebP Express now stores the .htaccess in the wp-content folder (if you allow it). As this is deeper than the root folder, the rules in here takes precedence over rules in the main *.htaccess* * The *.htaccess* now passes the complete absulute path to the source file instead of a relative path. This is a less error-prone method. * Reconverts the webp, if source image has changed * Now runs on version 1.0.0 of [WebP On Demand](https://github.com/rosell-dk/webp-on-demand). Previously ran on 0.3.0 * Now takes care of only loading the PHP classes when needed in order not to slow down your Wordpress. The frontend will only need to process four lines of code. The backend footprint is also quite small now (80 lines of code of hooks) * Now works in Wordpress 4.0 - 4.6. * Added cache-breaking tokens to image test links * Denies deactivation if rewrite rules could not be removed * Refactored thoroughly * More helpful texts. * Extensive testing. Tested on Wordpress 4.0, 4.1, 4.2, 4.3, 4.4, 4.5, 4.6, 4.7, 4.8 and 4.9. Tested with PHP 5.6, PHP 7.0 and PHP 7.1. Tested on Apache and LiteSpeed. Tested when missing various write permissions. Tested migration. Tested when installed in root, in subfolder, when Wordpress has its own directory (both methods), when wp-content is moved out of Wordpress directory, when plugins is moved out of Wordpress directory, when both of them are moved and when uploads have been moved. For more info, see the closed issues on the 0.5.0 milestone on our github repository: https://github.com/rosell-dk/webp-express/milestone/2?closed=1 = 0.4.0 = This version fixes some misbehaviours and provides new http headers with info about the conversion process. * Fixed bug: .htaccess was not updated every time the settings was saved. * Fixed bug: The plugin generated error upon activation. * Now produces X-WebP-Convert-And-Serve headers with info about the conversion - useful for validating that converter receives the expected arguments and executes correctly. * WebPExpress options are now removed when plugin is uninstalled. * No longer generates .htaccess rules on install. The user now has to actively go to Web Express setting and save first * Added a "first time" message on options page and a reactivation message For more info, see the closed issues on the github repository: https://github.com/rosell-dk/webp-express/milestone/1?closed=1 = 0.3.1 = * The "Only jpeg" setting wasn't respected in 0.3.0. It now works again = 0.3 = * Now works on LiteSpeed webservers * Now sends X-WebP-On-Demand headers for easier debugging