herb miller
WordPress specialist
Follow Herb Miller on TwitterFollow Herb Miller on FacebookFollow Herb Miller on LinkedInFollow Herb Miller on GooglePlusFollow Herb Miller on YouTube

H2GD Part 15: broken image in Chrome for JetPack stats

This simple slideshow demonstrates a problem with the JetPack stats plugin which results in a broken image when viewing the site using Chrome. A fix for the problem is provided for Jetpack v1.7

Jetpack stats image NOT YET brokenJetpack stats image now displayed as a broken image

 

Links:

Admin-bar Stats image not showing up

Chrome browser does not show images generated by HTTP handler

 

Download the patch

Attached to this post is the fix for this problem. It’s a patch file for Jetpack version 1.7.

stats.php.patch.0911stats.php.patch.0911

Explanation

  • When the webpage is created Jetpack sets the source for the image in the admin bar as “http://example.com/wp-admin/admin.php?page=stats&noheader&proxy&chart=admin-bar-hours&height=20&hours=48″
  • The browser performs a GET for this image
  • Which sends the message to WordPress admin which invokes the JetPack stats function called stats_reports_page().
  • This then sends a remote request to wordpress.com
  • Which replies with the generated PNG file in the body of the response
  • The Stats function then echo’ed this PNG file to the browser using the following (simplified) code header( "Content-Type: image/png" ); die( $get['body'] )

  • Apparently Google chrome doesn’t care for this ( see the second link )
  • It is happier when the code is changed to header( "Content-Type: image/png" ); $img = $get['body']; header( 'Content-Length: ' . strlen( $img ) ); echo $img; exit();
  • So that’s what the patch file contains

3 Responses to H2GD Part 15: broken image in Chrome for JetPack stats

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>