| Index: gpu/command_buffer/build_gles2_cmd_buffer.py
 | 
| ===================================================================
 | 
| --- gpu/command_buffer/build_gles2_cmd_buffer.py	(revision 93075)
 | 
| +++ gpu/command_buffer/build_gles2_cmd_buffer.py	(working copy)
 | 
| @@ -5718,24 +5718,25 @@
 | 
|      file.Write(_LICENSE)
 | 
|      file.Write(_DO_NOT_EDIT_WARNING)
 | 
|  
 | 
| -    file.Write("#include \"webkit/plugins/ppapi/ppb_opengles_impl.h\"\n\n")
 | 
| -
 | 
| +    file.Write("#include \"ppapi/shared_impl/opengles2_impl.h\"\n\n")
 | 
| +    file.Write("#include \"base/logging.h\"\n")
 | 
|      file.Write("#include \"gpu/command_buffer/client/gles2_implementation.h\"\n")
 | 
| -    file.Write("#include \"ppapi/c/dev/ppb_opengles_dev.h\"\n")
 | 
| -    file.Write("#include \"ppapi/shared_impl/resource_object_base.h\"\n")
 | 
| -    file.Write("#include \"ppapi/shared_impl/tracker_base.h\"\n")
 | 
| -    file.Write("#include \"webkit/plugins/ppapi/ppb_context_3d_impl.h\"\n\n")
 | 
| +    file.Write("#include \"ppapi/shared_impl/graphics_3d_impl.h\"\n")
 | 
| +    file.Write("#include \"ppapi/thunk/enter.h\"\n")
 | 
| +    file.Write("#include \"ppapi/thunk/ppb_context_3d_api.h\"\n\n")
 | 
|  
 | 
| -    file.Write("using ppapi::ResourceObjectBase;\n")
 | 
| -    file.Write("using ppapi::TrackerBase;\n\n")
 | 
| -    file.Write("namespace webkit {\n")
 | 
|      file.Write("namespace ppapi {\n\n")
 | 
|      file.Write("namespace {\n\n")
 | 
|  
 | 
|      file.Write("gpu::gles2::GLES2Implementation* GetGLES(PP_Resource context) {\n")
 | 
| -    file.Write("  ResourceObjectBase* base = TrackerBase::Get()->GetResourceAPI(context);\n")
 | 
| -    file.Write("  DCHECK(base->AsPPB_Context3D_API());\n")
 | 
| -    file.Write("  return static_cast<PPB_Context3D_Impl*>(base)->gles2_impl();\n")
 | 
| +    file.Write("  thunk::EnterResource<thunk::PPB_Graphics3D_API> enter_g3d(context, false);\n")
 | 
| +    file.Write("  if (enter_g3d.succeeded()) {\n")
 | 
| +    file.Write("    return static_cast<Graphics3DImpl*>(enter_g3d.object())->gles2_impl();\n")
 | 
| +    file.Write("  } else {\n")
 | 
| +    file.Write("    thunk::EnterResource<thunk::PPB_Context3D_API> enter_c3d(context, true);\n")
 | 
| +    file.Write("    DCHECK(enter_c3d.succeeded());\n")
 | 
| +    file.Write("    return enter_c3d.object()->GetGLES2Impl();\n")
 | 
| +    file.Write("  }\n")
 | 
|      file.Write("}\n\n")
 | 
|  
 | 
|      for func in self.original_functions:
 | 
| @@ -5766,108 +5767,14 @@
 | 
|      file.Write("}  // namespace\n")
 | 
|  
 | 
|      file.Write("""
 | 
| -const PPB_OpenGLES2_Dev* PPB_OpenGLES_Impl::GetInterface() {
 | 
| +const PPB_OpenGLES2_Dev* OpenGLES2Impl::GetInterface() {
 | 
|    return &ppb_opengles2;
 | 
|  }
 | 
|  
 | 
|  """)
 | 
|      file.Write("}  // namespace ppapi\n")
 | 
| -    file.Write("}  // namespace webkit\n\n")
 | 
| -
 | 
|      file.Close()
 | 
|  
 | 
| -  def WritePepperGLES2ProxyImplementation(self, filename):
 | 
| -    """Writes the Pepper OpenGLES interface implementation."""
 | 
| -
 | 
| -    file = CWriter(filename)
 | 
| -    file.Write(_LICENSE)
 | 
| -    file.Write(_DO_NOT_EDIT_WARNING)
 | 
| -
 | 
| -    file.Write("#include \"ppapi/proxy/ppb_opengles2_proxy.h\"\n\n")
 | 
| -
 | 
| -    file.Write("#include \"gpu/command_buffer/client/gles2_implementation.h\"\n")
 | 
| -    file.Write("#include \"ppapi/c/pp_errors.h\"\n")
 | 
| -    file.Write("#include \"ppapi/c/pp_resource.h\"\n")
 | 
| -    file.Write("#include \"ppapi/c/dev/ppb_opengles_dev.h\"\n")
 | 
| -    file.Write("#include \"ppapi/proxy/plugin_dispatcher.h\"\n")
 | 
| -    file.Write("#include \"ppapi/proxy/plugin_resource.h\"\n")
 | 
| -    file.Write("#include \"ppapi/proxy/ppb_context_3d_proxy.h\"\n")
 | 
