Merge "Merge up to 24c4a3d7 from chromium-dev."
diff --git a/chromium/java/com/android/webview/chromium/WebViewChromium.java b/chromium/java/com/android/webview/chromium/WebViewChromium.java
index 1b2d98f..9049831 100644
--- a/chromium/java/com/android/webview/chromium/WebViewChromium.java
+++ b/chromium/java/com/android/webview/chromium/WebViewChromium.java
@@ -2107,12 +2107,26 @@
             mWebViewPrivate.setMeasuredDimension(measuredWidth, measuredHeight);
         }
 
-        @Override
         public boolean requestDrawGL(Canvas canvas) {
+            return requestDrawGL(canvas, false);
+        }
+
+        // @Override
+        public boolean requestDrawGL(Canvas canvas, boolean waitForCompletion) {
             if (mGLfunctor == null) {
                 mGLfunctor = new DrawGLFunctor(mAwContents.getAwDrawGLViewContext());
             }
-            return mGLfunctor.requestDrawGL((HardwareCanvas)canvas, mWebView.getViewRootImpl());
+            boolean result = mGLfunctor.requestDrawGL((HardwareCanvas)canvas,
+                    mWebView.getViewRootImpl());
+            if (result && waitForCompletion) {
+                Runnable r = new Runnable() {
+                    @Override
+                    public void run() {
+                    }
+                };
+                result =  mWebView.executeHardwareAction(r);
+            }
+            return result;
         }
 
         // @Override