Ticket #34528: 34528.3.diff
File 34528.3.diff, 2.6 KB (added by , 9 years ago) |
---|
-
src/wp-includes/media.php
983 983 return false; 984 984 } 985 985 986 // Don't add srcset attributes to (animated) gifs that are inserted at full size.987 if ( isset( $image_sizes['thumbnail']['mime-type'] ) && 'image/gif' === $image_sizes['thumbnail']['mime-type'] &&988 false !== strpos( $image_src, $image_meta['file'] ) ) {989 990 return false;991 }992 993 986 $image_basename = wp_basename( $image_meta['file'] ); 994 987 $image_baseurl = _wp_upload_dir_baseurl(); 995 988 996 // Add full size to the '$image_sizes' array. 997 $image_sizes['full'] = array( 998 'width' => $image_meta['width'], 999 'height' => $image_meta['height'], 1000 'file' => $image_basename, 1001 ); 989 /* 990 * WordPress flattens animated GIFs into one frame when generating intermediate sizes. 991 * To avoid hiding animation in user content, if src is a full size GIF, a srcset attribute is not generated. 992 * If src is an intermediate size GIF, the full size is excluded from srcset to keep a flattened GIF from becoming animated. 993 */ 994 if ( isset( $image_sizes['thumbnail']['mime-type'] ) && 'image/gif' === $image_sizes['thumbnail']['mime-type'] ) { 995 if ( strpos( $image_src, $image_meta['file'] ) ) { 996 return false; 997 } 998 } else { 999 $image_sizes['full'] = array( 1000 'width' => $image_meta['width'], 1001 'height' => $image_meta['height'], 1002 'file' => $image_basename, 1003 ); 1004 } 1002 1005 1003 1006 // Uploads are (or have been) in year/month sub-directories. 1004 1007 if ( $image_basename !== $image_meta['file'] ) { -
tests/phpunit/tests/media.php
996 996 ) 997 997 ); 998 998 999 $image_src = 'http://' . WP_TESTS_DOMAIN . '/wp-content/uploads/' . $image_meta['file']; 999 $full_src = 'http://' . WP_TESTS_DOMAIN . '/wp-content/uploads/' . $image_meta['file']; 1000 $large_src = 'http://' . WP_TESTS_DOMAIN . '/wp-content/uploads/' . $image_meta['sizes']['large']['file']; 1001 1000 1002 // Test with soft resized size array. 1001 1003 $size_array = array(900, 450); 1002 1004 1003 $this->assertFalse( wp_calculate_image_srcset( $image_src, $size_array, $image_meta ) ); 1005 // Full size GIFs should not return a srcset. 1006 $this->assertFalse( wp_calculate_image_srcset( $full_src, $size_array, $image_meta ) ); 1007 // Intermediate sized GIFs should not include the full size in the srcset. 1008 $this->assertFalse( strpos( wp_calculate_image_srcset( $large_src, $size_array, $image_meta ), $full_src ) ); 1004 1009 } 1005 1010 }