Changeset 2929596
- Timestamp:
- 06/22/2023 09:43:32 AM (3 years ago)
- Location:
- autoptimize
- Files:
-
- 2 deleted
- 6 edited
- 46 copied
-
tags/3.1.8 (copied) (copied from autoptimize/trunk)
-
tags/3.1.8/autoptimize.php (copied) (copied from autoptimize/trunk/autoptimize.php) (3 diffs)
-
tags/3.1.8/classes/autoptimizeBase.php (copied) (copied from autoptimize/trunk/classes/autoptimizeBase.php)
-
tags/3.1.8/classes/autoptimizeCSSmin.php (copied) (copied from autoptimize/trunk/classes/autoptimizeCSSmin.php)
-
tags/3.1.8/classes/autoptimizeCache.php (copied) (copied from autoptimize/trunk/classes/autoptimizeCache.php)
-
tags/3.1.8/classes/autoptimizeCompatibility.php (copied) (copied from autoptimize/trunk/classes/autoptimizeCompatibility.php)
-
tags/3.1.8/classes/autoptimizeConfig.php (copied) (copied from autoptimize/trunk/classes/autoptimizeConfig.php)
-
tags/3.1.8/classes/autoptimizeCriticalCSSBase.php (copied) (copied from autoptimize/trunk/classes/autoptimizeCriticalCSSBase.php)
-
tags/3.1.8/classes/autoptimizeCriticalCSSCore.php (copied) (copied from autoptimize/trunk/classes/autoptimizeCriticalCSSCore.php) (6 diffs)
-
tags/3.1.8/classes/autoptimizeCriticalCSSCron.php (copied) (copied from autoptimize/trunk/classes/autoptimizeCriticalCSSCron.php)
-
tags/3.1.8/classes/autoptimizeCriticalCSSEnqueue.php (copied) (copied from autoptimize/trunk/classes/autoptimizeCriticalCSSEnqueue.php) (1 diff)
-
tags/3.1.8/classes/autoptimizeCriticalCSSSettings.php (copied) (copied from autoptimize/trunk/classes/autoptimizeCriticalCSSSettings.php)
-
tags/3.1.8/classes/autoptimizeCriticalCSSSettingsAjax.php (copied) (copied from autoptimize/trunk/classes/autoptimizeCriticalCSSSettingsAjax.php)
-
tags/3.1.8/classes/autoptimizeExitSurvey.php (copied) (copied from autoptimize/trunk/classes/autoptimizeExitSurvey.php)
-
tags/3.1.8/classes/autoptimizeExtra.php (copied) (copied from autoptimize/trunk/classes/autoptimizeExtra.php)
-
tags/3.1.8/classes/autoptimizeHTML.php (copied) (copied from autoptimize/trunk/classes/autoptimizeHTML.php)
-
tags/3.1.8/classes/autoptimizeImages.php (copied) (copied from autoptimize/trunk/classes/autoptimizeImages.php) (3 diffs)
-
tags/3.1.8/classes/autoptimizeMain.php (copied) (copied from autoptimize/trunk/classes/autoptimizeMain.php)
-
tags/3.1.8/classes/autoptimizeMetabox.php (copied) (copied from autoptimize/trunk/classes/autoptimizeMetabox.php)
-
tags/3.1.8/classes/autoptimizeOptionWrapper.php (copied) (copied from autoptimize/trunk/classes/autoptimizeOptionWrapper.php)
-
tags/3.1.8/classes/autoptimizePartners.php (copied) (copied from autoptimize/trunk/classes/autoptimizePartners.php)
-
tags/3.1.8/classes/autoptimizeScripts.php (copied) (copied from autoptimize/trunk/classes/autoptimizeScripts.php)
-
tags/3.1.8/classes/autoptimizeSpeedupper.php (copied) (copied from autoptimize/trunk/classes/autoptimizeSpeedupper.php)
-
tags/3.1.8/classes/autoptimizeStyles.php (copied) (copied from autoptimize/trunk/classes/autoptimizeStyles.php)
-
tags/3.1.8/classes/autoptimizeToolbar.php (copied) (copied from autoptimize/trunk/classes/autoptimizeToolbar.php)
-
tags/3.1.8/classes/autoptimizeUtils.php (copied) (copied from autoptimize/trunk/classes/autoptimizeUtils.php)
-
tags/3.1.8/classes/autoptimizeVersionUpdatesHandler.php (copied) (copied from autoptimize/trunk/classes/autoptimizeVersionUpdatesHandler.php)
-
tags/3.1.8/classes/critcss-inc/admin_settings_adv.php (copied) (copied from autoptimize/trunk/classes/critcss-inc/admin_settings_adv.php)
-
tags/3.1.8/classes/critcss-inc/admin_settings_debug.php (copied) (copied from autoptimize/trunk/classes/critcss-inc/admin_settings_debug.php) (1 diff)
-
tags/3.1.8/classes/critcss-inc/admin_settings_explain.php (copied) (copied from autoptimize/trunk/classes/critcss-inc/admin_settings_explain.php)
-
tags/3.1.8/classes/critcss-inc/admin_settings_key.php (copied) (copied from autoptimize/trunk/classes/critcss-inc/admin_settings_key.php)
-
tags/3.1.8/classes/critcss-inc/admin_settings_queue.js.php (copied) (copied from autoptimize/trunk/classes/critcss-inc/admin_settings_queue.js.php)
-
tags/3.1.8/classes/critcss-inc/admin_settings_queue.php (copied) (copied from autoptimize/trunk/classes/critcss-inc/admin_settings_queue.php)
-
tags/3.1.8/classes/critcss-inc/admin_settings_rules.js.php (copied) (copied from autoptimize/trunk/classes/critcss-inc/admin_settings_rules.js.php)
-
tags/3.1.8/classes/critcss-inc/admin_settings_rules.php (copied) (copied from autoptimize/trunk/classes/critcss-inc/admin_settings_rules.php)
-
tags/3.1.8/classes/external/js/lazysizes.min.js (copied) (copied from autoptimize/trunk/classes/external/js/lazysizes.min.js)
-
tags/3.1.8/classes/external/js/unslider-min.js (deleted)
-
tags/3.1.8/classes/external/js/unslider.min.js (copied) (copied from autoptimize/trunk/classes/external/js/unslider.min.js)
-
tags/3.1.8/classes/external/php/ao-minify-html.php (copied) (copied from autoptimize/trunk/classes/external/php/ao-minify-html.php)
-
tags/3.1.8/classes/external/php/jsmin.php (copied) (copied from autoptimize/trunk/classes/external/php/jsmin.php)
-
tags/3.1.8/classes/external/php/minify-html.php (deleted)
-
tags/3.1.8/classes/static/exit-survey (copied) (copied from autoptimize/trunk/classes/static/exit-survey)
-
tags/3.1.8/classes/static/exit-survey/exit-survey.css (copied) (copied from autoptimize/trunk/classes/static/exit-survey/exit-survey.css)
-
tags/3.1.8/classes/static/exit-survey/exit-survey.js (copied) (copied from autoptimize/trunk/classes/static/exit-survey/exit-survey.js)
-
tags/3.1.8/classes/static/toolbar.min.css (copied) (copied from autoptimize/trunk/classes/static/toolbar.min.css)
-
tags/3.1.8/classes/static/toolbar.min.js (copied) (copied from autoptimize/trunk/classes/static/toolbar.min.js)
-
tags/3.1.8/config/autoptimize_404_handler.php (copied) (copied from autoptimize/trunk/config/autoptimize_404_handler.php)
-
tags/3.1.8/readme.txt (copied) (copied from autoptimize/trunk/readme.txt) (2 diffs)
-
trunk/autoptimize.php (modified) (3 diffs)
-
trunk/classes/autoptimizeCriticalCSSCore.php (modified) (6 diffs)
-
trunk/classes/autoptimizeCriticalCSSEnqueue.php (modified) (1 diff)
-
trunk/classes/autoptimizeImages.php (modified) (3 diffs)
-
trunk/classes/critcss-inc/admin_settings_debug.php (modified) (1 diff)
-
trunk/readme.txt (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
autoptimize/tags/3.1.8/autoptimize.php
r2903008 r2929596 4 4 * Plugin URI: https://autoptimize.com/pro/ 5 5 * Description: Makes your site faster by optimizing CSS, JS, Images, Google fonts and more. 6 * Version: 3.1. 76 * Version: 3.1.8 7 7 * Author: Frank Goossens (futtta) 8 8 * Author URI: https://autoptimize.com/pro/ … … 22 22 } 23 23 24 define( 'AUTOPTIMIZE_PLUGIN_VERSION', '3.1. 7' );24 define( 'AUTOPTIMIZE_PLUGIN_VERSION', '3.1.8' ); 25 25 26 26 // plugin_dir_path() returns the trailing slash! … … 80 80 } 81 81 82 // filter to disable AO both on front- and backend. 83 if ( apply_filters( 'autoptimize_filter_disable_plugin', false ) ) { 84 return; 85 } 86 82 87 /** 83 88 * Retrieve the instance of the main plugin class. -
autoptimize/tags/3.1.8/classes/autoptimizeCriticalCSSCore.php
r2878905 r2929596 108 108 return apply_filters( 'autoptimize_filter_ccss_core_ccss', $_ccss_contents . $additional ); 109 109 } else { 110 if ( $debug ) { 111 $this->criticalcss->log( 'Path based rule with value "none" found.', 3 ); 112 } 110 113 $no_ccss = 'none'; 111 114 } … … 131 134 return apply_filters( 'autoptimize_filter_ccss_core_ccss', $_ccss_contents . $additional ); 132 135 } else { 136 if ( $debug ) { 137 $this->criticalcss->log( 'Conditional rule for is_front_page with value "none" found.', 3 ); 138 } 133 139 $no_ccss = 'none'; 134 140 } … … 141 147 return apply_filters( 'autoptimize_filter_ccss_core_ccss', $_ccss_contents . $additional ); 142 148 } else { 149 if ( $debug ) { 150 $this->criticalcss->log( 'Conditional rule custom_post with value "none" found.', 3 ); 151 } 143 152 $no_ccss = 'none'; 144 153 } … … 152 161 return apply_filters( 'autoptimize_filter_ccss_core_ccss', $_ccss_contents . $additional ); 153 162 } else { 163 if ( $debug ) { 164 $this->criticalcss->log( 'Conditional rule for template with value "none" found.', 3 ); 165 } 154 166 $no_ccss = 'none'; 155 167 } … … 166 178 return apply_filters( 'autoptimize_filter_ccss_core_ccss', $_ccss_contents . $additional ); 167 179 } else { 180 if ( $debug ) { 181 $this->criticalcss->log( 'Conditional rule for ' . $type . ' with value "none" found.', 3 ); 182 } 168 183 $no_ccss = 'none'; 169 184 } … … 178 193 // This also applies to logged in users if the option to add CCSS for logged in users has been disabled. 179 194 if ( ! empty( $inlined ) && 'none' !== $no_ccss ) { 195 if ( $debug ) { 196 $this->criticalcss->log( 'Using default "above the fold" CSS.', 3 ); 197 } 180 198 return apply_filters( 'autoptimize_filter_ccss_core_ccss', $inlined . $additional ); 181 199 } else { 200 if ( $debug ) { 201 $this->criticalcss->log( 'No matching CCSS found, switching to inlining full CSS.', 3 ); 202 } 182 203 add_filter( 'autoptimize_filter_css_inline', '__return_true' ); 183 204 return; -
autoptimize/tags/3.1.8/classes/autoptimizeCriticalCSSEnqueue.php
r2801903 r2929596 232 232 $page_type = 'is_front_page'; 233 233 break; 234 } elseif ( strpos( $type, 'custom_post_' ) !== false && ( ! $forcepath || ! is_page() ) ){234 } elseif ( strpos( $type, 'custom_post_' ) !== false && ( ! $forcepath || ! is_page() ) && is_singular() ) { 235 235 // Match custom post types and not page or page not forced to path-based. 236 236 if ( get_post_type( get_the_ID() ) === substr( $type, 12 ) ) { -
autoptimize/tags/3.1.8/classes/autoptimizeImages.php
r2878905 r2929596 262 262 } 263 263 264 public function get_imgopt_host()264 public static function get_imgopt_host() 265 265 { 266 266 static $imgopt_host = null; … … 763 763 764 764 // background-image in inline style. 765 if ( strpos( $out, 'background-image:' ) !== false && apply_filters( 'autoptimize_filter_imgopt_backgroundimages', true ) ) {765 if ( ( strpos( $out, 'background-image:' ) !== false || strpos( $out, 'background:' ) !== false ) && strpos( $out, 'url(' ) !== false && apply_filters( 'autoptimize_filter_imgopt_backgroundimages', true ) ) { 766 766 $out = preg_replace_callback( 767 '/style=(?:"|\')[^<>]*?background-image:\s?url\((?:"|\')?([^"\')]*)(?:"|\')?\)/',767 '/style=(?:"|\')[^<>]*?background(?:-image)?:[^;"\'()>]*url\((?:"|\')?([^"\')]*)(?:"|\')?\)/', 768 768 array( $this, 'replace_img_callback' ), 769 769 $out … … 1201 1201 public function fix_silly_bgimg_quotes( $tag_in ) { 1202 1202 // some themes/ pagebuilders wrap backgroundimages in HTML-encoded quotes (or linebreaks) which breaks imgopt/ lazyloading, this removes them. 1203 return trim( str_replace( array( "\r\n", ' "', '"', ''', ''' ), '', $tag_in ) );1203 return trim( str_replace( array( "\r\n", '"', '"', '"', ''', ''' ), '', $tag_in ) ); 1204 1204 } 1205 1205 -
autoptimize/tags/3.1.8/classes/critcss-inc/admin_settings_debug.php
r2770441 r2929596 50 50 <tr> 51 51 <th scope="row"> 52 <?php echo $option['name']; ?>52 <?php echo wp_strip_all_tags( $option['name'] ); ?> 53 53 </th> 54 54 <td> 55 55 <?php 56 56 if ( 'autoptimize_ccss_queue' == $option['name'] || 'autoptimize_ccss_rules' == $option['name'] ) { 57 $value = print_r( json_decode( $option['value'], true ), true );57 $value = print_r( json_decode( wp_strip_all_tags( $option['value'] ), true ), true ); 58 58 if ( $value ) { 59 echo "Raw JSON:\n<pre>" . $option['value'] . "</pre>\n\nDecoded JSON:\n<pre>" . $value. '</pre>';59 echo "Raw JSON:\n<pre>" . wp_strip_all_tags( $option['value'] ) . "</pre>\n\nDecoded JSON:\n<pre>" . wp_strip_all_tags( $value ) . '</pre>'; 60 60 } else { 61 61 echo 'Empty'; 62 62 } 63 63 } else { 64 echo $option['value'];64 echo wp_strip_all_tags( $option['value'] ); 65 65 } 66 66 ?> -
autoptimize/tags/3.1.8/readme.txt
r2903936 r2929596 6 6 Tested up to: 6.2 7 7 Requires PHP: 5.6 8 Stable tag: 3.1. 78 Stable tag: 3.1.8 9 9 10 10 Autoptimize speeds up your website by optimizing JS, CSS, images (incl. lazy-load), HTML and Google Fonts, asyncing JS, removing emoji cruft and more. … … 320 320 == Changelog == 321 321 322 = 3.1.8 = 323 * Images: improve optmization logic for background images 324 * Critical CSS: don't trigger custom_post rule if not is_singular + adding debug logging for rule selection 325 * some other minor changes/ improvements/ filters, see the [GitHub commit log](https://github.com/futtta/autoptimize/commits/beta). 326 322 327 = 3.1.7 = 323 328 * security: improve validation (import) and sanitization (output) of critical CSS rules, to fix a medium severity Admin+ Stored Cross-Site Scripting vulnerability as reported by WP Scan Security. -
autoptimize/trunk/autoptimize.php
r2903008 r2929596 4 4 * Plugin URI: https://autoptimize.com/pro/ 5 5 * Description: Makes your site faster by optimizing CSS, JS, Images, Google fonts and more. 6 * Version: 3.1. 76 * Version: 3.1.8 7 7 * Author: Frank Goossens (futtta) 8 8 * Author URI: https://autoptimize.com/pro/ … … 22 22 } 23 23 24 define( 'AUTOPTIMIZE_PLUGIN_VERSION', '3.1. 7' );24 define( 'AUTOPTIMIZE_PLUGIN_VERSION', '3.1.8' ); 25 25 26 26 // plugin_dir_path() returns the trailing slash! … … 80 80 } 81 81 82 // filter to disable AO both on front- and backend. 83 if ( apply_filters( 'autoptimize_filter_disable_plugin', false ) ) { 84 return; 85 } 86 82 87 /** 83 88 * Retrieve the instance of the main plugin class. -
autoptimize/trunk/classes/autoptimizeCriticalCSSCore.php
r2878905 r2929596 108 108 return apply_filters( 'autoptimize_filter_ccss_core_ccss', $_ccss_contents . $additional ); 109 109 } else { 110 if ( $debug ) { 111 $this->criticalcss->log( 'Path based rule with value "none" found.', 3 ); 112 } 110 113 $no_ccss = 'none'; 111 114 } … … 131 134 return apply_filters( 'autoptimize_filter_ccss_core_ccss', $_ccss_contents . $additional ); 132 135 } else { 136 if ( $debug ) { 137 $this->criticalcss->log( 'Conditional rule for is_front_page with value "none" found.', 3 ); 138 } 133 139 $no_ccss = 'none'; 134 140 } … … 141 147 return apply_filters( 'autoptimize_filter_ccss_core_ccss', $_ccss_contents . $additional ); 142 148 } else { 149 if ( $debug ) { 150 $this->criticalcss->log( 'Conditional rule custom_post with value "none" found.', 3 ); 151 } 143 152 $no_ccss = 'none'; 144 153 } … … 152 161 return apply_filters( 'autoptimize_filter_ccss_core_ccss', $_ccss_contents . $additional ); 153 162 } else { 163 if ( $debug ) { 164 $this->criticalcss->log( 'Conditional rule for template with value "none" found.', 3 ); 165 } 154 166 $no_ccss = 'none'; 155 167 } … … 166 178 return apply_filters( 'autoptimize_filter_ccss_core_ccss', $_ccss_contents . $additional ); 167 179 } else { 180 if ( $debug ) { 181 $this->criticalcss->log( 'Conditional rule for ' . $type . ' with value "none" found.', 3 ); 182 } 168 183 $no_ccss = 'none'; 169 184 } … … 178 193 // This also applies to logged in users if the option to add CCSS for logged in users has been disabled. 179 194 if ( ! empty( $inlined ) && 'none' !== $no_ccss ) { 195 if ( $debug ) { 196 $this->criticalcss->log( 'Using default "above the fold" CSS.', 3 ); 197 } 180 198 return apply_filters( 'autoptimize_filter_ccss_core_ccss', $inlined . $additional ); 181 199 } else { 200 if ( $debug ) { 201 $this->criticalcss->log( 'No matching CCSS found, switching to inlining full CSS.', 3 ); 202 } 182 203 add_filter( 'autoptimize_filter_css_inline', '__return_true' ); 183 204 return; -
autoptimize/trunk/classes/autoptimizeCriticalCSSEnqueue.php
r2801903 r2929596 232 232 $page_type = 'is_front_page'; 233 233 break; 234 } elseif ( strpos( $type, 'custom_post_' ) !== false && ( ! $forcepath || ! is_page() ) ){234 } elseif ( strpos( $type, 'custom_post_' ) !== false && ( ! $forcepath || ! is_page() ) && is_singular() ) { 235 235 // Match custom post types and not page or page not forced to path-based. 236 236 if ( get_post_type( get_the_ID() ) === substr( $type, 12 ) ) { -
autoptimize/trunk/classes/autoptimizeImages.php
r2878905 r2929596 262 262 } 263 263 264 public function get_imgopt_host()264 public static function get_imgopt_host() 265 265 { 266 266 static $imgopt_host = null; … … 763 763 764 764 // background-image in inline style. 765 if ( strpos( $out, 'background-image:' ) !== false && apply_filters( 'autoptimize_filter_imgopt_backgroundimages', true ) ) {765 if ( ( strpos( $out, 'background-image:' ) !== false || strpos( $out, 'background:' ) !== false ) && strpos( $out, 'url(' ) !== false && apply_filters( 'autoptimize_filter_imgopt_backgroundimages', true ) ) { 766 766 $out = preg_replace_callback( 767 '/style=(?:"|\')[^<>]*?background-image:\s?url\((?:"|\')?([^"\')]*)(?:"|\')?\)/',767 '/style=(?:"|\')[^<>]*?background(?:-image)?:[^;"\'()>]*url\((?:"|\')?([^"\')]*)(?:"|\')?\)/', 768 768 array( $this, 'replace_img_callback' ), 769 769 $out … … 1201 1201 public function fix_silly_bgimg_quotes( $tag_in ) { 1202 1202 // some themes/ pagebuilders wrap backgroundimages in HTML-encoded quotes (or linebreaks) which breaks imgopt/ lazyloading, this removes them. 1203 return trim( str_replace( array( "\r\n", ' "', '"', ''', ''' ), '', $tag_in ) );1203 return trim( str_replace( array( "\r\n", '"', '"', '"', ''', ''' ), '', $tag_in ) ); 1204 1204 } 1205 1205 -
autoptimize/trunk/classes/critcss-inc/admin_settings_debug.php
r2770441 r2929596 50 50 <tr> 51 51 <th scope="row"> 52 <?php echo $option['name']; ?>52 <?php echo wp_strip_all_tags( $option['name'] ); ?> 53 53 </th> 54 54 <td> 55 55 <?php 56 56 if ( 'autoptimize_ccss_queue' == $option['name'] || 'autoptimize_ccss_rules' == $option['name'] ) { 57 $value = print_r( json_decode( $option['value'], true ), true );57 $value = print_r( json_decode( wp_strip_all_tags( $option['value'] ), true ), true ); 58 58 if ( $value ) { 59 echo "Raw JSON:\n<pre>" . $option['value'] . "</pre>\n\nDecoded JSON:\n<pre>" . $value. '</pre>';59 echo "Raw JSON:\n<pre>" . wp_strip_all_tags( $option['value'] ) . "</pre>\n\nDecoded JSON:\n<pre>" . wp_strip_all_tags( $value ) . '</pre>'; 60 60 } else { 61 61 echo 'Empty'; 62 62 } 63 63 } else { 64 echo $option['value'];64 echo wp_strip_all_tags( $option['value'] ); 65 65 } 66 66 ?> -
autoptimize/trunk/readme.txt
r2903936 r2929596 6 6 Tested up to: 6.2 7 7 Requires PHP: 5.6 8 Stable tag: 3.1. 78 Stable tag: 3.1.8 9 9 10 10 Autoptimize speeds up your website by optimizing JS, CSS, images (incl. lazy-load), HTML and Google Fonts, asyncing JS, removing emoji cruft and more. … … 320 320 == Changelog == 321 321 322 = 3.1.8 = 323 * Images: improve optmization logic for background images 324 * Critical CSS: don't trigger custom_post rule if not is_singular + adding debug logging for rule selection 325 * some other minor changes/ improvements/ filters, see the [GitHub commit log](https://github.com/futtta/autoptimize/commits/beta). 326 322 327 = 3.1.7 = 323 328 * security: improve validation (import) and sanitization (output) of critical CSS rules, to fix a medium severity Admin+ Stored Cross-Site Scripting vulnerability as reported by WP Scan Security.
Note: See TracChangeset
for help on using the changeset viewer.