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