| -    file.Write("#include \"ppapi/shared_impl/resource_object_base.h\"\n")
 | 
| -    file.Write("#include \"ppapi/shared_impl/tracker_base.h\"\n\n")
 | 
| -
 | 
| -    file.Write("namespace pp {\n")
 | 
| -    file.Write("namespace proxy {\n\n")
 | 
| -    file.Write("namespace {\n\n")
 | 
| -    file.Write("gpu::gles2::GLES2Implementation* GetGLES(PP_Resource context) {\n")
 | 
| -    file.Write("  ppapi::ResourceObjectBase* base =\n")
 | 
| -    file.Write("  ppapi::TrackerBase::Get()->GetResourceAPI(context);\n")
 | 
| -    file.Write("  DCHECK(base->AsPPB_Context3D_API());\n")
 | 
| -    file.Write("  return static_cast<Context3D*>(base)->gles2_impl();\n")
 | 
| -    file.Write("}\n\n")
 | 
| -
 | 
| -    for func in self.original_functions:
 | 
| -      if not func.IsCoreGLFunction():
 | 
| -        continue
 | 
| -
 | 
| -      original_arg = func.MakeTypedOriginalArgString("")
 | 
| -      context_arg = "PP_Resource context_id"
 | 
| -      if len(original_arg):
 | 
| -        arg = context_arg + ", " + original_arg
 | 
| -      else:
 | 
| -        arg = context_arg
 | 
| -      file.Write("%s %s(%s) {\n" % (func.return_type, func.name, arg))
 | 
| -
 | 
| -      return_str = "" if func.return_type == "void" else "return "
 | 
| -      file.Write("  %sGetGLES(context_id)->%s(%s);\n" %
 | 
| -                 (return_str, func.original_name,
 | 
| -                  func.MakeOriginalArgString("")))
 | 
| -      file.Write("}\n\n")
 | 
| -
 | 
| -    file.Write("const struct PPB_OpenGLES2_Dev opengles2_interface = {\n")
 | 
| -    file.Write("  &")
 | 
| -    file.Write(",\n  &".join(
 | 
| -      f.name for f in self.original_functions if f.IsCoreGLFunction()))
 | 
| -    file.Write("\n")
 | 
| -    file.Write("};\n\n")
 | 
| -
 | 
| -    file.Write("""
 | 
| -InterfaceProxy* CreateOpenGLES2Proxy(Dispatcher* dispatcher,
 | 
| -                                     const void* target_interface) {
 | 
| -  return new PPB_OpenGLES2_Proxy(dispatcher, target_interface);
 | 
| -}
 | 
| -
 | 
| -}  // namespace
 | 
| -
 | 
| -PPB_OpenGLES2_Proxy::PPB_OpenGLES2_Proxy(Dispatcher* dispatcher,
 | 
| -                                         const void* target_interface)
 | 
| -    : InterfaceProxy(dispatcher, target_interface) {
 | 
| -}
 | 
| -
 | 
| -PPB_OpenGLES2_Proxy::~PPB_OpenGLES2_Proxy() {
 | 
| -}
 | 
| -
 | 
| -// static
 | 
| -const InterfaceProxy::Info* PPB_OpenGLES2_Proxy::GetInfo() {
 | 
| -  static const Info info = {
 | 
| -    &opengles2_interface,
 | 
| -    PPB_OPENGLES2_DEV_INTERFACE,
 | 
| -    INTERFACE_ID_PPB_OPENGLES2,
 | 
| -    false,
 | 
| -    &CreateOpenGLES2Proxy,
 | 
| -  };
 | 
| -  return &info;
 | 
| -}
 | 
| -
 | 
| -bool PPB_OpenGLES2_Proxy::OnMessageReceived(const IPC::Message& msg) {
 | 
| -  return false;
 | 
| -}
 | 
| -
 | 
| -""")
 | 
| -    file.Write("}  // namespace proxy\n")
 | 
| -    file.Write("}  // namespace pp\n")
 | 
| -
 | 
| -    file.Close()
 | 
| -
 | 
|    def WriteGLES2ToPPAPIBridge(self, filename):
 | 
|      """Connects GLES2 helper library to PPB_OpenGLES2 interface"""
 | 
|  
 | 
| @@ -5995,13 +5902,8 @@
 | 
|  
 | 
|    elif options.alternate_mode == "chrome_ppapi":
 | 
|      # To trigger this action, do "make ppapi_gles_implementation"
 | 
| -    gen.WritePepperGLES2Implementation(
 | 
| -        "webkit/plugins/ppapi/ppb_opengles_impl.cc")
 | 
| +    gen.WritePepperGLES2Implementation("ppapi/shared_impl/opengles2_impl.cc")
 | 
|  
 | 
| -  elif options.alternate_mode == "chrome_ppapi_proxy":
 | 
| -    gen.WritePepperGLES2ProxyImplementation(
 | 
| -        "ppapi/proxy/ppb_opengles2_proxy.cc")
 | 
| -
 | 
|    elif options.alternate_mode == "nacl_ppapi":
 | 
|      gen.WritePepperGLES2NaClProxy(
 | 
|          "native_client/src/shared/ppapi_proxy/plugin_opengles.cc")
 | 
| 
 |