 +  if (shader_program == SHADER_PROGRAM_SOLID_WHITE &&
 +      shader_type == GL_FRAGMENT_SHADER) {
 +    bg_shader = base::StringPrintf(
-+        "void main() { gl_FragColor = vec4(%f, %f, %f, 1.0); }",
-+        bgcolor[0], bgcolor[1], bgcolor[2]);
++        "void main() { gl_FragColor = vec4(%s, %s, %s, 1.0); }",
++        base::DoubleToString(bgcolor[0]).c_str(),
++        base::DoubleToString(bgcolor[1]).c_str(),
++        base::DoubleToString(bgcolor[2]).c_str());
 +    kFragmentShaderSourceCodeMap[shader_program] = bg_shader.c_str();
 +  }
 +
    // Select and compile the shader program source code.
    if (shader_type == GL_VERTEX_SHADER) {
      const GLchar* source_snippets[] = {
-@@ -412,6 +424,14 @@
+@@ -412,6 +427,14 @@
    Reset();
  }
  

===================================================================
--- compositing_iosurface_shader_programs_mac.cc	(revision 263053)
+++ compositing_iosurface_shader_programs_mac.cc	(working copy)
@@ -11,6 +11,7 @@
 #include "base/debug/trace_event.h"
 #include "base/logging.h"
 #include "base/memory/scoped_ptr.h"
+#include "base/strings/stringprintf.h"
 #include "base/values.h"
 #include "content/browser/gpu/gpu_data_manager_impl.h"
 #include "gpu/config/gpu_driver_bug_workaround_type.h"
@@ -51,6 +52,7 @@
     }
 );
 

 
 // Only calculates position.
 const char kvsSolidWhite[] = GLSL_PROGRAM_AS_STRING(
@@ -238,6 +241,18 @@
   const GLuint shader = glCreateShader(shader_type);
   DCHECK_NE(shader, 0u);
 
