| Index: gpu/command_buffer/service/gles2_cmd_decoder.cc
 | 
| diff --git a/gpu/command_buffer/service/gles2_cmd_decoder.cc b/gpu/command_buffer/service/gles2_cmd_decoder.cc
 | 
| index 7575cb5fbc776f1d75c9e1cab53541b833f340ed..350ccd8e0059ac75cb6b8ab76753301b62c3f1f3 100644
 | 
| --- a/gpu/command_buffer/service/gles2_cmd_decoder.cc
 | 
| +++ b/gpu/command_buffer/service/gles2_cmd_decoder.cc
 | 
| @@ -9466,7 +9466,7 @@ bool GLES2DecoderImpl::GenQueriesEXTHelper(
 | 
|        return false;
 | 
|      }
 | 
|    }
 | 
| -  // NOTE: We don't generate Query objects here. Only in BeginQueryEXT
 | 
| +  query_manager_->GenQueries(n, client_ids);
 | 
|    return true;
 | 
|  }
 | 
|  
 | 
| @@ -9481,8 +9481,8 @@ void GLES2DecoderImpl::DeleteQueriesEXTHelper(
 | 
|          state_.current_queries.erase(it);
 | 
|  
 | 
|        query->Destroy(true);
 | 
| -      query_manager_->RemoveQuery(client_ids[ii]);
 | 
|      }
 | 
| +    query_manager_->RemoveQuery(client_ids[ii]);
 | 
|    }
 | 
|  }
 | 
|  
 | 
| @@ -9576,24 +9576,12 @@ error::Error GLES2DecoderImpl::HandleBeginQueryEXT(
 | 
|  
 | 
|    QueryManager::Query* query = query_manager_->GetQuery(client_id);
 | 
|    if (!query) {
 | 
| -    // TODO(gman): Decide if we need this check.
 | 
| -    //
 | 
| -    // Checks id was made by glGenQueries
 | 
| -    //
 | 
| -    // From the POV of OpenGL ES 2.0 you need to call glGenQueriesEXT
 | 
| -    // for all Query ids but from the POV of the command buffer service maybe
 | 
| -    // you don't.
 | 
| -    //
 | 
| -    // The client can enforce this. I don't think the service cares.
 | 
| -    //
 | 
| -    // IdAllocatorInterface* id_allocator =
 | 
| -    //     group_->GetIdAllocator(id_namespaces::kQueries);
 | 
| -    // if (!id_allocator->InUse(client_id)) {
 | 
| -    //   LOCAL_SET_GL_ERROR(
 | 
| -    //       GL_INVALID_OPERATION,
 | 
| -    //       "glBeginQueryEXT", "id not made by glGenQueriesEXT");
 | 
| -    //   return error::kNoError;
 | 
| -    // }
 | 
| +    if (!query_manager_->IsValidQuery(client_id)) {
 | 
| +      LOCAL_SET_GL_ERROR(GL_INVALID_OPERATION,
 | 
| +                         "glBeginQueryEXT",
 | 
| +                         "id not made by glGenQueriesEXT");
 | 
| +      return error::kNoError;
 | 
| +    }
 | 
|      query = query_manager_->CreateQuery(
 | 
|          target, client_id, sync_shm_id, sync_shm_offset);
 | 
|    }
 | 
| 
 |