W3 Total Cache - Version 0.15.2

Version Description

  • Fix: Minify: Do not remove quotes around meta tags
  • Fix: Minify: Removal of spaces in calc function was breaking CSS
  • Fix: Browser Cache: Query string was not added to prevent caching after setting changes
  • Fix: Avoid warning when sending an empty URL for purging
  • Update: Added a filter for minified JavaScript content
  • Update: Minify: Added options for minify only got both JS and CSS in auto mode
Download this release

Release Info

Developer joemoto
Plugin Icon 128x128 W3 Total Cache
Version 0.15.2
Comparing to
See all releases

Code changes from version 0.15.1 to 0.15.2

BrowserCache_Plugin.php CHANGED
@@ -168,6 +168,15 @@ class BrowserCache_Plugin {
168
  $this,
169
  'link_replace_callback'
170
  ), $buffer );
 
 
 
 
 
 
 
 
 
171
  }
172
 
173
  return $buffer;
@@ -193,6 +202,24 @@ class BrowserCache_Plugin {
193
  return sprintf( '%s\'%s\'', $attr, $url );
194
  }
195
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
196
  /**
197
  * Mutate http/2 header links
198
  */
168
  $this,
169
  'link_replace_callback'
170
  ), $buffer );
171
+
172
+ // without quotes
173
+ $buffer = preg_replace_callback(
174
+ '~(href|src|action|extsrc|asyncsrc)=((' .
175
+ $domain_url_regexp .
176
+ ')?(/[^\\s>][^\\s>]*\.([a-z-_]+)([\?#][^\\s>]*)?))([\\s>])~Ui', array(
177
+ $this,
178
+ 'link_replace_callback_noquote'
179
+ ), $buffer );
180
  }
181
 
182
  return $buffer;
202
  return sprintf( '%s\'%s\'', $attr, $url );
203
  }
204
 
205
+ /**
206
+ * Link replace callback when no quote arount attribute value
207
+ *
208
+ * @param string $matches
209
+ * @return string
210
+ */
211
+ function link_replace_callback_noquote( $matches ) {
212
+ list ( $match, $attr, $url, , , , , $extension, , $delimiter ) = $matches;
213
+
214
+ $ops = $this->_get_url_mutation_operations( $url, $extension );
215
+ if ( is_null( $ops ) )
216
+ return $match;
217
+
218
+ $url = $this->mutate_url( $url, $ops, !$this->browsercache_rewrite );
219
+
220
+ return $attr . '=' . $url . $delimiter;
221
+ }
222
+
223
  /**
224
  * Mutate http/2 header links
225
  */
ConfigCompiler.php CHANGED
@@ -246,6 +246,19 @@ class ConfigCompiler {
246
  }
247
  }
248
 
 
 
 
 
 
 
 
 
 
 
 
 
 
249
  //
250
  // changes in 0.13
251
  //
246
  }
247
  }
248
 
249
+ //
250
+ // changes in 0.15.2
251
+ //
252
+ if ( version_compare( $file_data['version'], '0.15.2', '<' ) ) {
253
+ if ( isset( $file_data['minify.js.combine.header'] ) && $file_data['minify.js.combine.header'] ) {
254
+ $file_data['minify.js.method'] = 'combine';
255
+ }
256
+
257
+ if ( isset( $file_data['minify.css.combine'] ) && $file_data['minify.css.combine'] ) {
258
+ $file_data['minify.css.method'] = 'combine';
259
+ }
260
+ }
261
+
262
  //
263
  // changes in 0.13
264
  //
ConfigKeys.php CHANGED
@@ -836,10 +836,6 @@ $keys = array(
836
  'mfunc'
837
  )
838
  ),
