Fix RequestDrawGL logic.

We're not supposed to request a blocking DrawGL with a not null canvas.
Just throw an exception in this case.

Change-Id: I452e781577ab1040d06acfcba1d03646bab00fa4
diff --git a/chromium/java/com/android/webview/chromium/DrawGLFunctor.java b/chromium/java/com/android/webview/chromium/DrawGLFunctor.java
index 7f7adeb..265bfd0 100644
--- a/chromium/java/com/android/webview/chromium/DrawGLFunctor.java
+++ b/chromium/java/com/android/webview/chromium/DrawGLFunctor.java
@@ -58,6 +58,11 @@
         if (mDestroyRunnable.mNativeDrawGLFunctor == 0) {
             throw new RuntimeException("requested DrawGL on already destroyed DrawGLFunctor");
         }
+
+        if (canvas != null && waitForCompletion) {
+            throw new IllegalArgumentException("requested a blocking DrawGL with a not null canvas.");
+        }
+
         if (viewRootImpl == null) {
             // Can happen during teardown when window is leaked.
             return false;
@@ -70,10 +75,6 @@
         }
 
         canvas.callDrawGLFunction(mDestroyRunnable.mNativeDrawGLFunctor);
-        if (waitForCompletion) {
-            viewRootImpl.invokeFunctor(mDestroyRunnable.mNativeDrawGLFunctor,
-                    waitForCompletion);
-        }
         return true;
     }