herb miller
WordPress specialist
Add Post Add Page Edit custom CSS
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
Share

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>