| Index: gfx/codec/png_codec.cc
 | 
| diff --git a/gfx/codec/png_codec.cc b/gfx/codec/png_codec.cc
 | 
| index 9db0095daaad6390ca66a6b5c7065a909ca704d8..66fa787a30917838abdcfd3ae5a83c1b0f535b43 100644
 | 
| --- a/gfx/codec/png_codec.cc
 | 
| +++ b/gfx/codec/png_codec.cc
 | 
| @@ -530,6 +530,11 @@ void EncoderWriteCallback(png_structp png, png_bytep data, png_size_t size) {
 | 
|    memcpy(&(*state->out)[old_size], data, size);
 | 
|  }
 | 
|  
 | 
| +void FakeFlushCallback(png_structp png) {
 | 
| +  // We don't need to perform any flushing since we aren't doing real IO, but
 | 
| +  // we're required to provide this function by libpng.
 | 
| +}
 | 
| +
 | 
|  void ConvertBGRAtoRGB(const unsigned char* bgra, int pixel_width,
 | 
|                        unsigned char* rgb, bool* is_opaque) {
 | 
|    for (int x = 0; x < pixel_width; x++) {
 | 
| @@ -562,7 +567,7 @@ bool DoLibpngWrite(png_struct* png_ptr, png_info* info_ptr,
 | 
|      return false;
 | 
|  
 | 
|    // Set our callback for libpng to give us the data.
 | 
| -  png_set_write_fn(png_ptr, state, EncoderWriteCallback, NULL);
 | 
| +  png_set_write_fn(png_ptr, state, EncoderWriteCallback, FakeFlushCallback);
 | 
|  
 | 
|    png_set_IHDR(png_ptr, info_ptr, width, height, 8, png_output_color_type,
 | 
|                 PNG_INTERLACE_NONE, PNG_COMPRESSION_TYPE_DEFAULT,
 | 
| 
 |