839
- 'minify.css.combine' => array(
840
- 'type' => 'boolean',
841
- 'default' => false
842
- ),
843
  'minify.css.enable' => array(
844
  'type' => 'boolean',
845
  'default' => true
@@ -848,6 +844,10 @@ $keys = array(
848
  'type' => 'string',
849
  'default' => 'css'
850
  ),
 
 
 
 
851
  'minify.css.http2push' => array(
852
  'type' => 'boolean',
853
  'default' => false
@@ -884,6 +884,10 @@ $keys = array(
884
  'type' => 'string',
885
  'default' => 'js'
886
  ),
 
 
 
 
887
  'minify.js.combine.header' => array(
888
  'type' => 'boolean',
889
  'default' => false
836
  'mfunc'
837
  )
838
  ),
 
 
 
 
839
  'minify.css.enable' => array(
840
  'type' => 'boolean',
841
  'default' => true
844
  'type' => 'string',
845
  'default' => 'css'
846
  ),
847
+ 'minify.css.method' => array(
848
+ 'type' => 'string',
849
+ 'default' => 'both'
850
+ ),
851
  'minify.css.http2push' => array(
852
  'type' => 'boolean',
853
  'default' => false
884
  'type' => 'string',
885
  'default' => 'js'
886
  ),
887
+ 'minify.js.method' => array(
888
+ 'type' => 'string',
889
+ 'default' => 'both'
890
+ ),
891
  'minify.js.combine.header' => array(
892
  'type' => 'boolean',
893
  'default' => false
Minify_AutoCss.php CHANGED
@@ -252,6 +252,9 @@ class Minify_AutoCss {
252
  if ( count( $this->files_to_minify ) <= 0 )
253
  $this->embed_pos = $tag_pos;
254
  $this->files_to_minify[] = $file;
 
 
 
255
  }
256
 
257
  /**
252
  if ( count( $this->files_to_minify ) <= 0 )
253
  $this->embed_pos = $tag_pos;
254
  $this->files_to_minify[] = $file;
255
+
256
+ if ( $this->config->get_string( 'minify.css.method' ) == 'minify' )
257
+ $this->flush_collected( '' );
258
  }
259
 
260
  /**
Minify_AutoJs.php CHANGED
@@ -267,6 +267,9 @@ class Minify_AutoJs {
267
  }
268
 
269
  $this->files_to_minify[$sync_type]['files'][] = $file;
 
 
 
270
  }
271
 
272
  /**
267
  }
268
 
269
  $this->files_to_minify[$sync_type]['files'][] = $file;
270
+
271
+ if ( $this->config->get_string( 'minify.js.method' ) == 'minify' )
272
+ $this->flush_collected( $sync_type, '' );
273
  }
274
 
275
  /**
Minify_ConfigLabels.php CHANGED
@@ -27,7 +27,6 @@ class Minify_ConfigLabels {
27
  'minify.js.footer.embed_type' => __( 'Before <span class="html-tag">&lt;/body&gt;</span>', 'w3-total-cache' ),
28
  'minify.js.combine.footer' => __( 'Combine only', 'w3-total-cache' ),
29
  'minify.css.enable' => __( 'Enable', 'w3-total-cache' ),
30
- 'minify.css.combine' => __( 'Combine only', 'w3-total-cache' ),
31
  'minify.css.imports' => __( '@import handling:', 'w3-total-cache' ),
32
  'minify.lifetime' => __( 'Update external files every:', 'w3-total-cache' ),
33
  'minify.file.gc' => __( 'Garbage collection interval:', 'w3-total-cache' ),
27
  'minify.js.footer.embed_type' => __( 'Before <span class="html-tag">&lt;/body&gt;</span>', 'w3-total-cache' ),
28
  'minify.js.combine.footer' => __( 'Combine only', 'w3-total-cache' ),
29
  'minify.css.enable' => __( 'Enable', 'w3-total-cache' ),
 
30
  'minify.css.imports' => __( '@import handling:', 'w3-total-cache' ),
31
  'minify.lifetime' => __( 'Update external files every:', 'w3-total-cache' ),
32
  'minify.file.gc' => __( 'Garbage collection interval:', 'w3-total-cache' ),
Minify_MinifiedFileRequestHandler.php CHANGED
@@ -177,7 +177,8 @@ class Minify_MinifiedFileRequestHandler {
177
  $minifier_type = 'application/x-javascript';
178
 
179
  switch ( true ) {
180
- case ( ( $hash || $location == 'include' ) && $this->_config->get_boolean( 'minify.js.combine.header' ) ):
 
181
  case ( $location == 'include-body' && $this->_config->get_boolean( 'minify.js.combine.body' ) ):
182
  case ( $location == 'include-footer' && $this->_config->get_boolean( 'minify.js.combine.footer' ) ):
183
  $engine = 'combinejs';
@@ -195,7 +196,7 @@ class Minify_MinifiedFileRequestHandler {
195
  } elseif ( $type == 'css' ) {
196
  $minifier_type = 'text/css';
197
 
198
- if ( ( $hash || $location == 'include' ) && $this->_config->get_boolean( 'minify.css.combine' ) ) {
199
  $engine = 'combinecss';
200
  } else {
201
  $engine = $this->_config->get_string( 'minify.css.engine' );
@@ -860,12 +861,22 @@ class Minify_MinifiedFileRequestHandler {
860
  if ( $type == 'js' ) {
861
  $engine = $this->_config->get_string( 'minify.js.engine' );
862
 
863
- switch ( $engine ) {
864
- case 'js':
865
- $keys = array_merge( $keys, array(
 
 
 
866
  'minify.js.combine.header',
867
  'minify.js.combine.body',
868
  'minify.js.combine.footer',
 
 
 
 
 
 
 
869
  'minify.js.strip.comments',
870
  'minify.js.strip.crlf',
871
  ) );
@@ -889,11 +900,11 @@ class Minify_MinifiedFileRequestHandler {
889
  }
890
  } elseif ( $type == 'css' ) {
891
  $engine = $this->_config->get_string( 'minify.css.engine' );
 
892
 
893
  switch ( $engine ) {
894
  case 'css':
895
  $keys = array_merge( $keys, array(
896
- 'minify.css.combine',
897
  'minify.css.strip.comments',
898
  'minify.css.strip.crlf',
899
  'minify.css.imports',
177
  $minifier_type = 'application/x-javascript';
178
 
179
  switch ( true ) {
180
+ case ( $hash && $this->_config->get_string( 'minify.js.method' ) == 'combine' ):
181
+ case ( $location == 'include' && $this->_config->get_boolean( 'minify.js.combine.header' ) ):
182
  case ( $location == 'include-body' && $this->_config->get_boolean( 'minify.js.combine.body' ) ):
183
  case ( $location == 'include-footer' && $this->_config->get_boolean( 'minify.js.combine.footer' ) ):
184
  $engine = 'combinejs';
196
  } elseif ( $type == 'css' ) {
197
  $minifier_type = 'text/css';
198
 
199
+ if ( ( $hash || $location == 'include' ) && $this->_config->get_string( 'minify.css.method' ) == 'combine' ) {
200
  $engine = 'combinecss';
201
  } else {
202
  $engine = $this->_config->get_string( 'minify.css.engine' );
861
  if ( $type == 'js' ) {
862
  $engine = $this->_config->get_string( 'minify.js.engine' );
863
 
864
+ if ( $this->_config->get_boolean( 'minify.auto' ) ) {
865
+ $keys[] = 'minify.js.method';
866
+ } else {
867
+ array_merge(
868
+ $keys,
869
+ array(
870
  'minify.js.combine.header',
871
  'minify.js.combine.body',
872
  'minify.js.combine.footer',
873
+ )
874
+ );
875
+ }
876
+
877
+ switch ( $engine ) {
878
+ case 'js':
879
+ $keys = array_merge( $keys, array(
880
  'minify.js.strip.comments',
881
  'minify.js.strip.crlf',
882
  ) );
900
  }
901
  } elseif ( $type == 'css' ) {
902
  $engine = $this->_config->get_string( 'minify.css.engine' );
903
+ $keys[] = 'minify.css.method';
904
 
905
  switch ( $engine ) {
906
  case 'css':
907
  $keys = array_merge( $keys, array(
 
908
  'minify.css.strip.comments',
909
  'minify.css.strip.crlf',
910
  'minify.css.imports',
PgCache_Flush.php CHANGED
@@ -302,6 +302,10 @@ class PgCache_Flush extends PgCache_ContentGrabber {
302
  */
303
  private function _flush_url( $url, $cache, $mobile_groups, $referrer_groups,
304
  $cookies, $encryptions, $compressions, $group ) {
 
 
 
 
305
  foreach ( $mobile_groups as $mobile_group ) {
306
  foreach ( $referrer_groups as $referrer_group ) {
307
  foreach ( $cookies as $cookie ) {
302
  */
303
  private function _flush_url( $url, $cache, $mobile_groups, $referrer_groups,
304
  $cookies, $encryptions, $compressions, $group ) {
305
+ if ( empty( $url ) ) {
306
+ return;
307
+ }
308
+
309
  foreach ( $mobile_groups as $mobile_group ) {
310
  foreach ( $referrer_groups as $referrer_group ) {
311
  foreach ( $cookies as $cookie ) {
Util_Admin.php CHANGED
@@ -380,7 +380,7 @@ class Util_Admin {
380
  if ( $new_config->get_boolean( 'minify.css.enable' ) && ( $new_config->get_boolean( 'minify.auto' ) || count( $new_config->get_array( 'minify.css.groups' ) ) ) ) {
381
  $minify_dependencies = array_merge( $minify_dependencies, array(
382
  'minify.css.engine',
383
- 'minify.css.combine',
384
  'minify.css.strip.comments',
385
  'minify.css.strip.crlf',
386
  'minify.css.imports',
@@ -411,6 +411,7 @@ class Util_Admin {
411
  if ( $new_config->get_boolean( 'minify.js.enable' ) && ( $new_config->get_boolean( 'minify.auto' ) || count( $new_config->get_array( 'minify.js.groups' ) ) ) ) {
412
  $minify_dependencies = array_merge( $minify_dependencies, array(
413
  'minify.js.engine',
 
414
  'minify.js.combine.header',
415
  'minify.js.combine.body',
416
  'minify.js.combine.footer',
380
  if ( $new_config->get_boolean( 'minify.css.enable' ) && ( $new_config->get_boolean( 'minify.auto' ) || count( $new_config->get_array( 'minify.css.groups' ) ) ) ) {
381
  $minify_dependencies = array_merge( $minify_dependencies, array(
382
  'minify.css.engine',
383
+ 'minify.css.method',
384
  'minify.css.strip.comments',
385
  'minify.css.strip.crlf',
386
  'minify.css.imports',
411
  if ( $new_config->get_boolean( 'minify.js.enable' ) && ( $new_config->get_boolean( 'minify.auto' ) || count( $new_config->get_array( 'minify.js.groups' ) ) ) ) {
412
  $minify_dependencies = array_merge( $minify_dependencies, array(
413
  'minify.js.engine',
414
+ 'minify.js.method',
415
  'minify.js.combine.header',
416
  'minify.js.combine.body',
417
  'minify.js.combine.footer',
inc/options/minify.php CHANGED
@@ -133,10 +133,37 @@ if ( file_exists( $html_engine_file2 ) ) {
133
 
134
  <?php Util_Ui::postbox_header( __( '<acronym title="JavaScript">JS</acronym>', 'w3-total-cache' ), '', 'js' ); ?>
135
  <table class="form-table">
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
136
  <tr>
137
- <th><?php _e( '<acronym title="JavaScript">JS</acronym> minify settings:', 'w3-total-cache' ); ?></th>
138
  <td>
139
- <?php $this->checkbox( 'minify.js.enable' ) ?> <?php Util_Ui::e_config_label( 'minify.js.enable' ) ?></label><br />
140
  <fieldset><legend><?php _e( 'Operations in areas:', 'w3-total-cache' ); ?></legend>
141
  <table id="minify_table">
142
  <tr>
@@ -205,11 +232,6 @@ if ( file_exists( $html_engine_file2 ) ) {
205
  <?php endif; ?>
206
  </table>
207
  </fieldset>
208
- <?php if ( $auto ): ?>
209
- <p>
210
- <?php $this->radio( 'minify.js.combine.header', false, false, 'js_' ) ?> <?php _e( 'Minify', 'w3-total-cache' ); ?> </label> <?php $this->radio( 'minify.js.combine.header', true, false, 'js_' ) ?> <?php Util_Ui::e_config_label( 'minify.js.combine.header' ) ?></label>
211
- </p>
212
- <?php endif; ?>
213
 
214
  <?php
215
  $js_engine_file = '';
@@ -329,11 +351,35 @@ Util_Ui::config_item( array(
329
 
330
  <?php Util_Ui::postbox_header( __( '<acronym title="Cascading Style Sheet">CSS</acronym>', 'w3-total-cache' ), '', 'css' ); ?>
331
  <table class="form-table">
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
332
  <tr>
333
- <th><?php _e( '<acronym title="Cascading Style Sheet">CSS</acronym> minify settings:', 'w3-total-cache' ); ?></th>
334
  <td>
335
- <?php $this->checkbox( 'minify.css.enable' ) ?> <?php Util_Ui::e_config_label( 'minify.css.enable' ) ?></label><br />
336
- <?php $this->checkbox( 'minify.css.combine', false, 'css_' ) ?> <?php Util_Ui::e_config_label( 'minify.css.combine' ) ?></label><br />
337
  <?php
338
  $css_engine_file = '';
339
 
133
 
134
  <?php Util_Ui::postbox_header( __( '<acronym title="JavaScript">JS</acronym>', 'w3-total-cache' ), '', 'js' ); ?>
135
  <table class="form-table">
136
+ <?php
137
+ Util_Ui::config_item( array(
138
+ 'key' => 'minify.js.enable',
139
+ 'label' => '<acronym title="JavaScript">JS</acronym> minify settings:',
140
+ 'control' => 'checkbox',
141
+ 'checkbox_label' => __( 'Enable', 'w3-total-cache' )
142
+ ) );
143
+ ?>
144
+ <?php
145
+ if ( $auto ):
146
+ Util_Ui::config_item( array(
147
+ 'key' => 'minify.js.method',
148
+ 'label' => 'Minify method:',
149
+ 'control' => 'selectbox',
150
+ 'selectbox_values' => array(
151
+ 'both' => array(
152
+ 'label' => __( 'Combine & Minify', 'w3-total-cache' )
153
+ ),
154
+ 'minify' => array(
155
+ 'label' => __( 'Minify only', 'w3-total-cache' )
156
+ ),
157
+ 'combine' => array(
158
+ 'label' => __( 'Combine only', 'w3-total-cache' )
159
+ )
160
+ )
161
+ ) );
162
+ endif;
163
+ ?>
164
  <tr>
165
+ <th><?php _e( 'Minify engine settings:', 'w3-total-cache' ); ?></th>
166
  <td>
 
167
  <fieldset><legend><?php _e( 'Operations in areas:', 'w3-total-cache' ); ?></legend>
168
  <table id="minify_table">
169
  <tr>
232
  <?php endif; ?>
233
  </table>
234
  </fieldset>
 
 
 
 
 
235
 
236
  <?php
237
  $js_engine_file = '';
351
 
352
  <?php Util_Ui::postbox_header( __( '<acronym title="Cascading Style Sheet">CSS</acronym>', 'w3-total-cache' ), '', 'css' ); ?>
353
  <table class="form-table">
354
+ <?php
355
+ Util_Ui::config_item( array(
356
+ 'key' => 'minify.css.enable',
357
+ 'label' => '<acronym title="Cascading Style Sheet">CSS</acronym> minify settings:',
358
+ 'control' => 'checkbox',
359
+ 'checkbox_label' => __( 'Enable', 'w3-total-cache' )
360
+ ) );
361
+ ?>
362
+ <?php
363
+ Util_Ui::config_item( array(
364
+ 'key' => 'minify.css.method',
365
+ 'label' => 'Minify method:',
366
+ 'control' => 'selectbox',
367
+ 'selectbox_values' => array(
368
+ 'both' => array(
369
+ 'label' => __( 'Combine & Minify', 'w3-total-cache' )
370
+ ),
371
+ 'minify' => array(
372
+ 'label' => __( 'Minify only', 'w3-total-cache' )
373
+ ),
374
+ 'combine' => array(
375
+ 'label' => __( 'Combine only', 'w3-total-cache' )
376
+ )
377
+ )
378
+ ) );
379
+ ?>
380
  <tr>
381
+ <th><?php _e( 'Minify engine settings:', 'w3-total-cache' ); ?></th>
382
  <td>
 
 
383
  <?php
384
  $css_engine_file = '';
385
 
lib/Minify/Minify.php CHANGED
@@ -616,6 +616,9 @@ class Minify0_Minify {
616
  if ( $type === self::TYPE_CSS ) {
617
  $content = apply_filters( 'w3tc_minify_css_content', $content, null, null );
618
  }
 
 
 
619
 
620
  // do any post-processing (esp. for editing build URIs)
621
  if (self::$_options['postprocessorRequire']) {
616
  if ( $type === self::TYPE_CSS ) {
617
  $content = apply_filters( 'w3tc_minify_css_content', $content, null, null );
618
  }
619
+ if ( $type === self::TYPE_JS ) {
620
+ $content = apply_filters( 'w3tc_minify_js_content', $content, null, null );
621
+ }
622
 
623
  // do any post-processing (esp. for editing build URIs)
624
  if (self::$_options['postprocessorRequire']) {
lib/Minify/Minify/CSS/Compressor.php CHANGED
@@ -118,12 +118,12 @@ class Minify_CSS_Compressor {
118
  $css = preg_replace_callback('/
119
  (?: # non-capture
120
  \\s*
121
- [^~>+,\\s]+ # selector part
122
  \\s*
123
  [,>+~] # combinators
124
  )+
125
  \\s*
126
- [^~>+,\\s]+ # selector part
127
  { # open declaration block
128
  /x'
129
  ,array($this, '_selectorsCB'), $css);
118
  $css = preg_replace_callback('/
119
  (?: # non-capture
120
  \\s*
121
+ [^{}~>+,\\s]+ # selector part
122
  \\s*
123
  [,>+~] # combinators
124
  )+
125
  \\s*
126
+ [^{}~>+,\\s]+ # selector part
127
  { # open declaration block
128
  /x'
129
  ,array($this, '_selectorsCB'), $css);
lib/Minify/Minify/HTML.php CHANGED
@@ -201,7 +201,7 @@ class Minify_HTML {
201
 
202
  // unquote attribute values without spaces
203
  $this->_html = preg_replace_callback(
204
- '/(<[a-z\\-]+\\s)\\s*([^>]+>)/m'
205
  ,array($this, '_removeAttributeQuotes')
206
  ,$this->_html);
207
 
@@ -349,10 +349,13 @@ class Minify_HTML {
349
  }
350
 
351
  protected function _removeAttributeQuotes($m) {
352
- $m[2] = preg_replace_callback( '~([a-z0-9\\-])=(?<quote>[\'"])([^"\'\\s=]*)\k<quote>(\\s|>|/>)~i',
353
- array( $this, '_removeAttributeQuotesCallback'), $m[2] );
 
 
 
354
 
355
- return $m[1] . $m[2];
356
  }
357
 
358
 
201
 
202
  // unquote attribute values without spaces
203
  $this->_html = preg_replace_callback(
204
+ '/(<([a-z\\-]+)\\s)\\s*([^>]+>)/m'
205
  ,array($this, '_removeAttributeQuotes')
206
  ,$this->_html);
207
 
349
  }
350
 
351
  protected function _removeAttributeQuotes($m) {
352
+ // whatsapp/fb bots dont read meta tags without quotes well
353
+ if (strtolower($m[2]) != 'meta') {
354
+ $m[3] = preg_replace_callback( '~([a-z0-9\\-])=(?<quote>[\'"])([^"\'\\s=]*)\k<quote>(\\s|>|/>)~i',
355
+ array( $this, '_removeAttributeQuotesCallback'), $m[3] );
356
+ }
357
 
358
+ return $m[1] . $m[3];
359
  }
360
 
361
 
readme.txt CHANGED
@@ -2,8 +2,8 @@
2
  Contributors: boldgrid, fredericktownes, maxicusc, gidomanders, bwmarkle, harryjackson1221, joemoto
3
  Tags: seo, cache, optimize, pagespeed, performance, caching, compression, maxcdn, nginx, varnish, redis, new relic, aws, amazon web services, s3, cloudfront, rackspace, cloudflare, azure, apache
4
  Requires at least: 3.2
5
- Tested up to: 5.5
6
- Stable tag: 0.15.1
7
  License: GPLv2 or later
8
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
9
 
@@ -275,6 +275,14 @@ Please reach out to all of these people and support their projects if you're so
275
 
276
  == Changelog ==
277
 
 
 
 
 
 
 
 
 
278
  = 0.15.1 =
279
  * Fix: Fixed Memcached flush logic
280
  * Fix: Remove disk enhanced rewrites when disabling page cache
2
  Contributors: boldgrid, fredericktownes, maxicusc, gidomanders, bwmarkle, harryjackson1221, joemoto
3
  Tags: seo, cache, optimize, pagespeed, performance, caching, compression, maxcdn, nginx, varnish, redis, new relic, aws, amazon web services, s3, cloudfront, rackspace, cloudflare, azure, apache
4
  Requires at least: 3.2
5
+ Tested up to: 5.6
6
+ Stable tag: 0.15.2
7
  License: GPLv2 or later
8
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
9
 
275
 
276
  == Changelog ==
277
 
278
+ = 0.15.2 =
279
+ * Fix: Minify: Do not remove quotes around meta tags
280
+ * Fix: Minify: Removal of spaces in calc function was breaking CSS
281
+ * Fix: Browser Cache: Query string was not added to prevent caching after setting changes
282
+ * Fix: Avoid warning when sending an empty URL for purging
283
+ * Update: Added a filter for minified JavaScript content
284
+ * Update: Minify: Added options for minify only got both JS and CSS in auto mode
285
+
286
  = 0.15.1 =
287
  * Fix: Fixed Memcached flush logic
288
  * Fix: Remove disk enhanced rewrites when disabling page cache
w3-total-cache-api.php CHANGED
@@ -5,7 +5,7 @@ if ( !defined( 'ABSPATH' ) ) {
5
  }
6
 
7
  define( 'W3TC', true );
8
- define( 'W3TC_VERSION', '0.15.1' );
9
  define( 'W3TC_POWERED_BY', 'W3 Total Cache' );
10
  define( 'W3TC_EMAIL', 'w3tc@w3-edge.com' );
11
  define( 'W3TC_TEXT_DOMAIN', 'w3-total-cache' );
5
  }
6
 
7
  define( 'W3TC', true );
8
+ define( 'W3TC_VERSION', '0.15.2' );
9
  define( 'W3TC_POWERED_BY', 'W3 Total Cache' );
10
  define( 'W3TC_EMAIL', 'w3tc@w3-edge.com' );
11
  define( 'W3TC_TEXT_DOMAIN', 'w3-total-cache' );
w3-total-cache.php CHANGED
@@ -3,7 +3,7 @@
3
  * Plugin Name: W3 Total Cache
4
  * Plugin URI: https://www.boldgrid.com/totalcache/
5
  * Description: The highest rated and most complete WordPress performance plugin. Dramatically improve the speed and user experience of your site. Add browser, page, object and database caching as well as minify and content delivery network (CDN) to WordPress.
6
- * Version: 0.15.1
7
  * Requires at least: 3.2
8
  * Requires PHP: 5.3
9
  * Author: BoldGrid
3
  * Plugin Name: W3 Total Cache
4
  * Plugin URI: https://www.boldgrid.com/totalcache/
5
  * Description: The highest rated and most complete WordPress performance plugin. Dramatically improve the speed and user experience of your site. Add browser, page, object and database caching as well as minify and content delivery network (CDN) to WordPress.
6
+ * Version: 0.15.2
7
  * Requires at least: 3.2
8
  * Requires PHP: 5.3
9
  * Author: BoldGrid