From 9945a7390fca9a23c5ce365c5e4f39c2bf908cd6 Mon Sep 17 00:00:00 2001
From: "cyzero.kim" <cyzero.kim@samsung.com>
Date: Wed, 2 Dec 2015 19:05:10 -0800
Subject: Fix the crash problem of WebGL2 Query api.

It need to exception handling for null argument.

BUG=561217

Review URL: https://codereview.chromium.org/1473023007

Cr-Commit-Position: refs/heads/master@{#362879}
---
 .../WebKit/Source/modules/webgl/WebGL2RenderingContextBase.cpp    | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/third_party/WebKit/Source/modules/webgl/WebGL2RenderingContextBase.cpp b/third_party/WebKit/Source/modules/webgl/WebGL2RenderingContextBase.cpp
index 87fddec..2e298a3a 100644
--- a/third_party/WebKit/Source/modules/webgl/WebGL2RenderingContextBase.cpp
+++ b/third_party/WebKit/Source/modules/webgl/WebGL2RenderingContextBase.cpp
@@ -1654,6 +1654,9 @@ WebGLQuery* WebGL2RenderingContextBase::createQuery()
 
 void WebGL2RenderingContextBase::deleteQuery(WebGLQuery* query)
 {
+    if (isContextLost() || !query)
+        return;
+
     if (m_currentBooleanOcclusionQuery == query) {
         webContext()->endQueryEXT(m_currentBooleanOcclusionQuery->getTarget());
         m_currentBooleanOcclusionQuery = nullptr;
@@ -1678,6 +1681,11 @@ GLboolean WebGL2RenderingContextBase::isQuery(WebGLQuery* query)
 void WebGL2RenderingContextBase::beginQuery(GLenum target, WebGLQuery* query)
 {
     bool deleted;
+    if (!query) {
+        synthesizeGLError(GL_INVALID_OPERATION, "beginQuery", "query object is null");
+        return;
+    }
+
     if (!checkObjectToBeBound("beginQuery", query, deleted))
         return;
     if (deleted) {
-- 
cgit v1.1