= 4.7.4 =
* fixed: ExactDN modifies Autoptimize CDN setting even when Include All Resources is disabled
* fixed: noscript elements with newlines being parsed incorrectly by Lazy Load and JS WebP
* fixed: Lazy Load parsing breaking img elements in script blocks
* fixed: Lazy Load and JS WebP bail when SVGs are wrapped in XML tags
* fixed: ExactDN mixes x and w srcset descriptors
* fixed: page parsers (ExactDN, Lazy, JS WebP) still fail to process some img elements that have unquoted src attributes
= 4.7.3 =
* added: disable WebP script block on certain pages by defining EWWW_IMAGE_OPTIMIZER_NO_JS as true
* changed: use SVG inline image placeholder if width and height are known when LQIP is disabled or ExactDN is not available
* changed: Lazy Load ignores images using browser-native loading attribute
* fixed: page parsers (ExactDN, Lazy, JS WebP) do not properly handle attributes that start on a new line
* fixed: page parsers do not recognize img elements with unquoted attributes
* fixed: uninstaller cannot clear queue table due to undefined table name
* fixed: implode throws notice when image sizes array is multi-dimensional
* fixed: srcset url replaced incorrectly when using pixel density descriptors
* fixed: srcset url added with 0 width when width attribute is empty
= 4.7.2 =
* changed: JS WebP no longer necessary with ExactDN
* fixed: fatal error from NextGEN get_image_sizes() method
* fixed: debugging mode gets stuck
* fixed: ExactDN has unexpected results when content_width global equals zero
* fixed: img elements with unquoted src attributes ignored by ExactDN, Lazy Load, and JS WebP
= 4.7.1 =
* added: CSS background image support for
elements
* added: ExactDN + Lazy Load will auto-calculate dimensions for img elements without srcset/responsive markup
* added: ExactDN parses thumbnail url for personalization.com + WooCommerce integration
* added: ExactDN can use data-actual-width attribute for srcset generation
* added: ExactDN + Lazy Load uses devicePixelRatio to provide clearer background images
* fixed: Lazy Load for CSS background images misfires when display height is greater than width
* fixed: visitors without JS see Lazy Load placeholder + fallback image
= 4.7.0 =
* added: lazy load (on ExactDN tab for now)
* added: JS WebP supports background images via lazy load (div elements only for now)
* added: ExactDN supports compression of background images (div elements only for now)
* added: compat with Google Cloud Storage via WP Offload Media
* added: automatic PNG to JPG conversion for ExactDN
* added: ExactDN parsing for legacy WooCommerce API (current API works as-is)
* changed: responsive image 'sizes' attribute can be auto-calculated by lazy load
* changed: JS WebP no longer requires jQuery
* changed: ExactDN srcset multipliers include fullscreen value of 1920px
* changed: force resize function to ignore filesize with ewww_image_optimizer_resize_filesize_ignore filter
* changed: prevent .php script/style generators from going through ExactDN
* changed: ExactDN sites can dismiss exec notice to disable local compression
* changed: automatic compression disabled during WooCommerce regen with admin notice
* changed: use wp_resource_hints filter to include ExactDN dns-prefetch earlier in the page header
* changed: gather debugging information on settings page even when debugging is not enabled yet
* fixed: Bulk Optimize scanner does not update queue in some cases
* fixed: ExactDN does not handle themes that support wide and full-screen images in block editor
* fixed: ExactDN constrains images to 640px in Twenty Nineteen theme
* fixed: ExactDN mangles Flatsome lazy load placeholder image URL
* fixed: empty attributes not recognized properly by HTML parser, resulting in broken markup
* fixed: table nav button styling broken in WP 5.1
* fixed: ExactDN applies resizing args during image_downsize() even when full/original image is too small
* fixed: animated GIF resizing breaks the use of image_resize_dimensions filter in WP_Image_Editor_GD
* fixed: NextGen bulk optimizer unable to decode meta_data
= 4.6.3 =
* changed: folders to ignore setting applies to resizing also
* fixed: lazy load placeholders have inconsistent URLs with ExactDN
* fixed: bulk resume indicator gets stuck
* fixed: bulk scanning queue gets out of sync and skips images
* fixed: async processing does not handle memory limit specified in G (gigabytes)
= 4.6.2 =
* changed: API key may be defined as EWWW_IMAGE_OPTIMIZER_CLOUD_KEY
* fixed: if img tag is missing dimensions, ExactDN sometimes loads original rather than existing thumbnail
* fixed: TinyPNG/TinyJPG images skipped when Force Re-optimize is checked
= 4.6.1 =
* added: automatic configuration for ExactDN + WP Offload Media
* fixed: bulk action from media library skipping last attachment in selection
* fixed: uninstall function throws fatal error preventing deletion
= 4.6.0 =
* added: preserve animations in GIF images during resize operations for sites using Imagick extension
* changed: EXACTDN_EXCLUDE applies to all resources, including images, CSS, JS, fonts, etc.
* changed: API/ExactDN preserves color profiles, even when removing image metadata
* changed: new queue table for bulk optimizer to avoid exceeding max packet size for MySQL
* changed: unit tests run on PHP 7.3 also
* fixed: too many settings updates when trying to prevent slow queries
* fixed: ExactDN rewrites urls to static HTML files
* fixed: ExactDN skips 1x url in some cases, causing browser upscaling
* fixed: PHP notice when EXACTDN_EXCLUDE is defined
* fixed: race condition in Alt WebP prevents Webp derivatives from replacing the originals
= 4.5.3 =
* fixed: ExactDN duplicates srcset instead of replacing it
* security: remote code execution, low exposure
= 4.5.2 =
* added: automatic migration to move image paths from absolute to relative
* changed: default quality for PNG to JPG did not match WordPress default
* fixed: legacy absolute paths not matched during bulk scanner when relative matching is enabled
* fixed: PNG to JPG auto-convert produces larger JPG images in some cases
= 4.5.1 =
* changed: optimization results are tracked by relative urls instead of absolute ones for better portability, migration tool coming soon
* changed: ExactDN defaults to crop when explicit dimensions are given to image_downsize(), revert to scaling with EXACTDN_IMAGE_DOWNSIZE_SCALE
* fixed: WooCommerce thumbnail regeneration triggers excessive admin-ajax requests within EWWW IO
* fixed: ExactDN filtering REST API media endpoint for Gutenberg editor requests
* fixed: ExactDN adding unneeded resize parameters to full-size image urls
* fixed: Alt WebP skipping images with query strings
* fixed: Alt WebP not working with Jetpack Lazy Load for images missing srcset
* fixed: Show Optimized Images table does not display images saved to ewwwio_images table with relative path matching
* fixed: Show Optimized Images table has broken thumbs when WP_CONTENT_DIR is outside of ABSPATH
= 4.5.0 =
* added: Alt WebP supports BJ Lazy Load, a3 Lazy Load, WP Rocket Lazy Load, Jetpack Lazy Load, and WP Retina Lazy Load
* added: ExactDN rewrites relative image urls that start with a single slash
* changed: ExactDN srcset markup for smaller images improved
* fixed: errors during upload/download with WP Offload Media
* fixed: Alt WebP refuses to process page when FB tracking pixel is present
* fixed: SVG files within